Diapositiva 1 - PowerPoint PPT Presentation

About This Presentation
Title:

Diapositiva 1

Description:

DBMS. Los Enterprise Java Beans son como los Servlets. Son trozos de c digo que extienden un servidor 'Viven' en un contenedor apropiado ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 19
Provided by: nelsonb4
Category:
Tags: dbms | diapositiva

less

Transcript and Presenter's Notes

Title: Diapositiva 1


1
Esquema J2EE
Servidor de Aplicaciones
DBMS
J2EE Bean
Servlet JSP
respuesta
Servidor web
Contacta un Servlet o un JSP
2
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 cuándo se crean y se
    destruyen
  • No son contactados directamente por el cliente

3
Existen 3 Clases principales
  • Session Beans
  • Implementan procesos, orientados a acciones
    (cálculo de un valor)
  • Entity Beans
  • Están asociados a datos persistentes. Representan
    una instancia de un dato almacenado
  • Message Driven Beans
  • Parecidos a Session beans pero son despertados
    o contactados por mensajes que pueden incluso ser
    asínctonos

4
Refinando la clasificación
  • Session Beans
  • Sin estado son contactados una vez por los
    clientes, ejecutan una acción y no queda traza de
    lo que se hizo
  • Con estado en una sesión pueden ser
    contactados varias veces por el mismo cliente
    para desarrollar una conversación. Será
    necesario mantener algún tipo de información para
    recordar lo que va haciendo el cliente
  • Entity Beans
  • Persistencia controlada por el Bean el
    programador debe incluir código de modo de
    asegurarse que el enttity bean represente a un
    dato en una tabla
  • Persistencia controlada por el container el
    container se preocupa de asociar el bean a un
    dato de una tabla

5
Cómo administra el container el cliclo de vida de
los beans
  • Los beans son creados y destruidos por el
    container. Cuando un bean se levanta con el
    container (el bean debe estar ahí cuando se echa
    a andar el server) se crean instancias del bean
    (bean pool) las cuales son asignadas a los
    clientes. Qué bean es entregado a qué cliente lo
    decide el container
  • Si se necesitan más beans estos son creados por
    el container (create)
  • Si hay demasiados estos son destruidos (Remove)
  • El container puede decidir además hacer dormir
    o despertar a los beans según las necesidades
    (activate, passivate) para

6
Para crear un EJB se necesitan 3 clases
  • El ejbHome, el ejbHome y el elb propiamente tal
  • Normalmente uno crea el ejb, el resto lo hace el
    sistema
  • Cuando un cliente desea contactar a un bean
    localiza un un ejbHome Object que correspoda al
    de un bean deseado.
  • Una vez que tiene una referencia a este lo usa
    para fabricar un objeto EJB, al cual le aplica
    los métodos
  • El EJBObjet se contactará con un bean adecuado
    para que dé el servicio (esto lo hace el
    contenedor)

7
El papel de cada uno de las 3 clases de objetos
Un applet, servlet, Jsp o stand alone
Bean Pool
3 contacta home
ejbHome
cliente
5- retorna referencia
4 crea ejbObject
6 invoca método
1-ubicar
2 retorna referencia
7 contacta bean
ejbObject
Naming
8
Estados de un Bean
Cliente invoca create en un home Interface
Cliente llama a remove() en el ejbObject o se
le da un timeout al cliente
No existe
El container llega a un límite de su capacidad
swapping
1- Class.newInstance() 2- setSessionContext() 3-
ejbCreate(...)
ejbRemove()
Timeout del cleinte
ejbPasivate()
Activo
Pasivo
ejbActiivate()
Liente llama a un método del Bean pasivado
9
Los Entity beans
  • Un bean representa a un dato (fila) en una base
    de datos
  • Hay que pensar en ellos como si fueran uno solo
    con el dato en memoria secundaria
  • Debe existir un mecanismo para automáticamente
    transferir los datos de la memoria secundaria al
    EJB y vice-versa
  • Esto se hace a través de llamadas a los métodos
    ejbLoad() y ejbStore()
  • Estos métodos son llamados por el container
    cuando estima que es necesario
  • distintos beans pueden representar al mismo dato
    en disco
  • ejbActivate() y ejbPassivate() se llaman cuando
    un entity bean es puesto/sacado de un pool de
    beans, por lo que hay que programas la
    adquisición y liberación de reucursos
  • Como además se debe guardar el estado del bean en
    memoria secundaria, por lo cual se llama siempre
    a ejbStore abtes de pasivar y a ejbLoad antes de
    activar

10
Las 2 maneras de lograr persistencia de los beans
  • En un bean-manajed persistence entity bean el
    programador debe escribir las instrucciones para
    que las variables del entity bean sean las
    correspondientes a un dato en una base de datos
    (saving, loading, and finding)
  • Estas instrucciones van en los métodos de
    creación (ejbCreate(...)), destrucción
    (ejbRemove()), localización (ejbFind(...)), carga
    (ejbload()) y almacenamiento (ejbStore())
  • Esto generalmente se hace via instrucciones JDBC
  • En los container-managed persistence beans de
    esto se encarga el container, sólo basta dar
    algunas directrices para la localización de los
    datos en un archivo especial (según yo, esto
    sería una de las gracias más grandes de j2ee)

11
Esquema de creación de un entity bean
1- create()
2- ejbCreate()
cliente
Home
4- retorna una referencia al EJB object
Bean
4- retorna un objeto que representa la
clave primaria del ejb creado
5- creación del objeto EJB
3- se crea el dato en la base de datos
EJB Object
Base de Datos
CONTAINER
12
Webservices
  • Es un protocolo para intercambiar datos/servicios
    a través de la web
  • Mensajes Basados en XML en formato SOAP simple
    object access protocol
  • SOAP originalmente desarrollado por microsoft !!!

13
Webservices
  • Los servicios Web proporcionan una manera de
    crear aplicaciones que pueden ser accedidas y
    utilizadas por diferentes clientes utilizando
    diferentes plataformas.
  • Permite invocar funciones de otras aplicaciones
    independientemente de cómo se hayan creado las
    aplicaciones
  • Permite integración de aplicaciones

14
Web Services nada más simple
Servidor Web
Servicio web
Mensaje SOAP
Mensaje SOAP
Programa Cliente
15
Implementación en java
  • Se debe escribir una clase que contenga métodos
    que serán los servicios
  • Según el servidor que se use, basta con
    desplegarlos en una forma adecuada (deployment)
  • Esto generalmente se usa automáticamente
  • En el cliente basta con ubicar el servicio por
    medio de una URL y llamarlo

16
Ejemplo deploy simple
  • Cálculo raíz cuadrada
  • public class Raiz
  • public double raizCuadrada(String i1)
  • return Math.sqrt(Integer.parseInt(i1))
  • Guardamos clase con extensión .jws en directorio
    de Axis

17
Ejemplo deploy simple
  • XML SOAP generado
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltsoapenvEnvelope xmlnssoapenv"http//schemas.xm
    lsoap.org/soap/envelope/" xmlnsxsd"http//www.w3
    .org/2001/XMLSchema" xmlnsxsi"http//www.w3.org/
    2001/XMLSchema-instance"gt
  • ltsoapenvBodygt
  • ltraizCuadradaResponse soapenvencodingStyle"htt
    p//schemas.xmlsoap.org/soap/encoding/gt
  • ltraizCuadradaReturn xsitype"xsddouble"gt2.0lt/
    raizCuadradaReturngt
  • lt/raizCuadradaResponsegt
  • lt/soapenvBodygt
  • lt/soapenvEnvelopegt

18
Ejemplo deploy simple
  • Cliente que utiliza este Webservice
  • String numero "465"
  • Service service new Service()
  • Call call (Call)service.createCall()
  • call.setTargetEndpointAddress(new
    URL("http//localhost8080/axis/Raiz.jws"))
  • call.setOperationName(new QName("http//soapintero
    p.org/", "RaizCuadrada"))
  • Double returnValue (Double)call.invoke(new
    Objectnumero)
  • System.out.println("La raiz de "numero " es
    "returnValue)
Write a Comment
User Comments (0)
About PowerShow.com