BPEL. Nota: Esta guía está basada en el tutorial http://www.adictosaltrabajo.com/tutoriales/introduccion-bpel-openesb/#modelarconbpel



Documentos relacionados
(

Sistemas Distribuidos (IS18) Ciclo Guía para generar BPEL y CASA

WEB SERVICES CREACIÓN DEL SERVICIO

Guías para la Práctica (4) OpenESB BPEL Service Engine

GUÍA DE USUARIO Programación y Presentación Prueba de Selección Fase II

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

2_trabajar con calc I

Manual de NetBeans y XAMPP

Móvil Seguro. Guía de Usuario Terminales Android

Manual Ingreso Notas y Acta Electrónica

RUEDA TORRES DULCE CAROLINA 3CM2 JAX-WS WEB SERVICES WEB APPLICATION DEVELOPMENT

APLICATECA. Guía para la contratación y gestión de. Hacemos Tu Web

APLICATECA. Guía para la contratación y gestión de Respaldo Cloud

Comisión Nacional de Bancos y Seguros

Guía rápida de la Oficina Virtual Área Web y Administración Electrónica

Guía de instalación de la carpeta Datos de IslaWin

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

SUBIENDO NUESTRA WEB CON MACROMEDIA DREAMWEAVER

Instalación del Admin CFDI

Plantillas Office. Manual de usuario Versión 1.1

DOCENTES FORMADORES UGEL 03 PRIMARIA

APLICATECA. Guía para la contratación y gestión de. Te Destaco

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha

CONFIGURACIÓN PARA CORREO ELECTRÓNICO SEGURO CON MOZILLA

RELACIÓN DE PRÁCTICAS DEL TEMA 2

10. El entorno de publicación web (Publiweb)

ANEXO I. Diccionario de Datos

Manual de Usuario FACTURA99 FACTURACIÓN. Factura99 FACTURA 99


- Dirigido a Centros Docentes- Versión 01-23/03/2010

Formas de Pago y Efectos en Facturas de Venta WhitePaper Febrero de 2007

Redes de área local: Aplicaciones y servicios WINDOWS

GVisualPDA Módulo de Almacén

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

Manual de configuración de Adobe Reader para la validación de la firma de un documento.

Microsoft Access proporciona dos métodos para crear una Base de datos.

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Manual de Capacitación y de Usuario

Manual del Sistema Extranet de Proveedores. Extranet de Proveedores. Versión 3.0. Manual de Usuario

PS.Vending Almacén Pocket PC

Guía Práctica para el Uso del Servicio de Software Zoho CRM

NORMA 34.14(SEPA) 05/11/2013

Crear la base de datos antes de la instalación de Wordpress.

MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

Notas para la instalación de un lector de tarjetas inteligentes.

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Manual DISCO VIRTUAL. Gemelo Backup Online DESKTOP

egarante Configuración de una cuenta de correo del servicio eginbox en una cuenta existende de Gmail

PRESENTACIÓN TELEMÁTICA DE CUENTAS ANUALES

1.- GENERAL. 2.- INGRESO AL SISTEMA.

Base de datos OpenOffice ª parte. por Pedro Peregrín González CEIP San Juan de Dios Granada -España-

GUÍA DE OUTLOOK. Febrero 2010

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

TÉCNICAS DE GESTIÓN ADMINISTRATIVA PARA PEQUEÑAS EMPRESAS

Aplicateca. Manual de Usuario: Ilion Factura Electrónica. Espíritu de Servicio

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

CUALQUIERA, NO ES NECESARIO DISPONER DE ADSL

Manual de configuración del correo electrónico Netkiamail en distintos dispositivos

Oficina Online. Manual del administrador

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Manual de uso de correo seguro en Microsoft Outlook

PRESENTACIÓN TELEMÁTICA DE LIBROS

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

MÓDULO 3 HERRAMIENTAS EN LA NUBE: ANFIX

TUTORIAL DE INSTALACIÓN Y CONFIGURACIÓN DE NETBEANS

Contenido. cursos.cl / Teléfono:

INSTALACIÓN DE MEDPRO

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.

GUÍA PARA INICIAR UN TRÁMITE DESDE LA OFICINA VIRTUAL

ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009)

Ana Alicia Rodríguez Magdaleno

SOROLLA MODULO DE JUSTIFICANTES DEL GASTO

CONVERSOR LIBROS DE REGISTRO (IVA IGIC) Agencia Tributaria DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA

Cuando hacemos uso de los grupos, se tendrán los permisos asignados al grupo, en todas las carpetas y documentos del sitio.

Departamento Nacional de Planeación República de Colombia

VideoSoftPHONE Active Contact

Comisión Nacional de Bancos y Seguros

APLICATECA. Guía para la contratación y gestión de. Servidor Cloud

MANUAL DE USUARIO Y EJEMPLO DE UTILIZACIÓN HERRAMIENTA DLP-DELPHI LEARNING PACKAGE

Gestión de incidencias

CERTIFICADOS ELECTRÓNICOS Y LECTORES DE TARJETAS LTC31 USB CERTIFICADOS ELECTRÓNICOS Y LECTORES DE TARJETAS LTC31 USB

MANUAL DE USUARIO. Se deben seguir los siguientes pasos para la correcta instalación del módulo descargable:

MANUAL DE FACTURACIÓN TOUCH SCREEN

Sistema Valefiel Todos los derechos reservados 2012

Instalación de certificados digitales

Correo Electrónico: Webmail: Horde 3.1.1

MANUAL DE CAPACITACIÓN Sistema Joomla WEB CMS 2.5. HogarPara. SusNiños.

Manual de instalación Conector FactuSOL Prestashop VERSIÓN PROFESIONAL

Guía Notas Parciales. Intermedio

MANUAL DE LA APLICACIÓN DE ENVÍO DE SMS

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este

Manual de configuración de Thunderbird ÍNDICE

Tutorial de Windows Movie Maker

Guía de Acceso rápida para Participantes Marzo 2014

Manual de ayuda para la utilización del Correo Interno en el Campus Virtual

Transcripción:

BPEL 1 Definición proyecto En este tutorial vamos a aprender a crear procesos BPEL practicando con un ejemplo: un proceso de negocio de venta online de libros. (Los pasos descritos en el tutorial deben ser realizados con la ayuda de los videos Book Sales.avi (VIDEO 1) y Desplegar Aplicacion Compuesta - Book Sales.avi (VIDEO 2)) Para el desarrollo sebook utilizará una máquina virtual de Windows7 (32 bits) con las siguientes herramientas instaladas: - GlashFish ESB v2.2 (contiene el entorno de desarrollo Netbeans v6.7.1 y el servidor Glashfish v2.1) - jdk1.6.0_24 para Windows-i586 Nota: Esta guía está basada en el tutorial http://www.adictosaltrabajo.com/tutoriales/introduccion-bpel-openesb/#modelarconbpel 2 Escenario La empresa TuLibroOnline decidió adoptar SOA para sus infraestructuras IT y actualmente se encuentra en la fase de composición de servicios. Para implementar el proceso de venta de libros se decide desarrollar un proceso BPEL orquestando servicios web de las áreas implicadas en el negocio. 3 El proceso de negocio La empresa utiliza tres módulos desarrollados: módulo de verificación de existencia del producto, módulo de facturación y módulo de envíos. Con el objetivo de implementar todo el proceso de venta de manera conjunta, se trabajó con el responsable del negocio del área de comercio, obteniendo el siguiente proceso de venta mostrado en la figura 1, el cual reutiliza e integra los módulos que han funcionado de manera independiente. Figura 1. Proceso de negocio de venta de libros Los detalles del proceso son los siguientes: La orden de venta se inicia aportando el ID de cliente registrado que realiza la compra, el ISBN del libro que adquiere, el número de unidades y el precio por unidad. Se comprueba en el almacén que haya surtido suficiente para el pedido. En su defecto el proceso finaliza y lo notifica, para así ofrecer alternativas al cliente y no perder la oportunidad de venta.

Si hay unidades suficientes, se invoca el sistema de pago online que tenemos contratado con nuestra entidad financiera. La entidad ya dispone de los datos de los clientes registrados, por lo que se encarga de hacer las transacciones necesarias y asegurar el pago. Finalmente emitimos la orden de envío a una empresa de mensajería. Facilitaremos un identificador de pedido para que lo recoja en almacén y lo reparta. El resultado del proceso será una confirmación de la venta realizada. 4 Servicios web requeridos Como siguiente paso tenemos que identificar los servicios web que realizan las funcionalidades concretas de cada paso del proceso. En nuestro caso son: Servicio web del almacén: ItemCheck: Espera el ISBN del libro y las unidades de compra. Responde si existe o no surtido suficiente Servicio web del sistema de pago online: PayGateway: Recibe un idcliente y un valor. Devuelve un código de factura. Servicio web de la empresa de mensajería: Shipment: Recibe el identificador de la empresa (TuLibroOnline) y el pedido a servir. Responde con el tiempo en días estimado de reparto. Estos servicios están implementados y los encuentra en el espacio de trabajo del entorno de desarrollo instalado en la máquina virtual que está utilizando. 5 Modelar el proceso de negocio con BPEL (VIDEO1: 00:00-00:16) Creamos un nuevo proyecto BPEL en NetBeans: File New Project SOA BPEL Module. Le asignamos el nombre booksales. Figura 2. Crear un módulo BPEL en Netbeans

5.1 Generar el descriptor del proceso BPEL (VIDEO1: 00:16-02:15) Un proceso BPEL se expone al resto como si se tratara de un servicio web, por lo tanto, debe tener su propio descriptor WSDL. Para crearlo de clic derecho sobre el proyecto booksales e ingrese a New WSDL Document. En la ventana que se despliega introduzca los valores de la imagen: Figura 3. Crear descriptor WSDL del proceso BPEL En el siguiente paso del asistente introducimos los siguientes valores: Inpunt enterpriseid (int), itemid (int), customerid (int), articlesnumber (int), articleprice (int) Output result (string) Figura 4. Definición de la operación del servicio y sus argumentos

En el último paso aceptamos los valores propuestos: Figura 5. Configuración concreta del descriptor Finalizamos el asistente y ya tenemos definida la interfaz del proceso BPEL y se visualizará el archivo booksales.wsdl dentro del proyecto. En el editor visual de booksales.bpel se debe indicar el punto inicial del proceso de negocio, es decir, la interfaz del proceso BPEL, por lo tanto, debe ser agregado el enlace a esta interfaz arrastrando el archivo booksales.wsdl a la izquierda del diagrama. Recuerde que un enlace a un servicio se conoce como Parner Link. Figura 6. Insertar el enlace a la interfaz del proceso BPEL

Pulsando sobre la representación del WSDL recién introducido y en su icono, accedemos a las propiedades. Cambiamos el nombre por defecto PartnerLink1 por booksalespl y aceptamos. 5.2 Importar descriptores WSDL de los servicios involucrados (VIDEO1: 02:15-04:53) Todo proceso BPEL necesitará los contratos WSDL de los servicios que utilice para poder invocarlos. Las aplicaciones web que encontrará en NetBeans deberán estar desplegadas sobre el servidor GlassFish previamente arrancado. Así, podemos acceder a los contratos de los servicios web en las URL: http://localhost:8080/itemcheck/itemcheckservice?wsdl http://localhost:8080/paygateway/paygatewayservice?wsdl http://localhost:8080/shipment/shipmentservice?wsdl Todo proceso BPEL necesitará los contratos WSDL de los servicios que utilice para poder invocarlos. Para importar los WSDL en el proceso BPEL, haga clic derecho sobre el servicio web (en el proyecto itemcheck) y seleccione Generate and Copy WSDL y en la pantalla que se despliega seleccione la carpeta donde se va a copiar la WSDL (en este caso: en la carpeta src del proyecto booksales): Figura 7. Importando los WSDL de los servicios utilizados En la carpeta src de booksales observará dos archivos ItemCheckService.wsdl y ItemCheckService_schema1.wsdl. Abra el código fuente de ItemCheckService.wsdl, la etiqueta <service> se encontrará de la forma: En esta misma etiqueta debe ingresar correctamente la URL del servicio web ítemchek de la siguiente manera:

Repetimos la operación con los servicios web ubicados en los proyectos paygateway y shipment. El proyecto booksales quedará de la siguiente manera: Figura 8. Importamos los descriptores de los servicios web utilizados 5.3 Crear enlaces con proveedores de servicios (VIDEO1: 04:53-05:52) Hacemos doble clic sobre booksales.bpel y accedemos al editor visual. Es intuitivo y se basa en arrastrar y soltar elementos en las zonas permitidas. Insertamos los descriptores de los servicios web utilizados a la derecha del diagrama como proveedores de servicios. Al arrastrar y soltar, aparecerá el diálogo de creación de un nuevo enlace a un proveedor de servicio (en el cual aprovecharemos para cambiar el nombre PartnerLink1 por el del servicio que corresponda, e.g. itemcheckpl): El proceso quedará de la forma: Figura 9. Insertar descriptores de los servicios web utilizados.

Figura 10. BPEL con los servicios proveedores (PartnerLinks) 5.4 Diseñar el proceso BPEL gráficamente (VIDEO1: 05:52-18:47) En este punto, usted puede seguir el procedimiento realizado en el video, o el descrito a continuación (el resultado será el mismo). A continuación utilizamos la paleta de actividades del editor BPEL de NetBeans: Figura 11. Paleta de actividades del editor de BPEL Y componemos en unos minutos un proceso como el de la imagen siguiente:

Figura 12. BPEL inicial con sus actividades Cambie los nombres de las actividades de la siguiente manera (recuerde que para cambiar los nombres de las actividades utilizamos su icono de edición ): Assign1 AssignCheckAvailability Invoke1 checkavailavility If1 conditional_checkavailability Assign2 AssignPay Invoke2 Pay Assign3 AssignShipment Invoke3 shipment Assign4 AssignCalculatePrice Invoke4 calculateprice Assign5 AssignCheckAvailabilityFail Assign6 AssignSuccessful

Comenzamos asociando las actividades de recepción, invocación y respuesta a los servicios. Hacemos doble clic sobre la actividad de recepción (Receive) e introducimos los valores que muestra la siguiente imagen. Para obtener la propiedad Input Variable, pulsamos sobre el botón Create y aceptamos los valores por defecto, pues son significativos: Figura 13. Editando la actividad de recepción Tras aceptar, vemos en el BPEL que ha aparecido una flecha que une booksalespl con la actividad Receive. De igual manera hacemos con la actividad de respuesta (Reply). Para obtener la propiedad Output Variable, pulsamos sobre el botón Create y aceptamos los valores por defecto, pues son significativos: Figura 14. Editando la actividad de respuesta A continuación hacemos lo mismo para cada actividad de invocación. Comenzando por checkavailability:

Figura 15. Invocación del servicio de inventario Repetimos la operación para el resto de invocaciones (estableciendo las relaciones con los proveedores de servicio y función correspondiente): Figura 16. Invocación del servicio de pago Figura 17. Invocación del servicio de envío

Figura 18. Invocación del servicio de cálculo de costo El proceso BPEL habrá tomado una forma más reconocible: Figura 19. BPEL con las invocaciones a los servicios A continuación editamos las variables de asignación. Como su nombre indica, cada una asigna variables a la actividad que le sigue. Por ejemplo, la actividad de invocación checkavailability espera unos valores de entrada (los del servicio web al que invoca: itemchek). Estos valores los tenemos que asignar de la actividad que los tenga, en este caso la de recepción (Receive). Para ello pulsamos doble clic sobre la actividad AssignCheckAvailability y se abre el siguiente mapeador de valores, al que hemos asociado

relaciones entre partes de mensajes, pulsando en el nombre de variable origen y arrastrando la flecha hasta el destino: Figura 20. Asignación de valores entre partes de mensajes A la izquierda hemos filtrado por valores de salida (Output) y a la derecha por variables receptoras (Input). En este caso estamos asignando los valores de la actividad Receive (cuyo nombre de variable BookSalesOperarionIn fue definido en un paso anterior), a la variable de entrada de la invocación al servicio web de comprobación de inventario (CheckAvailabilityIn). Para salir del mapeador y regresar el diagrama BPEL, hay que pulsar sobre la palabra Design en la parte superior del mapeador. Editamos AssignPay: Figura 21. Asignar valores a la invocación del servicio de facturación. Editamos AssignShipment. Recuerde que el número de factura (invoice) lo retorna el servicio Pay:

Editamos AssignCalculatePrice: Figura 22. Asignar valores a la invocación del servicio de envíos. Figura 23. Asignar valores a la invocación del cálculo de precio. Editamos ahora AssignCheckAvailabilityFail. Estamos en el camino del else, y tenemos que asignar a la variable de la actividad de respuesta un valor que exprese que no se ha podido completar el proceso debido porque no hay existencia del producto. Dicha variable es BookSalesOperationOut y su mensaje es result. Seleccionamos esta variable, accedemos al menú String, seleccionamos String Literal, introducimos la cadena No hay en bodega el libro que busca y lo asignamos a resultado: Menú String Figura 24. Respuesta indicando la inexistencia del producto

Editamos AssignSuccessful, que asignará a la actividad de respuesta final un mensaje de confirmación de venta indicando el número de factura, el costo y los días que tardará en entregarse, indicado en la respuesta del servicio de mensajería. Concatenaremos en este caso varios literales con la respuestas de los servicios: Figura 25. Asignación de resultado a la actividad de respuesta Por último tenemos que establecer la condición de la estructura de bifurcación. Pulsamos dos veces sobre la estructura del If, y utilizando el menú Boolean y componemos la condición booleana con base en la respuesta del servicio de comprobación de existencias: Figura 26. Condición del proceso sobre la existencia de inventario En este punto el proceso BPEL estará finalizado, sin mensajes de error ni advertencias, listo para ser probado:

Figura 27. Aspecto final del proceso de negocio con BPEL 6 Desplegar el módulo BPEL (VIDEO 2: 00:00-00:28) Todo módulo de la categoría SOA será desplegado en el contenedor de JBI dentro de una Composite Application. Por ello creamos en NetBeans un proyecto de este tipo desde el menú File New Project SOA Composite Aplication y lo nombramos booksalesca:

Figura 28. Composite Application A continuación añadimos los módulos SOA que componen nuestra aplicación, pulsando con el botón derecho sobre la carpeta JBI Modules Add JBI Module Figura 29. Añadir módulo SOA Seleccionamos el proyecto booksales y pulsamos el botón Add Project JAR Files: Figura 30. Seleccionamos nuestro proyecto BPEL A continuación compilamos los proyectos introducidos seleccionando Clean and Build haciendo botón derecho sobre el nombre del proyecto, booksalesca. El resultado se mostrará en el editor CASA (Composite Application Service Assembly):

Figura 31. Editor para composición de aplicaciones (CASA) Guardamos el proyecto y lo desplegamos, haciendo de nuevo botón derecho sobre el nombre del proyecto Deploy. El proceso BPEL será ahora un web service publicado en: http://localhost:9080/booksalesservice/booksalesport?wsdl Figura 32. WSDL del servicio web implementado con BPEL En la sección Services en el panel izquierdo de NetBeans vemos que las aplicaciones web que contienen los servicios web, están desplegadas en el contenedor de aplicaciones web de GlassFish, y que la aplicación compuesta SOA está desplegada dentro del contenedor de JBI (Java Business Integration):

Figura 33. Artefactos desplegados 6.1 Probar el proceso de compra Podemos enviar mensajes SOAP sobre HTTP al servicio, desarrollando un cliente o simulándolo con alguna aplicación como soapui. También es posible generar test unitarios con junit desde el propio proyecto booksalesca (carpeta Test). En nuestro caso utilizaremos esta última opción. Clic derecho sobre la carpeta Test e ingresar a New Test Case. En la ventana que se despliega ingresar el nombrar el test como TestCaseBookSales y continuar: Figura 34. Crear un Test Case. En la siguiente ventana seleccionamos la WSDL del servicio inicial del proceso BPEL: Figura 35. Selección de WSDL del servicio inicial del proceso.

En la última ventana seleccionamos la operación que deseamos realizar por medio de este proceso inicial. En nuestro caso es booksalesoperation. En la carpeta Test se creará un TestCase que contiene un input y un output que representan los mensajes SOAP de envío y recepción, como lo muestra la siguiente figura: Figura 36. Test case de booksales Por medio del archivo Input.xml creamos el mensaje SOAP con los datos para comprar un libro: Figura 37. Mensaje SOAP request de compra Guardamos y damos clic derecho sobre TestCaseBookSale y seleccionamos Run, y aceptamos el mensaje que aparece. El archivo Output.xml contendrá el mensaje SOAP de respuesta: Figura 38. Mensaje SOAP response con información de la compra El proceso de negocio ha sido implementado en BPEL con éxito!!! NOTA: Si desea cambiar los valores del mensaje SOAP request para probar otros resultados, debe limpiar el archivo Output.xml antes de correr la nueva prueba.