Introducción SOA - Cloud Computing

Preview:

DESCRIPTION

 

Citation preview

SOA – Cloud Computing

Grupo 9Nicolas Behotas

Marco Yamil Caraballo SosaNicolás Fischer

Juan Ignacio MarderwaldRosario Mensi

José Ignacio OrlandoGustavo Vasoin

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.

Ejemplo disparador

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

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

• Conexiones estandarizadas.

Evolución Arquitecturas

Mainframes

Sistemascentralizados

Cliente/Servidor

K-tiers

SOA

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

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.

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.

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.

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.

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

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

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.

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

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)

Framework de implementación de SOA

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

• 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

Framework de implementación de SOA

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

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.

Framework de implementación de SOA

• Se asegura de que los niveles de servicio sean aceptables

• Utiliza los servicios de la capa de infraestructura

Framework de implementación de SOA

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

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, …

ESB - Funciones

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.

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.

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.

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.

Ejemplo ejecución broker

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.

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.

Ejemplo ejecución broker

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

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.

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.

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.

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

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

Plumbing

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

Business Service Layer

Plumbing Service Layer

Hardware Layer

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.

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.

SOA supervisor

SOA supervisor

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

SOA supervisor

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

SOA supervisor

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

SOA supervisor

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

SOA supervisor

• Reportes de performance de los componentes.

SOA supervisor

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

SOA supervisor

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

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.

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

Evolución hacia Cloud Computing

Cluster/Super Computing

GridComputing

UtilityComputing

CloudComputing

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.

Capas

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.

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.

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

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

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.

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.

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

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.

¿Alguna otra pregunta?

Recommended