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

<channel>
	<title>Espacio SOA &#187; WS-BPEL</title>
	<atom:link href="http://www.espaciosoa.net/category/ws-bpel/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.espaciosoa.net</link>
	<description>Un Espacio para el Mundo SOA y BPM</description>
	<lastBuildDate>Tue, 26 May 2009 11:29:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Orquestación y Coreografía</title>
		<link>http://www.espaciosoa.net/2007/09/17/orquestacion-y-coreografia/</link>
		<comments>http://www.espaciosoa.net/2007/09/17/orquestacion-y-coreografia/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 19:45:06 +0000</pubDate>
		<dc:creator>Kike</dc:creator>
				<category><![CDATA[BPM]]></category>
		<category><![CDATA[WS-BPEL]]></category>
		<category><![CDATA[WS-CDL]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.espaciosoa.net/2007/09/17/orquestacion-y-coreografia/</guid>
		<description><![CDATA[A menudo he visto en presentaciones, art&#237;culos e incluso charlas de diversos tipos, el uso indiscriminado de dos palabras que creo son necesarias diferenciar: Orquestaci&#243;n y Coreograf&#237;a. 
Yo mismo me he planteado ser&#237;as dudas sobre el &#225;mbito de cada palabra (e incluso ya esbozamos algo sobre el tema en alg&#250;n momento) y con este post [...]]]></description>
			<content:encoded><![CDATA[<p>A menudo he visto en presentaciones, art&iacute;culos e incluso charlas de diversos tipos, el uso indiscriminado de dos palabras que creo son necesarias diferenciar: <em><strong>Orquestaci&oacute;n y Coreograf&iacute;a</strong></em>. <br />
Yo mismo me he planteado ser&iacute;as dudas sobre el &aacute;mbito de cada palabra (<a href="http://www.espaciosoa.net/2007/02/06/ws-bpel-version-20-casi-lista/ ">e incluso ya esbozamos algo sobre el tema en alg&uacute;n momento</a>) y con este post quiero por un lado aclarar ideas y dar pie a un posible debate sobre cuando debe utilizarse cada una.  </p>
<p><strong>Orquestaci&oacute;n</strong> (<em>Web Service Orchestration</em>) y <strong>Coreograf&iacute;a</strong> (<em>Web Services Choreography</em>) se suelen ver como dos aproximaciones para la Composici&oacute;n de Servicios Web, pero tienen matices (la principal diferencia entre orquestaci&oacute;n y coreograf&iacute;a es el alcance):</p>
<p>Si buscaramos la definici&oacute;n de Orquestaci&oacute;n y Coreograf&iacute;a en un diccionario obtendr&iacute;amos algo tal que as&iacute;:</p>
<ul>
<li>La <em>Orquestaci&oacute;</em>n es el estudio y pr&aacute;ctica de ordenar la m&uacute;sica para una orquesta. Es decir, consiste en decidir que instrumentos deben tocar qu&eacute; notas en una pieza de m&uacute;sica.</li>
<li>La <em>Coreograf&iacute;a</em> es la ordenaci&oacute;n y movimiento de los bailarines en el escenario. Es decir, consiste en decidir como debe ser el movimiento de los bailarines en el escenario al ritmo de la m&uacute;sica.
    </li>
</ul>
<p>Despu&eacute;s de estas &quot;definiciones&quot; podr&iacute;amos hablar de similitudes entre orquestaci&oacute;n y m&uacute;sica; al igual que de coreograf&iacute;a y danza (o bailarines). El problema es que esto no termina de dejar claro las similitudes y diferencias entre Orquestaci&oacute;n y Coreograf&iacute;a aplicadas a los Servicios Web.</p>
<p>Cuando hablamos de Orquestaci&oacute;n, debemos hablar de WS-BPEL y por tanto de procesos ejecutables. Es decir, la Orquestaci&oacute;n podr&iacute;a verse como la ejecuci&oacute;n de un proceso de negocio definido en WS-BPEL y que puede ser ejecutado por un motor BPEL.<br />
Cuando hablamos de Coreograf&iacute;a, debemos hablar de WS-CDL (Web Services Choreography Description Language) y por tanto de colaboraci&oacute;n entre actores; es decir, de interacciones entre servicios web. <br />
Hay que verlo desde una perspectiva distinta, WS-BPEL (Orquestaci&oacute;n) es un mecanismo para el intercambio de mensajes desde una visi&oacute;n m&aacute;s detallada a trav&eacute;s de un proceso (un flujo de control). Y WS-CDL (Coreograf&iacute;a) es una visi&oacute;n m&aacute;s abstracta y descriptiva de los actores que intercambian mensajes para ejecutar varios proceso particulares (varios flujos de control).</p>
<p>WS-CDL tiene como prop&oacute;sito definir la interoperabilidad necesaria para crear un sistema compuesto por servicios web. La Coreograf&iacute;a nos permite especificar las reglas de uni&oacute;n y trabajo colaborativo (entendiendo por colaboraci&oacute;n, una funci&oacute;n/es de negocio surgidas de la interacci&oacute;n cooperativa de m&uacute;ltiples actores. Es lo que normalmente se entiende por un proceso de negocio global donde se modela el estado de negocio (por ejemplo, <a target="_blank" href="http://www.ebxml.org/specs/ebBPSS.pdf">BPSS &#8211; Business Process Specification Schema</a>)) de diversos servicios web.<br />
Por el contrario, WS-BPEL se centra en la composici&oacute;n de nuevos servicios a partir de otros ya existentes. BPEL nos proporciona una manera de describir el comportamiento interno de qu&eacute; necesitan los servicios para trabajar conjuntamente y as&iacute; poder crear otro servicio como composici&oacute;n de los primeros.</p>
<p>No se si queda claro o simplemente genera m&aacute;s confusi&oacute;n. &iquest;Que opinais al respecto?  </p>
<p><strong>Links interesantes:</strong></p>
<p><a href=" https://blueprints.dev.java.net/bpcatalog/ee5/soa/">Web Services Orchestration Using BPEL</a><br />
<a href=" http://weblogs.java.net/blog/johnreynolds/archive/2006/01/service_orchest.html">Service Orchestration vs. Service Choreography by John Reynolds</a><br />
<a href=" http://charltonb.typepad.com/weblog/2007/05/what_is_choreog.html">What is&#8230; choreography? What is&#8230; orchestration? on Digital Walkabout</a><br />
<a href=" http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel">OASIS Web Services Business Process Execution Language (WSBPEL)</a><br />
<a href="http://www.ebpml.org/ws_-_cdl.htm ">WS-Choreography Definition Language (WS-CDL)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.espaciosoa.net/2007/09/17/orquestacion-y-coreografia/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>BPEL4People, o como humanizar procesos</title>
		<link>http://www.espaciosoa.net/2007/08/17/bpel4people-o-como-humanizar-procesos/</link>
		<comments>http://www.espaciosoa.net/2007/08/17/bpel4people-o-como-humanizar-procesos/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 09:36:24 +0000</pubDate>
		<dc:creator>Kike</dc:creator>
				<category><![CDATA[Estándares]]></category>
		<category><![CDATA[WS-BPEL]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.espaciosoa.net/2007/08/17/bpel4people-o-como-humanizar-procesos/</guid>
		<description><![CDATA[Ahora que la especificaci&#243;n WS-BPEL 2.0 se puede considerar un est&#225;ndar por parte del Comit&#233; OASIS, varios vendedores (BEA, IBM, Oracle, SAP, etc&#8230;) est&#225;n trabajando en 2 especificaciones que extiendan la actual e incluyan actividades humanas. 
Dichas especificaciones son BPEL4People y WS-HumanTask (WS-HT). El primer borrador ya est&#225; publicado; ahora queda que pueda estandarizarse por [...]]]></description>
			<content:encoded><![CDATA[<p>Ahora que la <a href="http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html">especificaci&oacute;n WS-BPEL 2.0</a> se puede considerar un est&aacute;ndar por parte del <a href="http://www.oasis-open.org/">Comit&eacute; OASIS</a>, varios vendedores (BEA, IBM, Oracle, SAP, etc&#8230;) est&aacute;n trabajando en 2 especificaciones que extiendan la actual e incluyan actividades humanas. <br />
Dichas especificaciones son BPEL4People y WS-HumanTask (WS-HT). El <a href="http://www.ibm.com/developerworks/webservices/library/specification/ws-bpel4people/">primer borrador ya est&aacute; publicado</a>; ahora queda que pueda estandarizarse por medio de Oasis.</p>
<p>La especificaci&oacute;n BPEL4People fue creada para modelar a gente dentro de la definici&oacute;n de procesos BPEL. Espec&iacute;ficamente, podr&aacute; visualizarse una actividad denominada &quot;Actividad de Persona&quot;; igual que una est&aacute;ndar de invocaci&oacute;n de servicio web; pero con un contexto adicional asociado.</p>
<p>Por su parte, WS-HumanTask suministra el API y el motor de ejecuci&oacute;n para BPEL4People. Se encargar&aacute; de definir c&oacute;mo debe ser la tarea, la manera de crearla y de dar un conjunto de API&#8217;s para su interacci&oacute;n.</p>
<p>El est&aacute;ndar BPEL no incluye definiciones para incorporar tareas humanas. No obstante, todos los proveedores de herramientas BPM que soportan BPEL; incorporan desarrollos propios que soportan las interacciones humanas (normalmente como &quot;worklists&quot; que permiten reclamar, reasignar o ejecutar tareas por medio de personas). El problema es que dichos desarrollos son propietarios y en ning&uacute;n caso estandarizados; por lo que aparece un problema de portabilidad entre fabricantes; dificilmente salvable sin una estandarizaci&oacute;n como la que </p>
<p>BPEL4People propone un patr&oacute;n de interacci&oacute;n de 5 tareas de proceso distintas:</p>
<div align="center"><img src="http://farm2.static.flickr.com/1256/1146330877_051983fb7c.jpg" alt="" />
</div>
<p>
En el primer patr&oacute;n, la tarea se especifica dentro de la actividad humana. En el segundo, se especifica dentro del Proceso BPEL, por lo que puede ser reutilizada por numerosas actividades dentro de dicho proceso.<br />
En el tercer patr&oacute;n, la tarea es externa al proceso BPEL, por lo que puede ser llamada por varios procesos. Este modelo permite que una tarea pueda ser llamada por varios motores de procesos, incluso de diversos fabricantes (por lo que se da soluci&oacute;n al problema de la portabilidad).<br />
El patr&oacute;n cuatro, es como el tercero, salvo porque la exposici&oacute;n de la tarea se define a trav&eacute;s de un interfaz WSDL (de esta manera, implementaciones tales como la transaccionalidad, requerir&aacute;n de implementaciones estandarizadas como WS-Transaction; mientras que en el anterior patr&oacute;n, dichas caracter&iacute;sticas quedan a merced de la implementaci&oacute;n que haga cada propietario).<br />
Por &uacute;ltimo, el patr&oacute;n quinto, es como el cuarto, salvo porque la tarea es llamada desde una Actividad de Invocaci&oacute;n est&aacute;ndar, en lugar de una actividad humana</p>
<p><strong>Links interesantes:</p>
<p></strong><a href="http://www.ibm.com/developerworks/webservices/library/specification/ws-bpel4people/"> WS-BPEL Extension for People</a><br />
<a href="http://sourceforge.net/projects/bpel4people">Proyecto BPEL4People en SourceForge.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.espaciosoa.net/2007/08/17/bpel4people-o-como-humanizar-procesos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>BPMN, XPDL y BPEL&#8230; cuál escoger?</title>
		<link>http://www.espaciosoa.net/2007/06/08/bpmn-xpdl-y-bpel-cual-escoger/</link>
		<comments>http://www.espaciosoa.net/2007/06/08/bpmn-xpdl-y-bpel-cual-escoger/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 12:46:35 +0000</pubDate>
		<dc:creator>Kike</dc:creator>
				<category><![CDATA[BPM]]></category>
		<category><![CDATA[BPMN]]></category>
		<category><![CDATA[WS-BPEL]]></category>
		<category><![CDATA[XPDL]]></category>

		<guid isPermaLink="false">http://www.espaciosoa.net/2007/06/08/bpmn-xpdl-y-bpel-cual-escoger/</guid>
		<description><![CDATA[BPMN implementa una notación de modelo para procesos, concretamente el conjunto original de especificaciones propuestas por BPMI (Business Process Managment Iniciative), ahora parte del OMG (Object Management Group). Se trata de una notación gráfica de los pasos y actividades de un proceso de negocio. Modela tanto la secuencia de actividades como los datos o mensajes [...]]]></description>
			<content:encoded><![CDATA[<p align="left"><a href="http://en.wikipedia.org/wiki/BPMN" target="_blank">BPMN</a> implementa una notación de modelo para procesos, concretamente el conjunto original de especificaciones propuestas por BPMI (Business Process Managment Iniciative), ahora parte del OMG (Object Management Group). Se trata de una notación gráfica de los pasos y actividades de un proceso de negocio. Modela tanto la secuencia de actividades como los datos o mensajes intercambiados entre los distintos participantes. BPMN no está pensado para modelar aplicaciones, sino procesos que correrán dentro de dichas aplicaciones. Por ello, la salida de BPMN necesita ser expresado en algo que no sea un lenguaje programático. Es aquí donde entra en juego BPML (metalenguaje desarrollado por BPMI). Así, a través de BPML disponemos de la traducción de un formato gráfico (para ser leido por personas) a un formato leible por máquinas (y permitir el intercambio entre distintas herramientas).<br />
En ausencia de BPML, nos encontramos con BPEL y XPDL como soluciones a esa traducción:</p>
<p><a href="http://en.wikipedia.org/wiki/BPEL" target="_blank">BPEL</a> es un lenguaje ejecutable con sus variables y operaciones. Las operaciones permiten enviar y recibir mensajes SOAP y tiene un gran soporte para XML y transformaciones XML. Además, permite de manera fácil invocar múltiples servicios web al mismo tiempo y sincronizar los resultados.<br />
BPEL no tiene soporte gráfico; es decir, no especifica como deben ser los diagramas interpretativos de los procesos que define.<br />
El objetivo de BPEL es ofrecer una forma de orquestar servicios web, la secuencia de interacciones subyacente y el flujo de datos punto a punto.</p>
<p><a href="http://en.wikipedia.org/wiki/Xpdl" target="_blank">XPDL</a>, por su lado, especifica un formato de diseño de los procesos. Permite una representación gráfica de los procesos incluyendo coordenadas X e Y para cada nodo implementado. Además, los nodos pueden especificar atributos tales como roles, descripción de actividades, timers, llamadas a servicios web, etc&#8230; Suele ser preferido cuando se trata de implementar procesos o workflows con interacciones humanas, ya que en esto supera a BPEL (para soportar interacciones humanas, BPEL necesita de añadidos a la especificación, lo cual dificulta su portabilidad ya que suelen ser implementaciones propietarias de cada proveedor).<br />
El objetivo de XPDL es almacenar y permitir el intercambio de diagramas de procesos. Intenta ofrecer una manera estándar para representar procesos de tal manera que puedan ser importados/exportados por cualquier editor que implemente el estándar.<br />
XPDL 2.0 tiene extensiones que permite representar todos los aspectos de BPMN.</p>
<p>A veces, el intercambio de procesos BPEL entre distintas herramientas no es todo lo satisfactorio que se desearía (ya que cada proveedor implemente BPEL &#8220;a su manera&#8221;; incluso cuando el objetivo inicial de la especificación era la unificación en la forma de implementarlo).<br />
Por el contrario, XPDL en su representación de BPMN si es transportable de una herramienta a otra (ya que luego cada proveedor realiza su conversión de XPDL a BPEL según necesite; o incluso ejecuta XPDL de forma nativa). Por eso, XPDL se puede establecer como un formato ideal para intercambio de procesos entre distintos proveedores que transformarán los desarrollos al formato BPEL adecuado a sus necesidades.</p>
<p>BPEL y XPDL no son competidores entre sí, ya que pueden ser complementarios según el uso que se haga de ellos. De hecho, a partir de un modelo BPMN podemos pasar a un proceso BPEL ejecutable por un motor de una herramienta.<br />
Igualmente a partir de un proceso BPMN podemos obtener una implementacion XPDL (de hecho, desde la versión XPDL 2.0 esto es inmediato en ambos sentidos) que puede ser ejecutada por algunos motores de forma nativa. La desventaja del paso de BPMN a BPEL es que no siempre se puede hacer el camino inverso (lo que dificulta la exportación/importación entre herramientas). Pero tampoco hay una necesidad imperiosa de ello: BPEL y XPDL están pensados para cosas distintas; pero pueden ser complementarias si se utilizan de esa manera.</p>
<p>Es interesante la aproximación a la cadena de valor BPMN-XPDL-BPEL que se detalla en el artículo &#8220;<a href="http://www.bijonline.com/index.cfm?section=article&amp;aid=806#" target="_blank">Understanding the BPMN-XPDL-BPEL Value Chain</a>&#8221; de Nathaniel Palmer:</p>
<ol>
<li>El usuario genera un diagrama con notación BPMN del proceso que quiere construir.</li>
<li>Se guardan los diagramas parciales como XPDL durante el desarrollo. En el caso de XPDL 2.0 esto es inmediato.</li>
<li>Finalmente se traducen ciertas partes a BPEL (básicamente en lo que a intercambio de datos se refiere, no a interacciones humanas donde BPEL no es adecuado ya que necesita de modulos específicos que son diferentes en su implementación por los distintos fabricantes).</li>
</ol>
<p>¿Qué creeis? ¿Habéis utilizado alguna vez alguno de estos estándares?</p>
<p>Espero que cuando menos se hallan disipado alguna de las dudas acerca de las tres implementaciones más conocidas de que disponemos para crear Procesos de Negocio.</p>
<p><strong>Links interesantes:</strong></p>
<p><a href="http://kswenson.wordpress.com/2006/05/26/bpmn-xpdl-and-bpel/" target="_blank">The BPMN-XPDL-BPEL value chain (Go Flow)</a><br />
<a href="http://www.wfmc.org/standards/xpdl.htm" target="_blank">Recursos XPDL (WFMC)</a><br />
<a href="http://www.bpmn.org/" target="_blank">Recursos BPMN (OMG)</a><br />
<a href="http://www.oasis-open.org/committees/wsbpel/" target="_blank">Recursos BPEL (OASIS)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.espaciosoa.net/2007/06/08/bpmn-xpdl-y-bpel-cual-escoger/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WS-BPEL&#8230; versión 2.0 casi lista!</title>
		<link>http://www.espaciosoa.net/2007/02/06/ws-bpel-version-20-casi-lista/</link>
		<comments>http://www.espaciosoa.net/2007/02/06/ws-bpel-version-20-casi-lista/#comments</comments>
		<pubDate>Tue, 06 Feb 2007 20:58:41 +0000</pubDate>
		<dc:creator>Kike</dc:creator>
				<category><![CDATA[BPM]]></category>
		<category><![CDATA[WS-BPEL]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.espaciosoa.net/2007/02/06/ws-bpel-version-20-casi-lista/</guid>
		<description><![CDATA[Oasis acaba de aprobar la especificación de WS-BPEL 2.0 hace unos días. Ahora solo queda la publicación definitiva y tendremos un estándar nuevo que debe unificar las formas en que se construyen y modelan los procesos de negocio en los distintos fabricantes.
WS-BPEL (también conocido como BPEL4WS o simplemente BPEL) es un lenguaje de composición de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oasis-open.org/home/index.php" target="_blank">Oasis</a> acaba de aprobar la especificación de <a href="http://www.oasis-open.org/committees/download.php/22036/wsbpel-specification-draft%20candidate%20CD%20Jan%2025%2007.pdf" target="_blank">WS-BPEL 2.0</a> hace unos días. Ahora solo queda la publicación definitiva y tendremos un estándar nuevo que debe unificar las formas en que se construyen y modelan los procesos de negocio en los distintos fabricantes.</p>
<p><strong>WS-BPEL</strong> (también conocido como <strong><em>BPEL4WS</em></strong> o simplemente <strong><em>BPEL</em></strong>) es un lenguaje de composición de Servicios Web Orientado a Procesos. Se basa en los <a href="http://es.wikipedia.org/wiki/WSDL" target="_blank">WSDL</a> (Web Service Definition Language) y de hecho un proceso WS-BPEL puede ser expuesto a través de su propio WSDL y por tanto ser invocado como cualquier otro Servicio Web (permitiendo la reutilización de los mismos).</p>
<p>Nació como combinación de <a href="http://en.wikipedia.org/wiki/Web_Services_Flow_Language" target="_blank">WSFL</a> (Web Service Flow Language de IBM, orientado a grafos y basado en el control de los links entre tareas) y <a href="http://xml.coverpages.org/xlang.html" target="_blank">XLANG</a> (Web Services for Business Process Design de Microsoft, basado en un control de flujos con secuencias, condiciones, bucles, etc&#8230;) y ha evolucionado adquiriendo lo mejor de cada uno e intentando evitar las malas prácticas de los mismos (debido a que el paradigma de utilización de ambos es distinto y a veces de lugar a situaciones de construcción sobrelapadas).</p>
<p>WS-BPEL define un conjunto de tareas básicas para la Composición de Servicios Web:</p>
<ul>
<li><strong><em>Tareas de Invocación (Invoke):</em></strong> Invocación de operaciones one-way o request-response en un servicio web.</li>
<li><em><strong>Tareas de Recepción (Receive):</strong></em> Permite el bloqueo de un proceso a la espera de llegada de un mensaje.</li>
<li><em><strong>Tareas de Respuesta (Response):</strong></em> Permite enviar un mensaje en respuesta a un mensaje recibido previamente.</li>
<li><em><strong>Tareas de Espera (Wait):</strong></em> Permite la espera durante un tiempo del proceso.</li>
<li><em><strong>Tareas de Asignación (Assign):</strong></em> Permite copiar datos de un lugar a otro.</li>
<li><strong><em>Tareas de Lanzamiento (Throw):</em></strong> Permite indicar que ha ocurrido un error.</li>
<li><em><strong>Tareas de Finalización (End):</strong></em>  Permite finalizar la orquestación de la instancia en curso.</li>
</ul>
<p>Además, las tareas estructuradas son utilizadas para combinar las primitivas en otras más complejas:</p>
<ul>
<li><strong><em>Tareas secuenciales (sequence):</em></strong> Define un orden secuencial de tareas.</li>
<li><strong><em>Tareas de decisión (switch):</em></strong> Permite seleccionar un camino en particular en base a una condición.</li>
<li><strong><em>Tareas de elección:</em></strong> Permite bloquear y esperar la llegada de un mensaje o establecer un tiempo límite de espera (timeout). Cuando uno de los eventos ocurre, se ejecutan las tareas designadas.</li>
<li><strong><em>Tarea repetitiva (While):</em></strong> Permite repetir un grupo de tareas mientras se cumpla una determinada condición.</li>
<li><strong><em>Tareas paralelas:</em></strong> Permite paralelizar la ejecución de cierto grupo de tareas.</li>
</ul>
<p>WS-BPEL trata todos los estados como una colección de tipos de mensajes WSDL. Esa colección de mensajes que constituyen un estado es lo que se llama contenedor. Los mensajes de un contenedor pueden ser los enviados o recibidos con clientes o servicios externos; incluso los utilizados internamente por el proceso para computación temporal de los mismos. Asimismo, la comunicación se define a través de los PortType de los WSDL.</p>
<p>WS-BPEL sostiene la idea de un contenedor para cada tarea en el flujo definido, cada uno de los cuales tiene una definición de esquema. Así, un mensaje se corresponde a un contenedor, que básicamente es un servicio web con información adicional sobre como procesarlo, posibles pre-condiciones y post-condiciones.</p>
<p>De modo gráfico, un proceso definido en WS-BPEL tendría la siguiente forma:</p>
<p><a href="http://espaciosoa.wordpress.com/files/2007/02/ws-bpel-process.gif" title="WS-BPEL Process"></a></p>
<p style="text-align:center;"><a href="http://farm2.static.flickr.com/1355/542294747_6a6aba6cdc.jpg" title="WS-BPEL Process"><img src="http://farm2.static.flickr.com/1355/542294747_6a6aba6cdc.jpg" alt="WS-BPEL Process Example" height="311" width="500" /></a></p>
<p>Todos los accesos a datos y manejos de los mismos en WS-BPEL es definido utilizando estándares como <a href="http://en.wikipedia.org/wiki/XPath" target="_blank">XPath</a> y <a href="http://en.wikipedia.org/wiki/Xslt" target="_blank">XSLT</a>, además de basarse en los contratos de servicios establecidos por medio de los WSDL.</p>
<p>Durante la ejecución de un proceso se pueden establecer más de una conversación con servicios externos, por lo que es necesario establecer mecanismos a nivel de aplicación para corresponder los mensajes y conversaciones con las instancias de procesos que sean objetos de los mismos. Para ello, WS-BPEL ofrece lo que se conoce como &#8220;<strong><em>Correlation Sets</em></strong>&#8221; o <strong><em>Grupos de Correlaciones</em></strong>. Estos son conjuntos de propiedades, que juntos sirven para definir una conversación a nivel de aplicación dentro de una instancia de proceso. Básicamente son identificadores únicos de instancias de proceso, que permite saber en todo momento que instancia corresponde a qué mensaje recibido o enviado a través del mismo.</p>
<p>WS-BPEL puede ser utilizado tanto para <strong><em>orquestación</em></strong> de servicios (llamadas a procesos ejecutables; entendiendo como tal las llamadas a servicios y la especificación de como se llevan a cabo) como para <strong><em>coreografía</em></strong> de servicios(llamadas a procesos abstractos; entendiendo como tal los mensajes públicos a intercambiar entre dos o más partes).</p>
<p>Por lo general, la implementación de WS-BPEL varia según el fabricante y de hecho algunos lo interpretan como un Script XML que puede ser ejecutado con un motor específico; mientras que otros lo interpretan como un lenguaje de intercambio. <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel" title="WS-BPEL 2.0 Specification" target="_blank"> La última especificación</a>, la 2.0 incluye nuevas características como inicialización de variables, transformación XSLT de variables, acceso XPath a datos de variables, etc&#8230; No obstante, la <a href="http://www-128.ibm.com/developerworks/library/specification/ws-bpel/" title="WS-BPEL 1.1 Specification " target="_blank">especificación 1.1</a> es la más estable y en uso todavía por la mayoría de los fabricantes, ya que la 2.0 ha sido recientemente aprobada el 31/01/2007 por OASIS y todavía está siendo preparada para su publicación definitiva.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.espaciosoa.net/2007/02/06/ws-bpel-version-20-casi-lista/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
