Introducción a J2EE

37
JavaEE – Java Enterprise Edition Java Enterprise Edition www.javasoft.com

description

Diapositivas de introducción a J2EE donde se indican sus características y servicios más importantes

Transcript of Introducción a J2EE

Page 1: Introducción a J2EE

JavaEE –Java Enterprise EditionJava Enterprise Edition

www.javasoft.com

Page 2: Introducción a J2EE

¿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

Page 3: Introducción a J2EE

¿Por qué Java en el servidor?

� Inconvenientes� Curva de aprendizaje pronunciada

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

Page 4: Introducción a J2EE

¿Qué es JEE?

� Internet y WWW representan el fundamento sobre los cuales se esta construyendo la economía de la información.

� La meta de JEE es definir un estándar que ayude a suplir los retos tecnológicos en esta nueva era.

� JEE soporta aplicaciones distribuidas que toma � JEE 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.

� JEE 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.).

Page 5: Introducción a J2EE

Plataforma JEE

� “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 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

Page 6: Introducción a J2EE

APIs y Especificaciones JavaEE

Web Services Technologies

Implementing Enterprise Web Services (JSR 109)Java API for XML-Based Web Services (JAX-WS) 2.0 (JSR 224)Java API for XML-Based RPC (JAX-RPC) 1.1 (JSR 101)Java Architecture for XML

Enterprise Application Technologies

Enterprise JavaBeans 3.0 (JSR 220)JEE Connector Architecture 1.5 (JSR 112)Common Annotations for the Java Platform (JSR 250)Java Message Service API (JSR 914)Java Persistence API (JSR 220)Java Architecture for XML

Binding (JAXB) 2.0 (JSR 222)SOAP with Attachments API for Java (SAAJ) (JSR 67)Streaming API for XML (JSR 173)Web Service Metadata for the Java Platform (JSR 181)

Web Application Technologies

Java Servlet 2.5 (JSR 154)JavaServer Faces 1.2 (JSR 252)JavaServer Pages 2.1 (JSR 245)JavaServer Pages Standard Tag Library (JSR 52)

En continua revisión y expansión

Java Persistence API (JSR 220)Java Transaction API (JTA) (JSR 907)JavaBeans Activation Framework (JAF) 1.1 (JSR 925)JavaMail (JSR 919)Management and Security TechnologiesJEE Application Deployment (JSR 88)JEE Management (JSR 77)Java Authorization Contract for Containers (JSR 115)

Page 7: Introducción a J2EE

Entorno JEE

Page 8: Introducción a J2EE

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 � 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.)

Page 9: Introducción a J2EE

Tecnologías de la plataforma

JEE.Clasificación

� Tres categorías:� componentes

� servicios

� comunicaciones� 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

Page 10: Introducción a J2EE

Tecnologías de componentes

� Componente: unidad de software de nivel aplicación� Ej: Javabeans, applets, componentes web, etc.

� Los componentes JEE se ejecutan dentro � Los componentes JEE 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

Page 11: Introducción a J2EE

Contenedores JEE

�Cuatro aspectos:

� Contrato de componentes

� API de servicio del contenedorAPI de servicio del contenedor

� Servicios Declarativos

� Otros servicios de contenedores

Page 12: Introducción a J2EE

Contrato de componentes

� Los componentes son gestionados por el contenedor.

� Para eso, deben cumplir el contrato del contenedor para el tipo de 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.

Page 13: Introducción a J2EE

API del servicio del contenedor

� El contenedor aporta una implementación para las APIs de extensión de java.

Ejemplo:Ejemplo:

� Implementa el servicio de JMS ofreciendo al desarrollador� un driver que cumple la especificación

� Gestores de colas y apartados

Page 14: Introducción a J2EE

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 � 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.

Page 15: Introducción a J2EE

Otros Servicios

�Gestión del ciclo de vida del componente

�Reserva de recursos�Reserva de recursos

� Publicación de componentes y otros recursos en espacio JNDI

�Clustering.

� Etc.

Page 16: Introducción a J2EE

Componentes Web

� Entidades que sirven respuestas a peticiones http

� Normalmente generan interfaces de usuario basadas en Webusuario basadas en Web

� Servlets:� Extienden la funcionalidad de un servidor Web

� Portables

� Se ejecutan en un contenedor de servlets.

Page 17: Introducción a J2EE

Componentes Web

�JSP:

�Respuesta de Sun a las ASP de Microsoftde Microsoft

�Cuando se compilan, generan un servlet.

�Son páginas html con código java incrustado.

Page 18: Introducción a J2EE

Componentes Web

� Se ejecutan en un contenedor Web:

� Contenedor web = contenedor JSPs + contenedor servlets

Proporciona los servicios necesarios � 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.

Page 19: Introducción a J2EE

Componentes Enterprise

JavaBeans

� EJB: Tecnología de servidor para el desarrollo y despliegue de componentes que contienen la lógica de negocio de una la lógica de negocio de una aplicación empresarial

� Lo EJBs son escalables, transaccionales y seguros en utilización multiusuario.

Page 20: Introducción a J2EE

Componentes Enterprise

JavaBeans

� Tres tipos:� De sesión, con estado y sin estado

� De entidad.

� Dirigidos por mensajes.� Dirigidos por mensajes.

� Contenedores EJB: Proporcionan los servicios de transacciones y persistencia y accede a las APIS de servicios y comunicaciones de JEE.

Page 21: Introducción a J2EE

Arquitectura JEE

Page 22: Introducción a J2EE

Servicios plataforma JEE

� 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 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 JEE = conjunto de unidades o módulos.

� Módulo = uno o más componentes JEE para el mismo tipo de contenedor

� En cada módulo, un descriptor de despliegue.

Page 23: Introducción a J2EE

Módulos JEE

� Empaquetan componentes o aplicaciones JEE.

� Tres tipos:� Archivos JAR (Java ARchive)

� Archivos WAR (Web Application ARchive)

� Archivos EAR (Enterprise Application ARchive)

Page 24: Introducción a J2EE

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� 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

Page 25: Introducción a J2EE

Archivos WAR (Web Application

ARchive)

� Permiten empaquetar en una sola unidad aplicaciones web java completas.� Servlets y JSPs� Servlets y JSPs

� Contenido estático�Html

�Imágenes

�etc.)

� Otros recursos web

Page 26: Introducción a J2EE

Archivos EAR (Enterprise Application

ARchive)

�Archivos desplegables en servidores de aplicaciones JEE

�Contienen�Contienen

� Archivos WAR

� EJBs (Empaquetados dentro de ficheros JAR)

Page 27: Introducción a J2EE

Servicios plataforma JEE

�Servicio de transacciones

� Operaciones atómicas

� Un sistema transaccional � Un sistema transaccional garantiza que cada unidad o transacción se termina completamente sin interferencia de otros procesos.�Commit

�Rollbak

Page 28: Introducción a J2EE

Servicios plataforma JEE

� Servicio de seguridad

� Garantiza que los recursos son accedidos por los usuarios autorizados. Distinguimos:autorizados. Distinguimos:� Autentificación

� Autorización

� Técnicas� Declarativa

� Programática

Page 29: Introducción a J2EE

Tecnologías de servicios

� API JDBC� Proporciona conectividad independiente de la base de datos entre la plataforma JEE y un amplio rango de orígenes de JEE y un amplio rango de orígenes de datos

� JAXP� Soporta el procesamiento de documentos XML mediante DOM y SAX, y transformaciones XSLT.

Page 30: Introducción a J2EE

Tecnologías de servicios

� JNDI� Proporciona acceso a servicio de nombrado y directorio

� Independiente de implementaciones � Independiente de implementaciones específicas (LDAP, NIS, etc.).

� JCA� API estándar para la conexión de la plataforma JEE a otros sistemas de información, ej: SAP.

Page 31: Introducción a J2EE

Tecnologías de servicios

� JTA (Java Transaction API)� API estándar para el acceso a los monitores transaccionales con independencia de implementaciones 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.

Page 32: Introducción a J2EE

Tecnologías de comunicaciones

� Mecanismos de comunicación, implementaciones de protocolos.� Protocolos de Internet

� TCP/IP, http, SSL� TCP/IP, http, SSL

� Protocolos de invocación remota

� Protocolos OMG

� Java IDL

� RMI-IIOP

Page 33: Introducción a J2EE

Tecnologías de comunicaciones

� Tecnologías de mensajería.� JMS

� JavaMail. Conjunto de clases e interfaces para el acceso a servidores interfaces para el acceso a servidores de email. Ej, POP3, SMTP, IMAP4.

Page 34: Introducción a J2EE

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 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

Page 35: Introducción a J2EE

Servicios WEB

Page 36: Introducción a J2EE

Arquitectura Servicios WEB

� Localización� UDDI (Universal Description Discovery and integration): Medio para la publicación de servicios web en los 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.

Page 37: Introducción a J2EE

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.