<?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>bpel &#8211; Oscar Blancarte &#8211; Software Architecture</title>
	<atom:link href="https://www.oscarblancarteblog.com/tag/bpel-2/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.oscarblancarteblog.com</link>
	<description>Software Architect &#38; FullStack developer</description>
	<lastBuildDate>Tue, 22 Jul 2014 16:47:13 +0000</lastBuildDate>
	<language>es-MX</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.9</generator>

<image>
	<url>https://www.oscarblancarteblog.com/wp-content/uploads/2019/03/cropped-ob-32x32.png</url>
	<title>bpel &#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>SOA Suite &#8211; Como usar el DataBase Adapter</title>
		<link>https://www.oscarblancarteblog.com/2014/07/22/soa-suite-como-usar-el-database-adapter-en-una-composicion-soa/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/22/soa-suite-como-usar-el-database-adapter-en-una-composicion-soa/#respond</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Tue, 22 Jul 2014 16:47:13 +0000</pubDate>
				<category><![CDATA[BPEL]]></category>
		<category><![CDATA[SOA Suite]]></category>
		<category><![CDATA[bpel]]></category>
		<category><![CDATA[Data Base Adapter]]></category>
		<category><![CDATA[soa suite]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/?p=167</guid>

					<description><![CDATA[<p>En post pasados ya he hablado de que es una Composición SOA y de los Componentes que ofrece Oracle SOA Suite sin embargo es esta ocasión nos enfocaremos al DataBase Adapter para crear una composición la cual se conecte a una base de datos y guarde los datos de un registro de usuario. En este punto asumimos que ya [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/22/soa-suite-como-usar-el-database-adapter-en-una-composicion-soa/">SOA Suite &#8211; Como usar el DataBase Adapter</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/composite21.png"><img loading="lazy" class="alignleft wp-image-188" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/composite21.png" alt="DataBase Adapter" width="207" height="100" /></a>En post pasados ya he hablado de que es una <a href="https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-que-es-un-composite/" target="_blank" rel="noopener noreferrer">Composición SOA</a> y de los <a href="https://www.oscarblancarteblog.com/2014/07/17/soa-suite-componentes-de-una-composicion-soa/" target="_blank" rel="noopener noreferrer">Componentes</a> que ofrece Oracle SOA Suite sin embargo es esta ocasión nos enfocaremos al DataBase Adapter para crear una composición la cual se conecte a una base de datos y guarde los datos de un registro de usuario.</p>
<p>En este punto asumimos que ya sabes como crear un proyecto SOA, configurar un <a href="https://www.oscarblancarteblog.com/2014/07/21/como-crear-un-datasource-en-weblogic/" target="_blank" rel="noopener noreferrer">Data Source</a> y un <a href="https://www.oscarblancarteblog.com/2014/07/21/como-crear-un-connection-pool-en-weblogic/" target="_blank" rel="noopener noreferrer">Connection Pool</a> desde la consola de WebLogic.<span id="more-167"></span></p>
<p>&nbsp;</p>
<p>Una vez creado nuestro proyecto SOA lo que sigue es crear un <a href="https://www.oscarblancarteblog.com/2014/07/16/que-es-un-schema-en-xml/" target="_blank" rel="noopener noreferrer">Schema</a> el cual contenga los tipos de datos que usaremos para el Request y Response de nuestro servicio el cual quedaría a sí.</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/schema.png"><img loading="lazy" class="aligncenter wp-image-172 size-full" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/schema.png" alt="DataBase Adapter" width="343" height="557" /></a></p>
<p style="text-align: center;">fig.1: Muestra la estructura del schema necesario para crear el servicio de registro de usuarios.</p>
<p style="text-align: left;">Ya con el schema procedemos a crear un proceso <a href="https://www.oscarblancarteblog.com/2014/07/16/oracle-soa-suite-como-crear-un-bpel/" target="_blank" rel="noopener noreferrer">BPEL</a> con el schema anterior y configuramos para que quede de la siguiente manera:</p>
<p style="text-align: left;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createbpel2.png"><img loading="lazy" class="aligncenter wp-image-173" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/createbpel2.png" alt="DataBase Adapter" width="512" height="355" /></a></p>
<p style="text-align: center;">Fig.2: Muestra la configuración del BPEL con el Reques y Response del Schema anterior.</p>
<p style="text-align: left;">El paso siguiente es crear la tabla de USUARIOS en nuestra base de datos la cual deberá estar accesible con el usuario que usaremos en el registro del DataSource.</p>
<p style="text-align: left;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/tablausuarios.png"><img loading="lazy" class="aligncenter wp-image-176 size-full" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/tablausuarios.png" alt="DataBase Adapter" width="353" height="145" /></a></p>
<p style="text-align: left;">En este punto tendremos la Composición SOA de la siguiente manera:</p>
<p style="text-align: left;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/composite1.png"><img loading="lazy" class="aligncenter wp-image-174" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/composite1.png" alt="DataBase Adapter" width="525" height="246" /></a></p>
<p style="text-align: center;">Fig.3: Estado de la Composición después de crear el proceso BPEL.</p>
<p style="text-align: left;">Lo que sigue a continuación es crear un DataBase Adapter para lo cual arrastramos el <strong>DataBase Adaper</strong> de la paleta a la sección de <strong>External References</strong> y nos saldrá el Wizzard y presionamos siguiente en la primera pantalla llevándonos a la siguiente pantalla:<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard2.png"><img loading="lazy" class="aligncenter wp-image-180" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard2.png" alt="DataBase Adapter" width="451" height="378" /></a></p>
<p style="text-align: left;">En esta pantalla solo podremos el nombre que le daremos al Adaptador dentro de Composite por lo que ponemos un nombre que lo identifique rápidamente y presionamos <strong>Next </strong>para continuar.</p>
<p style="text-align: left;"> La siguiente tendremos que definir la forma en que nos vamos a conectar a la base de datos para lo cual vamos a requerir dos conexiones distintas, la primera(Arriba) es una conexión diracta con la base de datos que se utilizara exclusivamente en tiempo de desarrolla, ya que sera necesaria para introspectar la base de datos y crear los Schemas necesarios para hacer la comunicación. En caso de no tener ninguna disponible tendremos que crear una nueva con el botón verde de +.</p>
<p style="text-align: left;">Una vez configurada nuestra conexión tendremos que configurar la segunda(Abajo) esta es exclusiva para tiempo de ejecución y tendremos que poner el nombre del JNDI de un Connection Pool (<a href="https://www.oscarblancarteblog.com/2014/07/21/como-crear-un-connection-pool-en-weblogic/" target="_blank" rel="noopener noreferrer">Como crear un Connection Pool</a>) registrado en WebLogic y presionamos <strong>Next</strong> para continuar.<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard3.png"><img loading="lazy" class="aligncenter wp-image-181" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard3.png" alt="DataBase Adapter" width="509" height="427" /></a></p>
<p style="text-align: left;">En la siguiente pantalla tendremos que especificar el tipo de operaciones que realizaremos, En este caso como solo haremos Insert y Select seleccionamos las opciones siguientes y presionamos <strong>Next.<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard4.png"><img loading="lazy" class="aligncenter wp-image-182" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard4.png" alt="DataBase Adapter" width="501" height="419" /></a></strong></p>
<p style="text-align: left;"> La siguiente pantalla es para seleccionar las tablas con las que estaremos trabajando por lo que el botón de <strong>Import Tables </strong>y seleccionamos la tabla de usuarios para continuar.</p>
<p style="text-align: left;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard5.png"><img loading="lazy" class="aligncenter wp-image-183" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard5.png" alt="DataBase Adapter" width="495" height="254" /></a></p>
<p style="text-align: left;">La siguiente pantalla es para realizar las asociaciones pero como no tenemos solo presionamos <strong>Next</strong>.</p>
<p style="text-align: left;">El wizzard nos dirigirá a la pantalla para seleccionar los campo con lo cuales podremos interactuar por lo que seleccionamos todos y continuamos.<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard7.png"><img loading="lazy" class="aligncenter wp-image-184" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard7.png" alt="DataBase Adapter" width="512" height="432" /></a></p>
<p style="text-align: left;"> En el siguiente paso configuramos el Query del Select de la siguiente manera pues buscaremos al Usuario por medio de su nombre de usuario o correo.</p>
<p style="text-align: left;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard8.png"><img loading="lazy" class="aligncenter wp-image-185" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/dbadapterwizzard8.png" alt="DataBase Adapter" width="503" height="421" /></a>Finalmente presionamos Next en las dos siguientes pantalla para finalizar y tendremos el DBAdapter en nuestra composición.</p>
<p style="text-align: left;">El siguiente paso sera asociar el DBAdapter al BPEL como se muestra en la siguiente imagen:<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/composite21.png"><img loading="lazy" class="aligncenter wp-image-188" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/composite21.png" alt="DataBase Adapter" width="500" height="247" /></a></p>
<p style="text-align: left;">En este punto la composición SOA ya esta lista pero faltara programar el BPEL para que realice las operaciones necesaria para registrar al usuario.</p>
<p style="text-align: left;">En este caso la lógica del BPEL sera la siguiente, Cuando llega una solicitud validara que el nombre de usuario no exista consultando la tabla por medio del nombre de usuario, si no existe registrara al usuario y regresara el código &#8216;000&#8217; y la leyenda &#8216;Registro Exitoso&#8217;, en caso de que el usuario ya exista regresaremos el error &#8216;111&#8217; y la leyenda &#8216;Usuario existente&#8217; y finalizara.</p>
<p style="text-align: left;"><strong>DESARROLLO DEL BPEL</strong></p>
<p style="text-align: left;">Primero que nada abrimos el BPEL dando doble click sobre el, esto nos llevara al editor y veremos lo siguiente en pantalla:</p>
<p style="text-align: left;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel1.png"><img loading="lazy" class="aligncenter wp-image-189" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel1.png" alt="DataBase Adapter" width="465" height="281" /></a>Si prestamos atención en la imagen veremos en rojo el DBAdapter que configuramos hace un momento como un PartnerLink lo cual indica que todo va bien hasta ahorita.</p>
<p style="text-align: left;">El siguiente paso sera crear una actividad Invoke de la siguiente manera:</p>
<p style="text-align: left;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel21.png"><img loading="lazy" class="aligncenter wp-image-191" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel21.png" alt="DataBase Adapter" width="524" height="297" /></a>En esta pantalla tendremos que definir primero que nada el nombre de la actividad en en el campo <strong>Name</strong>, después seleccionar el PartnerLink que deseamos invocar y tener cuidad de seleccionar la Operación de Select, Otro paso importante es crear la variables Input y Output de la parte de abajo y ponerles el nombre <strong>QueryUserInputVariable</strong> y <strong>QueryUserOutputVariable</strong> para finalizar.</p>
<p style="text-align: left;">Seguido creamos un actividad Assign para asignar los valores de entrada(InputVariable) a la variable de entrada del servicio (<strong>QueryUserInputVariable</strong>) para lo cual aremos la siguiente asignación:<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/assign.png"><img loading="lazy" class="aligncenter wp-image-193" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/assign.png" alt="DataBase Adapter" width="493" height="309" /></a></p>
<p style="text-align: left;">El BPEL nos quedara de la siguiente manera:<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel3.png"><img loading="lazy" class="aligncenter wp-image-194" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel3.png" alt="DataBase Adapter" width="520" height="311" /></a>En este momento la variable QueryUserOutputVariable contendrá los resultados de la invocación del servicio por lo que tendremos que validar si encontró resultados mediante una actividad IF debajo del la actividad Invoke y la configuraremos de la siguiente manera:<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel4.png"><img loading="lazy" class="aligncenter wp-image-195 size-full" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel4.png" alt="DataBase Adapter" width="422" height="397" /></a>En este IF contamos los nodos del resultado, si es mayor que cero entonces quiere decir que el usuario ya existe y tendremos que regresar el error. Por lo cual agregamos una actividad Assign y un Reply quedando el IF de la siguiente manera:<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel5.png"><img loading="lazy" class="aligncenter wp-image-197" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel5.png" alt="DataBase Adapter" width="425" height="309" /></a></p>
<p style="text-align: left;">La actividad <strong>ErrorAssign</strong> lo configuramos de la siguiente manera:<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel6.png"><img loading="lazy" class="aligncenter wp-image-198" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel6.png" alt="DataBase Adapter" width="530" height="333" /></a></p>
<p style="text-align: left;">La actividad <strong>ErrorReply </strong>la configuramos de la siguiente manera:</p>
<p style="text-align: left;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel7.png"><img loading="lazy" class="aligncenter wp-image-200" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel7.png" alt="DataBase Adapter" width="531" height="305" /></a>Con esto lograremos que el BPEL regrese el error al detectar que ya existe el usuario.</p>
<p style="text-align: left;">El siguiente paso sera crear otra actividad Invoke para el mismo PartnerLink pero esta vez para la operación de Insert y definiremos las variables de entrada(InsertUsuarioInputVariable).</p>
<p style="text-align: left;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel8.png"><img loading="lazy" class="aligncenter wp-image-201" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel8.png" alt="DataBase Adapter" width="505" height="531" /></a></p>
<p style="text-align: left;">Creamos una actividad Assign para asignar los valores de la variable <strong>InsertUsuarioInputVariable </strong>para que quede de la siguiente manera:<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel9.png"><img loading="lazy" class="aligncenter wp-image-203 size-full" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpel9.png" alt="DataBase Adapter" width="660" height="411" /></a></p>
<p style="text-align: left;">Finalmente con un assign modificamos la variable OutputVariable para regresar el código 000 y la leyenda Registro Exitoso.</p>
<p style="text-align: left;">y el BPEL quedara de la siguiente manera:</p>
<p style="text-align: left;"><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpelfinal.png"><img loading="lazy" class="aligncenter wp-image-204 size-full" title="DataBase Adapter" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/bpelfinal.png" alt="DataBase Adapter" width="317" height="451" /></a></p>
<p style="text-align: left;">Solo nos queda deployar y probar el servicio.</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/22/soa-suite-como-usar-el-database-adapter-en-una-composicion-soa/">SOA Suite &#8211; Como usar el DataBase Adapter</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/22/soa-suite-como-usar-el-database-adapter-en-una-composicion-soa/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">167</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>
