POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
Trabajo
1. Título del trabajo:
CLOUD COMPUTING FRENTE SOA
Diseño y Evaluación de Configuraciones 2011 Página 1
2. Contenido
Contexto Histórico 3
La aparición de la arquitectura SOA 4
Los servicios Web como solución para implantar SOA 6
Fundamentos de las características principales 7
Interfaz o contrato de servicios 7
Transparencia del servicio 8
Composición de servicios 9
Registro de servicios y su publicación 9
Tecnologías de la plataforma SOA 9
Gestión de la toma de decisiones empresariales. 10
Bus de servicio de la Empresa. 11
Procesador de Flujos de Eventos 12
El servicio de mensajería Java 12
El registro 12
Componentes de Servicio y su composición 13
Un modelo maduro para arquitectura SOA 13
SOA en la actualidad 14
El paradigma Cloud Computing 15
Pago por uso 16
Flexibilidad en recursos 16
Escalabilidad 16
Herramientas de autoservicio 16
La importancia de la ubicación de los datos 18
Comparativa: 19
Fuentes de información: 19
Diseño y Evaluación de Configuraciones 2011 Página 2
3. Contexto Histórico
SOA es un término acuñado por Gartner en 1996, aunque no es un concepto
nuevo. Ya en los años 80, los ingenieros entendieron sus principios, cuando
llegaron al mercado la computación distribuida y las llamadas a procedimientos
remotos.
Aunque Gartner definición la arquitectura SOA en 1996, no fue hasta la
aparición de los servicios web que vio aumentado su interés. La primera ola de
SOA asumía una interacción entre los módulos consumidor y proveedor
normalmente usando comunicación request/reply. Aunque no alcanzó la
aceptación esperada. No fue hasta 2003, cuando SOA entra por completo en
las TI empresariales, a través de los servidores web.
Definición de Gartner:
“Service-oriented architecture is an architectural style for business applications
that are modular, distributable, shareable and loosely coupled”
En el año 2005 gracias a las nuevas tecnologías e infraestructuras llega el
concepto de “Cloud Computing” o “Computación en la nube”.
El concepto de la computación en la nube empezó en proveedores de servicio
de Internet a gran escala, como Google, Amazon AWS y otros que
construyeron su propia infraestructura. Este modelo de arquitectura fue
inmortalizado por George Gilder en su artículo de octubre 2006 en la revista
Wired titulado Las fábricas de información.
Las granjas de servidores, sobre las que escribió Gilder, eran similares en su
arquitectura al procesamiento “grid” (red, parrilla), pero mientras que las redes
se utilizan para aplicaciones de procesamiento técnico débilmente acoplados,
este nuevo modelo de nube se estaba aplicando a los servicios de Internet.
Diseño y Evaluación de Configuraciones 2011 Página 3
4. La aparición de la arquitectura SOA
La Arquitectura Orientada a Servicios de cliente (en inglés Service Oriented
Architecture), es un concepto de arquitectura de software que define la
utilización de servicios para dar soporte a los requisitos del negocio.
Permite la creación de sistemas altamente escalables que reflejan el negocio
de la organización, a su vez brinda una forma bien definida de exposición e
invocación de servicios (comúnmente pero no exclusivamente servicios web),
lo cual facilita la interacción entre diferentes sistemas propios o de terceros.
SOA define las siguientes capas de software:
Aplicaciones básicas - Sistemas desarrollados bajo cualquier
arquitectura o tecnología, geográficamente dispersos y bajo cualquier
figura de propiedad;
De exposición de funcionalidades - Donde las funcionalidades de la
capa aplicativa son expuestas en forma de servicios (generalmente
como servicios web);
De integración de servicios - Facilitan el intercambio de datos entre
elementos de la capa aplicativa orientada a procesos empresariales
internos o en colaboración;
De composición de procesos - Que define el proceso en términos del
negocio y sus necesidades, y que varía en función del negocio;
De entrega - donde los servicios son desplegados a los usuarios finales.
SOA proporciona una metodología y un marco de trabajo para documentar las
capacidades de negocio y puede dar soporte a las actividades de integración y
consolidación.
Los conceptos que hoy en día están asociados con la arquitectura SOA
aparecen con la adopción global de Internet, y más en concreto, del protocolo
HTTP. En 2003, Roy Schulte del Grupo Gartner acuñó el término SOA y
rápidamente se extendió por todo el planeta. En aquel momento era difícil de
representar, pero coincide con:
“Las arquitecturas SOA actuales representan una arquitectura abierta, ágil,
extensible, federada y combinada constituida por servicios autónomos, capaces
de gestionar una calidad de servicio, posiblemente de diferentes proveedores,
interoperativos entre ellos , descubribles y potencialmente reutilizables,
implementados todos ellos como servicios WEB.[Erl2005].”
Diseño y Evaluación de Configuraciones 2011 Página 4
5. “La arquitectura orientada a servicios es una estrategia TIC que convierte las
funciones discretas contenidas en aplicaciones empresariales en servicios
basados en los estándares y totalmente interoperativos que pueden
combinarse y reutilizarse rápidamente para cumplir las necesidades de negocio
de una organización.[BEA]. ”
De ambas definiciones destacamos la noción de servicios empresariales
discretos y reutilizables que se pueden utilizar para construir un nuevo proceso
de negocio dentro de una aplicación.
Una característica destacable es que la arquitectura SOA está basada en XML
como representación de datos subyacente a diferencia de otras opciones que
utilizan objetos con representación binaria. La popularidad de XML es
indudable, sencillo de entender y fácil de generar.
Otra distinción entre la arquitectura SOA y otras tecnologías es que es más que
una tecnología en sí, alcanzó buenas prácticas y estándares que se han ido
afianzando a lo largo de décadas de desarrollo software. Entre ellas: nociones
de negocio, prestación de servicios, definiciones de metadatos y registros…
En la figura 1.1 muestra la interrelación entre los sistemas backend (a
continuación, términos aclarativos), los servicios publicados y los procesos de
negocio orquestados. Como se puede observar, los servicios de bajo nivel
(también denominados de grado fino) se encuentran en la capa superior de las
aplicaciones y sistemas de negocio de las empresas. Estos componentes
permiten a las capas superiores interactuar con los sistemas. La capa de
Diseño y Evaluación de Configuraciones 2011 Página 5
6. composición de servicios representa servicios de grano más grueso que los
anteriores y consiste en dos o más componentes individuales. Los servicios
compuestos, por su parte, pueden ser pedidos a través de un sitio Web.
Término Definición
Servicio Una función sin estado, auto-
contenida, que acepta una(s)
llamada(s) y devuelve una(s)
respuesta(s) mediante una interfaz
bien definida. Los servicios pueden
también ejecutar unidades discretas
de trabajo como serían editar y
procesar una transacción. Los
servicios no dependen del estado de
otras funciones o procesos. La
tecnología concreta utilizada para
prestar el servicio no es parte de esta
definición. Existen servicios
asíncronos en los que una solicitud a
un servicio crea, por ejemplo, un
archivo, y en una segunda solicitud se
obtiene ese archivo
Orquestación Secuenciar los servicios y proveer la
lógica adicional para procesar datos.
No incluye la presentación de los
datos. Coordinación.
Los servicios Web como solución para implantar SOA
El estándar SOAP (es un protocolo que define cómo dos objetos en diferentes
procesos pueden comunicarse por medio de intercambio de datos XML) parece
resolver muchos de los requisitos fundamentales de las implementaciones
SOA, convirtiéndose así en sinónimo de servicios Web. En un ambiente SOA,
los nodos de la red hacen disponibles sus recursos a otros participantes en la
red como servicios independientes a los que tienen acceso de un modo
estandarizado.
Diseño y Evaluación de Configuraciones 2011 Página 6
7. Para que un proyecto SOA tenga éxito los desarrolladores de software deben
orientarse ellos mismos a esta mentalidad de crear servicios comunes que son
orquestados por clientes o middleware para implementar los procesos de
negocio. El desarrollo de sistemas usando SOA requiere un compromiso con
este modelo en términos de planificación, herramientas e infraestructura.
Algunas empresas han empezado a probar iniciativas basadas en este
concepto para determinar el nivel de esfuerzo necesario para participar en este
nuevo paradigma. Los vendedores de comercio electrónico fueron los primeros
en proponer este modelo al publicar sus interfaces de programación API para
su interacción a través de SOAP, con eBay y Amazon como líderes.
Fundamentos de las características principales
Interfaz o contrato de servicios
Los servicios tienen que tener una interfaz o contrato muy bien definido. Un
contrato consiste en la especificación completa de un servicio entre un
proveedor de servicios y un cliente de una manera entendible para cualquier
posible cliente. Este contrato debe identificar que operaciones va a realizar el
servicio, definir qué datos serán necesarios para su intercambio y una forma
detallada de como invocar el servicio. Este es un buen ejemplo de cómo definir
un servicio en WSDL (Web Services Description Language, un formato XML
que se utiliza para describir servicios Web)
Diseño y Evaluación de Configuraciones 2011 Página 7
8. Transparencia del servicio
La transparencia del servicio pertenece a la habilidad por invocar a un servicio
sin preocuparse donde se encuentra el punto final dentro de la red. Es
conveniente evitar una infraestructura con conexiones punto a punto, ya que
pronto se vuelve inmantenible y extremadamente quebradiza.
Una mejora notable consiste en la inserción de un mediador de servicios o
Proxy. En la siguiente figura vemos como mejora notablemente con respecto a
la anterior.
Diseño y Evaluación de Configuraciones 2011 Página 8
9. Si la dirección de alguno de los puntos externos cambia, solo hay que cambiar
esa información en el Proxy del servicio.
Composición de servicios
Uno de los objetivos principales de SOA es su habilidad para generar servicios
compuestos y/o orquestaciones utilizando componentes de servicios como
piezas de puzle. Mediante servicios sencillos puede darse la composición de
servicios compuestos y todos son puestos a disposición mediante un catálogo
de servicios.
Registro de servicios y su publicación
Los clientes deben ser conscientes de la existencia del servicio que quieren
usar No solo eso, sino que los servicios deben incluir una especificación o un
trato que claramente identifique los parámetros de entrada, de salida, fallos,
etc. El estándar UDDI (Universal Description, Discovery and Integration) se ha
convertido en la plataforma estándar para el registro de servicios Web, tanto
público como privado. Actualmente son pocas las empresas y clientes que
usan UDDI. Herramientas sobre registros de servicios de tipo wiki han sido
suficientes para cubrir esa necesidad.
Tecnologías de la plataforma SOA
Es un error pensar que SOA es una cuestión únicamente de tecnología. Los
temas relacionados con el gobierno, la calidad del servicio y demás son
grandes contribuciones a considerar a la hora de construir nuestra plataforma
SOA. Centrándonos en los aspectos técnicos, la figura 1.6 muestra las distintas
tecnologías que constituyen la plataforma tecnología SOA.
Diseño y Evaluación de Configuraciones 2011 Página 9
10. ¿Dónde están las aplicaciones? La capa de presentación puede considerarse
como el lugar en el que se encuentran las aplicaciones típicas, pero con la
actual variedad de modelos de presentación (móviles, Web, Gadget,
plataformas híbridas como Adobe Air, fuentes RSS) la noción de que constituye
la aplicación es compleja de definir. Por tanto se utiliza aquí el concepto de
“Servicios de presentación” para representar cualquier cosa que pueda
considerarse como interfaz con un servicio computacional.
A continuación una breve explicación de cada elemento.
Gestión de la toma de decisiones empresariales.
Un sistema de gestión de toma de decisiones empresariales EDM e incorpora
motor de reglas de negocio BRE(Business Rule Engine) para la ejecución de
las reglas de negocio definidas y un sistema de gestión de reglas de negocio
BRMS(Business Rule Management System) para la gestión de dichas reglas.
¿Qué es exactamente una regla de negocio? Es una sentencia escrita de forma
fácilmente comprensible en términos de negocio, que representa cierto aspecto
de cómo debe funcionar el negocio. (Ejemplo de empresa que amplia un
crédito: lo amplia si cumple ciertas restricciones o reglas).
Diseño y Evaluación de Configuraciones 2011 Página 10
11. Bus de servicio de la Empresa.
Un Bus ESB (Enterprise Service Bus) es en esencia una aplicación
middleware cuyo rol es proporcionar la interoperabilidad entre distintos
protocolos de comunicación. Por ejemplo, no es común para una empresa
recibir pedidos utilizando caracteres ASCII a través del protocolo FTP. Un bus
ESB puede encargarse de recoger el pedido de un sitio FTP, transformarlo en
XML y enviarlo internamente mediante un servicio Web para su posterior
utilización y procesamiento. La figura 1.8 resalta el papel que juega el bus ESB
a la hora de integrar los diferentes protocolos y como pueden publicarse
mediante un bus de mensaje estándar.
Diseño y Evaluación de Configuraciones 2011 Página 11
12. Procesador de Flujos de Eventos
Un evento es, simplemente, algo interesante que ocurre dentro del negocio.
Puede ser un evento normal o anormal. El procesamiento de flujos de eventos
ESP puede integrarse dentro de la implementación de los servicios de forma
que disponer de una visibilidad en tiempo real de nuestros sistemas se
convierten en realidad. Esta inteligencia operacional dota a la empresa de la
posibilidad de detectar anomalías en los sistemas de forma rápida.
El papel de un sistema ESP es recibir distintos flujos de datos en tiempo real y
detectar patrones entre ellos. Una gran variedad de filtros, agregaciones en
tiempo real, disparadores de eventos y conjuntos de datos son los que
normalmente utilizan los sistemas ESP para detectar patrones. Los resultados
son arrojados por estos sistemas pueden alimentar la monitorización de la
actividad del negocio BAM (Business Activity Monitory).
El servicio de mensajería Java
El servicio de mensajería de Java JMS (Java Message Service) es una de las
tecnologías fundamentales asociadas a la plataforma J2EE. Está considerada
como el middleware orientado a mensajes MOM (Message-Oriented
Middleware) y puede utilizar dos tipos de modelos de mensaje: modelo de cola
punto a punto y modelo de publicación y subscripción.
El registro
Los artefactos de implementación que se derivan de la arquitectura SOA se
deben registrar dentro de un repositorio para así maximizar su reutilización o
permitir la gestión de los activos de la empresa. Los metadatos son datos sobre
los propios datos y, en este contexto, se consideran como las propiedades y
atributos de dichos activos. Cada uno de estos activos, como puede verse en la
figura 1.9, incluyen componentes de servicios y servicios compuestos,
procesos de negocio y aplicaciones. También suelen incluir objetos como
pueden ser usuarios, clientes y productos. En organizaciones más pequeñas
los repositorios son más informales y se utilizan como pequeños escritos en
herramientas wiki.
Diseño y Evaluación de Configuraciones 2011 Página 12
13. *LDAP (Lightweight Directory Access Protocol (en español Protocolo Ligero de
Acceso a Directorios) que hacen referencia a un protocolo a nivel de aplicación
el cual permite el acceso a un servicio de directorio ordenado y distribuido para
buscar diversa información en un entorno de red. LDAP también es
considerado una base de datos (aunque su sistema de almacenamiento puede
ser diferente) a la que pueden realizarse consultas.
Componentes de Servicio y su composición
Los componentes de servicio y sus composiciones representan las piezas
fundamentales de lo que constituye la plataforma SOA. Un servicio puede
construirse mediante una función de inteligencia de negocio de forma que
combine parte de datos y parte lógica en una interacción abstracta con un
servicio empresarial subyacente. Este servicio suele ser una pieza discreta que
representa una funcionalidad encontrada dentro de una aplicación ya existente.
Un modelo maduro para arquitectura SOA
Disponer de un modelo maduro puede ser muy útil a la hora de analizar las
necesidades de una organización TIC en cuanto a qué niveles de la
arquitectura SOA necesita. La figura 1.12 representa este modelo en forma de
pirámide, de forma que cada nivel, en parte, depende del anterior.
Diseño y Evaluación de Configuraciones 2011 Página 13
14. SOA en la actualidad
A día de hoy SOA tiene menos impacto que sus descendientes Mashps, BPM,
SaaS, Cloud Computing y de cualquier otro enfoque de arquitectura que se
basa en “servicios”. SOA se ha convertido en una experiencia fallida para la
mayoría de las empresas, salvo en raras ocasiones, falló en entregar los
beneficios prometidos. Si bien inicialmente SOA ha sido adaptada
principalmente por técnicos, su base está más en los negocios que en los
problemas técnicos. Mas ellos fueron muchas veces introducidos (y a menudo
ejecutados) por los técnicos y vendedores, que estaban más interesados en la
tecnología SOA (venta de software) que en su impacto sobre los negocios.
David Linthicum analizó lo que salió mal, parafraseando a:
Falta de arquitectos cualificados que entienden SOA.
Las grandes empresas de consultoría se centran en las tácticas y en las
horas facturables más que en los resultados.
Los vendedores también se centran en la venta y no lo suficiente en la
solución.
Anuncia que SOA es una panacea para todos los males de IT.
Nick Gall, por otra parte:
“Este es el pensamiento de los servicios, tal como se entiende
convencionalmente, lo que condujo a la confusión en la que nos encontramos:
Diseño y Evaluación de Configuraciones 2011 Página 14
15. la fragmentación provocada por interfaces de entidad específicas (servicios).
Sin embargo yo diría que en la "larga vida a la web."
Él cita como ejemplo el éxito de Google, Amazon, e incluso Salesforce y le
asigna a ellos, la mayoría de la influencia de la arquitectura web, comunidad
web y modelos de negocio web "Web-orientation es una condición necesaria
para la rápida integración de los datos y procesos de negocio, ellos permiten
que los modelos de desarrollo para cada situación específica, tales como
Mashups, SaaS y Cloud Computing".
De este modo, el que SOA salga adelante es todo un debate entre los
expertos del sector.
El paradigma Cloud Computing
Diseño y Evaluación de Configuraciones 2011 Página 15
16. La computación en la nube o informática en la nube, del inglés "Cloud
computing", es un paradigma que permite ofrecer servicios de computación a
través de Internet. Para que un servicio se pueda considerar como Cloud
Computing debe cumplir con las siguientes afirmaciones:
Pago por uso
Debe permitir agregar o decrementar recursos de forma sencilla y
rápida.
Debe ser escalable
Debe proporcionar herramientas de autoservicio al usuario.
Pago por uso
Este es el principal atractivo ya que el usuario solo tendrá que abonar los
recursos que haya consumido con su servicio, ahorrando así en implantaciones
on-premise y reduciendo el riesgo inicial de los proyectos.
Flexibilidad en recursos
Consiste en la capacidad de poder agregar o disminuir nuevos recursos
o los que tuviéramos ya disponibles en nuestro servicio. Un ejemplo sería el de
poder aumentar o reducir la RAM utilizada por nuestro aplicativo web.
Escalabilidad
Los proveedores de Cloud computing deben proporcionar plataformas
que permitan aumentar el número de instancias del servicio para poder
responder a una mayor demanda de usuarios o peticiones. Además debe
permitir mecanismo para mover el servicio entre los distintos servidores y los
distintos centros de datos que disponga el proveedor.
Herramientas de autoservicio
Se deben proporcionar herramientas que permitan al propio usuario (o
un responsable) contratar los servicios que desea consumir y ajustar los
recursos destinados a esos servicios.
En una primera aproximación se podría pensar que el Cloud Computing es algo
similar a un hosting, pero estaríamos equivocados por varios motivos:
El hosting se paga por cuotas de recursos y no por uso.
El hosting no permite modificar los recursos disponibles de forma
sencilla y automatizada.
Diseño y Evaluación de Configuraciones 2011 Página 16
17. No todos los servicios de hosting permiten funcionalidades de escalado.
En definitiva se podría decir que un hosting es un subconjunto del Cloud
Computing o que el Cloud computing es una evolución del hosting.
Los distintos servicios que se pueden ofrecer en modo Cloud computing se
agrupan en: IaaS (Infraestructura como servicio), PaaS (Plataforma como
servicio) y SaaS (Software como servicio).
El IaaS ofrece a los usuarios la posibilidad de utilizar distintos tipos de
infraestructura como un servicio.
El PaaS proporciona características adicionales al IaaS como puedan
ser: despliegue automatizado de aplicaciones, sistemas de gestión de
autenticación, sistemas de comunicación de colas o mensajes, sistemas
de monitorización,…
El SaaS permite utilizar como servicio un software existente sin realizar
instalaciones ni configuraciones.
Diseño y Evaluación de Configuraciones 2011 Página 17
18. La plataforma donde se ejecutan los servicios que proporcionan los
proveedores de Cloud computing son los Datacenters que consisten en centros
de datos con una serie de servidores conectados entre sí y con una plataforma
de gestión que permite desplegar los servicios en los distintos servidores de
forma automatizada y transparente para el usuario.
Disponemos de tres modalidades de utilizar los servicios de Cloud computing
en función de donde se encuentre el datacenter:
Nube Pública, los servicios y todos los datos se encuentran en los
datacenters del proveedor siendo éste el que asume todo el
mantenimiento de los servicios.
Nube Privada, los servicios y los datos se encuentran on-premise (en
las infraestructuras del cliente). Requiere de un mayor mantenimiento y
de infraestructuras grandes.
Nube Híbrida, consiste en una mezcla entre las dos modalidades
anteriores para aquellos clientes que no puedan sacar los datos de sus
infraestructuras pero se quieran aprovechar de las ventajas de los
servicios de Cloud Computing de un proveedor externo.
La importancia de la ubicación de los datos
Este posiblemente sea tema más polémico de la computación en la nube. Para
muchos clientes la ubicación de los datos es un factor crítico a la hora de
plantear una solución en modo Cloud computing. Para muchas empresas el
ubicar los datos fuera de sus infraestructuras será imposible debido a su
criticidad o incluso la propia legislación.
Antes de plantear cualquier solución habrá que estudiar si los datos podrán
ubicarse fuera de nuestras infraestructuras y en qué país se ubicarán para
determinar si la legislatura vigente en ese país no afectará a nuestro servicio.
Los organismos públicos por ejemplo, solo podrán mover fuera del país origen
aquellos datos que sean totalmente públicos, por lo que no podrán plantear
soluciones de Nube privada para datos sensibles.
Una alternativa sería plantear nubes híbridas con proveedores locales que
tengan que cumplir con la misma legislación. Para más información sobre
jurisprudencia podríamos consultar el vídeo "Implicaciones legales del Cloud
Computing" de Pablo García Mexía.
Diseño y Evaluación de Configuraciones 2011 Página 18
19. Comparativa:
En la siguiente gráfica podemos observar, según Google Trends, las
búsquedas y las noticias generadas por los términos SOA (en rojo) y Cloud
Computing (en azul).
Fuentes de información:
Jeff Davis, SOA Open Source, Editorial Manning, Anaya Multimedia, 2009.
http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios
http://www.dosideas.com/noticias/actualidad/385-soa-esta-muerto.html
http://www.dreig.eu/caparazon/2008/10/30/%C2%BFque-es-el-cloud-
computing-definicion-tendencias-y-precauciones/
http://www.desarrolloweb.com/articulos/cloud-computing.html
http://es.wikipedia.org/wiki/Computaci%C3%B3n_en_nube
http://ctovision.com/2009/07/cloud-computing-vs-soa-look-for-a-cross-over-in-
hype/
http://www.gartner.com/resources/111900/111987/111987.pdf
Diseño y Evaluación de Configuraciones 2011 Página 19