Arquitectura de Software -...
Transcript of Arquitectura de Software -...
Arquitectura de Proyectos de IT
© 2005
Integración
Ing. Gastón Coco Ing. Nicolás Passerini Ing. Juan Arias Ing. Gustavo A. Brey Ing. Santiago Blanco
2 Arquitectura de Proyectos de IT
Agenda
# Tema Duración
1 ¿Por qué integración? 10 min
2 Métodos de integración 25 min
3 Mecanismos de integración 25 min.
4 Tendencias 15 mins
5 Puntos a tener en cuenta / Conclusiones 10 min.
3 Arquitectura de Proyectos de IT
¿Por qué integración?
Es muy difícil que una aplicación
funcione completamente separada
e independiente
La complejidad de desarrollo, y
del negocio hace que se
desarrollen aplicaciones para
nichos específicos
La solución integral a los
problemas de negocio está dada
por las aplicaciones funcionando
en conjunto
4 Arquitectura de Proyectos de IT
Agenda
# Tema Duración
1 ¿Por qué integración? 10 min
2 Métodos de integración 25 min
3 Mecanismos de integración 25 min.
4 Tendencias 15 mins
5 Puntos a tener en cuenta / Conclusiones 10 min.
5 Arquitectura de Proyectos de IT
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/
6 Arquitectura de Proyectos de IT
Method level
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
Ejemplos Remoting
JCA
7 Arquitectura de Proyectos de IT
Application level
Este nivel se puede tomar como un subconjunto del anterior 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)
Ejemplos REST
Web Services
8 Arquitectura de Proyectos de IT
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.
Ejemplos •ETL
•DBLinks
9 Arquitectura de Proyectos de IT
Agenda
# Tema Duración
1 ¿Por qué integración? 10 min
2 Métodos de integración 25 min
3 Mecanismos de integración 25 min.
4 Tendencias 15 mins
5 Puntos a tener en cuenta / Conclusiones 10 min.
10 Arquitectura de Proyectos de IT
Mecanismos de integración
Puntuales / on-line
http/xml
Web Services
REST
Colas
Archivos
Base de datos
Socket
CORBA
Masivos / off-line
Colas
Archivos
Base de datos
ETL
11 Arquitectura de Proyectos de IT
Métodos de integración
http / xml – Utilización de un transporte de datos estándar
– Comprendido por casi todas las tecnologías
– Es necesario definir un contrato “no estándar” entre los participantes -> acoplamiento a nivel datos
– Se envían mucha cantidad de datos innecesaria, con poca información útil.
Web Services
– Generalmente, sobre http
– Mejora la contra de http/xml, haciendo que el contrato se genere de una forma estándar
– Se sigue enviando mucha cantidad de datos innecesaria
12 Arquitectura de Proyectos de IT
Métodos de integración
REST – REpresentational State Transfer
– Basado en HTTP y sus estándares asociados, como URI y HTML
– Principios
– Todo recurso debe ser identificable y alcanzable
– Debe existir una interfaz uniforme y restringida
– GET: Consulta / lectura
– POST: Alta / Creación
– PUT: Actualización / Modificación
– DELETE: Borrar
– Los recursos pueden tener múltiples representaciones
– HTML, XML, Json, YAML
– La comunicación debe ser stateless
13 Arquitectura de Proyectos de IT
Métodos de integración
REST (continuación) – Ubicuidad y portabilidad (heredado de HTTP)
– Independencia del contrato (un recurso puede definirse de diferentes maneras)
– Funciona sobre tecnologías ya probadas en ambientes heterogéneos
– Al no manejar estado, la escalabilidad horizontal es relativamente simple
– Al no tener un contrato definido, puede resultar engorroso acordar una forma de interacción entre las partes
– Ciertas cuestiones de integración no estan cubiertas
– Seguridad
– Manejo de transacciones
– Utilizarlo para la exposición o consulta de recursos, pero no para modificación o eliminación.
14 Arquitectura de Proyectos de IT
Métodos de integración
Colas / Comunicación asíncrona / Mensajería – Permite
Transmisión segura
Mensajería asíncrona
– Se basa en el intercambio de mensajes
– Partes
Emisor
Receptor
Canal
15 Arquitectura de Proyectos de IT
Agenda
# Tema Duración
1 ¿Por qué integración? 10 min
2 Métodos de integración 25 min
3 Mecanismos de integración 25 min.
4 Tendencias 15 mins
5 Puntos a tener en cuenta / Conclusiones 10 min.
16 Arquitectura de Proyectos de IT
SOA
Tantas cosas dijeron de SOA… pero … ¿Qué es SOA?
Esto no es SOA!!!!
•SOA != Web Services
•SOA no existe tal como lo venden los consultores
(perdón a quien lo sea)
•Lo mas importante es el concepto arquitectónico 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
17 Arquitectura de Proyectos de IT
BPM 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
Notice
of loss
Handling/
Assessment
Admin 3rd Party Settlement Allocation Claim
Personas
Sistemas
Call Center Coordinator Customer Loss
Adjuster
Claims
Handler
Internal
Assessor
18 Arquitectura de Proyectos de IT
Cloud Computing
Estilo arquitectónico donde recursos son publicados como servicios a través de internet.
Estos recursos son: – Altamente escalables
– Muchas veces virtualizados
La idea es no tener costos asociados con el mantenimiento, infraestructura ni licencias de base sobre los recursos utilizados por la empresa.
19 Arquitectura de Proyectos de IT
Cloud Computing (continuación)
Que tiene que ver con integración? – Muchas aplicaciones empresariales hacen uso de
funcionalidades que hoy están disponibles en internet:
– IAAS: Infraestructure as as service
– PAAS: Platform as a service
Ejemplos: – Google Apps
– GoGrid
– Microsoft Online Services
– Microsoft Azure
20 Arquitectura de Proyectos de IT
SaaS
Un tipo particular de Cloud Computing Modelo de negocios donde una empresa delega en un tercero la
implementación de una funcionalidad que de soporte al funcionamiento de la misma.
¿Qué tiene que ver la integración en todo esto?
– Es probable que la funcionalidad sea expuesta por un tercero (especialista en este tipo de sistemas) como un servicio.
– Es necesario que los servicios se expongan de una manera estándar para la industria en cuestión (por ejemplo, facturación, o CRM) -> Minimizar costos
– Es necesario que los servicios expuestos por el tercero manejen transaccionalidad, seguridad, escalabilidad, etc.
21 Arquitectura de Proyectos de IT
Agenda
# Tema Duración
1 ¿Por qué integración? 10 min
2 Métodos de integración 25 min
3 Mecanismos de integración 25 min.
4 Tendencias 15 mins
5 Puntos a tener en cuenta / Conclusiones 10 min.
22 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
•Multiplataforma
•Sincronismo / asincronismo
•Existencia de contratos estándares por industria
•SID
•N7
23 Arquitectura de Proyectos de IT
Conclusiones
Siempre caemos en la necesidad de integrar aplicaciones
Existen diferentes formas de integrar sistemas
Para seleccionar por la que vamos, 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.