Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

EJB

No description
by

Juan Francisco Maldonado

on 9 September 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of EJB

EJB
Java Enterprise Edition
Juan Maldonado
@jotamagno
Enterprise Java Beans
Introducción
El estándar EJB 3 es desarrollado por
Java Community Process(JCP).

Contenedor EJB 3
Soporta concurrencia
Ciclo de vida de los EJB
Provee pools para administrar varias instancias de componentes,
Balanceo de carga y clustering
Provee (JNDI), para acceder a los EJB o a otros recursos
Soporta Java RMI-IIOP (Remote Method Invocation run over Internet Inter-Orb Protocol), el cual permite el acceso remoto de un cliente a un session bean
Soporta mensajería que proveen los message-driven beans
Las instancias de un EJB son administradas en tiempo de ejecución por un contenedor
"Los Enterprise Java Beans (EJB) son componentes del lado del servidor para la plataforma Java Enterprise Edition (Java EE), que apuntan a crear un desarrollo rápido y simple para aplicaciones distribuidas, transaccionales, seguras y portables."
Oracle
Un JavaBean es un objeto Java al cual accedemos de forma directa desde nuestro programa.
EJB es un componente al cual no podemos acceder de una forma tan directa y siempre accedemos a través de algún tipo de intermediario.
Este intermediario nos aportará una serie de servicios definidos por los standards en los cuales el EJB se puede apoyar. Ej EJB de Sessión
Estos proxies son los encargados de dar acceso al EJB a todos los servicios adicionales que soporta el EJB Container como son Transaccionalidad,Seguridad etc
Enterprise Java Beans
Java Enerprise Edition
Los enterprise bean son componentes portables, reutilizables y pueden ser desplegados en servidores que usen los estándares del API JEE.
¿Cuando utilizar EJB?
Aplicaciones que deben ser escalables, esto implica distribución de componentes a través de múltiples máquinas.

Aseguramiento de integridad de los datos de las transacciones. Los enterprise beans soportan transacciones y el mecanismo que administra el acceso concurrente de objetos compartidos.

Muti-usuarios locales y remotos.


Componentes enterprise bean

Interfaces las cuales definen los métodos que implementan los componentes enterprise bean

Clases helper: clases utilitarias requeridas por los enterprise bean

+Ventajas
Simplifican desarrollo, el contenedor EJB es responsable de la administración de transacciones y autorizaciones de seguridad.
La lógica del negocio reside en los enterprise beans y no en el lado del cliente, permitiendo que el desarrollo del lado del cliente esté desacoplado de la lógica del negocio.
Pueden residir en diferentes servidores y pueden ser invocados por un cliente remoto.
Una aplicación EJB debe contener:
Se empaqueta en un archivo EJB.jar, son portables y pueden ser empaquetados en un archivo EAR.
Tipos de EJB
Enterprise Java Bean
Beans de entidad
Beans dirigidos por mensajes
Bean de sesión
Su objetivo es encapsular los objetos del lado del servidor que almacena los datos. Los EJB de entidad presentan la característica fundamental de la persistencia
Persistencia gestionada por el contenedor
El contenedor se encarga de almacenar y recuperar los datos del objeto de entidad mediante el mapeo o vinculación de las columnas de una tabla de la base de datos con los atributos del objeto.
Persistencia gestionada por el bean
el propio objeto entidad se encarga, mediante una base de datos u otro mecanismo, de almacenar y recuperar los datos a los que se refiere, por lo cual la responsabilidad de implementar los mecanismos de persistencia es del programador
Nota: En la documentación de java para JEE 5.0, los entity beans desaparecen, ya que son remplazados por JPA (Java Persistence API).1
Gestionan el flujo de la información en el servidor. Generalmente sirven a los clientes como una fachada de los servicios proporcionados por otros componentes disponibles en el servidor. Puede haber dos tipos:
Con estado (stateful).
En un bean de sesión con estado, las variables de instancia del bean almacenan datos específicos obtenidos durante la conexión con el cliente. Cada bean de sesión con estado, por tanto, almacena el estado conversacional de un cliente que interactúa con el bean. Este estado conversacional se modifica conforme el cliente va realizando llamadas a los métodos de negocio del bean. El estado conversacional no se guarda cuando el cliente termina la sesión.
Sin estado (stateless).
Los beans de sesión sin estado son objetos distribuidos que carecen de estado asociado permitiendo por tanto que se los acceda concurrentemente. No se garantiza que los contenidos de las variables de instancia se conserven entre llamadas al método.
Son los únicos beans con funcionamiento asíncrono. Usando el Java Messaging System (JMS), se suscriben a un tema (topic) o a una cola (queue) y se activan al recibir un mensaje dirigido a dicho tema o cola. No requieren de su instanciación por parte del cliente.
Bean de sesión stateless
Enterprise Java Beans
No mantiene estado conversacional para el cliente
El contenedores crea un pool de instancias para cada SLSB
Cuando un cliente invoca un método de un SLSB, el servidor escoge una instancia del pool para atender el requerimiento, y luego la instancia vuelve al pool
Un session bean se define mediante:
La interfaz de negocio (business interface)
La clase que implementa la interfaz de negocio

La interfaz de negocio puede ser:
Local
: utilizada por clientes locales (que se ejecutan en la misma instancia del servidor de aplicaciones), con semántica Java
Remote
: utilizada por clientes Java remotos que interactúan con el bean mediante RMI
EJB utiliza RMI (Remote Method Invocation) para la
invocación de objetos remotos
El cliente invoca un stub (proxy del objeto remoto, en el
cliente)
El stub invoca al skeleton
a través de la red (proxy del
objeto remoto, en el servidor)
El skeleton invoca al objeto
remoto
El stub y el objeto remoto implementan la misma
interfaz, por lo que el cliente opera como si interactuara directamente con el objeto remoto
Beans de Sesion Stateful
Enterprise Java Beans
El estado de la interacción del cliente con el bean es llamado estado conversacional
El estado se mantiene durante la sesión del cliente con el bean
Una instancia es reservada para un cliente y cada una almacena la información de dicho cliente
La sesión finaliza si el cliente remueve el bean o finaliza su sesión

Java Persistence API
Java Enterprise Edition
Java Persistence API (JPA) proporciona un modelo de persistencia basado en POJO's para mapear bases de datos relacionales en Java
JPA es una abstracción sobre JDBC que nos permite realizar la correlación entre un modelo relacional a un modelo de objetos
Esta conversión se llama ORM (Object Relational Mapping - Mapeo Relacional de Objetos) y puede configurarse a través de metadatos (mediante xml o anotaciones)
Unidades de persistencia
La unidad de persistencia define un conjunto de todas las entidades (clases) que son gestionadas por la instancia del EntityManager en una aplicación.
Entidades
Una entidad es un objeto de dominio de persistencia. Normalmente, una entidad representa una tabla en el modelo de datos relacional y cada instancia de esta entidad corresponde a un registro en esa tabla.
Entity Manager
El Gestor de Entidades o Entity Manager es el componente de JPA que encapsula prácticamente toda la funcionalidad del API: Permite persistir y recuperar entidades
Entity Manager Gestionado por el Contenedor
Entity Manager Gestionado por la Aplicación
Para las situaciones en donde no requerimos los servicios ofrecidos por un EJB3 Container, En estos casos las aplicaciones son denominadas aplicaciones standalone. Un ejmplo claro son las aplicaciones SWING.
En este caso la aplicación sea la encargada de manejar las transacciones o dicho de otra manera, la aplicacion sera la encargada de manejar el ciclo de vida del entity manager (abriendo transacciones, comiteando, haciendo rollback, etc)
Para las situaciones en donde si se requiera de los servicios de un EJB3 container (como por ejemplo JBoss ó WebLogic application server), el API JPA provee el Container-managed entity manager

Por default la transaccion es iniciada cuando se invoque desde el cliente al EJB (a un stateless session bean, ahora bien, para los stateful session bean el comportamiento de las transacciones es distinto). La transacción termina cuando finaliza la ejecución del método del session bean
Relaciones múltiples de
entidades
Uno a uno: "OneToOne".
Uno a muchos: "OneToMany".
Muchos a uno: "ManyToOne".
Muchos a muchos: "ManyToMany" .
EJB Dirigidos por Mensajes
Enterprise Java Beans
Un message-driven bean (MDB) es un bean que permite atender requerimientos asincrónicos en la plataforma JEE
A diferencia de session beans y entity beans, los MDB no oseen interfaces, debido a que los clientes no manejan referencias al bean
Java Message Service
JMS permite acceder de forma transparente a diferentes sistemas de mensajería, como IBM MQSeries, Microsoft MQ, etc.
JMS provee dos modos de operación
Punto a Punto
Los clientes producen mensajes y los envían a colas,
donde son consumidos por sus destinatarios (cada
mensaje es consumido una vez)
Publicación y Suscripción
Los clientes envían mensajes a tópicos previamente
publicados, a los cuales se encuentran suscritos diferentes
aplicaciones (cada mensaje es consumido por todas las
aplicaciones suscritas al tópico)
Full transcript