60
SOA – Cloud Computing Grupo 9 Nicolas Behotas Marco Yamil Caraballo Sosa Nicolás Fischer Juan Ignacio Marderwald Rosario Mensi José Ignacio Orlando Gustavo Vasoin

Introducción SOA - Cloud Computing

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Introducción SOA - Cloud Computing

SOA – Cloud Computing

Grupo 9Nicolas Behotas

Marco Yamil Caraballo SosaNicolás Fischer

Juan Ignacio MarderwaldRosario Mensi

José Ignacio OrlandoGustavo Vasoin

Page 2: Introducción SOA - Cloud Computing

Agenda• SOA.

– ¿Por qué SOA?– ¿Qué es SOA?– ¿Por qué usar SOA?– Arquitectura.– Aplicaciones.

• Cloud Computing.– ¿Qué es CC?– Capas.– Tipos de nubes.– Ventajas y desventajas.

• SOA vs Cloud Computing.

Page 3: Introducción SOA - Cloud Computing

Ejemplo disparador

• Hace un tiempo los dispositivos electrónicos eran sistemas autocontenidos y monolíticos.

• Hoy, cada componente es “pluggable and independent”.

• Conexiones estandarizadas.

Page 4: Introducción SOA - Cloud Computing

Evolución Arquitecturas

Mainframes

Sistemascentralizados

Cliente/Servidor

K-tiers

SOA

Page 5: Introducción SOA - Cloud Computing

Evolución Orientación Servicios

• Reutilizar código.

• Problemas de mantenimiento.

• Reutilizar funcionalidad.

• Múltiples plataformas.• Múltiples protocolos.• Integración de aplicaciones.• Sistemas distribuidos.

Modular

POO

Componentes

Servicios

Page 6: Introducción SOA - Cloud Computing

Definición formal de SOA

Arquitectura diseñada para construir aplicaciones de negocio a partir de un

conjunto de componentes de bajo acoplamiento, dirigidos de forma tal que

ofrezcan niveles de servicio bien definidos, y que reutilizan servicios internos o externos a

la red.

Page 7: Introducción SOA - Cloud Computing

Definición formal de SOA

Arquitectura diseñada para construir aplicaciones de negocio a partir de un

conjunto de componentes de bajo acoplamiento, dirigidos de forma tal que

ofrezcan niveles de servicio bien definidos, y que reutilizan servicios internos o externos a

la red.

• Funcionalidad bien definida, autónoma y que no depende del contexto o estado de otros servicios.

• Punto final de una conexión.

Page 8: Introducción SOA - Cloud Computing

Definición formal de SOA

Arquitectura diseñada para construir aplicaciones de negocio a partir de un

conjunto de componentes de bajo acoplamiento, dirigidos de forma tal que

ofrezcan niveles de servicio bien definidos, y que reutilizan servicios internos o externos a

la red.

• Independencia del cliente respecto de la implementación de los servicios.

Page 9: Introducción SOA - Cloud Computing

Definición formal de SOA

Arquitectura diseñada para construir aplicaciones de negocio a partir de un

conjunto de componentes de bajo acoplamiento, dirigidos de forma tal que

ofrezcan niveles de servicio bien definidos, y que reutilizan servicios internos o externos a

la red.

• ¿Servicio bueno? ¿Malo? ¿Medio? ¿Intermitente? ¿Impredecible?

• Se definen medidas de respuesta deseadas ante faltas o fallas que ocurran durante el proceso.

• Enfocados principalmente en disponibilidad y rapidez del servicio o performance.

Page 10: Introducción SOA - Cloud Computing

¿Qué es SOA?

Service Oriented Architecture

Funciones del negocio de granularidad gruesa con bajo acoplamiento que pueden ser descubiertos y

accedidos por parte de otras aplicaciones.

Page 11: Introducción SOA - Cloud Computing

¿Qué es SOA?

Service Oriented Architecture

Infraestructura de aplicaciones más ágiles que responden rápidamente a los cambios y demandas del

negocio a la hora de recomponer servicios.

Page 12: Introducción SOA - Cloud Computing

SOA

Service Oriented Architecture

Brinda amplio marco para que las empresas puedan construir, desplegar, recomponer

y administrar los servicios.El acceso se realiza a través de protocolos estándar.

Page 13: Introducción SOA - Cloud Computing

Algunos beneficios

•Publicación de servicios.

•Principio fundamental de SOA.

Reusabilidad

•Bajo acoplamiento.

Flexibilidad

•Protocolos y tecnologías estándar.

•Abstracción de servicios mediante interfaces.

Interoperabilidad

•Reutilización de servicios existentes.

•Bajo acoplamiento facilita modificaciones + mantenimiento.

Eficiencia en costo

•Uso de un Enterprise Service Bus (ESB) capaz de balancear la carga.

Escalabilidad

Page 14: Introducción SOA - Cloud Computing

Vista conceptual SOA

Directorio de servicios

Consumidor de servicios

Proveedor de servicios

2. Búsqueday recuperación del

servicio.

1. Registro del documento de

descripción del servicio.

3. Invocación al servicio vía mensaje (acción a realizar +

datos de entrada)

4. Respuesta vía mensaje(resultados)

Page 15: Introducción SOA - Cloud Computing

Framework de implementación de SOA

Asegura el intercambio de mensajes entre los diferentes componentes de la arquitectura.

Page 16: Introducción SOA - Cloud Computing

• Información sobre componentes de software disponibles o en uso

• Reglas de conexión y descripción asociadas a cada componente

• Publicaciones de business services.

Framework de implementación de SOA

Page 17: Introducción SOA - Cloud Computing

Framework de implementación de SOA

• Provee la tecnología necesaria para conectar personas a personas, personas a procesos o procesos con procesos.

Page 18: Introducción SOA - Cloud Computing

Framework de implementación de SOA

• Cómo se estructuran las tareas.• Cómo se realizan.• Cuál es su orden correlativo.• Cómo se sincronizan.• Cómo fluye la información que soporta

las tareas.• Cómo se le hace seguimiento al

cumplimiento de las tareas.

Page 19: Introducción SOA - Cloud Computing

Framework de implementación de SOA

• Se asegura de que los niveles de servicio sean aceptables

• Utiliza los servicios de la capa de infraestructura

Page 20: Introducción SOA - Cloud Computing

Framework de implementación de SOA

• Conjunto de servicios para dar soluciones a problemas relacionados con la infraestructura (plumbing).

Page 21: Introducción SOA - Cloud Computing

Enterprise Service Bus - ESB

• Utilizado para transportar mensajes entre los componentes de software.

• Permite rápida integración de sistemas complejos.• Evita acoplamiento entre tecnologías.• Altamente escalable (con infraestructura que soporta alta

demanda).• Soporte de diversos protocolos.• Componente complejo!

– Más recomendable comprarlo que desarrollarlo desde cero.– Proveedores: IBM, Oracle, Cape Clear, …

Page 22: Introducción SOA - Cloud Computing

ESB - Funciones

Page 23: Introducción SOA - Cloud Computing

ESB - Funciones

Pasaje de mensajes•Soporta varios tipos.•Provee ruteo inteligente basado en contenido.•Entrega confiable.

Management•Monitorea su propia performance por latencias de mensajes.•Mecanismos de prioridad de mensajes.•Mecanismos de balanceo de carga.

Interfaces•Valida mensajes frente a la definición de su esquema que responde a la almacenada en el registro.•Soporta estándares de web services.•Adaptadores de aplicaciones para interfaces de distinto tipo a las de web services.

Page 24: Introducción SOA - Cloud Computing

ESB - Funciones

Mediación•Transforma formatos de mensajes.•Traducción entre entornos mediante protocolos.

Metadata•Metadata: descripciones acerca de la forma y tipo de los elementos que transportan los mensajes, su orden, su significado, etc.•Transformación de los datos utilizando metadata definida en el registro.

Seguridad•Encripta mensajes cuando es necesario.•Modelo de seguridad estandarizado para autorizaciones, autentificaciones y auditoría de todas las actividades en el ESB•Navegación sin bloqueos por firewalls.

Page 25: Introducción SOA - Cloud Computing

SOA Registry

• Referencia central diseñada para el descubrimiento de servicios.

• Es un registro de tiempo real.• 3 funciones principales:

– Publicar y permitir el descubrimiento de servicios.– Almacenar y administrar metadata de servicios.– Gobernar el uso de servicios.

Page 26: Introducción SOA - Cloud Computing

Broker

• Inicia las cosas!• Conecta servicios entre sí, permitiendo el flujo de procesos

del negocio.• Hace trabajar a todas las conexiones entre componentes.• Actúa como “aguja” que “hila” un componente con el

siguiente en un proceso del negocio.• Utiliza información de los componentes residente en el

SOA registry y junta los componentes para el workflow engine.

Page 27: Introducción SOA - Cloud Computing

Ejemplo ejecución broker

Page 28: Introducción SOA - Cloud Computing

Ejemplo ejecución broker

• Un usuario se loggea y solicita la ejecución de una aplicación.

• Como esta aplicación no está corriendo, el broker es notificado y entra en acción.

Page 29: Introducción SOA - Cloud Computing

Ejemplo ejecución broker

• Broker consulta al registro para saber qué es lo que tiene que hacer para poder correr la aplicación.

• El registro consulta primero al motor de reglas para verificar si la aplicación está en condiciones de ser ejecutada.

Page 30: Introducción SOA - Cloud Computing

Ejemplo ejecución broker

• Broker pone a ejecutar los sub-servicios en caso de que no estén activos.

Page 31: Introducción SOA - Cloud Computing

Ejemplo ejecución broker

• Broker chequea qué interfaces entre componentes necesita para poder interconectarlos.

• Información sobre las conexiones figura en adaptadores, y es creada la primera vez que se conectan los componentes.

• Broker sólo especifica qué subconjunto de información de interfaz utilizar.

• Los componentes pueden entonces enlazarse (bind) entre sí de manera directa.

Page 32: Introducción SOA - Cloud Computing

Ejemplo ejecución broker

• Regla: “Compras superiores a $1000 requieren chequeo de crédito”.

• Es necesario invocar a un servicio externo.• El servicio sólo es conectado cuando se lo necesita.• Order Processing solicita conexión con Credit Checking

al broker.

Page 33: Introducción SOA - Cloud Computing

Ejemplo ejecución broker

• Eureka! El broker ya pudo proveer la información necesaria al motor de reglas para que ejecute las reglas almacenadas en él.

• Los cuatro componentes son enlazados al motor de reglas, y el proceso empieza a ejecutarse.

Page 34: Introducción SOA - Cloud Computing

¿Qué hicimos hasta ahora?

1. Un cliente peticiona la ejecución de un servicio.2. El broker entra en acción consultando al registro y estableciendo la conexión de los componentes necesarios del servicio.3. Se crean los enlaces con la ayuda del ESB para manejo de mensajes.

Page 35: Introducción SOA - Cloud Computing

Separación Lógica/Tecnología

Propósito de SOA → flexibilizar ante cambios, sin tener que enfocarse en la infraestructura subyacente.Para liberar el negocio de la tecnología, se separa la lógica del negocio de la infraestructura (plumbing).

Logic business

technology

Page 36: Introducción SOA - Cloud Computing

Plumbing

Software técnico complejo que mantiene el centro de datos y la red en funcionamiento

Business Service Layer

Plumbing Service Layer

Hardware Layer

Page 37: Introducción SOA - Cloud Computing

Plumbing - ¿Qué involucra?

Monitoreo de nivel de servicio.Identificación de faltas/fallas.

Manejo de fallas.Modelamiento de performance y optimización.Acciones de provisión y remedio automáticas.

Page 38: Introducción SOA - Cloud Computing

SOA Supervisor

• Asegura que la plataforma subyacente al entorno SOA trabaje de manera consistente y predecible.

• Punto central de control, responsable de dirigir.

• Ante problemas de performance, envía detalles al servicio de plumbing usando reportes de monitores iniciados por el broker.

Page 39: Introducción SOA - Cloud Computing

SOA supervisor

Page 40: Introducción SOA - Cloud Computing

SOA supervisor

• Broker notifica al supervisor comienzo de un nuevo proceso del negocio.

Page 41: Introducción SOA - Cloud Computing

SOA supervisor

• El supervisor obtiene detalles del proceso completo para setear el monitoreo de los componentes necesarios.

Page 42: Introducción SOA - Cloud Computing

SOA supervisor

• El supervisor obtiene detalles del proceso completo para setear el monitoreo de los componentes necesarios.

Page 43: Introducción SOA - Cloud Computing

SOA supervisor

• Delega el monitoreo al Service Level Agreement Monitoring, quien a su vez activa agentes locales a las aplicaciones.

Page 44: Introducción SOA - Cloud Computing

SOA supervisor

• Reportes de performance de los componentes.

Page 45: Introducción SOA - Cloud Computing

SOA supervisor

• Se le emiten reportes de nivel de servicio al supervisor.

Page 46: Introducción SOA - Cloud Computing

SOA supervisor

• Ante problemas del software, el supervisor recurre a los servicios de infraestructura para darle solución.

Page 47: Introducción SOA - Cloud Computing

Aplicaciones de SOA

• Actualización de SO.– Windows Update, Gestor de Actualizaciones de Linux, Bonjour de MacOS.

• OfficeMax.– Análisis en tiempo real de eventos de negocio para cuantificación de hot

sellers, errores en precios, seguimiento de productos.• Thomson Reuters.

– Mantiene 4000 servicios de business intelligence.• Colonial Williansburg (Virginia, USA).

– Almacenamiento centralizado de información histórica.• División Espacial de la Fuerza Aérea Norteamericana.

– Implementación SOA de un sistema de monitoreo de seguridad espacial.

Page 48: Introducción SOA - Cloud Computing

Cloud Computing

• Es un modelo de uso y distribución de recursos (software o hardware) vía internet.

• La red que provee estos recursos se llama cloud (nube).

Page 49: Introducción SOA - Cloud Computing

Evolución hacia Cloud Computing

Cluster/Super Computing

GridComputing

UtilityComputing

CloudComputing

Page 50: Introducción SOA - Cloud Computing

Capas

• SaaS – Software as a Service.– Aplicaciones corriendo en la nube.

• PaaS – Platform as a Service.– Plataformas de desarrollo corriendo en la nube.

• IaaS – Infrastructure as a Service.– Se provee a los clientes VMs o almacenamiento

de red.

Page 51: Introducción SOA - Cloud Computing

Capas

Page 52: Introducción SOA - Cloud Computing

SaaS

• Elimina la necesidad de instalar y correr la aplicación en la computadora del cliente.

• Ventajas: fácil, sin instalaciones, actualizaciones centralizadas.

• Desventajas: funcionalidad limitada, no hay control de acceso a la tecnología subyacente. Pago por uso.

• Ejemplos: Dropbox, GoogleApps.

Page 53: Introducción SOA - Cloud Computing

PaaS

• Abstracción de un ambiente de desarrollo.• Empaquetamiento de una carga de servicios.• Pueden dar servicio a todas las fases del ciclo de

desarrollo y testing de software, o especializarse en una etapa en particular.

• Ventajas: gran flexibilidad.• Desventajas: capacidades restringidas por el

proveedor.• Ejemplos: Google App Engine, Windows Azure.

Page 54: Introducción SOA - Cloud Computing

IaaS

• También llamado HaaS (hardware as a service).• Entrega almacenamiento básico y capacidades

de cómputo como servicios estandarizados en la red.

• Desde procesamiento batch hasta aumento de servidor/almacenamiento ante cargas pico.

• Ejemplo: Amazon Web Services EC3 (cómputo) y S3 (almacenamiento).

Page 55: Introducción SOA - Cloud Computing

Tipos de nubes

• Manipuladas por terceros.• Trabajos de distintos clientes pueden estar mezclados en los servidores, los

sistemas de almacenamiento y otras infraestructuras en la nube.• Los usuarios no conocen qué otros trabajos están corriendo.

Públicas

• Protección de los datos y ediciones a nivel de servicio.• Infraestructura on-demand manejada por un solo cliente que controla qué

aplicaciones correr y en donde.• Propietarios del servidor, la red, el disco.

Privadas

• Combinación pública-privada.• Propiedad de algunas partes, otras partes son compartidas.• Escalado externo por demanda.• Complejo determinar cómo distribuir aplicaciones a través de las 2 nubes.

Híbridas

Page 56: Introducción SOA - Cloud Computing

Ventajas

• Disponible para cualquier equipo con acceso a internet.

• Escalabilidad.• Reducción de costos.• Manejo de cambios encapsulado.• Capacidad de almacenamiento ilimitada.• Acceso universal a los datos.• Agilidad en demanda.• Gran oferta.

Page 57: Introducción SOA - Cloud Computing

Desventajas

• Seguridad.– Acceso a los datos fuera de la organización.– Pérdida de los datos.

• Dependencia del proveedor.• Problemas de confiabilidad relacionados

con la conexión.– No trabaja bien con baja velocidad de conexión.– La conexión debe ser permanente.

Page 58: Introducción SOA - Cloud Computing

SOA vs Cloud Computing

SOA Cloud Computing

Arquitectura. Modelo.

Nuevo enfoque para organizar los recursos IT de una organización.

Nuevo modelo para acceder/compartir recursos.

Nivel bajo de abstracción (nivel de arquitectura).

Nivel alto de abstracción (no se observa una arquitectura particular).

Enfocado en comunicación proceso-proceso, usuario-proceso o usuario-

usuario.

Enfocado en acceso/almacenamiento datos, recursos de software y

tecnologías.

Cloud Computing puede utilizarse para implementar SOA.

SOA puede utilizarse para implementar Cloud Computing.

Sujeto a estándares (XML, WSDL). Estándar sin desarrollar (dependencias del proveedor).

Page 59: Introducción SOA - Cloud Computing

SOA vs Cloud Computing

• SOA es una estrategia conveniente para implementar Cloud Computing.– Ventajas de escalabilidad, independencia de

localización, provisión rápida y flexible.• Aplicaciones SaaS como otro servicio.• Puede utilizarse PaaS para implementar

SOA.• Puede utilizarse IaaS para alojar SOA.

Page 60: Introducción SOA - Cloud Computing

¿Alguna otra pregunta?