Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Disenio de Aplicaciones en Capas
Disenio de Aplicaciones en Capas
aplicaciones
Arquitectura en capas
API
API
dic-08 alb@uniovi.es 2
Layers y Tiers
3 layers, 2 tiers
dic-08 alb@uniovi.es 4
Conexiones remotas
(diversas tecnologías)
Conexiones
3 layers, 4 tiers locales
dic-08 alb@uniovi.es 5
N tiers
dic-08 alb@uniovi.es 6
Arquitectura en capas
dic-08 alb@uniovi.es 7
Capa de presentación
dic-08 alb@uniovi.es 8
Capa de presentación
dic-08 alb@uniovi.es 9
Capa de presentación
dic-08 alb@uniovi.es 11
dic-08 alb@uniovi.es 12
Capa de Negocio:
Responsabilidades
dic-08 alb@uniovi.es 17
Lógica de negocio:
implementación
dic-08 alb@uniovi.es 18
Capa de lógica:
implementación
dic-08 alb@uniovi.es 19
Capa de lógica:
implementación
Si se usa modelo de dominio, compuesta
de:
Modelo de dominio: incluye lógica pero no toda
Clases de proceso sobre el modelo: lógica que
no se puede asignar directamente a ninguna
clase del modelo de dominio (procesos)
En esta capa no se debería meter ninguna
dependencia de tecnología de
infraestructura
Debería poderse ejecutar fuera de cualquier
entorno (para testear)
La persistencia suele ser la principal
dependencia. La capa DAO la evita
dic-08 alb@uniovi.es 20
dic-08 alb@uniovi.es 21
Capa de persistencia
dic-08 alb@uniovi.es 22
Interfaz de servicio: ejemplo
dic-08 alb@uniovi.es 23
Patrón DAO: problema
dic-08 alb@uniovi.es 24
Patrón DAO: problemas si…
dic-08 alb@uniovi.es 25
DAO: solución
dic-08 alb@uniovi.es 26
DAO
DomainObject
dic-08 alb@uniovi.es 28
DomainObject
Modelo DAO:
interacción
dic-08 alb@uniovi.es 29
Interfaces DAO: ejemplo
dic-08 alb@uniovi.es 30
Código que
resuelve
lógica de
negocio
No tiene
dependencias de
persistencia
dic-08 alb@uniovi.es 31
Posibles alternativas
en JEE
dic-08 alb@uniovi.es 34
Externalización de SQLs
Control de transacciones
Servicio de log (logging != login)
Pool de conexiones JDBC (o de cualquier otro
sistema de persistencia)
Sistema de configuración de la aplicación
(Assembling)
Gestor de accesos/permisos de usuario a los
distintos servicios de la aplicación
Provider de acceso a datos
Otros…
Gestión de los Servicios
de Infraestructura
Componentizados
Se accede a ellos a través de una interfaz que
define el servicio = contrato.
Gestión de los Servicios
de Infraestructura
Spring Framework
Contenedor IoC (entre otras
muchas cosas…)
Incorporado al FPA desde la
versión 1.3
PicoContainer
EJB 3.0
Spring Framework
Contenedor IoC:
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
Spring, externalización a xml de la
configuración
dic-08 alb@uniovi.es 44
Arquitectura en capas:
patrones
dic-08 alb@uniovi.es 45
Solución en capas
Persistence
Service Interface
Interface
Control
JDBC
Fa Hibernate DAO
Action ca Impl
D JDBC DAO
Action de A JPA DAO
Action
Fa O Spring DAO
Action ca Impl
de Spring DI D
DAO Factory
F
dic-08 alb@uniovi.es 47
Interacción entre capas: ejemplo
lógica persistencia
dic-08 alb@uniovi.es 48
Referencias
URLs
http://jakarta.apache.org/Struts
http://theserverside.com
Libros
Programming Jakarta Struts de
O’Reilly
Mastering Tomcat Development de
WILEY
Java Server Programming J2EE
Edition de Wrox