La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Patrones de Diseño de Arquitecturas de Software Enterprise

Presentaciones similares


Presentación del tema: "Patrones de Diseño de Arquitecturas de Software Enterprise"— Transcripción de la presentación:

1 Patrones de Diseño de Arquitecturas de Software Enterprise
Tesista: Diego Fernando Montaldo Director: Profesor Ing. Guillermo Pantaleo Noviembre 2005 Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

2 Objetivo Analizar los problemas que se plantean en el desarrollo de sistemas con arquitecturas enterprise. Examinar los patrones de diseño conocidos como solución a este tipo de problemas. Proponer una arquitectura que utilice, adapte e integre a estos patrones, obteniendo un framework de trabajo, que permita el desarrollo de una aplicación de tipo enterprise, teniendo resueltos a estos problemas típicos, permitiendo focalizarse en el problema del dominio del negocio en sí. Implementar el framework y permitir la construcción de una aplicación base completa sobre el mismo a partir del conocimiento del dominio. Objetivo Introducción Arquitecura Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Bueno, el objetivo fue analizar los problemas que existen en aplicaciones con arquitecturas de tipo enterprise. Este tipo de aplicaciones tienen complejidades inherentes las cuales ya fueron analizadas y hay una serie de patrones que brindan soluciones a estos problemas en un contexto dado. Quizas para un mismo problema vemos direfentes soluciones, de acuerdo a algunas variedades en el contexto. Por lo que se examinaron estos patrones existentes, (prinicpalemnte los presentados por Fowler, Gamma, Marinescu, en sus libros). En estos libros se analizan los patrones casi en forma individual, pero al haber varias posibles combinaciones de ellos, no presentan o proponen mas bien lo dejan a criterio del lector, su seleccion para uso en conjunto. La idea nuestra fue tratar de ver como se vinculan entre si, ya que al proponer la utilizacion de uno en particular, este afecta a la utilizacion de otro para otro problema, es decir hay decisiones que se toman al utilizar un patron, que inhabilitan o condicionan a la solucion a dar en otro problema vinculado. Como objetivo final la idea fue proponer una arquitectura, seleccionando estos patrones existentes, vinculandolos entre si, adaptandolos cuando fuera necesario para que puedan funcionar en conjunto, Donde esta arquitectura ya tenga analizado estos problemas y brinde soluciones, permitiendo a los diseñadores, desarrolladores, focalizarse en la resolución de los problemas del dominio y del negocio, que son a los que hay que brindar una solucion. Finalmente se implemento un framework en java que se adapta a la arquitectura propuesta y facilita el desarrollo de aplicaciones con estas carcteristicas. Es decir el mismo ya tiene resuelto en sus clases bases muchas de estas problematicas y permite al especializar ciertas clases darle el comportamiento faltante a la abstraccion del framework. Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

3 Introducción Características de los Sistemas de Tipo Enterprise
Entre las características salientes de un sistema de tipo enterprise, según [Rod Johnson, 2003], [Martin Fowler, 2003], [Marinescu 2002] se pueden mencionar las siguientes: Datos masivos (gran volumen) y persistentes. Lógica de negocio, lo que implica procesamiento de datos. Variedad de interfaces de usuario, lo que implica diversidad en la funcionalidad brindada. Objetivo Introducción Sistemas de Tipo Enterprise Arquitecura Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Dentro de lo que se denomina desarrollo de software se abarca el desarrollo de muchos sistemas, con caracteristicas totalmente diferentes y cada uno con distintas complejidades y distintos objetivos y para cada tipo de sistema se utiliza una estrategia diferente para su resolucion Entre las características salientes de un sistema de tipo enterprise, según [Rod Johnson, 2003], [Martin Fowler, 2003], [Marinescu 2002] se pueden mencionar las siguientes: 1) Manejan gran catidad de datos, masivos en gran volumne y que deben alamcenarse en algun medio persistente (donde este generalemtne es una base de datos relacional) 2) Poseen mucha Lógica de negocio, es decir, reglas asociadas al dominio o a la manera en que hacen uso de la informacion en el contexto del negocio analizado, lo que implica gran procesamiento de datos, verificando y aplicando estas reglas. 3) Gran Variedad de interfaces de usuario, lo que implica diversidad en la funcionalidad brindada. Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

4 5. Acceso concurrente, lo que implica gran cantidad de usuarios.
4. Integración con otros sistemas, lo que implica que comparten funcionalidad y / o datos. 5. Acceso concurrente, lo que implica gran cantidad de usuarios. Disonancia conceptual (modelo de datos con distintas visiones). Por lo general deben ser sistemas escalables y robustos. Objetivo Introducción Sistemas de Tipo Enterprise Arquitecura Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones 4. Integración con otros sistemas, lo que implica que comparten funcionalidad y / o datos. 5. Acceso concurrente, lo que implica gran cantidad de usuarios. 6. Disonancia conceptual (modelo de datos con distintas visiones), debido a que poseen un modelo de negocio subyacente que abarca distintos aspectos de un área de negocio. Por lo tanto prestan distintas funcionalidades a distintos tipos de usuarios. RECALCAR: Por sus características de crecimiento es importante en su diseño el concepto de escalabilidad y por la necesidad de prestar servicios en forma continua es importante el concepto de robustez. Ambos conceptos condicionan el diseño de la arquitectura de este tipo de sistemas. Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

5 Persistencia Presentación Arquitectura de Sistemas de Tipo Enterprise
Frameworks Algunos de ellos son: Persistencia EJB Entity beans JDBC SQLJ TopLink CocoBase Hibernate / nHibernate JPOX (JDO) Versant (JDO) OBJ Object Spaces Presentación Struts WebWork Tapestry Objetivo Introducción Sistemas de Tipo Enterprise Arquitectura Frameworks Arquitecura Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

6 Definiendo la Arquitectura
Criterios de Diseño Programación orientada a objetos Desacoplar lo más posible al modelo de dominio del resto de la aplicación Arquitectura basada en capas lógicas (Layer Pattern) Objetivo Introducción Arquitecura Criterios de Diseño Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

7 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Criterios de Diseño Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

8 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Criterios de Diseño Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

9 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Criterios de Diseño Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

10 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Criterios de Diseño Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

11 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Criterios de Diseño Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

12 Capas Lógicas Capa de Servicio – Service Layer Introducción
ServiceFactory Data Transfer Object Servicios Locales y/o Remotos Unidad de Trabajo (Unit Of Work) Objetivo Introducción Arquitecura Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

13 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Servicio Modelo de Dominio Persistencia Presentación Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

14 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Servicio Modelo de Dominio Persistencia Presentación Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

15 Capa de Modelo de Dominio - Domain Model Layer
Objetivo Introducción Arquitecura Capas Servicio Modelo del Dominio Persistencia Presentación Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

16 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Servicio Modelo del Dominio Persistencia Presentación Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

17 Capa de Persistencia – Persistence Layer
Algunos de los requerimientos buscados para la capa de persistencia son los siguientes [Scott Ambler 1] Manejar distintos tipos de mecanismos de persistencia (Single, Concrect, Class y Table Inheritance) Encapsular los mecanismos de persistencia (utilizando métodos al estilo: save(obj), delete(obj), create(obj), retrieve(obj)) Manejo de transacciones Identificación de objetos Utilización de Proxies Posibilidad de realizar consultas Interfaz IPersistenceBroker PersistenceBroker Factory PersistenceBrokerFactory Finders Objetivo Introducción Arquitecura Capas Servicio Modelo de Dominio Persistencia Presentación Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

18 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Servicio Modelo de Dominio Persistencia Presentación Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

19 Capa de Presentación – Presentation Layer
En este trabajo se utilizó como tecnología principal una interfaz web, a través del uso de un browser. Pero la capa de servicio, puede ser consumida desde cualquier tecnología vinculada, como clientes ricos, dispositivos móviles, etc Introducción PageController EntityManager Objetivo Introducción Arquitecura Capas Servicio Modelo de Dominio Persistencia Presentación Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

20 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Paquetes Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

21 Si se observa el código de la parte especializada se nota que la misma es repetitiva y que puede automatizarse. Reflection Generación de código Objetivo Introducción Arquitecura Capas Framework Paquetes Aspectos Relacionados Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

22 Aspectos Relacionados
Seguridad Autenticación y Autorización (Control de Acceso) Autenticación Autorización Seguridad al nivel Servidor de Presentación Seguridad al nivel Servidor de Aplicaciones Objetivo Introducción Arquitecura Capas Framework Paquetes Aspectos Relacionados Seguridad Concurrencia Transaccionabilidad Sesiones Auditoría Excepciones Despliegue Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

23 Concurrencia Implementación Transaccionabilidad Unit of Work Sesiones
Detección de errores Transaccionabilidad Unit of Work Sesiones Auditoría Excepciones Objetivo Introducción Arquitecura Capas Framework Paquetes Aspectos Relacionados Seguridad Concurrencia Transaccionabilidad Sesiones Auditoría Excepciones Despliegue Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

24 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Paquetes Aspectos Relacionados Seguridad Concurrencia Transaccionabilidad Sesiones Auditoría Excepciones Despliegue Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

25 Despliegue Objetivo Introducción Arquitecura Capas Framework Patrones
Paquetes Aspectos Relacionados Seguridad Concurrencia Transaccionabilidad Sesiones Auditoría Excepciones Despliegue Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

26 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Paquetes Aspectos Relacionados Seguridad Concurrencia Transaccionabilidad Sesiones Auditoría Excepciones Despliegue Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

27 Patrones Utilizados Identidad - Identity Field
Asociaciones – Foreing Key Mapping Lógica de Negocio – Domain Model Mapeos de objetos a tablas Single, Class , Concrete Table Inheritance Inheritance Mappers Consistencia Identity Map Unidad de Trabajo Unit Of Work Acceso a Servicios Comunes Registry Acceso a los Datos Persistentes Data Mapper – Separated Interface, Lazy Load Control de Concurrencia Optimistic offline lock Remote Façade, Data Transfer Objects Ajax – Active Front - PageController Objetivo Introducción Arquitecura Capas Framework Patrones Identity Field Asociaciones Mapeos de Objetos a Tablas Consistencia Unit Of Work Registry Acceso a Datos Concurrencia Ajax - Active Front Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

28 Relaciones entre los patrones
Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

29 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

30 Generador de Código El generador de código genera, a partir de información de las clases de dominio, las clases que especializan a las clases base de framework Por ejemplo Objetivo Introducción Arquitecura Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

31 Objetivo Introducción Arquitecura Capas Framework Patrones Generador
Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

32 Caso de Estudio Descripción del dominio
Una empresa gráfica administra sus trabajos en Ordenes de Trabajo. Cada Orden de trabajo esta compuesta por Procesos, por ejemplo la Orden de Trabajo con nombre “Revista Noticiero”, esta compuesta por 2 procesos, uno de “Filmación” y otro de “Ploteo”. Todos los procesos deben realizarse para poder terminar la orden de trabajo. Cada proceso esta asignado a un Turno de trabajo. Los turnos de trabajo son tres, “mañana”, “tarde” y “noche”. Cada Turno esta compuesto por empleados de la empresa. Cada proceso puede tener una nota asociada, un Solicitante, y posee un conjunto de componentes, los componentes del trabajo, por ejemplo, la “tapa”, el “interior”, sus “pliegos”, etc Cada proceso tiene un “estado”, cuando todos los procesos de una orden están terminados, entonces la orden de trabajo estará terminada. Cada proceso tiene un tiempo asignado para su resolución. La orden de trabajo es para un cliente dado y tiene asociados un conjunto de materiales. Se almacenan la información asociada a los clientes y empleados, como domicilio, cuit, y teléfono. Objetivo Introducción Arquitecura Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

33 Transición del Análisis al diseño Casos de Uso
Objetivo Introducción Arquitecura Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

34 Modelo de Dominio Objetivo Introducción Arquitecura Capas Framework
Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

35 Trabajo a Futuro Agregar otros protocolos de comunicación entre capas
Agregar otras formas de mapeo de herencia de objetos a relacional Clustering Administración de pool conexiones Mejorar administración de colecciones en el dominio Integración con herramientas estándar (IDEs, Eclipse, EA, etc) Mejorar la dinámica de generación ( refactoring del dominio y adaptación automática de la base) Auditoría Generación automática de otras interfaces de presentación Optimización de interacción con el motor de base de datos Objetivo Introducción Arquitecura Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

36 Conclusiones Separación en Capas Uso de Patrones Uso de frameworks
Separar problemas, trabajar en paralelo con diferentes roles. Uso de Patrones Permite hablar con mayor claridad y alto nivel a los participantes del desarrollo. No reinventar la rueda. Tener alternativas útiles a problemas conocidos. Uso de frameworks Facilitan el desarrollo de una aplicación, start up rápido, foco en el probleba del negocio. Objetivo Introducción Arquitecura Capas Framework Patrones Generador Caso de Estudio Trabajo a Futuro Conclusiones La separacion en capas, permite separar los problemas, encapsulandolos, permitiendo tener en un solo lugar todo lo relacionado a un tema, permitiendo mejorarlo, mantenerlo y optimizarlo mas facilmente. cuidado con la eleccion de frameworks, ya que un problema tipico es usar un framewirk porque sin sin haber analizado si eraconveniente o no, ya que todo framework, esta pensado para un tipo de aplicacion y bajo cierto contexto, por lo que el uso de un framework que no aplica a nuestra problematica o contexto puede resultar una mala experiencia, dificultando el desarrollo, resolviendo aplicaciones simples, con soluciones mounstrosas que son buenas, pero en este contexto no lo son. etc Diseño de Patrones de Arquitecturas de Software Enterprise Tesista : Diego Montaldo - Director : Guillermo Pantaleo

37 Demo Diseño de Patrones de Arquitecturas de Software Enterprise
Tesista : Diego Montaldo - Director : Guillermo Pantaleo


Descargar ppt "Patrones de Diseño de Arquitecturas de Software Enterprise"

Presentaciones similares


Anuncios Google