5.6.3 Session Facade



Documentos relacionados
Value Object (1) Agrupar un conjunto de atributos procedentes de uno o varios objetos del dominio. Data Transfer Object, Replicate Object

Value Object (1) Agrupar un conjunto de atributos procedentes de uno o varios objetos del dominio

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

Curso de Spring Framework

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

TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar.

Patrones. (Conceptos Generales)

Formatos para prácticas de laboratorio

Data Source. Lic. Esteban Calabria 2007

Enterprise JavaBeans

[CASI v.0109] Pág. 1

5.1 Introducción a Servicios Web

Arquitectura de aplicaciones

Tema 6: Comparativa CORBA/Servicios Web

Introducción a SOA (II) Huibert Aalbers Senior Certified Software IT Architect

JAVA 2 ENTERPRISE EDITION

Generador GeneXus JAVA

Desarrollo de Software con

Accediendo a Base de Datos desde aplicaciones Web desarrolladas con J2EE: patrones de diseño.

Curso Android Curso Online Desarrollo en Celulares con Android

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Arquitectura de Aplicaciones Empresariales. Lic. Esteban Cesar Calabria 2007

Tema 5. Plataforma Java EE

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

UNIVERSIDAD DE PIURA

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA

Introducción al Diseño con Patrones

ARC 108 Component Model

1. Definición. Open Source. Escalable. Alto desempeño. Arquitectura Modular. Producto de licencia de código abierto sin coste adicional.

Curso de JavaServer Faces

Tema 1: Introducción a Java EE

MARCANDO LA DIFERENCIA

Arquitectura de Aplicaciones Empresariales. Lic. Esteban Cesar Calabria

Tema 4: Tecnologías Web Java

Introducción al Desarrollo de Aplicaciones Empresariales

Capas de la arquitectura de referencia

a) Cita y comenta brevemente los grados de acoplamiento. Clasifícalos y ordénalos en orden creciente al nivel de acoplamiento asociado.

Notas técnicas de JAVA Nro. 7 Tip Breve

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

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

Curso Java Curso Online Analista Programador Java

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

Tema 5. Plataforma Java EE

Sistema de Administración de Farmacias Descripción de la Arquitectura Versión 1.4. Historia de revisiones

Estudio de patrones de diseño en plataforma Java Enterprise Edition versión 6 para el desarrollo de aplicaciones web

Analista Programador Java: Business Apps Expert

JAVA EE 5. Arquitectura, conceptos y ejemplos.

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

Lógica de Negocios. Esteban Calabria 2007

Información del Producto: XenData X2500 LTO-6 Digital Video Archive System

7.1 Arquitectura de clases

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

A. Goñi, J. Ibáñez, J. Iturrioz, J.A. Vadillo OCW 2013

Universidad ORT - Arquitectura de Software. Requisitos

Quées EJB? (1) EJB (Enterprise JavaBean) es una tecnología J2EE para la implementación de la capa modelo de una aplicación

Tema 1. Introducción a Java EE

5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniBank con EJB

El EOS cuenta con características que hace que sea el sistema de operación empresarial más novedoso y funcional que existe hoy en el mercado.

Facultad de Sistemas e Informática

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

TciSatSingleW32 Versión 3.1

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

Pliego de Prescripciones Técnicas

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Análisis, Diseño e Implementación de un Sistema de. Alquiler de autos usando tecnología Cliente/Servidor con

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL

Tema 1: Introducción a los estándares de portales

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

3.3.3 Tecnologías Mercados Datos

ARQUITECTURAS DE SOFTWARE ORIENTADAS A SERVICIOS

La solución óptima para los Reparadores Autorizados y pequeños concesionarios

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Pattern Oriented Software Architecture. Whole-Part. Jamir Antonio Avila Mojica César Julio Bustacara Medina. Patrones de Software

Elementos requeridos para crearlos (ejemplo: el compilador)

Componentes Distribuidos EJBs. Ing. Cesar Julio Bustacara Medina

Novedades. Introducción. Potencia

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

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010

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

Desarrollo de Sistemas Software Basados en Servicios y Componentes

IBM Software Demos WebSphere Dashboard Framework

Transcripción:

5.6.3 Session Facade

Session Facade (1) Intención Proporcionar una interfaz sencilla que soporta un conjunto de casos de uso relacionados Motivación La explicada en el tema 2: proporcionar una interfaz sencilla que soporta un conjunto de casos de uso relacionados (en general, una operación por cada caso de uso), ocultando las relaciones existentes en la implementación de cada caso de uso Adicionalmente, cuando se usa EJB, se pretende reducir el número de invocaciones remotas y evitar que el cliente tenga que usar el API de transacciones Ej.: MiniBank

Session Facade (2) Motivación (cont) Opción 1 Definir los interfaces de los Entity Beans como remotos, prescindir del Session Bean e implementar la fachada en el Business Delegate :EJBAccountFacadeDelegate :AccountHome src:account dest:account transfer(srcid, destid, amount) findbyprimarykey(srcid) findbyprimarykey(destid) getbalance() withdraw(amount) add(amount) MVJ-1 Red MVJ-2 NOTA: Por cuestiones de espacio, el diagrama no ilustra la creación de las dos operaciones bancarias

Session Facade (3) Motivación (cont) Opción 1 (cont) La operación transfer involucra 7 operaciones remotas (las 5 mostradas más las dos correspondientes a AccountOperationHome.create) La implementación de transfer necesita usar el API de transacciones (javax.transaction) Lógica de negocio en el cliente => no se beneficia de las ventajas de una arquitectura en 3 capas Opción 2 Definir los interfaces de los Entity Beans como locales e implementar la fachada como un Session Bean remoto El Business Delegate es un Proxy de la fachada

Session Facade (4) Motivación (cont) Opción 2 (cont) :AccountLocalHome dest:accountlocal :EJBAccountFacadeDelegate :AccountFacadeEJB src:accountlocal transfer(srcid, destid, amount) transfer(srcid, destid, amount) findbyprimarykey(srcid) findbyprimarykey(destid) getbalance() withdraw(amount) add(amount) MVJ-1 Red MVJ-2 NOTA: Por cuestiones de espacio, el diagrama no ilustra la creación de las dos operaciones bancarias

Session Facade (5) Motivación (cont) Opción 2 (cont) La operación transfer involucra 1 operación remota El contenedor de EJBs gestiona la transacción automáticamente Lógica de negocio en contenedor de EJBs Las anteriores desventajas (opción 1) y ventajas (opción 2) no son sólo para transfer, sino para todas las operaciones Aplicabilidad Cuando se quiere ofrecer una versión simplificada de un conjunto de EJBs Cuando se quiere reducir el número de invocaciones remotas desde la capa cliente

Session Facade (6) Estructura Client <<SessionBean>> SessionFacade <<use>> BusinessObject <<EntityBean>> BusinessEntity <<use>> <<SessionBean>> BusinessSession <<use>> Participantes Client (EJBAccountFacadeDelegate) DataAccessObject Puede ser un Business Delegate u otro Session Facade SessionFacade (AccountFacadeEJB) Normalmente, un Session Bean Proporciona un interfaz sencillo al cliente, ocultando las relaciones entre numerosos objetos de negocio

Session Facade (7) Participantes (cont) Business Object (Account y AccountOperation) Proporciona datos (Entity Bean o DAO) o un servicio (Session Bean) Colaboraciones Un SessionFacade coordina a un conjunto de objetos de negocio para implementar un conjunto de casos de uso relacionados Consecuencias Beneficios Simplifica el mantenimiento Reduce el número de invocaciones remotas Simplifica la gestión de transacciones

Session Facade (8) Implementación Un Session Facade se implementa como un SLSB o SFSB en función de si necesita guardar estado o no Ej.: AccountFacade (SLSB) en MiniBank Ej.: UserFacade (SFSB) en MiniPortal En el caso de una aplicación web y disponer de un contenedor completo de J2EE => Session Facades (Session Beans) con interfaces locales Evitar que el Session Facade termine siendo una clase grande La descripción de este patrón en el sitio web de IBM, recomienda implementar las operaciones que requieren más de 4 ó 5 líneas de código (sin contar la gestión de excepciones), en clases acción Designing Enterprise Applications with the J2EE ilustra una versión potente (quizás demasiado compleja) de la aplicación del patrón Command, que minimiza el número de operaciones del Session Facade EJB Design Patterns ilustra una versión muy simplificada (quizás no útil) de la aplicación del patrón Command (patrón EJB Command)

Session Facade (y 9) Implementación (cont) Core J2EE Patterns habla del patrón Value Object Assembler para referirse a un Session Facade con operaciones que devuelven Custom Value Objects EJB Design Patterns llama Data Transfer Object Factory a una variante del patrón Value Object Assembler que además incluye operaciones de actualización Código de ejemplo AccountFacade (SLSB) en MiniBank UserFacade (SFSB) en MiniPortal Patrones relacionados Facade Data Access Object Service Locator Business Delegate