tesis final - connecting repositories · 2020. 7. 22. · • dependiendo de capacidad de proceso...

68
Título Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise Alumnos Tesis Final Alumnos Bottero, Sebastian Eduardo García, Nicolás Javier Director Gustavo Rossi 1 Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise brought to you by CORE View metadata, citation and similar papers at core.ac.uk provided by El Servicio de Difusión de la Creación Intelectual

Upload: others

Post on 31-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Título

Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Alumnos

Tesis Final

Alumnos

Bottero, Sebastian Eduardo

García, Nicolás Javier

Director

Gustavo Rossi

1Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

brought to you by C

OR

EV

iew m

etadata, citation and similar papers at core.ac.uk

provided by El S

ervicio de Difusión de la C

reación Intelectual

Page 2: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Tesis Final

Manipulación de objetos persistentes en clientes de

2Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

persistentes en clientes de Aplicaciones Enterprise

Page 3: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

• Solución• Solución

• Contribuciones

3Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 4: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Introducción

Sistemas de información Enterprise

• Conjunto de sistemas de computación que

permiten a una empresa u organización:

– Integrar y coordinar sus procesos de negocios

4Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Integrar y coordinar sus procesos de negocios

– Compartir información por todos los niveles de la

jerarquía de administración

– Eliminar los problemas originados por la

fragmentación de la información que se genera al

utilizar múltiples sistemas de información

Page 5: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Aplicaciones Enterprise

• Son parte fundamental de los sistemas de

Información Enterprise

• Sus principales objetivos a satisfacer son:

Introducción

5Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

• Sus principales objetivos a satisfacer son:

– Mejorar sus procesos en eficiencia y productividad

– Unificar la manera de relacionar la información,

sus recursos humanos, tecnológicos y de

infraestructura

Page 6: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Introducción

• En este tipo de aplicaciones encontramos

distintos objetos que modelan conceptos del

dominio donde:

– Su volumen de información es elevado y por

6Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Su volumen de información es elevado y por

ende son naturalmente profundos y de

gran tamaño

– Deben ser persistentes en el tiempo

Page 7: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Introducción

– Son accedidos de manera concurrente

– Son consultados y/o modificados por

cientos de usuario

7Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Interactúan con gran cantidad de interfaces

de usuario

– Deben ser manejados dentro de un tiempo

de respuesta razonable

Page 8: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Objetivos

Analizar los Sistemas Enterprise e identificar los

problemas recurrentes y requerimientos no

8Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

problemas recurrentes y requerimientos no

funcionales que surgen de implementar

clientes para este tipo de aplicaciones sobre

una arquitectura Cliente Servidor

Page 9: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Objetivos

Definir una manera de especificar información

9Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Definir una manera de especificar información

sobre el comportamiento de las instancias de

los objetos de dominio en la componente

cliente, para ser luego interpretada

Page 10: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Objetivos

Diseñar un framework para interpretar la

información y resolver cada uno de los

problemas analizados, que se producen al

10Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

problemas analizados, que se producen al

manipular los objetos del dominio en el

cliente de Aplicaciones Enterprise, para su

visualización, utilización, modificación y

posterior persistencia de los cambios.

Page 11: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

– Requerimientos funcionales y no funcionales

– Arquitectura de Software– Arquitectura de Software

– Transferencia del modelo de Entidades

• Análisis del Problema

• Solución

• Contribuciones

11Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 12: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Derivan mayormente del dominio al cual está

orientada la empresa u organización

• Las Aplicaciones Enterprise por lo general

tienen como base las siguientes

Requerimientos Funcionales

tienen como base las siguientes

características:

– La información debe estar integrada

– Manejo de objetos del negocio de gran tamaño

– Log de operaciones

– Multimoneda

12Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 13: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Como consecuencia de las características

inherentes a las Aplicaciones Enterprise de

gran tamaño y de los requerimientos

Requerimientos No Funcionales

gran tamaño y de los requerimientos

funcionales, aparecen los requerimientos no

funcionales Performance

13Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 14: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

– Performance

– Capacidad y Escalabilidad

– Usabilidad

– Adaptabilidad al cambio de reglas de negocio

– Portabilidad a través de plataformas

Requerimientos No Funcionales

– Portabilidad a través de plataformas

– Seguridad

– Control de acceso, contraseña única y

encriptación

– Alta Disponibilidad

– Mantenibilidad

14Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 15: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

– Hot deploy

– Autonomía del usuario

– Descentralización de operaciones

– Modos de Operación

– Normal y mantenimiento

Requerimientos No Funcionales

– Normal y mantenimiento

– Uso de Red

– Facilidad de Instalación

– Múltiples ambientes

– Integración con sistemas legacy

15Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 16: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

– Requerimientos funcionales y no funcionales

– Arquitectura de Software– Arquitectura de Software

– Transferencia del modelo de Entidades

• Análisis del Problema

• Solución

• Contribuciones

16Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 17: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura de software

• Si bien existen muchas definiciones, se puede

observar que hay dos elementos que se repiten

– Descomposición de alto nivel que divide al

sistema en sus partes

17Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Decisiones que son difíciles de cambiar

• Contribuye a establecer los fundamentos de la

plataforma de desarrollo a la que pertenece

• Define de manera abstracta los componentes, sus

interfaces y la comunicación entre ellos

Page 18: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Dependiendo de capacidad de proceso que posea en

comparación al servidor, se pueden clasificar en:

• Pesado ( Cliente de Mail )

– Mayor capacidad de proceso, interfaces nativas,

almacenamiento.

Clientes

almacenamiento.

• Híbridos ( Nuevas tecnologías WEB )

– Capacidad de procesar datos enviados por el servidor

• Livianos ( Viejos navegadores WEB )

– Sin capacidad de procesamiento, recoge los datos del

usuario, se los envía al servidor, y mostrar una respuesta

18Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 19: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

– Requerimientos funcionales y no funcionales

– Arquitectura de Software– Arquitectura de Software

– Transferencia del modelo de Entidades

• Análisis del Problema

• Solución

• Contribuciones

19Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 20: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Transferencia del modelo de Entidades

• Modelo de entidades – Abstracciones de

entidades reales o elementos internos del

sistema

– Persistentes

20Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Persistentes

– Transferidas entre el cliente y el servidor

• El objetivo es interactuar con una entidad

transferida como se lo hace con una local

Page 21: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Transferencia del modelo de Entidades

• Interfaces

– Grano fino -> problemas en ambiente remoto

– Grano grueso en los límites de distribución

(Servicios)

21Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

(Servicios)

• Data Transfer Object

– Reducción del número de llamadas remotas ->

Mejora del rendimiento

– Posible explosión de clases -> Esfuerzo adicional

de codificación

Page 22: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Detach Objects (fuera del “contexto origen”)

– Interactuar con objetos como en el servidor

– Profundidad de los datos enviados - Acceso

concurrente

Transferencia del modelo de Entidades

22Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

concurrente

• Dynamic Transfer Object - DyTO

– Evitar generación de los DTO con un modelo

dinámico (Mapa de Propiedades)

– Modelo declarativo para la “populación” de datos

– Proxy para interactuar con interface original

Page 23: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

– Concurrencia

– Transacciones largas

– Objetos de gran tamaño (carga por demanda)

– Deshacer operaciones

• Solución

• Contribuciones

23Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 24: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Problemas al trabajar con la misma entidad al

mismo tiempo

– Se soluciona permitiendo trabajar sólo a un

proceso con la misma entidad

Concurrencia

24Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

proceso con la misma entidad

– Se reduce cantidad de actividad

concurrente

• Soluciones

– Aislamiento - Datos inmutables

Page 25: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Concurrencia (cont.)

• Imposible aislar los datos -> Políticas de

Lockeo

– Lockeo Optimista - “detecta” los problemas

– Lockeo Pesimista - “previene” los

25Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Lockeo Pesimista - “previene” los

problemas

• Elección dependiendo de la frecuencia y la

severidad de los conflictos

Page 26: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

– Concurrencia

– Transacciones largas

– Objetos de gran tamaño (carga por demanda)

– Deshacer operaciones

• Solución

• Contribuciones

26Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 27: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Transacciones largas

• Transacción de sistema

– Aplicación -> BD

• Transacción de negocios

27Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

• Transacción de negocios

– Usuario -> Aplicación

• Transacciones largas

– Más de un ciclo pedido/respuesta al servidor

– Propiedades ACID

Page 28: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Transacciones largas (cont.)

• Una conexión de BD por transacción

– Poca escalabilidad

• Impide el uso del mecanismo de loqueo

28Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

• Impide el uso del mecanismo de loqueo

pesimista provisto por la base de datos

• Patrón de concurrencia offline

– Se delega el soporte ACID a la aplicación

– Partir transacción larga en varias de sistema

Page 29: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

– Concurrencia

– Transacciones largas

– Objetos de gran tamaño (carga por demanda)

– Deshacer operaciones

• Solución

• Contribuciones

29Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 30: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Objetos de gran tamaño

• Muchos colaboradores con grafos profundos

• Colecciones con elevada cant. de elementos

• Carga de todos los objetos relacionados

– Evita cargar objetos colaboradores de manera

30Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Evita cargar objetos colaboradores de manera

explicita

• Carga por demanda

– Cargar objetos sólo cuando son necesarios

– Analizar objetos que se recuperan en la misma

operación

Page 31: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

– Concurrencia

– Transacciones largas

– Objetos de gran tamaño (carga por demanda)

– Deshacer operaciones

• Solución

• Contribuciones

31Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 32: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Deshacer operaciones

“El software que permite deshacer es software en el

que puedes confiar”

• Beneficios del Undo

– Alivio de las preocupaciones

– Una forma de reducir la complejidad

32Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Una forma de reducir la complejidad

– Un método para construir la confianza

• Durante una transacción larga, y en forma previa a la

confirmación de la operación, debe permitirse volver

atrás con algunos cambios realizados.

Page 33: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

• Solución• Solución

– Plataforma de desarrollo

– Framework propuesto

– Arquitectura del Framework

– Meta-Información

• Contribuciones

33Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Transacciones largas

– Manejo de concurrencia

– Deshacer cambios

– Referencias Lazy y carga por

demanda

Page 34: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Conjunto de frameworks y servicios que:

– Proveen una forma sencilla y coherente de

integrar las distintas funcionalidades a

desarrollar

Plataforma de desarrollo

desarrollar

– Definen los lineamientos y las pautas de

desarrollo y ayudan a estandarizarlo

– Dan solución a los distintos problemas que

se presentan en el proceso de desarrollo de

Aplicaciones Enterprise

34Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 35: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

• Solución• Solución

– Plataforma de desarrollo

– Framework propuesto

– Arquitectura del Framework

– Meta-Información

• Contribuciones

35Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Transacciones largas

– Manejo de concurrencia

– Deshacer cambios

– Referencias Lazy y carga por

demanda

Page 36: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Framework Propuesto

• Resolver la transferencia de información entre

las capas de la arquitectura

– Manteniendo desacopladas la capa de

presentación del resto de las capas

Lidiando con los problemas inherentes al manejo

36Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Lidiando con los problemas inherentes al manejo

de objetos persistentes en el cliente

• Naturaleza estructural

– Resuelve un problema tecnológico

– No se origina de los requerimientos funcionales

del sistema

Page 37: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Framework Propuesto

• Satisface una serie de requerimientos

destinados a brindar una mayor flexibilidad en

su uso

– Paginado de colecciones de objetos

37Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Orden y filtro en colecciones paginadas

– Límite para colecciones

– Chequeo de integridad

Page 38: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

• Solución• Solución

– Plataforma de desarrollo

– Framework propuesto

– Arquitectura del Framework

– Meta-Información

• Contribuciones

38Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Transacciones largas

– Manejo de concurrencia

– Deshacer cambios

– Referencias Lazy y carga por

demanda

Page 39: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura del Framework

• El framework está organizado en capas de

niveles de abstracción.

• Cada capa delega la comunicación en la capa

inmediatamente inferior.

39Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

inmediatamente inferior.

• Cada capa se basa en las abstracciones

provistas por su inmediata inferior,

permitiendo atacar un problema cada vez

Page 40: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura del Framework (cont.)

Capa CRUD

DyTO DyTO

40Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Capa CRUD

Capa Dyto

Capa STO

Page 41: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura del Framework (cont.)

Capa de State Transfer Objects

• Se encarga de:

– Crear los objetos de transferencia entre el

servidor y el cliente a partir de descriptores de

41Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

servidor y el cliente a partir de descriptores de

propiedades

– Modificar un objeto de dominio mediante el

procesamiento del log de modificaciones

• Es la que interactúa con la capa de

persistencia o repositorio de objetos

Page 42: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura del Framework (cont.)

Capa de State Transfer Objects

42Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 43: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura del Framework (cont.)

Capa de DyTOs

• Se encarga de:

– Mantener el log de modificaciones realizadas

– Resolver la carga por demanda

43Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Resolver la carga por demanda

– Contener atributos calculados

• Es la responsable del manejo de los objetos de

transferencia de datos dinámicos (DyTOs)

Page 44: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura del Framework (cont.)

Capa de DyTOs

44Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 45: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura del Framework (cont.)

Capa de Servicios CRUD

• Se encarga de:

– Proveer una interfaz para realizar operaciones

CRUD

45Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

CRUD

– Brindar una abstracción de los objetos de

transferencia

• Es la capa con la cual interactúa el usuario del

framework

Page 46: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura del Framework (cont.)

Capa de Servicios CRUD

46Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 47: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura del Framework (cont.)Operación RETRIEVE

47Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 48: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Arquitectura del Framework (cont.)Operación SAVE

48Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 49: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

• Solución• Solución

– Plataforma de desarrollo

– Framework propuesto

– Arquitectura del Framework

– Meta-Información

• Contribuciones

49Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Transacciones largas

– Manejo de concurrencia

– Deshacer cambios

– Referencias Lazy y carga por

demanda

Page 50: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Permite indicar cómo y de qué manera hacer el

mapeo de los objetos del modelo de dominio a los

DyTOs que se envían al cliente

• Qué propiedades del objeto de dominio se llevan al

cliente

Meta-Información

cliente

– Simples

– Calculadas

– DyTO

– Colección

50Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 51: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Mecanismo para dar información adicional sobre

cierto tipo de propiedades

– Carga de Entidades o Colecciones por demanda

(lazy)

– Tamaño de página y orden en las colecciones

Meta-Información (cont.)

– Tamaño de página y orden en las colecciones

– Etc.

• Un DyTO toma sus datos a partir único objeto de

dominio principal, pudiendo combinar (o aplanar)

información de todos los objetos relacionados con él

51Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 52: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

• Solución• Solución

– Plataforma de desarrollo

– Framework propuesto

– Arquitectura del Framework

– Meta-Información

• Contribuciones

52Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Transacciones largas

– Manejo de concurrencia

– Deshacer cambios

– Referencias Lazy y carga por

demanda

Page 53: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Operaciones que tienen características de

transacciones largas o de negocios, es decir,

que abarcan más de un ciclo pedido-respuesta

al servidor de aplicaciones

Transacciones largas

• Cada DyTO posee su propia Unit of Work en

donde se registran todas las operaciones que

se realizan sobre él, utilizando Comandos

53Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 54: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

– Se registran todas las operaciones que se realizan

– Orden preciso en el cual cada DyTO del grafo fue

modificado -> índice único de comandos

Transacciones largas (cont.)

– Al finalizar la transacción se arma un único log ->

todos los comandos ordenados según el índice

– Un tipo de comando distinto para cada tipo de

operación

54Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 55: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Transacciones largas (cont.)

55Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 56: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

• Solución• Solución

– Plataforma de desarrollo

– Framework propuesto

– Arquitectura del Framework

– Meta-Información

• Contribuciones

56Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Transacciones largas

– Manejo de concurrencia

– Deshacer cambios

– Referencias Lazy y carga por

demanda

Page 57: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Se enriquece el mecanismo provisto por los

frameworks de persistencia

– Al modificar un objeto en el cliente, se

“marca” el DyTO correspondiente

Manejo de concurrencia

“marca” el DyTO correspondiente

(TouchCommand)

– Por defecto, no afecta a los objetos

colaboradores, salvo al agregar elementos a

sus colecciones

57Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 58: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Lockeo Optimista

– En el servidor se aplican los TouchCommand

y se verifica la versión del objeto con

respecto a la referencia

Manejo de concurrencia (cont.)

respecto a la referencia

– Si alguna de las versiones no concuerda, se

aborta la transacción

58Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 59: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

• Solución• Solución

– Plataforma de desarrollo

– Framework propuesto

– Arquitectura del Framework

– Meta-Información

• Contribuciones

59Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Transacciones largas

– Manejo de concurrencia

– Deshacer cambios

– Referencias Lazy y carga por

demanda

Page 60: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Volver atrás cambios en una transacción de

negocio que involucre varias pantallas

– El mecanismo elegido es la definición de

checkpoints (basado en el concepto de

Deshacer cambios

checkpoints (basado en el concepto de

UOW)

– Por cada cambio en el DyTO, se generan

comandos de acciones inversas y se

guardan en el checkpoint

60Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 61: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

– Si se cancela, se vuelve atrás el estado de

los DyTOs ejecutando los comandos

inversos contenidos en el checkpoint actual

– Cuando se aceptan los cambios, el

Deshacer cambios (cont.)

– Cuando se aceptan los cambios, el

checkpoint se ignora

– Posibilidad de definir varios checkpoints

61Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 62: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

• Solución• Solución

– Plataforma de desarrollo

– Framework propuesto

– Arquitectura del Framework

– Meta-Información

• Contribuciones

62Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Transacciones largas

– Manejo de concurrencia

– Deshacer cambios

– Referencias Lazy y carga por

demanda

Page 63: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Ventaja con respecto a implementaciones del

patrón DTO

– Propiedades con “referencias” a otros DyTOs

– Se reemplazan por DyTOs construidos bajo

Carga por demanda - Referencias Lazy

– Se reemplazan por DyTOs construidos bajo

demanda

– Se invoca al servidor, se construye el DyTO y se

reemplaza la referencia por el DyTO

– Además se agrega el DyTO al Identity Map

63Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 64: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Temario

• Introducción

• Contexto

• Análisis del Problema

• Solución• Solución

• Contribuciones

64Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 65: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Se detalló el origen de gran parte de

problemas y requerimientos no funcionales

• Se plantearon alternativas de solución a cada

Contribuciones

• Se plantearon alternativas de solución a cada

uno de estos problemas

• Se definió un framework que da soporte, de

manera transparente, a todos estos temas

utilizando soluciones "exitosas”65Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

Page 66: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Además, al utilizar el framework propuesto:

– Estandarizamos el desarrollo

– Mejoramos la productividad del desarrollo

– Mejoramos la calidad de los productos

Contribuciones

66Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

– Mejoramos la calidad de los productos

desarrollados

– Simplificamos el futuro mantenimiento de las

aplicaciones desarrolladas

– Eliminamos la dificultad de cumplir con los

requerimientos no funcionales

Page 67: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

• Lenguaje específico para meta información (DSL)

– Implementación del código de configuración

– Si es externo, librería para su interpretación

• Implementación integral del Framework

Trabajo Futuro

67Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

• Implementación integral del Framework

• Arquitectura dirigida por modelos (MDA)

– Modelos independientes y específicos de la

plataforma (PIM y PSM)

– Transformaciones necesarias para definir una

MDA sobre la solución provista

Page 68: Tesis Final - COnnecting REpositories · 2020. 7. 22. · • Dependiendo de capacidad de proceso que posea en comparación al servidor, se pueden clasificar en: • Pesado ( Cliente

Preguntas?

Thank you!!

Yeap, it's something like that. I hope I can

survive :-)

I guess Wanda and the Glow Team are going to

68Manipulación de objetos persistentes en clientes de Aplicaciones Enterprise

I guess Wanda and the Glow Team are going to

come. They know where is the school at. If you

wanna go, you can ask or join them. Jorge

knows too.