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!