TESIS DE GRADO EN
INGENIERÍA EN
INFORMÁTICA
“Patrones de Diseño de
Arquitecturas de Software
Enterprise”
TESISTA
Diego Fernando Montaldo
[email protected]
http://www.fi.uba.ar/~dmontal/
DIRECTOR
Profesor Ing. Guillermo Pantaleo
[email protected]
Departamento de Computación
Facultad de Ingeniería
Universidad de Buenos Aires
Noviembre 2005
Diseño de Patrones de Arquitecturas Enterprise FI UBA
Resumen
Se analizan los problemas surgidos de la implementación de un sistema con
una arquitectura de software de tipo enterprise. Basándose en este análisis
se derivan los criterios de diseño a utilizar en este tipo de desarrollo. Se
presenta un sistema reusable (framework) como solución al problema de
construcción de un sistema del tipo analizado, mostrando los distintos
criterios de diseño elaborados. Se impuso como condición al problema del
desarrollo del framework, que el modelo de negocio debe ser inmutable. Es
decir no debe modificarse, sino que a partir del conocimiento del mismo se
pueda generar el código de una aplicación completa sin su modificación. Se
presenta la arquitectura original diseñada para que esta condición pueda ser
cumplida.
Diego Montaldo
Guillermo Pantaleo
2
Diseño de Patrones de Arquitecturas Enterprise FI UBA
Índice
Objetivo............................................................................................................6
Introducción .....................................................................................................7
Desarrollo de Software.................................................................................7
Características de Sistemas de Tipo Enterprise...........................................7
Arquitectura de Sistemas de Tipo Enterprise ...............................................7
Aspectos Relacionados al Desarrollo de Sistemas de Tipo Enterprise ........7
Problemas de Modelado del Dominio y del Negocio ....................................9
Estado del Arte ..............................................................................................10
Frameworks................................................................................................10
J2EE...........................................................................................................10
.NET ...........................................................................................................11
Frameworks de Persistencia ......................................................................11
Frameworks de Presentación.....................................................................13
Definiendo la Arquitectura..............................................................................14
Criterios de diseño .....................................................................................14
Tecnologías, Protocolos y Estándares a Utilizar ........................................18
Analizando cada Capa del Framework ..........................................................19
Capa de Servicio........................................................................................19
Servicios Locales y/o Remotos ..................................................................21
Capa de Modelo del Dominio .....................................................................24
Capa de Presentación................................................................................30
Diagrama de paquetes del Framework ......................................................32
Cada uno tiene sus ventajas y desventajas, éstas son analizadas en la
sección “Alternativa Reflection vs Generación de Código”.........................34
Aspectos relacionados a las capas del Framework .......................................35
Seguridad Autenticación y Autorización (Control de Acceso) ....................35
Autenticación ..........................................................................................35
Autorización............................................................................................36
Concurrencia..............................................................................................39
Auditoria .....................................................................................................40
Excepciones...............................................................................................41
Despliegue .................................................................................................43
Analizando los Patrones Utilizados................................................................47
Identificación ..............................................................................................47
Asociaciones ..............................................................................................51
Patrones relacionados a esta elección.......................................................52
Mapeos de objetos a tablas .......................................................................53
Patrones relacionados................................................................................53
Consistencia...............................................................................................55
Unidad de Trabajo......................................................................................58
Patrones relacionados................................................................................60
Acceso a Servicios Comunes.....................................................................61
Patrones relacionados................................................................................61
Acceso a los Datos Persistentes................................................................62
Patrones relacionados................................................................................66
Carga Tardía de Objetos............................................................................67
Patrones relacionados................................................................................70
Diego Montaldo
Guillermo Pantaleo
3
Diseño de Patrones de Arquitecturas Enterprise FI UBA
Patrones relacionados................................................................................74
Modelado del Dominio del Problema..........................................................75
Patrones relacionados................................................................................75
Acceso a la Capa de Negocio ....................................................................76
Presentación ..............................................................................................80
Relaciones Entre Todos los Patrones Analizados......................................82
Framework Desarrollado................................................................................84
Alternativa Reflection vs Generación de Código ........................................84
De la Arquitectura Propuesta al Framework..............................................84
Detalle de las API del framework ...............................................................86
Relaciones Entre Todos los Patrones Utilizados........................................93
Generador del Código para el Framework.....................................................95
Arquitectura ............................................................................................95
Tipos de Generadores Provistos ............................................................99
Caso de Estudio...........................................................................................101
Descripción del dominio ...........................................................................101
Modelo del Dominio..................................................................................101
Transición del análisis al diseño...............................................................102
Diagrama de Casos de Uso de sistema ...............................................102
Análisis de los Casos de Uso, Diagramas de Robustez .......................103
Paquetes Lógicos del Diseño Conceptual ............................................104
Diagrama de una arquitectura de tipo Enterprise .................................104
Uso del Framework ..................................................................................106
Resultados obtenidos al aplicar el framework ..........................................108
Trabajo Futuro .............................................................................................110
Conclusiones ...............................................................................................112
Apéndice Patrones.......................................................................................113
Patrones de Arquitectura de Aplicaciones de tipo Enterprise...................113
Identity Field .........................................................................................113
Foreign Key Mapping............................................................................113
Association Table Mapping...................................................................114
Domain Model.......................................................................................114
Transaction Script.................................................................................115
Table Module........................................................................................115
Service Layer........................................................................................116
Tabl
Comentarios de: Patrones de Diseño de Arquitecturas de Software Enterprise (0)
No hay comentarios