arquitectura de proyectos de it -...

Post on 07-Feb-2018

223 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Arquitectura de Proyectos de IT

Arquitecturas de Integración

© 2006

Ing. Gastón EscobarIng. Nicolás PasseriniIng. Juan AriasIng. Santiago Blanco

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

2Arquitectura de Proyectos de IT

Conceptos

–Estándares� Web Services� REST

Enterprise Architecture

� Es la lógica organizadora de los procesos de negocio y la infraestructura IT, reflejando los requerimientos de integracióny estandarización que permitan seguir la estrategia empresarial.

� Es necesario definir– Sistemas interactuando

3Arquitectura de Proyectos de IT

– 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.

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

4Arquitectura de Proyectos de IT

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

– …

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:

5Arquitectura de Proyectos de IT

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”

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

6Arquitectura de Proyectos de IT

� Seguridad– Va en contra de la performance

– Las interfaces deben ser utilizadas por quienes esten habilitados

� Robustez– Transactionabilidad

– Entrega asegurada

Evolución Histórica

Monolíticos EAI BPM + EDA

7Arquitectura de Proyectos de IT

Distribuidos SOA

90´s 2000 2005+ 2008+

Sistemas distribuidos

� 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”

8Arquitectura 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ónCRM

9Arquitectura de Proyectos de IT

– Traducción

– Ruteo

– Entrega de mensajes

� Topologías– HUB/Spoke

– BUS

EAI

CRM

ERP

VentasHR

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.

10Arquitectura de Proyectos de IT

� Basado en estándares (JMS, SOAP, etc.)

ESB – Capacidades mínimas

� Communications– Routing, addressing, request/response, publish/subscribe, …

� Integration– Adapters, protocol transformation, …

11Arquitectura de Proyectos de IT

� Service interaction– Service Interface definition, substitution of service

implementation, …

� Management– Administration Capability

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.

12Arquitectura de Proyectos de IT

“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

Principios SOA

Principios SOA

Alineación con el negocio

Enfoques arquitectónicos

•Reducción de costo•Mejora del servicio•Oportunidades de negocio

•SOA<>ESB•SOA<>Productos•Abstracción•Encapsulamiento•Independencia

13Arquitectura de Proyectos de IT

Gobierno

Se requiere un soporte de la organización, ya que

supone no solo un cambio técnico, sino

organizacional

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

14Arquitectura de Proyectos de IT

– 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

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

15Arquitectura de Proyectos de IT

– 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

Métodos de integración

Application Level

User Interface Level

16Arquitectura de Proyectos de IT

Data Level

Method Level

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

17Arquitectura de Proyectos de IT

– 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

� 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

Métodos de integración

18Arquitectura de Proyectos de IT

– 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

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.

19Arquitectura de Proyectos de IT

métodos.

– Este nivel requiere la posibilidad de realizar llamadas remotas a los métodos (como RPC) en las aplicaciones integradas

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

20Arquitectura de Proyectos de IT

– 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.

Mecanismos de integración

� Puntuales / on line

– http/xml

– WebServices

– REST

– Colas / Mensajería

21Arquitectura de Proyectos de IT

Colas / Mensajería

– Archivos

– Base de datos

– Socket

– CORBA

� Masivos / off-line

– Colas / Mensajería

– Archivos

– Base de Datos

– ETL

Conceptos de Mensajería

� Permite� Transmisión segura� Mensajería asíncrona

� Se basa en el intercambio de mensajes

� Partes

22Arquitectura de Proyectos de IT

� Partes� Emisor� Receptor� Canal

Síncrono y Asíncrono

� Sincronismo– Comunicación directa

– Todas las partes involucradas estan presentes en el mismo momento.

– Ejemplos: http

23Arquitectura de Proyectos de IT

� 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?

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� Son independientes del protocolo

OrientaciónOrientaciónA ServiciosA Servicios

(Hoy)(Hoy)

24Arquitectura de Proyectos de IT

� Son independientes del protocolo� Están ampliamente aceptados� Basados en estándares

– Especificaciones WS-*

Basado en ClasesPolimorfismo

Encapsulamiento

Basado en InterfacesCarga Dinámica

Metadatos enejecución

Basado en MensajesSchema+Contrato

Ligados vía Políticas

OrientaciónOrientacióna Objetosa Objetos(1980s)(1980s)

ComponentesComponentes(1990s)(1990s)

(Hoy)(Hoy)

Web Services - Standards

� WSDL� SOAP� UDDI� WS-Security� WSRP� WS-Coordination

25Arquitectura de Proyectos de IT

� WS-Coordination� WS-Transactions� BPEL4WS� WS-Policy

REST

� REpresentational State Transfer

� Basado en el concepto de recursos

� Interface Uniforme– Todos responden a los mismos métodos (ej. HTTP)

26Arquitectura de Proyectos de IT

– Todos responden a los mismos métodos (ej. HTTP)

� Una alternativa a WS-*

� HTTP <> REST– Muchas aplicaciones HTTP no siguen los principios REST

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

27Arquitectura de Proyectos de IT

– 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

Puntos a tener en cuenta

� Disponibilidad de los datos� Momento en que son necesarios los datos� Transaccionalidad� Modificabilidad� Modelo canónico de entidades� Seguridad

28Arquitectura de Proyectos de IT

� Seguridad� Multiples plataformas� Sincronismo / Asincronismo� Existencia de contratos estándares por industria

– SID

– N7

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

29Arquitectura de Proyectos de IT

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

Bibliografía

� http://www.enterprise-architecture.info

� http://www.opengroup.org/architecture/togaf/

� Enterprise Integration Patterns – Designing, Building and

30Arquitectura de Proyectos de IT

� Enterprise Integration Patterns – Designing, Building and Deploying Messaging Solutions; Martin Fowler; Addison Wesley

� http://www.infoq.com/rest

� http://www.infoq.com/webservices

top related