Enterprise Java Beans. EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas.

Slides:



Advertisements
Presentaciones similares
2010Ing. de Sistemas II Persistencia en EJB3 Pasos para crear entity beans.
Advertisements

JEE (EJB3) Configuración Ambiente de Desarrollo
JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)
Web Services.
Programación Orientada a Objeto 1
Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Noveno Semestre UNIDEC
J2EE – Java 2 Enterprise Edition
Capa de Persistencia Daniel Fernández Lanvin.
Lenguaje de programación Java
Arquitectura, conceptos y ejemplos
Arquitectura CLARO-TECNOTREE
"java del lado del servidor" Servlet y JSP Java Server Pages.
Unidad 6: EJB 3.0 David Rodríguez 1.
Spring Framework v2.5.
Servlets Servlets.
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Curso de Java y Aplicaciones Web
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
Investigación Servidor de Aplicaciones WebSphere
Java 2 Platform Enterprise Edition
RMI (Remote Method Invocation)
Aplicación del paradigma orientado a objetos
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
JAVA Persistence API (JPA)
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Tema 10: Interfaces Antonio J. Sierra.
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Java Server Faces.
Desarrollo de Aplicaciones Utilizando Java Edición Empresarial – JEE6
Propósito: * Mostrar indicativos porcentuales de los diversos microorganismos con los que se alimentan el camarón en un manejo semi-intensivo aplicado.
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Patrones Creacionales
SPRING MVC.
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
ASIGNACION DE LAS PARTES DE LA APLICACION DISTRIBUIDA EN JAVA PESENTA: LEVI MONROY MARTINEZ.
J2EE – Java 2 Enterprise Edition
“SERVLETS”. Paola Rojas Contreras Juan Villarroel Leiva José Miguel Perez V. Departamento de Electrónica.
FACULTAD DE ESTUDIOS SUPERIORES ARAGON
Sistemas Cliente-Servidor Introducción. Sistemas cliente-servidor Servidor Cliente Petición Respuesta.
Contextos e Inyección Dependiente (CDI)
Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Enterprise JavaBeans Arvelo, Yolife Ascanio, Eduardo Chacón, Johnny Quintana, Susana Unversidad Simón Bolívar Departamento de Computación y T.I Sistemas.
Sistemas Distribuidos
Control de acceso en Java EE
Desacoplamiento de Capas
Aplicaciones Web de Servidor
Importancia en la efectividad del:
Modelo de 3 capas.
Enterprise JavaBeans Distributed Component Object Model
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
Daniel Fernández Lanvin Desacoplamiento de Capas.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Your Logo ING. FREDY ALEXANDER MARTINEZ. Here comes your footer  Page 2 Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación.
Proceso de desarrollo de Software
Arquitecturas de Integración Mensajería
ENTERPRISE JAVA BEANS (EJB) DAVID VIRGIL NARANJO PROGRAMACIÓN AVANZADA INGENIERIA INFORMÁTICA.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
1.  Tomcat es un contenedor web basado en el lenguaje Java que actúa como motor de servlets y JSPs.  Se ha convertido en la implementación de referencia.
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de Programación.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
ENTERPRISE JAVA BEANS. ACCESO AL EJB EJB_HOME. Accesible mediante JNDI. Permite crear y destruir EJB. EJB_OBJECT Expone los métodos del negocio del EJB.
Transcripción de la presentación:

Enterprise Java Beans

EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas de mensajes, ficheros, etc) y proporcionar servicios (seguridad, transacciones, mensajería, nombres) de forma sistemática y optimizada La utilización de EJB simplifica el desarrollo de aplicaciones web y permite construir aplicaciones escalables

Tipos de EJBs Las EJBs pueden ser de sesión o dirigidas por mensajes. –Las EJBs de sesión ejecutan métodos de forma síncrona, pudiendo devolver valores –Las EJBs dirigidas a mensajes añaden un mensaje a una cola indicando tareas pendientes de ejecutar, que se llevan a cabo de forma asíncrona

Tipos de EJBs, II Las EJBs de sesión pueden ser con estado, sin estado o únicas (singleton) –Las EJBs con estado las utiliza un único cliente para ejecutar sus métodos y mantienen sus atributos entre llamadas –Las EJBs sin estado pueden ser utilizadas consecutivamente por clientes arbitrarios cada vez que ejecutan un método. Pueden mantener sus atributos entre llamadas –Las EJBs únicas tienen una sola instancia para toda la aplicación

Especificación de EJBs Las EJBs se pueden inyectar en otros objetos gestionados por el servidor, como los servlets, utilizando la El objeto en el que se inyecta la EJB se llama cliente Las EJBs pueden ejecutarse en el módulo del cliente o en módulos específicos, que pueden incluso estar en ordenadores diferentes del del cliente

Ejemplo de anotación de inyección en un servlet public class MiServ extends HttpServlet private MiEJB miEJBRef; protected void doGet(…) { … miEJBRef.miMetodo(); …} }

Especificación de EJBs Las EJBs sin estado se definen mediante la en su clase Las EJBs con estado se definen mediante la en su clase Las EJBs únicas se definen mediante la en su clase

Ejemplo de EJB de sesión sin estado package myPack; Import public class MyEJB implements MyEJBLocal { public String myMethod(String myName) { return “Hello “ + myName;} }

Contextos y EJBs Las EJBs únicas corresponden al contexto de aplicación, pues hay garantías de que hay una sola por cada aplicación y el contenedor correspondiente la inyecta en su momento dentro del ciclo de vida del objeto gestionado que lo solicita Solamente se deben utilizar si se van a utilizar para ejecutar métodos, pues en caso contrario son innecesariamente ineficientes

Contextos y EJBs Clientes dentro de diferentes sesiones de una aplicación web pueden acceder a la misma EJB de sesión no únicas, por lo que estas EJBs no corresponden al contexto de sesión Diferentes componentes web pueden acceder a diferentes EJBs de sesión no únicas de la misma clase al ejecutar la misma instrucción, por lo que las EJBs no corresponden al contexto de aplicación

Contextos y EJBs, II Lo anterior es cierto también para las componentes dirigidas por mensajes Como consecuencia de lo anterior, las EJBs de sesión nunca corresponden a una sesión de la aplicación

Reutilización y escalabilidad de EJBs Los módulos que forman las aplicaciones Java EE, que dan lugar a ficheros jar que se incluyen en el fichero ear de las aplicaciones correspondientes, permiten la reutilización de código Las aplicaciones web pueden incluir módulos específicos EJB, en cuyo caso se llaman aplicaciones Enterprise

Estructura de una aplicación Enterprise

Reutilización y escalabilidad de EJBs, II Cuando una aplicación Enterprise utiliza un módulo EJB, el módulo Web de la aplicación incluye una interfaz implementada por las clases de las EJBs que utiliza. La interfaz utilizada por los objetos de un módulo que acceden a EJBs que están en otro módulo se llama interfaz de negocios, y lleva una anotación especial

Reutilización y escalabilidad de EJBs, III Una aplicación puede acceder a un módulo EJB que está en otra máquina java (normalmente, en otro servidor) La interfaz utilizada por los objetos de un módulo que acceden a EJBs que están en la misma máquina Java se llama interfaz local y se define con la

EJB: Clientes remotos En el caso de EJBs que están en la máquinas Java diferentes se utiliza la Las llamadas a métodos de EJBs remotas pasan los atributos por copia en lugar de por valor, y los valores devueltos también se copian

Características recientes de Java EE La utilización de EJBs sin definir explícitamente una interfaz ha sido incorporada recientemente a Java EE (especificación Java Beans 3.1, dentro de Java EE 6) La utilización de anotaciones ha sido incorporada recientemente a Java (Java SE 5) y a Java EE (Java EE 5)

Utilización de EJBs sin anotaciones Java EE permite inyectar elementos mediante un servicio de búsqueda basado en nombres (JNDI, Java Naming and Directory Interface). En lugar private MiEJB miEJBRef; se utiliza Context ctx = new InitialContext(); MiEJB miEJBRef = (MiEJB) ctx.lookup("java:global/env/audit");

Utilización de EJBs sin anotaciones, II Cuando se utiliza JNDI para acceder a EJBs (u otros objetos inyectables) hay que especificar la creación de los objetos en un fichero XML de configuración, llamado ejb-jar.xml.

Utilización de EJBs sin anotaciones, III Bean HolaMundo HolaMundo com.saludo.HolaMundoHome com.saludo.HolaMundoRemote com.saludo.HolaMundoBean Stateless Bean

Transacciones en Java EE Java EE permite definir transacciones de SQL, según se describieron al estudiar la API de Persistencia, o de software. Una transacción de software corresponde a la ejecución de un método de una EJB. Si se lanza una excepción durante una transacción de software, se ejecutan acciones de recuperación del error.

Transacciones en JEE, II Por defecto cualquier método de cualquier EJB comienza una transacción si no hay una comenzada. Por defecto las transacciones terminan con éxito cuando se termina de ejecutar el método que las comienza sin excepciones. Al terminar con éxito una transacción los EntityManagers involucrados llaman al método flush() y ejecutan un COMMIT.

Transacciones en JEE, III Las transacciones se terminan deshacien- do los cambios realizados desde su comienzo si se lanza una excepción antes de su terminación natural. Cuando se termina una transacción debido a una excepción los EntityManager involucrados ejecutan un ROLLBACK en el SGBD.

Transacciones en JEE, IV Cuando se termina cualquier transacción todas las entidades persistentes involucradas pasan al estado Detached (el EntityManager correspondiente ejecuta el método close sobre ellas). La excepción IncompleteConversationalState, si se recoge, no termina la transacción que se está ejecutando.

Transacciones en JEE, V JEE permite la definición programática de transacciones mediante la clase inyectable UserTransaction, que tiene métodos begin(), commit() y rollback().

Ciclo de vida de entidades

Ejercicio voluntario [EJBPERS] Aplicación web que amplía la del ejercicio [DBPERS1] del capítulo de Persistencia utilizando transacciones