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.

Tuxedo, etc.), siempre y cuando sea confiable para manejar solicitu<strong>de</strong>s<br />

asíncronas.<br />

Es importante observar que todavía utilizaremos Servicios Web<br />

enviamos y recibimos muchos mensajes <strong>SOA</strong>P, con la excepción<br />

<strong>de</strong> que se enviarán utilizando una cola <strong>de</strong> mensajes asíncrona a<br />

diferencia <strong>de</strong> HTTP. Tal como se ha dado el ejemplo, po<strong>de</strong>mos utilizar<br />

transportes permitidos por el Servicio Web para la cola <strong>de</strong><br />

mensajes. Por lo tanto, ¿Cómo funciona esta arquitectura con<br />

nuestro nuevo contexto?<br />

El Cliente Inteligente envía una planilla (y se crea una petición<br />

<strong>de</strong>l Servicio Web correspondiente). Esta petición se ubica directamente<br />

en la cola <strong>de</strong> mensajes, en lugar <strong>de</strong> ser enviada en HTTP.<br />

Una vez que el mensaje se ubica en la cola, el cliente pue<strong>de</strong> <strong>de</strong>sconectarse<br />

sin peligro alguno.<br />

El servidor basado en el Servicio Web a su vez tomará conocimiento<br />

<strong>de</strong> este mensaje, y luego se pondrá en contacto con el<br />

sistema <strong>de</strong> contaduría para que procese la petición. Si el sistema<br />

<strong>de</strong> contaduría necesita pedir información adicional, se coloca un<br />

nuevo mensaje en la cola (una petición al consultor) el <strong>de</strong>stinatario<br />

es la aplicación <strong>de</strong> Cliente Inteligente.<br />

Este mensaje permanecerá en la cola hasta que el Cliente<br />

Inteligente se vuelva a conectar. Para asegurar que el mensaje se<br />

i<strong>de</strong>ntifique sin <strong>de</strong>moras , tal vez consi<strong>de</strong>remos un servicio en<br />

segundo plano en base al cliente que se conecta a la cola <strong>de</strong><br />

mensajes y envía el cuadro <strong>de</strong> diálogo "falta información" en la<br />

aplicación <strong>de</strong> la planilla para el consultor.<br />

Esto proporciona una solución para nuestro para nuestro problema<br />

<strong>de</strong> ciclos cerrados, y pue<strong>de</strong> ofrecer un mo<strong>de</strong>lo más automatizado<br />

pero esto tiene un <strong>de</strong>fecto. El Cliente Inteligente <strong>de</strong>be<br />

po<strong>de</strong>r conectarse a la cola <strong>de</strong> mensajes para procesar las peticiones<br />

que ingresan <strong>de</strong>s<strong>de</strong> los sistemas <strong>de</strong> contaduría. La mayoría<br />

<strong>de</strong> los proveedores <strong>de</strong> colas <strong>de</strong> mensajes realizan esto por medio<br />

<strong>de</strong>l acceso a alguna cola <strong>de</strong> mensajes APIs <strong>de</strong> propiedad exclusiva.<br />

¿Qué suce<strong>de</strong> si el consultor está en una carretera? ¿Qué suce<strong>de</strong><br />

si el consultor sólo tiene acceso <strong>de</strong>s<strong>de</strong> un aeropuerto a través<br />

<strong>de</strong> la Web o un e-mail? Estos mensajes no serán entregados<br />

hasta que se conecte a la red corporativa, lo que pue<strong>de</strong> ser<br />

inaceptable.<br />

Utilizando otro transporte, veamos el segundo mo<strong>de</strong>lo:<br />

Servicios Web que utilizan Transportes HTTP y SMTP. Uno <strong>de</strong><br />

los problemas más importantes con el diseño original es que una vez<br />

que el sistema <strong>de</strong> contaduría envió el e-mail al consultor solicitando<br />

más información, realmente se crea un ciclo abierto. Este diseño<br />

<strong>de</strong>pen<strong>de</strong> <strong>de</strong> que el consultor tenga que asociar manualmente el mensaje<br />

<strong>de</strong> e-mail con texto entrante con el proceso <strong>de</strong> la aplicación.<br />

El transporte en sí mismo, por el contrario, es eficaz <strong>de</strong> un modo<br />

razonable. Con la confiabilidad que representan los e-mail hoy en día,<br />

es mucho más que probable que el consultor haya recibido el e-mail.<br />

Teniendo esto en cuenta, podríamos consi<strong>de</strong>rar un nuevo diseño a<br />

partir <strong>de</strong> lo siguiente:<br />

Aquí la solicitud <strong>de</strong>l Servicio Web sobre HTTP aún se utiliza para<br />

enviar la planilla. De igual manera que con el diseño original, esto<br />

está comprometido a una cola <strong>de</strong> mensajes para liberar la conexión<br />

<strong>de</strong>l Cliente Inteligente. En este diseño, si ocurre algún problema con<br />

la planilla, se envía un e-mail -pero no al consultor. Por el contrario,<br />

se genera un e-mail que contiene la solicitud <strong>de</strong>l Servicio Web para<br />

que se cree la aplicación <strong>de</strong> Cliente Inteligente. Lo que hacemos es<br />

iniciar una solicitud <strong>de</strong> información adicional <strong>de</strong>l Servicio Web, pero<br />

utilizando SMTP como transporte.<br />

El Cliente Inteligente necesita algunas modificaciones para hacer<br />

que esto funcione. Es necesario que exista algún modo <strong>de</strong> recuperar<br />

la solicitud <strong>de</strong> <strong>SOA</strong>P utilizando un e-mail -esto pue<strong>de</strong> ser o un filtro<br />

• Journal 5 • www.microsoft.com /architecture<br />

Aviones, Trenes y Automóviles<br />

en la ban<strong>de</strong>ja <strong>de</strong> entrada <strong>de</strong>l consultor o una cuenta <strong>de</strong> e-mail por<br />

separado para la aplicación <strong>de</strong> Cliente Inteligente. En segundo lugar,<br />

una vez que se ha recibido el e-mail, la aplicación <strong>de</strong> Cliente<br />

Inteligente <strong>de</strong>be procesarlo y provocar que suceda la acción correcta<br />

sobre el cliente (por ejemplo, un diálogo para preguntar al consultor<br />

por la información faltante). Una ventaja <strong>de</strong> estos mo<strong>de</strong>los es que<br />

utilizan los transportes existentes, permite que la aplicación <strong>de</strong> contaduría<br />

inicie una solicitud a la aplicación <strong>de</strong> Cliente Inteligente y (sujeto<br />

a que podamos acce<strong>de</strong>r al e-mail <strong>de</strong>s<strong>de</strong> una ubicación remota) no<br />

restringe al consultor a tener que conectarse a la red corporativa para<br />

enviar los gastos. Hay que recordar también que <strong>de</strong>bido a que la solicitud<br />

es un Servicio Web, se pue<strong>de</strong>n aplicar otras normas <strong>de</strong> igual<br />

manera (Como WS-Security) -que proporcionan integridad y confi<strong>de</strong>ncialidad<br />

para el mensaje a pesar <strong>de</strong> que éste se envíe a través <strong>de</strong><br />

servidores SMTP públicos.<br />

Figura 8. Dos aplicaciones en comunicación en la misma máquina<br />

utilizando http<br />

Figura 9. TCP o In Process proporciona una forma más directa<br />

para la comunicación entre aplicaciones locales<br />

Figura 10. El transporte para el Servicio Web se utiliza para<br />

registrar el mensaje en SQL<br />

29

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

Saved successfully!

Ooh no, something went wrong!