Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

34
WSO2 ESB Exponiendo funcionalidades de Openbravo como Business Services con WSO2 ESB Gustavo Vazquez Amado IT Consultant gustavo.vazquez [at] chakray.com +34 655440824 FOTO

description

Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

Transcript of Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

Page 1: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

WSO2 ESB Exponiendo funcionalidades de Openbravo como Business Services con

WSO2 ESB

Gustavo Vazquez Amado

IT Consultant

gustavovazquez [at] chakraycom

+34 655440824

FOTO

1 Introduccioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

11 Objetivos

Conocer y aplicar la configuracioacuten de WSO2 ESB para exponer funcionalidades

existentes de Openbravo ERP como servicios

Conocer los Enteprise Integration Patterns (EIP) para mediar las funcionalidades de ERP y

transformarlos en business services

(httpsdocswso2orgdisplayIntegrationPatternsEnterprise+Integration+Patterns+with+WS

O2+ESB )

Monitorizar los servicios de negocio (BAM) (httpchakraycommonitorizar-business-

services-usando-wso2-esb-y-wso2-bam)

Aplicar seguridad desligandola del consumidor

(httpsholisticsecuritywordpresscom20140113iam-organizaciones-con-wso2is )

Potenciar la plataforma de comercio electroacutenico (httpwwwpymooeslas-5-claves-para-

transformar-tu-ecommerce-en-una-plataforma-de-alto-rendimiento-y-alta-escalabilidad )

(httpholisticsecuritywordpresscom20130625building-social-ecommerce-solution )

11 Integracioacuten de Aplicaciones

Hoy en diacutea la mayoriacutea de las empresas disponen de aplicaciones distribuidas que se

relacionan entre siacute

La Integracioacuten de Aplicaciones Empresariales (EAI) es clave para la conexioacuten de

aplicaciones empresariales con sistemas heterogeacuteneos

A traveacutes de los antildeos los arquitectos de soluciones de integracioacuten han inventado su

propio conjunto de patrones en diferentes maneras

La mayoriacutea de estas arquitecturas tienen similitudes lo que ha iniciado una serie de

estaacutendares ampliamente aceptados en la arquitectura de los patrones de integracioacuten

La mayoriacutea de estas normas se describen en el catalogo de patrones de integracioacuten

disponible en httpwwweaipatternscomtochtml

12 Patrones de Integracioacuten de Aplicaciones

El desarrollo de los patrones de

integracioacuten se basa en mediadores

un conjunto de componentes que

operan sobre el enviacuteo de un mensaje

a traveacutes de un canal desde una fuente

a un destino

De los patrones maacutes utilizados en la

integracioacuten de aplicaciones podemos

destacar

bull Filtros y tuberiacuteas encadenan

diferentes operaciones sobre el

mensaje antes de enviarlo a destino

bull Ruteador permite que la ruta de un

mensaje cambie en funcioacuten de su

contenido

bull Traductor cambia el formato del

mensaje para que sea entendido por

el destino

bull Normalizador combinacioacuten de

ruteador y traductor para soportar

muacuteltiples formatos de mensajes

13 Introduccioacuten a WSO2 ESB

WSO2 ESB es un Bus de Servicios Empresarial basado en Apache Synapse

(httpssynapseapacheorg) permite definir ruteos mediaciones y transformaciones para

implementar EIPs a traveacutes de una herramienta de configuracioacuten potente y flexible similar a

Apache Camel (httpscamelapacheorg)

- Routing Header based content based rule-based and priority-based routing

- Mediation EIPs database integration event publishing logging amp auditing validation

- Transformation XSLT 1020 XPath XQuery Smooks

Soporta diferentes transportes y protocolos

- Transports HTTP HTTPS POP IMAP SMTP JMS AMQP FIX TCP UDP FTPS

SFTP CIFS MLLP SMS

- Formats amp Protocols JSON XML SOAP 11 SOAP 12 WS- HTML EDI HL7 OAGIS

Hessian Text JPEG MP4 All binary formats CORBAIIOP

13 Introduccioacuten a WSO2 ESB

- Web console with enterprise-level security JMX MBeans for key metrics monitoring and

management

- Integrates with WSO2 Business Activity Monitor for operational audit and KPI monitoring

and management

- Centralized configuration management across different environments with lifecycles and

versioning via integration to WSO2 Governance Registry

Soporta la aplica la aplicacioacuten de distintas poliacuteticas de seguridad la seguridad a los servicios

empresariales

Permite la gestioacuten y monitorizacioacuten

2 Escenario

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

21 Escenario Mediando en los servicios de Openbravo

Como caso de ejemplo praacutectico se realizaraacute una integracioacuten con Openia CRM aunque

los conceptos en este documento se aplican a cualquier integracioacuten de WSO2 ESB

Openbravo es una plataforma que a traveacutes de diferentes moacutedulos cubre funcionalidades de

ERP CRM Comercio Electroacutenico etc

Openia es un moacutedulo de OpenBravo lanzado bajo una licencia de comunidad

Este moacutedulo tiene como funcioacuten cubrir las funcionalidades baacutesicas de CRM tales como la

gestioacuten de

bull Actividades (Llamadas reuniones tareas)

bull Leads

bull Oportunidades

bull Casos

bull Documentos

22 Escenario Capa de acceso a datos de Openia

La infraestructura tecnoloacutegica de Openia expone las entidades y meacutetodos de negocio

del moacutedulo a traveacutes de una capa de acceso a datos (Data Access Layer) con

arquitectura de servicios REST

El punto de entrada a esta capa puede accederse en la instalacioacuten de openbravo a

traveacutes de URLs REST

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 2: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

1 Introduccioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

11 Objetivos

Conocer y aplicar la configuracioacuten de WSO2 ESB para exponer funcionalidades

existentes de Openbravo ERP como servicios

Conocer los Enteprise Integration Patterns (EIP) para mediar las funcionalidades de ERP y

transformarlos en business services

(httpsdocswso2orgdisplayIntegrationPatternsEnterprise+Integration+Patterns+with+WS

O2+ESB )

Monitorizar los servicios de negocio (BAM) (httpchakraycommonitorizar-business-

services-usando-wso2-esb-y-wso2-bam)

Aplicar seguridad desligandola del consumidor

(httpsholisticsecuritywordpresscom20140113iam-organizaciones-con-wso2is )

Potenciar la plataforma de comercio electroacutenico (httpwwwpymooeslas-5-claves-para-

transformar-tu-ecommerce-en-una-plataforma-de-alto-rendimiento-y-alta-escalabilidad )

(httpholisticsecuritywordpresscom20130625building-social-ecommerce-solution )

11 Integracioacuten de Aplicaciones

Hoy en diacutea la mayoriacutea de las empresas disponen de aplicaciones distribuidas que se

relacionan entre siacute

La Integracioacuten de Aplicaciones Empresariales (EAI) es clave para la conexioacuten de

aplicaciones empresariales con sistemas heterogeacuteneos

A traveacutes de los antildeos los arquitectos de soluciones de integracioacuten han inventado su

propio conjunto de patrones en diferentes maneras

La mayoriacutea de estas arquitecturas tienen similitudes lo que ha iniciado una serie de

estaacutendares ampliamente aceptados en la arquitectura de los patrones de integracioacuten

La mayoriacutea de estas normas se describen en el catalogo de patrones de integracioacuten

disponible en httpwwweaipatternscomtochtml

12 Patrones de Integracioacuten de Aplicaciones

El desarrollo de los patrones de

integracioacuten se basa en mediadores

un conjunto de componentes que

operan sobre el enviacuteo de un mensaje

a traveacutes de un canal desde una fuente

a un destino

De los patrones maacutes utilizados en la

integracioacuten de aplicaciones podemos

destacar

bull Filtros y tuberiacuteas encadenan

diferentes operaciones sobre el

mensaje antes de enviarlo a destino

bull Ruteador permite que la ruta de un

mensaje cambie en funcioacuten de su

contenido

bull Traductor cambia el formato del

mensaje para que sea entendido por

el destino

bull Normalizador combinacioacuten de

ruteador y traductor para soportar

muacuteltiples formatos de mensajes

13 Introduccioacuten a WSO2 ESB

WSO2 ESB es un Bus de Servicios Empresarial basado en Apache Synapse

(httpssynapseapacheorg) permite definir ruteos mediaciones y transformaciones para

implementar EIPs a traveacutes de una herramienta de configuracioacuten potente y flexible similar a

Apache Camel (httpscamelapacheorg)

- Routing Header based content based rule-based and priority-based routing

- Mediation EIPs database integration event publishing logging amp auditing validation

- Transformation XSLT 1020 XPath XQuery Smooks

Soporta diferentes transportes y protocolos

- Transports HTTP HTTPS POP IMAP SMTP JMS AMQP FIX TCP UDP FTPS

SFTP CIFS MLLP SMS

- Formats amp Protocols JSON XML SOAP 11 SOAP 12 WS- HTML EDI HL7 OAGIS

Hessian Text JPEG MP4 All binary formats CORBAIIOP

13 Introduccioacuten a WSO2 ESB

- Web console with enterprise-level security JMX MBeans for key metrics monitoring and

management

- Integrates with WSO2 Business Activity Monitor for operational audit and KPI monitoring

and management

- Centralized configuration management across different environments with lifecycles and

versioning via integration to WSO2 Governance Registry

Soporta la aplica la aplicacioacuten de distintas poliacuteticas de seguridad la seguridad a los servicios

empresariales

Permite la gestioacuten y monitorizacioacuten

2 Escenario

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

21 Escenario Mediando en los servicios de Openbravo

Como caso de ejemplo praacutectico se realizaraacute una integracioacuten con Openia CRM aunque

los conceptos en este documento se aplican a cualquier integracioacuten de WSO2 ESB

Openbravo es una plataforma que a traveacutes de diferentes moacutedulos cubre funcionalidades de

ERP CRM Comercio Electroacutenico etc

Openia es un moacutedulo de OpenBravo lanzado bajo una licencia de comunidad

Este moacutedulo tiene como funcioacuten cubrir las funcionalidades baacutesicas de CRM tales como la

gestioacuten de

bull Actividades (Llamadas reuniones tareas)

bull Leads

bull Oportunidades

bull Casos

bull Documentos

22 Escenario Capa de acceso a datos de Openia

La infraestructura tecnoloacutegica de Openia expone las entidades y meacutetodos de negocio

del moacutedulo a traveacutes de una capa de acceso a datos (Data Access Layer) con

arquitectura de servicios REST

El punto de entrada a esta capa puede accederse en la instalacioacuten de openbravo a

traveacutes de URLs REST

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 3: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

11 Objetivos

Conocer y aplicar la configuracioacuten de WSO2 ESB para exponer funcionalidades

existentes de Openbravo ERP como servicios

Conocer los Enteprise Integration Patterns (EIP) para mediar las funcionalidades de ERP y

transformarlos en business services

(httpsdocswso2orgdisplayIntegrationPatternsEnterprise+Integration+Patterns+with+WS

O2+ESB )

Monitorizar los servicios de negocio (BAM) (httpchakraycommonitorizar-business-

services-usando-wso2-esb-y-wso2-bam)

Aplicar seguridad desligandola del consumidor

(httpsholisticsecuritywordpresscom20140113iam-organizaciones-con-wso2is )

Potenciar la plataforma de comercio electroacutenico (httpwwwpymooeslas-5-claves-para-

transformar-tu-ecommerce-en-una-plataforma-de-alto-rendimiento-y-alta-escalabilidad )

(httpholisticsecuritywordpresscom20130625building-social-ecommerce-solution )

11 Integracioacuten de Aplicaciones

Hoy en diacutea la mayoriacutea de las empresas disponen de aplicaciones distribuidas que se

relacionan entre siacute

La Integracioacuten de Aplicaciones Empresariales (EAI) es clave para la conexioacuten de

aplicaciones empresariales con sistemas heterogeacuteneos

A traveacutes de los antildeos los arquitectos de soluciones de integracioacuten han inventado su

propio conjunto de patrones en diferentes maneras

La mayoriacutea de estas arquitecturas tienen similitudes lo que ha iniciado una serie de

estaacutendares ampliamente aceptados en la arquitectura de los patrones de integracioacuten

La mayoriacutea de estas normas se describen en el catalogo de patrones de integracioacuten

disponible en httpwwweaipatternscomtochtml

12 Patrones de Integracioacuten de Aplicaciones

El desarrollo de los patrones de

integracioacuten se basa en mediadores

un conjunto de componentes que

operan sobre el enviacuteo de un mensaje

a traveacutes de un canal desde una fuente

a un destino

De los patrones maacutes utilizados en la

integracioacuten de aplicaciones podemos

destacar

bull Filtros y tuberiacuteas encadenan

diferentes operaciones sobre el

mensaje antes de enviarlo a destino

bull Ruteador permite que la ruta de un

mensaje cambie en funcioacuten de su

contenido

bull Traductor cambia el formato del

mensaje para que sea entendido por

el destino

bull Normalizador combinacioacuten de

ruteador y traductor para soportar

muacuteltiples formatos de mensajes

13 Introduccioacuten a WSO2 ESB

WSO2 ESB es un Bus de Servicios Empresarial basado en Apache Synapse

(httpssynapseapacheorg) permite definir ruteos mediaciones y transformaciones para

implementar EIPs a traveacutes de una herramienta de configuracioacuten potente y flexible similar a

Apache Camel (httpscamelapacheorg)

- Routing Header based content based rule-based and priority-based routing

- Mediation EIPs database integration event publishing logging amp auditing validation

- Transformation XSLT 1020 XPath XQuery Smooks

Soporta diferentes transportes y protocolos

- Transports HTTP HTTPS POP IMAP SMTP JMS AMQP FIX TCP UDP FTPS

SFTP CIFS MLLP SMS

- Formats amp Protocols JSON XML SOAP 11 SOAP 12 WS- HTML EDI HL7 OAGIS

Hessian Text JPEG MP4 All binary formats CORBAIIOP

13 Introduccioacuten a WSO2 ESB

- Web console with enterprise-level security JMX MBeans for key metrics monitoring and

management

- Integrates with WSO2 Business Activity Monitor for operational audit and KPI monitoring

and management

- Centralized configuration management across different environments with lifecycles and

versioning via integration to WSO2 Governance Registry

Soporta la aplica la aplicacioacuten de distintas poliacuteticas de seguridad la seguridad a los servicios

empresariales

Permite la gestioacuten y monitorizacioacuten

2 Escenario

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

21 Escenario Mediando en los servicios de Openbravo

Como caso de ejemplo praacutectico se realizaraacute una integracioacuten con Openia CRM aunque

los conceptos en este documento se aplican a cualquier integracioacuten de WSO2 ESB

Openbravo es una plataforma que a traveacutes de diferentes moacutedulos cubre funcionalidades de

ERP CRM Comercio Electroacutenico etc

Openia es un moacutedulo de OpenBravo lanzado bajo una licencia de comunidad

Este moacutedulo tiene como funcioacuten cubrir las funcionalidades baacutesicas de CRM tales como la

gestioacuten de

bull Actividades (Llamadas reuniones tareas)

bull Leads

bull Oportunidades

bull Casos

bull Documentos

22 Escenario Capa de acceso a datos de Openia

La infraestructura tecnoloacutegica de Openia expone las entidades y meacutetodos de negocio

del moacutedulo a traveacutes de una capa de acceso a datos (Data Access Layer) con

arquitectura de servicios REST

El punto de entrada a esta capa puede accederse en la instalacioacuten de openbravo a

traveacutes de URLs REST

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 4: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

11 Integracioacuten de Aplicaciones

Hoy en diacutea la mayoriacutea de las empresas disponen de aplicaciones distribuidas que se

relacionan entre siacute

La Integracioacuten de Aplicaciones Empresariales (EAI) es clave para la conexioacuten de

aplicaciones empresariales con sistemas heterogeacuteneos

A traveacutes de los antildeos los arquitectos de soluciones de integracioacuten han inventado su

propio conjunto de patrones en diferentes maneras

La mayoriacutea de estas arquitecturas tienen similitudes lo que ha iniciado una serie de

estaacutendares ampliamente aceptados en la arquitectura de los patrones de integracioacuten

La mayoriacutea de estas normas se describen en el catalogo de patrones de integracioacuten

disponible en httpwwweaipatternscomtochtml

12 Patrones de Integracioacuten de Aplicaciones

El desarrollo de los patrones de

integracioacuten se basa en mediadores

un conjunto de componentes que

operan sobre el enviacuteo de un mensaje

a traveacutes de un canal desde una fuente

a un destino

De los patrones maacutes utilizados en la

integracioacuten de aplicaciones podemos

destacar

bull Filtros y tuberiacuteas encadenan

diferentes operaciones sobre el

mensaje antes de enviarlo a destino

bull Ruteador permite que la ruta de un

mensaje cambie en funcioacuten de su

contenido

bull Traductor cambia el formato del

mensaje para que sea entendido por

el destino

bull Normalizador combinacioacuten de

ruteador y traductor para soportar

muacuteltiples formatos de mensajes

13 Introduccioacuten a WSO2 ESB

WSO2 ESB es un Bus de Servicios Empresarial basado en Apache Synapse

(httpssynapseapacheorg) permite definir ruteos mediaciones y transformaciones para

implementar EIPs a traveacutes de una herramienta de configuracioacuten potente y flexible similar a

Apache Camel (httpscamelapacheorg)

- Routing Header based content based rule-based and priority-based routing

- Mediation EIPs database integration event publishing logging amp auditing validation

- Transformation XSLT 1020 XPath XQuery Smooks

Soporta diferentes transportes y protocolos

- Transports HTTP HTTPS POP IMAP SMTP JMS AMQP FIX TCP UDP FTPS

SFTP CIFS MLLP SMS

- Formats amp Protocols JSON XML SOAP 11 SOAP 12 WS- HTML EDI HL7 OAGIS

Hessian Text JPEG MP4 All binary formats CORBAIIOP

13 Introduccioacuten a WSO2 ESB

- Web console with enterprise-level security JMX MBeans for key metrics monitoring and

management

- Integrates with WSO2 Business Activity Monitor for operational audit and KPI monitoring

and management

- Centralized configuration management across different environments with lifecycles and

versioning via integration to WSO2 Governance Registry

Soporta la aplica la aplicacioacuten de distintas poliacuteticas de seguridad la seguridad a los servicios

empresariales

Permite la gestioacuten y monitorizacioacuten

2 Escenario

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

21 Escenario Mediando en los servicios de Openbravo

Como caso de ejemplo praacutectico se realizaraacute una integracioacuten con Openia CRM aunque

los conceptos en este documento se aplican a cualquier integracioacuten de WSO2 ESB

Openbravo es una plataforma que a traveacutes de diferentes moacutedulos cubre funcionalidades de

ERP CRM Comercio Electroacutenico etc

Openia es un moacutedulo de OpenBravo lanzado bajo una licencia de comunidad

Este moacutedulo tiene como funcioacuten cubrir las funcionalidades baacutesicas de CRM tales como la

gestioacuten de

bull Actividades (Llamadas reuniones tareas)

bull Leads

bull Oportunidades

bull Casos

bull Documentos

22 Escenario Capa de acceso a datos de Openia

La infraestructura tecnoloacutegica de Openia expone las entidades y meacutetodos de negocio

del moacutedulo a traveacutes de una capa de acceso a datos (Data Access Layer) con

arquitectura de servicios REST

El punto de entrada a esta capa puede accederse en la instalacioacuten de openbravo a

traveacutes de URLs REST

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 5: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

12 Patrones de Integracioacuten de Aplicaciones

El desarrollo de los patrones de

integracioacuten se basa en mediadores

un conjunto de componentes que

operan sobre el enviacuteo de un mensaje

a traveacutes de un canal desde una fuente

a un destino

De los patrones maacutes utilizados en la

integracioacuten de aplicaciones podemos

destacar

bull Filtros y tuberiacuteas encadenan

diferentes operaciones sobre el

mensaje antes de enviarlo a destino

bull Ruteador permite que la ruta de un

mensaje cambie en funcioacuten de su

contenido

bull Traductor cambia el formato del

mensaje para que sea entendido por

el destino

bull Normalizador combinacioacuten de

ruteador y traductor para soportar

muacuteltiples formatos de mensajes

13 Introduccioacuten a WSO2 ESB

WSO2 ESB es un Bus de Servicios Empresarial basado en Apache Synapse

(httpssynapseapacheorg) permite definir ruteos mediaciones y transformaciones para

implementar EIPs a traveacutes de una herramienta de configuracioacuten potente y flexible similar a

Apache Camel (httpscamelapacheorg)

- Routing Header based content based rule-based and priority-based routing

- Mediation EIPs database integration event publishing logging amp auditing validation

- Transformation XSLT 1020 XPath XQuery Smooks

Soporta diferentes transportes y protocolos

- Transports HTTP HTTPS POP IMAP SMTP JMS AMQP FIX TCP UDP FTPS

SFTP CIFS MLLP SMS

- Formats amp Protocols JSON XML SOAP 11 SOAP 12 WS- HTML EDI HL7 OAGIS

Hessian Text JPEG MP4 All binary formats CORBAIIOP

13 Introduccioacuten a WSO2 ESB

- Web console with enterprise-level security JMX MBeans for key metrics monitoring and

management

- Integrates with WSO2 Business Activity Monitor for operational audit and KPI monitoring

and management

- Centralized configuration management across different environments with lifecycles and

versioning via integration to WSO2 Governance Registry

Soporta la aplica la aplicacioacuten de distintas poliacuteticas de seguridad la seguridad a los servicios

empresariales

Permite la gestioacuten y monitorizacioacuten

2 Escenario

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

21 Escenario Mediando en los servicios de Openbravo

Como caso de ejemplo praacutectico se realizaraacute una integracioacuten con Openia CRM aunque

los conceptos en este documento se aplican a cualquier integracioacuten de WSO2 ESB

Openbravo es una plataforma que a traveacutes de diferentes moacutedulos cubre funcionalidades de

ERP CRM Comercio Electroacutenico etc

Openia es un moacutedulo de OpenBravo lanzado bajo una licencia de comunidad

Este moacutedulo tiene como funcioacuten cubrir las funcionalidades baacutesicas de CRM tales como la

gestioacuten de

bull Actividades (Llamadas reuniones tareas)

bull Leads

bull Oportunidades

bull Casos

bull Documentos

22 Escenario Capa de acceso a datos de Openia

La infraestructura tecnoloacutegica de Openia expone las entidades y meacutetodos de negocio

del moacutedulo a traveacutes de una capa de acceso a datos (Data Access Layer) con

arquitectura de servicios REST

El punto de entrada a esta capa puede accederse en la instalacioacuten de openbravo a

traveacutes de URLs REST

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 6: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

13 Introduccioacuten a WSO2 ESB

WSO2 ESB es un Bus de Servicios Empresarial basado en Apache Synapse

(httpssynapseapacheorg) permite definir ruteos mediaciones y transformaciones para

implementar EIPs a traveacutes de una herramienta de configuracioacuten potente y flexible similar a

Apache Camel (httpscamelapacheorg)

- Routing Header based content based rule-based and priority-based routing

- Mediation EIPs database integration event publishing logging amp auditing validation

- Transformation XSLT 1020 XPath XQuery Smooks

Soporta diferentes transportes y protocolos

- Transports HTTP HTTPS POP IMAP SMTP JMS AMQP FIX TCP UDP FTPS

SFTP CIFS MLLP SMS

- Formats amp Protocols JSON XML SOAP 11 SOAP 12 WS- HTML EDI HL7 OAGIS

Hessian Text JPEG MP4 All binary formats CORBAIIOP

13 Introduccioacuten a WSO2 ESB

- Web console with enterprise-level security JMX MBeans for key metrics monitoring and

management

- Integrates with WSO2 Business Activity Monitor for operational audit and KPI monitoring

and management

- Centralized configuration management across different environments with lifecycles and

versioning via integration to WSO2 Governance Registry

Soporta la aplica la aplicacioacuten de distintas poliacuteticas de seguridad la seguridad a los servicios

empresariales

Permite la gestioacuten y monitorizacioacuten

2 Escenario

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

21 Escenario Mediando en los servicios de Openbravo

Como caso de ejemplo praacutectico se realizaraacute una integracioacuten con Openia CRM aunque

los conceptos en este documento se aplican a cualquier integracioacuten de WSO2 ESB

Openbravo es una plataforma que a traveacutes de diferentes moacutedulos cubre funcionalidades de

ERP CRM Comercio Electroacutenico etc

Openia es un moacutedulo de OpenBravo lanzado bajo una licencia de comunidad

Este moacutedulo tiene como funcioacuten cubrir las funcionalidades baacutesicas de CRM tales como la

gestioacuten de

bull Actividades (Llamadas reuniones tareas)

bull Leads

bull Oportunidades

bull Casos

bull Documentos

22 Escenario Capa de acceso a datos de Openia

La infraestructura tecnoloacutegica de Openia expone las entidades y meacutetodos de negocio

del moacutedulo a traveacutes de una capa de acceso a datos (Data Access Layer) con

arquitectura de servicios REST

El punto de entrada a esta capa puede accederse en la instalacioacuten de openbravo a

traveacutes de URLs REST

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 7: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

13 Introduccioacuten a WSO2 ESB

- Web console with enterprise-level security JMX MBeans for key metrics monitoring and

management

- Integrates with WSO2 Business Activity Monitor for operational audit and KPI monitoring

and management

- Centralized configuration management across different environments with lifecycles and

versioning via integration to WSO2 Governance Registry

Soporta la aplica la aplicacioacuten de distintas poliacuteticas de seguridad la seguridad a los servicios

empresariales

Permite la gestioacuten y monitorizacioacuten

2 Escenario

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

21 Escenario Mediando en los servicios de Openbravo

Como caso de ejemplo praacutectico se realizaraacute una integracioacuten con Openia CRM aunque

los conceptos en este documento se aplican a cualquier integracioacuten de WSO2 ESB

Openbravo es una plataforma que a traveacutes de diferentes moacutedulos cubre funcionalidades de

ERP CRM Comercio Electroacutenico etc

Openia es un moacutedulo de OpenBravo lanzado bajo una licencia de comunidad

Este moacutedulo tiene como funcioacuten cubrir las funcionalidades baacutesicas de CRM tales como la

gestioacuten de

bull Actividades (Llamadas reuniones tareas)

bull Leads

bull Oportunidades

bull Casos

bull Documentos

22 Escenario Capa de acceso a datos de Openia

La infraestructura tecnoloacutegica de Openia expone las entidades y meacutetodos de negocio

del moacutedulo a traveacutes de una capa de acceso a datos (Data Access Layer) con

arquitectura de servicios REST

El punto de entrada a esta capa puede accederse en la instalacioacuten de openbravo a

traveacutes de URLs REST

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 8: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

2 Escenario

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

21 Escenario Mediando en los servicios de Openbravo

Como caso de ejemplo praacutectico se realizaraacute una integracioacuten con Openia CRM aunque

los conceptos en este documento se aplican a cualquier integracioacuten de WSO2 ESB

Openbravo es una plataforma que a traveacutes de diferentes moacutedulos cubre funcionalidades de

ERP CRM Comercio Electroacutenico etc

Openia es un moacutedulo de OpenBravo lanzado bajo una licencia de comunidad

Este moacutedulo tiene como funcioacuten cubrir las funcionalidades baacutesicas de CRM tales como la

gestioacuten de

bull Actividades (Llamadas reuniones tareas)

bull Leads

bull Oportunidades

bull Casos

bull Documentos

22 Escenario Capa de acceso a datos de Openia

La infraestructura tecnoloacutegica de Openia expone las entidades y meacutetodos de negocio

del moacutedulo a traveacutes de una capa de acceso a datos (Data Access Layer) con

arquitectura de servicios REST

El punto de entrada a esta capa puede accederse en la instalacioacuten de openbravo a

traveacutes de URLs REST

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 9: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

21 Escenario Mediando en los servicios de Openbravo

Como caso de ejemplo praacutectico se realizaraacute una integracioacuten con Openia CRM aunque

los conceptos en este documento se aplican a cualquier integracioacuten de WSO2 ESB

Openbravo es una plataforma que a traveacutes de diferentes moacutedulos cubre funcionalidades de

ERP CRM Comercio Electroacutenico etc

Openia es un moacutedulo de OpenBravo lanzado bajo una licencia de comunidad

Este moacutedulo tiene como funcioacuten cubrir las funcionalidades baacutesicas de CRM tales como la

gestioacuten de

bull Actividades (Llamadas reuniones tareas)

bull Leads

bull Oportunidades

bull Casos

bull Documentos

22 Escenario Capa de acceso a datos de Openia

La infraestructura tecnoloacutegica de Openia expone las entidades y meacutetodos de negocio

del moacutedulo a traveacutes de una capa de acceso a datos (Data Access Layer) con

arquitectura de servicios REST

El punto de entrada a esta capa puede accederse en la instalacioacuten de openbravo a

traveacutes de URLs REST

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 10: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

22 Escenario Capa de acceso a datos de Openia

La infraestructura tecnoloacutegica de Openia expone las entidades y meacutetodos de negocio

del moacutedulo a traveacutes de una capa de acceso a datos (Data Access Layer) con

arquitectura de servicios REST

El punto de entrada a esta capa puede accederse en la instalacioacuten de openbravo a

traveacutes de URLs REST

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 11: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

22 Escenario Capa de acceso a datos de Openia

La autenticacioacuten se realiza con usuario y

password en el header HTTP

bull httpob_hostob_portopenbravowsdal

o Lista todas las entidades en el

modelo de datos

bull httpob_hostob_portopenbravowsdalo

pcrm_activity

o Lista todas los objetos de la entidad

ldquoActividades CRMrdquo

bull httpob_hostob_portopenbravowsdalo

pcrm_activity5544C4F4F5DC4D4CA93C

3175D0EF91D2

o Lista todas las propiedades del

objeto

5544C4F4F5DC4D4CA93C3175D0

EF91D2

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 12: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

23 Escenario Dotar a Openia de un acceso SOAP 12

Las operaciones que deberaacute realizar el proxy

WSO2 seraacuten

bull Peticiones SOAP

o Extraer datos de usuario y password

de la peticioacuten SOAP y antildeadirlos a la

cabecera HTTP

o Extraer datos de consulta y crear la

URI de peticioacuten REST

bull Respuesta REST

o Antildeadir las entradas SOAP Envelope y

Body

o Incluir el XML de la respuesta REST

en el body SOAP

o Definir el tipo MIME de la respuesta

como ldquoapplicationsoap+xmlrdquo

WS Cliente

SOAP

SOAP

REST

REST

Problema El hecho que Openia disponga de una capa REST es una caracteriacutestica de gran

utilidad pero complica la integracioacuten con por ejemplo productos BPM que estaacuten maacutes

orientados a una infraestructura de WS

Solucioacuten Crear un proxy de WSO2-ESB que opere sobre las peticiones y respuestas

REST y las convierta a SOAP

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 13: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

3 Implementacioacuten

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 14: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

31 Proxies WSO2 ESB

Dependiendo la funcionalidad que se quiera

implementar WSO2-ESB presentan los siguientes

tipos de proxy

Pass Through Proxy - No realiza operaciones

adicionales

Secure Proxy - Antildeade seguridad de WS

WSDL Based Proxy - Se crea a partir de un

WSDL

Logging Proxy - Realiza log de las

operaciones a otro endpoint

Transformer Proxy - Transforma la peticioacuten

yo respuesta mediante XSLT

Custom Proxy - Es posible programar las

operaciones

WSO2

Proxy

IN

WS Cliente

OUT

SOAP

SOAP

REST

REST

Los proxies son servicios WSO2-ESB que median entre la peticioacuten y respuesta a un

servicio destino

De esta manera las peticiones enviadas a estos proxies son ruteadas al servicio destino pero

previamente pueden realizarse distintas operaciones sobre el cuerpo y sobre de la peticioacuten

Igualmente la respuesta del servicio destino podraacute ser transformada antes de responder al

cliente

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 15: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

32 Acceso a la consola WSO2 ESB

La operacioacuten de creacioacuten de un proxy se

realiza desde la consola de administracioacuten

de WSO2-ESB

Para ingresar a la consola de

administracioacuten ESB se accede a la

siguiente URL

httpslocalhost9443carbon

Una vez identificado el usuario se accedera

a la paacutegina de administracioacuten

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 16: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

33 Creacioacuten de un proxy (mediador)

La operacioacuten de creacioacuten de un servicio

proxy se se realiza en tres pasos desde la

opcioacuten ldquoServices-gtAdd-gtProxy Servicerdquo

Los datos para la creacioacuten son

bull Nombre

bull Publicacioacuten del WSDL

bull Paraacutemetros del Servicio

bull Grupo de Servicios

bull Arranque al inicio (sino)

bull Servidores de despliegue

bull Descripcioacuten del servicio

bull Transporte (httphttps o local)

En nuestro caso escogeremos la opcioacuten

ldquoCustom Proxyrdquo y soacutelo ingresaremos el

nombre (por ejemplo openbravo)

procediendo al proacuteximo paso ldquoNextrdquo

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 17: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

34 Componentes de un proxy

bull Endpoint es el punto de acceso al

servicio destino

bull Secuencias es un componente que

gestiona la peticioacuten o respuestas antes o

despueacutes de ser enviada al servicio

destino

o Entrada - Antes del servicio

(procesa peticioacuten)

o Salida - Despueacutes del servicio

(procesa respuesta)

o Fallo - Despueacutes del fallo del

servicio (procesa respuesta)

Una vez especificada la informacioacuten general del proxy es preciso

especificar sus componentes

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 18: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

34 Componentes de un proxy

En nuestro caso praacutectico definiremos un endpoint una secuencia de entrada y una de

salida en ambos casos hemos de especificar ldquoDefine Inlinerdquo (WSO2 nos exigiraacute que

completemos la definicioacuten en cada caso como se explica a continuacioacuten)

Un proxy puede contener un endpoint

varias secuencias o ambos las

opciones para la definicioacuten en cada

casos son

bull None - No hay componente

bull Define Inline - Se define en fichero de

configuracioacuten

bull Pick from Registry - Se escoge del

registro

bull Use Existing Endpoint - Utilizar un

componente ya existente

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 19: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

35 Antildeadido de un endpoint

El endpoint representa la direccion de acceso del servicio destino en WSO2ESB es

posible crear distintos tipos de endpoint

bull Address Endpoint - Define la URL del servicio

bull Default Endpoint - Configuracioacuten adicional para el blanco por defecto

bull Failover Group - Los endpoints a que se conectaraacute el proxy en caso de falllo

bull HTTP Endpoint - Define un servicio REST basado en una plantilla URI

bull Load Balance - Grupo de endpoints al que se enviaran las peticiones en forma

ldquoround robinrdquo

bull Recipient List Group - Grupo de endpoints al que se enviaran las peticiones en

forma secuencial

bull Template Endpoint - Define una plantilla donde se pueden parametrizar

endpoints

bull WSDL Endpoint - Define un endpoint desde un WSDL

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 20: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

35 Antildeadido de un endpoint

Para especificar el endpoint se selecciona la opcioacuten create

En nuestro caso seleccionaremos el proxy REST y especificamos la URL de los

servicios openbravo y despueacutes de realizar un test exitoso seleccionamos

ldquoSalvar y Cerrarrdquo

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 21: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

36 Antildeadido de una secuencia

Para especificar una secuencia se selecciona la

opcioacuten create

Una vez creada la secuencia es posible editarla

de dos maneras

bull Graphic View los nodos de la secuencia se

antildeaden a traveacutes del editor graacutefico

bull Source View los nodos de la secuencia se

definen en el fichero fuente del proxy

Al editor muestra el nodo raiacutez de la secuencia en

nuestro caso praacutectico vamos a especificar

nuestras secuencias por fichero fuente por lo que

directamente seleccionamos ldquoSalvar y Cerrarrdquo

Es necesario realizar la misma operacioacuten para la

secuencia de salida

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 22: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

37 Completando el proxy

Una vez creados el endpoint y el marco

de las secuencias de salida y entrada

podemos finalizar la creacioacuten con

ldquoFinishrdquo

A partir de esta operacioacuten el nuevo

proxy se observaraacute en la lista de

servicios

En esta lista a traveacutes de la opcioacuten

ldquoSource Viewrdquo es posible acceder al

coacutedigo fuente del proxy

En el proxy recieacuten creado se observa la

secuencia de entrada vaciacutea

inSequence esto indica que el proxy no

realizaraacute de momento ninguacuten

tratamiento de la peticioacuten que recibe y

enviacutea al servicio destino

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 23: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

Verificando el proxy Para realizar un test del proxy creamos un

proyecto SOAP en SOAPUI

Para obtener el WSDL del proxy este se puede

consultar en la lista de servicios en la entrada

WSDL (11 o 20)

Una vez se crea el proyecto se construyen

automaacuteticamente tests para los bindings SOAP

11 y 12

Ejecutando el request observamos que el proxy

funciona correctamente y ha realizado el pass

trough ya que obtenemos la respuesta del

servicio destino REST que nos solicita

autenticacioacuten HTTP

El proacuteximo paso es antildeadir esta autenticacioacuten HTTP en la peticioacuten

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 24: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

38 Propiedades de una secuencia

Dentro de una secuencia es posible

definir propiedades a traveacutes de la

directiva ldquopropertyrdquo

El ambito de las propiedades puede

ser

bull default - son utilizadas dentro del

proxy

bull transport - son antildeadidas a la

peticioacuten o respuesta

bull axis2

la password requeridas para acceder

al servicio

ltinSequencegt

ltproperty

name=Authorization

expression=fnconcat(Basicfnbase64Encode(concat(usr

pwd)))

scope=transportgt

ltinSequencegt

Para antildeadir la autenticacioacuten REST a nuestro caso antildeadiremos la propiedad ldquoAuthorizationrdquo

para el scope rdquotransportrdquo

En ella concatenaremos el tipo de autenticacioacuten ldquoBasicrdquo con la codificacioacuten en base64 del

usuario y Las variables de usuario y el password se cargaraacuten con los datos de la peticioacuten

recibida a traveacutes de las expresiones xpath ldquousrrdquo y ldquopwdrdquo

Una vez antildeadida la secuencia de entrada al proxy volvemos a realizar el test y la

autenticacioacuten es exitosa

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 25: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

ltsoapenvBodygt

ltobOpenbravogt

ltopcrm_activity

id=3AC24BB46CC84EF09F2E77FEAE696688gt

ltobOpenbravogt

ltsoapenvBodygt

39 Propiedades URI

Es posible definir un endpoint variable

utilizando propiedades URI

Estas propiedades deben comenzar con

el prefijo ldquourivarrdquo para que puedan ser

reemplazadas en la construccioacuten del

endpoint

En este caso antildeadimos una propiedad a

la inSequence donde mapearemos la

entidad y el ID a consultar con una

expresioacuten XPATH desde la peticioacuten al

WS

Luego antildeadiremos estas propiedades

como variables del endpoint

Una vez antildeadidos las modificaciones es

posible consultar las distintas entidades

modificando la peticioacuten SOAP

ltinSequencegt

ltproperty name=Authorization

expression=fnconcat(Basic

fnbase64Encode(concat(usrpwd)))

scope=transportgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ENT

expression=name(obOpenbravo[1])

type=STRINGgt

ltproperty xmlnsob=httpwwwopenbravocom

name=urivarOB_ID

expression=obOpenbravo[1]id

type=STRINGgt

ltinSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdalurivarOB_ENTurivarOB_IDgt

ltendpointgt

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 26: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

Para que el servicio devuelva una peticioacuten correcta

SOAP hace falta realizar sobre las respuesta las

siguientes operaciones

bull Dar formato SOAP en lugar de POX (Plain Old

XML) con sobre cabecera y cuerpo

bull Cambiar el tipo MIME a ldquoapplicationsoap+xmlrdquo

en lugar de ldquotextxmlrdquo

310 Respuesta SOAP

ltoutSequencegt

ltproperty name=messageType

value=applicationsoap+xml

scope=axis2gt

ltsendgt

ltoutSequencegt

ltendpointgt

lthttp format=pox

method=get uri-

template=httplocalhost9090openbravowsdaluri

varOB_ENTurivarOB_IDgt

ltendpointgt

A diferencia de la secuencia de entrada que realiza un enviacuteo del mensaje impliacutecitamente en la

secuencia de

salida es necesario incluir la directiva ldquosendrdquo si no la respuesta no se enviaraacute a destino

El proxy estaacute finalizado

El primero de los cambios lo realiza

automaacuteticamente el proxy una vez que se

define una secuencia de salida pero para esto

es necesario informarle de que formato tiene

la respuesta del servicio destino (XML en este

caso) esta definicioacuten se realiza antildeadiendo el

formato ldquopoxrdquo en el endpoint

El cambio de tipo MIME se realiza a traveacutes de

una propiedad denominada ldquomessageTyperdquo

para el scope ldquoaxis2rdquo

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 27: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

4 Conclusiones

Introduccioacuten

Escenario

Implementacioacuten

Conclusiones

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 28: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

La mediacioacuten es la base para la SOA governance

Con WSO2 ESB es posible crear sin utilizar lenguajes de programacioacuten y

en forma simple un proxy mediador que soporte

Autenticacoacuten

Transformacioacuten del mensaje

Posteriormente se puede analizar y monitorear a traveacutes del producto

WSO2 BAM para obtener

KPI

Datos de Auditoriacutea

41 Conclusiones

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 29: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

Chakray Quieacutenes Somos

CHAKRAY ldquoPalabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la

Tecnologiacutea para el trabajo con la tierrardquo

Aportar la excelencia en la Planificacion implantacion

Soporte y Formacioacuten de Sistemas Criticos OpenSource

Misioacuten

Visioacuten

Ser una empresa de Alta Especializacioacuten sobre Sistemas Criacuteticos OpenSource Sabemos que el principal activo es nuestro equipo Sabemos colaborar con todos los ldquoStakeholdersldquo en Proyectos sobre Tecnologiacuteas de la Informacioacuten con base en plataformas OpenSource dando soporte de muy alta calidad a los negocios de sus clientes gestionando y evolucionando sus Sistemas de Informacioacuten

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 30: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

Chakray Nuestros Principios

bull Hacemos bien las cosas Sabemos que la Tecnologiacutea es Soporte al

Negocio y conocemos su Criticidad bull Somos Especialistas en las soluciones que proponemos bull No reinventamos la rueda Trabajamos con Arquitecturas Escalables

bajo una Orientacioacuten a Servicios SOA (Service Oriented Architecture) con una Arquitectura de Referencia Probada

bull Desarrollo Construccioacuten e Integracioacuten Aacutegil y cercana al Negocio bajo

BPM (Busines Process Management) y PDD (Process Development Drive)

bull Aplicamos la Seguridad a todos los niveles de la Solucioacuten bull Nuestra Solucioacuten es Virtualizable y orientada a la Nube

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 31: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

Arquitectura de Referencia en Chakray

Una Arquitectura de referencia

Trabajamos sobre una Arquitectura de referencia Probada y capaz de dar Solucioacuten a los requerimientos del Negocio

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 32: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

Un Stack de productos de Referencia

La Arquitectura es implementada por una serie de productos OpenSource en los que somos Espacialistas

Arquitectura de Referencia en Chakray

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 33: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

Chakray Nuestros Servicios

Consultoriacutea Tecnoloacutegica OpenSource

Planificacioacuten estrateacutegica Arquitectura

Optimizacioacuten de procesos Oficina Teacutecnica

Desarrollo Implantacioacuten y Despliegue

Servicios Profesionales

Seleccioacuten de perfiles (Headhunting)

Outsourcing no gestionado

Metodologiacuteas Agiles y Formacioacuten

Proporcionar competencias teacutecnicas para el mantenimiento de las soluciones tecnoloacutegicas

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320

Page 34: Exponiendo funcionalidades de openbravo como bussiness services con wso2 esb

Gracias por la atencioacuten

Haciendo Bien las cosas

con la Tecnologia adecuada

para el Soporte al Negocio

Chakray

Te esperamos en wwwchakraycom y en el Grupo WSO2 En Espantildeol

httpswwwlinkedincomgroupsWSO2-EspaC3B1ol-7478320