SlideShare una empresa de Scribd logo
1 de 74
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)
Agenda
• Introducción
– Problemática
– Estilos
– Patrones
– Ciclo de vida
• Integración de Procesos
• Integración de Datos
• Integración de Front End
Introducción
Desafíos de integración
Silos / Integración
Cruzando Fronteras
Mayor cantidad de
transacciones
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
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
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
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
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
Estrategias de integración
• Transferencia de
archivos
• Acceso a base de datos
compartida
Estrategias de integración
• Ejecución remota • Mensajería
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
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
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
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
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
Patrones de Mensajería
• Message Router
– Se usa para implementar publish/suscribe
• Message Translator
– Adapta información de un mensaje a un nuevo
formato
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
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
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
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
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
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
Integración de aplicaciones con
BizTalk Server 2006
Agenda
• ¿Que es BizTalk?
• Problemática de integración
• ¿Por que BizTalk?
• ¿Que no es BizTalk? Diferencias con WF
• Conceptos
• Extensibilidad
• Demo
¿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.
¿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.
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
Problemática de integración
¿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
¿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
¿Por que BizTalk?
¿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”
Conceptos
Conceptos
Extensibilidad
• Custom Functoids
– Functoid Wizard
• Custom Pipeline Components
– Pipeline Component Wizard
• Custom Adapters
– Adapter Wizard
• Assemblies .NET
Demo
• Messaging
• Orquestacion
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
Integración de datos con
SQL Server 2005
Integration Services
Agenda
• ¿Qué es SSIS?
• ¿Por qué SSIS?
• Conceptos
– Packages
– Control Flow
– Data Flow
• Otros conceptos
• Componentes
• Deployment
• Ejecución de Packages
¿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
¿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
¿Qué es SSIS?
• Servicio SSIS
• Motor de Workflow y de Flujo de Datos
• Arquitectura basado en Pipeline
¿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
¿Por qué SSIS?
Además brinda:
– Escalabilidad
– Facilidad de desarrollo
– Flexibilidad
– Acceso a fuentes de datos heterogéneas
– Administración y deploy
– Seguridad
Conceptos
• Packages
• Control Flow
• Data Flow
• Connection Manager
• Event Handler
• Configuration
• Log Provider
• Variables
• Data Source / Data Source View
Packages
• Se component por:
– Control Flow
– Data Flow
– Event Handlers
• Incluye soporte para:
– Manejo de errores
– Checkpoints
– Transacciones
– Configuración
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
Data Flow
• Forma de ejecución en paralelo
• Especializado en el manejo de datos
• Components
– Source
– Destination
– Transformation
• Non Blocking
• Semi-Blocking
• Blocking
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
Ejemplos
• Ejemplo de importación
• Ejemplo de exportación
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
Otros Componentes
• Data Flow Components
– LookUp
– DataReader Destination
– Scripting
– Multicast
– Derived Column
– Aggregate
– Data Conversion
Ejemplos
• Ejemplo con transformación de datos y
consumiendo la salida desde un WinForm
Deployment
• Diferentes Formas de Deploy
– File System
– Database
• Herramientas de Deploy
– Deployment Utility
– Save Copy As…
– Management Studio
– DtUtil
Ejecución de Packages
• Tipos de Ejecución
– Ejecución Remota
– Ejecución Local
• Jobs
• Xp_CmdShell
• dtexec / dtexecui
• Management Studio
• BIDS
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
Integración en el
Front End
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
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
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
DEMO
UI Automation
External Application Control
External Event Broker
Accesibility
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
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”
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.
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
DEMO
Composite UI
Acropolis
Smart Client Shell
UI Automation y Composite UI
combinados
• Los dos conceptos se puede combinar
para brindar una experiencia mas rica al
usuario
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.
CCF Integrated Agent Desktop
Context
Management
Desktop
Workflow
Call Management
(CTI integration)
Application
Integration
Active customer
sessions with
navigation tracking
DEMO
Composite UI y
Smart Client Shell
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
¡Muchas Gracias!

Más contenido relacionado

Similar a Introduccion_a_la_integracion_de_aplicaciones.ppt

1.4 tecnologiasWeb.ppt
1.4 tecnologiasWeb.ppt1.4 tecnologiasWeb.ppt
1.4 tecnologiasWeb.pptJaime Ramos
 
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegueAnálisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegueGianfrancoEduardoBra
 
Mulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integracionesMulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integracionesLarry Magallanes
 
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de serviciosCl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de serviciosTomás García-Merás
 
Guia para el diseño modular de sistemas
Guia para el diseño modular de sistemasGuia para el diseño modular de sistemas
Guia para el diseño modular de sistemasOscar Centeno
 
Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones DistribuídasJavierialv
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webRoberto Sanz Ciriano
 
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...Denodo
 
3. Sis distribuidos - Arquitectura.pptx
3. Sis distribuidos - Arquitectura.pptx3. Sis distribuidos - Arquitectura.pptx
3. Sis distribuidos - Arquitectura.pptxjarek35
 
Webinar Conceptos SOA & Oracle SOA Suite
Webinar Conceptos SOA & Oracle SOA SuiteWebinar Conceptos SOA & Oracle SOA Suite
Webinar Conceptos SOA & Oracle SOA SuiteatSistemas
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareSoftware Guru
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareturlahackers
 
Gestión del ciclo de vida de desarrollo
Gestión del ciclo de vida de desarrollo Gestión del ciclo de vida de desarrollo
Gestión del ciclo de vida de desarrollo atSistemas
 
AFE - 01 - Introduccion a Frameworks.pptx
AFE - 01 - Introduccion a Frameworks.pptxAFE - 01 - Introduccion a Frameworks.pptx
AFE - 01 - Introduccion a Frameworks.pptxCesiaReyes4
 

Similar a Introduccion_a_la_integracion_de_aplicaciones.ppt (20)

Sistema de gestor de base de datos
Sistema de gestor de base de datosSistema de gestor de base de datos
Sistema de gestor de base de datos
 
1.4 tecnologiasWeb.ppt
1.4 tecnologiasWeb.ppt1.4 tecnologiasWeb.ppt
1.4 tecnologiasWeb.ppt
 
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegueAnálisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegue
 
Mulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integracionesMulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integraciones
 
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de serviciosCl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
 
Unidad_1.pdf
Unidad_1.pdfUnidad_1.pdf
Unidad_1.pdf
 
DISEÑO DE SISTEMAS.pptx
DISEÑO DE SISTEMAS.pptxDISEÑO DE SISTEMAS.pptx
DISEÑO DE SISTEMAS.pptx
 
Guia para el diseño modular de sistemas
Guia para el diseño modular de sistemasGuia para el diseño modular de sistemas
Guia para el diseño modular de sistemas
 
Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones Distribuídas
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
 
3. Sis distribuidos - Arquitectura.pptx
3. Sis distribuidos - Arquitectura.pptx3. Sis distribuidos - Arquitectura.pptx
3. Sis distribuidos - Arquitectura.pptx
 
Webinar Conceptos SOA & Oracle SOA Suite
Webinar Conceptos SOA & Oracle SOA SuiteWebinar Conceptos SOA & Oracle SOA Suite
Webinar Conceptos SOA & Oracle SOA Suite
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Introducción SOA - Cloud Computing
Introducción SOA - Cloud ComputingIntroducción SOA - Cloud Computing
Introducción SOA - Cloud Computing
 
Presentación1
Presentación1Presentación1
Presentación1
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de Software
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de software
 
Gestión del ciclo de vida de desarrollo
Gestión del ciclo de vida de desarrollo Gestión del ciclo de vida de desarrollo
Gestión del ciclo de vida de desarrollo
 
AFE - 01 - Introduccion a Frameworks.pptx
AFE - 01 - Introduccion a Frameworks.pptxAFE - 01 - Introduccion a Frameworks.pptx
AFE - 01 - Introduccion a Frameworks.pptx
 

Último

Presentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptPresentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptCARLOSAXELVENTURAVID
 
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptx
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptxPPT SESION 5 ARTE Y CREATIVIDAD (1).pptx
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptxNeymaRojasperez1
 
Taller construcción de Prototipos Uno uML
Taller construcción de Prototipos Uno uMLTaller construcción de Prototipos Uno uML
Taller construcción de Prototipos Uno uMLAderMogollonLuna
 
PPT obligaciones ambientales oefa minan.pptx
PPT obligaciones ambientales oefa minan.pptxPPT obligaciones ambientales oefa minan.pptx
PPT obligaciones ambientales oefa minan.pptxDanmherJoelAlmironPu
 
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptx
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptxDIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptx
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptxjoselinepolar
 
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfTALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfMiguelGomez900779
 

Último (6)

Presentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.pptPresentación Materiales para la Construcción.ppt
Presentación Materiales para la Construcción.ppt
 
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptx
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptxPPT SESION 5 ARTE Y CREATIVIDAD (1).pptx
PPT SESION 5 ARTE Y CREATIVIDAD (1).pptx
 
Taller construcción de Prototipos Uno uML
Taller construcción de Prototipos Uno uMLTaller construcción de Prototipos Uno uML
Taller construcción de Prototipos Uno uML
 
PPT obligaciones ambientales oefa minan.pptx
PPT obligaciones ambientales oefa minan.pptxPPT obligaciones ambientales oefa minan.pptx
PPT obligaciones ambientales oefa minan.pptx
 
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptx
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptxDIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptx
DIAPOSITIVAS DRENAJE POSTURAL E INHALACIONES (3).pptx
 
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
TALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdfTALLER SOBRE METODOLOGÍAS DE DESARROLLO DE SOFTWARE..pdf
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)
  • 2. Agenda • Introducción – Problemática – Estilos – Patrones – Ciclo de vida • Integración de Procesos • Integración de Datos • Integración de Front End
  • 4. Desafíos de integración Silos / Integración Cruzando Fronteras Mayor cantidad de transacciones
  • 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
  • 10. Estrategias de integración • Transferencia de archivos • Acceso a base de datos compartida
  • 11. Estrategias de integración • Ejecución remota • Mensajería
  • 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
  • 24. Integración de aplicaciones con BizTalk Server 2006
  • 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”
  • 36. Extensibilidad • Custom Functoids – Functoid Wizard • Custom Pipeline Components – Pipeline Component Wizard • Custom Adapters – Adapter Wizard • Assemblies .NET
  • 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
  • 39. Integración de datos con SQL Server 2005 Integration Services
  • 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
  • 52. Ejemplos • Ejemplo de importación • Ejemplo de exportación
  • 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
  • 55. Ejemplos • Ejemplo con transformación de datos y consumiendo la salida desde un WinForm
  • 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
  • 63. DEMO UI Automation External Application Control External Event Broker Accesibility
  • 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.
  • 71. CCF Integrated Agent Desktop Context Management Desktop Workflow Call Management (CTI integration) Application Integration Active customer sessions with navigation tracking
  • 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