Arquitecturas de Integración

Anuncio
Arquitectura de Proyectos de IT
Arquitecturas de Integración
Ing. Gastón Escobar
Ing. Nicolás Passerini
Ing. Juan Arias
Ing. Santiago Blanco
© 2006
Agenda
Enterprise Architecture
Integración de Sistemas
Evolución histórica
Métodos de integración
Mecanismos de integración
Conceptos de mensajería
Web Services
–Conceptos
Conceptos
–Estándares
Web Services
REST
2
Arquitectura de Proyectos de IT
Enterprise Architecture
Es la lógica organizadora de los procesos de negocio y la
infraestructura IT, reflejando los requerimientos de integración
y estandarización que permitan seguir la estrategia empresarial.
Es necesario definir
– Sistemas interactuando
– Forma de interacción
– Mecanismos de interacción
La estrategia de la empresa es lograda mediante la interacción
de todos los sistemas componentes de la EA.
3
Arquitectura de Proyectos de IT
Integración de Sistemas
Porque?
– Una arquitectura empresarial esta formada por distintas soluciones
SW, que deben interactuar -> Implementación de lo mejor para
cada situación
– Crear aplicaciones no es fácil -> La solución completa la dan todos
en conjunto
Queremos integrar:
– Personas
– Procesos
– Información
Tipos de integración
– Aplicación a aplicación
– Aplicaciones con personas
– Personas entre si
– Empresas entre si
4
– …
Arquitectura de Proyectos de IT
Definición
“La integración de sistemas significa el compartir datos y procesos
de negocio en forma irrestricta entre distintas aplicaciones
interconectadas…”
Gartner Group
A lo que podemos agregarle:
“…De forma tal que cada proceso de negocio o porción de datos sea
implementado de la mejor manera por la aplicación mas adecuada,
y compartido al resto”
5
Arquitectura de Proyectos de IT
Tener en cuenta
Performance
– Latencia de red, tiempo de interpretación de mensajes
Disponibilidad
– Los puntos de comunicación deben estar disponibles cuando se
requieran
Seguridad
– Va en contra de la performance
– Las interfaces deben ser utilizadas por quienes esten habilitados
Robustez
– Transactionabilidad
– Entrega asegurada
6
Arquitectura de Proyectos de IT
Evolución Histórica
Monolíticos
EAI
Distribuidos
90´s
7
2000
BPM + EDA
SOA
2005+
2008+
Arquitectura de Proyectos de IT
Sistemas distribuidos
8
Integración punto a punto
Fácil de implementar
Se acuerda la forma de integración entre las partes
Cada cliente conoce al servidor de la funcionalidad
Las conexiones entre las aplicaciones son “duras”
Arquitectura de Proyectos de IT
Enterprise Application Integration
EAI es el proceso de crear una infraestructura integrada para unir sistemas
dispares, a través de una empresa.
Nace de la necesidad de integrar sistemas heterogéneos como ERP, CRM, etc.
Comprende
–
Aceptación de mensajes
–
Transformación
–
Traducción
–
Ruteo
–
Entrega de mensajes
CRM
…
ERP
EAI
Topologías
–
HUB/Spoke
–
BUS
HR
9
Ventas
Arquitectura de Proyectos de IT
Enterprise Service Bus
Es un patrón de arquitectura.
Provee una infraestructura que elimina cualquier conexión directa entre los
consumidores y los proveedores de los servicios.
Infraestructura común para invocaciones, mensajes y eventos.
Basado en estándares (JMS, SOAP, etc.)
10
Arquitectura de Proyectos de IT
ESB – Capacidades mínimas
Communications
– Routing, addressing, request/response, publish/subscribe, …
Integration
– Adapters, protocol transformation, …
Service interaction
– Service Interface definition, substitution of service
implementation, …
Management
– Administration Capability
11
Arquitectura de Proyectos de IT
SOA
Es un enfoque basado en el concepto de Servicios. Las
necesidades y funciones de infraestructura requeridas para
crear sistemas distribuidos son provistos como servicios que
entregan, en forma individual o colectiva, funcionalidad para
aplicaciones u otros servicios.
“SOA consists of best practices, plus the discipline to follow them.
Expecting to get architecture by buying software is about as likely as
learning to play Mozart by buying a piano.”
Source: ZapThink
12
Arquitectura de Proyectos de IT
Principios SOA
•Reducción de costo
•Mejora del servicio
•Oportunidades
de negocio
Enfoques
arquitectónicos
Alineación con el
negocio
•SOA<>ESB
•SOA<>Productos
•Abstracción
•Encapsulamiento
•Independencia
Principios SOA
Gobierno
Se requiere un soporte de la organización, ya que
supone no solo un cambio técnico, sino
organizacional
13
Arquitectura de Proyectos de IT
SOA - Conceptos
SOA != Web Services
SOA no existe en una caja
Lo mas importante es el concepto de orientación a servicios
Es aplicable en contextos empresariales
– No se debe pensar un sistema isolado orientado a servicios
– Utilizar servicios para Comunicación
Principios
– Un sistema es una entidad proveedora de servicios
– Los servicios deben ser fácilmente ubicables
– Los servicios deben tener un contrato claro
14
Arquitectura de Proyectos de IT
BPM + CEP
BPM (Business Process Management)
– Metodologías, herramientas y prácticas para gestionar procesos de
negocio.
– Los procesos son la interacción entre sistemas y personas, o
personas entre si, aplicando reglas de negocio
– Desarrollarlos, administrarlos y mantenerlos no es trivial
– Se complementan con los Business Rules Engine
EDA (Event Driven Architecture)
– Se basa en el concepto de eventos como disparadores de acciones
– Los eventos son cambios de estado con significado de ser atendidos
– Complemento a SOA
– Estilos: Simple, Encadenados, Complejos
15
Arquitectura de Proyectos de IT
Métodos de integración
User Interface Level
Application Level
Method Level
Data Level
16
Arquitectura de Proyectos de IT
Métodos de integración
User interface level
– Esta integración se realiza generalmente con la aplicación final que
el usuario está operando.
– Se usa en casos en que el acceso directo a la base de datos no es
fácil o no es posible. También se usa cuado la lógica de negocios
está embebida en la UI.
– Por lo general se usa como la última posibilidad.
Ejemplos
– http://www.kapowtech.com
– http://www.openspan.com
17
Arquitectura de Proyectos de IT
Métodos de integración
Application Level
– Estas interfaces dan acceso a servicios provistos por una aplicación
particular o un paquete de servicios.
– Por lo general es considerada la mejor forma de acceder (es
transparente para la aplicación y preserva la integridad de datos de
la aplicación)
– JCA: J2EE Connector Architecture
18
Arquitectura de Proyectos de IT
Métodos de integración
Method Level
– Este nivel se puede tomar como un subconjunto del anterior.
Consiste en la posibilidad de compartir una serie de métodos
comunes. Estos métodos pueden ser agrupados en un servidor
central o estar distribuidos. Esta orientado a la reutilización de
métodos.
– Este nivel requiere la posibilidad de realizar llamadas remotas a los
métodos (como RPC) en las aplicaciones integradas
19
Arquitectura de Proyectos de IT
Métodos de integración
Data Level
– Este nivel de integración se realiza entre los repositorios de datos
de las aplicaciones a integrar.
– Push-based: llamadas a otra base de datos mediante links o stored
procedures.
– Pull-based: se maneja con triggers y polling. Con los primeros se
capturan eventos, y a partir de ahí se escribe información en tablas
que actúan de intefarce.
20
Arquitectura de Proyectos de IT
Mecanismos de integración
Puntuales / on line
– http/xml
– WebServices
– REST
– Colas / Mensajería
– Archivos
– Base de datos
– Socket
– CORBA
Masivos / off-line
– Colas / Mensajería
– Archivos
– Base de Datos
– ETL
21
Arquitectura de Proyectos de IT
Conceptos de Mensajería
Permite
Transmisión segura
Mensajería asíncrona
Se basa en el intercambio de mensajes
Partes
Emisor
Receptor
Canal
22
Arquitectura de Proyectos de IT
Síncrono y Asíncrono
Sincronismo
– Comunicación directa
– Todas las partes involucradas estan presentes en el mismo
momento.
– Ejemplos: http
Asincronismo
– No requieren que todas las partes involucradas esten presentes al
mismo momento.
– Fire and Forget
– Ejemplos: e-mail, jms
¿Cuándo usar uno y otro?
23
Arquitectura de Proyectos de IT
Qué es un WebService?
Es una colección de protocolos y estándares utilizados para
intercambiar datos entre aplicaciones.
Permiten comunicar aplicaciones por medio de los mismos
protocolos que soportan Internet
Son independientes de la plataforma
Orientación
A Servicios
Son independientes del protocolo
(Hoy)
Están ampliamente aceptados
Basados en estándares
Basado en Mensajes
–
Especificaciones WS-*
Basado en Clases
Polimorfismo
Encapsulamiento
Basado en Interfaces
Carga Dinámica
Metadatos en
ejecución
Schema+Contrato
Ligados vía Políticas
Componentes
(1990s)
Orientación
a Objetos
(1980s)
24
Arquitectura de Proyectos de IT
Web Services - Standards
25
WSDL
SOAP
UDDI
WS-Security
WSRP
WS-Coordination
WS-Transactions
BPEL4WS
WS-Policy
Arquitectura de Proyectos de IT
REST
REpresentational State Transfer
Basado en el concepto de recursos
Interface Uniforme
– Todos responden a los mismos métodos (ej. HTTP)
Una alternativa a WS-*
HTTP <> REST
– Muchas aplicaciones HTTP no siguen los principios REST
26
Arquitectura de Proyectos de IT
REST
Principios
– Todo recurso tiene un ID
– URI (http://apit.edu.ar/clases/integracion)
– Unir los recursos relacionados
– A través de sus Ids
– Utilizar métodos estándares
– Basado en la especificacion HTTP (GET, POST, PUT, DELETE)
– Los recursos pueden tener multiples representaciones
– Para diferentes necesidades
– Utilizan comunicación stateless
– Mayor escalabilidad, independencia client - server
27
Arquitectura de Proyectos de IT
Puntos a tener en cuenta
Disponibilidad de los datos
Momento en que son necesarios los datos
Transaccionalidad
Modificabilidad
Modelo canónico de entidades
Seguridad
Multiples plataformas
Sincronismo / Asincronismo
Existencia de contratos estándares por industria
– SID
– N7
28
Arquitectura de Proyectos de IT
Conclusiones
Siempre caemos en la necesidad de integrar aplicaciones
Existen diferentes formas de implementar la integración
Para seleccionar la mas adecuada, debemos tener en cuenta
muchas cuestiones
Lo mas importante, es no ir siempre por la mas fácil o
acostumbrada, sino tener un criterio que nos permita elegir la
mejor alternativa
29
Arquitectura de Proyectos de IT
Bibliografía
http://www.enterprise-architecture.info
http://www.opengroup.org/architecture/togaf/
Enterprise Integration Patterns – Designing, Building and
Deploying Messaging Solutions; Martin Fowler; Addison Wesley
http://www.infoq.com/rest
http://www.infoq.com/webservices
30
Arquitectura de Proyectos de IT
Descargar