La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "ENTERPRISE JAVA BEANS (EJB) DAVID VIRGIL NARANJO PROGRAMACIÓN AVANZADA INGENIERIA INFORMÁTICA."— Transcripción de la presentación:

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

2 Í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

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

4 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

5 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

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

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

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

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

10 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; } }

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

12 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".

13 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").

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

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

16 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

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

18 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

19 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

20 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

21 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("121.6000");  // 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

22 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

23 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.  <%  }  %>

24 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; }

25 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) {} }

26 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); }

27 CREACIÓN PROYECTO (1/1) 1. Bajarse contenedor EJB: BEA Weblogic 8.1 2. 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


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

Presentaciones similares


Anuncios Google