Desacoplamiento de Capas
description
Transcript of Desacoplamiento de Capas
www.dflanvin.com/docencia/arquitectura
Daniel Fernández Lanvin
Desacoplamiento de Capas
www.dflanvin.com/docencia/arquitectura
Daniel Fernández Lanvin
Desacoplamiento deCapas
Evolución del modelo 3 a n capas pasa por incorporar capas intermedias que desacoplen dos capas adyacentes. Permitan distribuirlas mediante un
middleware Modelo recomendado actualmente
EBJ sesión sin estado que actúan como Façade e invocan remotamente a la siguiente capa
www.dflanvin.com/docencia/arquitectura
Daniel Fernández Lanvin
Desacoplamiento de Capas Problema del empleo de EJBs : Cuando aún no está distribuida
verticalmente la aplicación, carga muy pesada para invocación local.
Solución ¿? de Sun Microsystems: Extensión de la especificación EJB en la 2.0 con la incorporación de los interfaces locales
www.dflanvin.com/docencia/arquitectura
Daniel Fernández Lanvin
Desacoplamiento de Capas Problema de la solución: La aplicación es dependiente de un servidor de aplicaciones J2EE con
contenedor de EJBs sin necesidad de usarlos! ¿Y si sólo tenemos Tomcat?La presencia de EJBs limita la portabilidad del sistema a entornos que pueden escalarse horizontalmente:
Apache + Tomcat
www.dflanvin.com/docencia/arquitectura
Daniel Fernández Lanvin
Desacoplamiento deCapas Solución empleando patrones de diseño
El empleo de EJBs o no para acceder a las capas inferiores debe ser configurable
Patrónes Business Delegate ServiceLocator
En base a un parámetro de configuración, el helper accederá
Al EJB que permite el acceso remoto Al bean que simula el ejb en una llamada local
Si fuera necesario prencindir el contenedor de EJBs, no tendríamos ningún problema en hacerlo.
www.dflanvin.com/docencia/arquitectura
Daniel Fernández Lanvin
PatrónDesacoplamiento de Capas
www.dflanvin.com/docencia/arquitectura
Daniel Fernández Lanvin
Trabajo 16.0 Implemetado el componente de
infraestructura ServiceLocator. Se le pide una interfaz, y devuelve la instancia
que nos sirve el servicio solicitado. GestionLibrosService : Es el Façade del servicio
GestionLibros de la capa de negocio. GestionLibrosSimpleService : Se trata de la
implementación del servicio. Dado que está pensado para despliegue sin separación vertical física de capas, simplemente invoca al GestionLibrosBB.
www.dflanvin.com/docencia/arquitectura
Daniel Fernández Lanvin
WorkShop! Partiendo de Trabajo 16.0, desacoplar las capas de
negocio y persistencia para el servicio LibroDataService de Amazin.
1. Implementar la interfaz LibroDataService que publique el método que se sirve a negocio.
2. Implementar la clase “puente” LibroDataSimpleService que
Implemente el interfaz LibroDataService Invoque el servicio de LibroDataBean
3. Modificar el LibroDataHelper para que obtenga la referencia al objeto de tipo LibroDataService por medio del ServiceLocator.
4. Añadir el LibroDataService en el techincalservices.xml
www.dflanvin.com/docencia/arquitectura
Daniel Fernández Lanvin
Referencias
URLs http://jakarta.apache.org/Avalon http://theserverside.com
Libros Mastering Tomcat Development de WILEY Java Server Programming J2EE Edition de Wrox