Metrópolis y Gobierno de SOA - Willy .Net
Metrópolis y Gobierno de SOA - Willy .Net
Metrópolis y Gobierno de SOA - Willy .Net
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ha atraído es en algún punto inmerecido.<br />
El acoplamiento escaso y la escalabilidad son los resultados <strong>de</strong><br />
un diseño con principios y una arquitectura <strong>de</strong> software sensata.<br />
Adoptamos los siguientes principios para construir aplicaciones<br />
orientadas al servicio:<br />
• La colección <strong>de</strong> protocolos que admite un servicio <strong>de</strong>terminan<br />
la semántica <strong>de</strong> su comportamiento.<br />
• Los Servicios se vinculan al mensaje y a la información que<br />
ellos llevan y no para estados y términos en particular.<br />
• Los mensajes que se intercambian entre servicios son auto<strong>de</strong>scriptivos<br />
(es <strong>de</strong>cir, como en REST5) en la medida que estos<br />
transporten la información suficiente como para permitir al <strong>de</strong>stinatario<br />
que establezca un contexto <strong>de</strong> procesamiento así como<br />
también la información necesaria para ejecutar la acción <strong>de</strong>seada.<br />
• Los servicios se implementan y evolucionan in<strong>de</strong>pendientemente<br />
uno <strong>de</strong>l otro.<br />
• La integración <strong>de</strong> los servicios se lleva a cabo a través <strong>de</strong><br />
acuerdos basados en contratos.<br />
A<strong>de</strong>más <strong>de</strong> los principios expuestos, también fomentamos la<br />
siguiente lista <strong>de</strong> pautas que se <strong>de</strong>be tener en cuenta al construir<br />
sistemas orientados al servicio:<br />
Sin Estado. Esta propiedad se refiere al principio <strong>de</strong> naturaleza<br />
auto-<strong>de</strong>scriptiva ya mencionado. Los servicios <strong>de</strong>berán apuntar a<br />
un intercambio <strong>de</strong> mensajes que <strong>de</strong>muestren toda la información<br />
necesaria para recibir servicios para re-establecer el contexto <strong>de</strong><br />
una interacción en una conversación multi-mensaje. Los servicios<br />
sin estado son fáciles <strong>de</strong> escalar y simplifican mucho la tolerancia<br />
<strong>de</strong> fallas mediante redundancia.<br />
Mensajes Enriquecidos. Los costos <strong>de</strong> la comunicación generalmente<br />
son elevados. Por lo tanto, <strong>de</strong>bemos apuntar a los protocolos<br />
que impliquen mensajes enriquecidos que <strong>de</strong>n como<br />
resultado interacciones <strong>de</strong>talladas, disminuyendo <strong>de</strong> forma eficaz<br />
el número <strong>de</strong> veces que un servicio tiene que cruzar toda la red.<br />
Gestión <strong>de</strong> Estados. En cuanto al tradicional diseño <strong>de</strong> aplicación<br />
en N, la implementación <strong>de</strong> servicio <strong>de</strong>berá <strong>de</strong>legar todos<br />
los aspectos <strong>de</strong> la gestión <strong>de</strong> estado en almacenes <strong>de</strong> datos<br />
especializados y exclusivos (según lo mostrado en la Figura 1)<br />
Envío <strong>de</strong> Mensajes. No <strong>de</strong>berá haber presunciones sobre los<br />
mecanismos <strong>de</strong> envío empleados por los servicios. Como resultado,<br />
ninguna información específica <strong>de</strong> envío se <strong>de</strong>berá filtrar <strong>de</strong><br />
las implementaciones <strong>de</strong> servicio, cruzar los límites y mostrarse a<br />
través <strong>de</strong> contenidos <strong>de</strong>l mensaje (por ejemplo, <strong>SOA</strong>P-RPC, <strong>SOA</strong>P<br />
estilo RPC, WSDL <strong>de</strong> estilo Document-Wrapped, o nombres <strong>de</strong><br />
métodos mostrados como atributos soap:action o wsa:action)<br />
Acoplamiento <strong>de</strong> Roles. Los arquitectos <strong>de</strong>berán tener siempre<br />
en mente que en una arquitectura orientada al servicio no existen<br />
"consumidor", "proveedor", "cliente", "servidor" y <strong>de</strong>más. Estos<br />
son roles que existen a nivel <strong>de</strong> aplicación y no en los bloques <strong>de</strong><br />
construcción <strong>de</strong> la arquitectura, los servicios. En <strong>SOA</strong>s, solo existen<br />
los servicios que intercambian mensajes. Consi<strong>de</strong>rar a un par<br />
<strong>de</strong> servicios como cliente/servidor presenta una forma <strong>de</strong> acoplamiento<br />
que podría en <strong>de</strong>finitiva ser difícil <strong>de</strong> romper.<br />
Los servicios son una abstracción sensata para encapsular y<br />
administrar el creciente nivel <strong>de</strong> complejidad <strong>de</strong> las aplicaciones<br />
distribuidas. Lo bueno <strong>de</strong> la orientación al servicio es que las<br />
pautas y principios <strong>de</strong> la arquitectura son sistemáticos en su totalidad<br />
<strong>de</strong>s<strong>de</strong> un proceso <strong>de</strong> sistema operativo hasta un servicio<br />
que encapsula un proceso empresarial completo o aún toda una<br />
organización. Los requerimientos <strong>de</strong> la arquitectura <strong>de</strong> alto rendimiento<br />
a escala Internet o informática "distribuida" no son dife-<br />
• Journal 5 • www.microsoft.com /architecture<br />
Permitir una informática<br />
a escala Internet<br />
rentes a los <strong>de</strong> los negocios empresariales focalizados en la informática,<br />
y por lo tanto se <strong>de</strong>ben utilizar pautas y principios idénticos.<br />
Notas al pie<br />
1. http://boinc.berkeley.edu<br />
2. http://ssdl.org<br />
3. http://www.cs.wisc.edu/condor/<br />
4. http://www.cs.wisc.edu/condor/birdbath/<br />
5. http://mercury.it.swin.edu.au/ctg/AWSA04/Papers/ng.pdf<br />
6. http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm<br />
Lecturas relacionadas<br />
1. Open Grid Services Architecture<br />
2. Globus Toolkit<br />
3. OGSA Data Access and Integration<br />
4. Web Services Grid Application Framework<br />
5. Semantic Web<br />
6. W3C Web Services<br />
7. OASIS Web Services<br />
Agra<strong>de</strong>cimientos<br />
Los autores <strong>de</strong>sean agra<strong>de</strong>ces al Prof. Paul Watson (Escuela <strong>de</strong><br />
Ciencias <strong>de</strong> la Computación, Universidad <strong>de</strong> Newcastle) por sus<br />
comentarios <strong>de</strong> gran utilidad durante la preparación <strong>de</strong> este artículo.<br />
Sobre los autores<br />
Savas Parastatidis<br />
Escuela <strong>de</strong> Ciencias <strong>de</strong> la Computación<br />
Universidad <strong>de</strong> Newcastle<br />
Jim Webber<br />
ThoughtWorks Australia<br />
47