Title: Introduccin a la integracin de aplicaciones
1Introducción a laintegración de aplicaciones
- Rodolfo Finochietti (rodolfof_at_lagash.com)
- Diego Gonzalez (diegog_at_lagash.com)
- Adrián Lopez (adrianl_at_lagash.com)
- Rodolfo Reichart (rodolfo_at_lagash.com)
2Agenda
- Introducción
- Problemática
- Estilos
- Patrones
- Ciclo de vida
- Integración de Procesos
- Integración de Datos
- Integración de Front End
3Introducción
4Desafíos de integración
Silos / Integración
Cruzando Fronteras
Mayor cantidad de transacciones
5Problemá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
6Problemá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
7Estilos 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
8Estilos 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
9Estilos 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
10Estrategias de integración
- Transferencia de archivos
- Acceso a base de datos compartida
11Estrategias de integración
12Topologí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
13Topologí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
14Topologí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
parauna organización
15Patrones 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énpara lanzar procesos internos
ante un evento externo
16Patrones 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
17Patrones de Mensajería
- Message Router
- Se usa para implementar publish/suscribe
- Message Translator
- Adapta información de un mensaje a un nuevo
formato
18Patrones 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
19Ciclo 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
20Ciclo 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
21Ciclo 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
22Ciclo 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
23Ciclo 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
24Integración de aplicaciones con BizTalk Server
2006
25Agenda
- Que es BizTalk?
- Problemática de integración
- Por que BizTalk?
- Que no es BizTalk? Diferencias con WF
- Conceptos
- Extensibilidad
- Demo
26Que 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.
27Que 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.
28Problemá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
29Problemática de integración
30Por 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
31Por 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
32Por que BizTalk?
33Que no es BizTalk? Diferencias con WF
34Conceptos
35Conceptos
36Extensibilidad
- Custom Functoids
- Functoid Wizard
- Custom Pipeline Components
- Pipeline Component Wizard
- Custom Adapters
- Adapter Wizard
- Assemblies .NET
37Demo
38Referencias
- 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
39Integración de datos con SQL Server
2005Integration Services
40Agenda
- Qué es SSIS?
- Por qué SSIS?
- Conceptos
- Packages
- Control Flow
- Data Flow
- Otros conceptos
- Componentes
- Deployment
- Ejecución de Packages
41Qué 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
42Por 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
43Qué es SSIS?
- Servicio SSIS
- Motor de Workflow y de Flujo de Datos
- Arquitectura basado en Pipeline
44Por 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
45Por qué SSIS?
- Además brinda
- Escalabilidad
- Facilidad de desarrollo
- Flexibilidad
- Acceso a fuentes de datos heterogéneas
- Administración y deploy
- Seguridad
46(No Transcript)
47Conceptos
- Packages
- Control Flow
- Data Flow
- Connection Manager
- Event Handler
- Configuration
- Log Provider
- Variables
- Data Source / Data Source View
48Packages
- Se component por
- Control Flow
- Data Flow
- Event Handlers
- Incluye soporte para
- Manejo de errores
- Checkpoints
- Transacciones
- Configuración
49Control 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
50Data Flow
- Forma de ejecución en paralelo
- Especializado en el manejo de datos
- Components
- Source
- Destination
- Transformation
- Non Blocking
- Semi-Blocking
- Blocking
-
51Diferencias entre Control Flow y Data Flow
52Ejemplos
- Ejemplo de importación
- Ejemplo de exportación
53Otros 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
54Otros Componentes
- Data Flow Components
- LookUp
- DataReader Destination
- Scripting
- Multicast
- Derived Column
- Aggregate
- Data Conversion
55Ejemplos
- Ejemplo con transformación de datos y consumiendo
la salida desde un WinForm
56Deployment
- Diferentes Formas de Deploy
- File System
- Database
- Herramientas de Deploy
- Deployment Utility
- Save Copy As
- Management Studio
- DtUtil
57Ejecución de Packages
- Tipos de Ejecución
- Ejecución Remota
- Ejecución Local
- Jobs
- Xp_CmdShell
- dtexec / dtexecui
- Management Studio
- BIDS
58Referencias
- SQL Server 2005 Books On Line
- http//www.microsoft.com/sql/technologies/integrat
ion/default.mspx - Planeamiento de la escalabilidad y rendimiento
con Reporting Services http//www.microsoft.com/l
atam/technet/productos/servers/sql/2005/pspsqlrs.m
spx - Una Estrategia de rendimiento http//www.microsof
t.com/latam/technet/prodtechnol/sql/2005/tecnologi
as/ssisperfstrat.mspx - Introducción a SQL Server 2005
http//www.microsoft.com/latam/technet/productos/s
ervers/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/jamiethoms
on/default.aspx - Kirk Haselden http//sqljunkies.com/WebLog/knight
_reign/default.aspx
59Integración en elFront End
60Integració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
61UI Automation
- La mayoría de las veces las aplicaciones no
fueron diseñadas para ser componibles - Para logra esto se utilizan las APIs 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
62Active 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
63DEMOUI Automation
- External Application Control
- External Event Broker
- Accesibility
64Composite 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
65Ejemplo 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
66Componentes 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.
67Componentes 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
68DEMOComposite UI
- Acropolis
- Smart Client Shell
69UI Automation y Composite UI combinados
- Los dos conceptos se puede combinar para brindar
una experiencia mas rica al usuario
70CCF
- 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.
71CCF Integrated Agent Desktop
Call Management (CTI integration)
Context Management
Active customer sessions with navigation tracking
Application Integration
Desktop Workflow
72DEMOComposite UI y
73Referencias
- Lagash Web Site http//www.lagash.com
- rodolfo_at_blog http//weblogs.shockbyte.com.ar/rodo
lfof - 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/sol
utions/ccf.mspx
74Muchas Gracias!