370 likes | 515 Views
J2EE – Java 2 Enterprise Edition. www.javasoft.com. ¿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. ¿Por qué Java en el servidor?. Inconvenientes
E N D
J2EE – Java 2 Enterprise Edition www.javasoft.com Aquitectura WEB
¿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
¿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.
¿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.).
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
APIs y Especificaciones J2EE • JAXP 1.1 • JCA 1.0 • JAAS 1.0 • XML-RPC • Web Services • JMX (Java Management Extensions) • Etc. En continua revisión y expansión • EJBs 2.1 • JDBC 2.0 • Servlets 2.3 • JSPs 1.2 • JMS 1.0 • JNDI 1.2 • JTA 1.0 • JavaMail 2.0 • JAF 1.0
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.)
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
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
Contenedores J2EE • Cuatro aspectos: • Contrato de componentes • API de servicio del contenedor • Servicios Declarativos • Otros servicios de contenedores
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 son interfaces java.
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
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.
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.
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.
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.
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.
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.
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.
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 omódulos. • Módulo = uno o más componentes J2EE para el mismo tipo de contenedor • En cada módulo, un descriptor de despliegue.
Módulos J2EE • Empaquetan componentes o aplicaciones J2EE. • Tres tipos: • Archivos JAR (Java ARchive) • Archivos WAR (Web Application ARchive) • Archivos EAR (EnterpriseApplication ARchive)
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
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
Archivos EAR (Enterprise Application ARchive) • Archivos desplegables en servidores de aplicaciones J2EE • Contienen • Archivos WAR • EJBs (Empaquetados dentro de ficheros JAR)
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
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
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.
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.
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.
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
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.
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
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.
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.