Docstoc

Desarrollo de Aplicaciones Distribuidas - PowerPoint

Document Sample
Desarrollo de Aplicaciones Distribuidas - PowerPoint Powered By Docstoc
					J2EE – Java 2 Enterprise Edition


                          www.javasoft.com




Daniel Fernández Lanvin        Aquitectura WEB   www.dflanvin.com/docencia/arquitectura
   ¿Por qué Java en el servidor?

       Ventajas
             Independencia de la plataforma –
              portabilidad
             Gran conjunto de APIs
             Reusabilidad y modularidad
             Seguro en la ejecución de código móvil
             Gratis


Daniel Fernández Lanvin
   ¿Por qué Java en el servidor?

       Inconvenientes
             Curva de aprendizaje pronunciada
             En el caso de sistemas Web, inadecuado
              para proyectos pequeños que puedan
              construirse con una solución simple y
              rápida.




Daniel Fernández Lanvin
   ¿Qué es J2EE?
       Internet y WWW representan el fundamento sobre los
        cuales se esta construyendo la economía de la información.
       La meta de J2EE es definir un estándar que ayude a suplir
        los retos tecnológicos en esta nueva era.
       J2EE soporta aplicaciones distribuidas que toma ventajas de
        las tecnologías existentes y en desarrollo simplificando el
        proceso a través de un modelo de aplicaciones basados en
        componentes (¿?).
       J2EE soporta aplicaciones desde las C/S corporativas hasta
        e-commerce con Web en Internet.
       Defines estándares que son implementados por distintos
        proveedores y fabricantes, no fuerza a emplear ningún
        producto específico.
       Máxima interoperabilidad (Web services, IIOP, RMI, etc.).

Daniel Fernández Lanvin
   Plataforma J2EE
       “Conjunto de especificaciones y prácticas
        coordinadas que juntas permiten soluciones para
        el desarrollo, despliegue y gestión de aplicaciones
        multicapa centradas en servidor”.
       Provee soporte tanto para el lado del servidor
        como para el lado del cliente para aplicaciones
        corporativas multi-nivel (multi-tier)
       Client-tier: interface de usuario
       Middle-tier (1 o más): servicios al cliente y la lógica
        del negocio para la aplicación.
       Backend-tier: gestión de datos

Daniel Fernández Lanvin
   APIs y Especificaciones J2EE
       EJBs 2.1             JAXP 1.1
       JDBC 2.0             JCA 1.0
       Servlets 2.3         JAAS 1.0
       JSPs 1.2             XML-RPC
       JMS 1.0              Web Services
       JNDI 1.2             JMX (Java
       JTA 1.0               Management
                              Extensions)
       JavaMail 2.0
                             Etc.
       JAF 1.0

Daniel Fernández Lanvin
                          En continua revisión y
   Entorno J2EE




Daniel Fernández Lanvin
   Gestión de componentes basado en
   contenedores
       De la mano de un modelo basado en
        componentes esta la noción de contenedor.
       Un contenedor provee un ambiente
        estandarizado de ejecución que provee servicios
        específicos a componentes.
       Por ejemplo todos los contenedores Web proveen
        soporte para requerimientos de clientes, realizar
        un procesamiento y retornar los resultados.
             Ej.: Todos los contenedores EJB proveen soporte para
              gestión de transacciones, ciclo de vida, localización y
              otros servicios.
       Los contenedores también poseen acceso a
        sistemas de información empresarial (RDBMS,
        JDBC, etc.)
Daniel Fernández Lanvin
   Tecnologías de la plataforma
   J2EE.
   Clasificación
       Tres categorías:
             componentes
             servicios
             comunicaciones
       Componentes: utilizados por desarrolladores para
        crear partes esenciales de una aplicación
        empresarial
       Utilizados en la interfaz de usuario y lógica del
        negocio




Daniel Fernández Lanvin
   Tecnologías de componentes
       Componente: unidad de software de nivel
        aplicación
             Ej: Javabeans, applets, componentes web, etc.
       Los componentes J2EE se ejecutan dentro de su
        correspondiente contenedor.
       El contenedor proporciona los servicios
        necesarios a los componentes en tiempo de
        ejecución
       Permite declarar en lugar de programar
        determinados aspectos de comportamiento de los
        componentes
Daniel Fernández Lanvin
   Contenedores J2EE

       Cuatro aspectos:
             Contrato de componentes
             API de servicio del contenedor
             Servicios Declarativos
             Otros servicios de contenedores




Daniel Fernández Lanvin
   Contrato de componentes
       Los componentes son gestionados por el
        contenedor.
       Para eso, deben cumplir el contrato del
        contenedor para el tipo de componentes
        en concreto: conjunto de métodos a
        implementar por el componente y que
        permiten al contenedor interactuar con él.
       Los contratos se materializan en interfaces
        java.

Daniel Fernández Lanvin
   API del servicio del contenedor
    El contenedor aporta una implementación
     para las APIs de extensión de java.
   Ejemplo:
    Implementa el servicio de JMS ofreciendo

     al desarrollador
             un driver que cumple la especificación
             Gestores de colas y apartados




Daniel Fernández Lanvin
   Servicios Declarativos
       Algunos de los servicios ofrecidos por el
        contenedor a los componentes se declaran en
        lugar de programarse.
       La declaración (por ejemplo, especificar que un
        método tiene que estar inmerso en una
        transacción) se realiza mediante descriptores de
        despliegue.
       Descriptor de despliegue: Contrato entre el
        contenedor y el componente.



Daniel Fernández Lanvin
   Otros Servicios
       Gestión del ciclo de vida del componente
       Reserva de recursos
       Publicación de componentes y otros
        recursos en espacio JNDI
       Clustering.
       Etc.




Daniel Fernández Lanvin
   Componentes Web
       Entidades que sirven respuestas a
        peticiones http
       Normalmente generan interfaces de
        usuario basadas en Web
       Servlets:
             Extienden la funcionalidad de un servidor Web
             Portables
             Se ejecutan en un contenedor de servlets.


Daniel Fernández Lanvin
   Componentes Web

       JSP:
             Respuesta de Sun a las ASP de Microsoft
             Cuando se compilan, generan un servlet.
             Son páginas html con código java
              incrustado.




Daniel Fernández Lanvin
   Componentes Web
       Se ejecutan en un contenedor Web:
       Contenedor web = contenedor JSPs +
        contenedor servlets
       Proporciona los servicios necesarios para la
        ejecución de servlets y jsps, y controla su
        ciclo de vida.
       Escucha, decodifica y responde peticiones
        http/https.


Daniel Fernández Lanvin
   Componentes Enterprise
   JavaBeans
       EJB: Tecnología de servidor para el
        desarrollo y despliegue de componentes
        que contienen la lógica de negocio de una
        aplicación empresarial
       Lo EJBs son escalables, transaccionales y
        seguros en utilización multiusuario.




Daniel Fernández Lanvin
   Componentes Enterprise
   JavaBeans
       Tres tipos:
             De sesión, con estado y sin estado
             De entidad.
             Dirigidos por mensajes.
       Contenedores EJB: Proporcionan los
        servicios de transacciones y persistencia y
        accede a las APIS de servicios y
        comunicaciones de J2EE.


Daniel Fernández Lanvin
   Arquitectura J2EE




Daniel Fernández Lanvin
   Servicios plataforma J2ee
       Simplifican el desarrollo de aplicaciones poniendo
        recursos a su disposición
             Servicios de nombrado: Proporcionan a las aplicaciones
              cliente, EJBs y componentes WEB el acceso al entorno
              de nombrado JNDI. Permite personalizar un componente
              sin necesidad de acceder o cambiar su código.
             Servicios de despliegue: Permiten personalizar los
              componentes y aplicaciones en el momento del
              empaquetamiento de despliegue.
                    Aplicación J2EE = conjunto de unidades o módulos.
                    Módulo = uno o más componentes J2EE para el mismo tipo
                     de contenedor
                    En cada módulo, un descriptor de despliegue.
Daniel Fernández Lanvin
   Módulos J2EE

       Empaquetan componentes o aplicaciones
        J2EE.
       Tres tipos:
             Archivos JAR (Java ARchive)
             Archivos WAR (Web Application ARchive)
             Archivos EAR (Enterprise Application ARchive)




Daniel Fernández Lanvin
   Archivos JAR (Java ARchive)


       Permite agrupar distintos archivos java en uno
        solo.
       Sigue el formato ZIP
       Incorporado en la versión 1.1 del JDK
       Contienen:
             Clases java
             Recursos que emplean las clases
       Es el empleado para empaquetar componentes
        EJBs, respetando una estructura de directorios


Daniel Fernández Lanvin
   Archivos WAR (Web Application
   ARchive)

       Permiten empaquetar en una sola unidad
        aplicaciones web java completas.
             Servlets y JSPs
             Contenido estático
                    Html
                    Imágenes
                    etc.)
             Otros recursos web




Daniel Fernández Lanvin
   Archivos EAR (Enterprise Application
   ARchive)

       Archivos desplegables en servidores de
        aplicaciones J2EE
       Contienen
             Archivos WAR
             EJBs (Empaquetados dentro de ficheros JAR)




Daniel Fernández Lanvin
   Servicios plataforma J2ee
             Servicio de transacciones
                    Operaciones atómicas
                    Un sistema transaccional garantiza que cada
                     unidad o transacción se termina
                     completamente sin interferencia de otros
                     procesos.
                       Commit

                       Rollbak




Daniel Fernández Lanvin
   Servicios plataforma J2ee
             Servicio de seguridad
                    Garantiza que los recursos son accedidos
                     por los usuarios autorizados. Distinguimos:
                       Autentificación

                       Autorización

                    Técnicas
                       Declarativa

                       Programática




Daniel Fernández Lanvin
   Tecnologías de servicios
       API JDBC
             Proporciona conectividad independiente de la
              base de datos entre la plataforma J2EE y un
              amplio rango de orígenes de datos
       JAXP
             Soporta el procesamiento de documentos XML
              mediante DOM y SAX, y transformaciones
              XSLT.



Daniel Fernández Lanvin
   Tecnologías de servicios
       JNDI
             Proporciona acceso a servicio de nombrado y
              directorio
             Independiente de implementaciones
              específicas (LDAP, NIS, etc.).
       JCA
             API estándar para la conexión de la plataforma
              J2EE a otros sistemas de información, ej: SAP.



Daniel Fernández Lanvin
   Tecnologías de servicios
       JTA (Java Transaction API)
             API estándar para el acceso a los monitores
              transaccionales con independencia de
              implementaciones específicas.
       JTS (Java Transaction Service).
             Especificación para la implementación de un
              gestor de transacciones que soporte JCA.
              Impone como debe comunicarse un monitor
              transaccional con sus clientes.


Daniel Fernández Lanvin
   Tecnologías de comunicaciones
       Mecanismos de comunicación,
        implementaciones de protocolos.
             Protocolos de Internet
                    TCP/IP, http, SSL
             Protocolos de invocación remota
             Protocolos OMG
                    Java IDL
                    RMI-IIOP




Daniel Fernández Lanvin
   Tecnologías de comunicaciones
       Tecnologías de mensajería.
             JMS
             JavaMail. Conjunto de clases e interfaces para el acceso a
              servidores de email. Ej, POP3, SMTP, IMAP4.




Daniel Fernández Lanvin
   Servicios WEB
       “Son aplicaciones modulares autodescriptivas que
        se pueden publicar, ubicar e invocar desde
        cualquier punto de la Web o desde el interior de
        una red local basada en estándares abiertos de
        Internet”
             Multiplataforma multilenguaje, tanto para el proveedor
              del servicio como para el usuario del mismo
             El acceso a servicios web se realiza a través de protocolos
              de Internet como HTTP o SMTP basados en XML




Daniel Fernández Lanvin
   Servicios WEB




Daniel Fernández Lanvin
    Arquitectura Servicios WEB
       Localización
             UDDI (Universal Description Discovery and
              integration): Medio para la publicación de
              servicios web en los registros de servicios web.
             Las empresas publican en los registros los
              servicios que ofrecen y la información técnica
              para acceder a ellos.
             XML, http, DNS, SOAP.



Daniel Fernández Lanvin
   Arquitectura Servicios WEB
       Descripción
             WSDL (Web Services Definition Languge)
                    Define y describe los servicios web
                    SOAP, XML.
       Invocación
             SOAP (Simple Object Acceso Protocol)
                    XML
                    Formatos de mensajes para encapsula invocaciones a
                     objetos en XML
                    Puede emplear distintos protocolos de Internet para el
                     transporte (SMTP, http, etc.



Daniel Fernández Lanvin

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:20
posted:10/1/2011
language:Spanish
pages:37