Enterprise JavaBeans - PowerPoint PPT Presentation

1 / 34
About This Presentation
Title:

Enterprise JavaBeans

Description:

Debe dise ar e implementar protocolos de comunicaci n. ... JNDI: El JNDI ENC permite a los bean acceder a recursos como conecciones de JDBC, ... – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 35
Provided by: SusanaQ5
Category:

less

Transcript and Presenter's Notes

Title: Enterprise JavaBeans


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

2
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

3
Sistemas basados en cliente/servidor
Dos niveles Fat - Client
Dos niveles Thin - Client
4
Arquitectura Tres Niveles
5
Arquitecturas
6
Arquitecturas (II)
7
Tecnología Enterprise JavaBeans
8
Ejemplo de una aplicación de cuatro niveles
9
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.
10
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.

11
Funcionamiento EJB Container
  • 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.

Manejo de un EJB en en tiempo de ejecucion
12
Enterprise Beans
Un EJB esta compuesto de cuatro partes
  • "Enterprise Bean Class"
  • "Home Interface"
  • "Remote Interface"
  • "Deployment Descriptor"

13
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.
14
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.

15
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.

16
Tipos de Enterprise Beans
17
Creación del EJB en el servidor
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.

18
Creación del EJB en el servidor
Creación del EJB en el servidor
  • 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.

19
Container y su interacción con los EJB
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 .

20
Container y su interacción con los EJB
Container y su interacción con los EJB
  • 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.

21
Container y su interacción con los EJB
Container y su interacción con los EJB
  • 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.

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

23
Enterprise Bean como objeto distribuido
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 .

24
Enterprise Bean como objeto distribuido
Enterprise Bean como objeto distribuido
25
Enterprise Bean como objeto distribuido
Enterprise Bean como objeto distribuido
  • 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).

26
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.

27
Desventajas
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

28
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.

29
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)

30
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

31
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

32
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
33
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
34
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 ...
Write a Comment
User Comments (0)
About PowerShow.com