Enterprise Java Beans JBoss AS Ronier Rodríguez 06-40233 Enterprise Java Beans. Preludio - En los 60, grandes maquinas usadas por organizaciones gigantes. - En los 70, Minicomputadores y Timesharing. Aún centralizadas. - En los 80, primeros computadores personales. Islas de información. - Modelo Cliente-Servidor. Datos Centralizados o particionados, pero con facilidades de control y consistencia de datos. - Aplication Servers: cliente recibiendo peticiones de tareas. Débiles por problemas de versiones. Enterprise Java Beans. Preludio - Nacimiento de la industria del Middleware. - Monitores de procesamiento de transacciones. - Proveedores de protocolos de comunicación y transacciones. - Sistemas n-capas, que empezaron a ver la red como un pool de servicios. - Lenguajes orientados a objetos. Entra en juego la solución CORBA. - Nace Enterprise Java Beans como aplication server orientado a objetos. - Proveer un framework para componentes que puedan ser agregados a un servidor, extendiendo su funcionalidad. - Alta compatibilidad con CORBA. Objetivos del Enterprise Java Beans. - Diseñado para que los desarrolladores puedan crear aplicaciones, libres de los detalles de las capas inferiores, como manejo de transacciones, hilos, balanceo de carga, etc. Los desarrolladores de aplicaciones pueden concentrarse en la lógica de negocio. Departamentos separados de desarrollo de aplicaciones. - Las responsabilidades del cliente, servidor, y conexiones individuales quedan bien definidas, como un contrato. - Apunta a convertirse en el standart de las aplicaciones Cliente/Servidor. Provee posibilidad de que aplicaciones desarrolladas por diferentes vendors se puedan acoplar. El acoplamiento no requiere recompilar la aplicación, por lo que posee una gran ventaja sobre soluciones especificas a plataformas. Composición del Enterprise Java Beans. Enterprise Java Beans esta formado por dos elementos base: Enterprise JavaBeans Componentes: es una clase Java, escrita por un desarrollador EJB, que implementa la lógica de negocio. Todas las demás clases soportan acceso de cliente o proveen servicios (como verificación y persistencia) a las clases componentes. Enterprise JavaBeans Contenedores: Los contenedores es donde las clases componentes habitan. Proveen los servicios para manejo de transacciones, versiones, recursos, y escalabilidad. Múltiples componentes suelen existir en un mismo contenedor, y de agregar suficientes, cualquier cliente puede convertirse en servidor, he allí la idea de la escalabilidad de Enterprise Java Beans. Funcionamiento Enterprise Java Beans. Objetos Enterprise Java Beans Un contenedor EJB puede contener objetos de dos tipos principales, a saber, Session Beans y Message Driven Beans. Los de sesión son todas las funciones que definen la lógica de negocio, desde pequeñas a grandes operaciones, con o sin control de persistencia. Los de mensajes son los pasan objetos a través de los componentes. Los Session Beans se dividen: - Stateful Session Beans - Stateless Session Beans - Singleton Session Beans - Message driven Beans. Ejecución Enterprise Java Beans. Cada Enterprise Java Beans desplegado provee una clase de especificaciones y dos interfaces que definen la firma para los métodos remotos. En cada contenedor encontraremos: - Clase especificadora del contenedor. - Objetos EJB. - Required deployment descriptor. - Annotations para las características de conexión y seguridad. - Home Interface. - Remote Interface. Ejecución Enterprise Java Beans. Servidores de aplicaciones Servidores privados: - WebLogic de Oracle - WebSphere de IBM - EAServer de sybase Inc. Servidores Libres: - JOnAS de ObjectWeb - JBoss AS de RedHat - Geronimo y tomEE de Apache - GlassFish de Oracle Definición de JBoss JBoss es un servidor de aplicaciones J2EE de código abierto implementado en Java puro. Al estar basado en Java, JBoss puede ser utilizado en cualquier sistema operativo para el que esté disponible Java. Los principales desarrolladores trabajan para una empresa de servicios, JBoss Inc., adquirida por Red Hat en abril del 2006, fundada por Marc Fleury, el creador de la primera versión de JBoss. El proyecto está apoyado por una red mundial de colaboradores. Los ingresos de la empresa están basados en un modelo de negocio de servicios. Ventajas de JBoss • • • • • • • • • • • • JBoss fue el primer servidor de aplicaciones de código abierto. Cumple los estándares. Incrustable, orientado a arquitectura de servicios. Flexibilidad. Servicios del middleware para cualquier objeto de Java. Ayuda profesional 24x7 de la fuente. Soporte completo para JMX. Implementa la especificación de EJB. Agrupamiento en clúster Equilibrio de carga. JNDI (Java Naming and Directory Interface). Integración con Hibernate (para programación de persistencia; JPA) Funcionamiento general de JBoss Se trata de un Middleware, por lo que configura aplicaciones para facilitar su invocación. Posee alta compatibilidad con EJB, opera con las declaraciones de los contenedores. Es un servidor de aplicaciones web, sus funcionalidades están definidas en torno a ello. JBOSS automáticamente implementa aplicaciones Web de un volumen de contenido montado localmente o de un sistema de archivos de red accesible a través del terminal fs. Hay disponibles varios entornos de ejecución preconfigurados, derivados de las configuraciones de JBoss estándar. La ruta a los documentos de aplicación es configurable, de modo que el mismo volumen se pueda compartir entre varios servidores Web u otros dispositivos que sirvan contenido diferente. Funcionamiento general de JBoss JBOSS tiene tres terminales de salida genéricos pensados para acceder a servicios externos: el terminal db sirve para acceder a varias bases de datos; el terminal fs sirve para acceder un sistema de almacenamiento de archivos compartido (con NFS); y el terminal aux para enviar mensajes de correo electrónico a un servidor SMTP. El terminal de registro se puede usar para conectar JBOSS a un sistema de archivos compartido donde JBOSS puede almacenar archivos de registro. El servidor se configura mediante propiedades. Estas propiedades están diseñadas para cubrir la mayoría de los usos de una forma fácil de configurar y, en la mayor parte de los casos, solamente hay que configurar unos cuantos con valores no predeterminados.