SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
XTrade
Arquitectura de un Sistema
Financiero Complejo
Gabriel Omar Cotelli
g.cotelli@mercapsoftware.com
Agenda
●¿Qué es un Sistema Financiero?
●¿Por qué es complejo?
●Objetivos que nos Propusimos
○Soluciones Estandar a dichos Objetivos
○Nuestra Solución
■Arquitectura de Sistemas
■Workflow
○Un Resultado inmediato:
■Auditoria
●Conclusiones
Introducción
¿Quiénes somos?
●Mercap
○Empresa de desarrollo de software financiero
○12 años desarrollando sistemas con Smalltalk
○Productos:
■Unitrade Bancos
■XTrade Fondos, AFJPs, Seguros, etc.
○Desarrollo con metodologías ágiles
¿Qué es un Sistema Financiero?
Sucursales
Bloomberg
Siopel
¿Por qué es complejo?
●Funcional:
○Muchos usuarios concurrentes
○Múltiples Transacciones
○Integración variada
○On-Line / Batch
●Desarrollo:
○11.825 Clases
○650.616 Líneas de Código
○15.424 Casos de Test de Unidad
Objetivos
Objetivos de Arquitectura
●Facilitar la interacción entre
○Departamentos del cliente
○Con sistemas existentes
●Escalable y Confiable
●Permitir que cada cliente tenga sus propios
procesos de negocio
●Poder asignar roles y permisos a cada tarea
dentro de un proceso de negocio
●Tener una auditoria de procesos detallada
●Otros Objetivos relacionados con el negocio
Objetivos de Desarrollo
●Que la extensión del sistema sea mediante la
creación de nuevos objetos, nuevos módulos
●Aislar la funcionalidad de negocio del núcleo del
sistema
●Separación de asuntos transaccionales de la
lógica de negocio
●Poder correr el sistema indistintamente en
Visual Age Smalltalk y GemStone/S
●Código único para todos los clientes
●Otros relacionados con diseño y metodología
Solución estándar
Código por cada cliente
registerPurchase: aPurchase
self registerAsPending:aPurchase.
self askForConfirmationOf: aPurchase.
self settle: aPurchase
registerPurchase: aPurchase
self registerAsPending: aPurchase.
self confirm: aPurchase.
Cliente
A
Cliente
B
registerPurchase: aPurchase
…..
Otros Clientes
Código único con decisiones
explícitas
registerPurchase: aPurchase
self registerAsPending:aPurchase.
(client = #ClientA)
ifTrue: [
self askForConfirmationOf: aPurchase.
self settle: aPurchase].
(client = #ClientB)
ifTrue: [
self confirm: aPurchase]
…. “More clients…”
Problemas
●Costoso de mantener
●Difícil compartir mejoras o arreglos entre
clientes
●Cambios en un cliente pueden afectar a
otro cliente
●Etc…
●En conclusión: Solución sin utilizar objetos
Solución 1:
Arquitectura modular
dividida en sistemas
Objetivos a nivel sistema
●Facilitar la interacción entre
○Departamentos del cliente
○Con sistemas existentes
●Escalable y Confiable
●Permitir que cada cliente tenga sus propios
procesos de negocio
●Poder asignar roles y permisos a cada tarea
dentro de un proceso de negocio
●Tener una auditoria de procesos detallada
●Otros Objetivos relacionados con el negocio
Objetivos de Desarrollo
●Que la extensión del sistema sea mediante la
creación de nuevos objetos, nuevos módulos
●Aislar la funcionalidad de negocio del núcleo del
sistema
●Separación de asuntos transaccionales de la
lógica de negocio
●Poder correr el sistema indistintamente en
Visual Age Smalltalk y GemStone/S
●Código único para todos los clientes
●Otros relacionados con diseño y metodología
Diseño
●Sistema: objeto que encapsula funcionalidad de
alto nivel. Ejemplo:
○Sistema de Clientes
○Sistema de Cotizaciones
●Cumplen con una interfaz específica
●Pueden existir distintas implementaciones
dependiendo del cliente. Ejemplo:
○Sistema de Cotizaciones de Bloomberg
○Sistema de Cotizaciones de Reuters
Diseño
●XTrade es una composición dinámica de
Sistemas que:
○Agrupa la instalación específica del cliente
○Permite cambiar dicha instalación on-the-fly
●Se conocen entre sí por un mecanismo de
dependencias que:
○Asegura la correcta configuración de la
implementación
○Permite un inicio y detención seguro y armonioso
Demostración Práctica
Resultado
XTrade
Sist. de
Tiempo
Sist. de
Bonos
CotizacionesBloo
mberg
Sist. de
Workflow
Instalación Cliente A
XTrade
Sist. de
Tiempo
CotizacionesReute
rs
Sist. de
Workflow
Instalación Cliente B
Solución 2:
Workflow Embebido
Objetivos a nivel sistema
●Facilitar la interacción entre
○Departamentos del cliente
○Con sistemas existentes
●Escalable y Confiable
●Permitir que cada cliente tenga sus propios
procesos de negocio
●Poder asignar roles y permisos a cada tarea
dentro de un proceso de negocio
●Tener una auditoria de procesos detallada
●Otros Objetivos relacionados con el negocio
Objetivos de Desarrollo
●Que la extensión del sistema sea mediante la
creación de nuevos objetos, nuevos módulos
●Aislar la funcionalidad de negocio del núcleo del
sistema
●Separación de asuntos transaccionales de la
lógica de negocio
●Poder correr el sistema indistintamente en
Visual Age Smalltalk y GemStone/S
●Código único para todos los clientes
●Otros relacionados con diseño y metodología
¿Qué es un Workflow?
●La automatización de un proceso de
negocio en el cual la información,
documentos o tareas son pasadas de un
actor a otro para que este tome acciones
de acuerdo a los procedimientos definidos
por la organización
Ejecución de un proceso de
Workflow
Registrar
Compra de
Acciones
Liquidar
Compra
Enviar Mail
notificando
Confirmación
Confirmar
Compra de
Acciones
confirmad
a
rechazad
a
Ejecución de un proceso de
Workflow
Registrar
Compra de
Acciones
Liquidar
Compra
Enviar Mail
notificando
Confirmación
Confirmar
Compra de
Acciones
confirmad
a
rechazad
a
Front Office
Ejecución de un proceso de
Workflow
Registrar
Compra de
Acciones
Liquidar
Compra
Enviar Mail
notificando
Confirmación
Confirmar
Compra de
Acciones
confirmad
a
rechazad
a
Ejecución de un proceso de
Workflow
Registrar
Compra de
Acciones
Liquidar
Compra
Enviar Mail
notificando
Confirmación
Confirmar
Compra de
Acciones
confirmad
a
rechazad
a
Middle Office
Ejecución de un proceso de
Workflow
Registrar
Compra de
Acciones
Liquidar
Compra
Enviar Mail
notificando
Confirmación
Confirmar
Compra de
Acciones
confirmad
a
rechazad
a
Ejecución de un proceso de
Workflow
Registrar
Compra de
Acciones
Liquidar
Compra
Enviar Mail
notificando
Confirmación
Confirmar
Compra de
Acciones
confirmad
a
rechazad
a
Ejecución de un proceso de
Workflow
Registrar
Compra de
Acciones
Liquidar
Compra
Enviar Mail
notificando
Confirmación
Confirmar
Compra de
Acciones
confirmad
a
rechazad
a
Actor Automatizado Back Office
Ejecución de un proceso de
Workflow
Registrar
Compra de
Acciones
Liquidar
Compra
Enviar Mail
notificando
Confirmación
Confirmar
Compra de
Acciones
confirmad
a
rechazad
a
Ejecución de un proceso de
Workflow
Registrar
Compra de
Acciones
Liquidar
Compra
Enviar Mail
notificando
Confirmación
Confirmar
Compra de
Acciones
confirmad
a
rechazad
a
Demostración práctica: Editor
de Procesos de Workflow
Workflow de XTrade
Actores Interactivos
Actor
Automatizado
Actor
Automatizado
Demostración práctica
Escalabilidad
Cliente
Cliente
Cliente
Server
Escalabilidad
Cliente
Cliente
Cliente
Server
Cliente Cliente Cliente
Server
Escalabilidad
Cliente
Cliente
Cliente
Server
Cliente Cliente Cliente
Server
Cliente
Server
Conclusiones
●Se puede mantener el código único sin
decisiones explícitas en el mismo
●Al no estar hardcodeados los procesos de
la organización en el código permite
cambiarlos sin necesidad de nuevas
versiones
●Simplemente se reificaron conceptos que
antes no lo estaban
Un beneficio directo:
Auditoria
Objetivos a nivel sistema
●Facilitar la interacción entre
○Departamentos del cliente
○Con sistemas existentes
●Escalable y Confiable
●Permitir que cada cliente tenga sus propios
procesos de negocio
●Poder asignar roles y permisos a cada tarea
dentro de un proceso de negocio
●Tener una auditoria de procesos detallada
●Otros Objetivos relacionados con el negocio
Alternativas
●Codificar logging dentro de cada método
donde se quiera loguear
●Utilizar aspectos (pero…hay que definir
pointcuts, joinpoints, advices, etc….
mucho lio)
Nuestra solución
●Todo lo que un actor hace en el sistema
es ejecutar procesos
●Por ende, la auditoria consiste en guardar
la historia de ejecución de los procesos y
actividades de Workflow
●Reificación de la historia de procesos
Auditoria de un proceso en
ejecución
a
WorkflowHistor
ian
workflow
System
a Process
History Recorder
a Running
Process
historian
process
Demostración práctica
Conclusiones finales
●Arquitectura escalable
●Código único
●Configuraciones por cliente
●Menor costo de mantenimiento
●Desarrolladores más felices
¿Preguntas?

Más contenido relacionado

Destacado

Curso de Alta Formación en Marketing para Empresas de Servicios
Curso de Alta Formación en Marketing para Empresas de ServiciosCurso de Alta Formación en Marketing para Empresas de Servicios
Curso de Alta Formación en Marketing para Empresas de ServiciosUnibo
 
Examen trimestra diego reyes
Examen trimestra  diego reyesExamen trimestra  diego reyes
Examen trimestra diego reyesDiego Reyes
 
Status Www Undersøgelse Udenpix
Status Www Undersøgelse UdenpixStatus Www Undersøgelse Udenpix
Status Www Undersøgelse UdenpixElisabeth Tejlmand
 
Brand boost by wildtangent
Brand boost by wildtangentBrand boost by wildtangent
Brand boost by wildtangentWildTangent
 
Servicio Eiden : Opinan nuestros clientes
Servicio Eiden : Opinan nuestros clientesServicio Eiden : Opinan nuestros clientes
Servicio Eiden : Opinan nuestros clientesSantiago Trevisán
 
2012 Email Evolution Sneak Peak Webinar: Part 1
2012 Email Evolution Sneak Peak Webinar: Part 12012 Email Evolution Sneak Peak Webinar: Part 1
2012 Email Evolution Sneak Peak Webinar: Part 1Vivastream
 
(Self) Publishing
(Self) Publishing(Self) Publishing
(Self) PublishingVlad Micu
 
Update on the ELIXIR UK node by Chris Ponting
Update on the ELIXIR UK node by Chris PontingUpdate on the ELIXIR UK node by Chris Ponting
Update on the ELIXIR UK node by Chris PontingELIXIR UK
 
Profile.e (yuki sato)0529
Profile.e (yuki sato)0529Profile.e (yuki sato)0529
Profile.e (yuki sato)0529Sato Yuki
 
Droidcon ES '16 - How to fail going offline
Droidcon ES '16 - How to fail going offlineDroidcon ES '16 - How to fail going offline
Droidcon ES '16 - How to fail going offlineJavier de Pedro López
 
Dios es mi Guía
Dios es mi GuíaDios es mi Guía
Dios es mi Guíaadeni11
 
Parroquia de San Pedro y San Pablo (Cabanillas del Campo)
Parroquia de San Pedro y San Pablo (Cabanillas del Campo)Parroquia de San Pedro y San Pablo (Cabanillas del Campo)
Parroquia de San Pedro y San Pablo (Cabanillas del Campo)Javier Lozano
 
1 year with ROM on production
1 year with ROM on production1 year with ROM on production
1 year with ROM on productionOskar Szrajer
 
Catálogo cement design 2014 low size
Catálogo cement design 2014 low sizeCatálogo cement design 2014 low size
Catálogo cement design 2014 low sizemarketingcementdesign
 
Tupperware may 2014
Tupperware may 2014Tupperware may 2014
Tupperware may 2014Akmal Ishak
 
Spill Kits and Containment Systems: Oil Technics Ltd
Spill Kits and Containment Systems: Oil Technics LtdSpill Kits and Containment Systems: Oil Technics Ltd
Spill Kits and Containment Systems: Oil Technics LtdDave Holmes
 

Destacado (20)

Curso de Alta Formación en Marketing para Empresas de Servicios
Curso de Alta Formación en Marketing para Empresas de ServiciosCurso de Alta Formación en Marketing para Empresas de Servicios
Curso de Alta Formación en Marketing para Empresas de Servicios
 
Examen trimestra diego reyes
Examen trimestra  diego reyesExamen trimestra  diego reyes
Examen trimestra diego reyes
 
Status Www Undersøgelse Udenpix
Status Www Undersøgelse UdenpixStatus Www Undersøgelse Udenpix
Status Www Undersøgelse Udenpix
 
Brand boost by wildtangent
Brand boost by wildtangentBrand boost by wildtangent
Brand boost by wildtangent
 
Servicio Eiden : Opinan nuestros clientes
Servicio Eiden : Opinan nuestros clientesServicio Eiden : Opinan nuestros clientes
Servicio Eiden : Opinan nuestros clientes
 
CompuSystems Dashboards
CompuSystems DashboardsCompuSystems Dashboards
CompuSystems Dashboards
 
2012 Email Evolution Sneak Peak Webinar: Part 1
2012 Email Evolution Sneak Peak Webinar: Part 12012 Email Evolution Sneak Peak Webinar: Part 1
2012 Email Evolution Sneak Peak Webinar: Part 1
 
(Self) Publishing
(Self) Publishing(Self) Publishing
(Self) Publishing
 
Update on the ELIXIR UK node by Chris Ponting
Update on the ELIXIR UK node by Chris PontingUpdate on the ELIXIR UK node by Chris Ponting
Update on the ELIXIR UK node by Chris Ponting
 
Tarea 1 e busines
Tarea 1 e businesTarea 1 e busines
Tarea 1 e busines
 
Profile.e (yuki sato)0529
Profile.e (yuki sato)0529Profile.e (yuki sato)0529
Profile.e (yuki sato)0529
 
Droidcon ES '16 - How to fail going offline
Droidcon ES '16 - How to fail going offlineDroidcon ES '16 - How to fail going offline
Droidcon ES '16 - How to fail going offline
 
Dios es mi Guía
Dios es mi GuíaDios es mi Guía
Dios es mi Guía
 
Parroquia de San Pedro y San Pablo (Cabanillas del Campo)
Parroquia de San Pedro y San Pablo (Cabanillas del Campo)Parroquia de San Pedro y San Pablo (Cabanillas del Campo)
Parroquia de San Pedro y San Pablo (Cabanillas del Campo)
 
Estudio earcas
Estudio earcasEstudio earcas
Estudio earcas
 
1 year with ROM on production
1 year with ROM on production1 year with ROM on production
1 year with ROM on production
 
Ejercicio de dinamica
Ejercicio de dinamicaEjercicio de dinamica
Ejercicio de dinamica
 
Catálogo cement design 2014 low size
Catálogo cement design 2014 low sizeCatálogo cement design 2014 low size
Catálogo cement design 2014 low size
 
Tupperware may 2014
Tupperware may 2014Tupperware may 2014
Tupperware may 2014
 
Spill Kits and Containment Systems: Oil Technics Ltd
Spill Kits and Containment Systems: Oil Technics LtdSpill Kits and Containment Systems: Oil Technics Ltd
Spill Kits and Containment Systems: Oil Technics Ltd
 

Similar a Arquitectura de un sistema financiero complejo

NexTReT AgilePoint XRM Introducción
NexTReT AgilePoint XRM Introducción NexTReT AgilePoint XRM Introducción
NexTReT AgilePoint XRM Introducción NexTReT
 
Software De Gestion
Software De GestionSoftware De Gestion
Software De GestionPabloraton
 
Software De Gestion
Software De GestionSoftware De Gestion
Software De GestionPabloraton
 
CM Gestión. Trabajamos contigo!
CM Gestión. Trabajamos contigo!CM Gestión. Trabajamos contigo!
CM Gestión. Trabajamos contigo!Ricardo Missana
 
Argentesting 2017 - The evolving role of QA
Argentesting 2017 - The evolving role of QAArgentesting 2017 - The evolving role of QA
Argentesting 2017 - The evolving role of QAArgentesting
 
Scrum Xp Agile Tour Peru2008
Scrum Xp Agile Tour Peru2008Scrum Xp Agile Tour Peru2008
Scrum Xp Agile Tour Peru2008jose diaz
 
Semana 1 sistematizacion v1Preguntas.pptx
Semana 1 sistematizacion v1Preguntas.pptxSemana 1 sistematizacion v1Preguntas.pptx
Semana 1 sistematizacion v1Preguntas.pptxcesaralcidespezoborr1
 
Intalio|BPM como plataforma para el cumplimiento de regulaciones
Intalio|BPM como plataforma para el cumplimiento de regulacionesIntalio|BPM como plataforma para el cumplimiento de regulaciones
Intalio|BPM como plataforma para el cumplimiento de regulacionesEsteban J. Felipe M.
 
U5 examen gonzalez_garciacarlosalberto
U5 examen gonzalez_garciacarlosalbertoU5 examen gonzalez_garciacarlosalberto
U5 examen gonzalez_garciacarlosalbertoRkr Gore
 
[webinar]: Alcanzando la excelencia operacional | Capitulo V
[webinar]: Alcanzando la excelencia operacional | Capitulo V[webinar]: Alcanzando la excelencia operacional | Capitulo V
[webinar]: Alcanzando la excelencia operacional | Capitulo VGonzalo Chelme
 
El arte del modelado de procesos de negocio ejecutables
El arte del modelado de procesos de negocio ejecutablesEl arte del modelado de procesos de negocio ejecutables
El arte del modelado de procesos de negocio ejecutablesEsteban J. Felipe M.
 
Presentación STR Sistemas
Presentación STR SistemasPresentación STR Sistemas
Presentación STR SistemasSTR Sistemas
 
¿Cómo podemos ayudar a adoptar RPA en su empresa?
¿Cómo podemos ayudar a adoptar RPA en su empresa?¿Cómo podemos ayudar a adoptar RPA en su empresa?
¿Cómo podemos ayudar a adoptar RPA en su empresa?EYBrasil
 
AWS Cloud Experience CA: Metodologías Ágiles: innovación a la velocidad de lo...
AWS Cloud Experience CA: Metodologías Ágiles: innovación a la velocidad de lo...AWS Cloud Experience CA: Metodologías Ágiles: innovación a la velocidad de lo...
AWS Cloud Experience CA: Metodologías Ágiles: innovación a la velocidad de lo...Amazon Web Services LATAM
 

Similar a Arquitectura de un sistema financiero complejo (20)

bp&s
bp&sbp&s
bp&s
 
NexTReT AgilePoint XRM Introducción
NexTReT AgilePoint XRM Introducción NexTReT AgilePoint XRM Introducción
NexTReT AgilePoint XRM Introducción
 
Software De Gestion
Software De GestionSoftware De Gestion
Software De Gestion
 
Software De Gestion
Software De GestionSoftware De Gestion
Software De Gestion
 
CM Gestión. Trabajamos contigo!
CM Gestión. Trabajamos contigo!CM Gestión. Trabajamos contigo!
CM Gestión. Trabajamos contigo!
 
Argentesting 2017 - The evolving role of QA
Argentesting 2017 - The evolving role of QAArgentesting 2017 - The evolving role of QA
Argentesting 2017 - The evolving role of QA
 
Nezter Solutions v4.7.1
Nezter Solutions v4.7.1Nezter Solutions v4.7.1
Nezter Solutions v4.7.1
 
Scrum Xp Agile Tour Peru2008
Scrum Xp Agile Tour Peru2008Scrum Xp Agile Tour Peru2008
Scrum Xp Agile Tour Peru2008
 
Semana 1 sistematizacion v1Preguntas.pptx
Semana 1 sistematizacion v1Preguntas.pptxSemana 1 sistematizacion v1Preguntas.pptx
Semana 1 sistematizacion v1Preguntas.pptx
 
Intalio|BPM como plataforma para el cumplimiento de regulaciones
Intalio|BPM como plataforma para el cumplimiento de regulacionesIntalio|BPM como plataforma para el cumplimiento de regulaciones
Intalio|BPM como plataforma para el cumplimiento de regulaciones
 
Las SinCuenta Sombras de Scrum
Las SinCuenta Sombras de ScrumLas SinCuenta Sombras de Scrum
Las SinCuenta Sombras de Scrum
 
U5 examen gonzalez_garciacarlosalberto
U5 examen gonzalez_garciacarlosalbertoU5 examen gonzalez_garciacarlosalberto
U5 examen gonzalez_garciacarlosalberto
 
Proyecto rollout cuviv
Proyecto rollout cuvivProyecto rollout cuviv
Proyecto rollout cuviv
 
[webinar]: Alcanzando la excelencia operacional | Capitulo V
[webinar]: Alcanzando la excelencia operacional | Capitulo V[webinar]: Alcanzando la excelencia operacional | Capitulo V
[webinar]: Alcanzando la excelencia operacional | Capitulo V
 
El arte del modelado de procesos de negocio ejecutables
El arte del modelado de procesos de negocio ejecutablesEl arte del modelado de procesos de negocio ejecutables
El arte del modelado de procesos de negocio ejecutables
 
Presentación STR Sistemas
Presentación STR SistemasPresentación STR Sistemas
Presentación STR Sistemas
 
20.seminario ventas bpm
20.seminario ventas bpm20.seminario ventas bpm
20.seminario ventas bpm
 
¿Cómo podemos ayudar a adoptar RPA en su empresa?
¿Cómo podemos ayudar a adoptar RPA en su empresa?¿Cómo podemos ayudar a adoptar RPA en su empresa?
¿Cómo podemos ayudar a adoptar RPA en su empresa?
 
Sistema de ventas monografia
Sistema de ventas   monografiaSistema de ventas   monografia
Sistema de ventas monografia
 
AWS Cloud Experience CA: Metodologías Ágiles: innovación a la velocidad de lo...
AWS Cloud Experience CA: Metodologías Ágiles: innovación a la velocidad de lo...AWS Cloud Experience CA: Metodologías Ágiles: innovación a la velocidad de lo...
AWS Cloud Experience CA: Metodologías Ágiles: innovación a la velocidad de lo...
 

Arquitectura de un sistema financiero complejo

  • 1. XTrade Arquitectura de un Sistema Financiero Complejo Gabriel Omar Cotelli g.cotelli@mercapsoftware.com
  • 2. Agenda ●¿Qué es un Sistema Financiero? ●¿Por qué es complejo? ●Objetivos que nos Propusimos ○Soluciones Estandar a dichos Objetivos ○Nuestra Solución ■Arquitectura de Sistemas ■Workflow ○Un Resultado inmediato: ■Auditoria ●Conclusiones
  • 4. ¿Quiénes somos? ●Mercap ○Empresa de desarrollo de software financiero ○12 años desarrollando sistemas con Smalltalk ○Productos: ■Unitrade Bancos ■XTrade Fondos, AFJPs, Seguros, etc. ○Desarrollo con metodologías ágiles
  • 5. ¿Qué es un Sistema Financiero? Sucursales Bloomberg Siopel
  • 6. ¿Por qué es complejo? ●Funcional: ○Muchos usuarios concurrentes ○Múltiples Transacciones ○Integración variada ○On-Line / Batch ●Desarrollo: ○11.825 Clases ○650.616 Líneas de Código ○15.424 Casos de Test de Unidad
  • 8. Objetivos de Arquitectura ●Facilitar la interacción entre ○Departamentos del cliente ○Con sistemas existentes ●Escalable y Confiable ●Permitir que cada cliente tenga sus propios procesos de negocio ●Poder asignar roles y permisos a cada tarea dentro de un proceso de negocio ●Tener una auditoria de procesos detallada ●Otros Objetivos relacionados con el negocio
  • 9. Objetivos de Desarrollo ●Que la extensión del sistema sea mediante la creación de nuevos objetos, nuevos módulos ●Aislar la funcionalidad de negocio del núcleo del sistema ●Separación de asuntos transaccionales de la lógica de negocio ●Poder correr el sistema indistintamente en Visual Age Smalltalk y GemStone/S ●Código único para todos los clientes ●Otros relacionados con diseño y metodología
  • 11. Código por cada cliente registerPurchase: aPurchase self registerAsPending:aPurchase. self askForConfirmationOf: aPurchase. self settle: aPurchase registerPurchase: aPurchase self registerAsPending: aPurchase. self confirm: aPurchase. Cliente A Cliente B registerPurchase: aPurchase ….. Otros Clientes
  • 12. Código único con decisiones explícitas registerPurchase: aPurchase self registerAsPending:aPurchase. (client = #ClientA) ifTrue: [ self askForConfirmationOf: aPurchase. self settle: aPurchase]. (client = #ClientB) ifTrue: [ self confirm: aPurchase] …. “More clients…”
  • 13. Problemas ●Costoso de mantener ●Difícil compartir mejoras o arreglos entre clientes ●Cambios en un cliente pueden afectar a otro cliente ●Etc… ●En conclusión: Solución sin utilizar objetos
  • 15. Objetivos a nivel sistema ●Facilitar la interacción entre ○Departamentos del cliente ○Con sistemas existentes ●Escalable y Confiable ●Permitir que cada cliente tenga sus propios procesos de negocio ●Poder asignar roles y permisos a cada tarea dentro de un proceso de negocio ●Tener una auditoria de procesos detallada ●Otros Objetivos relacionados con el negocio
  • 16. Objetivos de Desarrollo ●Que la extensión del sistema sea mediante la creación de nuevos objetos, nuevos módulos ●Aislar la funcionalidad de negocio del núcleo del sistema ●Separación de asuntos transaccionales de la lógica de negocio ●Poder correr el sistema indistintamente en Visual Age Smalltalk y GemStone/S ●Código único para todos los clientes ●Otros relacionados con diseño y metodología
  • 17. Diseño ●Sistema: objeto que encapsula funcionalidad de alto nivel. Ejemplo: ○Sistema de Clientes ○Sistema de Cotizaciones ●Cumplen con una interfaz específica ●Pueden existir distintas implementaciones dependiendo del cliente. Ejemplo: ○Sistema de Cotizaciones de Bloomberg ○Sistema de Cotizaciones de Reuters
  • 18. Diseño ●XTrade es una composición dinámica de Sistemas que: ○Agrupa la instalación específica del cliente ○Permite cambiar dicha instalación on-the-fly ●Se conocen entre sí por un mecanismo de dependencias que: ○Asegura la correcta configuración de la implementación ○Permite un inicio y detención seguro y armonioso
  • 20. Resultado XTrade Sist. de Tiempo Sist. de Bonos CotizacionesBloo mberg Sist. de Workflow Instalación Cliente A XTrade Sist. de Tiempo CotizacionesReute rs Sist. de Workflow Instalación Cliente B
  • 22. Objetivos a nivel sistema ●Facilitar la interacción entre ○Departamentos del cliente ○Con sistemas existentes ●Escalable y Confiable ●Permitir que cada cliente tenga sus propios procesos de negocio ●Poder asignar roles y permisos a cada tarea dentro de un proceso de negocio ●Tener una auditoria de procesos detallada ●Otros Objetivos relacionados con el negocio
  • 23. Objetivos de Desarrollo ●Que la extensión del sistema sea mediante la creación de nuevos objetos, nuevos módulos ●Aislar la funcionalidad de negocio del núcleo del sistema ●Separación de asuntos transaccionales de la lógica de negocio ●Poder correr el sistema indistintamente en Visual Age Smalltalk y GemStone/S ●Código único para todos los clientes ●Otros relacionados con diseño y metodología
  • 24. ¿Qué es un Workflow? ●La automatización de un proceso de negocio en el cual la información, documentos o tareas son pasadas de un actor a otro para que este tome acciones de acuerdo a los procedimientos definidos por la organización
  • 25. Ejecución de un proceso de Workflow Registrar Compra de Acciones Liquidar Compra Enviar Mail notificando Confirmación Confirmar Compra de Acciones confirmad a rechazad a
  • 26. Ejecución de un proceso de Workflow Registrar Compra de Acciones Liquidar Compra Enviar Mail notificando Confirmación Confirmar Compra de Acciones confirmad a rechazad a Front Office
  • 27. Ejecución de un proceso de Workflow Registrar Compra de Acciones Liquidar Compra Enviar Mail notificando Confirmación Confirmar Compra de Acciones confirmad a rechazad a
  • 28. Ejecución de un proceso de Workflow Registrar Compra de Acciones Liquidar Compra Enviar Mail notificando Confirmación Confirmar Compra de Acciones confirmad a rechazad a Middle Office
  • 29. Ejecución de un proceso de Workflow Registrar Compra de Acciones Liquidar Compra Enviar Mail notificando Confirmación Confirmar Compra de Acciones confirmad a rechazad a
  • 30. Ejecución de un proceso de Workflow Registrar Compra de Acciones Liquidar Compra Enviar Mail notificando Confirmación Confirmar Compra de Acciones confirmad a rechazad a
  • 31. Ejecución de un proceso de Workflow Registrar Compra de Acciones Liquidar Compra Enviar Mail notificando Confirmación Confirmar Compra de Acciones confirmad a rechazad a Actor Automatizado Back Office
  • 32. Ejecución de un proceso de Workflow Registrar Compra de Acciones Liquidar Compra Enviar Mail notificando Confirmación Confirmar Compra de Acciones confirmad a rechazad a
  • 33. Ejecución de un proceso de Workflow Registrar Compra de Acciones Liquidar Compra Enviar Mail notificando Confirmación Confirmar Compra de Acciones confirmad a rechazad a
  • 34. Demostración práctica: Editor de Procesos de Workflow
  • 35. Workflow de XTrade Actores Interactivos Actor Automatizado Actor Automatizado
  • 40. Conclusiones ●Se puede mantener el código único sin decisiones explícitas en el mismo ●Al no estar hardcodeados los procesos de la organización en el código permite cambiarlos sin necesidad de nuevas versiones ●Simplemente se reificaron conceptos que antes no lo estaban
  • 42. Objetivos a nivel sistema ●Facilitar la interacción entre ○Departamentos del cliente ○Con sistemas existentes ●Escalable y Confiable ●Permitir que cada cliente tenga sus propios procesos de negocio ●Poder asignar roles y permisos a cada tarea dentro de un proceso de negocio ●Tener una auditoria de procesos detallada ●Otros Objetivos relacionados con el negocio
  • 43. Alternativas ●Codificar logging dentro de cada método donde se quiera loguear ●Utilizar aspectos (pero…hay que definir pointcuts, joinpoints, advices, etc…. mucho lio)
  • 44. Nuestra solución ●Todo lo que un actor hace en el sistema es ejecutar procesos ●Por ende, la auditoria consiste en guardar la historia de ejecución de los procesos y actividades de Workflow ●Reificación de la historia de procesos
  • 45. Auditoria de un proceso en ejecución a WorkflowHistor ian workflow System a Process History Recorder a Running Process historian process
  • 47. Conclusiones finales ●Arquitectura escalable ●Código único ●Configuraciones por cliente ●Menor costo de mantenimiento ●Desarrolladores más felices