exponiendo funcionalidades de openbravo como bussiness services con wso2 esb
DESCRIPTION
Exponiendo funcionalidades de openbravo como bussiness services con wso2 esbTRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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