24.11.2012 Views

Metrópolis y Gobierno de SOA - Willy .Net

Metrópolis y Gobierno de SOA - Willy .Net

Metrópolis y Gobierno de SOA - Willy .Net

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!