Java 2 Platform Enterprise Edition J2EE Java 2 Platform Enterprise Edition
Estilos de Arquitecturas de Sistemas Distribuidos Flujos de datos (tuberías y filtros) Abstracción de datos (cliente/servidor, orientación a objetos) Capas (sistemas operativos, redes) Repositorios (memoria compartida, archivos, bases de datos, etc.)
Estilo de Flujo de Datos
Estilo Cliente/Servidor
Estilo de Capas
Estilo de Repositorios
Estilo Híbrido
J2EE La plataforma J2EE (Java 2 Platform Enterprise Edition) soporta un nivel de aplicación distribuida multinivel basado en componentes escritos en Java Componentes cliente: aplicaciones de cliente y applets Componentes web: servlets y JSP Componentes de negocio: EJB
Objetivos de J2EE Definir una arquitectura de componentes estándar para la construcción de aplicaciones distribuidas basadas en Java Separar los aspectos de lógica de negocio de otros soportados por la plataforma: transacciones, seguridad, ejecución multithreading, pooling y otros elementos de bajo nivel Filosofía Java: escribir una vez y ejecutar en cualquier parte Cubrir los aspectos de desarrollo, despliegue y ejecución del ciclo de vida de una aplicación
Arquitectura J2EE
Arquitecturas de Componentes J2EE
Servicios Estándar J2EE HTTP/HTTPS Java Transaction API (JTA) JDBC Java Message Service (JMS) Java Authentication and Authorization Service (JAAS) J2EE Connector Architecture Java API for XML Parsing (JAXP) Otros: RMI-IIOP, JavaIDL, JavaMail, JavaBeans Activation Framework (JAF)
Aplicación Web con J2EE
Aplicación no Web basada en J2EE
Arquitectura J2EE Los componentes se instalan en contenedores desde los que pueden utilizar los servicios de la plataforma El proceso de ensamblado de los componentes requiere especificar el soporte del servidor J2EE Seguridad: usuarios autorizados Modelo de gestión de transacciones: relaciones entre métodos que constituyen una transacción (tratados como una unidad) Java Naming and Directory Interface (JNDI): acceso a servicios de nombres y directorio Conectividad remota: permite que los clientes invoquen métodos en los EJBs como si estuvieran en la misma máquina virtual
Arquitectura basada en Contenedores de Componentes Un contenedor es un proceso donde se ejecutan los componentes El desarrollador tiene que especificar los componentes de la aplicación, los descriptores de despliegue (deployment)
Contenedores en J2EE
Tipos de Contenedores Contenedor de EJBs Contenedor web Gestiona la ejecución de EJBs en un servidor J2EE Contenedor web Gestiona la ejecución de las páginas JSP y servlets en un servidor J2EE Contenedor de aplicación cliente Gestiona la ejecución de los componentes de aplicación cliente en una máquina cliente Contenedor de applet Navegador con plug-in Java en una máquina cliente
Tipos de Contenedores
Qué es Software basado en Componentes? Componentes Software son unidades binarias de producción, adquisición y despliegue independientes que interaccionan para conseguir formar un sistema. Dichas unidades no tienen estado persistente
Qué es Software basado en Componentes? Esto es posible hoy en día gracias a: La tecnología de Objetos Lenguajes de Programación: C++, Java Análisis y diseño: Booch, OMT, UML Bases de datos orientadas a objetos Internet Software distribuido en la red XML Ya existen modelo de componentes EJB CCM COM
Por qué Componentes de Software? Reusabilidad Modularidad Software estándar vs. específico Unidades de despliegue Experiencia Mercado Estándares
Interface de un Componente Puntos de acceso a los componentes Un componente puede tener varias interfaces La especificación de las interfaces es un contrato
Dependencias del Contexto Un componente también debe especificar sus necesidades Interfaces requeridas (servicios que utiliza) Mundos de componentes para los que está preparado (CORBA, COM, J2EE) Entorno de ejecución (máquina, sistema operativo)
Modelos de Componentes de Software Microsoft .NET (COM) Perspectiva PC Sun J2EE Perspectiva Internet OMG CORBAT Component Model Perspectiva de corporaciones empresariales
Componentes Web Servlets JSP Applets Clases escritas en Java que procesan peticiones y construyen respuestas JSP Documentos basados en texto que contienen dos tipos de texto: una plantilla de datos estática que puede expresarse en un formato como HTML, WML o XML, y elementos JSP que determinan cómo la página construye el contenido dinámico Applets Páginas HTML estáticas, y clases de utilidad no se consideran componentes web en la especificación J2EE
Componentes de Negocio Lógica que resuelve las necesidades de un determinado dominio de aplicación Enterprise beans (EJBs) Pueden procesar datos recibidos del lado cliente y enviarlos al nivel de sistema de información para su almacenamiento Pueden recuperar datos del sistema de información, procesarlos y enviarlos al cliente 3 tipos de EJBs Bean de sesión: una conversación con un cliente Bean de entidad: datos persistentes Bean dirigido por mensajes: combina las características de un bean de sesión con el Java Message Service (JMS)
Productos en el Mercado
Dedicado a Adolfo Castelo