miércoles, 26 de octubre de 2011

La convergencia entre SOA y el Cloud Computing

Mucho se habla en estos días de SOA y Cloud Computing en nuestras empresas. Todo esto porque las empresas que nos proveen las herramientas y las plataformas para implementar este tipo de arquitecturas nos dan una serie de opciones y lineamientos para tomar en cuenta cada uno de estos “estilos” de desarrollo en nuestras empresas – y en algunos casos parece que tiene que ser cuanto antes.

Sin embargo, estos dos temas se abarcan como opuestos verdaderos donde ninguno de los dos tiene nada que ver o en donde no son necesarios para el buen desarrollo de los proyectos que tenemos a futuro. Desde mi punto de vista este es un enfoque erróneo ya que SOA y el “Cloud Computing” son complementarios y uno no debe sustituir al otro. En este post voy a explicar porque creo que si se usan ambas plataformas de forma complementaria, se van a obtener mejores resultados.

Cloud Computing y la Arquitectura Punto a Punto

Un tema crítico a la hora de llegar a la nube es la forma en que vamos a integrar nuestras aplicaciones locales –> “On Premises” –> con nuestras aplicaciones en la nube. En circunstancias normales, si no tenemos una arquitectura de integración bien definida vamos a tener una arquitectura punto a punto tal y como se ve en la siguiente figura.

image

Si queremos agregar aplicaciones que funcionan en la nube y las tenemos que integrar con aplicaciones locales, vamos a tener un escenario un poco más complicado ya que las aplicaciones en la nube siguen siendo un punto más en la gráfica de integración.

image

Evidentemente esto traer muchas complicaciones de mantenimiento y de evolución de los productos ya que el gráfico de integración tiende a complicarse muchísimo conforme vamos agregando aplicaciones, todo esto tomando en cuenta que no estamos agregando el factor de los protocolos de comunicación en los gráficos anteriores porque esto aumentaría la complejidad.

SOA: La Solución

La pregunta que surge es como solucionamos la problemática anterior, y ahí es donde SOA entra en el juego. En realidad existen dos posibles soluciones a este problema

  1. Tener todas mis aplicaciones en la nube y utilizar el Bus que mi nube debería ofrecer.

  2. Utilizar SOA para integrar mis aplicaciones “On premises” con mis aplicaciones en la nube.

La primera opción es poco realista en un escenario donde la empresa ya tiene una inversión en software que corre localmente y además es difícil encontrar por el momentoempresas que tenga toda su infraestructura en la nube.

La segunda opción es muy viable y es la que vamos a tratar. Si tenemos una arquitectura orientada a servicios, tendremos un BUS de datos que nos va a permitir interconectar aplicaciones desarrolladas en diversas plataformas y que utilizan diferentes protocolos y formatos de comunicación. Si ya tenemos una arquitectura SOA y queremos subir o crear una nueva aplicación en la nube, el escenario de interconexión de nuestras arquitecturas varía radicalmente respecto a la versión anterior punto a punto. Este escenario se puede ver en la siguiente figura.

image

Como podemos ver en el grafico anterior, cuando se utiliza un ESB la nube simplemente se convierte en un punto de acceso más, con lo cuál podemos garantizar que la integración será transparente y que además podremos interactuar de forma ordenada con aplicaciones hechas en diversas tecnologías y que incluso utilizan protocolos de integración que no son compatibles con lo que normalmente se utiliza para trabajar en la nube – HTTP[s]. Igualmente, cuando agregamos una nueva aplicación a nuestro ecosistema, será muy sencillo integrarla con las aplicaciones que tenemos localmente como con las que están trabajando en la nube.

Etiquetas de Technorati: ,

No hay comentarios:

Publicar un comentario