domingo, 4 de marzo de 2012

Resource-oriented architecture

Resource-oriented architecture (ROA) es un estilo arquitectónico basado en Rest, como sabrán SOA es un estilo arquitectónico que indica que funcionalidades del negocio deben estar colgadas es servicios web (normalmente) lo cual permite desacoplamiento de funcionalidad de negocio y reutilización. ROA en cambio no se basa en exponer funcionalidad sino recursos. Lo cual marca una diferencia importante con SOA, SOA se centra en verbos "realizar movimiento bancario" mientra que ROA se basa en los sustantivos "movimientos bancarios".

ROA se basa en REST para exponer los recursos, es decir usa todas las características de REST por lo tanto expone los recursos con URL RestFul. Es decir el movimiento bancario va estar en /movimiento-bancario y se lo va a poder crear con el método PUT, listar con el GET, modificar con POST y borrar con DELETE.

ROA propone exponer los recursos, de forma tal que sea muy similar a la forma que accedemos a base de datos; select - GET, delete - DELETE, update - POST, insert - PUT. Dando una forma clara de acceder, borrar y modificar cada uno de los recursos.

También al basarse en REST se crean arquitecturas livianas flexibles.

Personalmente creo que la gran desventaja es que no contamos con todo el estándar ws-* y el conjunto de herramientas que permiten la orquestación,interacción, seguridad, etc. que si nos brinda SOA.

Creo que el tiempo va a coronar un ganador por ahora a utilizar la mejor herramienta para los problemas particulares y hacer camino al andar!

Dejo Links:

http://en.wikipedia.org/wiki/Resource-oriented_architecture
http://www.infoq.com/articles/RESTSOAFuture