Reutilización de software

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Reutilización de software"

Transcripción

1 Reutilización de software A nivel de clase: Clases y algoritmos JGL A nivel de diseño Patrones de diseño A nivel de arquitectura Arquitectura J2EE 1

2 Aplicaciones Web Servidor Introducción a la arquitectura J2EE 2

3 Índice Introducción Servidor de aplicaciones Arquitectura de aplicación J2EE Desarrollo de EJB s (parte 2) 3

4 Introducción Objetivo Desarrollar, implantar y ejecutar componentes de lógica de negocio en la plataforma J2EE Java 2 Enterprise Edition 4

5 Introducción Dónde lo implementamos? Heterogeneidad: Plataforma: Unix/Linux, Windows, Mac/OS Lenguaje lógica: Java, C++, c#, Perl Fabricante: Oracle, IBM, HP, Microsoft Plataforma J2EE (Sun Microsystems): Define una arquitectura de desarrollo (n niveles) Define una serie de especificaciones para el desarrollo de aplicaciones en internet. No implementa ningún software Únicamente está especificaciones compuesto por un conjunto de Los fabricantes desarrollan servidores de aplicaciones que cumplen las especificaciones J2EE Permite la migración de un fabricante a otro fácilmente. 5

6 Introducción J2EE: Distribución básica multinivel Nivel Cliente Nivel (es) servidor de aplicación Nivel Datos Apps Presentación Lógica Servicios API Servicios API 6

7 Introducción El API de J2EE Java Servlets 2.3 Java Server Pages (JSP) 1.2 Enterprise Java Beans (EJB) 2.0 JDBC 2.0 Java Message Service (JMS) 1.0 Java Transaction API (JTA) 1.0 Java Mail 1.2 Java Beans Activation Framework (JAF) 1.0 Java API for XML Parsing (JAXP) 1.1 The Java Connector Architecture (JCA) 1.0 Java Authentication and Authorization Service (JASS) 1.0 7

8 Servidor de aplicaciones Es un software que da soporte a los componentes de servidor Proporciona un entorno de ejecución para los componentes Los componentes de servidor utilizan los servicios del servidor de aplicaciones Tareas de infraestructura: Instalación de componentes Comunicación Sincronización de acceso concurrente Preparación de un entorno seguro Seguridad en las transacciones 8

9 Servidor de aplicaciones Servicios ofrecidos Servicio de nombres: acceso a componentes y recursos a través de nombres lógicos Java Naming and Directory Inteface(JNDI) Servicio de transacciones: ejecución de una serie de pasos de forma atómica y aislada Java Transaction Service (JTS) Servicio de seguridad: directivas de seguridad para recursos protegidos Java Authentication and Authorization Service(JAAS) Persistencia: almacenamiento persistente de objetos y estados de objetos, normalmente en BD relacionales JDBC Comunicación: distintas técnicas de comunicación Comunicación Web: TCP/IP, UDP/IP,HTTP1.0 y HTTPS Procesador de objetos distribuidos: RMI-IIOP Servicios de configuración y administración: empaquetamiento, instalación y configuración flexible de componentes y la administración de aplicaciones Descripción mediantes esquemas XML de las características de servidores, containers y otro servicios. 9

10 Arquitectura de aplicación J2EE Nivel Cliente Nivel (es) servidor de aplicación Nivel Datos Cliente web Web container EJB container Bases de datos Aplicaciones legadas Cliente Java Servlets, JSP Enterprise JavaBeans Servicios y API s, JNDI, RMI-IIOP Servicios y API s, JNDI, RMI-IIOP Servicios y API s, JNDI, RMI-IIOP Sistemas ERP J2EE J2EE J2EE 10

11 Arquitectura J2EE 11

12 Aplicación J2EE desde cliente Java 12

13 Enterprise (Java)Beans (EJB) Es una especificación completa para el desarrollo de componentes de negocio Objetivos de la arquitectura de componentes EJB: Facilitar el desarrollo de aplicaciones, concentrándose en la lógica de negocio Independencia del proveedor de componentes mediante la utilización de interfaces Independencia de la plataforma, gracias a la utilización del lenguaje Java 13

14 Aplicaciones Web Servidor Desarrollo de EJB s

15 Índice Tecnología utilizada Arquitectura Desarrollo de un EJB Clasificación de EJB s Los Session Bean 15

16 Tecnología utilizada RMI-IIOP: Invocación de objetos remotos mensaje mensaje Cliente Internet EJB JNDI: Localización de los objetos remotos 16

17 Invocación remota de objetos: RMI-IIOP Queremos que los objetos del servidor se abstraigan de los aspectos relacionados con la comunicación remota Cliente Objeto remoto Interfaz remota Interfaz remota Stub Skeleton La tarea mas importante de los Stubs y Skeleton consiste en serializar los objetos que se envían como parámetro 17

18 Invocación remota de objetos: RMI-IIOP Separación interfaz y lógica Para construir y usar una clase Kaixo remota con el método iepa(string n) debemos: Definir una interfaz IKaixo con el método iepa(string n) que extienda la interfaz java.rmi.remote y hacer que este método declare la interfaz RemoteException Definir una clase KaixoImp que implemente la interfaz Kaixo Llamar al compilador RMI (rmic) para que cree las clases KaixoStub y KaixoSkeleton Crear al menos un objeto de la clase KaixoImpl y darle un nombre Un cliente debe localizar el objeto remoto, obtener el stub y realizar las llamadas al stub. El cliente debe tener en su máquina virtual la clase KaixoStub.class 18

19 Jerarquia de clases class java.rmi.server.unicastremoteobject interface java.rmi.remote -- CLASE REMOTA -- INTERFAZ REMOTA extiende class KaixoImp +iepa(n:string):void -- CLASE REMOTA implementa extiende interface IKaixo + iepa(n:string):void -- INTERFAZ REMOTA class Cliente kaixo: IKaixo usa -- CLASE CLIENTE 19

20 Invocación remota de objetos: RMI-IIOP Ejemplo: la interfaz IKaixo import java.rmi.remote; import java.rmi.remoteexception // La interfaz remota del objeto remoto. Los clientes // utilizarán esta interfaz para invocar el objeto remoto public interface IKaixo extend Remote { public String iepa(string n) throws RemoteException; } 20

21 Invocación remota de objetos: RMI-IIOP Ejemplo: la implementación Kaixo import java.rmi.remoteexception import java.rmi.portableremoteobject; public class KaixoImp extend PortableRemoteObject implements IKaixo{ public KaixoImp throws RemoteException { super(); } public String iepa(string n) throws RemoteException { return ( iepa +n); } } 21

22 Búsqueda remota de objetos: JNDI Servicios de naming y directory Mecanismo para la búsqueda de: Máquinas, Impresoras, drivers Consiste en asociar a un nombre lógico un elemento físico Código Cliente JNDI Client API Service Provider Interface LDAB Service Provider NIS Service Provider File System Service Provider 22

23 Búsqueda remota de objetos: JNDI Servicios de naming y directory Cliente Code 2: Buscar el objeto en un árbol JNDI conocido 3: return Stub Initial Context 4: Invocación método remoto RMI-IIOP Stub Máquina #1 5: Delegar RMI-IIOP Skeleton 1: Almacenar el objeto remoto en el árbol JNDI 6: Delegar RMI-IIOP Remote Object Máquina #2 Máquina #3 23

24 Búsqueda remota de objetos: JNDI Almacenar el objeto remoto en el árbol JNDI Crear una instancia del objeto remoto Localizar el contexto objeto del árbol y la máquina Ubicar el objeto en el contexto 24

25 Búsqueda remota de objetos: JNDI Servicios de naming y directory Import javax.naming.*; public class Startup { public static void main(string args[]) Throws Exception { // Crear una instancia del objeto IKaixo kaixoinstance= new Kaixo(); // Localizar el objeto en el árbol JNDI InitialContext ctx=new InitialContext(System.getProperties()); ctx.rebind( KaixoObj, kaixoinstance); synchonized(kaixoinstance) { kaixoinstance.wait(); } } } 25

26 Búsqueda remota de objetos: JNDI Servicios de naming y directory Import javax.naming.*; import java.rmi.*; public class Client { public static void main(string args[]) Throws Exception { // Buscar el Stub através del JNDI Context ctx=new InitialContext(System.getProperties()); Object remoteobject=ctx.lookup( KaixoObj ); // Casting IKaixo ikaixo=(ikaixo)javax.rmi.portableobject.narrow(remoteobject,kaixo.class); System.out.println(ikaixo.iepa( alumnos de iso )); } 26

27 Índice Tecnología utilizada Qué son los EJB s? Desarrollo de un EJB Clasificación de EJB s Los Session Bean Los Entity Bean 27

28 Qué son los Enterprise JavaBeans EJB s: componentes usados como parte de aplicaciones corporativas distribuidas Cada bean encapsula parte de la lógica de negocio de la aplicación Se comunica con gestores de recursos y otro EJB s Accedido por distintos tipos de clientes: EJB s, servlets, clientes de aplicación, etc. En tiempo de ejecución reside en un contenedor EJB: servicios de seguridad, transacción, instalación(deployment), concurrencia y gestión del ciclo de vida. Una aplicación puede tener uno o varios EJB s en uno o varios contenedores EJB 28

29 Instalación típica J2EE Cliente web browser Web container JSP Servlets EJB container JDBC Bases de datos Cliente app. local Cliente Applet Firewall Servlets RMII-IIOP RMI-IIOP JSP Enteprise Beans Enteprise Beans Enteprise Beans Conectores Aplicaciones legadas Sistemas ERP Messaging(EJB 2.0, JMS, EJB 2.1) Servidor J2EE 29

30 Arquitectura Cliente EJB Container Interfaz remota API Transacciones Objeto remoto API Seguridad API BD Servicios Interfaz remota Stub Red Skeleton Aumento de las necesidades en el servidor: Transacciones, Persistencia, Seguridad, Threads,... 30

31 Arquitectura Corba Middleware explícito (anterior a J2EE) EJB Container API Transacciones Cliente Interfaz remota Interfaz remota Objeto remoto API Seguridad API BD Servicios Stub Red Skeleton CORBA: Invocación explícita a los servicios middleware a 31 través de un API dentro del código del objeto remoto

32 Arquitectura Corba Middleware explícito: Ejemplo transfer (Cuenta cuenta1, Cuenta cuenta2, long cantidad) { // 1: Invocar al API del middleware para verificar la seguridad // 2: Invocar al API del middleware para iniciar una transacción // 3: Invocar al API del middleware para cargar las tuplas de la BD 4: eliminar la cantidad de una cuenta y añadirlo a la otra // 5: Invocar al API del middleware para almacenar las tuplas // 6: Invocar al API del middleware para finalizar una transacción } 32

33 Arquitectura Corba Middleware explícito: Desventajas 1. Difícil de escribir: El código está contaminado. Muchas líneas de código no relacionadas con la lógica de negocio. 2. Difícil de mantener: Si se quiere modificar los servicios que utiliza el Bean, se necesita reescribir el código. 3. Difícil de Modificar: Los Vendedores Independientes de Software (ISV) NO ofrecen el código fuente, ya que es su propiedad intelectual. Por lo tanto los cambios en el código no serán posibles directamente. 33

34 Arquitectura J2EE Middleware implícito XML deployment Cliente <transaction> <security>. <data>. EJB Container Interfaz remota Objeto remoto API Transacciones API Seguridad API BD Servicios Interfaz remota Stub Red Skeleton 34

35 Arquitectura J2EE Middleware implícito Cliente EJB Container Objeto remoto Interfaz remota Objeto intercpt Interfaz remota API Transacciones API Seguridad API BD Servicios Interfaz remota Stub Red Skeleton 35

36 Arquitectura Middleware implícito: Arquitectura EJB 1. Escribir el objeto distribuido que contiene únicamente la lógica de negocio. No implementar invocación a los servicios del middleware transfer (Cuenta cuenta1, Cuenta cuenta2, long cantidad) { // 1: eliminar la cantidad de una cuenta y añadirlo a la otra } 2. Declarar los servicios que necesita el objeto distribuido en un fichero separado: fichero descriptor 3. Describir (interfaz) los servicios que exporta el objeto distribuido. 4. Ejecutar el programa suministrado por el proveedor, para que teniendo en cuenta las necesidades del objeto distribuido genere el objeto interceptor 5. El objeto interceptor intercepta la llamada desde el cliente, ejecuta los servicios del middleware que necesita el objeto distribuido y finalmente delega la llamada al objeto distribuido 36

37 Arquitectura Middleware implícito: Ventajas 1. Fácil de escribir: Únicamente se escribe la lógica de la aplicación. Los servicios necesarios se declaran en un fichero de texto. 2. Fácil de mantener: La separación de la lógica de negocio y la lógica del middleware es ortogonal. Modificaciones en el middleware NO implica modificaciones en el código de la aplicación. 3. Fácil de Modificar: Los clientes pueden modificar las necesidades del middleware modificando el fichero descriptor. Por ejemplo, se puede modificar aspectos de seguridad sin modificar el código fuente. 37

38 RMI y EJB s 38

39 Arquitectura completa EJB s 39

40 Desarrollo de un EJB Creación de un EJB Object remoto Client Code, such as Sevlets or Applets 5: Devolución referencia Objeto EJB (Stub) EJB Container/Server 3: Crear un nuevo objeto EJB 1: localizar referencia objeto Home 2: return referencia objeto Home interface Home JNDI Objeto Home 4: Crear objeto EJB Enterprise Beans Servicio Naming (LDAP) interface remota Objeto EJB En la interfaz home se indican los parámetros necesarios (de los métodos constructores) para crear los objetos EJB 40

41 Implementación componente EJB Un componente EJB [Kaixo] se define mediante tres objetos: Interfaz componente (o ejb) [IKaixo.java]: define los métodos del componente accesibles desde el cliente Interfaz home [IKaixoHome.java]: define los métodos de creación y borrado de componentes accesibles desde el cliente Objeto bean [KaixoBean.java]: define la implementación de los métodos del componente y el código de inicialización y borrado de los componentes 41

42 Desarrollo de un componente EJB 1. Escribir las interfaces componente y home 2. Escribir la clase bean con la implementación de los métodos de negocio 3. Crear el descriptor de despliegue ejb-jar.xml 4. Crear el fichero EJB JAR 5. Desplegar el bean en el contenedor 6. Usar el bean desde los clientes 42

43 Desarrollo de un EJB La interfaz remota Indica qué métodos del Bean se exportan Es una interfaz java Descrita por el desarrollador Tiene que extender a javax.ejb.ejbobject javax.ejb.ejbobject extiende a java.rmi.remote. Todo objeto que implementa java.rmi.remote es un objeto remoto que puede ser invocado desde cualquier JVM 43

44 Desarrollo de un EJB La interfaz remota La interfaz con la que opera el cliente cuando quiere invocar al EJB. Es tarea del sistema implementar esta interfaz. El objeto implementado es el objeto EJB, quien delega la invocación al bean. public interface IKaixo extend javax.ejb.ejbobject { public String iepa() throws java.rmi.remoteexception; } 44

45 Desarrollo de un EJB La interfaz Home Esta interfaz tiene métodos para crear/destruir objetos EJB. La implementación del home interface es el home Object y la implementa el sistema public interface IKaixoHome extend javax.ejb.ejbhomeobject { IKaixo create() throws java.rmi.remoteexception, java.ejb.createexception; } 45

46 Desarrollo de un EJB Invocación a un Bean remoto Client Code, such as Sevlets or Applets EJB Container/Server 1: invocar Stub interface Home Objeto Home 6: llamada bean Enterprise Beans interface remota Objeto EJB 5: middleware Transaction service, Security service Persistence service, etc... Interfaz remota 4:invocar al Objeto EJB Stub Red 2: marshall 3: unmarshall Skeleton 46

47 Desarrollo de un EJB Creación de un EJB Object local EJB Container/Server Client Code, such as Sevlets 1: invocar el objeto local Interface local Home Objeto local Home 3: llamada bean Enterprise Beans interface local Objeto local EJB 2: middleware Transaction service, Security service Persistence service, etc... En ocasiones, el cliente se encuentra en la misma máquina que el contenedor de EJB!! 47

48 Desarrollo de un EJB La interfaz local Los clientes locales pueden utilizar esta interfaz para invocar al bean. La mayor diferencia radica en el tratamiento de excepciones public interface IKaixoLocal extend javax.ejb.ejblocalobject { public String iepa() ; } 48

49 Desarrollo de un EJB La interfaz local home Los clientes locales pueden utilizar esta interfaz para invocar al bean. La mayor diferencia radica en el tratamiento de excepciones public interface IKaixoLocalHome extend javax.ejb.ejblocalhome { KaixoLocal create() throws java.ejb.createexception; } 49

50 Desarrollo de un EJB La clase Bean public class KaixoBean implements javax.ejb.sessionbean { private SessionContext ctx; public void ejbcreate() {}; public void ejbremove() {}; public void ejbactivate() {}; public void ejbpassivate() {}; public void setsessioncontext(javax.ejb.sessioncontext ctx){ this.ctx=ctx;} } //Métodos de negocio public String iepa() { return iepa guztioi!!!! ; } 50

51 Desarrollo de un EJB Descriptor deployment independiente Los servicios middleware requeridos por el Bean (XML) - Gestión del bean: Nombre, tipo, home interface - Requisitos de Persistencia: Cómo almacenar los datos - Requisitos Transacionales - Requisitos de Seguridad 51

52 Desarrollo de un EJB Descriptor deployment independiente <ejb-jar> <enterprise-beans> <session> <ejb-name> El nombre del bean <home> El nombre de la interface home <remote> El nombre de la interface remota <local-home> El nombre del la interface local remota <local> El nombre de la interface local <ejb-class> el nombre del la clase del bean (class) <session-type> Si es stateful o stateless <transaction-type>... <session> <enterprise-beans> <ejb-jar> 52

53 Desarrollo de un EJB Descriptor deployment independiente <ejb-jar> <enterprise-beans> <session> <ejb-name> Kaixo </ejb-name> <home> examples.ikaixohome </home> <remote> examples.ikaixo </remote> <local-home> examples.ikaixolocalhome </local-home> <local> examples.ikaixolocal </local> <ejb-class> examples.kaixobean </ejb-class> <session-type> Stateless </session-type> <transaction-type> Container </transaction-type> <session> <enterprise-beans> <ejb-jar> 53

54 Desarrollo de un EJB Descriptor deployment dependiente Describe parámetros no estándar. Depende del servidor de EJBs. Referencia JNDI 54

55 Desarrollo de un EJB El fichero de despliegue. El fichero.jar Interfaces Home Remota Interfaces Home Local Creador fichero JAR Fichero Jar EJB Clases Enterprise Bean Interfaces Object Remota Interfaces Object Local Deployment Descriptor independiente Deployment Descriptor dependiente 55

56 Desarrollo de un EJB Pasos a seguir Escribir los ficheros.java que componen el bean: interfaces local y remoto, interfaces home local y remoto, el propio fichero y las clases adyacentes que sean necesarias Escribir el fichero de deployment Compilar las clases del punto 1 Crear al fichero Ejb-jar utilizando la utilidad jar. Este fichero debe contener el fichero de deployment y los ficheros.class Implantar el fichero ejb-jar Iniciar el contenedor de EJB (servidor) Crear un fichero.java que pruebe si funciona correctamente 56

57 Desarrollo de un EJB Modelo de Objetos Viene con la plataforma Java 2 <<interface>> javax.rmi.remote <<interface>> java.io.serializable <<interface>> javax.ejb.ejblocalobject <<interface>> javax.ejb.ejbobject Viene con la distribución de EJB <<interface>> javax.ejb.ejbhome <<interface>> javax.ejb.ejblocalhome <<interface>> javax.ejb.enterprisebean <<interface>> javax.ejb.sessionbean <<interface>> Kaixo Local Interface <<interface>> Kaixo Remote Interface <<interface>> Kaixo Home Interface <<interface>> Kaixo Local HomeInterface Suministrado por el proveedor del Bean (tenemos que escribirlo) Kaixo Bean Clase Implementación Kaixo EJB Local Object Kaixo EJB Object Kaixo Home Object Kaixo Local Home Object Generado por nosotros utilizando las herramientas del vendedor 57

58 Desarrollo de un EJB El cliente EJB Container/Server Cliente Interface Home 3: Crear nuevo objeto EJB 5: return referencia objeto EJB Objeto Home 6: Invocación método 4: Crear objeto EJB 1: localizar referencia objeto Home 2: return referencia objeto Home interface local Objeto EJB Enterprise Beans JNDI 7: delegar llamada al bean Servicio Naming (LDAP) 58

59 Desarrollo de un EJB El cliente Crear el contexto inicial. Los parámetros iniciales dependen de la plataforma. Localizar la referencia al EJB. Se obtiene una referencia a un objeto Home. Obtener la referencia a un objeto remoto (Remote Interface). Invocar los servicios ofrecidos por el EJB a través de la interfaz remota obtenida. 59

60 Desarrollo de un EJB El código del cliente Import javax.naming.context; import javax.naming.initialcontext; import javax.util.properties; public class KaixoClient { Parámetros de conexión al servidor JNDI public static void main(string[] args) throws Exception { //propiedades JNDI Properties props=system.getproperties(); // Obtener el contexto JNDI inicial (ip, posicion árbol) InitialContext ctx=new InitialContext(props); Conexión con el servidor JNDI 60

61 Desarrollo de un EJB El código del cliente Localización del objeto Home // Casting Object obj=ctx.lookup( KaixoHome ); KaixoHome home=(kaixohome ) javax.rmi.portableremoteobject.narrow( obj, KaixoHome.class); Kaixo kaixo=home.create(); Creación del objeto remoto System.out.println(kaixo.iepa()); } Invocación de los servicios del EJB 61

62 Índice Tecnología utilizada Arquitectura de componentes Desarrollo de un EJB Clasificación de EJB s Los Session Bean Los Entity Bean 62

63 Clasificacion de EJB Session Bean Características Ejecutados en relación a un único cliente Puede manejar datos en una BD subyacente De vida relativamente corta No se garantiza su persistencia en caso de caída del sistema Implementa lógica y/o reglas de negocio Ejemplos: validación tarjeta crédito carrito de la compra 63

64 Clasificacion de EJB Entity Bean Características Representa datos en una base de datos Siempre es transaccional Siempre compartido por múltiples usuarios Existe mientras existan los datos que subyacen Su persistencia es transparente en caso de caída del sistema Encapsula objetos de negocio Ejemplo: control de inventario de productos 64

65 Los Entity-bean Account class AccountID ownername balance 1 Ray Combs Bob Barker 1500 String accountid String ownername double balance deposit(amount) withdraw(amount) 3 Monty Haul 2750 Tabla Account Base de datos Account Instance accountid=1 ownername=ray Combs balance=

66 Los Entity Bean Account class String accountid String ownername double balance deposit(amount) withdraw(amount) Cada objeto se caracteriza por una clave El desarrollador del Bean únicamente se encarga de implementar los métodos deposit y withdraw El sistema se encargará de manera automática de actualizar la BD cuando haya habido alguna operación que haya modificado alguna de las variables del objeto cuenta 66

67 Desarrollo de EJB s Los Session Beans 67

68 Índice Clasificación de los Session Bean Stateless y Stateful Desarrollo de un Session Bean Stateless y Stateful 68

69 Introducción a los Session Beans Tipos de Session Bean Sin estado (stateless EJBs) Completamente transitorio Mera pieza de maquinaria de negocio No retiene información entre llamadas Con estado (stateful EJBs) Mantiene estado conversacional con el cliente Extensión lógica en el servidor de la aplicación cliente Pueden participar en transacciones Accedidos a través de su interfaz remota 69

70 Ejemplo I: Stateless bean Bean sin estado EJB Container/Server Interface Home Objeto Home isloginvalid(login, passwd) Enterprise Beans Gestión de Passwords isloginvalid(login, passwd) Interface Remota isloginvalid(login, passwd) Objeto EJB 70

71 Ejemplo I: Stateless bean Bean sin estado 4 partes requeridas al definir un bean: La interfaz remota. Extiende javax.ejb.ejbobject La interfaz Home. Extiende javax.ejb.ejbhome La definición de la clase del Bean Meta-data (descriptores y otra info. de configuración) 71

72 Ejemplo I: Stateless bean La interfaz remota Creación de la interfaz remota Extiende javax.ejb.ejbobject import javax.ejb.*; import java.rmi.*; public interface PasswordManager extends EJBObject { } public Boolean isloginvalid(string login, String password) throws java.rmi.remoteexception; Esta interfaz define los servicios ofrecidos por el EJB. Todos los parámetros deben ser serializables 72

73 Ejemplo I: Stateless bean La interfaz home Creación de la interfaz home Extiende javax.ejb.ejbhome import javax.ejb.*; import java.rmi.*; public interface PasswordManagerHome extends EJBHome { PasswordManager create() throws CreateException, RemoteException } Los métodos create(): Invocan a los métodos ejbcreate() de la clase bean Deben corresponderse en número y tipo de argumentos a los métodos ejbcreate() de la clase bean. En lugar de devolver void devuelven una instancia de la interfaz remota Lanza cualquier excepción que lance sus homónimos en la clase bean, y debe lanzar javax.ejb.createexception Los métodos remove() no deben ser sobreescritos. 73

74 La interfaz home Relación entre create() y ejbcreate() EJB Container/Server Cliente 1: create 6: return referencia objeto EJB Objeto Home 2:ejbCreate() 4: return id objeto Session Bean Instance 5: Crear objeto EJB(id objeto) Objeto EJB 74

75 Ejemplo I: Stateless bean La clase Bean Debe implementar javax.ejb.sessionbean, que proporciona los métodos: import javax.ejb.*; import java.rmi.*; public class PasswordManagerBean implements SessionBean { public boolean isloginvalid(string login, String password) throws RemoteException {} public void ejbcreate() throws RemoteException {} public void ejbactivate() throws RemoteException {} public void ejbpassivate() throws RemoteException {} public void ejbremove() throws RemoteException {} public void setsessioncontext (SessionContext ctx) throws RemoteException {} } Estos métodos son invocados por el contenedor de EJBs 75

76 Gestion de los Beans Stateless Bean EJB Container/Server Cliente Stateless Bean Pool Interface Remota Bean Bean Objeto EJB Invoke() Bean Bean Se tiene un conjunto de Beans, y los clientes pueden reutilizar los Beans 76

77 Ejemplo I: Stateless bean La clase Bean Creación de la clase bean (II) Además se deben implementar uno o más métodos ejbcreate(): Es el mecanismo de inicialización del EJB. Puede estar parametrizado. También debe implementar uno o más métodos de negocio: Debe implementar los servicios de la interfaz remota import javax.ejb.*; import java.rmi.*; public class PasswordManagerBean implements SessionBean {... public boolean isloginvalid(string login, String password) throws java.rmi.remoteexception; { //Pedir una conexion JDBC al Pool de conexiones. DataSource ds = initialcontext.lookup( java:comp/env/jdbc/passwords ); Connection conn=ds.getconnection();... //Comprobar si existe ese login con ese password // boolean passvalid=.. return passvalid; } }

78 Ejemplo II: Stateful bean La clase Bean EJB Container/Server Interface Home Objeto Home Gestión de Passwords Interface Remota isloginvalid(passwd) changepass(oldpass, newpass) Enterprise Beans isloginvalid(passwd) changepass(oldpass,newpass) Objeto EJB isloginvalid(passwd) changepass(oldpass, newpass) 78

79 Ejemplo II: Stateful bean Bean con estado 4 partes requeridas al definir un bean: La interfaz remota. Extiende javax.ejb.ejbobject La interfaz Home. Extiende javax.ejb.ejbhome La definición de la clase del Bean Meta-data (descriptores y otra info. de configuración) 79

80 Ejemplo II: Stateful bean La interfaz remota Creación de la interfaz remota Extiende javax.ejb.ejbobject import javax.ejb.*; import java.rmi.*; public interface PasswordManager extends EJBObject { public Boolean isloginvalid(string password) throws java.rmi.remoteexception; public Boolean changepass(string oldpass, String new Pass) throws java.rmi.remoteexception; } Esta interfaz define los servicios ofrecidos por el EJB. Todos los parámetros deben ser serializables 80

81 Ejemplo II: Stateful bean La interfaz home Creación de la interfaz home Extiende javax.ejb.ejbhome import javax.ejb.*; import java.rmi.*; public interface PasswordManagerHome extends EJBHome { PasswordManager create() throws CreateException, RemoteException PasswordManager create(string login) throws CreateException, RemoteException } Los métodos create(): Los metodos create invocan a los métodos ejbcreate() de la clase bean. Deben corresponderse en número y tipo de argumentos a los métodos ejbcreate() de la clase bean. En lugar de devolver void devuelven una instancia de la interfaz remota Lanza cualquier excepción que lance sus homónimos en la clase bean, y debe lanzar javax.ejb.createexception Los métodos remove() no deben ser sobreescritos. 81

82 Ejemplo II: Stateful bean La clase Bean Debe implementar javax.ejb.sessionbean, que proporciona los métodos: import javax.ejb.*; import java.rmi.*; public class PasswordManagerBean implements SessionBean { String name; public boolean isloginvalid(string password) throws RemoteException {} public void ejbcreate(string name) throws RemoteException {} public void ejbcreate() throws RemoteException {} public void ejbactivate() throws RemoteException {} public void ejbpassivate() throws RemoteException {} public void ejbremove() throws RemoteException {} public void setsessioncontext (SessionContext ctx) throws RemoteException {} } Estos métodos son invocados por el contenedor de EJBs 82

83 Ejemplo II: Stateful bean La clase Bean Creación de la clase bean (II) Además se deben implementar uno o más métodos ejbcreate(): Es el mecanismo de inicialización del EJB. Puede estar parametrizado. También debe implementar uno o más métodos de negocio: Debe implementar los servicios de la interfaz remota import javax.ejb.*; import java.rmi.*; public class PasswordManagerBean implements SessionBean { String login; public void ejbcreate(string login) { this.login=login; } public Boolean isloginvalid( String password) throws java.rmi.remoteexception { //Pedir una conexion JDBC al Pool de conexiones. DataSource ds = initialcontext.lookup( java:comp/env/jdbc/passwords ); Connection conn=ds.getconnection();... //Comprobar si existe el login con ese password // Boolean passvalid=.. return passvalid; 83 }...}

Componentes Distribuidos EJBs. Ing. Cesar Julio Bustacara Medina

Componentes Distribuidos EJBs. Ing. Cesar Julio Bustacara Medina Componentes Distribuidos EJBs Ing. Cesar Julio Bustacara Medina Introducción La Clase del Bean Contiene la lógica del Enterprise Bean. Es una clase Java pública, que implementa los métodos de negocios

Más detalles

4 Encuentro Internacional de Computación Aplicada

4 Encuentro Internacional de Computación Aplicada 4 Encuentro Internacional de Computación Aplicada Arquitectura de Objetos Distribuidos utilizando EJBs Omar Gómez omar@cuci.udg.mx Agenda Arquitectura de Objetos Distribuidos Arquitectura J2EE Componentes

Más detalles

'HVDUUROORGH$SOLFDFLRQHV

'HVDUUROORGH$SOLFDFLRQHV 'HVDUUROORGH$SOLFDFLRQHV FRQ-(( $SOLFDFLRQHV'LVWULEXLGDV0XOWLFDSD &RQWHQLGR Plataforma J2EE Aplicaciones Distribuidas multicapa Arquitectura Multicapa Componentes J2EE Componentes de Clientes: aplicaciones

Más detalles

Introducción a los EJBs

Introducción a los EJBs Introducción a los EJBs Mario Muñoz Organero Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario Panorámica de un Servidor de Información El modelo de aplicaciones J2EE se basa en una arquitectura

Más detalles

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1) TECNOLOGÍAS (1/2) (L1) EJB ( Enterprise Java Beans ) JSP ( Java Server Pages ) JNDI ( Java Naming and Directory Interface ) JDBC ( Java Data Base Connectivity ) Java Mail JSF ( Java Server Faces ) TECNOLOGÍAS

Más detalles

Aplicaciones web construidas a base de componentes:

Aplicaciones web construidas a base de componentes: Java EE Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo licencia Creative Commons

Más detalles

JavaEE. www.javasoft.com

JavaEE. www.javasoft.com JavaEE Java Enterprise Edition www.javasoft.com Por qué Java en el servidor? Ventajas Independencia de la plataforma portabilidad Gran conjunto de APIs Reusabilidad y modularidad Seguro en la ejecución

Más detalles

Java EE Enterprise Beans (EJB)

Java EE Enterprise Beans (EJB) Java EE Enterprise Beans (EJB) Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo

Más detalles

Enterprise JavaBeans

Enterprise JavaBeans Enterprise Java Beans y JBoss Enterprise JavaBeans Es una de las API que forman parte del estándar de construcción de aplicaciones empresariales J2EE (ahora JEE 5.0) de Oracle Corporation (inicialmente

Más detalles

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

Más detalles

FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información

FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información FSD Práctica Invocación Remota: JavaRMI Tipo de entrega: por grupos de prácticas Fecha límite: sesión de laboratorio Lugar: Campus Digital Comentario: No hay que entregar el estudio previo Objetivo de

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs septiembre 2011 FJRP, FMBR 2008-2011 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs enero 2009 FJRP, FMBR 2008/09 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

Más detalles

Caso J2EE. Necesidades del negocio. Arquitectura Luther

Caso J2EE. Necesidades del negocio. Arquitectura Luther Caso J2EE Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes Necesidades del negocio Describa el objetivo funcional del sistema que desea Inmedius Enumere los RNF que debe

Más detalles

Enterprise JavaBeans 3. Aplicaciones Distribuidas

Enterprise JavaBeans 3. Aplicaciones Distribuidas Enterprise JavaBeans 3 Aplicaciones Distribuidas Contenido Introducción Motivación Características básicas Servicios integrados en EJB 3 Ejemplo Hola Mundo Inyección de dependencia Tipos de EJB 3 Conclusiones

Más detalles

5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniPortal con EJB. Tipos de EJBs y patrones usados

5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniPortal con EJB. Tipos de EJBs y patrones usados 5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniPortal con EJB. Tipos de EJBs y patrones usados Introducción Qué tipos de EJBs ilustra MiniPortal? Entity Beans CMP (UserProfile) SLSBs

Más detalles

Interacción entre Aplicaciones: objetos distribuidos e invocación remota

Interacción entre Aplicaciones: objetos distribuidos e invocación remota Interacción entre Aplicaciones: objetos distribuidos e invocación remota En la anterior práctica se ha visto cómo extender la funcionalidad de un servidor web incorporando servlets que atienden peticiones

Más detalles

Nivel de negocio en J2EE: Enterprise Java Beans

Nivel de negocio en J2EE: Enterprise Java Beans UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA SOFTWARE DE COMUNICACIONES (I.T.T.T) Nivel de negocio en J2EE: Enterprise Java Beans Pablo Basanta Val Florina Almenares Mendoza Basado

Más detalles

TEMA 54 La arquitectura JEE

TEMA 54 La arquitectura JEE TEMA 54 La arquitectura JEE Índice 1 Introducción... 2 1.1 Tecnología JAVA 3 1.2 Las plataformas Java 3 2 La plataforma JEE... 4 2.1 Modelo distribuido multicapa 4 2.2 Gestión de componentes basada en

Más detalles

TEMA 5. Otras arquitecturas distribuidas III. Otros entornos de objetos distribuidos

TEMA 5. Otras arquitecturas distribuidas III. Otros entornos de objetos distribuidos TEMA 5. Otras arquitecturas distribuidas III. Otros entornos de objetos distribuidos III. Otros entornos de objetos distribuidos 1. Problemas de CORBA 2. Java Enterprise Edition 1. EJB 2. Servidor de aplicaciones

Más detalles

Panorámica de la asignatura

Panorámica de la asignatura Arquitecturas típicas. Mario Muñoz Organero Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario Panorámica de la asignatura RED Comunicaciones Servidores información Intercambio de datos

Más detalles

5 Aplicaciones empresariales con tecnología java EE.

5 Aplicaciones empresariales con tecnología java EE. 5 Aplicaciones empresariales con tecnología java EE. Esta tesis aborda la creación de una aplicación empresarial, pero, a qué se refiere el término de aplicación empresarial? En esencia, las aplicaciones

Más detalles

Tema 1. Introducción a Java EE

Tema 1. Introducción a Java EE Objetivos del tema Propiedades de las aplicaciones empresariales El Modelo Cliente/Servidor Presentar la Plataforma Java Presentar Java EE y otras tecnologías horizontales Tema 1. Introducción a Java EE

Más detalles

Introducción al Desarrollo de Aplicaciones Empresariales

Introducción al Desarrollo de Aplicaciones Empresariales Introducción al Desarrollo de Aplicaciones Empresariales Definición Java 2 Enterprise Edition: plataforma de desarrollo de aplicaciones para empresas, basado en EJBs. EJB (Enterprise Java Beans): especificación

Más detalles

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Vivimos en un mundo globalizado, donde la eficiencia y productividad de las empresas es un factor crucial para

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET

CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET 3.1- ARQUITECTURA DE COMPONENTES GIS La presente tesis trata del diseño y desarrollo de una aplicación basado en el Web para servir datos geográficos

Más detalles

Oracle 10g: Creación de Aplicaciones J2EE

Oracle 10g: Creación de Aplicaciones J2EE Oracle University Contacte con nosotros: 902 302 302 Oracle 10g: Creación de Aplicaciones J2EE Duración: 5 Días Lo que aprenderá Este curso enseña a los desarrolladores a crear aplicaciones J2EE mediante

Más detalles

Desarrollo de Sistemas Software Basados en Servicios y Componentes

Desarrollo de Sistemas Software Basados en Servicios y Componentes Desarrollo de Sistemas Software Basados en Servicios y Componentes Bloque Docente SERVICIOS WEB Parte 2 Portada Escuela Superior de Ingeniería (ESI) Universidad de Almería Índice Visualización WSDL (servicios

Más detalles

Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU

Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU Contenido Interfaz Implementación Servidor Cliente Puesta en marcha de la aplicación: Compilador

Más detalles

Guía del Curso Analista Programador Java: Business Apps Expert

Guía del Curso Analista Programador Java: Business Apps Expert Guía del Curso Analista Programador Java: Business Apps Expert Modalidad de realización del curso: Número de Horas: Titulación: Online 600 Horas Diploma acreditativo con las horas del curso OBJETIVOS UML

Más detalles

[CASI v.0109] Pág. 1

[CASI v.0109] Pág. 1 I. DATOS INFORMATIVOS Carrera Especialidad Curso Código Ciclo : Quinto Requisitos Duración Horas Semana : 08 horas Versión : v.0109 II. SUMILLA : COMPUTACIÓN E INFORMATICA : Ingeniería de Software : Lenguaje

Más detalles

Tema 3. Plataforma Java EE

Tema 3. Plataforma Java EE Tema 3. Plataforma Java EE DAGSS Diseño de Arquitecturas de Grandes Sistemas Software 4 o Grado Ing. Informática http://ccia.ei.uvigo.es/docencia/dagss noviembre 2014 FJRP 2014 DAGS 3.1 Introducción a

Más detalles

Técnico Superior en Programación con Java SE Standard Edition

Técnico Superior en Programación con Java SE Standard Edition Código: M087_04 Técnico Superior en Programación con Java SE Standard Edition Modalidad: Distancia Duración: 120 horas Objetivos: Este pack de materiales formativos proporcionará al alumnado la base que

Más detalles

Curso: Programación con JAVA SE Estándar Edition.

Curso: Programación con JAVA SE Estándar Edition. Curso: Programación con JAVA SE Estándar Edition. Código: 1062 Familia Profesional: Programación. Acreditación: Formación reconocida a través de vías no formales Modalidad: Distancia Duración: 150 horas

Más detalles

Curso de Java EE Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1

Curso de Java EE Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1 1 Los Enterprise Java Beans (EJB) es código Java del lado del Servidor. Normalmente tienen la lógica de negocio de nuestra aplicación, y por lo tanto cubren el rol de la capa de servicio de nuestras aplicaciones

Más detalles

JAVA RMI (REMOTE METHOD INVOCATION)

JAVA RMI (REMOTE METHOD INVOCATION) JAVA RMI (REMOTE METHOD INVOCATION) RMI RMI (Remote Method Invocation) Mecanismo RPC de Mecanismo mediante el cual los procesos cliente y servidor en una aplicación distribuida se comunican Una aplicación

Más detalles

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

Java RMI. Sistemas Distribuidos Rodrigo Santamaría + Java RMI Sistemas Distribuidos Rodrigo Santamaría RMI Java RMI 2 + RMI 3 Remote Method Invocation: middleware para que un objeto que se ejecuta en una JVM use métodos de otro objeto que se ejecuta en

Más detalles

Ingeniería del Software Arquitectura Física en 3 niveles

Ingeniería del Software Arquitectura Física en 3 niveles Introducción En este laboratorio desplegaremos en 3 niveles físicos una aplicación que verifica si una cuenta y un password son correctos, basada en la que fue presentada en el laboratorio Separación entre

Más detalles

Creación de una aplicación para JBOSS

Creación de una aplicación para JBOSS Creación de una aplicación para JBOSS Requerimientos: Se debe instalar JBOSS junto con Tomcat, JBuilder 5 Personal y MagicDraw UML 5.0 beta con la conexión a JBuilder. JBOSS con Tomcat se puede bajar de

Más detalles

COMPONENTES Y CONTENEDORES. Ingeniería de Software II

COMPONENTES Y CONTENEDORES. Ingeniería de Software II COMPONENTES Y CONTENEDORES Ingeniería de Software II Motivación Los componentes son paquetes de software o módulos que encapsulan un conjunto de funciones similares. Estos componentes viven dentro de un

Más detalles

Instituto Tecnológico de Costa Rica Sede Regional San Carlos Escuela de Ingeniería en Computación

Instituto Tecnológico de Costa Rica Sede Regional San Carlos Escuela de Ingeniería en Computación Instituto Tecnológico de Costa Rica Sede Regional San Carlos Escuela de Ingeniería en Computación Desarrollo de Funcionalidades para el Sistema de Intermediación de Valores para Fondos de Inversión y Puestos

Más detalles

1. Visión general de RMI

1. Visión general de RMI 1. Visión general de RMI Java RMI permite al programador ejecutar métodos de objetos remotos utilizando la misma semántica que si fueran invocaciones locales (Véase Figura 1). Máquina Local (Cliente) Máquina

Más detalles

RMI [Remote Method Invocation]

RMI [Remote Method Invocation] RMI [Remote Method Invocation] Cuando utilizamos sockets, hemos de preocuparnos de cómo se transmiten físicamente los datos entre los extremos de una conexión (a nivel de bytes, ya que usamos los streams

Más detalles

Desarrollo de Software con

Desarrollo de Software con Desarrollo de Software con Antonio J. Vélez Q. Universidad del Valle Sede Palmira Contenido Definición de Enterprise Bean Cuando usar Enterprise Beans Tipos de Enterprise Beans Enterprise Bean Con componentes

Más detalles

PRÁCTICA 3: COMPONENTES. Javier Sánchez Pérez Arquitectura del Software Grado en Informática

PRÁCTICA 3: COMPONENTES. Javier Sánchez Pérez Arquitectura del Software Grado en Informática PRÁCTICA 3: COMPONENTES Javier Sánchez Pérez Arquitectura del Software Grado en Informática Contenidos Java EE Enterprise Java Beans Stateless Session Beans Stateful Session Beans Singleton Session Beans

Más detalles

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2 Tema 9 Llamada a métodos remotos (RMI). Departament d Informàtica. Índice 1. Introducción 2 1.1. Cómo funciona RMI?.......................................... 2 2. Usando RMI 4 2.1. Fase de desarrollo:

Más detalles

Java EE 6: Desarrollo de componentes de negocio con JMS y EJBs

Java EE 6: Desarrollo de componentes de negocio con JMS y EJBs Oracle University Contact Us: 001-855-844-3881 Java EE 6: Desarrollo de componentes de negocio con JMS y EJBs Duration: 4 Days What you will learn Esta capacitación Java EE 6: Desarrollo de componentes

Más detalles

Notas técnicas de JAVA Nro. 7 Tip Breve

Notas técnicas de JAVA Nro. 7 Tip Breve Notas técnicas de JAVA Nro. 7 Tip Breve (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado) Tema: JAVA Basics: Diferencias conceptuales entre JavaBeans y Enterprise JavaBeans (EJB)

Más detalles

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java Java RMI Remote Method Invocation Invocación Remota de Métodos en Java Contenido Introducción Implementación Diseño de la interfaz remota. Implementación de la interfaz remota. Obtención de las clases

Más detalles

UNIVERSIDAD DE PIURA

UNIVERSIDAD DE PIURA ESPECIALIZACIÓN EN DESARROLLO DE APLICACIONES EMPRESARIALES CON JAVA EE Ofrecer al alumno los conocimientos necesarios para la construcción de sistemas informáticos bajo una arquitectura cliente servidor

Más detalles

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga

Más detalles

Certificaciones: Diploma de Aprobación en Desarrollo Web con Java.

Certificaciones: Diploma de Aprobación en Desarrollo Web con Java. DIPLOMATURA EN DESAR ROLLO DE APLICACIONE S WEB CON JAVA PARTE I: OBJETIVOS ESPECÍFICOS La Diplomatura en Desarrollo de Aplicaciones Web con Java tiene los siguientes objetivos específicos: Adquirir habilidad

Más detalles

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN INVESTIGACIÓN DE LA PLATAFORMA J2EE Y SU APLICACIÓN PRÁCTICA JUAN MANUEL BARRIOS NÚÑEZ http://www.dcc.uchile.cl/~jbarrios/

Más detalles

5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI

5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI 5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI Contenidos Tutorial de Java RMI Caso de estudio: diseño e implementación de la capa modelo de MiniBank con Java RMI Arquitectura

Más detalles

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Que deseamos hacer con objetos remotos Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru. Cliente Result = Obj.method1(val1) Servidor Def Obj { int method1(int v) { string

Más detalles

Experto Universitario Java Enterprise Spring

Experto Universitario Java Enterprise Spring Spring Sesión 6: Acceso remoto. Pruebas Indice Spring para acceso remoto Spring vs. EJB Comparación de los protocolos disponibles Acceso remoto con HttpInvoker Pruebas Acceso remoto. Pruebas 2012-2013

Más detalles

Tema 3. Objetos distribuidos

Tema 3. Objetos distribuidos Tema 3. Objetos distribuidos SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs octubre 2008 FJRP, FMBR 2008/09 ccia SCS 3.1 Modelo de objetos distribuidos Objetivo: Extender

Más detalles

en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina

en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina Máquina A Máquina B Máquina C Lo ideal sería tener un sistema distribuido orientado a objetos que permita: 1)Invocar un método de un objeto que se localiza en otra máquina exactamente de la misma manera

Más detalles

PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI

PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI Héctor Pérez 2 MobileTracker: Especificación El computador de la torre de control ejecuta el servicio Follower que registra los

Más detalles

Proyecto BDP / PAD BASE DE DATOS DE PERSONAS PERSONALIDAD ADMINISTRATIVA DIGITAL

Proyecto BDP / PAD BASE DE DATOS DE PERSONAS PERSONALIDAD ADMINISTRATIVA DIGITAL Proyecto BDP / PAD BASE DE DATOS DE PERSONAS PERSONALIDAD ADMINISTRATIVA DIGITAL Mecanismo de integración entre aplicaciones e información a la ciudadanía Principios - Portal del ciudadano El ciudadano,

Más detalles

Programación en Java. Temario. David Contreras Bárcena

Programación en Java. Temario. David Contreras Bárcena Programación en Java David Contreras Bárcena David Contreras Bárcena (ETSI) - Comillas 1 Temario 1. Introducción 1. Lenguaje java 2. Compilador SDK 1.4 3. Sintaxis 4. Tipos de datos 5. Estructuras de Control

Más detalles

Parte I: Introducción al Java 2 Enterprise Edition

Parte I: Introducción al Java 2 Enterprise Edition Parte I: Introducción al Java 2 Enterprise Edition Ignacio Ramos Zapata Departamento de Ingeniería Telemática Universidad Carlos III de Madrid nacho_ramos@it.uc3m.es Introducción Contenido Evolución de

Más detalles

Tema 5. Capa de lógica de aplicación en Java EE

Tema 5. Capa de lógica de aplicación en Java EE Tema 5. Capa de lógica de aplicación en Java EE DAGSS Diseño de Arquitecturas de Grandes Sistemas Software 4 o Grado Ing. Informática http://ccia.ei.uvigo.es/docencia/dagss noviembre 2014 FJRP 2014 DAGS

Más detalles

J2EE UNIVERSIDAD CATOLICA NUESTRA SEÑORA DE LA ASUNCIÓN. Facultad de Ciencias y Tecnología. Trabajo Practico TAI 2

J2EE UNIVERSIDAD CATOLICA NUESTRA SEÑORA DE LA ASUNCIÓN. Facultad de Ciencias y Tecnología. Trabajo Practico TAI 2 UNIVERSIDAD CATOLICA NUESTRA SEÑORA DE LA ASUNCIÓN Facultad de Ciencias y Tecnología Trabajo Practico TAI 2 J2EE Integrantes: Daniel Cricco Julio Rey Profesor: Juan de Urraza Año 2004 El desafió del desarrollo

Más detalles

Arquitecturas Empresariales y la plataforma J2EE

Arquitecturas Empresariales y la plataforma J2EE UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA SOFTWARE DE COMUNICACIONES (I.T.T.T) Arquitecturas Empresariales y la plataforma J2EE Pablo Basanta Val Florina Almenares Mendoza

Más detalles

Curso JAVA EE 7 2016

Curso JAVA EE 7 2016 Curso JAVA EE 7 2016 Curso de Java EE 7 PC CARRIER 29 de marzo de 2016 Autor: Marc Revenga Esquinas Curso JAVA EE 7 2016 Curso de Java EE 7 Clase 1. Aplicaciones web Java EE. Configuración del servidor

Más detalles

CAPÍTULO 1 EL DESARROLLO DE APLICACIONES EMPRESARIALES

CAPÍTULO 1 EL DESARROLLO DE APLICACIONES EMPRESARIALES CAPÍTULO 1 1.1 Antecedentes Las primeras aplicaciones que utilizaron motores de base de datos fueron conocidas como Aplicaciones Cliente Servidor, este tipo de aplicaciones consisten en un cliente en donde

Más detalles

Diplomado Programming Java (JSE & JEE) with Oracle 10g

Diplomado Programming Java (JSE & JEE) with Oracle 10g Diplomado Programming Java (JSE & JEE) with Oracle 10g Descripción: Nuestro diplomado ofrece un entrenamiento INTEGRAL y el más completo si estás interesado en realmente aprender Java y aplicarlo en tecnologías

Más detalles

Introducción a las arquitecturas de componentes y a Java EE

Introducción a las arquitecturas de componentes y a Java EE Introducción a las arquitecturas de componentes y a Java EE Autores: Dirección: Versión: 1.0 Simon Pickin Natividad Martínez Madrid Pablo Basanta Val Departamento de Ingeniería Telemática Universidad Carlos

Más detalles

Especialista TIC en Programación con JAVA 8 SE Standard Edition (Online)

Especialista TIC en Programación con JAVA 8 SE Standard Edition (Online) Especialista TIC en Programación con JAVA 8 SE Standard Edition (Online) TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Especialista TIC en Programación

Más detalles

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA DIPLOMATURA DESARROLLO DE APLICACIONES JAVA Contenidos MÓDULO UNO: Características del Lenguaje. OOP Reconocer las características del lenguaje Java y sus componentes. Distinguir la similitudes y diferencias

Más detalles

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid las RPC de Java. Parte I Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 006 RMI y RPC RPC: Remote Procedure Call. RMI y RPC RPC: Remote Procedure Call.

Más detalles

Arquitectura de aplicaciones

Arquitectura de aplicaciones Arquitectura de aplicaciones Arquitectura en capas API API dic-08 alb@uniovi.es 2 Layers y Tiers Layer: capa arquitectónica de la aplicación software Presentación, lógica, persistencia Tier: capa física

Más detalles

Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru.

Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru. Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru. 1 Paradigmas de desarrollo Desarrollo basado en protocolos Se diseña el protocolo Se elaboran los módulos para manejo

Más detalles

Analista Programador Java: Business Apps Expert

Analista Programador Java: Business Apps Expert Analista Programador Java: Business Apps Expert TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Analista Programador Java: Business Apps Expert Duración:

Más detalles

Desarrollo de una tienda virtual en una arquitectura distribuída

Desarrollo de una tienda virtual en una arquitectura distribuída Desarrollo de una tienda virtual en una arquitectura distribuída ETIS Josep Maria Camps Riba 18/6/2004 2 Dedicatoria y agradecimientos Es bien sabido que el estudio de una nueva tecnología conlleva éxitos

Más detalles

APLICACIONES EMPRESARIALES CON JEE. Profesores: Andrés Farías

APLICACIONES EMPRESARIALES CON JEE. Profesores: Andrés Farías APLICACIONES EMPRESARIALES CON JEE Profesores: Andrés Farías Agenda INTRODUCCIÓN REACH Introducción Evolución de las aplicaciones Global WEB APPLICATIONS 2004 RICH INTERNET APPLICATIONS (RIAs) 1998 Local

Más detalles

CONTENIDO. Serialización. Carga dinamica de stubs RMI AVANZADO. Callbacks. Carga dinámica de Stubs

CONTENIDO. Serialización. Carga dinamica de stubs RMI AVANZADO. Callbacks. Carga dinámica de Stubs CONTENIDO RMI AVANZADO Carga dinamica de stubs Callbacks Carga dinámica de Stubs Para tener acceso a un objeto remoto mediante RMI, el cliente debe recibir un stub serializado y deserializarlo. El stub

Más detalles

Práctica 2: Java Remote Method Invocation (RMI)

Práctica 2: Java Remote Method Invocation (RMI) Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es

Más detalles

Universidad Tecnológica Nacional FRC DIPLOMATURA SUPERIOR en Desarrollo bajo Plataforma Java EE

Universidad Tecnológica Nacional FRC DIPLOMATURA SUPERIOR en Desarrollo bajo Plataforma Java EE 1. PROPUESTA CURRICULAR 1.a) OBJETIVOS Universidad Tecnológica Nacional FRC DIPLOMATURA SUPERIOR en Desarrollo bajo Plataforma Java EE El curso "Desarrollo bajo Plataforma Java EE" ofrece a los estudiantes

Más detalles

Cómo puede ayudarle JBuilder en sus Desarrollos Java?

Cómo puede ayudarle JBuilder en sus Desarrollos Java? Artículos técnicos Grupo Danysoft: Cómo puede ayudarle JBuilder en sus Desarrollos Java? Oscar Cristóbal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Cómo puede

Más detalles

<HTML> <IMG src= logo.gif > </HTML> Lógica de negocio. Dsfg dsfg sdfg. Sdfgdfg dfg Dsf gsdfg sdfg. Dfg. Sdfgdfg dfg. Dfg. Dsf gsdfg sdfg.

<HTML> <IMG src= logo.gif > </HTML> Lógica de negocio. Dsfg dsfg sdfg. Sdfgdfg dfg Dsf gsdfg sdfg. Dfg. Sdfgdfg dfg. Dfg. Dsf gsdfg sdfg. Sdfgdfg dfg Dsf gsdfg sdfg Dsfg dsfg sdfg Sdfgdfg dfg Dfg Dsf gsdfg sdfg Dsfg dsfg sdfg Sdfgdfg dfg Dfg Dfg Índice Programación web Copyright 2001-2003 Víctor ROBLES FORCADA vrobles@fi.upm.es http://laurel.datsi.fi.upm.es/~ssoo/dsw/

Más detalles

Este capitulo contiene una análisis de los posibles soluciones que se pueden presentar en el momento de desarrollar aplicaciones con J2EE

Este capitulo contiene una análisis de los posibles soluciones que se pueden presentar en el momento de desarrollar aplicaciones con J2EE III J2EE proporciona diferentes tipos de arquitecturas para el desarrollo de aplicaciones, cada una de estas muy funcionales dependiente al tipo de aplicación que se este construyendo o al criterio del

Más detalles

Facultad de Sistemas e Informática

Facultad de Sistemas e Informática Escuela Politécnica del Ejército Sede Latacunga Facultad de Sistemas e Informática Galarza Maira Tapia Cevallos Paulina DESARROLLO DE APLICACIONES DISTRIBUIDAS UTILIZANDO PATRONES DE DISEÑO MODELO/VISTA

Más detalles

Desarrollo de Aplicaciones web con JPA, EJB, JSF y PrimeFaces

Desarrollo de Aplicaciones web con JPA, EJB, JSF y PrimeFaces Desarrollo de Aplicaciones web con JPA, EJB, JSF y PrimeFaces Fernando Pech-May 1, Mario A. Gomez-Rodriguez 1, Luis A. de la Cruz-Diaz 1, Salvador U. Lara-Jeronimo 1 1 Instituto Tecnológico Superior de

Más detalles

Servidores De Aplicaciones Java EE.

Servidores De Aplicaciones Java EE. Servidores De Aplicaciones Java EE. 76 Horas OBJETIVOS Aprender a instalar, configurar y administrar los servidores de aplicaciones Java EE más utilizados en la actualidad Repasar la arquitectura Java

Más detalles

Especialista TIC en Programación con JAVA 8 SE Standard Edition (Online)

Especialista TIC en Programación con JAVA 8 SE Standard Edition (Online) Especialista TIC en Programación con JAVA 8 SE Standard Edition (Online) Titulación certificada por EUROINNOVA BUSINESS SCHOOL Especialista TIC en Programación con JAVA 8 SE Standard Edition (Online) Especialista

Más detalles

Instalación de Servidor de Aplicaciones - JBoss. Por: Carlos Carreño V. ccarreno@jbossperu.org

Instalación de Servidor de Aplicaciones - JBoss. Por: Carlos Carreño V. ccarreno@jbossperu.org Instalación de Servidor de Aplicaciones - JBoss Por: Carlos Carreño V. ccarreno@jbossperu.org Introducción JBoss AS es un contenedor de aplicaciones J2EE EJB 2.1/3.0 y componentes Web Soporte de Clustering

Más detalles

Universidad ORT - Arquitectura de Software. Requisitos

Universidad ORT - Arquitectura de Software. Requisitos Requisitos Versión 1.5 (o superior) de la JDK de Java NetBeans 6.5 como IDE de desarrollo JBoss 4.2.x como Application Server Variable de entorno de Windows JAVA_HOME apuntando al directorio de instalación

Más detalles

JAVA - Serializacíon / RMI. (C) Philippe Roose - 2004, 2005

JAVA - Serializacíon / RMI. (C) Philippe Roose - 2004, 2005 JAVA - Serializacíon / RMI (C) Philippe Roose - 2004, 2005 Serializar objetos- concepto Desde el JDK 1.1 Serializar objetos permite de escribir un objeto en un fichero como un flujo de octets (archivo

Más detalles

Este capítulo contiene los elementos de J2EE, con los cuales se. construyen aplicaciones n-capas, se podrá tener una visión general

Este capítulo contiene los elementos de J2EE, con los cuales se. construyen aplicaciones n-capas, se podrá tener una visión general II Este capítulo contiene los elementos de J2EE, con los cuales se construyen aplicaciones n-capas, se podrá tener una visión general de cómo utilizar estas herramientas, para la presentación con la utilización

Más detalles

Programación Java. M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California jorgeeie@uabc.mx

Programación Java. M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California jorgeeie@uabc.mx Programación Java M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California jorgeeie@uabc.mx Febrero de 2006 Objetivos Conocer las características de la Tecnología Java Comprender las características

Más detalles

Generador GeneXus JAVA

Generador GeneXus JAVA Generador GeneXus JAVA Última actualización: 2009 Copyright Artech Consultores S. R. L. 1988-2009. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 1 Introducción a Java Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Historia

Más detalles

Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos

Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos Invocación de Métodos Remotos RMI: Remote Method Invocation Prof Wílmer Pereira Universidad Simón Bolívar Arquitectura Cliente/Servidor Cliente Request Reply Servidor Cómo permitir comunicación entre objetos

Más detalles

Analista Programador Java: Business Apps Expert

Analista Programador Java: Business Apps Expert Analista Programador Java: Business Apps Expert titulación de formación continua bonificada expedida por el instituto europeo de estudios empresariales Analista Programador Java: Business Apps Expert duración:

Más detalles

Plataforma J2EE. Antonio Vega Eligio Profesor: Dr. Mauricio J. Procel Moreno 31 de Octubre de 2008

Plataforma J2EE. Antonio Vega Eligio Profesor: Dr. Mauricio J. Procel Moreno 31 de Octubre de 2008 Plataforma J2EE. Tecnologías que la componen. Roles en la plataforma. Servicios de la plataforma. Tecnologías de servicio. Tecnologías de comunicación. Antonio Vega Eligio Profesor: Dr. Mauricio J. Procel

Más detalles

Introducción Descripción del servicio

Introducción Descripción del servicio 507953 1 Contenido Contenido Cambios Introducción Descripción del servicio Introducción Arquitectura Paso a paso Capa de negocio Adapter Interface Service Proxy Fichero de propiedades Despliegue del servicio

Más detalles

Persistencia en Sistemas O.O.

Persistencia en Sistemas O.O. Persistencia en Sistemas O.O. Taller de Programación Instituto de Computación Facultad de Ingeniería Universidad de la República Contenido Conceptos básicos Definición y motivación de persistencia Mecanismo

Más detalles