parte 7: ws-business process execution language antes de ... · la parte 6 trata sobre el armado y...

22
© Copyright IBM Corporation 2011 Marcas Comprender las especificaciones de servicios web, Parte 7: WS- Business Process Execution Language Pagina 1 de 22 Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language Hernan Silberman Manas Mandal 08-08-2011 Usted tiene un sistema de servicios sólido, pero lo que en verdad quiere es una aplicación que haga uso de ellos para implementar sus procesos de negocios. Este tutorial, el último de una serie de siete partes, explica cómo crear un flujo de proceso para sus servicios utilizando WS- BPEL. Ver más contenido de esta serie Antes de comenzar Este tutorial es para desarrolladores que construyen aplicaciones que utilizan servicios web. Como los servicios web se hacen cada vez más populares, frecuentemente los desarrolladores deben crear programas que coordinen los esfuerzos de múltiples servicios web para manejar un proceso de negocios. Este artículo se concentra en WS-BPEL, el cual es un estándar importante que brinda una solución sólida a este problema y se ha convertido en una elección popular entre los desarrolladores. A fin de comprender este tutorial, debe tener un conocimiento básico del Protocolo simple de acceso a objetos (SOAP) y las tecnologías relacionadas, como por ejemplo WSDL. Lea los primeros cinco tutoriales de la serie, especialmente la Parte1 y la Parte 2, para obtener una mejor comprensión. Acerca de esta serie Esta serie tutorial enseña los conceptos básicos de los servicios web siguiendo las hazañas del periódico ficticio, Daily Moon, mientras el personal utiliza servicios web para crear un sistema de flujo de trabajo para incrementar la productividad en este entorno competitivo. La Parte 1 empieza simplemente, explicando los conceptos básicos de los servicios web y mostrándole cómo utilizar SOAP, la especificación que subyace en la mayoría de lo que vendrá, y conecta el departamento de clasificados con el Sistema de Gestión de Contenido. La Parte 2 lleva las cosas un poco más allá, al explicar cómo utilizar Web Services Description Language (WSDL) para definir los mensajes producidos como se espera por el servicio web, lo que le permite al equipo crear servicios y a los clientes que se conectan a ellos con más facilidad.

Upload: others

Post on 24-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

© Copyright IBM Corporation 2011 MarcasComprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 1 de 22

Comprender las especificaciones de servicios web,Parte 7: WS-Business Process Execution LanguageHernan SilbermanManas Mandal

08-08-2011

Usted tiene un sistema de servicios sólido, pero lo que en verdad quiere es una aplicación quehaga uso de ellos para implementar sus procesos de negocios. Este tutorial, el último de unaserie de siete partes, explica cómo crear un flujo de proceso para sus servicios utilizando WS-BPEL.

Ver más contenido de esta serie

Antes de comenzarEste tutorial es para desarrolladores que construyen aplicaciones que utilizan servicios web.Como los servicios web se hacen cada vez más populares, frecuentemente los desarrolladoresdeben crear programas que coordinen los esfuerzos de múltiples servicios web para manejar unproceso de negocios. Este artículo se concentra en WS-BPEL, el cual es un estándar importanteque brinda una solución sólida a este problema y se ha convertido en una elección popular entrelos desarrolladores.

A fin de comprender este tutorial, debe tener un conocimiento básico del Protocolo simple deacceso a objetos (SOAP) y las tecnologías relacionadas, como por ejemplo WSDL. Lea losprimeros cinco tutoriales de la serie, especialmente la Parte1 y la Parte 2, para obtener una mejorcomprensión.

Acerca de esta serieEsta serie tutorial enseña los conceptos básicos de los servicios web siguiendo las hazañas delperiódico ficticio, Daily Moon, mientras el personal utiliza servicios web para crear un sistema deflujo de trabajo para incrementar la productividad en este entorno competitivo.

La Parte 1 empieza simplemente, explicando los conceptos básicos de los servicios web ymostrándole cómo utilizar SOAP, la especificación que subyace en la mayoría de lo que vendrá, yconecta el departamento de clasificados con el Sistema de Gestión de Contenido.

La Parte 2 lleva las cosas un poco más allá, al explicar cómo utilizar Web Services DescriptionLanguage (WSDL) para definir los mensajes producidos como se espera por el servicio web, loque le permite al equipo crear servicios y a los clientes que se conectan a ellos con más facilidad.

Page 2: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 2 de 22

La Parte 3 encuentra al equipo con una cantidad de servicios implementados y un deseo deubicarlos con facilidad. En respuesta, Universal Description, Discovery and Integration (UDDI)brinda un registro que permite realizar búsquedas de servicios disponibles a una manera depublicitar sus propios servicios a otros.

En laParte 4,Rudy, editor de Daily Moon, decide que el periódico necesita implementar mejoresprocedimientos de seguridad para servicios web que acceden a sus sistemas internos.

La Parte 5 muestra los cambios que deben hacer los equipos para acceder a esos serviciosrecientemente protegidos.

La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembrosdel personal del periódico ya conocen la importancia de alcanzar la mayor cantidad de públicoposible, entonces deciden a analizar sus servicios web para asegurarse de que a cualquiera quedesee utilizarlos le resulte fácil hacerlo.

Esta Parte 7 introduce el Lenguaje de ejecución de procesos de negocios para servicios web(WS-BPEL) y muestra cómo utilizarlo para crear aplicaciones complejas coordinando losesfuerzos de los servicios individuales.

Acerca de este tutorial

En esta Parte 7 de la serie tutorial de servicios web, encontramos al personal del Daily Moonavocado a armar una aplicación que automatice el proceso de recepción de avisos clasificadosde parte de los clientes. El Daily Moon Tiene una relación comercial con un banco, y al personalle gustaría tener una aplicación que reciba un aviso clasificado y automáticamente deposite elpago en el banco. Por suerte, el banco con el que trabaja el personal tiene un servicio web quese puede utilizar para hacer dicho depósito. El personal investiga este problema y decide intentarutilizar WS-BPEL para unir su servicio web de avisos clasificados con el servicio web del banco.Con estos dos servicios, el personal puede darle forma al modelo del proceso de negocios quetiene en mente y armar una aplicación para manejarlo.

Este tutorial le enseña a armar aplicaciones complejas que coordinan los esfuerzos de servicioweb existentes. Podrá componer servicios web de esta manera, puede armar rápidamenteaplicaciones de tremenda utilidad. Los servicios web están diseñados para ser fáciles deencontrar y utilizar, es natural querer enlazar servicios web para armar nuevas aplicacionespotentes.

Requisitos previos

El código utilizado en este tutorial no es específico para ningún lenguaje o entorno deprogramación. Los ejemplos brindados son los mismos utilizados durante toda esta serie tutorial.Para seguir los ejemplos debe tener el siguiente software instalado:

Java 2 Standard Edition versión 1.4.2 o superior— Todas estas herramientas están basadas enJava, al igual que los servicios y clientes que armará en este tutorial.

Page 3: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

ibm.com/developerWorks/ssa/ developerWorks®

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 3 de 22

Apache Axis2 versión 1.0— Axis2 es un kit de herramientas SOAP de funciones completas quebrindan implementaciones de varias API de servicio web que incluyen SOAP y WSDL. Un kit deherramientas como Axis2 es invaluable cuando se trata del desarrollo de servicios web. Existenkits de herramientas de alcance similar para otros lenguajes y entornos de programación. Elproyecto Axis en Apache tiene una larga historia y se originó con un esfuerzo de IBM llamadoSOAP4J.

Apache Geronimo u otro servidor de aplicación — Esta serie tutorial utiliza el servidor ApacheGeronimo J2EE (que es la base del servidor IBM WebSphere® Community Edition). Puede utilizarotros servidores de aplicación, pero Geronimo es simple, liviano y gratuito, así que es una buenaelección para instalar y ejecutar rápidamente.

BPWS4J versión 2.1— IBM brinda un tiempo de ejecución BPEL, lo que le permite ejecutarprocesos que se redactan utilizando WS-BPEL. BPWS4J está disponible por un período deprueba de 90 días.

GeneralidadesEste tutorial comienza con un panorama general de los procesos de negocios y la evolución de latecnología que se ha convertido en un factor importante en su ejecución.

Comprender el negocio de la informática en la actualidadLa mayoría de las aplicaciones comerciales existen para automatizar o simplificar procesos queen el pasado se realizaban utilizando tinta, papel y personas. En el pasado los contadores querealizaban los cálculos a mano, registraban los resultados en un libro utilizando lapicera y papel,y hacían constantes viajes al banco. Los corredores realizaban una cantidad de tareas tediosassimilares todos los días, al igual que los bancarios, los actuarios, los arquitectos y los ingenieros.Las computadoras siguen teniendo un impacto tremendo en los negocios. La maduración y laadopción de los servicios web por parte de muchas empresas es la culminación de décadas deavance tecnológico. Muchas organizaciones fundamentalmente importantes, como los bancos,les brindan a sus socios servicios web que pueden utilizar para combinar sus negocios de maneramás cercana y efectiva que antes.

Los beneficios de esta cooperación cercana entre las organizaciones son evidentes cada vezque uno compra por Internet. Es claro que el futuro de la informática comercial se encuentra en lacolectividad. Los negocios que se hacen disponibles a sus socios tienen mayores probabilidadesde tener éxito como componentes importantes en los procesos de negocios de sus socios. Estanoción no es nueva en los negocios, pero la evolución de las capacidades de software la haposibilitado a una medida imaginable sólo recientemente, y con la inmediatez que hace que elpasado parezca realmente tedioso.

Abordar la tecnología disruptivaEs difícil seguir el ritmo de los avances en informática. El mundo del software parece cambiardiariamente. Los desarrolladores de software deben saber bastante para redactar servicios webmodernos, en su mayoría debido a que las tecnologías subyacentes cambian tan rápidamente.Internet es la tecnología disruptiva más reciente que desafía todo tipo de negocios.

Page 4: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 4 de 22

El ritmo rápido al cual avanza a la tecnología ayuda a destacar el sentido común de los serviciosweb modernos, que se definen utilizando XML del lenguaje neutral y se concentran en losmensajes sin suponer o indicar mucho más. Este enfoque aísla a las aplicaciones del cambioconstante de Internet que los desarrolladores de software han aprendido a esperar.

Los desarrolladores de servicios web pueden esconder las implementaciones detrás dedescripciones de servicios web y modificarlas según sea necesario. Los consumidores deservicios web dependen de las descripciones de servicios web para aislarlas de cambios en lasimplementaciones de servicios. En la mayoría de los casos, usted no tuene idea (ni necesitasaber) cómo se construye un servicio web que utiliza.

A medida que los servicios web se hacen cada vez más comunes, finalmente se encontraráarmando servicios y utilizando servicios en la misma aplicación. Una tienda online es un ejemplogenial de este escenario ahora común. Si está armando un servicio web como el servicio declasificados del Daily Moon, recibe información de un individuo que espera comprar un avisoclasificado. Con esta solicitud del aviso llega la información de pago, que usted transmite alservicio web de su banco para que se procese. Es común en la actualidad armar servicios alcomponer otros servicios útiles.

Sería genial tener alguna manera de describir aplicaciones que utilicen servicios web existentespara manejar procesos de negocios importantes. Sería incluso mejor si este método de describirservicios fuera de lenguaje neutral y extendiera a estas aplicaciones los mismos beneficios quebrindan los servicios web a sus consumidores e implementadores.

Este tutorial presenta el Lenguaje de ejecución de procesos de negocios para servicios web(WS-BPEL), que brinda dicha facilidad de lenguaje neutral para armar servicios web nuevos alcomponer servicios web existentes.

La historia hasta ahora

Esta serie sigue al personal del periódico ficticio Daily Moon mientras pasa muchas de susoperaciones diarias a un sistema basado en servicios web. En la Parte 1, el Departamento deClasificados aprendió sobre SOAP interactuando con el Sistema de Gestión de Contenidos,y en la Parte 2, crearon su propio servicio, y lo definieron utilizando Web Services DescriptionLanguage (WSDL). Luego en la Parte 3, aprendieron cómo interactuar con un registro UDDI, ytambién cómo encontrar información dentro de uno, lo que en última instancia los condujo a crearuno para la empresa a fin de permitir a otras organizaciones interactuar con Daily Moon. Debido aque Rudy insistió en que sus colegas Gene y Francis brindarán una manera de prevenir el accesono autorizado a sus sistemas en la Parte 4, Gene y Francis tuvieron que implementar WS-Securitypara sus servicios web. En la Parte 5, Rudy se dio cuenta de que debía definir las políticas delos servicios web para hacer cumplir que los clientes que accedieran a los servicios web de DailyMoon lo hicieran de la manera indicada, garantizando la seguridad que se construyó en la Parte4 de esta serie. En la Parte 6, Phil se asegura de que el documento WSDL y el servicio web declasificados que describe sean interoperativos con otros servicios web.

Page 5: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

ibm.com/developerWorks/ssa/ developerWorks®

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 5 de 22

Ahora, siguiendo la historia del personal de Daily Moon, este tutorial describe el intento delpersonal de armar un servicio web que automatice por completo el proceso de compara un avisoclasificado para su inclusión en el periódico. El tutorial le presenta WS-BPEL y el importanteconcepto del modelado de procesos de negocios.

Generalidades de interoperabilidadAntes de entrar en los detalles de WS-BPEL, este artículo lo guía para que piense en términosde procesos de negocios. Luego este artículo introduce WS-BPEL y trata del su enfoque decomponer servicios web para armar aplicaciones nuevas. Verá como WS-BPEL lo hace utilizandolos estándares de servicios web sobre los que ha aprendido durante el transcurso de esta serietutorial utilizando un ejemplo del periódico ficticio Daily Moon.

Comprender el objetivoCada vez que trabaja está ejecutando un proceso. Ya sea que esté ordenando su colección deDVD, plantando un árbol nuevo o enviando un paquete, puede describir el proceso que atraviesaidentificando los actores, sus acciones y los artefactos que utiliza en el proceso.

En el mundo de los negocios, comprender un proceso es importante por muchas razones. Laprimera y más obvia es que comprender el proceso de negocios conduce a comprensionesque pueden mejorar estos procesos, y potencialmente ahorrar tiempo y dinero. Los analistascomerciales están constantemente analizando procesos de negocio, buscando eficiencias nuevasy ahorro de costos. Otra razón importante para comprender los procesos de negocios es queestos procesos a menudo son activos intelectuales importantes. Muchas compañías tienen éxitodebido a su know-how superior en vez de sus activos físicos o productos. Es importante que estasorganizaciones cataloguen sus procesos para que puedan entenderlos, mejorarlos y protegerlos.

Vale la pena aprender un poco más sobre los procesos de negocios y cómo se modelan, como semuestra en las siguientes secciones.

Comprender la historiaPensar en términos de procesos de negocios no es una idea nueva. Los negocios siempre hantenido que tratar con la logística y pensar en cómo hacen las cosas que hacen para perdurar y sermás eficientes. Los negocios de hoy concentran gran parte de su atención en cómo describir losprocesos que utilizan, cómo diseñan nuevos procesos de negocio, cómo ejecutan cada proceso ycómo recopilan información sobre procesos de negocios para revisarlos luego.

El software ha tenido un impacto enorme en la perspectiva de los negocios impulsada por elproceso. La mayoría del software comercial existe para automatizar procesos que se realizabanmanualmente. El software ha avanzado desde las primeras hojas de cálculo y procesadores detexto a complejo software de gestión de relaciones con el cliente y arquitecturas orientadas alservicio. A medida que ha avanzado la tecnología del software, más y más procesos de negocioshan quedado elegibles para la automatización completa.

A medida que los servicios web se han adoptado más ampliamente, ha sido posible pensar enautomatizar servicios de negocios que cubren múltiples servicios web. Por ejemplo, una compañía

Page 6: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 6 de 22

podría tener un sistema de procesamiento de pedidos automatizado, un sistema de facturación, yun sistema de ejecución, los cuales todos brindan interfaces de servicios web. Con esos serviciosweb implementados, se puede construir una aplicación para automatizar las interacciones entreellos; por ejemplo, para aceptar y ejecutar un pedido de un cliente. Los servicios web han sido unatecnología importante para integrar aplicaciones empresariales de esta manera.

Este mismo enfoque se puede utilizar para armar aplicaciones que dependan de aplicacionesque posean y operan distintas organizaciones. En la actualidad, los servicios web brindan unaplataforma genial para la última generación de aplicaciones de procesos de negocios en múltiplesempresas.

Explorar la gestión de procesos de negociosEn la actualidad, la gestión de procesos de negocios es la disciplina para diseñar, implantar ymonitorear procesos de negocios utilizando diversas tecnologías estándar. No es novedad que lagestión de procesos de negocios actual esté muy relacionada con los servicios web y la familia detecnologías abordadas en esta serie tutorial.

Uno de los mayores avances en el área de la gestión de procesos de negocios fue la invenciónde maneras estándar de describir procesos de negocios. Inicialmente, si una organizaciónarmaba software para ejecutar procesos de negocio, lo hacía utilizando Java u otro lenguaje deprogramación. Ahora hay técnicas estándar para describir procesos de negocios. También hayentornos de tiempo de ejecución que ejecutan procesos de negocios desde estas descripcionesestandarizadas.

Las siguientes secciones describen las actividades principales involucradas en la gestión deprocesos de negocios y algunas de las herramientas que harán que el enfoque de describir yejecutar lógica comercial importante valga la pena.

Descubrir y diseñar procesosComo profesional de software, seguramente ha estado en alguna reunión donde un expertohizo su mejor esfuerzo para describir la manera en que debería funcionar una aplicación.Generalmente, dibuja diagramas en un pizarrón que identifican todos los actores, las acciones ylos artefactos importantes involucrados en un proceso de negocios. Estos gráficos se refinan amedida que los desarrolladores hacen preguntas y se describen los escenarios imaginados.

El diseño del proceso de negocios es un proceso iterativo, así que es importante tener algunamanera de anotar un proceso y almacenarlo para que se pueda volver a invocar más tarde pararefinarlo. Los requisitos de negocios cambian con el tiempo, así que es importante tener unrepositorio de procesos de negocios y herramientas estándar para visualizarlos y modificarlos.Estas herramientas existen. WS-BPEL es una herramienta importante para codificar procesos denegocios para poder visualizarlos, actualizarlos y ejecutarlos.

Ejecutando el procesoUna vez que se definen los procesos de negocio, es posible armar sistemas de software quelos ejecuten. Los procesos de negocios redactados en WS-BPEL se convierten en scripts que

Page 7: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

ibm.com/developerWorks/ssa/ developerWorks®

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 7 de 22

se alimentan en una aplicación de gestión de proceso de negocios y se ejecutan. Son ventajasenormes para este enfoque, la mayor de las cuales es la simpleza con la cual puede crear yactualizar procesos de negocios. Puede ver que WS-BPEL es un lenguaje de scripting paraarmar aplicaciones desde servicios web existentes. Las mismas descripciones de servicio sonscripts ejecutables que describen un flujo de proceso que puede ejecutar un entorno de tiempo deejecución WS-BPEL.

Monitoreo

Una vez que los procesos de negocios se codifican en scripts utilizando lenguaje estándar yse ejecutan en una aplicación de gestión de proceso de negocio, son increíblemente fáciles demonitorear. Este monitoreo puede brindar una gran cantidad de información sobre cada instanciade proceso de negocios que ejecutó la aplicación. Por ejemplo, puede preguntar a la aplicación degestión de proceso sobre el estado de los procesos actuales sobre los que está trabajando y losprocesos que ha completado. Puede utilizar la información que recopila la aplicación de procesode negocios para responder fácilmente muchas preguntas del negocio que podrían resultarledifíciles de encontrar de otra manera.

Introducción a WS-BPEL

Hace tiempo que la idea de un lenguaje formal y estándar para describir procesos de negocioses atractiva. Hasta hace poco, había muchos estándares que competían entre sí y apuntabana hacer solo esto, que incluían el Web Services Flow Language (WSFL) de IBM, XLANG deMicrosoft y muchos otros. Finalmente se creó WS-BPEL, que combinó los mejores puntos deWSFL y XLANG. Surgió como el estándar más popular de esta categoría.

Generalidades

WS-BPEL depende de varias tecnologías estándar que probablemente usted ya conoce, queincluyen:

• WSDL• XML schema• Xpath• Web Services Addressing

WSDL es el más importante de estos estándares porque WS-BPEL describe los procesos denegocios como conversaciones entre los servicios web como se describen en WSDL. Además, losprocesos WS-BPEL son servicios web que describe WSDL.

Aprender el lenguaje

WS-BPEL es un lenguaje de programación XML. En WS-BPEL, un proceso de negocios sedescribe en un documento XML que es el entorno de ejecución que ejecuta el proceso denegocios. Un proceso en WS-BPEL se divide en una serie de pasos llamado actividades. La listade actividades soportada se indica a continuación.

Page 8: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 8 de 22

• invoke -- Invoca una operación en un servicio web existente• receive -- Espera un mensaje de una entidad externa• reply -- Genera un mensaje para responder a una entidad externa• wait-- Espera un período de tiempo especificado• assign -- Copia un valor de una fuente a un destino• throw -- Genera un error• terminate -- Elimina incondicionalmente el proceso actual• empty -- Ofrece un marcador de posición, que es un no-op

Las actividades básicas se pueden combinar para describir algoritmos de procesos de negociosutilizando un conjunto adicional de palabras clave del lenguaje. Estas palabras clave brindan elcarácter estructural del lenguaje WS-BPEL y se enumeran a continuación.

• sequence -- Define una secuencia de acciones ordenada• switch -- Ofrece una instrucción de selección que funciona como case en Java y C++• while -- Define un bucle while• pick -- Ofrece una instrucción de selección que funciona como if• flow -- Incluye una selección de pasos que se debe ejecutar en paralelo

Con este pequeño conjunto de palabras clave, puede imaginar cómo se expresan los procesos denegocios en WS-BPEL. Puede ver que esta sintaxis concisa es bastante potente y fácil de utilizar.

El modelo de composición de procesos

Como ya se mencionó, a menudo los procesos de negocios pueden ser descritos por los actores,las acciones y los artefactos que involucran. Un servicio web puede ser un actor en un proceso denegocios. a menudo, múltiples servicios web actúan juntos para cumplir un proceso de negociosindividual.

Definir procesos como servicio

Cuando define un proceso de negocios utilizando WS-BPEL y lo ingresa en un entorno detiempo de ejecución WS-BPEL, su proceso de negocios se expone como servicio web completocon su propio documento WSDL y la implementación lista para ser ejecutada basada en suproyecto. Su definición de proceso probablemente prescribe una o más conversaciones con otrosservicios web y, efectivamente, WS-BPEL le permite crear un nuevo servicio web componiendodiversos servicios asociados que tenía a su disposición. Este es un enfoque potente para armaraplicaciones, especialmente cuando considera que el servicio web WS-BPEL resultante podríautilizarse como componente por otro proceso de negocios.

Comenzar con inglés básico

Como ejemplo, vea el Daily Moon. Recuerde que el periódico intenta armar un serviciocompletamente automatizado para manejar la creación de avisos clasificados de sus lectores.El personal del Daily Moon ya ha armado su propio servicio web para crear avisos clasificados.Ahora los miembros el personal tienen el WSDL de su banco que describe el servicio web

Page 9: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

ibm.com/developerWorks/ssa/ developerWorks®

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 9 de 22

que pueden utilizar para depositar pagos para cada aviso clasificado que crean sus usuarios.Comienzan describiendo sus procesos en inglés básico.

• Una aplicación de usuario final llama al Daily Moon con información sobre crear un avisoclasificado y sobre su pago.

• La información de pago proporcionada se envía al banco para que se procese.• Si el banco aprueba el pago, se llama al servicio de aviso clasificado para procesar el

aviso clasificado solicitado. Una vez que se ha creado el aviso clasificado, se envía unmensaje de éxito al llamador.

• Si el banco niega el pago, no hay procesamiento adicional. Se envía un mensaje alllamador informándolo de que el pago ha fallado.

Utilizar WSDLComience armando un WSDL que describa el punto final que expondrá finalmente y al quellamarán los usuarios finales para invocar su proceso de negocios. Para crear este WSDL,comience definiendo los distintos tipos de mensajes que utilizará para el proceso de clasificadosde Daily Moon. Para el ejemplo, defina:

1. Un mensaje a utilizar para comunicarse con el servicio de clasificados (classifiedMessage)2. Un mensaje a utilizar para comunicarse con el servicio del banco (bankMessage)3. Un mensaje para que el usuario inicie el proceso de negocios (classifiedInfoMessage)4. Un mensaje para utilizar en caso de que se encuentre un error durante el procesamiento de

su proceso de negocios.

El Listado 1 muestra la definición WSDL que incluye estos mensajes.

Listado 1. WSDL con definiciones de mensaje para el proceso de negocios deDailyMoon<definitionstargetNamespace="http://tempuri.org/services/classifieddefinitions" xmlns:tns="http://tempuri.org/services/classifieddefinitions" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">

<message name="classifiedMessage"> <part name="classifiedName" type="xsd:string"/> <part name="amount" type="xsd:int"/></message>

<message name="bankMessage">

<part name="userName" type="xsd:string"/> <part name="amount" type="xsd:int"/></message>

<message name="classifiedInfoMessage"> <part name="classifiedName" type="xsd:string"/> <part name="userName" type="xsd:string"/>

<part name="amount" type="xsd:int"/></message>

<message name="classifiedErrorMessage">

Page 10: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 10 de 22

<part name="errorCode" type="xsd:int"/></message>

</definitions>

A continuación, importe este conjunto de definiciones de mensaje WSDL a otro documentoWSDL, junto a las definiciones para los servicios de clasificados y bancario. EL WSDL resultantese muestra en el Listado 2.

Listado 2. WSDL principal que importa las definiciones de mensaje para losservicios web de clasificados y bancario<definitions targetNamespace="http://tempuri.org/services/wsdl/classified-approval" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:lns="http://tempuri.org/services/wsdl/classified-approval" xmlns:asns="http://tempuri.org/services/classifiedservice" xmlns:apns="http://tempuri.org/services/bankservice" xmlns:loandef="http://tempuri.org/services/classifieddefinitions">

<import namespace="http://tempuri.org/services/classifiedservice"location="http://localhost:8080/myservices/service/classifiedservice.wsdl"/> <import namespace="http://tempuri.org/services/bankservice"location="http://localhost:8080/myservices/service/bankservice.wsdl"/> <import namespace="http://tempuri.org/services/classifieddefinitions"location="http://localhost:8080/myservices/service/classifieddefinitions.wsdl"/>

<plnk:partnerLinkType name="bankLinkType">

<plnk:role name="bank"> <plnk:portType name="apns:bankPT"/> </plnk:role> </plnk:partnerLinkType>

<plnk:partnerLinkType name="classifiedLinkType"> <plnk:role name="classified">

<plnk:portType name="asns:classifiedPT"/> </plnk:role> </plnk:partnerLinkType>

<!-- The service name and the TNS represent my service ID QName --> <service name="bookClassifiedServiceBP"/>

</definitions>

En WS-BPEL, todo servicio web involucrado en un proceso se denomina servicio web socio. Enel Listado 2 puede ver las definiciones WSDL para identificar a dos socios: banco y clasificados, ycómo enlazarlos a sus respectivos tipos de puerto como se define en sus documentos WSDL. Loúltimo en el Listado 2 es idear un nombre de servicio para nuestro proceso de negocios.

Definir el BPELAhora que ha implementado el WSDL, pasemos a la definición BPEL. El proceso de negocios queestá implementado describe la coordinación de dos servicios web existentes. No hay nada muchomás complicado que llamar a cada uno de los servicios involucrados en una orden particular y

Page 11: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

ibm.com/developerWorks/ssa/ developerWorks®

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 11 de 22

transmitir los mensajes que producen. Ahora, utilice su lenguaje de programación favorito paraimplementar este flujo de lógica. Tras llegar hasta aquí en esta serie tutorial, sabe lo fácil quesería redactar esto como programa Java.

WS-BPEL brinda una opción atractiva para implementar sus algoritmos de proceso de negocios.WS-BPEL desempeña el papel de un lenguaje de scripting para coordinar una serie de llamadasde servicio web. Con un poco de esfuerzo, puede redactar no solo el script de las llamadas deservicio web adecuadas, sino que puede exponer el script resultante como servicio web. Además,como lenguaje XML, WS-BPEL las definiciones de procesos son fáciles de modificar, mucho másconcisas y más fáciles de seguir que el lenguaje de código de programación que necesitaría parahacer lo mismo.

Estructurar el documentoUna definición de proceso BPEL se define dentro de un elemento <process>. Comienceagregando este elemento a su archivo, como se indica en el Listado 3.

Listado 3. El elemento principal de una descripción BPEL<process name="bookClassifiedProcess"><!-- Definition goes here --></process>

Hay tres secciones principales dentro del elemento de proceso.

Crear la primera sección de la definición BPELLa primera sección enumera los socios que desempeñan un papel en el proceso de negocios. Porejemplo, para DailyMoon son éstos:

• El servicio web de avisos clasificados• El servicio web del banco• El usuario final que inicia el proceso de negocio

El Listado 4 muestra las declaraciones de socios relevantes para el proceso de negocios de DailyMoon. Se han omitido las definiciones de espacio de nombres a los fines de la legibilidad.

Listado 4. Descripción de proceso con enlaces a socios<partnerLinks> <partnerLink name="customer" partnerLinkType="lns:bankLinkType" myRole="bank"/> <partnerLink name="bank" partnerLinkType="lns:bankLinkType" partnerRole="bank"/> <partnerLink name="classified" partnerLinkType="lns:bookLinkType" partnerRole="classified"/></partnerLinks>

El primer socio corresponde al cliente que inicia este proceso de negocios. El segundo socio es elservicio web del banco. El tercer socio es el servicio web de clasificados.

Page 12: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 12 de 22

Crear la segunda sección de la definición BPEL

La segunda sección importante de la definición BPEL crea algunos marcadores de posicionespara los mensajes que se generan y transmiten entre los socios durante la ejecución del procesode negocios. Por ejemplo, para Daily Moon los mensajes son:

• El mensaje original que inicia el proceso de negocio, que se denomina mensaje request.• El mensaje que se enviará al servicio del banco para que procese el pago, que se denominabankMessage.

• El mensaje con el que responde el servicio del banco, que se denomina bankapprovalInfo.• El mensaje a enviar (potencialmente) al servicio clasificado, que se denominaclassifiedMessage.

• El mensaje con el que responde el servicio de clasificados, que se denomina mensajeapprovalInfo.

• El mensaje de error si se encuentra un error durante la ejecución del proceso de negocio,que se denomina error.

El Listado 5 muestra las definiciones variables en la descripción BPEL. En cada caso, indique unnombre simbólico y un tipo de mensaje WSDL.

Listado 5. Definiciones variables para colocar a mensajes involucrados en elproceso de negocio<variables> <variable name="request"messageType="classifieddef:classifiedInfoMessage"/> <variable name="classifiedMessage"messageType="classifieddef:classifiedMessage"/> <variable name="bankMessage" messageType="classifieddef:bankMessage"/> <variable name="approvalInfo" messageType="apns:approvalMessage"/> <variable name="bankapprovalInfo" messageType="asns:approvalMessage"/>

<variable name="error"messageType="classifieddef:classifiedErrorMessage"/></variables>

Crear la tercera sección de la definición BPEL

La tercera sección importante en la definición BPEL describe el algoritmo de proceso de negocios.Este algoritmo se expresa utilizando las actividades y los componentes estructurales del lenguajeBPEL que ya se han presentado.

Traducir el algoritmo del proceso de negocios es simple. Realizará una secuencia de pasos en unorden específico, así que comience con un elemento de secuencia como se indica en el Listado 6.La mayoría De los procesos de negocios se modelan como secuencias.

Listado 6. Procesos de negocios modelados como secuencias de actividades<sequence><!-- Do something interesting --> </sequence>

Page 13: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

ibm.com/developerWorks/ssa/ developerWorks®

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 13 de 22

La primera actividad conforme a su algoritmo es aceptar o recibir una solicitud del cliente. Utiliceun elemento <receive> para expresarlo, como se muestra en el Listado 7.

Listado 7. Secuencia que muestra la recepción de un mensaje de un cliente<sequence>

<receive name="receive1" partnerLink="customer" portType="asns:bankPT" operation="depositToBank" variable="request" createInstance="yes"> </receive>

<!-- Do something interesting --> </sequence>

Las partes importantes de esta acción de recepción establecen de qué socio recibe y en quévariable almacenar el mensaje recibido. Fundamentalmente, esta instrucción dice “espera quedepositToBank sea invocado en el tipo de puerto BankPT, y, cuando ocurra, almacenar el mensajeen la variable request”.

Lo siguiente que debe hacer es copiar información del mensaje de solicitud a algunos de los otrosmensajes que utilizará. El Listado 8 muestra una serie de actividades de asignación que lo hacen.

Listado 8. Actividades de asignación que copian estado de un mensaje a otro<assign name="assignclassified"> <copy> <from variable="request" part="classifiedName"/> <to variable="classifiedMessage" part="classifiedName"/> </copy> <copy>

<from variable="request" part="amount"/> <to variable="classifiedMessage" part="amount"/> </copy></assign>

<assign name="assignbank"> <copy>

<from variable="request" part="userName"/> <to variable="bankMessage" part="userName"/> </copy>

<copy> <from variable="request" part="amount"/> <to variable="bankMessage" part="amount"/>

</copy></assign>

Las acciones de asignación anteriores preparan el classifiedMessage y bankMessage al copiarsobre el classifiedName, amount y userName de la solicitud inicial.

Ahora está listo para invocar el servicio web del banco para que procese el pago del cliente ElListado 9 muestra la definición de una actividad de invocación al servicio web del banco.

Page 14: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 14 de 22

Listado 9. Una actividad de invocación que prescribe una llamada al servicioweb del banco

<invoke name="invokeBank" partnerLink="bank" portType="asns:bankPT" operation="depositToBank" inputVariable="bankMessage" outputVariable="bankapprovalInfo"></invoke>

Esto es fácil de seguir. Simplemente envía bankMessage a bankPT e invoca la operacióndepositToBank, almacenando la respuesta en bankapprovalInfo.

El siguiente paso depende del resultado de la acción invokeBank anterior. Utilizamos un switchpara manejar la lógica condicional y una función BPEL especial llamada getVariableData paraverificar el estado del mensaje de aprobación del banco. El Listado 10 muestra la instrucción deswitch que cubre los posibles resultados.

Listado 10. Una instrucción switch para manejar el éxito o el fallo de laoperación bancaria

<switch> <case condition="bpws:getVariableData('bankapprovalInfo','accept')=1"> <invoke name="invokeClassified" partnerLink="classified" portType="apns:classifiedPT" operation="bookClassified" inputVariable="classifiedMessage" outputVariable="approvalInfo"> </invoke> </case> <otherwise>

<assign name="assignMessage"> <copy> <from expression="'Bank payment failed'"/> <to variable="approvalInfo" part="accept"/> </copy> </assign>

</otherwise></switch>

Observe que la instrucción switch en el Listado 1o fija una cadena de error en el mensajeapprovalInfo si el proceso del banco no tuvo éxito.

Lo único que queda es responder al cliente. Eso es bastante fácil, como se muestra en el Listado11. Poder responder al cliente es una de las razones por las cuales el cliente se enumera comosocio.

Page 15: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

ibm.com/developerWorks/ssa/ developerWorks®

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 15 de 22

Listado 11. Actividad de respuesta, enviando una respuesta al cliente alcompletar el proceso de negocios<reply name="reply" partnerLink="customer" portType="asns:bankPT" operation="depositToBank" variable="approvalInfo"></reply>

El único elemento adicional es un controlador de fallo, lo que demuestra cómo puede reaccionarBPEL cuando una llamada a servicio web produce un fallo. El Listado 12 muestra la definición deun controlador de fallo para controlar fallos que arroja el servicio de clasificados. Si se encuentradicho fallo, el controlador responde al cliente de inmediato con un mensaje de error.

Listado 12. Definición de un controlador de fallo, prescribir la terminación dela ejecución de un proceso por un fallo<faultHandlers> <catch faultName="classifiedFault" faultVariable="error"> <reply partnerLink="customer" portType="apns:bankPT" operation="depositToBank" variable="error" faultName="invalidRequest"/> </catch></faultHandlers>

El Listado 13 muestra el archivo BPEL completo que implementa el proceso de negocios paraDaily Moon para que reciba automáticamente un aviso clasificado y le cobre a un cliente porutilizar su servicio web de clasificados interno y su servicio web proporcionado por el banco.

Listado 13. La definición de proceso de negocios BPEL completa<process name="bookClassifiedProcess" targetNamespace="http://tempuri.org/classifiedProcess" suppressJoinFailure="yes" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:lns="http://tempuri.org/services/wsdl/classified-approval" xmlns:classifieddef="http://tempuri.org/services/classifieddefinitions" xmlns:asns="http://tempuri.org/services/bankservice" xmlns:apns="http://tempuri.org/services/classifiedservice">

<variables> <variable name="request"messageType="classifieddef:classifiedInfoMessage"/> <variable name="classifiedMessage"messageType="classifieddef:classifiedMessage"/> <variable name="bankMessage" messageType="classifieddef:bankMessage"/>

<variable name="approvalInfo" messageType="apns:approvalMessage"/> <variable name="bankapprovalInfo" messageType="asns:approvalMessage"/> <variable name="error"messageType="classifieddef:classifiedErrorMessage"/> </variables>

<partnerLinks> <partnerLink name="customer" partnerLinkType="lns:bankLinkType" myRole="bank"/>

Page 16: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 16 de 22

<partnerLink name="bank" partnerLinkType="lns:bankLinkType" partnerRole="bank"/> <partnerLink name="classified" partnerLinkType="lns:bookLinkType" partnerRole="classified"/> </partnerLinks>

<faultHandlers> <catch faultName="classifiedFault" faultVariable="error"> <reply partnerLink="customer" portType="apns:bankPT" operation="depositToBank" variable="error" faultName="invalidRequest"/>

</catch> </faultHandlers>

<sequence> <receive name="receive1" partnerLink="customer" portType="asns:bankPT" operation="depositToBank" variable="request" createInstance="yes"> </receive>

<assign name="assignclassified">

<copy> <from variable="request" part="classifiedName"/> <to variable="classifiedMessage" part="classifiedName"/> </copy> <copy> <from variable="request" part="amount"/>

<to variable="classifiedMessage" part="amount"/> </copy> </assign> <assign name="assignbank"> <copy> <from variable="request" part="userName"/>

<to variable="bankMessage" part="userName"/> </copy> <copy> <from variable="request" part="amount"/> <to variable="bankMessage" part="amount"/> </copy>

</assign>

<invoke name="invokeBank" partnerLink="bank" portType="asns:bankPT" operation="depositToBank" inputVariable="bankMessage" outputVariable="bankapprovalInfo"> </invoke>

<switch> <case condition="bpws:getVariableData('bankapprovalInfo','accept')=1">

<invoke name="invokeClassified" partnerLink="classified" portType="apns:classifiedPT" operation="bookClassified"

Page 17: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

ibm.com/developerWorks/ssa/ developerWorks®

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 17 de 22

inputVariable="classifiedMessage" outputVariable="approvalInfo"> </invoke> </case> <otherwise> <assign name="assignMessage"> <copy>

<from expression="'Bank payment failed'"/> <to variable="approvalInfo" part="accept"/> </copy> </assign> </otherwise></switch>

<reply name="reply" partnerLink="customer" portType="asns:bankPT" operation="depositToBank" variable="approvalInfo"></reply>

</sequence></process>

Unir todo

Hay muchas aplicaciones diferentes involucradas en la ejecución de un proceso de negocios WS-BPEL típico. Para ver un ejemplo del WS-BPEL del Daily Moon en acción, por ejemplo, ejecute losiguiente:

• El servicio web de avisos clasificados• El servicio web del banco• Un entorno de tiempo de ejecución WS-BPEL que ejecute el proceso WS-BPEL

Preparación

1. Ejecute ambos servicios web y su entorno de tiempo de ejecución BPEL en el mismo servidorJ2EE.

2. Descargue Geronimo e instálelo. El ejemplo utiliza el servidor Geronimo de Apache, que estádisponible gratuitamente y es simple de configurar.

3. Descargue el IBM Business Process Execution Language for Web Services Java Run Time (oBPWS4J). BPWS4J es una plataforma con todas las funciones para ejecutar los procesos denegocios descritos en BPEL. Descargue la versión 2.1 del motor bpws4j.

4. Copie bpws4j.war de la distribución BPWS4J y arrástrelo al directorio de implantaciónen su servidor Geronimo. Geronimo nota esta aplicación Web nueva y la implantaautomáticamente. Ahora debe poder ver la consola de administración BPWS4J, como semuestra en la Figura 1 utilizando la URL http://localhost:8080/bpws4j/admin.

Page 18: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 18 de 22

Figura 1. Consola de administración BPWS4J

Como muestran los botones grandes, esta aplicación administrativa se puede utilizar paraimplantar, enumerar y eliminar procesos de negocios WS-BPEL del entorno de tiempo deejecución BPWS4J.

Antes de implantar su proceso de negocio, implante sus dos servicios web: el servicio web declasificados y el servicio web del banco. Este tutorial incluye un paquete de códigos que incluyeambos servicios web agrupados en un único archivo llamado myservices.war. Haga una copia deeste paquete, y arrástrela al directorio de implantación de Geronimo. Geronimo nota este nuevopaquete e implanta ambos servicios web.

Implantar un proceso de negocio

Los detalles de la implantación de un proceso de negocios difieren de un entorno WS-BPEL aotro, pero todos deberían ser bastante simples. Implantar un proceso de negocios en BPWS4Jrequiere un par de clics con el mouse.

1. Haga clic en el botón Deploy en la aplicación Web administrativa BPWS4J. Se le piden losdocumentos WSDL y BPEL que creó que definen un punto final para su proceso de negociosy para el proceso de negocios mismo, respectivamente. Esto se muestra en la Figura 2.

Page 19: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

ibm.com/developerWorks/ssa/ developerWorks®

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 19 de 22

Figura 2. Brindar los archivos de proceso WSDL y BPEL

2. Navegue hasta los archivos bookclassified.wsdl y bookclassified.bpel, y seleccione ContinueDeployment. Se le pide los WSDL para cada servicio de socio involucrado en el proceso denegocio, los cuales, por supuesto, son sus servicios de clasificados y banco. Esto se muestraen la Figura 3.

Figura 3. Brindar los WSDL para todos los servicios web de los socios

3. Encuentre los WSDL, y seleccione Start Service the Process. BPWS4J intenta comenzara atender a su proceso de negocios. La Figura 4 muestra el inicio exitoso del proceso denegocios de Daily Moon.

Page 20: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 20 de 22

Figura 4. Inicio del proceso de negocios

Llamar al proceso de negocios

El paso siguiente es probar su servicio web llamándolo. Por supuesto, esto significa hacer unasimple llamada SOAP al servicio descrito en el WSDL que creó para su servicio. Este artículoincluye un programa Java para hacer esta llamada y un simple script de lote que puede usarpara probarlo. Para hacer fácil esta prueba, su servicio bancario acepta cualquier pago superiora 30 y rechaza cualquier otra cosa. Ejecute el proceso de negocios una vez con un valor de 40, yespere que tenga éxito. Ejecútelo una vez con un valor de 20 y espere que falle. Los resultados semuestran en el Listado 14.

Listado 14. Llamar a su proceso de negocios

C:\bpel\client>testcustomer.cmd http://localhost:8080/bpws4j/axisengineclassifiedName userName 40successC:\bpel\client>testcustomer.cmd http://localhost:8080/bpws4j/axisengineclassifiedName userName 20Bank payment failed

Resumen

Este tutorial le ha presentado WS-BPEL y los conceptos que funcionan en la gestión de procesode negocios. En un mundo lleno de servicios web, tiene sentido tener tecnología estándar pararedactar scripts de las interacciones entre ellos, para componerlos en servicios web aún máspotentes que den soporte a procesos de negocios importantes.

WS-BPEL es un ejemplo de lo que es posible con tecnologías estándar como las presentadasen esta serie tutorial. Estos estándares dan a los desarrolladores de aplicaciones un conjunto deherramientas potentes para integrar aplicaciones de un negocio empresarial y armar la generaciónde aplicaciones más nuevas que cubren múltiples empresas.

Page 21: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

ibm.com/developerWorks/ssa/ developerWorks®

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 21 de 22

Recursos para Descargar

Descripción Nombre tamañoPart 7 BPEL source code wsbpelcode.zip 1874KB

Page 22: Parte 7: WS-Business Process Execution Language Antes de ... · La Parte 6 trata sobre el armado y la verificación de servicios web interoperativos. A los miembros del personal del

developerWorks® ibm.com/developerWorks/ssa/

Comprender las especificaciones de servicios web, Parte 7: WS-Business Process Execution Language

Pagina 22 de 22

Temas relacionados

• Fuente RSS para esta serie: Notificación de solicitud para los próximos artículos de estaserie. (Obtenga más información sobre fuentes RSS de contenido developerWorks.)

• Vea Businessprocesses in a web services world (developerWorks, agosto de 2002) paraver las generalidades de BPEL4WS, que incluyen los elementos de lenguaje básicos y losconceptos subyacentes del lenguaje.

• Vea Businessprocesses and workflow in the web services world (developerWorks, enero de2003) para ver un artículo que analiza los procesos de negocio, su relación con el flujo detrabajo y los servicios web en la actualidad.

• Vea Business Process with BPEL4WS: Learning BPEL4WS (developerWorks, agostode 2002) para ver una serie de artículos que le da a los lectores una comprensión de losdistintos componentes del lenguaje BPELWS, y les enseña cómo crear sus propios procesoscompletos.

• Vea Transactions in the world of web services (developerWorks, agosto de 2002) paraobtener una serie de artículos que brinda un panorama general de alto nivel de lasespecificaciones de servicios web para WS-Coordination y WS-Transaction.

• Vea Automating business processes and transactions in web services (developerWorks,agosto de 2002) para obtener una introducción a BPELWS, WS-Coordination y WS-Transaction.

• Vea Describe business process activities as web services para leer una serie de artículosbreves que introducen a los lectores a los diversos estándares de servicios web de laindustria.

• Aprenda más sobre WS-BPEL utilizando el Tutorial WS-BPEL 2.0.• Lea un Tutorial de WS-BPEL en Eclipse.org.• Visite la wiki JBoss WS-BPEL.• Visite la wiki BPEL de Wikipedia para obtener un resumen breve de BPEL.• Lea la Serie tutorial Onlinebanking with Apache Geronimo and Axis2 para ver un ejemplo de

Axis2 en funcionamiento.• Revise la zona Java de developerWorks para obtener más información sobre programación

en Java.• Aprenda todo sobre XML en la zona XML de developerWorks.• Descargue Java 2 Standard Edition versión 1.4.2 o superior.• El sitio Web SOA de IBM SOA ofrece generalidades de SOA y de cómo IBM puede ayudarlo

en ese aspecto.

© Copyright IBM Corporation 2011(www.ibm.com/legal/copytrade.shtml)Marcas(www.ibm.com/developerworks/ssa/ibm/trademarks/)