indicador con nubes

De los creadores de “¿Se puede tener BPM sin SOA? va a ser que no” ahora llega “¿y Cloud sin SOA? también va a ser que no”…

Dejando aparte el chiste fácil de antes, en el post anterior de este blog hablábamos de que no tiene mucho sentido tener un BPM sin SOA, pues bien, creo que igualmente no tiene mucho sentido pretender subir a la nube sin no tener un diseño orientado a servicios. ¿Por qué digo esto? veamos…

¿Es muy diferente “pensar en SOA” que “pensar en Cloud”? Yo creo que no si nos fijamos en los principios de SOA (ver esta entrada en el blog):

Desacoplamiento

Es uno de sus principios principales: ser agnóstico respecto a la tecnología que hay por debajo, a la topología, el ciclo de vida del servicio y de la organización que lo implementa.

En el Cloud, se tiene el mismo objetivo respecto a la operativa y la gestión de recursos. Da la posibilidad de obtener recursos para el usuario independientemente de su localización y de la tecnología sobre la que se implementa.

Por otra parte, los programas que se ejecutan en la nube puede ser implementados con tecnologías SOA, los servicios ofrecidos desde la nube pueden ser compuestos con otros (de la nube pública o híbrida) para proporcionar aplicaciones compuestas.

Encapsulación

La encapsulación es importante para SOA pero crítica para cloud. Si en la nube se crean dependencias sobre la localización de los recursos, no es posible la virtualización y la elasticidad respecto a los recursos.

Distribuible

Los recursos son independientes respecto a su localización física. Incluso hay nubes, como las de google con el gmail, que pueden cambiar la localización de tu buzón dependiendo de la hora del día (incluso de la temperatura que haga en  en la ciudad donde está situado el centro de datos).

Claramente definido

Aunque salvando las distancias, los recursos ofrecidos por la red están claramente definidos y medidos: ¡son los que aparecerán en la factura a pagar!

Intercambiables

Los recursos no dependen de la implementación física, por lo que son fácilmente sustituibles por otros, de hecho son “virtuales”.

Compartibles

Es la esencia misma de la nube y su multi-tenancy, o sea, la capacidad de la nube para dar servicios a varios usuarios con los mismos recursos.

En conclusión:

En mi opinión, no se puede tener SOA sin diseño orientado a servicios (SOA). ¿Estás de acuerdo?