<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>soa &#8211; Oscar Blancarte &#8211; Software Architecture</title>
	<atom:link href="https://www.oscarblancarteblog.com/tag/soa/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.oscarblancarteblog.com</link>
	<description>Software Architect &#38; FullStack developer</description>
	<lastBuildDate>Sun, 16 Aug 2020 20:52:25 +0000</lastBuildDate>
	<language>es-MX</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.11</generator>

<image>
	<url>https://www.oscarblancarteblog.com/wp-content/uploads/2019/03/cropped-ob-32x32.png</url>
	<title>soa &#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>SOAP vs REST ¿cual es mejor?</title>
		<link>https://www.oscarblancarteblog.com/2017/03/06/soap-vs-rest-2/</link>
					<comments>https://www.oscarblancarteblog.com/2017/03/06/soap-vs-rest-2/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Mon, 06 Mar 2017 09:00:02 +0000</pubDate>
				<category><![CDATA[EAI]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[arquitectura]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[webservice]]></category>
		<guid isPermaLink="false">https://www.oscarblancarteblog.com/?p=1535</guid>

					<description><![CDATA[<p>SOAP vs REST es una comparación que muchos programadores o incluso arquitectos de software suelen preguntarse a la hora de desarrollar las API para sus sistemas, pero cual es realmente la diferencia que existe entre ellas, ¿Será que una es superior a la otra? ¿Será que REST llego para remplazar a SOAP? Pues bien, en [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2017/03/06/soap-vs-rest-2/">SOAP vs REST ¿cual es mejor?</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image"><figure class="aligncenter"><img src="https://www.oscarblancarteblog.com/wp-content/uploads/2017/03/SOAP-vs-REST-1024x576.png" alt="SOAP vs REST" class="wp-image-1536"/></figure></div>



<p>SOAP vs REST es una comparación que muchos programadores o incluso arquitectos de software suelen preguntarse a la hora de desarrollar las API para sus sistemas, pero cual es realmente la diferencia que existe entre ellas, ¿Será que una es superior a la otra? ¿Será que REST llego para remplazar a SOAP? Pues bien, en este artículo trataremos de resolver esta gran duda.</p>



<span id="more-1535"></span>



<p>Primero que nada, me gustaría aclarar un error muy común que puede hacer que distorsione por completo tu entendimiento con respecto a los Web Services y es que <strong>SOA no es igual que SOAP y tener Web Services no significa que tenemos SOA</strong>. Hace un tiempo publique un artículo donde hablaba acerca de la <a href="https://www.oscarblancarteblog.com/2014/07/23/que-es-service-oriented-architecture-soa/">Arquitectura SOA</a> por si quieres darle una repasada al tema.<br>Pues bien, ya con este punto aclaro, debemos entender que SOA (Service-Oriented Architecture) es un <em><strong>tipo de Arquitectura de Software</strong></em> y no una tecnología o producto. SOA es una arquitectura que se base en la integración de aplicaciones mediante Servicios, los servicios representan la medida más granular de la arquitectura, sobre la que se construyen otros artefactos como: composiciones, proxys, fachadas, BPM e incluso API completas. Ahora bien, si SOA tiene como médula espinal los servicios, ¿no son SOAP y REST servicios? ¡Revelador no!!<br>Entonces si REST y SOAP son en realidad servicios, entonces que diferencia existe entre las dos, cual es el propósito de que existan dos tecnologías que aparentemente hacen lo mismo. Primero entendamos que SOAP y REST siguen la misma Arquitectura (SOA), por lo que las dos deberían de apegarse a los mismos principios.</p>



<div class="wp-block-image"><figure class="aligncenter"><img src="https://www.oscarblancarteblog.com/wp-content/uploads/2017/03/SOAP_VS_REST_SOA.png" alt="SOAP vs REST" class="wp-image-1537"/></figure></div>



<p>En este punto nos debe de quedar claro que tanto SOAP como REST son tecnologías que implementan la arquitectura SOA.</p>



<h2>&nbsp;</h2>



<h2>Que es SOAP:</h2>



<p>Los servicios SOAP o mejor conocimos simplemente como Web Services, son servicios que basan su comunicación bajo el protocolo SOAP (Simple Object Access Protocol) el cual este definido por Wikipedia como “protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML”. Por lo tanto, queda claro que la comunicación se realiza mediante XML, lo cual nos debe de quedar muy claro, pues es en este aspecto donde radican las principales diferencias contra REST. Los servicios SOAP funcionan por lo general por el protocolo HTTP que es lo más común cuando invocamos un Web Services, sin embargo, SOAP no está limitado a este protocolo, si no que puede ser enviado por FTP, POP3, TCP, Colas de mensajería (JMS, MQ, etc). Pero como comentaba, HTTP es el protocolo principal.</p>



<div class="wp-block-image"><figure class="aligncenter"><img src="https://www.oscarblancarteblog.com/wp-content/uploads/2017/03/soap-services.png" alt="SOAP vs REST" class="wp-image-1538"/></figure></div>



<p>Si bien, me gustaría poner una sección de ventajas y desventajas, la realidad es que estas pueden ser lo contrario dependiendo del punto de vista y la situación concreta del problema a resolver por lo que me gustaría dejar un breve análisis de cuando utilizar SOAP. A mi parecer SOAP sigue siendo el mejor protocolo para <strong>la comunicación de Server to Server o Partner to Partner</strong>&nbsp;pues es un protocolo mucho más robusto, tiene un tipiado mucho más fuerte, permite agregar <em><strong>metadatos</strong></em> mediante los atributos (cosa que JSON no tiene), permite definir <strong><em>espacios de nombre</em></strong>, evitando la ambigüedad. Por lo mismo, SOAP es un formato más pesado, tanto en tamaño como en procesamiento, pues los XML tiene que ser parseado a un árbol DOM, resolver espacios de nombre (namespaces) antes de poder empezar a procesar el documento. Los XML además tienen métodos de validación muy potentes y ampliamente utilizados, a diferencia de JSON, el cual, si tiene forma de validar, pero no son tan potente y su utilización es pobremente utilizada (no significa que en el futuro no se estandarice su uso).</p>



<p>Nótese que, SOAP solo soporta formato XML, por lo que cuando lo que necesitamos es flexibilidad y un performance superior, podemos optar por REST. Tengo otro artículo donde hablo de <a href="https://www.oscarblancarteblog.com/2014/07/18/json-vs-xml/">XML vs JSON</a> por si quieres profundizar en el tema.</p>



<h2>Que es REST</h2>



<p>Por otra parte, tenemos REST, el chico nuevo de la cuadra. REST ya tiene unos años, pero en realidad tiene poco que se le empezó a dar la importancia que hoy tiene. REST es una tecnología mucho más flexible que transporta datos por medio del protocolo HTTP, pero este permite utilizar los diversos métodos que proporciona HTTP para comunicarse, como lo son GET, POST, PUT, DELETE, PATCH y a la vez, utiliza los códigos de respuesta nativos de HTTP (404,200,204,409). REST es tan flexible que permite transmitir prácticamente <strong><em>cualquier tipo de datos</em></strong>, ya que el tipo de datos está definido por el Header Content-Type, lo que nos permite mandar, XML, JSON, Binarios (imágenes, documentos), Text, etc. que contrasta con SOAP que solo permite la transmisión de datos en formato XML. A pesar de la gran variedad de tipos de datos que podemos mandar con REST, la gran mayoría transmite en JSON por un motivo muy importante, <strong><em>JSON es interpretado de forma natural por JavaScript</em></strong>, lo que ha hecho que frameworks como Angular y React se aprovechen al máximo, pues pueden enviar peticiones directas al servidor por medio de AJAX y obtener los datos de una forma nativa. Los formularios de HTML pueden ser apuntados a los servicios REST sin ningún problema (por ejemplo).</p>



<div class="wp-block-image"><figure class="aligncenter"><img src="https://www.oscarblancarteblog.com/wp-content/uploads/2017/03/rest-services.png" alt="SOAP vs REST" class="wp-image-1539"/></figure></div>



<p>Otra de las grandes ventajas que presenta JSON sobre SOAP es el <strong><em>performance</em></strong>, ya que los JSON son considerablemente más livianos en peso y mucho más rápido en su procesamiento. Pero como ya vimos, el performance tiene un costo, y es la robustez del mensaje como tal.<br><br></p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://codmind.com/courses/api-rest-con-spring-boot" target="_blank" rel="noreferrer noopener"><img loading="lazy" width="800" height="450" src="https://www.oscarblancarteblog.com/wp-content/uploads/2019/08/banner-lg.jpg" alt="" class="wp-image-3146" srcset="https://www.oscarblancarteblog.com/wp-content/uploads/2019/08/banner-lg.jpg 800w, https://www.oscarblancarteblog.com/wp-content/uploads/2019/08/banner-lg-300x169.jpg 300w, https://www.oscarblancarteblog.com/wp-content/uploads/2019/08/banner-lg-768x432.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></a><figcaption>Te invito a mi curso de Mastering API REST con Spring Boot</figcaption></figure></div>



<p>Ahora bien, desde mi punto de vista REST debería ser utilizado para obtener datos en aplicaciones WEB que funcionan principalmente con el Modelo MVC del lado del cliente, es decir, que todos los procesamientos se realizan desde el navegador y que solo va al backend para obtener o actualiza la base de datos. Otra de las situaciones es cuando tenemos aplicaciones donde los recursos de procesamiento son bajos y con ancho de banda limitado, como sería el caso de las aplicaciones móviles o robótica.</p>



<p>Te invito a que vas mi articulo &#8220;<a href="https://www.oscarblancarteblog.com/2018/01/11/construir-api-rest-nodejs-primera-parte/">Construir un API REST con NodeJS</a>&#8220;, en el cual hablo desde cero como implementar un API REST de la forma más simple y clara, utilizando NodeJS y Express. O puedes puedes ver la guia completa de cómo implementar un <a href="https://www.oscarblancarteblog.com/api-rest-java-jax-rs/">API REST con Java</a> desde cero.</p>



<p>Te puede interesar mi video de Youtube&#8221;<a href="https://youtu.be/RbBPuMlgdUU" target="_blank" rel="noreferrer noopener"><strong>Qué es API REST? &#8211; 🚀Y por que es importante aprenderlo 🚀</strong></a>&#8220;</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe class='youtube-player' width='648' height='365' src='https://www.youtube.com/embed/RbBPuMlgdUU?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'></iframe>
</div></figure>



<h2>SOAP vs REST Conclusiones</h2>



<p>Como vimos en este análisis, no hay un claro ganador, pues tanto SOAP como REST siguen siendo muy útiles en condiciones diferentes, incluso existen aplicaciones que ya exponente todas sus API’s en SOAP y REST para asegurar que la integración con ellas sea lo más natural posible sin importar la aplicación con la que se estén integrado.</p>



<p>Cabe mencionar que REST ha estado tomando fuerza a una velocidad impresionante y más con la llegada de NodeJS y las bases de datos NoSQL como MongoDB. Sin embargo, el hecho de que REST tome fuerza, no significa que le esté quitando protagonismo a SOAP, pues recordemos que con la llegada del Internet de las cosas (IOT) cada vez se conectan más dispositivos a internet que necesitan ser integrados (una gran oportunidad para REST) y es donde REST está tomando la delantera.</p>



<p>La verdad es que el futuro no se ve claro, pero lo que, si es que a pesar de que REST siga tomando fuerza, SOAP sigue siendo una tecnología muy robusta y extremadamente utilizada por lo que una cosa si es segura, a SOAP todavía le queda un largo camino.</p>



<p>A pesar de todo este análisis, lo importante es tu qué opinas, ¿cuál crees que sea el futuro?, ¿crees que REST poco a poco matara a SOAP? O ¿simplemente SOAP seguirá funcionando a la par con REST?.</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2017/03/06/soap-vs-rest-2/">SOAP vs REST ¿cual es mejor?</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2017/03/06/soap-vs-rest-2/feed/</wfw:commentRss>
			<slash:comments>126</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1535</post-id>	</item>
		<item>
		<title>Que es Service-oriented architecture (SOA)</title>
		<link>https://www.oscarblancarteblog.com/2014/07/23/que-es-service-oriented-architecture-soa/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/23/que-es-service-oriented-architecture-soa/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Wed, 23 Jul 2014 18:43:49 +0000</pubDate>
				<category><![CDATA[EAI]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[arquitectura]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[webservice]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/?p=214</guid>

					<description><![CDATA[<p>En los últimos años hemos escuchado haber de SOA por todas partes, SOA aqui SOA alla y SOA por todas partes, Pero que es realmente SOA ya que en ocasiones confundimos SOA con alguna tecnología o algún producto. Sin embargo no es mas un tipo de arquitectura de software la cual esta diseñada para los ambientes [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/23/que-es-service-oriented-architecture-soa/">Que es Service-oriented architecture (SOA)</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>				<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/soa.png"><img loading="lazy" class=" wp-image-215 alignleft" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/soa.png" alt="SOA" width="135" height="100" /></a>En los últimos años hemos escuchado haber de SOA por todas partes, SOA aqui SOA alla y SOA por todas partes, Pero que es realmente SOA ya que en ocasiones confundimos SOA con alguna tecnología o algún producto. Sin embargo no es mas un tipo de arquitectura de software la cual esta diseñada para los ambientes de integración, Pero antes de entrar a detalle me gustaría hacer un poco de historia.</p>
<p>Antes del debut de SOA teníamos la Arquitectura de ManFrame y Cliente-Servidor las cuales no quiero decir que sean obsoletas o pasadas de moda ya que cada un ofrece ventajas y desventajas que pueden ser decisivas según nuestro escenario de negocio.<span id="more-214"></span></p>
<h2><strong>Mainframe</strong></h2>
<p>Bien, ManFrame es una arquitectura que su enfoque central radica en un servidor super potente capas de hacer miles de transacciones por si sola y administrar miles de usuarios concurrentes desde una única ubicación. Esto desde luego es una gran ventaja pero tenia el gran inconveniente que todo es centralizado.</p>
<h2><strong>Cliente-Servidor</strong></h2>
<p>A diferencia de Mainframe el cliente servidor es una arquitectura mas fácil de encontrar ya que muchos de los aplicativos que usamos en muestra computadora la utilizan, Este tipo de arquitectura se caracteriza en que una parte del programa se encuentra instalada en nuestra computadora y esta otra parte llamada Servidor la cual es otro software que atiende las peticiones le cliente por medio de un protocolo como TCP/IP. Esta arquitectura ayuda en que parte del procesamiento se realiza por parte del cliente pero para almacenar o realizar consultas en tiempo real se comunicaba con el servidor.</p>
<h2><strong>Service-oriented architecture (SOA)</strong></h2>
<p>Como observamos en las arquitecturas anteriores estas se enfocan únicamente en si mismas sin importarles mucho la forma en la cual nos comunicamos con otras aplicaciones, ya que cada una tenia un protocolo único de comunicación  y era difícil interactuar con otros sistemas.</p>
<p>Sin embargo SOA es diferente ya que esta diseñado no solo para complacer al sistema al cual estamos diseñando si no también ve un poco mas y esto es por que se preocupa por la forma en que este sistema se deberá comunicar con los demas, ya sea consumiendo servicios de proveedores externos e internos o simplemente exponiendo servicios para que otras aplicaciones se puedan comunicarse con el.</p>
<p>La principal ventaja que ofrece SOA es que su activo principal no son las aplicaciones o sistemas si no los <strong>Contratos </strong>que expone y es que con una definición correcta de un contrato podríamos incluso cambiar el aplicativo por otro y nadie se diera cuenta. Un contrato define la forma en que se realizara la comunicación, establece el formato de entrada del servicio y de salida lo que ayuda a que cualquier cliente pueda interpretarlos sin ningún problema.</p>
<p>Otra de las ventajas que ofrece SOA es que utiliza protocolos de comunicación Estándar como WebServices lo cual le permite comunicarse con cualquier aplicación sin importar en que lenguaje este desarrollada.</p>
<p>Cada servicio que se desarrolla en SOA se realiza bajo la premisa de que sera reutilizado al máximo y que sera de utilidad para otros sistemas por lo cual cada servicio deberá ser planeado con cuidado para que sea lo mas simple posible y a si aumentar el grado de re-utilización que tendrá.</p>
<p>A continuación les dejo un esquema muy simple de como la arquitectura SOA nos puede ayudar en las integraciones de los diferentes sistemas que se encuentran en una empresa.</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/soa.png"><img loading="lazy" class="aligncenter wp-image-215" title="SOA" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/soa.png" alt="SOA" width="504" height="378" /></a></p>
<p>&nbsp;</p>
<p>Del lado derecho tenemos las aplicaciones a las cuales necesitamos comunicarnos para realizar un proceso de integración y cada una tiene expuesto un conjunto de servicios, En el medio tenemos la capa de orquestación donde creamos servicios de integración a partir de otros servicios existentes. y del lado izquierdo tenemos las aplicaciones las cuales requieren una integración con algún sistema interno o externo.</p>
<p>&nbsp;</p>
<p>En resumen SOA es una arquitectura diseñada para la integración de todos los distintos aplicativos que conforman la infraestructura del cliente, pero también busca la integración con aplicativos externos como de proveedores.</p>
<p>&nbsp;</p>
<p>Si quieres conocer mas de SOA y de Integraciones con BPEL aquí te dejo algunos links de otros de mis Post.</p>
<p><a href="https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-que-es-un-composite/">Que es una composición SOA</a></p>
<p><a href="https://www.oscarblancarteblog.com/2014/07/18/que-es-la-virtualizacion-de-servicios/">Que es la virtualizacion de servicios</a></p>
<p><a href="https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-como-crear-un-bpel/">Como crear un BPEL</a>		</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/23/que-es-service-oriented-architecture-soa/">Que es Service-oriented architecture (SOA)</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/23/que-es-service-oriented-architecture-soa/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">214</post-id>	</item>
		<item>
		<title>Que es la Virtualización de Servicios</title>
		<link>https://www.oscarblancarteblog.com/2014/07/18/que-es-la-virtualizacion-de-servicios/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/18/que-es-la-virtualizacion-de-servicios/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Fri, 18 Jul 2014 15:58:01 +0000</pubDate>
				<category><![CDATA[ESB]]></category>
		<category><![CDATA[SOA Suite]]></category>
		<category><![CDATA[enterprice service bus]]></category>
		<category><![CDATA[esb]]></category>
		<category><![CDATA[osb]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[servicio]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[virtualización]]></category>
		<category><![CDATA[webservice]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/?p=97</guid>

					<description><![CDATA[<p>Para los que ya tenemos mas experiencia en la arquitectura SOA y comprendemos perfectamente que es un Enterprise Service Bus este tema las ha de parecer muy simple pero para todos aquellos que no han tenido la oportunidad de adentrarse a los obscuros territorios de lo que es SOA les tengo buenas noticias pues en [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/18/que-es-la-virtualizacion-de-servicios/">Que es la Virtualización de Servicios</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Para los que ya tenemos mas experiencia en la arquitectura SOA y comprendemos perfectamente que es un Enterprise Service Bus este tema las ha de parecer muy simple pero para todos aquellos que no han tenido la oportunidad de adentrarse a los obscuros territorios de lo que es SOA les tengo buenas noticias pues en esta Entrada hablaremos que es la virtualización.</p>
<p style="text-align: justify;">Para empezar virtualizar viene de la palabra virtual como cuando hablamos de maquinas virtuales, pues esto es algo parecido pues un servicio virtual no es mas que una mascara que lo único que hace es <span id="more-97"></span>exponer un WebService que por dentro hace la llamada a otro u otros WebServices para dar una funcionalidad nuevo o extendida.</p>
<p style="text-align: justify;"><em>Imaginemos que estamos desarrollando una aplicación móvil para una empresa la cual dentro de sus sistemas ya tiene un conjunto de webservices desarrollados para las principales tareas que realiza, sin embargo hasta el momento no tiene ningún desarrollo para móviles y le preocupa la seguridad ya que al exponer sus webservices tema que alguna persona mal intencionada pueda entrar y hacer algún mal.</em></p>
<p style="text-align: justify;"><em>Por lo que desarrollo un WebService para que el usuario se Autentifique cuando entre a la aplicación, sin embargo eso no es todo, también requiere que cuando el usuario realice alguna acción se validen sus privilegios para denegar cualquier acción no permita para ese usuario.</em></p>
<p style="text-align: justify;"><em>Otro punto importante es que el cliente quiere que cuando una persona intente hacer una acción no autorizada o falle en el Login se registre tal acción para poder auditar y detectar situaciones sospechosas.</em></p>
<p style="text-align: justify;">El cliente nos brinda los siguientes WebServices con los que debemos diseñar nuestra aplicación:</p>
<pre style="text-align: justify;"><strong>SecurityService  </strong><em>//WebServices que expone el sistema de seguridad centralizado.</em></pre>
<ul style="text-align: justify;">
<li><strong>login(usuario, password) : boolean: </strong>Operación que autentifica al usuario y nos dice indica si el login fue exitoso o no.</li>
<li><strong>autorization(usuario,password, accion ):boolean: </strong>Operación que nos indica si un usuario tiene privilegios para realizar una acción determinada, El parámetro acción representa el ID de la operación a ejecutar.</li>
</ul>
<pre><strong>AuditService </strong>//WebService que expone el sistema de Auditoria Informática</pre>
<ul style="text-align: justify;">
<li><strong>intentoAccion(usuario, accion, DateTime, autorizationResult): void: </strong>Operación que registra cuando una acción es solicitada</li>
</ul>
<pre><strong>ClienteService </strong>//WebService para consultar los datos del cliente</pre>
<ul style="text-align: justify;">
<li><strong>consultaDatosPersonales(idCliente):</strong> <strong>Cliente: </strong>Operación que regresa los datos básicos del cliente como nombre,apellido, sexo, CURP, etc.</li>
<li><strong> consultaSaldo(idCliente): double: </strong>Operación que regresa el saldo del cliente</li>
</ul>
<h1 style="text-align: justify;"><strong>Desarrollando la solución</strong></h1>
<p style="text-align: justify;">Imaginemos que la aplicación lo único que hace es consultar los datos del cliente y su saldo sin embargo no todos los usuarios pueden saber el saldo de un cliente por lo que el servicio se separa y se consulta de forma independiente.</p>
<p style="text-align: justify;">Lo primero que se nos ocurre es hacer una pantalla de login y autenticarnos con el servicio de login pasandole el nombre de usuario y password. Si el login se realiza correctamente entramos a la aplicación, sin embargo el cliente quiere que cuando un login falle o se de correctamente notifiquemos el evento al departamento de Auditoria mediante la operación de <strong>intentoAccion</strong> y pesarla el ID de la operación Login y la fecha y hora del intento.</p>
<p style="text-align: justify;">Esto desde luego nos implicaría dos llamadas a Webservices, uno para Login y otro para Auditoria:</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/loginnovirtual.png"><img loading="lazy" class="aligncenter  wp-image-101" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/loginnovirtual.png" alt="LoginNoVirtual" width="555" height="347" /></a></p>
<p style="text-align: justify;"> Fig.1: Muestra la comunicación con los dos webservices de forma separada.</p>
<p style="text-align: justify;">Para la pantalla de datos del cliente tendríamos que implementar nuevamente un sistema de llamadas donde primero verificaríamos si tenemos privilegios para leer los datos del cliente con el webservices de autorizacion, de darse los privilegios entonces se consulta el Webservices de <strong>consultaDatosPerosnales</strong>, seguido de consultar los privilegios para autorizar al usuario para leer el saldo del cliente y consultar el servicio de  <strong>consultaSaldo. </strong>Nuevamente si alguna autorización falla es requerido notificar al departamento de Auditoria mediante el Webservices <strong>intentoAccion. </strong>Este esquema quedaría algo a sí.</p>
<p style="text-align: justify;"> <a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/consultaclientnovirtual.png"><img loading="lazy" class="aligncenter  wp-image-103" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/consultaclientnovirtual.png" alt="ConsultaClientNoVirtual" width="555" height="397" /></a></p>
<p style="text-align: justify;"> Fig.2: Fugura que muestra el número de acción a realizar solo para completar la consulta de los datos del cliente y saldo.</p>
<p style="text-align: justify;"><strong>Un esquema con Virtualización:</strong></p>
<p style="text-align: justify;">Una vez que examinamos como tendríamos que desarrollar una aplicación sin virtualización podemos empezar a examinar el esquema con virtualización.</p>
<p style="text-align: justify;">La primera acción que deberíamos hacer es crear un proxy que cumpla casi exactamente con el contrato(WSDL) que sirve como punto de entrada a nuestra aplicación pero que ademas de esto le estaríamos pasando los datos de autenticación y autorización en el Header del mensaje SOAP de tal forma que el proxy tomara el header lo enviara al servicio de <strong>autorization </strong>en caso de autorización continuara con la llamada al servicio de <strong>consultaDatosPerosnales </strong>y regresara el resultado.Pero en caso de haber fallado la autorización llamaría al servicio de Auditoria y regresaría un Throw para indicar que el servicio ha fallado por seguridad.</p>
<p style="text-align: justify;">La aplicación se viera de esta manera para el escenario de consulta de datos del suscriptor:</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/consultaclientevirtual.png"><img loading="lazy" class="aligncenter  wp-image-104" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/consultaclientevirtual.png" alt="ConsultaClienteVirtual" width="568" height="427" /></a></p>
<p style="text-align: justify;">Fig.3: Escenario con virtualización</p>
<p style="text-align: justify;">Si nos damos cuenta en este escenario ya solo tenemos una invocación a un único servicio el cual se encarga de realizar las operaciones previas a la consulta de los datos del cliente y también notificar al departamento de Auditoria en caso de haber fallado la autorización.</p>
<p style="text-align: justify;">Este enfoque tiene las siguientes ventajas:</p>
<ul>
<li>Se reduce el numero de llamadas al servidor</li>
<li>Aumentan los tiempos de respuesta</li>
<li>Las operaciones se realizan desde la misma infraestructura del cliente por lo que la seguridad es mucho mejor.</li>
<li>El implementar un Enterprice Service Bus nos da la cualidad de poder medir el performance (KPI o Key Performance Indicator).</li>
<li>Definir los acuerdos de nivel de servicio o SLA.</li>
</ul>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/18/que-es-la-virtualizacion-de-servicios/">Que es la Virtualización de Servicios</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/18/que-es-la-virtualizacion-de-servicios/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">97</post-id>	</item>
		<item>
		<title>Oracle SOA Suite &#8211; Como crear un BPEL</title>
		<link>https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-como-crear-un-bpel/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-como-crear-un-bpel/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Wed, 16 Jul 2014 22:21:14 +0000</pubDate>
				<category><![CDATA[BPEL]]></category>
		<category><![CDATA[SOA Suite]]></category>
		<category><![CDATA[bpel]]></category>
		<category><![CDATA[soa]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/?p=49</guid>

					<description><![CDATA[<p>Una vez mas les quiero compartir pequeño Post donde les enseñare a crear un BPEL muy siempre el cual lo único que hace es sumar dos numero y regresar el resultado, quizás no sea gran cosa pero si apenas estas aprendiendo este es un ejemplo bastante simple que te puede ayudar a comprender mejor la [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-como-crear-un-bpel/">Oracle SOA Suite &#8211; Como crear un BPEL</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Una vez mas les quiero compartir pequeño Post donde les enseñare a crear un BPEL muy siempre el cual lo único que hace es sumar dos numero y regresar el resultado, quizás no sea gran cosa pero si apenas estas aprendiendo este es un ejemplo bastante simple que te puede ayudar a comprender mejor la forma de desarrollar un BPEL con Oracle SOA Suite.<span id="more-49"></span></p>
<p style="text-align: justify;"><strong>Paso 1: Crear una proyecto SOA.</strong></p>
<p style="text-align: justify;">Entraremos a JDeveloper y daremos click en File/New/SOA Project y nos saldrá la pantalla siguiente, Solo cambiamos el nombre del proyecto a &#8220;Calculadora&#8221; y damos Next en las dos pantallas.</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createsoaproject.png"><img loading="lazy" class="aligncenter wp-image-45" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createsoaproject.png" alt="CreateSOAProject" width="542" height="409" /></a> <a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createsoaproject2.png"><img loading="lazy" class="aligncenter wp-image-46" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createsoaproject2.png" alt="CreateSOAProject2" width="546" height="413" /></a></p>
<p style="text-align: justify;">En este punto ya habrás creado una SOA Project y te abrirá la pantalla del Composite, de no ser a podemos abrirlo desde el archivo composite.xml que se genera en la estructura del proyecto:</p>
<p style="text-align: justify;"><strong>Paso 3: Crear los tipos de datos en un Schema</strong></p>
<p style="text-align: justify;">El siguiente paso es clave ya que es indispensable definir los tipos de datos que recibirá y responderá nuestro servicio para lo cual crearemos un Schema de la siguiente manera File/New/XML Schema asegurándonos que la pestaña All Technologies este seleccionada.</p>
<p style="text-align: justify;"> <a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/newschema.png"><img loading="lazy" class="aligncenter wp-image-50" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/newschema.png" alt="NewSchema" width="539" height="389" /></a></p>
<p style="text-align: justify;"> En la siguiente pantalla solo cambiamos el nombre del archivo a &#8220;Calculadora.xsd&#8221; y continuamos.</p>
<p style="text-align: justify;">Continuaremos con crear los tipos de tal forma que nuestro Schema quede de la siguiente manera:</p>
<p style="text-align: justify;"><strong>NOTA: En la siguiente entrada explico mas a detalle <a href="https://www.oscarblancarteblog.com/category/xsd/">como crear un Schema</a></strong></p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/schematypes.png"><img loading="lazy" class="aligncenter size-full wp-image-51" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/schematypes.png" alt="SchemaTypes" width="383" height="378" /></a></p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/schematypessource.png"><img loading="lazy" class="aligncenter wp-image-52" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/schematypessource.png" alt="SchemaTypesSource" width="586" height="243" /></a></p>
<p style="text-align: justify;"><strong>Paso 3: Crear un BPEL</strong></p>
<p style="text-align: justify;"> Con el Schema creado ya podemos crear un BPEL que reciba SumaRequestType y que tenga como resultado un SumaResponseType</p>
<p style="text-align: justify;">Abriremos el archivo composite.xml que se crea con el proyecto en el cual daremos click derecho en la sección del medio &#8220;Components&#8221; y seleccionamos Insert/BPEL Process como se muestra en la siguiente figura.</p>
<p style="text-align: justify;"><img loading="lazy" class="aligncenter wp-image-48" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createbpel1.png" alt="CreateBPEL" width="536" height="301" /></p>
<p style="text-align: justify;"> Nos deberá aparecer una pantalla como la siguiente y pondremos los datos como aparecen:</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createbpelandwsdl.png"><img loading="lazy" class="aligncenter wp-image-54" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createbpelandwsdl.png" alt="CreateBPELandWSDL" width="559" height="294" /></a></p>
<p style="text-align: justify;">Seleccionamos la opción de BPEL 2.0, Cambiamos el nombre a CalculadoraProcess, En NameSpace podemos poner lo que mas nos agrade no es necesario dejarlo igual, En Temple seleccionamos Synchronous BPEL Process para que sea un servicio con entrada y respuesta y finalmente en Input y Output seleccionamos los tipos que definimos en el Schema del paso 2. Seleccionar los correctamente los Input y Output es un paso clave ya que definen los tipos que se utilizaran como parámetro de entrada y salida de nuestro servicio. Finalmente presionamos OK y tendremos creado en BPEL que se mirara a sí:</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createbpelfinish.png"><img loading="lazy" class="aligncenter wp-image-56" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createbpelfinish.png" alt="CreateBPELFinish" width="537" height="330" /></a></p>
<p style="text-align: justify;">En el centro tenemos el BPEL(Azul) el cual lo creamos en el paso anterior, Del lado izquierdo tenemos expuesto un WebService que para los parámetros<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/newbpel.png"><br />
</a> al BPEL y de igual forma regresara al consumidor el resultado del BPEL, Entre medio de los dos tenemos una linea que indica que el WebService y el BPEL están conectados por lo que la información fluirá entre los dos.</p>
<p style="text-align: justify;">Ya con el BPEL creaso solo faltara programar el BPEL para que realice el calculo de la suma para lo cual daremos doble click sobre el BPEL para abrir el editor y nos dirigirá a la siguiente pantalla:</p>
<p style="text-align: justify;"><img loading="lazy" class="aligncenter wp-image-57" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/newbpel.png" alt="NewBPEL" width="533" height="302" /></p>
<p style="text-align: justify;">La imagen anterior nos muestra la forma mas simple del BPEL el cual solo tiene dos actividades receiveInput que solo recibe los parámetros de entrada en la variable llamada &#8220;InputVariable&#8221; y la actividad replyOutput las cual regresa el resultado del BPEL en la variable &#8220;OutputVariable&#8221;. Ambas variables son creadas de forma automática y corresponden con los tipos definidos en el Schema (SumaRequestType y SumaResponseType).</p>
<p style="text-align: justify;">El siguiente paso consiste en sumar los dos valores y ponerlos en la variable OutputVariable para que BPEL regrese el resultado al terminar. Para esto tendremos que crear una actividad llamada Assign la cual se encuentra en la paleta de componentes del lado  Derecho:</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpelassignresponse.png"><img loading="lazy" class="aligncenter wp-image-59" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpelassignresponse.png" alt="BPELAssignResponse" width="531" height="242" /></a></p>
<p style="text-align: justify;">Presionamos sobre &#8220;Assign&#8221; y sin soltar arrastramos hasta colocarlo en medio de las dos actividades existentes y le ponemos el nombre de SumaAssign quedando como se muestra en la figura anterior.</p>
<p style="text-align: justify;">La actividad Assign sirve para asignar valores a cualquier variable que tengamos en el BPEL por lo cual daremos doble click sobre la actividad Assign:</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpelassignresponse1.png"><img loading="lazy" class="aligncenter size-full wp-image-61" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpelassignresponse1.png" alt="BPELAssignResponse" width="660" height="413" /></a><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/assignresponsestep1.png"><br />
</a>Veremos la pantalla anterior la cual esta dividida en tres secciones:</p>
<ul style="text-align: justify;">
<li><strong>Izquierda: </strong>De esta parte tomaremos los valores para hacer las asignaciones</li>
<li><strong>Derecho: </strong>En esta sección ponemos los valores asignados mediante la sección de la izquierda.</li>
<li><strong>Abajo: </strong>Aquí solo se en listan las asignaciones que vamos haciendo.</li>
</ul>
<p style="text-align: justify;">Para sumar los dos valores necesitaremos mas de un campo por lo que tendremos que hacer una formula arrastrando la calculadora hasta el nodo llamado result:</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/assignresponsestep2.png"><img loading="lazy" class="aligncenter wp-image-62" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/assignresponsestep2.png" alt="AssignResponseStep2" width="557" height="448" /></a>En la pantalla siguiente solo seleccionamos el nodo num1 para que se coloque arriba agregamos el operador &#8220;+&#8221; y hacemos lo mismo para el num2, Con esto ya tenemos lista la formula y damos ok.<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/assignresponsestep3.png"><img loading="lazy" class="aligncenter wp-image-63" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/assignresponsestep3.png" alt="AssignResponseStep3" width="545" height="357" /></a></p>
<p style="text-align: justify;">Finalmente tendremos la asignación en la parte de abajo y presionamos OK para finalizar la asignación.</p>
<p style="text-align: justify;">Guardamos los cambios del proyecto y nuestro BPEL esta listo para deployarse</p>
<p style="text-align: justify;"><strong>Paso 4: Deploy</strong></p>
<p style="text-align: justify;">Para hacer el deploy tendremos que tener corriendo una instancia de WebLogic con la SOA Suite instalada y seguir los siguientes pasos.</p>
<p style="text-align: justify;">Sobre el proyecto hacemos click derecho y precionamos /Deploy/Composite&#8230; y nos saldrá una pantalla nueva. Seleccionamos Deploy to Aplicaction server/Next en la pantalla siguiente Next sin hacer ningún cambio, en la siguiente pantalla seleccionamos el servidor al que queremos hacer deploy o damos de alta uno nuevo en caso de no tener ninguno registrado, En la siguiente pantalla solo seleccionamos next, y finish.</p>
<p style="text-align: justify;">Con estos pasos tendremos la composicion SOA y el BPEL deployados y ya solo faltara hacer una prueba con algún cliente de WebServices como soapUI o la consola de Weblogic.</p>
<p style="text-align: justify;"><strong>Paso 5: Prueba</strong></p>
<p style="text-align: justify;">Para obtener la URL del webservice nos vamos al portal EnterpriceManager el cual esta en la url</p>
<p style="text-align: justify;">http://localhost:7001/em en caso de no estar instalado el weblogic en la misma maquina cambiar localhost por la IP.</p>
<p style="text-align: justify;">Una vez autenticados del lado izquierdo entramos a la ruta /SOA/soa-infra/default/Calculadora</p>
<p style="text-align: justify;">nos abrirá un dashboard solo de la composición y en ella veremos un icono con un mondo y una pieza de rompecabeza, damos click y aparecera una url que termina en ?wsdl esa la copiamos y la usamos en cualquier cliente para consumir webservices.</p>
<p style="text-align: justify;"><strong>NOTA: Mas adelante publicare como instalar JDeveloper, WebLogic, SOA Suite y OSB.. </strong></p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-como-crear-un-bpel/">Oracle SOA Suite &#8211; Como crear un BPEL</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-como-crear-un-bpel/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">49</post-id>	</item>
		<item>
		<title>Oracle SOA Suite &#8211; Que es un Composite</title>
		<link>https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-que-es-un-composite/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-que-es-un-composite/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Wed, 16 Jul 2014 18:15:20 +0000</pubDate>
				<category><![CDATA[BPEL]]></category>
		<category><![CDATA[SOA Suite]]></category>
		<category><![CDATA[bpel]]></category>
		<category><![CDATA[composite]]></category>
		<category><![CDATA[soa]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/?p=42</guid>

					<description><![CDATA[<p>Esta pequeña explicación va dirigida a todas las personas que están interesadas en comprender un poco del mundo de SOA enfocado a la SOA Suite de Oracle la cual es una de las plataformas lideres del mercado. Hoy en día los sistemas de información generan una gran cantidad de información mediante la operación del día [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-que-es-un-composite/">Oracle SOA Suite &#8211; Que es un Composite</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Esta pequeña explicación va dirigida a todas las personas que están interesadas en comprender un poco del mundo de SOA enfocado a la SOA Suite de Oracle la cual es una de las plataformas lideres del mercado.</p>
<p style="text-align: justify;">Hoy en día los sistemas de información generan una gran cantidad de información mediante la operación del día a día. Estos sistemas generalmente están comunicados con otros sistemas o módulos para compartir o extraer información.  Esta comunicación entre sistemas es llamado &#8220;Integraciones&#8221; y son muy importantes ya que de no existir <span id="more-42"></span>los sistemas no se podrían comunicar y se generaría un caos.</p>
<p style="text-align: justify;"><strong>Un ejemplo claro de integración:</strong></p>
<p style="text-align: justify;">Imagínate un sistema de punto de venta en donde se capturan las ventas diarias, se cobra y se consulta inventario. El punto de venta cada vez que realiza una venta tiene que descontar del almacén las unidades vendidas las cuales el Sistema de Almacén resta y lleva la cuenta para hacer los pedidos cuando la existencia esta bajando. Por otra parte las vendedoras consultan el inventario para saber si algún producto lo aun lo tiene en existencia y poder dar cotizaciones a los clientes.</p>
<p style="text-align: justify;">Al finalizar el día todas las ventas se van al sistema de contabilidad para hacer las pólizas contables.</p>
<p style="text-align: justify;">Si nos damos cuenta el sistema de ventas necesita una &#8220;Integración&#8221; constante con el sistema de Almacén ya que desde allí consulta la existencia pero también la modifica cuando venden.</p>
<p style="text-align: justify;">Al final del día el sistema se tiene que &#8220;Integrar&#8221; con el sistema de contabilidad para realizar las pólizas.</p>
<p style="text-align: justify;">Hora imaginemos que estas integraciones no existieran!!, Te imaginas como se pudiera operar si esta comunicación con los sistemas no se pudiera dar o no fuera eficiente?</p>
<p style="text-align: justify;"><strong>SOA Composite</strong></p>
<p style="text-align: justify;">Bien un composite es donde diseñamos a un alto nivel la integración o Integraciones las cuales serán expuestas como servicios para que los sistemas los consuman y logren la integración.</p>
<p style="text-align: justify;">Una composición SOA se divide en tres secciones:</p>
<ul style="text-align: justify;">
<li><strong>Exposed Services: </strong>En esta sección describimos la forma en que expondremos los servicios ante los consumidores(Aplicaciones), esta sección podemos exponer WebServices, EJB, Servicios HTTP, Sockets los cuales sirven para que los clientes puedan iniciar la integración bajo demanda, pero también existen métodos que hacen que muestra integración se ejecutaba bajo algún evento en especial como por ejemplo, Colas de mensaje(Queue) JMS, Base de datos(Poolling), B2B. En resumen esta sección representa la entrada de la integración y el inicio de su ejecución.</li>
<li><strong>External References:</strong> En esta sección ponemos los servicios externos que requeriremos para que nuestra integración se pueda realizar. Aquí podemos poner WebServices, Base de datos, HTTP, Colas de mensaje, B2B,etc.</li>
<li><strong>Components: </strong>Aquí es donde se programa las acciones a seguir para que nuestra integración realice lo que esperamos, A qui podemos poner BPEL, Human Task, Business Rules,BPM las cuales son componentes diseñados para atacar diferentes problemáticas.</li>
</ul>
<p style="text-align: justify;">Un composite para la integración del sistema de punto de ventas y almacén se vería algo a sí</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/composite.png"><img loading="lazy" class="aligncenter wp-image-41" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/composite.png" alt="Composite" width="570" height="247" /></a></p>
<p style="text-align: justify;">Fig.1: Composite para integrar Punto de venta con Almacén.</p>
<p style="text-align: justify;">En la figura anterior podemos ver que tenemos dos servicios del lado izquierdo los cuales representa los servicios que estamos exponiendo para ser consumidos por el Punto de venta.</p>
<p style="text-align: justify;">En medio vemos dos BPEL(En Azul) los cuales se encargan de Orquestar las acciones necesarias para realizar la operación deseada.</p>
<p style="text-align: justify;">Y del lado derecho tenemos el WebService que expone el almacén, el cual tiene las operaciones consultaExistencia y actualizarExistencia necesarias para realizar la integración.</p>
<p style="text-align: justify;">Por ultimo les dejo esta liga donde donde podrán encontrar mucha mas información de lo que es un Composite</p>
<p style="text-align: justify;">http://docs.oracle.com/cd/E14571_01/integration.1111/e10223/arch_02.htm</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-que-es-un-composite/">Oracle SOA Suite &#8211; Que es un Composite</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-que-es-un-composite/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">42</post-id>	</item>
		<item>
		<title>Que es BPEL</title>
		<link>https://www.oscarblancarteblog.com/2014/07/15/que-es-bpel/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/15/que-es-bpel/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Tue, 15 Jul 2014 16:17:28 +0000</pubDate>
				<category><![CDATA[BPEL]]></category>
		<category><![CDATA[bpel]]></category>
		<category><![CDATA[composición soa]]></category>
		<category><![CDATA[composite]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Schema]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[soa suite]]></category>
		<category><![CDATA[webservice]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSD]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/2014/07/15/que-es-bpel/</guid>

					<description><![CDATA[<p>BPEL también conocido como Business Process Execution Language es un lenguaje diseñado por la organización OASIS la cual se encarga de definir estándares a nivel mundial, Este lenguaje esta definido en XML y esta diseñado para orquestar procesos de forma automática. Se le llama Orquestar por que BPEL es el encargado de consumir varios servicios en un [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/15/que-es-bpel/">Que es BPEL</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">BPEL también conocido como Business Process Execution Language es un lenguaje diseñado por la organización OASIS la cual se encarga de definir estándares a nivel mundial, Este lenguaje esta definido en XML y esta diseñado para orquestar procesos de forma automática.</p>
<p style="text-align: justify;">Se le llama Orquestar por que BPEL es el encargado de consumir varios servicios en un orden especificado y realizar una función muy concreta.<span id="more-473"></span></p>
<p style="text-align: justify;">Escenario practico.</p>
<p style="text-align: justify;">Agencia de viaje: Imagínate que entras a un pagina de agencia de viaje en la cual puedes comprar un paquete que incluye boletos de avión y hotel. Lo único que tenemos que hacer nosotros es decir a donde queremos con la fecha y la agencia de viaje nos arrojara los paquetes con un precio y solo tenemos que pagar con nuestra tarjeta de crédito para que nuestra reservación quede lista.</p>
<p style="text-align: justify;">Una vez que confirmamos nuestra compra la agencia de viaje tendrá que hacer algunas operaciones que no dependen de ella como seria reservar el boleto de avión con la aerolínea, reservar los día del cuarto directamente con el Hotel, Hacer un cargo por el porcentaje que gana la agencia por realizar la venta y por ultimo guardar en el sistema de la agencia el registro de la venta.</p>
<p style="text-align: justify;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/agencia-de-viaje4.png"><img loading="lazy" class="aligncenter  wp-image-7" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/agencia-de-viaje4.png" alt="Agencia de viaje" width="557" height="193" /></a></p>
<p style="text-align: justify;"><em>Fig.1: Muestra el proceso a realizar para completar una reservación.</em></p>
<p style="text-align: justify;">Si nos damos cuenta los pasos 2,3,4 no depende de la agencia de viaje si no de servicios que exponen los proveedores como webservices.</p>
<p style="text-align: justify;">Como encaja BPEL en este escenario.</p>
<p style="text-align: justify;">Con BPEL podemos crear un solo servicio que reciba todos los parámetros necesarios para realizar la operación como los datos de la reservación y los datos de la tarjeta de crédito, con estos primero realizaremos la reservación del avión, luego reservaremos el hotel, cargaremos nuestra utilidad al cliente, Guardaremos el registro de la reservación y finalmente regresaremos al cliente la confirmación al cliente. A este proceso se le conoce como orquestar ya que toma el flujo de la ejecución y realiza las tareas de forma automática y en un orden especificado.</p>
<p style="text-align: justify;">Si bien esto te puede parecer algo que cualquier lenguaje pueda realizar la realidad es que BPEL esta diseñador para estos escenarios lo que permite una programación mucho mas rápida.</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/15/que-es-bpel/">Que es BPEL</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/15/que-es-bpel/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">473</post-id>	</item>
	</channel>
</rss>
