Sei sulla pagina 1di 70

Enterprise Java Beans EJB

03.02.05

Omar Gmez

Agenda
Qu es Java? Conceptos bsicos Plataformas Arquitecturas de negocios empresariales J2EE Enterprise Java Beans Desarrollo y despliegue de un EJB usando el servidor de aplicaciones JBOSS Desarrollo y despliegue de un EJB usando el servidor de Aplicaciones Borland Enterprise Server Mostrar una aplicacin que utiliza distintos clientes para acceder a un servidor de aplicaciones

Qu es Java?
Lenguaje de programacin ( OO ) Herramientas y entorno de desarrollo Clases, libreras y APIs que son entregadas como estndar

Conceptos bsicos
JVM. El compilador de java genera bytecodes los cuales son interpretados por una maquina virtual, esta maquina virtual procesa los bytecodes sobre una arquitectura especifica.
HelloWorldApp.class

Java Virtual Macchine

Conceptos bsicos
JRE. Java Runtime Enviroment, que incluye libreras principales, plugins, JVM. JDK. Java Development Kit. Que incluye, el lenguaje java, herramientas de desarrollo, APIs, JRE.

Conceptos bsicos

Plataformas
J2ME Java 2 Platform, Micro Edition. Desarrollada para que Java corra sobre dispositivos como son: handhelds, celulares, relojes, etc. Contiene un conjunto de libreras mas reducido que J2SE. J2SE Java 2 Platform, Standard Edition. Conjunto de herramientas para desarrollar aplicaciones Java que incluye APIS, JDK, JRE, JVM, ejemplos de cdigos fuente. J2EE Java 2 Platform Enterprise Edition. Proporciona un conjunto de herramientas y libreras necesarias para extender a java en tecnologas de server side. J2EE es un sper conjunto de J2SE.

Arquitecturas de negocios empresariales


Cliente-Servidor 2 Capas Cliente-Servidor 3 Capas Servidores de Aplicaciones

Cliente-servidor 2 capas
Cliente-Servidor usada en los 80s y 90s
Lgica de Presentacin DB Lgica de Negocio Servidor

Cliente

Cliente-servidor 2 capas
Desventajas. La capa lgica de negocio y la capa lgica de presentacin son mezcladas, lo que resulta difcil de entender el sistema y realizar mantenimiento.

Cliente-servidor 2 capas
Lgica de Negocio

Lgica de Presentacin

Cliente-servidor 3 capas
Separa la capa lgica de presentacin y lgica de negocio en 2 capas
Lgica de Presentacin Lgica de Negocio

DB

Servidor Cliente Servidor de Negocios

Cliente-servidor 3 capas
Desventajas Complejidad involucrada en desarrollar la aplicacin Se requiere conocimientos de computo distribuido( Ej.. RMI, CORBA ) Conocimiento para midleware ( transacciones, pool de conexiones, accesos a dbs, seguridad, networking, etc. )

Aspectos a considerar en una aplicacin empresarial


Llamadas a mtodos remotos Balanceo de cargas Redundante a fallas transacciones Clustering Dynamic redeployment Logging and auditing Threading Object life cycle Resource Pooling Seguridad Caching

Servidores de aplicaciones
Proporcionan un Framework necesario para desarrollar una aplicacin multicapa. Proporcionan servicios tales como computo distribuido, multihilo, seguridad y persistencia. En el pasado cada servidor de aplicacin era desarrollado independientemente y por lo tanto implementaba los servicios de diferente manera. Migrar una aplicacin de un servidor de aplicaciones a otro era difcil imposible.

Servidores de aplicaciones
En 1997 un grupo de vendedores de servidores de aplicaciones ( BEA, IBM, Oracle, Sybase, SUN entre otros) comenzaron a trabajar juntos para definir un estndar en los servidores de aplicacin basados en el lenguaje Java. La visin fue crear un conjunto de servicios estandarizados y unas APIs para acceder a estos servicios. Enfocarse en la aplicacin y no en midleware.

Estndar J2EE
Define rigurosamente un conjunto de servicios que un servidor de aplicaciones debe tener, junto con una API estndar para acceder a estos servicios. Basado en Java. J2EE no es un producto es una especificacin, en base a esta especificacin existen muchas implementaciones. Las implementaciones son proporcionadas por fabricantes terceros ( IBM, BEA, Borland,...), estas implementaciones deben de cumplir la especificacin J2EE.

Servicios J2EE

Servicios J2EE
RMI-IIOP Java Remote Method Invocation-Inter Internet Object Protocol JNDI Java Naming and Directory Interface JDBC Java Database Connectivity JTA/JTS Java Transaction API/ Java Transaction Service JMS Java Message Service Java Mail JAAS Java Authentication and Authorization JCA J2EE Connector Architecture JAXP Java API for XML Parsing

Contenedores J2EE
Contenedor de Applets Contenedor Web Contenedor de EJBs Contenedor de aplicaciones cliente

Contenedor Web
Servlets Java Server Pages

Servlets
Proporcionan un mtodo para escribir programas del lado del servidor. Su uso comn es la generacin de paginas web dinmicas.

Servlets

Servlets

Java Server Pages


Permiten a los diseadores web construir paginas web interactivas sin entrar en detalles del lenguaje java. Se ven muy similares al estndar HTML. La diferencia es que JSP permite fragmentos de cdigo Java incrustado en la pagina web.

Java Server Pages

Java Server Pages

Contenedor de EJBs
Session Beans Entity Beans Message Driven Beans

Ejemplo de arquitectura J2EE

Enterprise Java Beans


EJB

Qu es EJB?
Componentes con interfaces definidas. Alojados dentro de un Contenedor. Pueden ser colocados en un entorno multicapa distribuido.

Motivacin
Usados para ayudar a resolver problemas de negocios. Realizan la lgica de negocios. Acceder a bases de datos. Acceder a otros sistemas.

Caractersticas
Componentes Distribuidos Portables Diferentes tipos de clientes pueden acceder a ellos. ( Servles, JSP, dispositivos mviles, CORBA )

Tipos de clientes

Roles
Bean provider Application Assembler The EJB Deployer The System Administrator Container Provider Server Provider

Roles

Objetos distribuidos, el principio de EJB


Un objeto distribuido es un objeto que puede ser llamado desde un sistema remoto. La complejidad en las comunicaciones de la red es oculta por stubs y skeletons.

Red

Explicit middleware
Algunos ejemplos de objetos Middleware Java RMI, CORBA, DCOM. APIs en el Middleware son explcitamente invocadas por aplicaciones de usuario para funciones a nivel del control de sistema( transacciones, seguridad, etc. )

Red

Implicit middleware
Ejemplos de componentes basados en Middleware: EJB, CORBA Component Model, COM+. APIs en Middleware son invocadas implcitamente por el component framework( contenedor de componentes ).

Red

Tecnologas primarias de EJB


Java Remote Method Invocation ( RMI )
Los componentes EJB proporcionan interfaces RMI.

Common Object Request Broker Architecture( CORBA )


Muchos conceptos de EJB vienen de CORBA. Los contenedores EJBs son implementados en RMI sobre IIOP.
Interoperatividad con clientes y servidores CORBA

Tipos de enterprise beans


Session Beans
Modelan procesos de negocio Dos tipos:
Con estado Sin estado

Entity Beans
Modelan datos de negocio Dos tipos:
El Contenedor maneja la persistencia El Bean maneja la persistencia

Message-driven Beans
Capaces de enviar y recibir mensajes asncronos

Ingredientes de un EJB
The Enterprise Bean class :The EJB object The Remote Interface :The Home object The Home Interface The Deployment Descriptor The Vendor Specific Files :The EJB Local object The Local Interface :The Local Home object The Local Home Interface

Enterprise Bean class


Implementacin de la lgica del negocio Session, Entity, Message Driven Bean

EJB object
Realiza operaciones de Midleware implcitamente como son: Manejo de transacciones distribuidas Seguridad Administracin de recursos y ciclo de vida del bean Persistencia Accesibilidad remota Ayuda localizacin transparente de componentes Monitoreo Sabe como realizar la lgica intermedia que un contenedor EJB requiere antes de que una llamada a un mtodo sea proporcionada por una instancia de un Bean Class. Un EJB object es el interceptor de solicitudes, o el pegamento entre el cliente y el Bean.

EJB object
El cliente siempre trabaja con los EJB objects, nunca lo hace directamente con los beans.

Remote interface
La interfaz duplica todos los mtodos de la lgica de negocio que expone el Bean class

Home object
Como adquieren los clientes las referencias de los EJB objects? Para adquirir un referencia a un EJB object, el cliente pregunta por un EJB object de un EJB object Factory. Factory es responsable de encontrar, crear y destruir los EJB objects.

Home interface
Define los mtodos para crear, destruir y encontrar EJB objects El Home object implementa la interfaz EJBHome

Home interface

Local interfaces
EJBLocalObject EJBLocalHome Corren sobre la misma VM del Contenedor de EJB reduccin el tiempo de las llamadas a mtodos

Deployment Descriptor
Especifica requerimientos para el EJB
Manejo del bean y ciclo de vida Requerimientos de persistencia ( entity beans) Requerimientos de transaccin Requerimientos de seguridad

The Deployment Descriptor

MathLib model
Comes with Java 2 platform

Comes with EJB distribution

Supplied by Bean provider

Generated by container vendors tools

EJB archivo .jar


Todos los ingredientes de un componente EJB son empacados en un archivo JAR
Un archivo JAR puede contener cdigo de varios EJBs. Para todos los EJBs existe un deployment descriptor.

Los archivos JAR son desplegados (deployment) en un contenedor de un servidor de aplicaciones.

Elementos de cdigo generado


Clases stub y skeleton
Generados durante la compilacin o el deployment

Clases EJB Home y EJB object


Para interceptar las llamadas de las interfaces de los componentes EJBHome y EJBObject Generados durante el despliegue

EJB en accin!!!
Registro y lookup

EJB en accin!!!
Creacin de un nuevo EJB

EJB en accin!!!
llamadas a mtodos de negocio

EJB en accin!!!

Interfaces remote y acceso local


Los EJBs pueden ser llamados: Remotamente: desde otro proceso( Aplicaciones Java, applets, etc) Localmente: desde otros componentes EJB o componentes Web desplegados en la misma Maquina Virtual de Java Las interfaces EJBHome y EJBObject proporcionan transparencia local. Pueden ser usadas para accesar a ambos EJBs localmente y remotamente Los clientes no saben de la ubicacin del EJB Los datos son pasados por valor( copias caras ) Incluso si un cliente es local

Interfaces locales
Un EJB proporciona interfaces EJBLocalHome y EJBLocalObject
Usados por clientes locales Todava, el EJB puede proporcionar interfaces remotas

Los datos son pasados por referencia( no copias) No hay transparencia en la ubicacin
Un cliente remoto no puede llamar a una interfaz local

Mejora de rendimiento a un precio de perder las transparencia de la ubicacin.

EJB con interfaces local y remote

Clientes llamando a EJB

Ejemplo 1
Desarrollo y despliegue de un EJB usando el servidor de aplicaciones JBOSS

Ejemplo 2
Desarrollo y despliegue de un EJB usando el servidor de aplicaciones Borland Enterprise Server

Referencias
Winder & Roberts. Developing Java Software 2ed. John Wiley & Sons Ed Roman, Scott Ambler, Tyler Jewell. Mastering Enterprise JavaBeans 2ed. John Wiley & Sons Ian Sommerville. Software Engineering 6ed. Addison Wesley Paul R. Reed, Jr. Developing Applications with Java and UML. Addison Wesley Enterprise JavaBeans Specification, version 2.1 .Sun Microsystems Java 2 Platform Enterprise Specification, version 1.4 .Sun Microsystems www.borland.com www.jboss.org

Gracias !!!

Potrebbero piacerti anche