ENTERPRISE JAVA BEANS (EJB) DAVID VIRGIL NARANJO PROGRAMACIÓN AVANZADA INGENIERIA INFORMÁTICA.

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.
J2EE – Java 2 Enterprise Edition
Aplicaciones J2EE.
Capa de Persistencia Daniel Fernández Lanvin.
Lenguaje de programación Java
Arquitectura, conceptos y ejemplos
"java del lado del servidor" Servlet y JSP Java Server Pages.
Unidad 6: EJB 3.0 David Rodríguez 1.
Capitulo 4 Excepciones.
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
Entornos orientados a objetos
Java 2 Platform Enterprise Edition
RMI (Remote Method Invocation)
Rosalía Laza Fidalgo Reyes Pavón Rial Curso
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
1 Ingeniería del Software Ejercicios de Implementación  Caso de Uso Total Gasto (Junio 2003)  Caso de Uso Mejor Usuario (Septiembre 2003)  Caso de Uso.
Igor Santos Grueiro. Ahora tenemos datos y datos …
Enterprise JavaBeans Dr. Diego Lz. de Ipiña Gz. de Artaza
Servlets, JSP, JavaBEANS,JDBC
Desarrollo de Aplicaciones Utilizando Java Edición Empresarial – JEE6
Invocación de Métodos Remotos RMI: Remote Method Invocation
Propósito: * Mostrar indicativos porcentuales de los diversos microorganismos con los que se alimentan el camarón en un manejo semi-intensivo aplicado.
Tema 11: Excepciones Antonio J. Sierra.
SPRING MVC.
Capítulo 5 - b: Hilos. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Ejemplo de hilos: un applet Un.
Tema 6 - Enterprise JavaBeans Dr. Diego Lz. de Ipiña Gz. de Artaza
J2EE Java Enterprise edition eilin chang Matthew pabon Gabriel vega.
Tutor: Ing. Juan E. Talavera Horn 2010 GWT – EJB Patrones de diseño e integración.
ASIGNACION DE LAS PARTES DE LA APLICACION DISTRIBUIDA EN JAVA PESENTA: LEVI MONROY MARTINEZ.
J2EE – Java 2 Enterprise Edition
USO DE EXCEPCIONES EN JAVA LSC. Natalia Rodríguez Castellón.
PRESENTACIÓN MULTIPLAN Grupo 3. Componentes del Grupo  Alexis Loyola  David Montero  David Salinas  Ekaitz Virto  Iñigo Aragón  Raquel Montero 
ENTERPRISE JAVA BEANS (EJB’s)‏ Sistemas de Operación 3.
Enterprise Java Beans. EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas.
J2EE Enterprise JavaBeans J2EE Enterprise JavaBeans Modelos Orientados por Objetos Javier Azabache Jesus De Oliveira Sergio Aguilera Febrero 2004 Universidad.
Los Enterprise Java Beans son como los Servlets Son trozos de código que extienden un servidor “Viven” en un contenedor apropiado El contenedor decide.
Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
1 Manejo de Excepciones y otros Agustín J. González ELO-329.
Enterprise JavaBeans Arvelo, Yolife Ascanio, Eduardo Chacón, Johnny Quintana, Susana Unversidad Simón Bolívar Departamento de Computación y T.I Sistemas.
Manuel I. Capel Tuñón Ramón A. Carrasco González
Sistemas Distribuidos
Programación avanzada en Java Miguel Ángel Corella 26 de Septiembre de 2005.
Desacoplamiento de Capas
Contacta un Servlet o un JSP
Detalles Generales sobre Java
Enterprise JavaBeans Distributed Component Object Model
Tratamiento de excepciones
Daniel Fernández Lanvin Desacoplamiento de Capas.
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.
Arquitecturas de Integración Mensajería
Patrón de diseño BROKER
Temario Java 2 Enterprise Edition Arquitectura Especificación Servlets Contenedores Cookies Sesiones.
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.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Softlogia S.R.L. Formación de Recursos Humanos Java Server Faces Instructor: Martin R. Baspineiro.
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,
Excepciones Diseño y manejo de excepciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 5 Versión
Crear Aplicación Cliente para Conectarse a una Base de Datos.
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.
Softlogia S.R.L. Formación de Recursos Humanos Hibernate Core Instructor: Martin R. Baspineiro.
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.
Java RMI. Entornos orientados a objetos  Tendencia actual hacia sistemas compuestos por un conjunto de objetos que interactúan entre sí.  Un programa.
Disseny de la persistència Enterprise Java Beans
Transcripción de la presentación:

ENTERPRISE JAVA BEANS (EJB) DAVID VIRGIL NARANJO PROGRAMACIÓN AVANZADA INGENIERIA INFORMÁTICA

ÍNDICE DE CONTENIDOS(1/2) 1. Introducción 2. Introducción J2EE 3. ¿Qué es un Java Bean? 4. Diferencias entre un EJB y un Java Bean 5. Ventajas EJB 6. Desventajas EJB

ÍNDICE DE CONTENIDOS(2/2) 7. Tipos de EJB 8. Resumen general 9. Componente EJB 10. Ejemplos 11. Creación proyecto

1. INTRODUCCION  Construir aplicaciones independientes  Programador solo interesado en la lógica de negocio.  Uso de componentes Java independientes de los descriptores de despliegue  Xdoctlet permite la independencia.  Acelerar proceso de desarrollo y despliegue

2. INTRODUCCIÓN J2EE (1/4)  Arquitectura multicapa.  Aplicaciones empresariales basadas en web  Aplicaciones cliente-servidor  Utilizar componentes del lado del servidor  Uso de contenedores web

2. INTRODUCCIÓN J2EE (2/4)

2. INTRODUCCIÓN J2EE (3/4) COMPONENTES DE NEGOCIO:

2. INTRODUCCIÓN J2EE (4/4) CONTENEDORES J2EE

2. ¿QUÉ ES UN JAVA BEAN (1/3) Un Java Bean es una clase Java que permite agrupar funcionalidades y propiedades utilizadas en una aplicación y poder utilizarse desde una página JSP. Así se consigue aislar la lógica de la aplicación del diseño y aspecto, permitiendo que ambas fases puedan ser desarrolladas de forma simultánea y separadas para luego ser integradas.

2. ¿QUÉ ES UN JAVA BEAN (2/3) Ejemplo: public class LibroListenerBean implements¬ HttpSessionBindingListener { private String titulo; private String autor; public void setTitulo(String titulo) { this.titulo = titulo; } public void setAutor(String autor) { this.autor = autor; } public String getTitulo() { return titulo; } public String getAutor() { return autor; } }

2. ¿QUÉ ES UN JAVA BEAN (3/3) Ejemplo:Libro.jsp jsp:useBean id="libro"¬ class="iworld.LibroListenerBean"¬ scope="session" /> " %> JavaBeans - iWorld Guardamos los datos... ¬ Recuperamos los datos...

4. JAVA BEAN VS EJB (1/2)  Un "Java Bean" es un componente utilizado en Java que permite agrupar funcionalidades para formar parte de una aplicación.  "Enterprise Java Bean" también agrupa funcionalidades para una aplicación, sin embargo, a diferencia de un "Java Bean" un "Enterprise Java Bean" es un "deployable component".

4. JAVA BEAN VS EJB (2/2)  Un "Java Bean" requiere ser integrado con otros componentes para que éste sea funcional, mientras un "Enterprise Java Bean" a través de un "EJB Container" puede ser activado("deployed").

5. VENTAJAS EJB  Servicios ("Middleware")  Si ocurre un error que proceso ha de ejecutarse.  Si la base de datos especificada se encuentra desactivada, existe otra alternativa  Division de trabajo  Concentrar esfuerzos en la "lógica de proceso" sin preocuparse del diseño de servicios.  Diversos clientes  JSP o servlets, bases de datos, applets…  Diversos vendedores  Ejecutar cualquier "EJB" en cualquier "EJB Container“ (IBM, Jboss, Inprise)

6. DESVENTAJAS EJB  Tiempo de Desarrollo  El desarrollar un Sistema con EJB's es sumamente complejo.  Alto conocimiento de Java  RMI,JDBC, JNDI, JavaBeans…

7. TIPOS DE EJB (1/2)  ENTITY EJB  Datos persistentes almacenados en una fila de una tabla/relación de una base de datos  SESSION EJB  Conversación temporal con un cliente  TIPOS: Stateless (Session) EJB's Statefull (Session) EJB's  BEANS dirigidos por mensajes

7. TIPOS DE EJB (2/2) DIFERENCIAS Entity Bean/Session Bean  Persistencia  Acceso compartido  Clave primaria

8. RESUMEN GENERAL  Los EJB se utilizan en la capa de negocio  Los EJB siempre son utilizados desde el servidor.  Los JavaBeans se pueden utilizar tanto en el cliente como en el servidor.  Tipos de EJB: de sesión o de entidad.  Los EJB agrupan funcionalidades  Contenedor EJB disponible con J2EE

9. COMPONENTE EJB DIFERENCIAS EJB SESIÓN CON/SIN ESTADO Un EJB con estado almacena información entre llamadas PARTES COMPONENTE EJB Interfaz componente -> define los métodos del bean Interfaz home -> define el metodo create Clase de implementación del bean Clase prueba bean

10. EJEMPLOS (1/7) EJB de sesión sin estado: Conversor de monedas */ package converter; import javax.ejb.EJBObject; import java.rmi.RemoteException; import java.math.*; public interface Converter extends EJBObject { // Método que permite convertir una cantidad en dolares a yenes public BigDecimal dollarToYen(BigDecimal dollars) throws RemoteException; // Método que permite convertir una cantidad en yenes a euros public BigDecimal yenToEuro(BigDecimal yen) throws RemoteException; } INTERFAZ COMPONENTE

10. EJEMPLOS (2/7)  /*  * Clase del Bean de Sesion sin estado ConverterBean  */  package converter;  import java.rmi.RemoteException;  import javax.ejb.SessionBean;  import javax.ejb.SessionContext;  import java.math.*;  public class ConverterBean implements SessionBean {   // Factor de cambio a yenes  BigDecimal yenRate = new BigDecimal(" ");  // Factor de cambio a euros  BigDecimal euroRate = new BigDecimal("0.0077");  // Implementación del método de negocio dollarToYen  public BigDecimal dollarToYen(BigDecimal dollars) {  BigDecimal result = dollars.multiply(yenRate);  return result.setScale(2, BigDecimal.ROUND_UP);  } // Implementación del método de negocio yenToEuro public BigDecimal yenToEuro(BigDecimal yen) { BigDecimal result = yen.multiply(euroRate); return result.setScale(2, BigDecimal.ROUND_UP); } // Constructor público sin parámetros public ConverterBean() {} // Métodos ejbCreate public void ejbCreate() {} // Métodos del interfaz SessionBean public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sc) {} } Implementacion BEAN

10. EJEMPLOS (3/7)  /*  * Interfaz Home del EJB ConverterBean  */  package converter;  import java.io.Serializable;  import java.rmi.RemoteException;  import javax.ejb.CreateException;  import javax.ejb.EJBHome;  public interface ConverterHome extends EJBHome {  // Método create que devuelve un objeto de tipo Converter  // (interfaz remota de ConverterBean)  Converter create() throws RemoteException, CreateException;  } <%! private Converter converter = null; public void jspInit() { try { InitialContext ic = new InitialContext(); Object objRef = ic.lookup("java:comp/env/ejb/TheConverter"); ConverterHome home = (ConverterHome)PortableRemoteObject.narrow(objRef, ConverterHome.class); converter = home.create(); } catch (RemoteException ex) { System.out.println("Couldn't create converter bean."+ ex.getMessage()); } catch (CreateException ex) { System.out.println("Couldn't create converter bean."+ ex.getMessage()); } catch (NamingException ex) { System.out.println("Unable to lookup home: "+ "TheConverter "+ ex.getMessage()); } %> Interfaz homeCliente JSP

10. EJEMPLOS (4/7)  ……  Introduce una cantidad para convertir:   <%  String amount = request.getParameter("amount");  if ( amount != null && amount.length() > 0 ) {  BigDecimal d = new BigDecimal (amount);  %>   dollars son Yen.   Yen son Euro.  <%  }  %>

10. EJEMPLOS (5/7)  /*  * Interfaz remota del EJB CartBean  */  import java.util.*;  import javax.ejb.EJBObject;  import java.rmi.RemoteException;  public interface Cart extends EJBObject {   public void addBook(String title) throws RemoteException;  public Vector getContents() throws RemoteException;  } EJB de sesión con estado: Carrito compra libros /* * Interfaz home del EJB CartBean */ import java.io.Serializable; import java.rmi.RemoteException; import javax.ejb.CreateException; import javax.ejb.EJBHome; public interface CartHome extends EJBHome { Cart create(String person) throws RemoteException, CreateException; }

10. EJEMPLOS (6/7)  /*  * Clase CartBean  */  import java.util.*;  import javax.ejb.*;  public class CartBean implements SessionBean {  String customerName;  Vector contents;  public void ejbCreate(String person) throws CreateException {  if (person == null) {  throw new CreateException("No se permite entrar sin indentificación.");  } else {  customerName = person;  }  contents = new Vector();  }  public void addBook(String title) { contents.addElement(title); } public Vector getContents() { return contents; } public CartBean() {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sc) {} }

10. EJEMPLOS (7/7)  /*  * Aplicación cliente para CartBean  */  import java.util.*;  import javax.naming.Context;  import javax.naming.InitialContext;  import javax.rmi.PortableRemoteObject;  public class CartClient {  public static void main(String[] args) {  try {  Context initial = new InitialContext();  Object objref = initial.lookup("java:comp/env/ejb/SimpleCart");  CartHome home = (CartHome) PortableRemoteObject.narrow(objref,  CartHome.class);  Cart shoppingCart = home.create("swc");  shoppingCart.addBook("Harry Potter: La piedra filosofal");  shoppingCart.addBook("Harry Potter: La cámara secreta");  shoppingCart.addBook("Harry Potter: El caliz de fuego"); Vector bookList = new Vector(); bookList = shoppingCart.getContents(); Enumeration enumer = bookList.elements(); while (enumer.hasMoreElements()) { String title = (String) enumer.nextElement(); System.out.println(title); } System.exit(0); } catch (Exception ex) { System.err.println("Capturada una excepción!!!!!"); ex.printStackTrace(); System.exit(1); }

CREACIÓN PROYECTO (1/1) 1. Bajarse contenedor EJB: BEA Weblogic Cargar servidor de aplicaciones WebLogic 3. Creación de proyecto Java con Eclipse 4. Añadir las 3 clases del Bean 5. Hacer deploy del EJB en BEA 6. Crear clase cliente