90 likes | 286 Views
Desacoplamiento de Capas. Desacoplamiento de Capas. 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
E N D
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
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
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
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.
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.
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
Referencias • URLs • http://jakarta.apache.org/Avalon • http://theserverside.com • Libros • Mastering Tomcat Development de WILEY • Java Server Programming J2EE Edition de Wrox