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.
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