Distribuidos
Agenda
Sistemas Distribuidos
Integracin
Sistemas Distribuidos
Un sistema distribuido es aquel en donde sus componentes
(hardware y software) se encuentran ubicados en una o ms
computadores conectadas a una red y a su vez comunican y
coordinan sus acciones mediante el envo exclusivo de mensajes.
Ejemplos tpicos:
Internet
Intranet
Computacin Mvil
intranet
ISP
backbone
satellite link
desktop computer:
server:
network link:
email server
Desktop
computers
Web server
email server
File server
print
other servers
the rest of
the Internet
router/firewall
Internet
Host intranet
Wireless LAN
Mobile
phone
Laptop
Printer
Camera
WAP
gateway
Host site
Home intranet
Heterogeneidad
Redes diferentes
Diferentes Sistemas Operativos: Unix, Linux, Windows, Chrome, etc.
Diferente representacin de datos.
Necesidad de definir estandares.
Cdigo mvil
Problemas a la hora de ejecutarse en otro Sistema Operativo.
Cdigo que puede enviarse y ejecutarse en otro dispositivo de
cmputo.
Extensibilidad
Facilidad de adicin de nuevos servicios.
Implica que el sistema este documentado y construido de forma
abierta.
Ejemplos:
Internet RFC: (www.ietf.org)
Corba : (www.omg.org)
Seguridad
La seguridad
componentes:
para
los
recursos
de
informacin
tienen
tres
Escalabilidad
Un sistema es escalable cuando conserva su efectividad al
incrementarse de manera significativa el nmero de recursos y el
nmero de usuarios.
Retos:
Control de coste de recursos fsicos
Control de la prdida de rendimiento
Prevencin de desbordamiento
Evitar cuellos de botella.
Tratamiento de fallos
Fallos en sistemas distribuidos con considerados como parciales.
Tcnicas:
Deteccin de fallos (checksum)
Enmascaramiento de fallos (reenvo de mensajes si lleg mal)
Tolerancia de fallos ( si falla muestra un mensaje)
Recuperacin frente a fallos (rollback)
Redundancia.
Transparencia
Oculta al usuario y al programador la naturaleza distribuida del sistema
(ubicacin y caractersticas tcnicas).
Formas de transparencia:
Sistemas Distribuidos
Cmo enfrentamos los retos o desafos que tenemos al momento de
implementar una solucin distribuida?
Manejo de estndares
Manejo de estrategias de Integracion de sistemas
Manejo del concepto de servicios
Nuevas Tecnologas: Servicios en la Nube
PAAS
IAAS
SAAS
Agenda
Sistemas Distribuidos
Integracin
Qu es Integracin?
Nuevo Punto de vista IT
Compartir datos y procesos
Utilizar aplicaciones o fuentes de datos
Ubicuidad
BD
Application
Server
WebPass
BD
User
Web
Server
Application
Server
BD
Legacy
System
Autor: Hernn Rodrguez Ayala
Situacin Actual
Por qu necesitamos Integracin?
Mejorar la ventaja competitiva
Rapidez frente al cambio (negocio)
Mejorar la eficiencia operacional
Estrategia organizacional
Situacin Actual
Tipos de Aplicaciones
Aplicaciones desarrolladas dentro de la compaa
Soluciones de Terceros a medida
Aplicaciones comerciales como los ERP
Soluciones parciales de integracin
Resultado
Combinaciones de mltiples capas: monoltico, C/S, multi capas
Soluciones combinadas de procedimientos, objetos, componentes
Mezcla de lenguajes de programacin
Diferentes tipos de bases de datos: jerrquicos, relacionales, objetos
Diferentes tipos de middleware: mom, orb, rpc, etc
Mltiples formas de transmitir la informacin: request / reply, tpicos, etc.
Diferentes middleware para el control de transacciones y seguridad
Diferentes formas de compartir datos
Diferentes formas de intercambio de datos: ASCII, EDI, XML
Requerimientos y Estrategias
Dos importantes objetivos para el sistema de informacin:
Entrada nica de datos
Garantiza la consistencia y minimiza los errores de entrada
Difcil de alcanzar al 100% en el mundo real.
Los usuarios utilizan mltiples aplicaciones en el da a da
Necesidad de herramientas para el manejo y transferencia de los datos entre
aplicaciones
Acceso a la informacin
Sincronizacin de Datos
Cambios realizados en una parte del sistema de informacin debe ser actualizado o
comunicado a las otras partes inmediatamente o en el muy corto plazo.
Necesidad de una estrategia de acceso a la informacin en el back end
Escenarios distribuidos: dificultad de sincronizacin y acceso
Estrategias de Integracin
Tipos de Aplicaciones
Aplicaciones Primarias: de importancia para toda la compaa, desarrollados en la
organizacin,por terceros o administrados por el rea de IT
Aplicaciones de Segundo orden: utilizados por un grupo de empleados y
frecuentamente de desarrollo personalizado. Facilitan el da a da del empleado
pero no son soportados por las aplicaciones primarias.
Reto
Incluir tanto las aplicaciones primarias como las de segundo orden
Problemas potenciales:
Transferencia de informacin
Importancia de documentos de una aplicacin a otra.
Estrategias de Integracin
Bottom-up
Se concentra en problemas individuales
No se coordinan proyectos de integracin
Da la impresin de estar avanzando, cuando en realidad se tiene que retroceder
muchas veces
No se visualiza la arquitectura global para la integracin y las soluciones son
medaticas (app webs, parches, traductores, lotes, etc)
Top - down
Enfocado en la definicin del marco arquitectural de integracin
Debe de cubrir todos los posibles escenarios de los problemas del negocio a nivel
micro y macro
Se deben de reconocer las dependencias entre las aplicaciones y la organizacin
Debe proporcionar lneas y guas que permiten planificar las tareas y
responsabilidad en el rea de IT
Estrategias de Integracin
Muchas veces en las empresas se utilizan ambas estrategias
Enfoque: inside-out
Refleja los requerimientos de integracin y toma en cuenta diferentes criterios:
aplicaciones existentes, arquitecturas y dems requerimientos relacionados con el
nuevo sistema de informacin.
Beneficios de la integracin
Reutilizacin: Servicios y reutilizacin
Encapsulamiento: Acceso a los servicios identificados mediante una interface
Distribucin: La definicin de un servicio no est amarrado a una PC local
Particionamiento: El manejo de capas permite una flexibilidad en la composicin
de soluciones
Escalabilidad: Mejora del rendimiento y capacidad implementar tcnicas de
optimizacin en las capas medias para distribuir y replicar servicios core
Rendimiento mejorado: Las aplicaciones pueden tomar ventaja de caractersticas
de servidores: pooling, threading, etc
Confiabilidad: Los cuellos de botellas pueden ser identificados y mejorados
rpidamente
Composicin: flexibilidad y soporte al negocio
Desarrollo rpido: enfocados en solucionar problemas de negocio manteniendo la
infraestructura en una capa abstracta.
Administracin: capacidad de identificar un servicio particular que puede necesitar
mantenimiento
Y otros ms.
Tipos de Integracin
Enfoque Tradicional
Tipos de Integracin
A nivel de Datos
Se enfoca en trasladar datos entre aplicaciones
No es una implementacin fcil
Complejidad en la estructura de las bases de datos y los tipos de datos
representados
Alto acoplamiento, pues se necesita saber por adelanto las estructuras dentro del
repositorio de datos
Problemas con la semntica de los datos
Restricciones de licenciamiento en productos de terceros o adquiridos
Datos exportados mediante archivos planos de texto
Tipos de Integracin
Integracin de Aplicaciones
Integracin a Nivel de Mensajes
Mayor flexibilidad
Desacoplamiento de aplicaciones
Mensajes
enviados
Mensajes
procesados
No
disponibles
Redireccionamiento
inmediato
adicionales
especiales
Tipos de Integracin
A nivel de Aplicaciones
Se enfoca en compartir lgica de negocio.
Se utilizan libreras (API).
Las aplicaciones exponen su funcionalidad a travs de las APIs
Problema en la forma como trabajar con la API y su tecnologa
El objetivo final es utilizar una interface para comunicarse con la aplicacin y
enmascarar las diferencias tecnolgicas para el acceso
Esto ltimo lo podemos encontrar mediante la definicin de servicio.
Tipos de Integracin
Aplicacin 2
Aplicacin 1
API
API
API
API
API
API
Aplicacin 3
API
Aplicacin 4
API
Tipos de Integracion
Integracin a Nivel de Objetos
Utilizado en aplicaciones DCOM, CORBA, RMI
til cuando los modelos no son compatibles
Errores manejados adecuadamente por aplicacin
Algunas desventajas
Alta
Todos
Utilizando
Tipos de Integracin
A nivel de Procesos
Permite el soporte de los procesos dentro de la organizacin donde las actividades
del proceso interactan con sistemas de informacin existentes.
Las interfaces del nuevo sistemas de informacin estn basadas en un nuevo
diseo arquitectural
Sin embargo las funcionalidades no se rescriben, sino se reutilizan o se componen.
Las aplicaciones existentes se modifican de tal manera que expongan un conjunto
de interfaces para que trabajen con la arquitectura nueva.
Tipos de Integracin
A nivel de Presentacin
Permite la consolidacin de los resultados finales a nivel del usuario
Permite ocultar mediante una abstraccin la forma de invocar a los elementos en
las capas interiores
Debera ser un elemento desacoplado y comunicarse con las otras capas mediante
interfases
Se ocultan a los sistemas de informacin legacy y las modificaciones que se
puedan necesitar realizar
Tipos de Integracin
A nivel de Negocios (Business to Business)
Se espera informacin al momento, confiable
Se requiere el procesamiento de las peticiones bajo demanda
Propagacin de los datos a partir de una compaa origen hacia una compaa
destino
Es necesario en ambos lados estar a un nivel de integracin empresarial bastante
alto para dar este paso.
Infraestructura de Integracin
Un modelo de infraestructura
Las siguientes capas y servicios constituyen los elementos bsicos para poder
implementar algn proyecto de integracin.
Infraestructura de Integracin
Capa de Comunicaciones
Proporciona la transparencia para el acceso a diferentes sistemas
Encapsula los detalles de bajo nivel en la comunicacin
Diferentes tipos de middleware proporcionan soluciones para comunicacin:
JDBC, vista unificada para BD
MOM, comunicacin asncrona de mensajes
RPC, proporciona servicios de comunicacin sncronos
ORB
ESB
Proporciona adems transparencia en la ubicacin, separndola de la lgica de
aplicacin
Infraestructura de Integracin
Capa de Ruteo y Brokering
Debe de adaptar la comunicacin entre las aplicaciones, de tal manera que permita
la interoperabilidad entre ellas.
Tiene ciertas responsabilidades:
Proporciona un medio para obtener datos a partir de mltiples fuentes
(agregacin)
Proporciona un medio para procesar los datos y transformarlos de tal manera
que puedan ser utilizados por las aplicaciones
Obtener los resultados a partir de todas las aplicaciones y presentarlos de
manera consistente. (sntesis)
Para cada una de las tareas mencionadas,maneja un esquema de metadata.
Infraestructura de Integracin
Capa de Transformacin
Servicio que debe ser parte de los elementos de integracin
Basado en tecnologoa XSLT (Extensible StyleSheet for Transformations)
Permite la transformacin de schemas e incluso la aplicacin de reglas de
transformacin de manera declarativa
Slo es necesario un motor XSLT, hacindolo independiente de la aplicacin o
plataforma de desarrollo.
Infraestructura de Integracin
Capa de inteligencia de negocios
Responsable por presentar la interface de alto nivel a otras aplicaciones o usuarios.
Presenta los datos a los usuarios de una manera entendible.
Tiene participacin en los escenarios B2B
Presentado e implementado a travs de tecnologas como Portales.
Tambin tiene conexin con tecnologas como OLAP, minera de datos, sistema de
soporte de decisiones, etc.
Infraestructura de Integracin
Servicios: Transacciones
Encargado de asegurar la ejecucin de las actividades dentro de los procesos de
negocio de una manera transaccional.
Respeta las propiedades ACID y los procesos de larga duracin
Garantiza adems el aislamiento de una operacin de otras operaciones en curso,
y garantiza que la salida de la operacin es almacenada en un medio persistente
antes de continuar.
Servicios: Seguridad
Definicin de acceso nico para los sistemas
Definicin declarativa antes que programada
Debe de contemplar la seguridad en las cuatro capas anteriores
Toma en consideracin temas como encriptamiento del canal, autenticacin,
autorizacin y auditoras
Infraestructura de Integracin
Servicios: Ciclo de vida
Medio de controlar el ciclo de vida de todas las aplicaciones involucradas.
Debe permitir el reemplazo de una versin de la aplicacin sin afectar la realizacin
de las otras aplicaciones en un entorno de integracin
Se obtiene mediante el bajo acoplamiento (minimizado) entre las aplicaciones.
Servicios: Nombres
Permita la implementacin de la transaparencia de ubicacin para una aplicacin o
recurso.
Idealmente el nombre debe ser nico y unificado y debe expresar cierta lgica
organizacional.
Infraestructura de Integracin
Servicios: Escalabilidad
Define la forma como las aplicaciones pueden escalar arquitecturalmente.
Puede ser implementada a travs de prototipos para verificar.
Se debe tomar en consideracion aquellas aplicaciones que por su naturaleza no
son escalables
Servicios: Administracin
Proporciona mtodos y herramientas para administrar servicios.
Proporciona adems manejo de versiones y configuraciones
Facilidad en la administracin en caliente y formas declarativas
Reglas
Definiciones, formatos de datos, flujos, eventos, informacin para procesamiento,
etc.
Debe ser independiente de las aplicaciones y manejada a travs de repositorios.
Centralizadas y nicas
Tecnologas de Integracin
Tecnologas
Interoperabilidad es la clave para la integracin
Es muy difcil de alcanzar de manera operacional al100% incluso siguiendo
estndares
Para aplicaciones legacy la interoperabilidad est definida por el propietario y
puede ser o no basada en estndares. Por ejemplo SAP NetWeaver o NW PI.
Los elementos de conectividad son ofrecidos bajo el nombre genrico de
middleware
Introduce una capa arquitectural abstracta reduciendo la complejidad y permitiendo
un bajo acoplamiento
Tecnologas de Integracin
Acceso a Bases de Datos
Permite al acceso a diferentes motores de bases de datos
El acceso a las bases de datos puede ser mediante objetos o funcionalidades
Ejemplos:
JDBC
JDO
ODBC
ADO .NET
Orientado a Mensajes (MOM)
Permite la comunicacin entre plataformas heterogneas y distribuidas
Generalmente se conectan mediante el uso de APIs
Est presente tanto en el lado cliente como en el lado servidor
Proporciona comunicacin asncrona y utiliza repositorios denominadas colas
Tecnologa de Integracin
Orientado a Mensajes (MOM)
La mayora de los MOM son productos propietarios y algunas veces incompatibles
Un nico producto puede afectar escalabilidad, portabilidad
Ejemplo de estndar: JMS
Tecnologas de Integracin
Invocaciones a procedimientos remotos (RPC)
Arquitectura cliente/ servidor
Basado en conceptos procedurales: llamadas a funciones
Soporte de comunicaciones sncronas (call / wait request / reply)
RPC esconde los detalles de la forma de comunicacin en un componente
hacindolo aparecer como local.
RPC necesita que el cliente se encuentre en lnea para aceptar la comunicacin
Tecnologas de Integracin
Monitor de Transacciones
Primera generacin de servidores de aplicaciones
Monitorean y coordinan transacciones entre mltiples recursos
Proporcionan adems administracin de rendimiento y seguridad
Proporcionan tambin optimizacin de recursos como pooling, balanceo de carga.
Tradicionalmente, se le ha utilizado en los sistemas legacy.
Tecnologas de Integracin
Object Request Broker
Maneja la comunicacin entre objetos y componentes distribuidos
No hay necesidad de preocuparse por los detalles de la comunicacin
Proporcionan
Transparencia de ubicacin
Transparencia de lenguaje de programacin
Transparencia de protocolo
Transaparencia de sistema operativo
Ejemplos de estndares:
OMG CORBA
Java RMI RMI/IIOP
COM/DCOM/COM+
Tecnologas de Integracin
Servidores de Aplicaciones
Implementan una serie de elementos de tipo middleware
Implementan el concepto de transaccionalidad y de administracin de recursos
Definen la infraestructura de las aplicaciones que se ejecutarn permitiendo su fcil
administracin y manejo de ciclo de vida
Algunas caractersticas deseadas:
Interoperabilidad y plataforma
Apertura a estndares
Estabilidad de la plataforma
Tecnologas de Integracin
Web Services
Manejo de interperabilidad
Independencia de plataforma tecnolgica
Framework de WS-I o WS-*
Enterprise Service Bus
Agrega flexibilidad en la comunicacin entre servicios, simplifica la integracin y
permite el reuso de los servicios
Permite la interconexin de elmentos de diferentes tecnologas
Integracin de Aplicaciones
Un vistazo final....
B2B
DUDAS?
Autor: Hernn Rodrguez Ayala
Descanso