La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Enterprise JavaBeans Arvelo, Yolife Ascanio, Eduardo Chacón, Johnny Quintana, Susana Unversidad Simón Bolívar Departamento de Computación y T.I Sistemas.

Presentaciones similares


Presentación del tema: "Enterprise JavaBeans Arvelo, Yolife Ascanio, Eduardo Chacón, Johnny Quintana, Susana Unversidad Simón Bolívar Departamento de Computación y T.I Sistemas."— Transcripción de la presentación:

1

2 Enterprise JavaBeans Arvelo, Yolife Ascanio, Eduardo Chacón, Johnny Quintana, Susana Unversidad Simón Bolívar Departamento de Computación y T.I Sistemas de Operación III

3 Enterprise Java Beans (EJB )  Sistemas basados en cliente/servidor  Tecnología Enterprise JavaBeans El EJB Container Enterprise Beans Tipos de Beans Enterprise Beans como objetos distribuidos Estructutando soluciones basadas en Java Beans Clientes Enterprise Java Beans Logros, Criticas y Desventajas Ejemplo

4 Sistemas basados en cliente/servidor Dos niveles Fat - Client Dos niveles Thin - Client

5 Arquitectura Tres Niveles

6 Arquitecturas ArquitecturaProsContras Un nivelSimple Alto desempeño Auto contenida Centralizado Potencial para codigo spaghetti Dos nivelesLimpio, diseño modular Separa UI de la logica de negocios Debe diseñar e implementar protocolos de comunicación. Debe diseñar e implementar almacenamiento confiable

7 Arquitecturas (II) ArquitecturaProsContras Tres Nieveles Separa UI, logica de negocios y almacenamiento Almacenamiento confiable y replicable. Acceso concurrente y eficiente a los datos via transaciones Necesidad de adquirir BD. Necesidad de DBA El mapping entre objetos y bd relacionales es dificil N - niveles Soporta multiple aplicaciones facilmente Poco ineficiente Mayor comple- jidad, posibilidad de bugs Dificil de balancear la carga

8 Tecnología Enterprise JavaBeans Arquitectura Desarrollo y estructuración de aplicaciones Objetos distribuidos y componentes del lado del servidor Convenciones Protocolos Interfases Especificaciones EJB EJB Container

9 Ejemplo de una aplicación de cuatro niveles

10 Especificaciones La especificación exige un modelo de programacion, constituido por convenciones o protocolos y un conjunto de clases e interfaces sobre las cuales de apoya el EJB API. El modelo de programación de EJB provee a los desarrolladores y proveedores de beans, un conjunto de contratos que definen un estándar comun para el desarrollo. El principal logro de estos contratos es asegurar la portabilidad entre distintos proveedores y así soportar un gran conjunto de funcionalidades.

11 El EJB Container Los containers manejan almacenan a los enterprise bean (EJB) de la misma forma que los servidores web Java almacenan servlets o que los browser HTML almacenan applets.  Un EJB no puede funcionar fuera de un container  Los EJB Container manejan cada aspecto de los eb en tiempo de ejecucion, los cuales incluyen, acceso remoto al bean, seguridad, persistencia, transacciones concurrencia y acceso a los recursos.

12 Funcionamiento EJB Container Manejo de un EJB en en tiempo de ejecucion  El container protegé al bean del acceso directo desde las aplicaciones clientes.  Cuando un cliente invoca un metodo remoto de un eb, el contenedor primero intercepta esta para asegurar la seguridad de cada operacion que se desempenia en el bean.

13 Enterprise Beans "Enterprise Bean Class" "Home Interface" "Remote Interface" "Deployment Descriptor" Un EJB esta compuesto de cuatro partes:

14 Enterprise Beans Class Esta clase es el componente medular de un EJB, en esta clase se encuentran definidas todas los funciones utilizadas por un EJB, ya sean procedimientos rutinarios (operaciones matemáticas) o con lógica hacia bases de datos (con JDBC). En esta clase reside todo el código fuente o funcional que realiza operaciones, desde la activación del EJB hasta su destrucción incluyendo las funciones de negocios para el que éste fue diseñado.

15 Interfases  Home Interface: define un esqueleto para funciones utilizadas en el Enterprise Bean Class, las funciones que deben ser declaradas en son aquellas necesarias para la creacion-activacion de un EJB algunas son: create, passivate, activate.  Remote Interface: contiene las declaraciones para los metodos de negocios definidas en el Enterprise Bean Class.

16 Deployment Descriptor Un Deployment Descriptor es un archivo en XML que cumple varias funciones. Entre ellas:  Definir parámetros que varían dependiendo del ambiente; nombres de bases de datos, servidores de paginas, usuarios privilegiados,etc  Indicar al EJB Container, el tipo de EJB sesion, entidad,mensaje, el esquema de seguridad que posee el EJB, en caso de ser un "Container Managed Entity EJB" las funciones para las que se generará lógica, y otras funcionalidades más.

17 Tipos de Enterprise Beans TipoPropósito EntidadRepresenta un objeto de negocios que existe en un mecanismo de almacenamiento persistente. SesionDesempeña tareas para el cliente Message-DrivenOfrece el funcionamiento de intermediario para recibir y publicar mensajes, en forma asincrona.

18 Creación del EJB en el servidor  Una aplicación cliente contacta al servidor y le pide que genere un EJB para que procese datos en su nombre. El servidor responde creando un Objeto en él (la instancia del componente del EJB), y devuelve un objeto proxy (el Objeto EJB).  La aplicación cliente realmente contacta al container del servidor y le pide que genere un objeto en particular, el conteiner responde con el Objeto EJB que puede ser utilizado para manipular el nuevo componente EJB recién generado. Creación del EJB en el servidor

19  Cuando un cliente quiere crear un bean en el servidor, este utiliza el JNDI (java naming and director interface).  Una vez que el cliente tiene el home interface de la clase del EJB que quiere generar, se llama a uno de los métodos create() en el home interface. El objeto del home interface del lado del cliente hace una llamada remota al container del EJB, quien luego genera el componente EJB y devuelve el objeto EJB al cliente.  Luego el cliente puede llamar los metodos del objeto EJB, que son enviados al container. Creación del EJB en el servidor

20 Container y su interacción con los EJB  Los enterprise bean son componentes de software que corren en un ambiente especial llamado EJB container. Los container organizan y manejan los beans...  Los container aislan a los enterprise beans del acceso directo de las aplicaciones de los clientes. Cuando un aplicación invoca un metodo remoto en un enterprise bean, el container inetercepta la invocación para asegurar la persistencia, transacción, y la seguridad.  Los desarrolladores de enterprise bean se pueden enfocar en encapsular las reglas del negocios, mientras los container se encargan de todo lo demás. Container y su interacción con los EJB

21  Para reducir el consumo y procesamiento de memoria, los contenedores agrupan los recursos y manejan el ciclo de vida de todos los beans muy cuidadosamente.  Los enterprise bean dependen de los container para todas las cosas que necesiten.  Los bean enterprise interactuan con el container por medio de alguno de los siguientes tres mecanismos: metdos callbacks, el EJBContext interface, o el JNDI. Container y su interacción con los EJB

22  Callback: Cada metodo callback avisa al bean sobre diferentes eventos en su ciclo de vida y el container invocara estos metodos para notificar al bean cuando esta a punto de activar el bean, persistir su estado a la bases de datos, terminar una transacción, mover el bean de la memoria etc  EJBContext: provee de metodos para que el bean pueda solicitar información acerca de su ambiente como la identidad de su cliente, el estado de su transacción, o para obtener una referencia remota a él mismo. Container y su interacción con los EJB

23  JNDI: El JNDI ENC permite a los bean acceder a recursos como conecciones de JDBC, otros bean enterprise, y propiedades especificas de esos beans. Container y su interacción con los EJB

24 Enterprise Bean como objeto distribuido  Las interfaces remotas y home son tipos de interfaces remotas de RMI de Java. La interfaz java.rmi.Remote es utilizada por objetos remotos para representar los bean en una dirección de espacio diferente.  Se envuelve la instancia en objeto llamado esqueleto el cual contiene una coneccion de red con otro objeto llamado stub.  En EJB los esqueletos para las interfaces remotas y home estan implementados por el container y no por las clase bean. Enterprise Bean como objeto distribuido

25

26  Los protocolos de objetos distribuidos definen el formato de los mensajes de red enviados entre los espacios de direcciones.  La mayoria de los servidores de EJB soportan o el Java Remote Meted Protocol (JRMP) o el protocolo de CORBA Internet Inter.-ORB Protocol (IIOP). Enterprise Bean como objeto distribuido

27 Logros Hacer fácil a los desarrolladores crear aplicaciones distribuidas, liberándolos de los detalles de bajo nivel. Las especificaciones estructuran el EJB framework. Las responsabilidades del cliente, el servidor y de los componentes individuales son claramente descritas, lo que asegura la portabilidad entre diferentes vendedores EJB propone un estándar para aplicaciones cliente servidor a ser construidas sobre el lenguaje Java Finalmente, puede inter-operar con otras aplicaciones no-Java ya que es compatible con CORBA.

28 Desventajas  Tiempo de Desarrollo: El desarrollar un Sistema con EJB's es sumamente complejo, aunque para ciertas empresas puede presentar una solución ideal, debido a la complejidad-tiempo de ( traduciendose en costo) para muchas corporaciones EJB's resultan una solución sobrada, denominada en Ingles: "overkill"..  Conocimiento exhausto de Java: EJB's es uno de los principales componentes de J2EE y por esta razón también depende fuertemente de otras partes de J2EE: Como RMI, JNDI y JDBC Desventajas

29 Ejemplo  Para crear un componente del EJB en el servidor, el desarrollador del enterprise bean provee dos interfaces que definen los métodos de negocios de los bean, mas la implementación de la clase real.  Un bean es un componete del servidor que representa los conceptos de negocios como un Customer o un HotelClerk.  La interfase home representa el ciclo de vida de los métodos de los componentes (crear, destruir, buscar) mientras la interfaz remota representa los métodos de negocio del bean.

30 Ejemplo  Los clientes utilizan la interfase home para obtener referencia a la interfaz remota del bean.  A continuación un ejemplo de como una Customer bean puede ser accedido desde una aplicación de cliente: CustomerHome home = //... obtain a reference that // implements the home interface. // Use the home interface to create a new instance of //the Customer bean.Customer customer = home.create(customerID); //using a business method on the Customer.customer.setName(someName);

31 Ejemplo  A continuación un ejemplo de una definición de una interfaz remota para el bean Customer. Import javax.ejb.EJBObject; import java.rmi.RemoteException; public interface Customer extends EJBObject { public Name getName() throws RemoteException; public void setName(Name name) throws RemoteException; public Address getAddress() throws RemoteException; … }

32 Ejemplo  La interfaz remota define métodos para acceder y modificar información acerca de los conceptos de negocios.  Los métodos de negocios también pueden representar tareas que el bean puede realizar.  A continuación un ejemplo de una definición de la interfaz remota para el bean HotelClerk, el cual es un bean de sesion:

33 Ejemplo import javax.ejb.EJBObject; import java.rmi.RemoteException; public interface HotelClerk extends EJBObject { public void reserveRoom(Customer cust,RoomInfo ri, Date from, Date to) throws RemoteException; public RoomInfo availableRooms(Location loc, Date from, Date to) throws RemoteException; }

34 Ejemplo  A continuación un ejemplo de una definición de una interfaz remota para el bean Customer. import javax.ejb.EJBObject; import java.rmi.RemoteException; public interface HotelClerk extends EJBObject { public void reserveRoom(Customer cust,RoomInfo ri, Date from, Date to) throws RemoteException; public RoomInfo availableRooms(Location loc, Date from, Date to) throws RemoteException; }

35 Ejemplo A continuación una definición parcial del customer bean class. import javax.ejb.EntityBean; public class CustomerBean implements EntityBean { Address myAddress; Name myName; CreditCard myCreditCard; public Name getName() { return myName; } public void setName(Name name) { myName = name; } public Address getAddress() { return myAddress; } public void setAddress(Address address) { myAddress = address; }...}


Descargar ppt "Enterprise JavaBeans Arvelo, Yolife Ascanio, Eduardo Chacón, Johnny Quintana, Susana Unversidad Simón Bolívar Departamento de Computación y T.I Sistemas."

Presentaciones similares


Anuncios Google