ENTERPRISE JAVA BEANS EJBs - PowerPoint PPT Presentation

1 / 68
About This Presentation
Title:

ENTERPRISE JAVA BEANS EJBs

Description:

J2EE (Java2 Enterprise Edition) ofrece un conjunto de aplicaciones con ... Application assembler: composes EJBs to form applications ... – PowerPoint PPT presentation

Number of Views:262
Avg rating:3.0/5.0
Slides: 69
Provided by: veronic50
Category:

less

Transcript and Presenter's Notes

Title: ENTERPRISE JAVA BEANS EJBs


1
ENTERPRISE JAVA BEANS (EJBs)
  • Sistemas de Operación 3

2
Introducción a J2EE
  • Es un estandar. Plataformas comerciales IBM
    WebSphere, BEA Weblogic, Oracle9iAS o Sun ONE
  • J2EE (Java2 Enterprise Edition) ofrece un
    conjunto de aplicaciones con especificaciones
    para diseñar, desarrollar, ensamblar y desplegar
    aplicaciones de negocio.
  • Provee una plataforma independiente, basada en
    componentes, distribuída, debilmente acoplada,
    confiable y segura en un ambiente de aplicaciones.

3
Multitired Multithread
4
Especificaciones de J2EE
  • Las especificaciones de J2EE define los
    siguientes componentes
  • Application clients and applets are components
    that run on the client.
  • Java Servlet and JavaServer Pages (JSP )
    technology components are Web components that run
    on the server.
  • Enterprise JavaBeans (EJB ) components are
    business components that run on the server.
  • Componentes J2EE ! Java Class en las
    especificaciones

5
Antes de seguir
  • Enterprise JAVA Bean JAVA Bean?
  • No

6
JAVA Bean
  • Componente utilizado en JAVA que permite agrupar
    funcionalidades que forman parte de una
    aplicación.
  • Un JAVA Bean puede agrupar información personal,
    datos sobre un pedimento, requerimientos de
    órdenes, etc.
  • Requiere ser integrado con otros componentes para
    ser funcional.

7
Enterprise JAVA Bean
  • Agrupa funcionalidades para una aplicación.
  • Es un componente de despliegue, es decir, que
    existe un ambiente de ejecución (Enterprise Java
    Bean Container) .
  • No requiere ser integrado, ya que puede ser
    activado mediante el Contenedor de los EJB

8
Tipos de clientes en J2EE
  • Web Client contenido dinámico y browser
  • Applets
  • Application Clients
  • JavaBeans Component Arquitecture no J2EE
  • Server Communications

9
Componentes del Servidor
10
Servidor Web Tier
11
Servidor Business Tier y EIS Tier
12
Java Bean
  • En general, un bean es una clase que obedece
    ciertas reglas
  • Un bean tiene que tener un constructor por
    defecto (sin argumentos)
  • Un bean tiene que tener persistencia, es decir,
    implementar el interface Serializable.
  • Un bean tiene que tener introspección. Los IDE
    reconocen ciertas pautas de diseño, nombres de
    las funciones miembros o métodos y definiciones
    de las clases, que permiten a la herramienta de
    programación mirar dentro del bean y conocer sus
    propiedades y su conducta.

13
Más sobre los EJBs
  • Un EJB es un conjunto de código que contiene
    campos y métodos para la implementación de
    módulos en una lógica de negocio.
  • Puede pensarse en un EJB como un bloque de
    construcción que puede ser empleado de manera
    independiente o en conjunto con otros EJBs para
    la ejecución de una lógica de negocio en un
    servidor J2EE.

14
J2EE Technology Architecture
html
Web clients
Application clients
IIOP
Java Server pages
Servlets
Enterprise Java Beans Components
Server platform
JTS
JMAPI
JNDI
JMS
JDBC
JAXP
JAAS
15
Elementos que lo componen
16
(No Transcript)
17
Aplicación con múltiples EJBs
EJB4
EJB2
WebClient
EJB1
EJB5
EJB3
EJB6
ApplClient
18
Enterprise Java Bean(EJB)
  • An enterprise bean is a server-side component
    that contains the business logic of an
    application. At runtime, the application clients
    execute the business logic by invoking the
    enterprise bean's methods.
  • Main goal of Enterprise Java Bean (EJB)
    architecture is to free the application developer
    from having to deal with the system level aspects
    of an application. This allows the bean developer
    to focus solely on the logic of the application

19
Roles in EJB Development
  • Bean developer Develops bean component.
  • Application assembler composes EJBs to form
    applications
  • Deployer deploys EJB applications within an
    operation environment.
  • System administrator Configures and administers
    the EJB computing and networking infrastructure.
  • EJB Container Provider and EJB server provider
    Vendors specializing in low level services such
    as transactions and application mgt.

20
Cuándo usarlos?
  • Debe considerarse la opción de emplearlos cuando
    la aplicación a desarrollarse cumple con alguno
    de los siguientes requerimientos
  • Si la aplicación debe ser escalable.
  • Para adaptarse al crecimiento en el número de
    usuarios podría ser necesario distribuir los
    componentes de la aplicación en diversas
    máquinas. Los EJB no sólo pueden ser ejecutados
    de distintas máquinas sino que su ubicación
    permanece transparente para los usuarios.

21
Cuándo usarlos?
  • Si debe asegurarse la integridad de datos en
    transacciones.
  • Los EJB soportan las transacciones así como
    mecanismos que controlan el acceso concurrente a
    los objetos compartidos.
  • Si la aplicación tendrá una variedad de clientes.
  • Con solo unas cuántas líneas de código, clientes
    remotos pueden localizar fácilmente los EB. Estos
    clientes pueden ser pocos, varios o numerosos.

22
Por qué usarlos?
  • Porque simplifican el desarrollo de grandes
    aplicaciones distribuidas.
  • El contenedor de EJB provee servicios a nivel
    de sistema para los EJB, el bean de desarrollo
    puede concentrarse en resolver problemas de
    negocios. El contenedor del EJB es el responsable
    por los servicios a nivel de sistema tales como
    manejo de transacciones y seguridad de
    autorización.

23
Por qué usarlos?
  • Los beans contienen las aplicaciones de la
    lógica de negocios y el desarrollador de interfaz
    puede concentrarse en la presentación al cliente.
    El desarrollador no tiene que codificar las
    rutinas que implementan las reglas de negocio o
    los accesos a bases de datos. Como resultado, las
    interfaces (o clientes) pueden ser tan ligeros
    como sea necesario beneficio particularmente
    importante para clientes que ejecutan en
    dispositivos pequeños.

24
Por qué usarlos?
  • Debido a que son componentes portables, el
    ensamblador de la
  • aplicación puede construir nuevas aplicaciones
    partiendo de beans existentes (reuso) las cuales
    pueden ejecutarse en cualquier servidor de J2EE.

25
Entidades de negocio, Procesos y Reglas
  • Las aplicaciones de EJB agrupan las reglas de
    negocio en componentes.
  • Los componentes usualmente representan una
    entidad o proceso de negocio.
  • Entidad es un objeto representando alguna
    información relevante para la empresa. Posee un
    estado que puede ser o no persistente. Algunos
    ejemplos son Cliente, orden, empleado.
  • Dependencia es una relación definida entre dos
    entidades.

26
Proceso
  • Es un objeto que típicamente encapsula la
    interacción de un usuario con las entidades de
    negocio.
  • Un proceso usualmente actualiza y cambia los
    estados de las entidades.
  • Un proceso de negocio puede tener su propio
    estado, el cual puede existir sólo mientras
    exista el proceso. Cuando se completa el proceso
    su estado deja de existir.
  • El estado de un proceso puede ser transitorio o
    permanente.

27
Reglas de negocio
  • Las reglas de negocio se definen según los
    componentes sobre los que aplica
  • Las reglas que refieren a las entidades deben ser
    implementadas en el componente que representa a
    la entidad.
  • Las reglas que aplican a los procesos deben ser
    implementadas en los componentes que representan
    a los procesos.

28
Middleware
  • Tipos
  • Middleware explícito ofrece servicios pero
    requiere que los desarrolladores de data objects
    programen los puntos de acceso a dichos servicios.

29
Middleware Explícito
30
Middleware
  • Tipos (cont.)
  • Middleware implícito el soporte para estos
    servicios es intrínseco. Los puntos de acceso son
    provistos por la especificación de los
    componentes, de manera que los desarrolladores
    solo deben cumplir con la especificación de la
    lógica del proceso de negocio. El middleware
    implícito genera receptores de peticiones que
    proveen acceso automático a los servicios de
    middleware.

31
Middleware Implícito
32
Servicios Implícitos Vs. Explícitos
  • Usualmente los servicios como transacciones,
    seguridad, drivers de base de datos, etc. se
    incluían en el código de punto de acceso,
    obligando a cada programador a entender los
    detalles de todos los posibles servicios
    necesarios en una aplicación.
  • Ahora podemos decidir qué servicios dejamos
    llevar a cabo por el contenedor.
  • La declaración de estos servicios se hace a
    través de un XML deployment descriptor.

33
Tipos de EJB
  • Existen 3 tipos de EJB
  • Beans de sesión
  • Con estado
  • Sin estado
  • Beans de entidad
  • Beans dirigido por mensaje

34
Tipos de EJB
35
Beans de sesión
  • Representan a un solo cliente dentro del servidor
    J2EE.
  • Para acceder a una aplicación el cliente invoca
    los métodos del bean.
  • El Bean ejecuta el trabajo para su cliente,
    excluyéndolo de la complejidad al ejecutar las
    tareas de negocio dentro del servidor.
  • Es similar a una sesión interactiva.
  • No compartido. Sólo puede tener un cliente.
  • No es persistente.
  • Cuando el cliente termina, su bean de sesión
    finaliza y anula su asociación con el cliente.

36
Tipos de beans de sesión
  • Bean de sesión sin estado
  • Las variables de la instancia pueden mantener un
    estado pero solo mientras dure la invocación.
  • Soporta múltiples usuarios.
  • Mayor escalabilidad.
  • Mejor desempeño.

37
Ciclo de Vida (Sin estado)
38
Tipos de beans de sesión
  • Bean de sesión con estado
  • Las variables instanciadas representan el estado.
  • También se le conoce como Estado
    Conversacional.
  • El estado se mantiene durante toda la sesión y
    desaparece cuando el cliente se desconecta o
    finaliza la sesión.

39
Ciclo de Vida (Con estado)
40
Cuándo emplearlos?
  • Si tengo un cliente el cual solo tendrá acceso a
    una instancia del bean.
  • Cuando el estado no sea persistente (sólo
    existira en un corto periodo de tiempo, algunas
    horas).
  • (Estado) Si el estado representa una interacción
    entre el bean y un cliente específico
  • (Estado) Si se requiere mantener la información
    del cliente a través de la invocación de métodos
  • (Estado) Si el bean es un intermediario entre el
    cliente y otros métodos de la aplicación
    presentándole una vista simplificada

41
Cuándo emplearlos?
  • (Estado) El Bean controla el manejo del flujo de
    trabajo de varios EJB.
  • (Sin estado) El estado del bean no tiene datos
    para un cliente específico.
  • (Sin estado) El bean realiza una tarea genérica
    para todos los clientes. Por ejemplo, se puede
    usar un bean sin sesión para enviar un correo que
    confirme una orden en línea.
  • (Sin estado) El bean busca en una BD un conjunto
    de datos de solo-lectura que es frecuentemente
    usado por los clientes. Tal bean podría, por
    ejemplo, recuperar las filas de la tabla que
    representan los productos que están en venta este
    mes.

42
Beans de entidad
  • Representa un objeto de negocios en un mecanismo
    de almacenaje persistente.
  • Algunos ejemplos clientes, órdenes, productos,
    etc.
  • Normalmente cada bean tiene una tabla y cada
    instancia del bean representa una línea en una
    tabla.

43
Beans de entidad
  • Persistentes (el estado existe más allá del
    tiempo de vida de la aplicación o del proceso de
    la aplicación)
  • Permiten acceso compartido
  • Contienen claves primarias (identificador)
  • Pueden interactuar con otros beans de entidad (p.
    ej. EstudianteBean con CursoBean).

44
Ciclo de vida
45
Cuándo usarlos?
  • Cuando se representa una entidad de negocios y no
    un procedimiento. (p. ej. TarjetaCreditoBean será
    un bean de entidad mientras que
    VerificadorTarjetaCredito será un bean de sesión)
  • Cuando el estado deba ser persistente. Si la
    instancia termina o se apaga el servidor de la
    aplicación, el estado del bean existe en una BD.

46
Beans dirigido por mensaje
  • Permite a las aplicaciones de J2EE procesar
    mensajes de manera asíncrona.
  • Actua como un listener de mensajes, similar a
    un listener de eventos.
  • Los mensajes pueden ser enviados desde cualquier
    componente de J2EE u otra aplicación JMS que no
    emplee tecnología J2EE.
  • Pueden procesar mensajes JMS.

47
Beans dirigido por mensaje
  • Se ejecutan por un mensaje del cliente.
  • Son invocados de manera asíncrona.
  • Tienen un periodo de vida corto.
  • No mantiene estado para un cliente específico.
  • Un Bean puede procesar mensajes de multiples
    clientes.
  • Pueden ser transaction-aware.

48
Ciclo de Vida
49
Cuándo usarlos?
  • Cuando no se desea saturar los recursos del
    sistema por el envío de mensajes de manera
    síncrona (beans de sesión y de entidad)

50
Compilation and Deployment
  • Compilation (building the executables) uses build
    tool such as Apache Ant.
  • The components of the various tiers are
    packaged .jar, .war, .ear
  • Declarative resources are added.
  • A deploy tool or management tool is used to
    deploy the packaged units into a J2EE server
    (container).

51
Creating a EJB-jar file
Local Interfaces
Home interfaces
Ejb Jar file
Jar file creator
Enterprise Bean Classes
Remote Interfaces
Vendor Specific Files
Deployment Descriptor
52
Ejemplos de Usos
53
Escogiendo entre Entity o Session Bean
  • Una entidad del negocio se implemente como entity
    bean
  • Proceso de un negocio como session bean.
  • Cualquier proceso que necesite persistencia es
    representado con un entity bean.
  • Cuando un proceso o una entidad no tienen la
    necesidad de interactuar con otras aplicaciones,
    estos se implementas como objetos dependientes
    del bean.

54
Partes de un EJB
  • EJB class implementan los metodos del negocio y
    del ciclo de vida.
  • Client-view API consiste en las interfaces
    locales y remotas del EJB.
  • Interfaz local controla en ciclo de vida invoca
    los metodos locales create, remove, find methods
  • Interfaz Remota invoca el metodo del EJB

55
Partes de un EJB
  • Deployment Descriptor un documento XML para el
    contenedor
  • Declaraciones del EJB necesaria para modificar el
    bean al ambiente de operación.
  • Servicios del contenedor al momento de ejecución
    como seguridad,distribución,balanceo de cargas,
    multihilos, presistencia, recuperación ante
    fallas, colas de recursos, manejo de estado, etc.

56
Partes de un EJB
ltltHome Interfacegtgt AccountHome
ltltRemote Interfacegtgt Account
create() find() remove()
debit() credit() getBalance()
ltltEnterrpise Bean classgt AccountBean
Deployment Descriptor
name AccountEJB class AccountBean home
AccountHome remote Account type
Entity transaction required ..
ejbCreate() ejbFind() ejbRemove() debit() credit()
getBalance()
57
AccountHome Interface
  • import java.rmi.RemoteException
  • import javax.ejb.CreateException
  • import javax.ejb.FinderException
  • import java.util.Collection
  • public interface AccountHome extends
    javax.ejb.EJBHome
  • //create methods
  • Account create (String lastName, String
    firstName) throws RemoteException,

  • CreateException, BadNameException
  • Account create (String lastName) throws
    RemoteException, CreateException
  • // find methods
  • Account findByPrimaryKey (AccountKey primaryKey)
    throws RemoteException,

  • FinderException
  • Collection findInActive(Date sinceWhen)
  • throws RemoteException, FinderException,
    BadDateException

58
Account Interface
  • import java.rmi.RemoteException
  • public interface Account extends
    javax.ejb.EJBObject
  • BigDecimal getBalance() throws RemoteException
  • void credit(BiGDecimal amount) throws
    RemoteException
  • Void debit(BigDecimal amount) throws
    RemoteException,

  • InSufficientFundsException

59
AccountBean class
  • public class AccountBean implements
    javax.ejb.EntityBean
  • // life cycle methods from home interface
  • public AccountKey ejbCreate (String latName,
    String firstName) throws
  • public AccountKey ejbCreate(String lastName)
    throws
  • public AccountKey ejbFindByPrimaryKey(AccountKey
    primarykey)
  • Public Collection ejbFindInactive( Data
    sinecWhen)..
  • // business methods from remote interface
  • public BigDecimal getBalance() .
  • public void credit(BigDecimal amt)
  • Public void debit(BigDecimal amt) throws
    InsufficientFundException .
  • // container callbacks from EntityBean container
  • public ejbRemove( ) throws RemoveException
  • public void setEntityContext(EntityContext ec)
  • public unsetEntityContext(EntityContext ec)
  • public void ejbActivate()
  • public void ejbLoad() .
  • public void ejbStore() .

60
Deployment Descriptor
  • ltentity-beangt
  • ltejb-namegtAccountEJBlt/ejb-namegt
  • lthomegtcom.wombat.AccopuntHomelt/homegt
  • ltremotegtcom.wombat.Accountlt/remotegt
  • ltejb-classgtcom.wombat.AccountBeanlt/ejb-classgt
  • ltpersistence-typegtBeanlt\persistence-typegt
  • ltprimary-key-classgtcom.wombat.AccountKeylt/prim
    ary-key-classgt
  • lt/entity-beangt
  • ltcontainer-transactiongt
  • ltmethodgt
  • ltejb-namegtAcoountEJBlt/ejb-namegt
  • ltmethod-namegtlt/method-namegt
  • lt/methodgt
  • lttrans-attributegtrequiredlt/trans-attributegt
  • lt/container-transactiongt

61
(No Transcript)
62
Empaquetado
  • Una vez proporcionados los componentes, deben
    empaquetarse en un archivo EJB JAR (módulo que
    guarda al EB).
  • Este archivo es portable y puede ser empleado en
    diversas aplicaciones.
  • Para una aplicación J2EE se ensamblan uno o
    varios módulos

63
Step 1 Retrieve Home Object reference using JNDI
EJB Container/Server
Client code As servlets, applets
Enterprise Beans
Home Object
1 Retrieve HomeObject Reference
2 Return Home Object Ref.
EJB Object
Remote interface
JNDI
64
Step 2 Retrieve EJBObject using Home Interface
and Objects
65
Step 3 Invoke Business Methods Using Remote
Interface and EJB Objects
EJB Container/Server
Client code As servlets, applets
Transaction, Security, Persistence services
5 return result
2 call middleware API
1 call a method
EJB Object
4 method returns
Enterprise Bean
Remote interface
3 call a bean
66
Contents of an Enterprise Bean
  • Interfaces The remote and home interface for
    remote access. Local and local home accesses for
    local access.
  • Enterprise bean class Implements the methods
    defined in the above interfaces.
  • Deployment descriptor An XML file that specifies
    information about the bean such as its type,
    transaction attributes, etc.
  • Helper classes non-bean classes needed by the
    enterprise bean class such as utility and
    exception classes.

67
Naming Conventions
68
Más información
  • http//java.sun.com/products/ejb/docs.html
  • http//java.sun.com/products/ejb
Write a Comment
User Comments (0)
About PowerShow.com