Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción A JEE
Introducción A JEE
com
Ventajas
Independencia de la plataforma portabilidad Gran conjunto de APIs Reusabilidad y modularidad Seguro en la ejecucin de cdigo mvil Gratis
Inconvenientes
Curva de aprendizaje pronunciada En el caso de sistemas Web, inadecuado para proyectos pequeos que puedan construirse con una solucin simple y rpida.
Internet y WWW representan el fundamento sobre los cuales se esta construyendo la economa de la informacin. La meta de JEE es definir un estndar que ayude a suplir los retos tecnolgicos en esta nueva era. JEE soporta aplicaciones distribuidas que toma ventajas de las tecnologas existentes y en desarrollo simplificando el proceso a travs de un modelo de aplicaciones basados en componentes. JEE soporta aplicaciones desde las C/S corporativas hasta ecommerce con Web en Internet. Defines estndares que son implementados por distintos proveedores y fabricantes, no fuerza a emplear ningn producto especfico. Mxima interoperabilidad (Web services, IIOP, RMI, etc.).
Conjunto de especificaciones y prcticas coordinadas que juntas permiten soluciones para el desarrollo, despliegue y gestin de aplicaciones multicapa centradas en servidor. Provee soporte tanto para el lado del servidor como para el lado del cliente para aplicaciones corporativas multinivel (multi-tier) Client-tier: interface de usuario Middle-tier (1 o ms): servicios al cliente y la lgica del negocio para la aplicacin. Backend-tier: gestin de datos
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 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)
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 Transaction API (JTA) (JSR 907) JavaBeans Activation Framework (JAF) 1.1 (JSR 925) JavaMail (JSR 919) Management and Security Technologies JEE Application Deployment (JSR 88) JEE Management (JSR 77) Java Authorization Contract for Containers (JSR 115)
De la mano de un modelo basado en componentes esta la nocin de contenedor. Un contenedor provee un ambiente estandarizado de ejecucin que provee servicios especficos 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 gestin de transacciones, ciclo de vida, localizacin y otros servicios.
Los contenedores tambin poseen acceso a sistemas de informacin empresarial (RDBMS, JDBC, etc.)
Tres categoras:
componentes servicios comunicaciones
Componentes: utilizados por desarrolladores para crear partes esenciales de una aplicacin empresarial Utilizados en la interfaz de usuario y lgica del negocio
Los componentes JEE se ejecutan dentro de su correspondiente contenedor. El contenedor proporciona los servicios necesarios a los componentes en tiempo de ejecucin Permite declarar en lugar de programar determinados aspectos de comportamiento de los componentes
Cuatro aspectos:
Contrato de componentes API de servicio del contenedor Servicios Declarativos Otros servicios de contenedores
Los componentes son gestionados por el contenedor. Para eso, deben cumplir el contrato del contenedor para el tipo de componentes en concreto: conjunto de mtodos a
El contenedor aporta una implementacin para las APIs de extensin de java. Ejemplo: Implementa el servicio de JMS ofreciendo al desarrollador
lugar de programarse.
La declaracin (por ejemplo, especificar que un mtodo tiene que estar inmerso en una transaccin) se realiza mediante descriptores de despliegue. Descriptor de despliegue: Contrato entre el contenedor y el componente.
El contenedor ofrece servicios adicionales que implementan partes de la aplicacin no ligadas a negocio:
Gestin del ciclo de vida del componente Reserva de recursos Publicacin de componentes y otros recursos en espacio JNDI Clustering. Etc.
Cuatro tipos de componentes Componentes Web Componentes EJB Componentes de aplicaciones cliente
Aplicaciones java que viven dentro de la jvm
Applets
Requieren un contenedor de applets
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.
JSP:
Respuesta de Sun a las ASP de Microsoft Cuando se compilan, generan un servlet. Son pginas html con cdigo java incrustado.
Se ejecutan en un contenedor Web: Contenedor web = contenedor JSPs + contenedor servlets Proporciona los servicios necesarios para la ejecucin de servlets y jsps, y controla su ciclo de vida. Escucha, decodifica y responde peticiones http/https.
desarrollo y despliegue de componentes que contienen la lgica de negocio de una aplicacin empresarial
Lo EJBs son escalables, transaccionales y seguros en utilizacin multiusuario.
Tres tipos:
De sesin, 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 JEE.
Servicio de transacciones
Operaciones atmicas Un sistema transaccional garantiza que cada unidad o transaccin se termina completamente sin interferencia de otros procesos.
Commit Rollbak
Servicio de seguridad Garantiza que los recursos son accedidos por los usuarios autorizados. Distinguimos:
Tcnicas
Autentificacin Autorizacin Declarativa Programtica
API JDBC
Proporciona conectividad independiente de la base de datos entre la plataforma JEE y un amplio rango de orgenes de datos
JAXP
Soporta el procesamiento de documentos XML mediante DOM y SAX, y transformaciones XSLT.
JNDI
Proporciona acceso a servicio de nombrado y directorio Independiente de implementaciones especficas (LDAP, NIS, etc.).
JCA
API estndar para la conexin de la plataforma JEE a otros sistemas de informacin, ej: SAP.
Tecnologas de mensajera.
JMS JavaMail. Conjunto de clases e interfaces para el acceso a servidores de email. Ej, POP3, SMTP, IMAP4.
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 estndares 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 travs de protocolos de Internet como HTTP o SMTP basados en XML
Localizacin
UDDI (Universal Description Discovery and integration): Medio para la publicacin de servicios web en los registros de servicios web. Las empresas publican en los registros los servicios que ofrecen y la informacin tcnica para acceder a ellos. XML, http, DNS, SOAP.
Descripcin
WSDL (Web Services Definition Languge) Define y describe los servicios web SOAP, XML.
Invocacin
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.
Es un programa que provee la infraestructura necesaria para las aplicaciones empresariales Qu quiere decir esto?
Que los programadores van a poder dedicarse casi en exclusiva a implementar la lgica del dominio, ya que servicios de uso comn, como transacciones, seguridad, persistencia, etc. ya son proporcionados por el servidor Web Se ha convertido en una pieza de software clave para cualquier empresa dedicada al comercio electrnico Es una capa intermedia (middleware) que se sita entre el servidor Web y las aplicaciones y bases de datos subyacentes
Aplicacin cliente
Aplicacin cliente
Aplicacin cliente
Servidor de aplicaciones
J2EE
CORBA
.NET
SGBD
Comienzan a surgir cuando queda claro las aplicaciones cliente/servidor no iban a ser escalables a un gran nmero de usuarios Se haca necesario mover las reglas de negocio a algn lugar intermedio entre los clientes y la base de datos (Separation of Concerns). Empezaron a surgir productos para hacer esa tarea
Cada compaa los llamaba de una forma distinta Servidores de transacciones, servidores de aplicaciones
Los llamasen como los llamasen, estaban diseados para gestionar de forma centralizada el modo en que los clientes deban conectarse a la base de datos o a los servicios con los que tenan que interoperar
Clustering
El servidor ha de conservar informacin entre peticiones del usuario a lo largo de la duracin de una sesin
En cualquier aplicacin de comercio electrnico, es necesario poder identificar al usuario a travs de su navegacin por el sitio Web
Autenticacin, adicin de productos al carrito de la compra, etc.
La implementacin a mano se complicara enormemente en el caso de contar con varios servidores (equilibrado de carga)
La peticin de un usuario registrado en la mquina A puede ser redirigida al servidor B
Los servidores de aplicaciones proporcionan mecanismos de equilibrado de carga (aspecto clave para la escalabilidad)
Por equilibrado de carga (load balancing) se entiende la capacidad de repartir el procesamiento entre distintos servidores
No es tan sencillo como aadir una nueva mquina y ya est Adems de la escalabilidad, se consigue una mayor tolerancia a fallos
Las peticiones de los clientes se redirigen a la mquina que ms desocupada se encuentre en ese momento Mejora de rendimiento de la aplicacin
Los servidores de aplicaciones proveen facilidades para administrar conexiones a bases de datos relacionales
Oracle, SQL Server, DB2
Los componentes (las clases que implementan la lgica del negocio) acceden a ellas de forma estndar
Independiente de la base de datos subyacente
Abrir una conexin a una base de datos suele ser un proceso costoso
No es viable abrir una nueva conexin por cada consulta a la base de datos Penalizara enormemente el rendimiento de la aplicacin
Los servidores de aplicaciones suelen contar con una serie de conexiones permanentemente abiertas que distribuye de forma transparente a los distintos procesos
Se debera poder configurar el nmero de conexiones abiertas, e incluso la poltica de asignacin
Transaccin: secuencia de pasos que, o se ejecutan todos, o si no el sistema queda en el estado original
Son un elemento bsico de cualquier aplicacin comercial Sera complejsimo implementarlas a mano Con un servidor de aplicaciones que tenga esta caracterstica, bastara con indicarle dnde empieza y termina la transaccin
Encargndose l de deshacer los pasos intermedios en caso de un error del sistema Evitan que haya informacin inconsistente
Actualmente, las dos plataformas ms comunes son JEE y.NET, pero adems ColdFussion Tibco CORBA Tuxedo ETC
Base Datos