Sistemas Distribuidos Introducción a la Orquestación de Servicios con BPEL (1

)

Javier Lacherre Joel Moreno

Agenda

OBJETIVO ¿Qué es BPEL? Estructura de un Proceso BPEL Conclusiones

Objetivos
• Explicar qué es BPEL y el rol que juega esta tecnología en una Arquitectura Orientada a Servicios. • Explicar las diferencias entre una llamada síncrona y una asíncrona

Iniciar la plataforma SOA
• En Windows 7 el DOS debe ser iniciado como administrador

Iniciar la plataforma SOA • Primero se inicia el servidor Admin del dominio .

Iniciar la plataforma SOA • Luego se inicia la plataforma SOA. El usuario y la contraseña es: weblogic/welcome1 .

Agenda Objetivo ¿Qué es BPEL? Estructura de un Proceso BPEL Conclusiones .

Orchestrated task service .

Orchestrated Task Services • Son descubiertos normalmente a través de la descomposición de un proceso de negocio y representan subprocesos o actividades de negocio • Son servicios de tipo Task pero su lógica es más compleja • Son claramente flujo de trabajos (workflows) que involucran a otros servicios • Comúnmente son implementados con BPEL .

¿Qué es BPEL? • Son las siglas del Business Process Enterprise Language • BPEL 2.0 (BPEL4WS > WS-BPEL) • Es un estándar definido por OASIS • WS-BPEL define un lenguaje en XML para describir el comportamiento de un proceso de negocio basado en las interacciones entre el proceso y sus partners (Servicios Web) • La interacción con cada partner ocurre a través de Servicios Web .

Beneficios de BPEL • Es portable a través de plataforma y proveedor • Se ejecuta en cualquier motor de WS-BPEL • Lenguaje estándar para implementar orquestaciones de servicios • Diseñado para encajar naturalmente en el estándar de Web Services • Expresado completamente en XML • Aprovecha otros estándares conocidos: WSDL y XSD • Simplifica la implementación de la orquestación de servicios .

Beneficios de BPEL Business-Level Modeling Tool1 Modeling Tool2 Modeling Tool3 … Modeling Tooln WS-BPEL Tool1 WS-BPEL Tool Tool 2 WS-BPEL WS-BPEL Toolk WS-BPEL Engine1 WS-BPEL Engine Engine 2 WS-BPEL WS-BPEL Enginek IT-Level .

Client BLOCK request Provider Business Component response . • Are best used within or between business units in the same enterprise. • Are ideal for fast business operations that return results. • Tightly couple the client to the business processing.Synchronous Operation • Synchronous Web service operations: • A response is required and the client application cannot continue until it receives that response.

• Decouple the client from business request processing.Asynchronous Operation • Asynchronous Web service operations: • Asynchronous Web service operations do not require the client to block and wait while business processing occurs. • Promote loose-coupling and better use of resources. Client (Processing continues) Request Response Provider Business Processing . • Are ideal for integrating with external business partners.

Un poco de historia… • Dec 2000 • Microsoft publishes XLANG • March 2001 • IBM publishes WSFL • July 2002 • IBM.0 standard .0 • March 2003 • BPEL4WS is submitted to OASIS • May 2003 • OASIS publishes BPEL4WS 1. BEA converge WSFL and XLANG into BPEL4WS 1.1 • April 2007 • WS-BPEL 2. Microsoft.

Agenda Objetivo ¿Qué es BPEL? ESTRUCTURA DE UN PROCESO BPEL Conclusiones .

Un proceso BPEL es un servicio compuesto • Un proceso BPEL es un servicio compuesto y tiene su propio WSDL • El propósito de este WSDL es describir la funcionalidad del servicio (las operaciones propias del proceso) • Para implementar el servicio se utiliza BPEL Proceso BPEL (documento xml) wsdl Proceso BPEL = .wsdl (abstracta) + .bpel (ejecutable) .

html .com/technology/pub/articles/matjaz_bpel1.Ejemplo de Proceso BPEL: Reservar ticket aéreo para un empleado http://www.oracle.

Definir el proceso 5. Hacer un inventario de los servicios que participan 2. Definir un WSDL para el proceso 3. Probar el proceso .Pasos para crear un proceso BPEL básico 1. Definir los Partner Link Types 4. Desplegar el proceso 6.

1. Hacer un inventario de los servicios que participan • EmployeeTrav elStatus Web Service • American Airlines Web Service • Delta Airlines Web Service .

2. Definir el WSDL para el proceso • Todos los servicios del ejemplo serán implementados con BPEL por lo tanto cada servicio tiene su propio WSDL .

Estructura de un WSDL para un proceso en BPEL • <types> • <message> • <part> • <portType> • <operation> • <input> • <output> • <partnerLinkType> • <portType> .

3. Definir los PartnerLink Types Un partner link type describe un punto de intercambio de mensajes con un servicio externo al proceso .

4. Definir el Proceso .

1 Definir el Proceso: <partnerLink> Un PartnerLink identifica un punto de interacción entre el proceso y los servicios (<partnerLinkType>) web asociados .4.

4.2 Definir el Proceso: <variables> .

Variables process Variables defined using WSDL messages request request receive response invoke 42 reply xsl:transform response assign WSDL WSDL WSDL messages message message 42 Variables defined using XML schema elements or types XML Schema XML elements / types schemas .

3 Definir el Proceso: <receive> • <receive>: el proceso espera que el cliente invoque la operación TravelApproval y almacena los datos de entrada sobre la solicitud de viaje en la variable TravelRequest. .4.

4. antes de realizar la invocación se tiene que construir el mensaje de entrada a enviar al Servicio Web. Sin embargo.4 Definir el Proceso: <assign> • Luego. Se utiliza la actividad <assign> . se necesita invocar al servicio web EmployeeTravelStatus.

4.5 Definir el Proceso: <invoke> • Ahora es necesario invocar el servicio Travel Status Web a través de una comunicación sincrona usando la actividad <invoke>. Como la invocación es síncrona la llamada espera por la respuesta y la almacena en la variable EmployeeTravelStatusResponse. .

4.6 Definir el Proceso: <assign> • Nuevamente debemos preparar los mensajes requeridos por los Servicios Web de las aerolíneas (son idénticos para ambos servicios) .

4. El resultado es almacenado en las variables correspondientes. • . La actividad <receive> espera por la operación FlightTicketCallback.7 Definir el Proceso: <invoke>.<receive> • Usar <sequence> para agrupar ambas actividades. La comunicación de retorno (callback) es recibida usando la actividad <receive>. Ambas invocan la operación FlightAvailability. enviando el mensaje desde la variable FlightDetails. Ambas invocaciones difieren solo en el nombre del partner link: AmericanAirlines y DeltaAirlines.

<receive> .7 Definir el Proceso: <invoke>.4.

.4. se verifica si la oferta de AA es igual o mejor que la de Delta. Se usa la función getVariableData • Si la oferta de AA es mejor que Delta.Caso contrario se copia la variable de Delta. entonces se copia la variable de AA a TravelResponse (La cual se retorna al cliente).8 Definir el Proceso: <sequence> • Con la etiqueta <case>.

4.9 Definir el Proceso: <sequence> • El último paso del proceso BPEL es retornar un callback al cliente usando la actividad <invoke>. • La variable que mantiene el mensaje a responder es TravelResponse. .

Basic Activities process Do a blocking wait for a matching message to arrive / send a message in reply Invoke a one-way or request-response operation Update the values of variables or partner links with new data Validate XML data stored in variables Generate a fault from inside the business process Forward a fault from inside a fault handler Immediately terminate execution of a business process instance Invoke compensation on all completed child scopes in default order Invoke compensation on one completed child scope Wait for a given time period or until a certain time has passed No-op instruction for a business process Wrapper for language extensions receive reply exit invoke compensate assign compensateScope validate wait throw empty rethrow extensionActivity .

forEach 2. Contained activity is performed sequentially or in parallel. … N. 1. 2. … N. partially ordered through control links Contained activities are performed sequentially in lexical order flow B C pick M1 M2 … A Block and wait for a suitable message to arrive (or time out) A sequence 1..Structured Activities process Contained activities are executed in parallel. and handlers . partner links. controlled by a specified counter variable Select exactly one branch of activity from a set of choices Contained activity is repeated while a predicate holds while c if-elseif-else c1 c2 … Contained activity is repeated until a predicate holds repeatUntil c scope Associate contained activity with its own local variables. etc.

Prueba del servicio BPEL .

Prueba del servicio BPEL .

Prueba del servicio BPEL .

Prueba del servicio BPEL .

Prueba del servicio BPEL .

Conclusiones • ¿Qué es un Task Service Orquestado? • ¿Qué es BPEL? • ¿Cuál es la diferencia entre una operación sincrónica y una asincrónica? • Mencione algunos de nombres de tipos de actividades presentes en un proceso BPEL .

Agenda Objetivo ¿Qué es BPEL? Estructura de un proceso bpel Conclusiones .

Sign up to vote on this title
UsefulNot useful