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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcripción

1 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 noviembre 2014 FJRP 2014 DAGS

2 5.1 Enterprise JavaBeans, versión 3.x Componentes del lado del servidor que encapsulan la lógica de la aplicación y que son gestionados por el contenedor de EJBs Cada Enterprise JavaBean encapsula parte de la lógica de negocio de la aplicación Paquete javax.ejb.*: interfaces, anotaciones, excepciones, Ventajas que aportan Permiten la distribución de la lógica entre distintas máquinas manteniendo la transparencia Uso de directorios JNDI para nombrar y acceder a los componentes y recursos Manejo de transacciones para controlar accesos concurrentes asegurando la integridad de los datos Controladas por el contenedor de EJB Simplifican el desarrollo de aplicaciones que atiendan una gran variedad de clientes (clientes web o de escritorio (stand-alone), cliente locales o remotos, etc) Diseño orientado a componentes reusabilidad y abstracción El desarrollador se concentra en la lógica de negocio y utiliza los servicios proporcionados por el contenedor Servicios básicos a los que da soporte el contenedor EJB 1. Persistencia mediante JPA (Java Persistence API ) 2. Invocación remota de métodos mediante RMI/IIOP 3. Procesamiento de transacciones y control de la concurrencia Por defecto cada invocación de un método de un EJB forma parte de una transacción 4. Procesamiento de eventos/mesajes asíncronos (API Java Message Service [JMS]) 5. Servicios de directorio: JNDI (Java Naming and Directory Interface) 6. Seguridad: autenticación, control de acceso y privilegios, criptografía (JAAS [Java Authentication and Authorization Service], JCA [Java Cryptography Architecture]) FJRP 2014 DAGS 1

3 7. Publicación de los métodos de negocio de los EJBs como servicios Web SOAP (JAX-WS) o REST (JAX-RS) FJRP 2014 DAGS 2

4 (a) Tipos de EJB Message-Driven EJBs (EJBs dirigidos por mensajes) Permiten el procesamiento de mensajes (operaciones) de forma asíncrona (recepción y tratamiento de eventos JMS) Actúan como listeners (escuchadores) de eventos JMS (Java Message Service) Implementan el interfaz MessageListener Se suscriben a una cola (queue) quedando a la espera y se activan cuando se recibe un mensaje dirigido a dicha cola Esos mensajes JMS pueden ser enviados por cualquier componente de una aplicación Java EE (clientes, componentes Web, otros EJBs) Los clientes de un Message-Driven EJB no invocan directamente sus métodos, simplemente envían mensajes JMS Session EJBs (EJBs de sesión) Representan procesos de negocio (funcionalidades de la aplicación) implementan un interfaz de negocio (bussines interface) Gestionan la interacción con los clientes (objetos/procesos que hacen uso del componente) y encapsulan el flujo y manipulación de la información en el servidor Proporcionan a los clientes una fachada de los servicios proporcionados por otros componentes disponibles en el servidor (patrón de diseño Facade) Ofrecen operaciones síncronas (petición-respuesta) Procesos de negocio ejecutados en respuesta a una solicitud del cliente Contenedor de EJBs crea e inicializa sus instancias (inyectándoles las referencias necesarias) y las asigna a los clientes a medida que estos los van requiriendo (pool de EJBs) En un instante de tiempo dado, sólo un cliente tiene acceso a los métodos de la instancia del EJB (control de concurrencia) Contenedor de EJBs garantiza que cada método del EJB se ejecuta dentro de una transacción atómica Nota: Desde EJB 3.1 se permite declarar métodos asíncronos dentro de EJBs de sesión marcándolos con la En el caso de que el método tenga valor de retorno T, el tipo del valor de retorno del método asíncrono será Future<T> public Future<EstadoPago> procesarpagotarjeta(int cantidad, Tarjeta tarjeta){ Sobre los objetos Future<T> se puede consultar la disponibilidad del valor vinculado. FJRP 2014 DAGS 3

5 (b) EJBs de sesión Tipos de EJB de sesión: en función la interacción con el cliente (quien realiza las llamadas) Stateful EJB: tienen un estado conversacional dependiente del cliente Cada llamada está condicionada por las anteriores (importa el orden) Los valores de sus atributos se mantienen entre las distintas invocaciones de un mismo cliente Representan el estado de la interacción con un cliente específico Cada instancia de un stateful EJB atiende invocaciones de un único cliente En función del estado conversacional el resultado de las operaciones realizadas podrá variar Estado conversacional no es persistente (no se mantiene cuando el cliente libera el EJB) Valores de atributos no premanentes: finalizada sesión el estado desaparece Por eficiencia el contenedor de EJBs puede decidir detener temporalmente la ejecución un stateful EJB, almacenando temporalmente su estado en disco para recuperarlo al volver a la ejecución Ejemplo: objeto carrito de la compra en el cual se van añadiendo productos Stateless EJB: no almacenan datos de los clientes que los invocan Cada llamada es independiente de las demás Para el cliente todos los stateless EJB son idénticos (e intercambiables) Estado de un stateless EJB no contiene información específica de un cliente no se garantiza que los valores de sus atributos se mantengan entre llamadas Stateless EJBs realizan tareas genéricas e idénticas para todos los clientes Pueden implementar Servicios Web Ejemplo: objeto gestor de artículos : altas, bajas, modificaciones de artículos Singleton EJB: contenedor garantiza que existe una única instancia del objeto, compartida por todos los clientes del EJB (estado global compartido). Por defecto el acceso concurrente lo gestiona el contenedor, pero puede controlarse por código mediante Uso típico: gestión de datos globales de la aplicación (cachés, etc) Interfaces en EJB de sesión Interfaz de negocio de un EJB define el tipo de acceso permitido a sus clientes (Define la visión del EJB que tiene el cliente) Un EJB de de sesión puede tener varios interfaces de negocio con distintos tipos de acceso Clientes remotos: pueden ejecutarse en máquinas virtuales (JVM) distintas a la del EJB que invocan Pueden ser: componentes web (servlet, JSP), clientes remotos u otros EJBs Para el cliente remoto la localización del EJB es transparente (sólo necesita acceso al directorio JNDI) Clientes locales: deben ejecutarse en la misma máquina virtual (JVM) que el EJB que invocan Pueden ser: componentes web (servlet, JSP) u otros EJBs Para cliente local la localización del EJB no es transparente (debe estar en su misma JVM) FJRP 2014 DAGS 4

6 (c) Definición de EJBs de sesión (1) Definición del interfaz de negocio Interfaces de negocio interfaces Java decorados con las para indicar las restricciones de acceso El interfaz y todos los métodos definidos deben de ser public Mismas restriciones para tipos de parámetros y valores de retorno que Java RMI Si no se indica con una anotación en el interfaz o en el EJB se asume todos los interfaces son locales por defecto public interface GestorClientes { public void alta(cliente c); public void baja(cliente c); public void actualizar(cliente c; public cliente buscardni(string DNI); ; Nota: Llamadas remotas son mucho más costosas que locales En general se tiende a pasar parámetros grandes reducir núm. de llamadas pasando mayor cantidad de public interface CarritoCompra { public void inicializarcarrito(cliente c); public void anadirarticulo(articulo a, int cant); public void eliminararticulo(articulo a); public void vaciarcarrito(); ; (2) Implementación de EJBs de sesión Clases de implementación marcadas con según del tipo de bean Se indican los interfaces de negocio implementados public class GestorClientesBean implements GestorClientes public class CarritoCompraBean implements CarritoCompra { Opcionalmente se puede asociar un nombre JDNI al EJB para su acceso (parámetro mappedname="." de Nota: si no se indica nada el contendor EJB asignará uno por defecto Opcionalmente se puede omitir la palabra clave implements explicitando el nombre y el tipo de acceso de los interfaces de negocio soportados En EJB 3.1 (incluido EJB lite), no se requiere definir interfaz para EJBs con acceso local (no-inteface view), basta marcar la clase con la o directamente no anotarlo. FJRP 2014 DAGS 5

7 Se pueden marcar métodos con anotaciones especiales para indicar que sean invocados por el contenedor EJBs en momentos concretos del ciclo de vida del una vez que el contenedor instancia el EJB y le inyecta dependencias (antes de recibir su primera justo antes de eliminar definitivamente el (sólo stateful) justo antes almacenar el estado en disco (sólo stateful) justo de recuperar el estado almacenado en disco temporalmente Método anotado puede ser invocado por clientes para provocar eliminación de una instancia del EJB del contenedor (3) Empaquetado y despliegue Empaquetado de EJBs: Creación de fichero JAR conteniendo: Bytecode (ficheros.class) de clases de implemementación de EJBs interfaces de negocio otras clases auxiliares necesarias Ficheros.class estructurados en paquetes (subdirectorios) según corresponda Directorio META-INF conteniendo los ficheros de configuración exigidos por el contenedor o/y otros que pudieran ser necesarios descriptor de despliegue [ejb-jar.xml] descriptor de persistencia JPA [persistence.xml] MANIFEST.MF otros: descriptor de despliegue específico del contenedor (glassfish-ejb-jar.xml) Librerías adicionales (ficheros JAR) Despliegue de EJBs: El fichero JAR resultante se puede desplegar directamente en el contenedor JEE o incluirlo como un módudo EJB de una Aplicación JEE (paquetes EAR) Al ser deplegado un EJB en un contenedor se le asocia un nombre según lo indicado en sus anotaciones o en su descriptor de despliegue Ese nombre se registra en el servidor de nombres del contendor EJB, accesible por JNDI. Una vez desplegado los clientes pueden acceder al EJB usando ese nombre e invocar sus métodos FJRP 2014 DAGS 6

8 (c) Acceso e invocación de EJBs de sesión Para utilizar métodos de un EJB desplegado es necesario que el cliente cuente con una referencia a un representante (proxy o stub) del mismo proxy gestiona las invocaciones, bien locales o bien sobre RMI/IIOP Opción 1: Inyección de dependencias por parte del contenedor JEE Uso de la acompañando al atributo donde se mantendrá la referencia al EJB El tipo del atributo/referencia será el nombre del interfaz de negocio que se desea invocar El contenedor usará el nombre por defecto del EJB (o el que se especifique en el para consultar al servidor de nombres JNDI, inyectando en ese atributo la referencia encontrada Inyección de referencias sólo es posible dentro de un entorno de ejecución JEE Contenedor de servlets: es posible inyectar EJBs para invocarlos desde servlets, páginas JSP, Java beans de JSF Contenedor de EJBs: posible inyectar EJBs para invocarlos desde otros EJBs Contenedor de clientes JEE: clientes Java stand-alone ejecutándose en el contexto de un contenedor de clientes JEE pueden obtener e invocar EJBs Es necesario disponer de las API de JEE 6 para inyectar estas dependencias Ejemplo: appclient en GlassFish Importante: Los contenedores de clientes JEE sólo pueden inyectar EJBs sobre atributos de tipo static de la clase principal donde se incluya el método main() Ejemplo: public class ClaseLlamadora // puede especificarse un nombre de EJB con mappedname (opcional) private CarritoCompra carrito; public void metodollamador(string args[]) { carrito.inicializar(); carrito.anadir(); También posible inyección de dependencias de CDI FJRP 2014 DAGS 7

9 Opción 2: Consulta JDNI empleando el nombre asignado al EJB Siempre es posible consultar el servicio JNDI presente en todos los servidores aplicaciones JEE Se usa el API de JNDI paquete javax.naming.* Interfaz InitialContext, métodos lookup() Se obtiene una referencia a un EJB a partir del nombre asignado (en la anotación, en el descriptor de despliegue o del nombre por defecto asignado por el contenedor) Este era el modo en que se hacía en las versiones de EJB 2.x y anteriores Antes de JEE 6: el nombre por defecto con el que se registraban los EJBs no estaba estandarizado cada servidor de aplicaciones organizaba el directorio de nombres JNDI de forma distinta JEE 6 especifica formato estandar para nombres por defecto de los EJBs java:global[/<app-name>]/<module-name>/<bean-name>[!<fully-qualified-interface-name>] Consultas JNDI desde clientes stand-alone Es necesario configurar las properties de la máquina virtual cliente para indicar la dirección y el puerto de escucha del servicio JNDI del contenedor donde está desplegado el EJB (dependiente de cada contenedor) Nota: con GlassFish las propiedades a especificar son: org.omg.corba.orbinitialhost IP/nombre servidor aplicaciones JEE org.omg.corba.orbinitialport 3700 Pueden indicarse como parámetros de la JVM al arrancar (-Dparametro=valor) o con System.setProperty( parametro, valor); Con esa información será posible obtener un InitialContex donde buscar [lookup()] el nombre del EJB deseado Ejemplo: import javax.naming.initialcontext; public class EjemploCliente { public static void main(string args[]) { InitialContext ic = new InitialContext(); CarritoCompra carrito = (CarritoCompra) ic.lookup("java:global/ejemplotiendaweb/"+ "EjemploTiendaWeb-ejb/CarritoCompraBean"); carrito.inicializar(); carrito.anadir(); FJRP 2014 DAGS 8

10 Transacciones en EJBs Contenedor de EJBs ofrece por defecto gestión de transacciones sobre métodos de EJBs (container-managed transactions [CMT]) EJB también pueden gestionar desde código sus propias transacciones (bean managed transactions [BMT]) Mediante el API JTA (Jave Transaction API ) [objetos javax.transaction.usertransac UserTransaction provee los métodos begin(), commit() y rollback() EJBs con transacciones BMT se marcan con la anotación Se puede especificar que el contenedor de EJBs inyecte una instancia de UserTransaction mediante UserTransaction utx; También se pueden obtener con un consulta JNDI En la gestión de transacciones se busca garantizar las propiedades ACID: Atomicidad (Atomicity): una transacción está compuesta de 1 o más unidades de trabajo o se ejecutan TODAS ellas [commit] o no se ejecuta NINGUNA [rollback], si ocurre algún error (exception) inesperado no recuperable Consistencia (Consistence): al finalizar la transacción (éxito [commit] ó fracaso [rollback]) los datos se dejan en un estado consistente aislamiento (Isolation): el estado intermedio de la transacción no es visible a los demás componentes de la aplicación (u a otras aplicaciones) Durabilidad (Durability): una vez la transacción se completa con éxtio [commit] los cambios realizados sobre los datos son visibles al resto de aplicaciones Por defecto todos los métodos de los EJBs que usan CBT se ejecutarán dentro de una transacción (no es necesaria configuración expĺıcita) EJBs se consideran anotados por defecto Pueden especificarse características específicas en la gestión de transacciones a nivel de EJB o de método TransactionAttributeType.REQUIRED (valor por defecto) FJRP 2014 DAGS 9

11 Si el cliente del EJB ya ha iniciado una transacción, el método del EJB se ejecuta formando parte de ella. En otro caso, se inicia una transacción nueva para el método del EJB. (el método del EJB se ejecuta siempre dentro de una transacción, propia o heredada) TransactionAttributeType.REQUIRES NEW Se inicia siempre una nueva transacción para el EJB. Si el cliente ya había iniciado una transacción, esta se suspende y se reanuda cuando termine el método del EJB. (el método del EJB se ejecuta siempre dentro de una transacción propia) TransactionAttributeType.SUPPORTS Si el cliente ha iniciado una transacción, el método del EJB se ejecuta dentro de ella. En otro caso, se ejecuta el método del EJB sin iniciar una transacción nueva. (se mantiene el estado transaccional del cliente ) TransactionAttributeType.MANDATORY: Si el cliente no ha iniciado una transacción, se lanza una excepción y se aborta la ejecución del método del EJB. En otro caso, se utiliza la transacción iniciada por el cliente. (el método del EJB se ejecuta siempre dentro de una transacción proporcionada por el cliente ) TransactionAttributeType.NOT SUPPORTED Si el cliente ha iniciado una transacción, esta se suspende, se ejecuta el método del EJB sin iniciar una transacción nueva y se reanuda la transacción del cliente. (el método del EJB se ejecuta fuera de cualquier transacción) TransactionAttributeType.NEVER: Si el cliente ha iniciado una transacción, se lanza una excepción y esta se suspende y no se ejecuta el método. (sólo se ejecuta el método del EJB si no está dentro de una transacción) FJRP 2014 DAGS 10

12 5.2 CDI: Context and Dependece Injection Framework de inyección de dependencias y gestión de objetos, disponible desde Java EE 6. Simplifica el desarrollo de componentes Java EE haciendo uso del principio IoC Inversion of Control Servicios ofrecidos por CDI 1. Inyección de dependencias: inyección de referencias a objetos fuertemente tipada Favorece un bajo acoplamiento simplifica plantear un diseño donde se depende de abstracciones (interfaces) en lugar de depende de implementaciones concretas CDI carga con la responsabilidad de la creación de los objetos no es necesario especificar las clases concretas a utilizar ni sus respectivas dependencias, CDI creará los objetos correctos e inyectará esas referencias Posibilidad de configurar la inyección concreta en tiempo de despliegue (descriptor beans.xml) 2. Gestión de contextos: ciclo de vida de los objetos CDI está vinculado a contextos (scopes) 3. Gestión del ciclo de vida de los objetos CDI (beans CDI ): uso de interceptores de llamadas a métodos, definición de decoradores y gestión de eventos 4. Nombrado de los beans: permite el acceso a los beans CDI desde el Expression Language(EL) de JSF y JSP (simplifica la integración de la capa web y de la capa de lógica de aplicación) FJRP 2014 DAGS 11

13 Beans CDI: un bean CDI puede ser casi cualquier objeto Java No exige implementar interfaces concretos o heredar de determinadas clases : POJOs [plain old Java objects] Puede ser accedido desde objetos cliente vía inyección de dependencias o mediante un nombre desde el EL de JSF y JSP. Componentes Java susceptibles de ser gestionados por CDI deben verificar: 1. no son una clase interna no estática 2. son una clase concreta o está anotada 3. tienen un constructor sin parámetros o uno de sus constructores está anotado A un bean CDI puede vinculársele: 1. un ] 2. un nombre EL [Named] 3. un conjunto de cualificadores que delimitan el tipo de cliente que podrá inyectarlos 4. un conjunto de interceptores 5. puntos de gestión del ciclo de 6. un conjunto de 7. un conjunto de observadores de eventos Por defecto, se habilita CDI incluyendo un descriptor de despliegue beans.xml vacío con la opción bean-discovery-mode="annotated" en los directorios de configuración de la aplicación (WEB-INF en aplicaciones web, META-INF en el resto de casos) <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" bean-discovery-mode="annotated"> </beans> Framework CDI considera susceptibles de ser tipos válidos para los beans CDI todos los interfaces, clases abstractas, clases concretas, arrays y tipos básicos incluidos en la aplicación, excepto los paquetes o tipos marcados con la beans.xml se utiliza en tiempo de despliegue para seleccionar las alternativas a utilizar en el caso de tipos CDI con varias implementaciones habilitar/deshabilitar los decoradores y observadores de eventos FJRP 2014 DAGS 12

14 (a) Inyección de dependencias Inyección de dependencias (DI : dependence injection) es un principio de diseño que desacopla la creación de objetos dependientes la responsabilidad de crear los objetos y obtener las dependencias necesarias pasa al contenedor de DI (ejemplos: Spring, Google Guice, CDI) en Java EE, DI presente en distintas en EJBs, inyección de recursos (CDI unifica todas esas especificaciones) Define en el objeto cliente (quien recibe la referencia de la dependencia inyectada) un punto de inyección de una referencia a un bean CDI del tipo especificado (con frecuencia un nombre de interfaz Java) Puede estar acompañado de uno o más cualificadores usados en el caso de tipos de objetos CDI con varias implementaciones para delimitar la que finalmente será inyectada Puede especificarse un punto de inyección: en el propio atributo de la clase del bean CDI donde se inyectará la TipoBean atributo; en el método set() de ese void setatributo(tipobean atributo) { this.atributo = atributo; en un public ClaseBean(TipoAtributo atributo) { this.atributo = atributo; FJRP 2014 DAGS 13

15 Cualificadores Por defecto CDI asume que existe una única implementación del tipo de bean especificado En caso de que sólo exista una implementación se inyecta la correspondiente referencia (creando e inicializando el bean CDI si es necesario) Por defecto todos los beans CDI cuantan con el cualificador Default La impĺıcitamente En caso de que existan más implementaciones los cualificadores permiten seleccionar cuál inyectar en cada caso Las distintas implementaciones de un tipo CDI pueden estar vinculadas con anotaciones que hereden de la anotación Qualifier (pueden vincularse a una clase varios cualificadores y exigirse varios cualificadores TYPE, METHOD) @Target({FIELD, TYPE, METHOD) Calificador2 { int parametro(); Tipo tipo(); public enum Tipo {A,B,C public interface public class Implementacion1 implements TipoBean public class Implementacion2 implements TipoBean tio=tipo.a) public class Implementacion3 implements TipoBean { FJRP 2014 DAGS 14

16 public class TipoBean inyectado; public class TipoBean inyectado; Si existen varias implementaciones, una de ellas debe estar marcada con el (si no es así se genera una excepción) Por defecto todos los beans CDI que no incluyan un cualificador se anotan con el cualificador Default Si no se especifican cualificadores acompañando a una impĺıcitamente se exige Default En el fichero beans.xml se puede modificar en tiempo de despliegue el comportamiento por defecto, seleccionando un cualificador por defecto de entre los @Default public class Implementacion1 implements public class Implementacion2 implements TipoBean { <beans > <alternatives> <class>paquete.implementacion2</class> </alternatives> </beans> Por defecto las alternativas están deshabilitadas, deben indicarse expĺıcitamente en beans.xml FJRP 2014 DAGS 15

17 Productores Usando la es posible especificar que el origen de una dependencia a inyectar sea el resultado de la invocación de un método en lugar de ser un objeto de una clase determinada (también es posible a los atributos de una clase) El método anotado podrá ir acompañado de los cualificadores que correspondan. En caso de que no exista una clase adecuada para la inyección (o se haya especificado así en beans.xml), el contenedor CDI se encargará de buscar un método adecuado para la inyección entre los paquetes y clases de la aplicación. Si lo encuentra, CDI lo invocará (creando una instancia si es necesario) e inyectará su valor de retorno en el punto/s de inyección marcado La permite inyectar arrays y tipos básicos Cuando existen cualificadores y alternativas los funcionan como una especie de métodos factoría tipado, gobernado por los cualificadores, el beans.xml y la propia lógica del método. En los casos en que la lógica del requiera información sobre el contexto donde se va a inyectar su resultado puede incluir como parámetro adicional un objeto InjectionPoint con información del cliente CDI. public class TipoBean productor1() { TipoBean instancia; TipoBean productor1(injectionpoint ip) { TipoBean instancia; String clasereceptora = ip.getmember().getdeclaringclass().getname(); return instancia; FJRP 2014 DAGS 16

18 (b) Contextos (scopes) en CDI Los beans CDI viven en un contexto (alcance) gestionado por el contendor CDI Contenedor crea y maneja los beans dentro de cada contexto, destruyéndolos al finalizar el contexto Contenedor garantiza el mantenimiento del estado del bean dentro del contexto Los clientes donde se inyecta un bean CDI interactúan siempre con el mismo objeto mientras el correspondiente contexto esté activo Contenedor garantiza que desde el punto de vista de los clientes y dentro de un contexto dado existe una única instancia de cada tipo de bean inyectado (CDI ofrece un especie singleton contextual) Contexto de Se prolonga durante la vida de la aplicación Los beans CDI se crea en el momento en que arranca la aplicación y se destruye al finalizar Existe una única instancia de los beans compartida por todos los clientes Usado para funciones complementarias, cachés, etc Puede presentar problemas de concurrencia Contexto de Se prolonga durante el conjunto de peticiones HTTP que se corresponden con una sesión de usuario Vinculado al objeto HttpSession de la capa web Los beans CDI se crean en su primer uso por parte del usuario y se destruyen al finalizar la sesión (bien por una invocación al método invalidate() o por agotamiento de time-out de sesión) Almacenan datos necesarios durante la sesión de usuario (credenciales de acceso, selecciones y preferencias, etc) FJRP 2014 DAGS 17

19 Contexto de Vinculado a una petición HTTP concreta Vinculado al objeto HttpServletRequest de la capa web Los beans CDI se crean al recibir la petición y se destruyen con el envío de su respuesta Mantienen datos que sólo son necesarios para la petición actual Es el más utilizado (la combina las Contexto de Contexto de duración variable, definida por la lógica del bean Todos los deben de inyectar un objeto Conversation a través del cuál se controla el contexto. Existe desde que se invoca el método begin() del objeto Conversation (normalmente en un hasta la invocación del método end() Utilizado para gestionar datos que se mantienen entre invocaciones sucesivas del cliente, pero con un alcance menor que la sesión, en el caso de aplicaciones web Contexto Contexto por defecto El bean CDI hereda el contexto en el cuál se encontraba el cliente al que fue inyectado FJRP 2014 DAGS 18

20 (c) Ciclo de vida de beans en CDI El contenedor CDI gestiona el ciclo de vida de los beans. En la creación del bean, CDI se encarga (por este orden) de: 1. Crear el objeto invocando a su constructor vacío o al etiquetado 2. Realizar la inyección de las dependencias requeridas por las del beanname 3. Invocar a los métodos anotados En la destrución del bean, CDI invoca a los métodos anotados justo antes de eliminar el bean de la JVM. Opcionalmente, CDI puede invocar a los interceptores de los métodos anotados Interceptores Los interceptores CDI ofrecen funcionalidades basadas en los principios de la programación orienta a aspectos (AOP: Aspect Oriented Programming) Suelen utilizarse para implementar funcionalidades que son comunes a varios componentes de la aplicación (loging, transacciones, controles de seguridad, etc) Ofrecen un forma limita y muy específica del patrón Cadena de responsabilidad FJRP 2014 DAGS 19

21 1. Interceptores de clase En el propio bean se puede añadir un interceptor propio marcando un método del bean Ese método recibirá un objeto InvocationContext con el cuál acceder a información del método invocado Mediante el método proceed() se indica que puede continuar su ejecución public class ClienteService private EntityManager private Logger logger; public void crearcliente (Cliente cliente) { private Object logmethod(invocationcontext ic) throws Exception { Logger.log("Entrando en clase "+ic.gettarget().tostring()+ " con metodo "+ic.getmethod().getname()); try { return ic.proceed(); finally { Logger.log("Saliendo de clase "+ic.gettarget().tostring()+ " con metodo "+ic.getmethod().getname()); FJRP 2014 DAGS 20

22 2. Interceptores generales Lo más habitual es definir interceptores genéricos que podrán emplearse en varios beans CDI marcando la clase que implementa los interceptores definiendo una nueva anotación (derivada con la que vincular esa clase interceptora a los beans implicados public class UsuarioService { EntityManager public almacenarusuario(usuario u) { ElementType.TYPE, ElementType.METHOD public class TransactionalInterceptor { EntityManager public Object invoke(invocationcontext context) throws Exception{ EntityTransaction t =em.gettransaction(); try { if(!t.isactive()) { t.begin(); return context.proceed(); catch(exception e) { t.rollback(); finally { if(t!= null && t.isactive()) { t.commit(); En ambos casos, para ser activados las clases que implementan los interceptores deberán ser declaradas en el fichero beans.xml dentro de etiquetas <interceptors> FJRP 2014 DAGS 21

23 (d) Decoradores y eventos CDI incluye soporte a la implementación del patrón Decorador Decoradores similares en funcionamiento a los Interceptores (ampĺıan las funcionalidades de un objeto gestionado) A diferencia de los Interceptores los Decoradores conocen el interfaz/comportamiento de la clase decorada public interface TipoBasico { Metodos public class MiDecorador implements private TipoBasico delegado; Metodos interfaz public class MiClase implements TipoBasico { Metodos interfaz <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee version="1.1" bean-discovery-mode="all"> <decorators> <class>paquete.midecorador</class> </decorators> </beans> FJRP 2014 DAGS 22

24 CDI incluye soporte a la implementación del patrón Observer Permite vincular comportamiento a acciones/eventos que ocurran sobre los objetos gestionados public class BookService private NumberGenerator -> private Event<Book> bookaddedevent; public Book createbook(string title, Float price, String description) { Book book = new Book(title, price, description); book.setisbn(numbergenerator.generatenumber()); -> bookaddedevent.fire(book); return book; public class InventoryService private Logger logger; List<Book> inventory = new ArrayList<>(); -> public void Book book) { logger.info("adding book " + book.gettitle() + " to inventory"); inventory.add(book); FJRP 2014 DAGS 23

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

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

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

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

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

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

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

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

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

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

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

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 de JavaServer Faces

Curso de JavaServer Faces 1 Una JavaBean es una clase Java que sigue las siguientes convenciones: Constructor vacío Atributos de clase privados Por cada atributo, se crean los métodos getters y setters El Objetivo de los Managed

Más detalles

5.2 Capa de negocio: EJB 3.x y Entidades JPA

5.2 Capa de negocio: EJB 3.x y Entidades JPA 5.2 Capa de negocio: EJB 3.x y Entidades JPA Tecnologías de JEE 5 / JEE 6 para dar soporte a los componentes que forman la capa de lógica de aplicación 1. Soporte de persistencia: mediante entidades JPA

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

Programa de Actualización Profesional Curso: Java Avanzado JEE7 Programa del Curso

Programa de Actualización Profesional Curso: Java Avanzado JEE7 Programa del Curso Objetivo: Transmitir conocimientos y desarrollar habilidades y aptitudes que permitan al asistente incorporar, en su ejercicio profesional, la utilización de buenas técnicas y nuevos paradigmas de desarrollo

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

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

Curso de Spring Framework

Curso de Spring Framework Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Spring es un proyecto de código abierto (open source), originalmente creado por Rod Johnson y descrito en su

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

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

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

Enunciado Práctica Java EE Iteración 1: aplicación web con JSF

Enunciado Práctica Java EE Iteración 1: aplicación web con JSF Enunciado Práctica Java EE Iteración 1: aplicación web con JSF SCS, 2011/12 11 de octubre de 2011 Índice 1. Descripción del problema 1 2. Especificaciones 4 2.1. Capa de negocio: Entidades JPA....................................

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

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

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

'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

5.3.2 Java Server Faces (JSF)

5.3.2 Java Server Faces (JSF) 5.3.2 Java Server Faces (JSF) Framework que implementa el patrón MVC (Modelo-Vista-Controlador) Basado en componentes y eventos del lado del servidor Mantiene del lado del servidor una representación del

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

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

Programación y Arquitectura

Programación y Arquitectura Programación y Arquitectura Proyecto Santos es una aplicación web que usa múltiples APIs i Java EE 7: La tecnología JavaServer Faces ii, incluyendo Ajax Contextos y la inyección de dependencias para la

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

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

1 Índice... 1. 2 Introducción... 2. 2.1 Propósito... 2. 2.2 Alcance... 2. 3 Modelo Arquitectónico Inicial... 3

1 Índice... 1. 2 Introducción... 2. 2.1 Propósito... 2. 2.2 Alcance... 2. 3 Modelo Arquitectónico Inicial... 3 1 Índice 1 Índice... 1 2 Introducción... 2 2.1 Propósito... 2 2.2 Alcance... 2 3 Modelo Arquitectónico Inicial... 3 3.1 Diagrama de alto nivel de la arquitectura... 3 3.2 Vista de Casos de Uso... 5 3.2.1

Más detalles

1. Posicionarse en la vista Services y seleccionar el ítem Servers. En el menú contextual del Mouse seleccionar la opción Add Server

1. Posicionarse en la vista Services y seleccionar el ítem Servers. En el menú contextual del Mouse seleccionar la opción Add Server Requisitos Versión 1.5 (o superior) de la JDK de Java NetBeans 6 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

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

[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

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

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

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

CentralTECH JAVA EE 7 Desarrollo

CentralTECH JAVA EE 7 Desarrollo CT-2776: de Aplicaciones Sobre este curso El curso está dirigido a profesionales y estudiantes IT que deseen adquirir los conceptos y tecnologías necesarias para implementar aplicaciones Web empresariales

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

Curso de Jboss Administración

Curso de Jboss Administración Curso de Jboss Administración Este curso está dirigido a gente interesada en la administración de Jboss, el cual nos brindará un soporte robusto para el despliegue de aplicaciones Java, tanto Web como

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

Curso Universitario de Java + Titulación Universitaria en Desarrollo y Programación de Aplicaciones para Android (Doble Titulación + 8 ECTS)

Curso Universitario de Java + Titulación Universitaria en Desarrollo y Programación de Aplicaciones para Android (Doble Titulación + 8 ECTS) Curso Universitario de Java + Titulación Universitaria en Desarrollo y Programación de Aplicaciones para Android (Doble Titulación + 8 ECTS) Titulación certificada por EUROINNOVA BUSINESS SCHOOL Curso

Más detalles

Introducción a JAX-WS Web Services

Introducción a JAX-WS Web Services INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO ALUMNO: SANLUIS CASTILLO JOSE DAVID PROFESOR: CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO MATERIA: WEB APPLICATION DEVEPLOMENT Introducción a JAX-WS

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

Programación en Java. Programación en OO

Programación en Java. Programación en OO Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase,

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

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

Universidad ORT - Arquitecturas de Software sobre plataforma JEE Web Services (parte 1)

Universidad ORT - Arquitecturas de Software sobre plataforma JEE Web Services (parte 1) Requisitos Oracle Java Development Kit (JDK) 6 NetBeans 6.9.1 con GlassFish Application Server 3 integrado Variable de entorno JAVA_HOME apuntando al directorio de instalación de la JDK Introducción El

Más detalles

Ejemplo de aplicación Java EE 6. Tienda Web con JPA+EJB+JSF

Ejemplo de aplicación Java EE 6. Tienda Web con JPA+EJB+JSF Ejemplo de aplicación Java EE 6. Tienda Web con JPA+EJB+JSF FJRP CCIA-2011 Septiembre-2011 Índice 1. Descripción de la aplicación de ejemplo 1 1.1. Presentación del ejemplo.........................................

Más detalles

4.5 APIs Java y Java EE para Servicios Web

4.5 APIs Java y Java EE para Servicios Web 4.5 APIs Java y Java EE para Servicios Web 4.5.1 JAXB (Java Architecture for XML Binding) APIs clásicas para procesamiento de documentos XML SAX (Simple API for XML): procesamiento de XML basado en eventos

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

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

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

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

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

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

Toda nuestra Experiencia a tu alcance

Toda nuestra Experiencia a tu alcance Informática y Administración y Desarrollo de Servidor de Aplicaciones Red Hat JBoss Con este curso aprenderás a realizar eficazmente tareas de administración del servidor de aplicaciones JBoss, entre ellas

Más detalles

WORKSHOP Spring Framework Developer

WORKSHOP Spring Framework Developer CONTEXTO WORKSHOP Spring Framework Developer La programación de los componentes de persistencia es una tarea muy importante, hoy en día contamos con Frameworks JDBC como MyBatis, Frameworks ORM como Hibernate

Más detalles

Manual de puesta en Cluster del Servidor de Firma de la plataforma @Firma 4.0.

Manual de puesta en Cluster del Servidor de Firma de la plataforma @Firma 4.0. Manual de puesta en Cluster del Servidor de Firma de la plataforma @Firma 4.0. TELVENT INTERACTIVA 1 TI-20-1074-CLU-001.doc CONTROL DE COMPROBACIÓN Y APROBACIÓN Documento nº: TI-20-1074-CLU-001 Revisión:

Más detalles

Postgrado en Programación y Desarrollo de Aplicaciones JAVA + Programación de Aplicaciones Android

Postgrado en Programación y Desarrollo de Aplicaciones JAVA + Programación de Aplicaciones Android Postgrado en Programación y Desarrollo de Aplicaciones JAVA + Programación de Aplicaciones TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Postgrado

Más detalles

Ejercicio 6. Persistencia con JPA - Sistema SGA. Java EE. Ejercicio 6. Persistencia con JPA Sistema SGA. Curso de Java EE

Ejercicio 6. Persistencia con JPA - Sistema SGA. Java EE. Ejercicio 6. Persistencia con JPA Sistema SGA. Curso de Java EE Java EE Ejercicio 6 Persistencia con JPA Sistema SGA Objetivo del Ejercicio El objetivo del ejercicio agregar persistencia con JPA a nuestro proyecto SGA (Sistema de Gestión de Alumnos). Al finalizar deberemos

Más detalles

Juan Galán García Rubén García Navamuel Javier Rodríguez Camarma Álvaro Rodríguez Moya

Juan Galán García Rubén García Navamuel Javier Rodríguez Camarma Álvaro Rodríguez Moya Juan Galán García Rubén García Navamuel Javier Rodríguez Camarma Álvaro Rodríguez Moya Índice - Qué es Google Guice? - Inyección de dependencias. Dependencias de clases en Java - Primer ejemplo con Google

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

Máster Executive en Programación y Desarrollo de Aplicaciones JAVA

Máster Executive en Programación y Desarrollo de Aplicaciones JAVA Máster Executive en Programación y Desarrollo de Aplicaciones JAVA TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Máster Executive en Programación

Más detalles

Guayaquil - Ecuador Pedro Carbo 123 y Junín. Pasaje Comercial la Merced. 2do Piso. Oficina 2. Teléfonos: (593) (04) 2561514 2561513 Mail.

Guayaquil - Ecuador Pedro Carbo 123 y Junín. Pasaje Comercial la Merced. 2do Piso. Oficina 2. Teléfonos: (593) (04) 2561514 2561513 Mail. Curso: Desarrollo de Aplicaciones Empresariales con JAVA Objetivos General: Que el estudiante pueda desarrollar aplicaciones distribuidas a través de Internet, aplicaciones de bases de datos con páginas

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

3.4 Implementación de los Casos de Uso con Spring

3.4 Implementación de los Casos de Uso con Spring 3.4 Implementación de los Casos de Uso con Spring Índice Introducción a Spring Declaración y Configuración de beans Excepciones de Persistencia Declaración de DataSources Integración con Hibernate 3 Gestió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

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

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE Versión 1.3 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de Usuario del NORMATIVA

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

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears Estándar de desarrollo de aplicaciones del Govern de les Illes Balears Aplicaciones JEE Versión 7.0 Fecha Revisión: 05/04/16 Estándar de desarrollo de aplicaciones > JEE Índice de contenidos INTRODUCCIÓN...

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

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

Java 7.0 Advanced Application Developer

Java 7.0 Advanced Application Developer DESCRIPCIÓN La arquitectura de software es un conjunto de elementos y estructuras interrelacionados entre sí que componen a un sistema informático: define qué elementos tiene una aplicación, cómo se relacionan

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

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

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

INTRODUCCIÓN A JAVA EE

INTRODUCCIÓN A JAVA EE Unidad de Aprendizaje 1 INTRODUCCIÓN A JAVA EE ÍNDICE 1.1 Introducción...3 1.1.1 Java Card... 3 1.1.2 Java Micro Edition (Java ME)... 4 1.1.3 Java Standard Edition (Java SE)... 4 1.1.4 Java Enterprise

Más detalles

Sistema de Control de Acceso Distribuido

Sistema de Control de Acceso Distribuido Sistema de Control de Acceso Distribuido Ing: Javier Jorge Lic. Eduardo Sanchez Febrero, 2010 Página 1 de 12 Alcance o dimensiones del problema Debido a que el control de acceso presenta grandes dimensiones

Más detalles

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE PRÓLOGO... 13 APECTOS BÁSICOS DE JAVA... 15 1.1. LA MÁQUINA VIRTUAL JAVA... 15 1.2. EDICIONES JAVA... 16 1.3. ESTRUCTURA DE UN PROGRAMA JAVA... 16 1.4. EL MÉTODO

Más detalles

Toda nuestra Experiencia a tu alcance

Toda nuestra Experiencia a tu alcance Informática y Curso de Desarrollo de aplicaciones Java: de Base de Datos Con este curso aprenderás a manejar correctamente de Base de Datos (JSP y JPA) Toda nuestra Experiencia a tu alcance NUNSYS FORMACIÓ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

Analista Programador Java: SE Standard Edition

Analista Programador Java: SE Standard Edition Analista Programador Java: SE Standard Edition Titulación certificada por EUROINNOVA BUSINESS SCHOOL Analista Programador Java: SE Standard Edition Analista Programador Java: SE Standard Edition Duración:

Más detalles

Tema 1: Introducción a las Tecnologías Java

Tema 1: Introducción a las Tecnologías Java Tema 1: Introducción a las Tecnologías Java Índice Características de las aplicaciones empresariales Tecnologías Java Alternativas a las tecnologías Java XML Material de clase Características de las aplicaciones

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

Máster Profesional. Máster en Programación de Aplicaciones JAVA

Máster Profesional. Máster en Programación de Aplicaciones JAVA Máster Profesional Máster en Programación de Aplicaciones JAVA Índice Máster en Programación de Aplicaciones JAVA 1. Sobre Inesem 2. Máster en Programación de Aplicaciones JAVA Descripción / Para que te

Más detalles

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM Ficha Técnica Categoría Programación Contenido del Pack - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM Sinopsis Java fue desarrollado por la compañía Sun Microsystems como una tecnología capaz

Más detalles

Curso de Spring Framework 4

Curso de Spring Framework 4 Curso de Spring Framework 4 Descripción: BST México ofrece esta capacitación efectiva en Spring, el cual es un poderoso framework de aplicaciones que nos ayuda a resolver muchos de los problemas y trabajo

Más detalles

FRAMEWORK 2 Creación de Servicios Web

FRAMEWORK 2 Creación de Servicios Web Creación de Versión 1.1 Área de Aplicaciones Especiales y Arquitectura de Software Página 1 de 21 Hoja de Control Título Documento Referencia Responsable de Creación de Área de Aplicaciones Especiales

Más detalles

UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Elección libre Unidad académica: Desarrollo de Sistemas de Información basado en Web I Ubicación: Octavo Semestre.

Más detalles

Cliente/Servidor en Java

Cliente/Servidor en Java Cliente/Servidor en Java Grupo ARCOS Desarrollo de Aplicaciones Distribuidas Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Introducción: 1. Paradigma cliente/servidor 2. Entorno

Más detalles

Descripción de Arquitectura Repositorio de metadatos de componentes de software

Descripción de Arquitectura Repositorio de metadatos de componentes de software Descripción de Arquitectura Repositorio de metadatos de componentes de software 1. Introducción. 1.1. Propósito. 1.2. Alcance. 1.3. Definiciones. 1.4 Contexto. 1.5. Referencia. 2. Objetivos y restricciones

Más detalles