<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JMS &#8211; Oscar Blancarte &#8211; Software Architecture</title>
	<atom:link href="https://www.oscarblancarteblog.com/category/jms/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.oscarblancarteblog.com</link>
	<description>Software Architect &#38; FullStack developer</description>
	<lastBuildDate>Tue, 15 Jul 2014 18:44:29 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://www.oscarblancarteblog.com/wp-content/uploads/2019/03/cropped-ob-32x32.png</url>
	<title>JMS &#8211; Oscar Blancarte &#8211; Software Architecture</title>
	<link>https://www.oscarblancarteblog.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">89905023</site>	<item>
		<title>JMS en las integraciones</title>
		<link>https://www.oscarblancarteblog.com/2014/07/15/jms-en-las-integraciones/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/15/jms-en-las-integraciones/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Tue, 15 Jul 2014 18:44:29 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JMS]]></category>
		<category><![CDATA[arquitectura]]></category>
		<category><![CDATA[java]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/2014/07/15/jms-en-las-integraciones/</guid>

					<description><![CDATA[Cuando hablamos de integrar aplicaciones se nos viene a la menta los WebServices ya que es una forma simple de comunicar dos sistemas independientes sin importar la tecnología ya que es una solución muy simple, limpia y ademas son un estándar. Una solución de integración por servicios quedaría algo a sí. &#160; En la siguiente [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>				Cuando hablamos de integrar aplicaciones se nos viene a la menta los WebServices ya que es una forma simple de comunicar dos sistemas independientes sin importar la tecnología ya que es una solución muy simple, limpia y ademas son un estándar.</p>
<p>Una solución de integración por servicios quedaría algo a sí.</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/ws-p2p.png"><img fetchpriority="high" decoding="async" class="aligncenter wp-image-18" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/ws-p2p.png" alt="Invocación directa de un Webservice" width="539" height="122" /></a><span id="more-22"></span></p>
<p>&nbsp;</p>
<p>En la siguiente figura podemos apreciar que la aplicación A se comunica con la aplicación B a través de un WebService. Este diseño funciona pero no es lo suficiente robusto como para soportar si la aplicación B queda fuera de linea por alguna razón.</p>
<p>Imagines el escenario en donde un la aplicación B queda fuera de linea, lo cual se vería a sí</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/ws-p2p-fail.png"><img decoding="async" class="aligncenter wp-image-19" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/ws-p2p-fail.png" alt="WS P2P Fail" width="520" height="132" /></a></p>
<p>&nbsp;</p>
<p>La invocación fallaría por lo que tendríamos dos escenarios</p>
<ol>
<li>La aplicación A continua sin importar que B este fuera de linea</li>
<li>La aplicación A tendría que cancelar la operación que estuviera realizando debido a que es necesario que B reciba la petición.</li>
</ol>
<p>&nbsp;</p>
<p>Para solucionar este tipo de problemas podemos utilizar colas de mensajes(<a href="https://www.oscarblancarteblog.com/2014/08/01/estructura-de-datos-queue-cola/">Queue</a>) para encolar los mensajes y ser atendidos cuando la aplicación B pueda, esto incluye que si queda fuera de linea los mensajes son guardados hasta que B entra en linea nuevamente.</p>
<p>Un escenario con una cola de mensajes quedaría a sí.</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/jms-java-onli.png"><img decoding="async" class="aligncenter wp-image-20" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/jms-java-onli.png" alt="JMS Java Onli" width="524" height="111" /></a></p>
<p>&nbsp;</p>
<p>En el siguiente escenario la aplicación A en vez de comunicarse directamente con la aplicación B dejara su mensaje en una cola de mensajes y no le interesara si B esta en linea o  no, Incluso no le interesa que aplicación procese la solicitud logrando un desacoplamiento total. Imaginemos que la aplicación B queda obsoleta y que metemos una aplicación C la cual respeta el formato del mensaje de A, esto dará como resultado que a la aplicación A no le interesara quien procese la petición siempre y cuando sea procesada. Sin embargo esta solución tiene un gran detalle y es que al comunicarnos con colas de mensaje JMS solo se podrá hacer entre aplicaciones Java.</p>
<p>Para solucionar el problema de comunicación con aplicaciones no Java se puede utilizar una pequeña variante del diseño anterior.</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/jms-esb.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-21" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/jms-esb.png" alt="JMS ESB" width="565" height="104" /></a></p>
<p>&nbsp;</p>
<p>Podemos crear un Proxy el cual se encargue de exponer un servicio que lo único que haga sea dejar el mensaje en la cola de mensajes. para esto podemos utilizar herramientas diseñadas para la virtualización de servicios como lo son los Enterprice Service Bus. De esta forma si A es una aplicación .NET y B java ya no importara por que la comunicación sera a través de WebServices.</p>
<p>&nbsp;</p>
<p>Espero que estas soluciones les sean de utilidad.</p>
<p>&nbsp;		</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/15/jms-en-las-integraciones/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">22</post-id>	</item>
	</channel>
</rss>
