TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
Introduccion_a_la_integracion_de_aplicaciones.ppt
1. Introducción a la
integración de aplicaciones
Rodolfo Finochietti (rodolfof@lagash.com)
Diego Gonzalez (diegog@lagash.com)
Adrián Lopez (adrianl@lagash.com)
Rodolfo Reichart (rodolfo@lagash.com)
5. Problemática
• Previas a una integración
– Sistemas aislados, heterogéneos y solapados en
funcionalidad
– Necesidad de soportar procesos que involucran a
varios sistemas
– Información inconsistente en distintos sistemas
6. Problemática
• Posteriores a una integración
– Costo de implementación
– Consumo de tiempo y recursos
– Pérdida de información
– Dependencias entre sistemas
– Integraciones aisladas sin usar patrones unificados
7. Estilos de Integración
• Integración de Datos
– Aplicaciones con datos similares
– Dependencia entre datos de aplicaciones
• Maestro de clientes unificado
– Notificación de novedades
– Enfocado a sistemas que no exponen una base de
datos
– Solución tradicional orientada a sistemas que
concentran información y distribuyen
actualizaciones
8. Estilos de Integración
• Agregación de Entidades
– Vista única de una entidad distribuida en varios
sistemas
– Existen dos aplicaciones que aportan información
a una entidad
– Muy común en caso de implementación de
portales
9. Estilos de Integración
• Integración de Procesos
– Organizaciones se basan en procesos de negocio que
pueden cruzar varias aplicaciones
– Su ejecución y control puede ser manual o
monitoread automáticamente
• Integración de FrontEnd
– Aplicaciones opacas en su back-end
• Siempre hay una interfaz de usuario disponible
– Usuarios que usan varias aplicaciones para llevar a
cabo su tareas
• Un proceso de negocio tiene que impactar en varias
aplicaciones
12. Topologías de Mensajería
• Punto a punto
– Comunicación entre dos aplicaciones
– Su uso extensivo crea una integración en estrella
– Generalmente soportado con herramientas como
MSMQ o MQSeries
13. Topologías de Mensajería
• Message Broker
– Notificación de eventos
– Resuelve la conexión punto a punto entre
aplicaciones
– Concentra mensajes que son enviados con un
destino específico
– Generalmente soportan
• Garantía de entrega
– Reintentos, timeouts, aviso de
entrega
• Almacenamiento propio
14. Topologías de Mensajería
• Message Bus
– El mensaje es notificado a varias aplicaciones
• Dependiendo de reglas de suscripción
– Soporte para orquestaciones de mensajes
• Transacciones de larga duración
• Reversas en caso de error
– Aporta información sobre
el tráfico de mensajes para
una organización
15. Patrones de Mensajería
• Publish/Suscribe
– Sobre un MessageBus el arribo de un mensaje es
replicado a varias aplicaciones interesadas
– Usado para sincronización de datos
– Sirve también
para lanzar
procesos
internos ante un
evento externo
16. Patrones de Mensajería
• Pipes and Filters
– Extensibilidad de los canales de mensajes
– Permite agregar procesamiento cuando un
mensaje “entra” en un Pipe
– Patrón común aplicable en distintos escenarios
17. Patrones de Mensajería
• Message Router
– Se usa para implementar publish/suscribe
• Message Translator
– Adapta información de un mensaje a un nuevo
formato
18. Patrones de Mensajería
• Channel Adapter
– Convierten la información de una aplicación en un
mensaje canónico
– Pueden ser externos o internos a la aplicación
– Pueden estar delante o detrás de los canales
19. Ciclo de vida
• Equipo de Integración vs Proyecto de Integración
– Precio, tiempo y funcionalidad
• Proyecto ágiles prefieren
– Individuos e Interacciones mas que Procesos
– Software funcionando mas que Documentación Completa
– Colaboración con el cliente mas que Negociación de
Contratos
– Respuesta al cambio mas que Seguimiento de un Plan
• Proyectos enfocados en el contexto
– Stakeholders
20. Ciclo de vida
• Desarrollo iterativo
– División en tareas cortas de *todo* el proyecto
– Planificación y estimación por iteración
– Reuniones diarias stand-up para status e
impedimentos
– Iteración inicial para
• Definir alcance global y se toman decisiones
estratégicas
– Duración de 10 días para las iteraciones
• Tiempo estándar para hacer algo demostrable con
BizTalk
21. Ciclo de vida
• Diseño simple y evolutivo
– Evitar relevar todas las interfaces al inicio sino
relevar aquellas que sean necesarias
– Evitar desarrollar Frameworks o adaptadores
hasta que sean necesarios
– Tomar decisiones iniciales sobre la arquitectura
(estandars, reglas de codificación, etc.)
– Es probable que los sistemas a integrar no
respondan como se espera, es recomendable
separar las tareas para comprobar cada adaptador
22. Ciclo de vida
• Pruebas Automatizadas
– Usar pruebas automatizadas permite detectar cambios
temprano
– Traducción de mensajes, adaptadores se pueden probar
unitariamente
– Pruebas de performance se pueden hacer en nightly builds
– Las pruebas pueden llevar tiempo de preparación de datos
• Colaboración con el cliente
– Iteraciones cortas permiten entregar funcionalidad
temprano y obtener feedback
– Es más fácil presentar integraciones que pantallas al
usuario
23. Ciclo de vida
• The 12 Extreme Practices
– The planning game
– Small releases
– Metaphor
– Simple design
– Testing
– Refactoring
– Pair programming
– Collective ownership
– Continuous integration
– 40 hour week
– On-site customer
– Coding standards
25. Agenda
• ¿Que es BizTalk?
• Problemática de integración
• ¿Por que BizTalk?
• ¿Que no es BizTalk? Diferencias con WF
• Conceptos
• Extensibilidad
• Demo
26. ¿Que es BizTalk?
• Es un producto formado por un conjunto de
herramientas que permiten automatizar
procesos de negocio dentro de una misma
aplicación o entre aplicaciones.
27. ¿Que es BizTalk?
• Herramientas
– Messaging Engine
– Ports & Adapters (SAP, SQL, WCF, etc.)
– Pipelines
• Pipeline Components
– Orchestrations
– Transformations (XSLT)
• Functoids
– Business Rule Engine (BRE)
– Health and Activity Tracking (HAT)
– Business Activity Monitor (BAM)
– Business Activity Services (BAS)
– SSO (Single Sign On)
– Etc.
28. Problemática de integración
• Procesos de negocio ambiguos
• Aplicaciones heterogéneas que se comunican
entre si de forma individual formando una
arquitectura de integración sin una topología
especifica.
• Protocolos diferentes
30. ¿Por que BizTalk?
• Actúa como enrutador de mensajes entre
aplicaciones.
• Implementa el patrón de publicador-
subscriptor es muy fácil agregar un nuevo
sistema a integrar
• Ahorra tiempos de desarrollo gracias a sus
herramientas graficas integradas con Visual
Studio
• Fácil administración
31. ¿Por que BizTalk?
• Easy Deployment (despliegue fácil)
• Posee una gran cantidad de conectores para
integrar las plataformas mas diversas.
• Trabaja utilizando XML y esquemas.
• Soporta tolerancia a fallos ya que todas las
operaciones son persistidas.
• Escala vertical y horizontalmente
33. ¿Que no es BizTalk? Diferencias con
WF
BizTalk WF
Es un producto para automatizar
procesos e integrar aplicaciones
Es un framework para desarrollar
aplicaciones basadas en él.
Permite crear workflows entre
aplicaciones
Permite crear workflows dentro de una
aplicación
Posee una herramienta grafica para
realizar transformaciones
Las trasformaciones se realizan
programando.
Basado en mensajes XML Basado en objetos .NET
Posee herramientas de administración y
monitoreo
Si bien tiene un servicio de trackeo que
permite guardar información en algún
medio, no posee un herramienta propia.
Posee un conjunto de adaptadores para
los distintos protocolos de comunicación.
No posee adaptadores, hay que
programarlos utilizando “Activities”
38. Referencias
• BizTalk Home Page
– http://www.microsoft.com/biztalk
• BizTalk Server Team Blog
– http://blogs.msdn.com/biztalk_server_team_blog
• BizTalk Developer Center
– http://msdn2.microsoft.com/en-us/biztalk
• Otros blogs
– http://biztalkblogs.com
40. Agenda
• ¿Qué es SSIS?
• ¿Por qué SSIS?
• Conceptos
– Packages
– Control Flow
– Data Flow
• Otros conceptos
• Componentes
• Deployment
• Ejecución de Packages
41. ¿Qué es SSIS?
• Es una plataforma para la integración de
datos, workflows y soluciones ETL (Extraction,
Transformation, Loading)
• Motor de integración de datos y entorno de
desarrollo completo para la creación de
soluciones de alto rendimiento y fácil
desarrollo
42. ¿Por qué SSIS?
• Proporciona una arquitectura flexible, rápida y
escalable que permite una integración de
datos efectiva
• Incluye herrmientas gráficas y asistentes para
generar y depurar paquetes, motor de flujo de
tareas y motor de flujo de datos
43. ¿Qué es SSIS?
• Servicio SSIS
• Motor de Workflow y de Flujo de Datos
• Arquitectura basado en Pipeline
44. ¿Por qué SSIS?
• En cuanto al desarrollo ofrece:
– Integración con Visual Studio (BIDS)
– Facilidad de Debug
• Uso de breakpoints en los Task Containers
• Uso de Data Viewers
• Debug de Script Tasks
• Uso de los Error Output
– Extensibilidad
45. ¿Por qué SSIS?
Además brinda:
– Escalabilidad
– Facilidad de desarrollo
– Flexibilidad
– Acceso a fuentes de datos heterogéneas
– Administración y deploy
– Seguridad
46.
47. Conceptos
• Packages
• Control Flow
• Data Flow
• Connection Manager
• Event Handler
• Configuration
• Log Provider
• Variables
• Data Source / Data Source View
48. Packages
• Se component por:
– Control Flow
– Data Flow
– Event Handlers
• Incluye soporte para:
– Manejo de errores
– Checkpoints
– Transacciones
– Configuración
49. Control Flow
• Forma de ejecución secuencial / paralelo
• Workflow con Precedence Constraints
– Constraints Values
– Conditional Expressions
• Tasks
• Containers
– Group
– Task Host Container
– Sequence Container
– For Loop Container
– For Each Loop Container
50. Data Flow
• Forma de ejecución en paralelo
• Especializado en el manejo de datos
• Components
– Source
– Destination
– Transformation
• Non Blocking
• Semi-Blocking
• Blocking
51. Diferencias entre Control Flow y Data
Flow
Control Flow Data Flow
Orquestación al estilo Workflow Orientado al flujo de datos
No hay pasaje de datos entre
componentes
Hay pasaje de datos entre componentes
Orientado a procesos / tareas Correlación de datos y transformaciones
Ejecución en serio o en paralelo Procesamiento coordinado
Procesamiento sincrónico Flujo tipo Streaming
Comienza y finaliza con tareas Comienza y termina con registros
53. Otros Conceptos
• Connection Managers
• Variables
– De Usuario ( User y DtsClient)
– De Sistema
• Expressions
– Uso del editor de expresiones, seteo dinámico de
propiedades
• Configuración
• Logging
• Event Handling
54. Otros Componentes
• Data Flow Components
– LookUp
– DataReader Destination
– Scripting
– Multicast
– Derived Column
– Aggregate
– Data Conversion
56. Deployment
• Diferentes Formas de Deploy
– File System
– Database
• Herramientas de Deploy
– Deployment Utility
– Save Copy As…
– Management Studio
– DtUtil
57. Ejecución de Packages
• Tipos de Ejecución
– Ejecución Remota
– Ejecución Local
• Jobs
• Xp_CmdShell
• dtexec / dtexecui
• Management Studio
• BIDS
58. Referencias
• SQL Server 2005 Books On Line
• http://www.microsoft.com/sql/technologies/integration/default.mspx
• Planeamiento de la escalabilidad y rendimiento con Reporting Services:
http://www.microsoft.com/latam/technet/productos/servers/sql/2005/pspsqlrs.mspx
• Una Estrategia de rendimiento:
http://www.microsoft.com/latam/technet/prodtechnol/sql/2005/tecnologias/ssisperfstrat.mspx
• Introducción a SQL Server 2005:
http://www.microsoft.com/latam/technet/productos/servers/sql/2005/intro2is.mspx
• SQL Server 2005 Integration Services: http://msdn2.microsoft.com/es-es/library/ms141026.aspx
• Wrox: Professional SQL Server 2005 Integration Services
• SQL Server Integration Services: http://www.sqlis.com/
• SSIS Junkie: http://blogs.conchango.com/jamiethomson/default.aspx
• Kirk Haselden: http://sqljunkies.com/WebLog/knight_reign/default.aspx
60. Integración en el Front-End
• Realidad: Las aplicaciones se desarrollan sobre plataformas y
estilos arquitectónicos distintos
– Shadow IT: Existen muchas aplicaciones escritas por “Power Users”
• La integración de aplicaciones en el front-end consiste en
permitir la colaboración de estas aplicaciones en lo posible sin
modificar su código
– Es el equivalente al concepto de mash-ups llevado a las aplicaciones
empresariales
– La integración en el front-end esta ganando aceptacion
• Conceptos de integración en el front-end:
– UI Automation
– Composite UI
61. UI Automation
• La mayoría de las veces las aplicaciones no fueron
diseñadas para ser componibles
• Para logra esto se utilizan las API’s que cada tecnología
provee para el control de interfaz de usuario
– Windows: Win32 API, Active Accesibility, UI Automation
– Web: Java Script injection, IE Hosted Control (SHDocVw)
– TN3270: eHLLAPI
– Etc.
• La desventaja es que el contrato pasa a ser la interfaz
de usuario
62. Active Accesibility – UI Automation
• Active Accessibility es una tecnología antigua,
pero poco conocida, en la plataforma
Windows pensada originalmente para crear
aplicaciones accesibles por personas con
dificultades físicas o cognitivas
• UI Automation es la nueva versión de Active
Accessibility
• UI Automation incorporara herramientas para
automatización de flujos interfaz de usuario y
testing de aplicaciones
64. Composite UI
• Se compone una solución a partir de piezas funcionales
discretas
• Requiere de un ambiente de ejecución que provea servicios y
capacidades básicas
• Al fomentar la reusabilidad reduce tiempo de desarrollo
65. Ejemplo de Composite UI: Acropolis
• Acropolis es un toolkit para crear aplicaciones
Windows componibles
• Acropolis es un producto de Microsoft Corp
– Soporte completo de MSFT PSS
– Ciclo de producto completo con soporte extendido
• Acropolis es parte de la siguiente ola de
herramientas enfocada al desarrollo en el cliente
denominada “.NET Client Futures”
66. Componentes de Acropolis
• Part
– Es el componente básico en las aplicaciones Acropolis
– Contiene y encapsula funcionalidad de interfaz de usuario reusable
– Implementa el patrón MVP
• Part View
– Es la porción de interfaz de usuario de una Part
– También son denominadas skins
• Form
– Es una Part que contiene una o mas Parts hijas que trabajan juntas
para implementar un escenario o tarea especifica que el usuario
puede realizar.
67. Componentes de Acropolis
• Service
– Es una funcionalidad que no provee interfaz de usuario, y que brinda
alguna capacidad a la aplicación como logging, event routing, etc.
• Shell
– Es una aplicación host que integra Parts, Forms y Services.
• Runtime
– Es el framework que maneja el ciclo de vida y la intercomunicación en
todas las Parts y Services en una aplicación "Acropolis“
• Connection Point
– Es un punto de conexión entre componentes Acropolis
69. UI Automation y Composite UI
combinados
• Los dos conceptos se puede combinar
para brindar una experiencia mas rica al
usuario
70. CCF
CCF es un framework modular y flexible para acelarar el desarrollo, integración y
lanzamiento de soluciones de atención al cliente.
• CCF muestra una vista unificada de la
información del cliente.
• CCF se integra perfectamente con las
aplicaciones de negocio subyacentes
sin modificar los sistemas existentes
(no es un enfoque de romper y
reemplazar)
CCF provee de sincronización en tiempo real entre soluciones autoservicio
(Portales, Conferencia/Respuesta Interactiva de Voz [IVR]) y centros de contacto
proveyendo una visión completa y una arquitectura unificada para todos los
canales de atención al cliente.
73. Referencias
• Lagash Web Site: http://www.lagash.com
• rodolfo@blog: http://weblogs.shockbyte.com.ar/rodolfof
• UI Automation and Microsoft Active Accessibility: http://msdn2.microsoft.com/en-
us/library/ms788733.aspx
• Windows API Reference: http://msdn2.microsoft.com/en-
us/library/aa383750.aspx
• CCF: http://www.microsoft.com/serviceproviders/solutions/ccf.mspx