Capa de Infraestructura Capa de Infraestructura { { { Adyacente a todas las demás. Comprende todos aquellos servicios susceptibles de ser requeridos desde cualquiera de las capas lógicas del sistema. El servicio se concibe como un componente que suele ser dependiente del entorno de despliegue del sistema -> Portabilidad? z Ej.: Servicio de Log varía de formato de salida de una empresa a otra, inclusive dentro del mismo grupo empresarial. Capa de Infraestructura + Componentes Clases Gestoras Capa de infraestructura Gestión de los Servicios de Infraestructura { { Componentizados Se accede a ellos a través de una interfaz que define el servicio = contrato. Clase que emplea el servicio de infraestructura Interfaz que define el servicio Componente Servicio Infraestructura Gestión de los Servicios de Infraestructura { { { La responsabilidad de instanciar la clase que sirve el servicio es de las clases gestoras. La relación de qué clase implementa un determinado servicio (interfaz java) en un momento dado se externaliza a un fichero XML -> Cambios en los servicios de infraestructura limitados a tareas de configuración. Las clases del modelo no interactúan nunca con una clase de servicio de infraestructura directamente. Objetivos de la Capa de Infraestructura { { { La sustitución de un componente se limita a tareas de configuración Se desacopla completamente la aplicación del entorno de despliegue. Las clases gestoras pueden trabajar (en caso de que el componente lo permita) con pools de componentes >Aumento de rendimiento. Servicios de Infraestructura Habituales { { { { { { Servicio de log Pool de conexiones JDBC (o de cualquier otro sistema de persistencia). Sistema de configuración de la aplicación. Gestor de accesos/permisos de usuario a los distintos servicios de la aplicación. El SQLProvider descrito en la capa de acceso a datos. Otros más específicos del entorno del proyecto pero independientes del modelo. Frameworks IoC { { El patrón Inversion Of Control o Inyección de dependencias (Fowler). Apache Avalon/Excálibur z { Spring Framework z z { Ex Proyecto Jakarta. Contenedor IoC (entre otras muchas cosas…) Incorporado al FPA desde la versión 1.3 PicoContainer El Framework AVALON Excálibur de Jakarta { { { Implementación de la capa de infraestructura antes dentro de Jakarta, ahora a nivel de Apache Componentiza servicios de infraestructura Gestion el ciclo de vida de los componentes. z z z z { Pool de componentes Configuración de componentes Reconfiguración Etc. Muy completo y específico para esto, pero las nuevas versiones están un poco abandonadas Spring Framework { Contenedor IoC: z z z z { { { { { Configuración centralizada y automatizada Cableado de beans No invasivo Ensambla POJOs. Capa de abstracción para plugin de monitores transaccionales Capa de abstracción JDBC Integración con TopLink, Hibernate, JDO, e IBATIS Funcionalidad AOP MVC Referencias { URLs z z { http://jakarta.apache.org/Avalon http://theserverside.com Libros z z Mastering Tomcat Development de WILEY Java Server Programming J2EE Edition de Wrox