Enterprise JavaBeans 2.x. Aplicaciones Distribuidas

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

Download "Enterprise JavaBeans 2.x. Aplicaciones Distribuidas"

Transcripción

1 Enterprise JavaBeans 2.x Aplicaciones Distribuidas

2 Contenido Motivación. Alternativas implantación del Modelo. Modelado de entidades en EJB. Persistencia BMP. Persistencia CMP 1.x Persistencia CMP 2.x Relaciones entre entidades. Interfaces locales. XDocLet Lógica de Negocio. Transacciónes. Programación Basada en Componentes. Roles EJB. Visión Cliente de EJB. Conclusiones. 2

3 Motivación Implementación del Modelo en un sistema enterprise. Datos + Lógica de Negocio. Desafíos: Representación de los datos: base de datos relacional, BD orientada a objetos, XML, LDAP,... Acceso a los datos: JDBC, JNDI, DAO, JDO,... Representación de la lógica de negocio. Todo ello de un modo: Distribuido, eficiente, escalable, seguro, transaccional, reutilizable, configurable,... 3

4 Implantación del Modelo Obtenemos el modelo a partir de la aplicación de un proceso de desarrollo. Modelos en UML. Solución tradicional: Del modelo se identifican las entidades (objetos de negocio). Las entidades se representan en esquema relacional à BD Inconveniente: Lógica OO vs. Datos Relacionales. Controlador/ Vista JDBC Lógica de Negocio Base de Datos 4

5 Implantación del Modelo Alternativa à Correspondencia objeto/relacional: Herramientas que proporcionan persistencia relacional a los objetos de un modo transparente. Ejemplo: JavaBlend Inconvenientes: no son estándares. Controlador/ Vista Correspondencia Objeto/Relacional JDBC Lógica de Negocio Base de Datos 5

6 Implantación del Modelo - JDO Especificación Java Data Objects (JDO): Persistencia transparente en Java. Soporte de transacciones locales y distribuidas. Mecanismo de consultas basado en filtros de colecciones. Controlador/ Independiente del almacenamiento. JDO Vista Lógica de Negocio Base de Datos 6 Desarrollo de Aplicaciones Distribuidas

7 Implantación del Modelo - JDO Inconvenientes: Los objetos entidad se replican a través del sistema. No es escalable. 7

8 Implantación del Modelo - EJB EJB: compartir las entidades entre aplicaciones... Controlador/ Vista RMI/IIOP EJB Base de Datos Lógica de Negocio RMI/IIOP Controlador/ Vista Lógica de Negocio 8

9 Implantación del Modelo - EJB EJB: compartir la lógica de negocio Principio: lógica de negocio cercana a los datos. Lógica de Negocio Controlador/ Vista RMI/IIOP EJB Base de Datos RMI/IIOP 9 Controlador/ Vista

10 Modelado de Entidades en EJB En EJB una entidad es un objeto distribuido: è Hay que definir su interface remota RMI. import java.rmi.*;!! public interface Producto extends javax.ejb.ejbobject {!!!!// Los atributos se representan como propiedades JavaBean!!public String getnombre() throws RemoteException;!!public void setnombre(string nombre) throws RemoteException;!!!!// Si es de sólo lectura sólo ponemos el método "get"!!public String getid() throws RemoteException;!!!//...!!!// Operaciones!!public int precio() throws RemoteException;!! }! 10

11 Entidades Ciclo de Vida Para controlar su ciclo de vida y obtener los objetos necesitamos un Home. Interface remota RMI que permite manejar las entidades. import java.rmi.*;! import javax.ejb.*;!! public interface ProductoHome extends javax.ejb.ejbhome {!!!// Métodos de creación!!public Producto create (String id, String nombre, int preciobase, int porcentajedto)!!!throws RemoteException, CreateException;!!!!// Métodos de localización!!public Producto findbyprimarykey(string id) // Obligatorio!!!throws RemoteException, FinderException;!!!!public java.util.collection findall() throws RemoteException, FinderException;!! } 11

12 Entidades - Implementación Hay que programar una sola clase implementación para las dos interfaces remotas. La implementación depende del modelo de persistencia que utilicemos: Bean Managed Persistence (BMP): El programador se encarga de toda la persistencia. Container Managed Persistence (CMP) 1.x: El programador delega parte del trabajo al contenedor. Todo lo relativo a la persistencia se indica declarativamente. CMP 2.x: El contenedor se encarga de toda la persistencia. 12

13 Persistencia BMP La clase implementación (bean) debe implementar la interface javax.ejb.entitybean Declarar atributos para manejar la persistencia y el contexto EJB:! private ProductoDAO productodao; // DAO productos! private EntityContext context; // Contexto EJB! Declarar atributos para almacenar las propiedades del objeto:! private String id; // Clave primaria! private String nombre;! //...! 13

14 Persistencia BMP Declarar un constructor vacío para la inicialización: è Obtener el DAO Producto, etc. Implementar los métodos de la interface remota:!// Métodos de la interface remota del objeto!!public String getid() { return id; }!!!!public String getnombre() { return nombre; }!!!!public void setnombre(string nombre) { this.nombre = nombre; }!!//...! 14

15 Persistencia BMP Programar los métodos de creación: public String ejbcreate (String id, String nombre, int preciobase, int porcentajedto) {!!!!!!// Actualiza la instancia!!!this.id = id; this.nombre = nombre; //...!!!!!!// Almacena la instancia en la base de datos!!!productodao.create(id, nombre, preciobase, porcentajedto);!!!!!!// Devuelve la clave primaria!!!return id;! }!! // El contenedor confirma que la instancia ya es está disponible!! public void ejbpostcreate (String id, String nombre, int preciobase, int porcentajedto) { }!! 15

16 Persistencia BMP Programar los métodos de localización:!// Métodos de localización!!public String ejbfindbyprimarykey (String id) throws FinderException {!!!!!!// Se limita a comprobar si existe el objeto en el almacenamiento!!!if (productodao.findbyid(id) == null)!!!!return null;!!!else!!!!return id;!!}!!!public Collection ejbfindall() {!!!!!!Collection resultados = productodao.findall();!!!!!!// Iteramos sobre los resultados y construimos una colección!!!// con las claves primarias...!!!!!!return clavesprimarias;!!!!} 16

17 Persistencia BMP Programar un método de eliminación: public void ejbremove() throws RemoveException {!!!!!// Borra la instancia actual de la base de datos!!productodao.remove(id);!! } Métodos que actualizan el contexto de EJB: public void setentitycontext(entitycontext context) {!!this.context = context;! }!! public void unsetentitycontext() {!!this.context = null;! } 17

18 Persistencia BMP El contenedor EJB se encarga de: Mantener en memoria una caché eficiente de objetos. Para realizar esta tarea tenemos que ayudarle programando unos de métodos de retrollamada. Sincronización instancia base de datos: // Almacena la instancia en la base de datos! public void ejbstore() {!!!!productodao.update(id, nombre, preciobase, porcentajedto);! }!! // Actualiza la instancia con la información de la base de datos! public void ejbload() {!!!!ProductoVO pvo = productodao.findbyid(id);!!!!// Actualiza la instancia!!id = pvo.id; nombre = pvo.nombre; //...! } 18

19 Persistencia BMP Métodos para activar/desactivar la instancia:!!// Elimina su identidad y libera recursos!!public void ejbpassivate() {!!! id = null;!!}!!// Obtiene una nueva identidad y adquiere recursos!!public void ejbactivate() {!!!id = (String) context.getprimarykey();!!} Cuando se desactiva, la instancia pierde la identidad. Antes de la desactivación, guarda la instancia (ejbstore). Después a la activación, carga la instancia (ejbload). 19

20 Persistencia BMP - Ciclo de Vida ejbremove() new() Métodos Home Métodos interface setentitycontext() ejbstore/ejbpassivate() No Existe Pooled Ready ejbactivate/ejbload() Libera la instancia ejbload() ejbstore() ejbcreate/ejbpostcreate() 20

21 Persistencia BMP - Configuración Necesitamos declarar ciertas propiedades del bean en un fichero de configuración (ejb-jar.xml) <entity> <ejb-name>producto</ejb-name> <home>productohome</home> <remote>producto</remote> <ejb-class>productobean</ejb-class> <persistence-type>bean</persistence-type> <prim-key-class>java.lang.string</prim-key-class> <reentrant>false</reentrant> </entity> 21

22 Persistencia BMP - Conclusiones Responsabilidades del programador: Atributos para la persistencia y contexto EJB. Atributos para la propiedades. Constructor para la inicialización. Métodos de creación. Métodos de localización. Método de borrado. Métodos para actualizar el contexto. Métodos de sincronización. Métodos de cambio de identidad. è Este modelo de persistencia conviene cuando el servidor EJB no sepa manejar la persistencia de nuestros datos: XML, LDAP,... 22

23 Persistencia CMP 1.x Quita al programador la responsabilidad del acceso a datos. Todo lo relativo a la persistencia se indica declarativamente en ficheros de configuración. Diferencias con el modelo anterior: Hay que declarar como atributos públicos las propiedades persistentes de la instancia.! public String id; // Clave primaria! public String nombre;! //... 23

24 Persistencia CMP 1.x Diferencias: No es necesario un constructor de inicialización. Los métodos de creación sólo tienen que inicializar la instancia: à el contenedor gestiona la clave primaria public String ejbcreate (String id, String nombre, int preciobase, int porcentajedto) {!!!!!!// Actualiza la instancia!!!this.id = id; this.nombre = nombre; //...!!!!!!// No tiene que devolver ninguna clave primara!!!return null;! }! // Confirma que la instancia ya es está disponible!! public void ejbpostcreate (String id, String nombre, int preciobase, int porcentajedto) { }! 24

25 Persistencia CMP 1.x Diferencias: No hay que programar los métodos de localización: è Se especificarán declarativamente. No hay que programar un método borrado: Implementados por el contenedor. Lo métodos de sincronización (ejbload/ejbstore) se pueden dejar vacíos. Los métodos de cambio de estado (ejbpassivate/ ejbactivate) se pueden dejar vacíos. 25

26 Persistencia CMP 1.x - Configuración <entity> </entity> <ejb-name>producto</ejb-name> <ejb-class>productobean</ejb-class> <home>productohome</home> <remote>producto</remote> <persistence-type>container</persistence-type> <primkey-field>id</primkey-field> <prim-key-class>java.lang.string</prim-key-class> <reentrant>true</reentrant> <cmp-version>1.x</cmp-version> <cmp-field> <field-name>id</field-name> </cmp-field> <cmp-field> <field-name>nombre</field-name> </cmp-field> 26

27 CMP 1.x Configuración Persistencia <entity> Depende del servidor EJB <ejb-name>producto</ejb-name> <jdbc-mappings> <jdbc-mapping> <name>create</name> <statement> <action>insert INTO Producto (id, nombre, preciobase, porcentajedto) VALUES (?,?,?,?) </jdbc-mapping> </statement> </action> <source>isi</source> <params> 27 <param> </param> <name>id</name> <type>varchar</type>

28 CMP 1.x Configuración Persistencia <jdbc-mapping> <name>load</name> <statement> <action>select id, nombre, preciobase, porcentajedto FROM Producto WHERE id=? </action> <source>aadd</source> <params> </params> <fields> <field>id</field> <field>nombre</field> </fields> <jdbc-mapping> <name>findall</name> <statement> <action>select id FROM Producto </action> 28

29 Persistencia CMP 1.x - Conclusiones Este modelo de persistencia ahorra trabajo de programación Java, pero no de base de datos. El modo de especificar el acceso a datos es propietario. El componente es reutilizable y configurable. è Resulta práctico cuando tengamos que utilizar un esquema dado de base de datos. 29

30 Persistencia CMP 2.x Nos olvidamos de cualquier cuestión relativa a la persistencia. Diferencias respecto al modelo anterior: La clase implementación debe ser abstracta. No hay que declarar los atributos persistentes. Los métodos de la interface remota de las propiedades se declaran abstractos. Los métodos de creación utilizan los métodos set para configurar la instancia. public String ejbcreate (String id, String nombre, int preciobase, int porcentajedto) {!!setid(id); setnombre(nombre); //...!!!!!!return null;! } 30

31 Persistencia CMP 2.x - Configuración En la configuración definimos los métodos de localización utilizando el lenguaje neutral EJB-QL: Similar a SQL, pero con extensiones orientadas a objetos. Ejemplos: SELECT OBJECT(p) FROM Productos AS p SELECT OBJECT(p) FROM Productos AS p WHERE p.id =?1 En el descriptor de despliegue añadimos el nombre del esquema para el componente: <abstract-schema-name>productos</abstract-schema-name> La versión del modelo de persistencia es 2.x. <cmp-version>2.x</cmp-version> 31

32 Persistencia CMP 2.x - Configuración Los métodos de localización se indican como: <query> <query-method> <method-name>findbynombre</method-name> <method-params> <method-param>java.lang.string</method-param> </method-params> </query-method> <ejb-ql>... </ejb-ql> </query> El método de consulta para findbyprimarykey es automático. è El contenedor crea las tablas e implementa los métodos create, store, load y remove. 32

33 Persistencia CMP 2.x - Relaciones En el modelo CMP 2.x podemos modelar las relaciones entre los objetos de negocio. Producto categoria-producto id : String +tiene-productos nombre : String Categoria preciobase : int porcentajedto : int * 1 +producto-pertenece-categoria precio() : int La clase implementación ProductoBean define la relación del siguiente modo: public abstract Categoria getcategoria(); public abstract void setcategoria(categoria c); 33

34 Persistencia CMP 2.x - Relaciones En el fichero de configuración: <ejb-relation> <ejb-relation-name>categoria-producto</...> <ejb-relationship-role> <ejb-relationship-role-name>producto-pertenece-categoria</...> <multiplicity>one</multiplicity> <ejb-relationship-role-source> <ejb-name>producto</ejb-name> </ejb-relationship-role-source > <cmr-field><cmr-field-name>categoria</...> </ ejb-relationship-role>... 34

35 Persistencia CMP 2.x - Relaciones Podemos modelar una relación 1:N: Desde Categoria a Producto En la clase implementación CategoriaBean incluimos: public abstract Collection getproductos(); public abstract void setproductos( Collection productos); En el fichero de configuración expresamos el rol de Categoria en la relación:... <multiplicity>many</multiplicity> <cmr-field> <cmr-field-name>productos</cmr-field-name> <cmr-field-type>java.util.collection</cmr-field-name>... 35

36 Persistencia CMP 2.x - Relaciones Relaciones N:M: Las dos partes tendrían una cardinalidad many. Si la relación es unidireccional, en el lado destino no definimos ningún campo CMR. Ejemplo: Categoria à Producto La semántica composición se consigue añadiendo <cascadedelete /> a la parte dependiente de la relación. Ejemplo: Venta à LineaVenta (dependiente) La integridad referencial es controlada por el contenedor. è La implementación de las colecciones permite mantener esta integridad. 36

37 Persistencia CMP 2.x - EJB-QL Las consultas se realizan sobre los esquemas: Productos,... Se utilizan los nombre lógicos de los campos: nombre, categoria, Todos los Productos: SELECT OBJECT(p) FROM Productos AS p 2. Todos los Clientes que hayan comprado, evitando duplicados: SELECT DISTINT OBJECT(p.cliente) FROM Pedidos p WHERE lv.producto.nombre IN ( CD, LIBRO ) AND lv.cantidad > 5 5. Todos los productos cuyo id coincida con un parámetro: SELECT OBJECT(p) FROM Productos AS p WHERE p.id =?1 6. Todos las categorías con productos, que no sean la raíz: SELECT OBJECT(c) FROM Categorias AS c WHERE c.productos IS NOT EMPTY AND c.categoriapadre IS NOT NULL 3. Todos los correos electrónicos de los clientes que hayan comprado: SELECT p.cliente.correo FROM Pedidos p 4. Todas los pedidos que hayan solicitado más de 5 CDs o libros: SELECT OBJECT(p) FROM Pedidos p, IN (p.lineasventa) lv 37

38 Persistencia CMP 2.x - Conclusiones Permite trasladar un diagrama de clases en UML a un modelo de entidades y relaciones EJB. Modelo de persistencia ideal cuando desarrollamos el sistema de información desde el principio. è Dependemos de la eficiencia de la implementación del contenedor EJB. 38

39 Interfaces Locales Problema: La interacción entre objetos de negocio relacionados se realiza a través de RMI. è Disminuye sensiblemente el rendimiento. Solución: Definir interfaces locales para los objetos. Pasos: Definición la interface local ProductoLocal: Hereda de javax.ejb.ejblocalobject Definición la interface home ProductoLocalHome: Hereda de javax.ejb.ejblocalhome è Ninguna de las operaciones lanza la excepción RMIException En el descriptor de configuración: <local-home>productolocalhome</local-home> <local>productolocal</local> 39

40 XDocLet Problema: Para crear un objeto de negocio necesitamos programar muchas clases e interfaces: Producto, ProductoLocal, ProductoHome, ProductLocalHome, ProductoBean La información de configuración se expresa en un fichero independiente (ejb-jar.xml). è La programación EJB se complica. Solución: Utilizar la programación basada en atributos (al estilo.net) La información declarativa se expresa dentro del código è Herramienta XDocLet 40

41 XDocLet Programamos sólo la clase implementación. Todas las propiedades se especifican mediante etiquetas. /**! *!!primary-key="id!schema="productos"! findall()"! *!!query="select OBJECT(o) FROM Productos AS o"! */! pubic abstract class ProductoBean implements @ejb:pk-field!!*/!!public abstract String getid(); 41

42 Lógica de Negocio EJB permite definir componentes que representen la lógica de negocio: Ejemplo: el controlador de un caso de uso EJB session: Están asociados a un solo cliente en tiempo de ejecución y tienen un time-out. El número de instancias en memoria de estos componentes es controlado. El proceso de desarrollo se diferencia de los objetos de negocio (entidades). 42

43 Lógica de Negocio EJB Session Definición de la interface remota: Igual que los EJB entidad. Definición de la interface home: Sólo tienen sentido métodos de creación. Programación del bean: Implementa la interface javax.ejb.sessionbean Puede definir los atributos que necesite, siempre que sean serializables à la instancia puede pasar a almacenamento secundario. Podría tener un constructor de inicialización si necesitara trabajar con algún recurso externo: BD, procesador XML, etc. 43

44 Lógica de Negocio EJB Programación del bean: Session Los métodos de creación configuran la instancia: è No es necesario definir los métodos ejbpostcreate Hay que programar los métodos para manejar el contexto EJB: private transient SessionContext context;!! public void setsessioncontext(sessioncontext context) { this.context = context; }! public SessionContext getsessioncontext() { return context; } Hay que definir los métodos para activar/desactivar la instancia è pasar a almacenamiento secundario public void ejbactivate() {}! public void ejbpassivate() {} 44

45 Lógica de Negocio EJB Session Los componentes sesión que tienen estado se denominan Stateful El contenedor guarda su estado en disco cuando necesite desactivarlos. Asegura que la misma instancia siempre esté asociada al cliente. Los que no tienen estado son del tipo Stateless. El contenedor los maneja de forma más eficiente. No mantiene una asociación con los clientes. Diferencias respecto a la programación: Sólo tiene sentido que el home tenga un solo método create sin parámetros. Los métodos de activación/desactivación pueden ser ignorados. 45

46 EJB Session - Configuración <session> <ejb-name>gestorpedidos</ejb-name> <home>gestorpedidoshome</home> <remote>gestorpedidos</remote> <ejb-class>gestorpedidosbean</ejb-class> <session-type>stateful</session-type> <transaction-type>container</transaction-type> </session> Session-type: Stateless o Stateful Hay que indicar quien controla las transacciones (transaction-type): è Los componentes entidad son controlados automáticamente. 46

47 Colaboración Habitualmente los EJB sesión colaboran con los entidad a través de sus interfaces locales. EJB-Session Stateful EJB-Entity Cliente compras : GestorCompras micompra : Compra l1 : LineaVenta p1 : Producto l2 : LineaVenta totalapagar( ) gettotal( ) getsubtotal( ) precio( ) Retorna (cantidad * precio) getsubtotal( ) Suma los subtotales de todas las lineas de venta Controlador Modelo 47

48 Transacciones Los componentes EJB pueden ser transaccionales. El contenedor garantiza (propiedades ACID): La atomicidad de las operaciones. La consistencia de los datos. El aislamiento transaccional. La perdurabilidad de las modificaciones. Modelos de transaccionalidad: Required, RequiresNew, Mandatory, Supports, NotSupported y Never. è Se definen para los métodos. 48

49 Transacciones Modelo Required El modelo required es adecuado para una colaboración de un caso de uso: Cliente compras : micompra : GestorCompras Compra l1 : LineaVenta p1 : Producto l2 : LineaVenta totalapagar( ) gettotal( ) getsubtotal( ) Crea una Tx precio( ) Utilizan la Tx getsubtotal( ) Modelo Transaccional "Required" 49

50 Transacciones Las transacciones de los EJB entidad son gestionadas por el contenedor. Para los sesión, dos alternativas (fichero configuración): Gestionada por el bean. Gestionada por el contenedor à recomendada. Situaciones que abortan una transacción: Una excepción de Runtime: La instancia que la lanza queda descartada. Marcar la transacción como rollback: context.setrollbackonly(); Transacciones gestionadas por el contenedor. 50

51 Componente: EJB Visión de Componente Entidad binaria reutilizable y configurable. Ejemplos: componente COM, componente JavaBean, ensamblados.net,... Finalizado el desarrollo de un EJB podemos empaquetarlo como componente: Clases compiladas: Producto, ProductoHome, ProductoBean, ProductoLocal, ProductoLocalHome Descripción: META-INF/ejb-jar.xml è Producto.jar Entidad binaria (class) con metainformación, reutilizable y configurable 51

52 Componentes EJB - Dependencias Un componente expresa sus dependencias: Un valor de configuración: <env-entry> <description>directorio Ficheros XML</description> <env-entry-name>directorio-xml</env-entry-name> <env-entry-type>java.lang.string</env-entry-type> <env-entry-value>/xml</env-entry-value> </env-entry> Una referencia a otro componente: <ejb-ref> <ejb-ref-name>ejb/validador</ejb-ref-name> <ejb-ref-type>session</ejb-ref-type> <home>validadorhome</home> <remote>validador</remote> </ejb-ref> 52

53 Componentes EJB - Dependencias Dependencias: Un recurso (servicio) del sistema: <resource-ref> <description>fuente de Datos</description> <res-ref-name>jdbc/datos</res-ref-name> <res-type>javax.sql.datasource</res-type> <res-auth>container</res-auth> <res-sharing-scope>shareable</res-sharing-scope> </resource-ref> Las dependencias permiten configurar el componente. Rol desarrollador. 53

54 Componentes EJB - Configuración Un componente obtiene sus dependencias de su contexto JNDI ( java:comp/env ): Context ctxinicio = new InitialContext();!! // Obtiene la configuración del componente! Context entorno = ctxinicio.lookup("java:comp/env");!! String dirxml = (String) entorno.resolve("directorio-xml");!! // Obtiene una referencia RMI/IIOP al Home! Object obj = entorno.resolve("ejb/validador");! ValidadorHome valhome =!!(ValidadorHome)PortableRemoteObject.narrow(obj, ValidadorHome.class);!! // Obtiene la fuente de datos! Object obj2 = entorno.resolve("jdbc/datos");! DataSource ds = (DataSource) obj2; 54

55 Componentes EJB - Roles Programación Basada en Componentes: Desarrollo de aplicaciones basada en el ensamblado de componentes. Rol ensamblador: Establece los valores de configuración de los componentes. Establece las dependencias entre los componentes. Define los métodos transaccionales. Define la seguridad de la aplicación... Rol deployer: Proporciona los recursos necesarios a los componentes de la aplicación. è en un ficheros de configuración. 55

56 Componentes EJB - Roles Establecer valores de configuración: <env-entry> <env-entry-name>directorio-xml</env-entry-name> <env-entry-value>c:/datos/xml</env-entry-value> </env-entry> Enlace entre componentes: <ejb-ref> <ejb-link>validador</ejb-link> <ejb-ref-name>ejb/validador</ejb-ref-name> </ejb-ref> Transaccionalidad: <container-transaction> <method> <ejb-name>producto</ejb-name> <method-name>*</method-name> </method> <trans-attribute>required</trans-attribute> </container-transaction> 56

57 Componentes EJB - Seguridad Programación declarativa de la seguridad. Definición de roles: <security-role> <role-name>gerente</role-name> </security-role> Controlar la ejecución de los métodos: <method-permission> <role-name>gerente</role-name> <method> <ejb-name> Producto </ejb-name> <method-name> setpreciobase </ejb-name> </method> <method-permission> 57

58 EJB Visión Cliente El contenedor EJB registra una referencia al objeto remoto Home de cada componente. El registro se hace en un Servicio de Nombres CORBA. Un cliente Java accede al registro configurando su contexto JNDI: Context ctxinicio = new InitialContext();!! // Obtiene una referencia al Home del Producto! Object obj = ctxinicio.lookup("producto");! ProductoHome productohome =!!(ProductoHome)PortableRemoteObject.narrow(obj, ProductoHome.class);!! Producto p = productohome.findbyprimarykey(" ");! System.out.println(p.getNombre());!... 58

59 EJB Otros Aspectos de Interés Componentes Message-Driven: Componentes consumidores de mensajes asíncronos JMS. Sin interfaces remoto y home. Son componentes anónimos instanciados cuando son necesarios. Guardar una referencia a un EJB en un fichero: Método gethandle() de cualquier referencia EJB. Objeto Handle es serializable: Se puede guardar en un fichero. Método getejbobject() de Handle: Obtiene la referencia. Aplicar un narrow portable al tipo de la referencia. 59

60 Conclusiones Servidor de aplicaciones para implantar el modelo de un sistema de información: Modelado de la lógica y objetos de negocio. Eficiente: controla el uso de los objetos. Diferente niveles de gestión de la persistencia. Transaccional, a través de reglas declarativas. Reglas de seguridad declarativas. Orientado a la programación con componentes. Independiente de la plataforma: Ejecución Java y protocolo CORBA/IIOP. Muchos servidores de aplicaciones: WebLogic, JRun, JBoss... è Tecnología ideal para la implantación de un sistema de información enterprise en Java. 60

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

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

Reutilización de software

Reutilización de software 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 Aplicaciones Web Servidor Introducción a la arquitectura

Más detalles

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

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

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

'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

Bases de Datos. Diseño y Programación Avanzada de Aplicaciones. Curso

Bases de Datos. Diseño y Programación Avanzada de Aplicaciones. Curso Bases de Datos Diseño y Programación Avanzada de Aplicaciones Curso 2002-2003 INDICE Fichero vs. Bases de Datos Relacionales Un fichero constituye la forma más básica de almacenamiento de información.

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

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

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo Tutorial Contenido 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo 1. El proceso Fases soportadas por UML Análisis de requisitos de usuario Análisis de requisitos de software Diseño de la plataforma

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

JAVA 7 Los fundamentos del lenguaje Java

JAVA 7 Los fundamentos del lenguaje Java Presentación 1. Historia 9 1.1 Por qué Java? 9 1.2 Objetivos del diseño de Java 10 1.3 Auge de Java 11 2. Características de Java 12 2.1 El lenguaje de programación Java 12 2.1.1 Sencillo 13 2.1.2 Orientado

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

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

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

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

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

FRAMEWORK 2 Recepción de SMS

FRAMEWORK 2 Recepción de SMS FRAMEWORK 2 Versión 1.1 Área de Integración y Arquitectura de Aplicaciones Hoja de Control Título Documento de Referencia Responsable FW2_MUS_Recepcion_SMS Área de Integración y Arquitectura de Aplicaciones

Más detalles

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Introducción a Java LSUB. 30 de enero de 2013 GSYC Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial

Más detalles

Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Modelado - Vocabulario del Sistema

Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Modelado - Vocabulario del Sistema Modelado Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Vocabulario del Sistema Distribución de Responsabilidades Semántica de una Clase

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

JavaBeans Enterprise Construir Nuestro Primer Bean de Sesión sin Estado

JavaBeans Enterprise Construir Nuestro Primer Bean de Sesión sin Estado JavaBeans Enterprise Construir Nuestro Primer Bean de Sesión sin Estado Sobre este Tutorial Sobre el Ejemplo Introducción a los JavaBeans Enterprise Construir Nuestro Pimer Bean de Sesión sin Estado Paso

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

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

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

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET OBJETIVOS: Conocer de las bondades del paradigma de orientación a objetos en.net y su lenguaje

Más detalles

JDBC. Aplicaciones Distribuidas

JDBC. Aplicaciones Distribuidas JDBC Aplicaciones Distribuidas Contenido Definición. Arquitectura. Driver. Conexión. Consultas. Transacciones. Pool de conexiones. Patrón DAO. 2 JDBC Java DataBase Connectivity API Java para ejecutar consultas

Más detalles

Requisitos. Universidad ORT Arquitectura de Software

Requisitos. Universidad ORT Arquitectura de Software Requisitos Java Development Kit (JDK) 1.5 o superior NetBeans IDE 6.5 o superior JBoss Application Server 4.2.x o 5.x.x Variable de entorno JAVA_HOME apuntando al directorio de instalación de la JDK 1

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

El Sistema Gestor de Base de Datos (DBMS)

El Sistema Gestor de Base de Datos (DBMS) Pontificia Universidad Javeriana Contenido 1 Introducción 2 Evolución de los SGBD 3 Arquitectura del SGBD 4 Lenguajes de BD 5 Usuarios de la BD Introducción Se espera del SGBD (DBMS) que: 1 Permita a los

Más detalles

03.04 Unity. Integración de Sistemas. Parte II. Diseño e implementación de aplicaciones Web con.net

03.04 Unity. Integración de Sistemas. Parte II. Diseño e implementación de aplicaciones Web con.net 03.04 Unity Integración de Sistemas Parte II. Diseño e implementación de aplicaciones Web con.net Contenido Conocer y saber utilizar el contenedor Unity Aprender a registrar tipos desde código y desde

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

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

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

Práctica sobre compartición de instancias remotas.

Práctica sobre compartición de instancias remotas. Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

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

INFORMÁTICA Y COMUNICACIONES

INFORMÁTICA Y COMUNICACIONES 441 INFORMÁTICA Y COMUNICACIONES Microsoft Access 2003 (Completo) DESCRIPCIÓN Microsoft Access 2003 (Completo) Descripción del funcionamiento del programa de gestión de bases de datos Microsoft Access

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

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

Tema 5: Modelo del dominio y persistencia de datos. Parte II: Modelo del dominio y Lógica de negocio

Tema 5: Modelo del dominio y persistencia de datos. Parte II: Modelo del dominio y Lógica de negocio Tema 5: Modelo del dominio y persistencia de datos! Parte II: Modelo del dominio y Lógica de negocio Capa de lógica de negocio Es el núcleo de nuestra aplicación, y lo que la hace distinta del resto Lo

Más detalles

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08 Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2007/08 Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte. Manipular todos los objetos

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

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

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

Tema 3.1: Introducción a Servicios Web

Tema 3.1: Introducción a Servicios Web Tema 3.1: Introducción a Servicios Web Servicios Web (1) La Web proporciona un mecanismo de transporte universal, eficiente, robusto, escalable y probado tanto en aplicaciones inter-organización como intraorganización.

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

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

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

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

Desarrollo de Grandes Aplicaciones de Gestión de Red: Decisiones generales de diseño

Desarrollo de Grandes Aplicaciones de Gestión de Red: Decisiones generales de diseño Desarrollo de Grandes Aplicaciones de Gestión de Red: Decisiones generales de diseño Antonio Hernández Sáez 1 y Virgilio Gilart Iglesias 2 1 Escuela Politécnica Superior, Universidad de Alicante 036 90,

Más detalles

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón 1. Lenguaje de Definición de Datos 2. Lenguaje de Manipulación de Datos M. C. Gustavo Alfonso Gutiérrez Carreón Los 'sistemas de gestión de bases de datos (en inglés database management system, abreviado

Más detalles

Introducción a la herramienta para administración de información de especies y especímenes: Ara. María Mora, INBio. Costa Rica mmora@inbio.ac.

Introducción a la herramienta para administración de información de especies y especímenes: Ara. María Mora, INBio. Costa Rica mmora@inbio.ac. Introducción a la herramienta para administración de información de especies y especímenes: Ara María Mora, INBio. Costa Rica mmora@inbio.ac.cr Temario Objetivo del sistema Mecanismos de implementación

Más detalles

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5 MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5 TEMARIO MODULO I. EL LENGUAJE C# 5 Introducción al desarrollo de soluciones informáticas. El Framework.NET. o Descripción de la plataforma. o Las especificaciones

Más detalles

ASP.NET MVC 3 ofrece una serie de herramientas y funciones para construir una aplicación utilizando sólo la definición de los objetos del modelo.

ASP.NET MVC 3 ofrece una serie de herramientas y funciones para construir una aplicación utilizando sólo la definición de los objetos del modelo. Gerardo Grinman 5D ASP.NET MVC 3 ofrece una serie de herramientas y funciones para construir una aplicación utilizando sólo la definición de los objetos del modelo. Una vez que tenemos pensado el problema

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

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs. Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1

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

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

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

Prof. Mariano Mancuso. Sistemas de información y control diagrama de clases

Prof. Mariano Mancuso. Sistemas de información y control diagrama de clases Prof. Mariano Mancuso Sistemas de información y control diagrama de clases UML Qué son los modelos? Para qué sirven los modelos? Cuáles son los modelos de UML? Se usan todos...? Qué son los modelos? Un

Más detalles

Visual Studio 2010 Desarrollo de aplicaciones web con C# 4, Framework Entity 4, ASP.NET 4.0,...

Visual Studio 2010 Desarrollo de aplicaciones web con C# 4, Framework Entity 4, ASP.NET 4.0,... Introducción 1. Presentación del caso de estudio 15 1.1 Presentación general 15 1.2 Presentación de las aplicaciones 15 2. Desarrollo del proyecto 16 3. Requisitos previos 16 4. El lenguaje C#: de la versión

Más detalles

Taller de Sistemas de Información 2

Taller de Sistemas de Información 2 Taller de Sistemas de Información 2 Mensajeria 6 de Setiembre de 2012 Instituto de Computación Facultad de Ingeniería Universidad de la República de Uruguay Messaging La comunicación que hemos visto hasta

Más detalles

Capacitación adquirida por el alumno al finalizar este modulo

Capacitación adquirida por el alumno al finalizar este modulo Curso de UML y UP Analiza, modela y diseña sistemas orientado a objetos con UML. Aprende cuándo y cómo utilizar todos los diagramas que forman parte de UML en forma práctica utilizando el Enterprise Architect

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION ORIENTADA A OBJETOS EN C++ PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje

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

Objetivos y Temario CURSO MySQL 5

Objetivos y Temario CURSO MySQL 5 Objetivos y Temario CURSO MySQL 5 OBJETIVOS Este curso MySQL 5 se dirige a desarrolladores técnicos e ingenieros ya familiarizados con un lenguaje de programación y que desean desarrollar sus aplicaciones

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

ELEMENTOS DE BASES DE DATOS. Bases de Datos + Orientación a Objetos. Clase 23:

ELEMENTOS DE BASES DE DATOS. Bases de Datos + Orientación a Objetos. Clase 23: Dpto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur ELEMENTOS DE BASES DE DATOS Segundo Cuatrimestre 2015 Clase 23: Bases de Datos + Orientación a Objetos Mg. María Mercedes Vitturini

Más detalles

Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014

Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014 Tema 4 Genericidad en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Antecedentes. Genericidad en Java 5 y posterior. Características avanzadas: Genericidad restringida. Tipo puro. Limitaciones

Más detalles

Área: Microsoft SQL. Nombre del curso. Administración de Microsoft SQL Server 2014 Bases de datos

Área: Microsoft SQL. Nombre del curso. Administración de Microsoft SQL Server 2014 Bases de datos Área: Microsoft SQL Nombre del curso Administración de Microsoft SQL 2014 Bases de Título Administración de Microsoft SQL 2014 Bases de Duración 25 hs Objetivos Proporcionar a los alumnos los conocimientos

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

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B) APRENDERAPROGRAMAR.COM QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas

Más detalles

Experto Universitario Java Enterprise Spring

Experto Universitario Java Enterprise Spring Experto Universitario Java Enterprise Spring Sesión 1: Spring core Puntos a tratar Introducción. Spring vs. JavaEE estándar El contenedor de beans (Spring core) Trabajo con beans Definir beans Instanciar

Más detalles

Capítulo 16. Diagrama de Clases UML

Capítulo 16. Diagrama de Clases UML Capítulo 16. Diagrama de Clases UML Florentino TORRES M. CINVESTAV-Tamaulipas 15 de Oct del 2012 Florentino TORRES M. (CINVESTAV) 15 de Oct del 2012 1 / 70 1 Capítulo 16. Diagrama de Clases UML Aplicando

Más detalles

Instrucciones para el despliegue de EJBs

Instrucciones para el despliegue de EJBs Apuntes de J2EE Instrucciones para el despliegue de EJBs Uploaded by Ingteleco http://ingteleco.webcindario.com ingtelecoweb@hotmail.com La dirección URL puede sufrir modificaciones en el futuro. Si no

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

Developing ASP.NET MVC 4 Web Applications

Developing ASP.NET MVC 4 Web Applications Código: S28 Duración: 25 horas En este curso, los estudiantes aprenderán a desarrollar aplicaciones ASP.NET MVC con avanzadas tecnologías y herramientas de.net Framework 4.5. Se centrará en la codificación

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

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

Analista Programador Java: Business Apps Expert

Analista Programador Java: Business Apps Expert Analista Programador Java: Business Apps Expert Titulación certificada por EUROINNOVA BUSINESS SCHOOL Analista Programador Java: Business Apps Expert Analista Programador Java: Business Apps Expert Duración:

Más detalles

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V Bibliografía Tema V Tecnología de objetos distribuidos y arquitectura de componentes. Szyperski, C. 1998. Component Software. Addison-Wesley. Ruiz Cortés, 1998. A. CORBA: Una visión general. http://www.lsi.us.es/~aruiz

Más detalles

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo.

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo. Definición más precisa de los patrones Un patrón del diseño nomina, abstrae y identifica los aspectos claves de un diseño común para crear un diseño orientado a objetos reutilizable. Son descripciones

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

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

Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE

Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE Java EE Ejercicio 4 EJB Sesión Sistema SGA Objetivo del Ejercicio El objetivo del ejercicio es agregar un EJB de Sesión a nuestro proyecto SGA (Sistema de Gestión de Alumnos), el cual desarrollaremos a

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

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

Utilización Crystal Reports 2008 Usando Bussiness Object V4.0

Utilización Crystal Reports 2008 Usando Bussiness Object V4.0 Utilización Usando Bussiness Object V4.0 Versión 1.0 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de Usuario de Utilización

Más detalles

Introducción a la Orientación a Objetos

Introducción a la Orientación a Objetos Introducción a la Orientación a Objetos Breve historia de la OO 1960s. Simula incorpora características propias de la OO. 1970s. Smalltalk. Lenguaje totalmente OO. 1990s. Boom de la OO. 2000-Hoy. Época

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

Taller de Programación I. Tema 06: Orientación al Objeto en Java (parte 2)

Taller de Programación I. Tema 06: Orientación al Objeto en Java (parte 2) INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 06: Orientación al Objeto en Java (parte 2) Ing. Manuel López Ramos (versión 1) Parte I Trabajo

Más detalles

Ejercicios Prácticos y Teóricos Diagramas de interacción y de UML a código Java

Ejercicios Prácticos y Teóricos Diagramas de interacción y de UML a código Java Ejercicios Prácticos y Teóricos Diagramas de interacción y de UML a código Java Ejercicio 1. Gestión de un Terminal de Punto de Venta (TPV) Dados los siguientes diagramas de interacción, correspondientes

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

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages)

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages) Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages) Autor: José Vicente Núñez Zuleta (jose@eud.com, josevnz@yahoo.com) Puntos a tratar Qué es JDBC? Arquitectura de un

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

El primer paso a realizar es crear la referencia JNDI para el origen de datos en el servidor local TomCat.

El primer paso a realizar es crear la referencia JNDI para el origen de datos en el servidor local TomCat. Conectar Base de Datos MySQL con JSF El primer paso a realizar es crear la referencia JNDI para el origen de datos en el servidor local TomCat. Comentar que antes, tenemos que crear la Base de Datos Wiki

Más detalles