SOA y Cloud Computing

junio 12, 2013

share

Archived

Las arquitecturas basadas en servicios (SOA) representan uno de los más grandes avances en IT de las últimas dos décadas. Su enfoque basado en la reutilización de servicios, y la idea de construir servicios complejos interconectando servicios simples y pequeños ha sido de gran ayuda para el desarrollo de software de calidad. Asimismo, el concepto de “cloud computing” (CC) o “software en la nube” viene incrementando su popularidad y aceptación dentro de la comunidad IT.

Cloud computing se basa fuertemente en Internet, donde tanto recursos, software e información están puestos a disposición de otras computadoras y artefactos. Tanto SOA como CC poseen puntos en común, como ser la arquitectura de comunicación descentralizada, pero es importante notar que tienen enfoques y objetivos distintos. Teniendo esto en cuenta, ambas tecnologías pueden combinarse, aportando atractivos beneficios para cualquier empresa IT.

Puntos en común

Ambas tecnologías radican su potencial en brindar una estructura que permite delegar y particionar la funcionalidad del sistema, descomponiéndola en partes con menor complejidad. Esto no es otra cosa que la composición de servicios, lo cual permite que los usuarios los utilicen sin importar la  implementación o cuestiones no funcionales (como la escalabilidad). De la misma forma, ambas proponen desacoplar la interacción entre servicios, promoviendo así la reutilización.

En la referencia [1], expertos en IT destacan estos puntos de encuentro entre SOA y CC: Rob Helm, parte de la corporación Microsoft, afirma que estas tecnologías  potencian el desarrollo de componentes reusables y generan las mejores estrategias para correr componentes de gran escala en entornos distribuidos. Por su parte, Sanjiva Weerawarana, de la empresa WSO2 (http://wso2.com) destaca cierta similitud arquitectónica para proveer servicios y funcionalidad.

Diferencias principales

Es importante tener en cuenta las diferencias entre SOA y CC, tanto para su aplicación individual en una empresa, como su utilización en conjunto. En la referencia [2] se explicitan dos de las diferencias más importantes:

–          CC tiene un enfoque más vertical, al estar enfocado en estructuras de tipo “layer”. En cambio, en SOA cada servicio tiene a su cargo una funcionalidad de negocio. Todos juntos forman una aplicación o solución de negocio, siguiendo un enfoque más horizontal.

–          CC puede verse como una plataforma arquitectónica de ejecución. En cambio, SOA provee una solución arquitectónica para la interacción de servicios, contemplando también el diseño del sistema.

Combinando SOA y Cloud Computing

En la referencia [3] se brinda una interesante analogía que describe con precisión la manera de combinar SOA y CC. Imaginemos una biblioteca llena de material. Los libros representan los servicios que los usuarios pueden acceder una vez que la biblioteca los consigue y los hace disponibles, mientras que el edificio y la infraestructura de la biblioteca representan la noción de CC, donde los usuarios ingresan su búsqueda (servicios). Continuando con la analogía, los libros pueden combinarse para formar una saga (composición de servicios), y un mismo libro puede ser útil a varios usuarios a lo largo del tiempo (reutilización de servicios).

Requerimientos previos

Para proveer servicios dentro de CC existen una serie de condiciones previas, muchas de las cuales son simples extensiones a las condiciones para encarar una arquitectura SOA. Según la referencia [3] las mismas incluyen:

–          Virtualización del ambiente de IT para que puede ejecutarse en el lugar más conveniente en términos de costo y espacio.

–          Reusabilidad y  Disponibilidad: debe existir la logística adecuada dentro de la organización para asegurarse que los servicios estén disponibles para ser usados por muchos usuarios al mismo tiempo.

–          Manejo y Sincronización de los servicios: esto implica extender la gestión de los servicios de SOA al nivel CC, donde los mismos pueden no estar bajo control directo.

–          Seguridad y controles en los accesos: se deben reforzar las políticas de seguridad dentro de un entorno de CC.

Referencias

[1] http://www.infoworld.com/d/cloud-computing/cloud-soa-connection-724

[2]http://blogs.vmware.com/vcloud/2010/04/soa-and-cloud-computing-are-they-the-same.html

[3]http://www-01.ibm.com/software/solutions/soa/newsletter/nov09/article_soaandcloud.html