¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este...

37
¿Qué ofrece Autentia? Somos su empresa de Somos su empresa de Somos su empresa de Somos su empresa de Soporte a Desarrollo Informático Soporte a Desarrollo Informático Soporte a Desarrollo Informático Soporte a Desarrollo Informático Ese apoyo que siempre quiso tener …. Ese apoyo que siempre quiso tener …. Ese apoyo que siempre quiso tener …. Ese apoyo que siempre quiso tener …. Desarrollo de componentes y proyectos a medida. Auditoría de código y recomendaciones de mejora. Arranque de proyectos basados en nuevas tecnologías. Curso de Formación Dirección de Proyectos Informáticos. Gestión eficaz del Tiempo. Arquitecturas de desarrollo Web: Web, J2EE, SOA, WebServices, BPM, etc. Java/ J2EE a todos los niveles: JSPs, Servlets, EJBs, JMS, JNI, etc. Análisis y diseño orientado a objeto. UML y patrones de diseño. Buenas prácticas en el desarrollo de aplicaciones Técnicas avanzadas: Lucene, Hibernate, Spring, JSF, Struts, etc. Nuestra mejor referencia son los conocimientos que Nuestra mejor referencia son los conocimientos que Nuestra mejor referencia son los conocimientos que Nuestra mejor referencia son los conocimientos que compartimos en nuestro web compartimos en nuestro web compartimos en nuestro web compartimos en nuestro web www.adictosaltrabajo.com www.adictosaltrabajo.com www.adictosaltrabajo.com www.adictosaltrabajo.com Decenas de entidades cuentan ya con nosotros Decenas de entidades cuentan ya con nosotros Decenas de entidades cuentan ya con nosotros Decenas de entidades cuentan ya con nosotros Para más información visítenos en www.autentia.com Para más información visítenos en www.autentia.com Para más información visítenos en www.autentia.com Para más información visítenos en www.autentia.com Tel. 91 675 33 06 Tel. 91 675 33 06 Tel. 91 675 33 06 Tel. 91 675 33 06 - [email protected] [email protected] [email protected] [email protected]

Transcript of ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este...

Page 1: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

¿Qué ofrece Autentia?

Somos su empresa de Somos su empresa de Somos su empresa de Somos su empresa de

Soporte a Desarrollo InformáticoSoporte a Desarrollo InformáticoSoporte a Desarrollo InformáticoSoporte a Desarrollo Informático Ese apoyo que siempre quiso tener ….Ese apoyo que siempre quiso tener ….Ese apoyo que siempre quiso tener ….Ese apoyo que siempre quiso tener ….

• Desarrollo de componentes y proyectos a medida.

• Auditoría de código y recomendaciones de mejora.

• Arranque de proyectos basados en nuevas tecnologías.

• Curso de Formación

Dirección de Proyectos Informáticos.

Gestión eficaz del Tiempo.

Arquitecturas de desarrollo Web: Web, J2EE, SOA, WebServices, BPM, etc.

Java/ J2EE a todos los niveles: JSPs, Servlets, EJBs, JMS, JNI, etc.

Análisis y diseño orientado a objeto.

UML y patrones de diseño.

Buenas prácticas en el desarrollo de aplicaciones

Técnicas avanzadas: Lucene, Hibernate, Spring, JSF, Struts, etc.

Nuestra mejor referencia son los conocimientos que Nuestra mejor referencia son los conocimientos que Nuestra mejor referencia son los conocimientos que Nuestra mejor referencia son los conocimientos que

compartimos en nuestro webcompartimos en nuestro webcompartimos en nuestro webcompartimos en nuestro web

www.adictosaltrabajo.comwww.adictosaltrabajo.comwww.adictosaltrabajo.comwww.adictosaltrabajo.com

Decenas de entidades cuentan ya con nosotrosDecenas de entidades cuentan ya con nosotrosDecenas de entidades cuentan ya con nosotrosDecenas de entidades cuentan ya con nosotros

Para más información visítenos en www.autentia.com Para más información visítenos en www.autentia.com Para más información visítenos en www.autentia.com Para más información visítenos en www.autentia.com

Tel. 91 675 33 06 Tel. 91 675 33 06 Tel. 91 675 33 06 Tel. 91 675 33 06 ---- [email protected] [email protected] [email protected] [email protected]

Page 2: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 1

Autentia Real Business Solutions

v1.0

ESBESB

Page 3: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 2

Cual es el problema

Una organización tiene sistemas distintos.

Necesita integrarlos.

SOA cada día más presente.

Conexión 1 a 1 = caro y complejo.

Solución: Bus integración.

Page 4: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 3

Cual es el problema

Page 5: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 4

¿Qué es un ESB?

Ejemplo: Agencia de Viajes → vuelo + hotel

Page 6: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 5

¿Qué es un ESB?

Page 7: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 6

¿Qué es un ESB?

•Permite la Permite la integraciónintegración de diferentes aplicaciones o de diferentes aplicaciones o servicios preexistentes. servicios preexistentes.

•Administra la intercomunicaciónAdministra la intercomunicación entre ellos entre ellos..

Page 8: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 7

Componentes de un ESB

•Services:Services: dos o más servicios a integrar. dos o más servicios a integrar.•Bus:Bus: Actúa como mediador entre los diferentes servicios. Administra Actúa como mediador entre los diferentes servicios. Administra el intercambio y la transformación de mensajes entre ellos.el intercambio y la transformación de mensajes entre ellos.•Endpoints:Endpoints: puntos de enlace entre los servicios y el Bus de puntos de enlace entre los servicios y el Bus de mensajes.mensajes.

Page 9: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 8

¿Por que utilizar un ESB?

Permite una Permite una rápidarápida integración de servicios. integración de servicios.

Page 10: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 9

¿Por que utilizar un ESB?

Sólo es necesario definir como se integra cada servicio con el bus.Sólo es necesario definir como se integra cada servicio con el bus.Permite obtener Permite obtener resultados más confiablesresultados más confiables..

Page 11: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 10

¿Por que utilizar un ESB?

La integración de servicios al Bus se realiza mediante La integración de servicios al Bus se realiza mediante configuraciónconfiguración..

Page 12: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 11

La integración de servicios se basa en estándares.La integración de servicios se basa en estándares.

Page 13: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 12

¿Por que utilizar un ESB?

La plataforma provee las herramientas para realizar la integración.La plataforma provee las herramientas para realizar la integración.

Page 14: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 13

Funcionalidades de un ESB

Ubicación transparenteUbicación transparente: desacopla al consumidor de servicios de la : desacopla al consumidor de servicios de la ubicación del mismo. ubicación del mismo.

Page 15: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 14

Funcionalidades de un ESB

Conversión de protocolos de transporteConversión de protocolos de transporte: integración de aplicaciones : integración de aplicaciones con diferentes protocolos de transporte. Http → JMS, FTP → con diferentes protocolos de transporte. Http → JMS, FTP → ficheros por lotes, SMTP → TCP ...ficheros por lotes, SMTP → TCP ...

Page 16: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 15

Funcionalidades de un ESB

Transformación de mensajesTransformación de mensajes: adaptación de los mensajes al formato : adaptación de los mensajes al formato requerido por el servicio.requerido por el servicio.

Page 17: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 16

Funcionalidades de un ESB

Enrutamiento de mensajesEnrutamiento de mensajes: determinar el destino del mensaje.: determinar el destino del mensaje.

Page 18: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 17

Funcionalidades de un ESB

Modificación de mensajesModificación de mensajes

Page 19: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 18

Funcionalidades de un ESBSeguridadSeguridad: proporciona funcionalidad para la autenticación, : proporciona funcionalidad para la autenticación, autorización y encriptación.autorización y encriptación.

Page 20: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 19

Funcionalidades de un ESB

Supervisión y gestión del entornoSupervisión y gestión del entorno: permite monitorizar en tiempo de : permite monitorizar en tiempo de ejecución el flujo de mensajes.ejecución el flujo de mensajes.

Page 21: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 20

Mule

Page 22: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 21

¿Por qué Mule?

Criterio Mule ServiceMix Open ESB Synapse PEtALS

Soporte + + +/- + +Calidad de la documentación

+ +/- + + +/-

Visibilidad en el mercado

++ + +/- +/- +/-

Comunidad ++ + +/- + +Flexibilidad ++ + +/- ++ +Soporte de protocolos y conectividad

+ + +/- +/- +

Integración con otros productos OpenSource

++ ++ +/- + +

IDE + + ++ +/- +

Ref. Open Source ESBs in action (Manning)Ref. Open Source ESBs in action (Manning)

Page 23: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 22

Modos de ejecución

Stand-AloneStand-AloneMediante línea de comandos especificando el fichero de Mediante línea de comandos especificando el fichero de configuración.configuración.Ejemplo: Ejemplo: /mule2/bin/mule -config ejemploMule/config//mule2/bin/mule -config ejemploMule/config/mule-config.xmlmule-config.xml

Servlet engine Servlet engine Configurar en el web.xml del servidor un context-param con Configurar en el web.xml del servidor un context-param con los ficheros de configuración de arranque de Mule.los ficheros de configuración de arranque de Mule.Añadir un listener que arranque Mule ESB.Añadir un listener que arranque Mule ESB.

Page 24: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 23

Mule - elementos

ComponentComponent(componente): Contiene la “lógica de negocio”. (Por ejemplo, un bean de Sping, (componente): Contiene la “lógica de negocio”. (Por ejemplo, un bean de Sping, un servicio REST, un POJO, etc.)un servicio REST, un POJO, etc.)

TransportTransport(transporte): Maneja la conectividad con una determinada tecnología o aplicación (transporte): Maneja la conectividad con una determinada tecnología o aplicación (por ejemplo, JMS, SAP, FTP, etc.)(por ejemplo, JMS, SAP, FTP, etc.)

TransformerTransformer(transformadores) :Transforma los datos al formato esperado por el siguiente (transformadores) :Transforma los datos al formato esperado por el siguiente componente. componente.

Inbound RouterInbound Router(router de entrada):(router de entrada): Determina qué hacer con el mensaje entrante antes de Determina qué hacer con el mensaje entrante antes de ser enviado al servicio.ser enviado al servicio.

Outbound RouterOutbound Router(router de salida):Determina donde debe ser enviado un mensaje tras su (router de salida):Determina donde debe ser enviado un mensaje tras su procesamiento por parte del servicio.procesamiento por parte del servicio.

Page 25: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 24

Mule – flujo básico

1.Un transport recibe un mensaje. 1.Un transport recibe un mensaje. (Por ejemplo, un mensaje se ha puesto en una cola (Por ejemplo, un mensaje se ha puesto en una cola JMS donde el transport está escuchando.)JMS donde el transport está escuchando.)

2. Antes de que el mensaje se envíe al router de entrada, sufre la primera transformación 2. Antes de que el mensaje se envíe al router de entrada, sufre la primera transformación (si es necesario) al formato requerido.(si es necesario) al formato requerido.

3. El mensaje es procesado por el router de entrada. Por ejemplo, podríamos tener un 3. El mensaje es procesado por el router de entrada. Por ejemplo, podríamos tener un "consumo selectivo", que sólo acepta los mensajes que envían las aplicaciones en las "consumo selectivo", que sólo acepta los mensajes que envían las aplicaciones en las confiamos.confiamos.

4. Tras pasar por el router de entrada, el mensaje se envía al componente, que aplica su 4. Tras pasar por el router de entrada, el mensaje se envía al componente, que aplica su lógica de negocio.lógica de negocio.

5. Después de que el servicio lo procese, la respuesta (mensaje) se envía al router de 5. Después de que el servicio lo procese, la respuesta (mensaje) se envía al router de salida. Este determina dónde enviarlo. Podríamos, por ejemplo, dividir este mensaje en salida. Este determina dónde enviarlo. Podríamos, por ejemplo, dividir este mensaje en varias partes y enviarlos a diferentes destinos.varias partes y enviarlos a diferentes destinos.

6. Finalmente, podemos transformar el mensaje una vez más para adaptarlo a las 6. Finalmente, podemos transformar el mensaje una vez más para adaptarlo a las necesidades del receptor.necesidades del receptor.

Page 26: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 25

Arquitectura Mule

ChannelChannel:canal de comunicación de las :canal de comunicación de las aplicaciones con Mule. aplicaciones con Mule.

ConnectorConnector: :

Message RecieverMessage Reciever: receptor de los : receptor de los mensajes del canal.mensajes del canal.

TransformerTransformer: adapta la información al : adapta la información al servicio.servicio.

Inbound RouterInbound Router: determina que hacer con : determina que hacer con los mensajes recibidos.los mensajes recibidos.

ComponentComponent: implementa la lógica de : implementa la lógica de integraciónintegración

Outbound RouterOutbound Router: determina a donde : determina a donde deben enviarse los mensajes salientes tras deben enviarse los mensajes salientes tras ser procesados por el componente.ser procesados por el componente.

Message DispacherMessage Dispacher: define como deben : define como deben ser enviados los mensajes al canal de ser enviados los mensajes al canal de salida.salida.

Page 27: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 26

Configurando Mule

Configuración de Mule → Fichero XML.Configuración de Mule → Fichero XML.

Un Un servicioservicio es un sencillo componente que especifica: es un sencillo componente que especifica:

•sobre que canal escucha (inbound router),sobre que canal escucha (inbound router),

•que metodo invoca (Component).que metodo invoca (Component).

•hacia que canal publica (outbound router).hacia que canal publica (outbound router).

Page 28: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 27

Ejemplo – Agencia de viajes

Page 29: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 28

Mule endpoints

Mule endpointsMule endpointsEstablece la manera en la que una aplicación se conecta a un canal. Establece la manera en la que una aplicación se conecta a un canal.

Los canales, conectores, emisores y receptores trabajan juntos para lograrlo.Los canales, conectores, emisores y receptores trabajan juntos para lograrlo.

Gracias a los namespaces específicos de transporte esta configuración se realiza de forma sencilla.Gracias a los namespaces específicos de transporte esta configuración se realiza de forma sencilla.

Ejemplos:Ejemplos:

<jms:inbound-endpoint queue=”prueba.queue” /><jms:inbound-endpoint queue=”prueba.queue” />

<jms:outbound-endpoint topic=”prueba.topic” /><jms:outbound-endpoint topic=”prueba.topic” />

<file:inbound-endpoint name=”example-in” path=”example/in” /><file:inbound-endpoint name=”example-in” path=”example/in” />

<file:outbound-endpoint name=”example-out” path=”example/out” /><file:outbound-endpoint name=”example-out” path=”example/out” />

Ya sabemos como Mule interactua con los mensajes. Veamos que puede hacer con ellos.Ya sabemos como Mule interactua con los mensajes. Veamos que puede hacer con ellos.

Page 30: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 29

Mule TransformersUna vez recibido el mensaje debe ser transformado para adaparse al formato requerido por el servicio.Una vez recibido el mensaje debe ser transformado para adaparse al formato requerido por el servicio.

Esto se realiza en dos pasos:Esto se realiza en dos pasos:

Definición de las transformaciones.Definición de las transformaciones.

Transformaciones genéricas:Transformaciones genéricas:

Mule aplica sus propias transformaciones basadas en el tipo de transporte empleado.Mule aplica sus propias transformaciones basadas en el tipo de transporte empleado.

<<jms:jmsmessage-to-object-transformer jms:jmsmessage-to-object-transformer namename=="JMSToStringTransformer""JMSToStringTransformer" />/><xml:xslt-transformer<xml:xslt-transformer namename=="XSLT" "XSLT" xsl-file=xsl-file==="prueba.xslt" "prueba.xslt" />/>

Ejemplo de transformaciones automáticas realizadas por Mule para mensajes JMS.Ejemplo de transformaciones automáticas realizadas por Mule para mensajes JMS.

Objeto Java Mensaje JMS

java.lang.String javax.jms.TextMessage

byte[] javax.jms.BytesMessage

java.util.Map javax.jms.MapMessage

java.io.InputStream javax.jms.StreamMessage

java.lang.Object javax.jms.ObjectMessage

Page 31: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 30

Mule Transformers

Transformaciones de usuario:Transformaciones de usuario:

Estas transformaciones pueden sobre-escribir las genéricas o ser aplicadas conjuntamente.Estas transformaciones pueden sobre-escribir las genéricas o ser aplicadas conjuntamente.

En este caso las transformaciones genéricas no son ejecutadas por defecto.En este caso las transformaciones genéricas no son ejecutadas por defecto.

<custom-transformer<custom-transformer namename=="pruebaTransformer" "pruebaTransformer" class=class=”autentia.esb.prueba.BigDecimalTransformer"”autentia.esb.prueba.BigDecimalTransformer" />/>Clase que implementa el transformador:Clase que implementa el transformador:

Package Package autentia.esb.prueba;autentia.esb.prueba;

importimport org.mule.api.transformer.TransformerException; org.mule.api.transformer.TransformerException;

importimport org.mule.transformer.AbstractTransformer; org.mule.transformer.AbstractTransformer;

publicpublic classclass BigDecimalTransformer BigDecimalTransformer extendsextends AbstractTransformer { AbstractTransformer {

protectedprotected Object doTransform(Object src, String encoding) Object doTransform(Object src, String encoding) throwsthrows TransformerException { TransformerException {

ifif(src (src instanceofinstanceof String) { String) {

returnreturn new BigDecimal(src); new BigDecimal(src);

}}

returnreturn res; res;

}}

}}

Page 32: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 31

Mule Transformers

Asociación de los transformadores a los endpoints.Asociación de los transformadores a los endpoints.

Se realiza sobre la propia definición de los endpoints.Se realiza sobre la propia definición de los endpoints.

Ejemplo:Ejemplo:

<jms:<jms:inbound-endpointinbound-endpoint queuequeue=="query.response""query.response" />/><<transformertransformer refref=="JMSToStringTransformer""JMSToStringTransformer" />/><<transformertransformer refref=="XSLT""XSLT" />/>

</jms:</jms:inbound-endpointinbound-endpoint >>

Page 33: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 32

Mule Routers

Inbound RouterInbound Router

Determina como son recibidos los mensaje por el componente.Determina como son recibidos los mensaje por el componente.

Configurable mediante filtros, permite establecer la estrategia de evaluación del mensaje.Configurable mediante filtros, permite establecer la estrategia de evaluación del mensaje.

Ejemplo sencilloEjemplo sencillo

<<inboundinbound>>

<<inbound-endpointinbound-endpoint addressaddress=="cxf:http://localhost:63081/agencia/hotel/hotelSearch""cxf:http://localhost:63081/agencia/hotel/hotelSearch" />/></</inboundinbound>>

Nombre del router descripción

Idempotent receiver Solo se reciben mensajes con identificador único

Aggregator Combina en un mensaje dos o más mensajes

Resequencer Cambiar el orden de los mensajes

Selective consumer Evalua si enviar o no el mensaje

Wiretap router Permite redireccionar mensajes

Forwarding consumer Envía el mensaje al outbound sin pasar por el componente

Page 34: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 33

Mule routers

Outbound RouterOutbound Router

Determina donde serán enviados los mensajes tras su procesamiento.Determina donde serán enviados los mensajes tras su procesamiento.<<outboundoutbound>>

<<pass-through-routerpass-through-router>>

<<vm:outbound-endpointvm:outbound-endpoint pathpath=="aggregatorQueue""aggregatorQueue" />/></</pass-through-routerpass-through-router>>

</</outboundoutbound>>

Nombre del router descripciónFiltering outbound router Enruta basándose en el contenido del mensajeRecipient list Permite enrutar hacia múltiples endpointsMulticasting router Enviar el mismo mensaje a múltiples endpointsChaining router Encadena varios endpointsMessage splitter Divide en varios mensajes y envía por separadoException-based router Prueba sobre varios endpointsList message splitter Separa mensajes de una lista

Page 35: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 34

Mule Connectors

Se incluyen en el fichero de configuración de Mule.Se incluyen en el fichero de configuración de Mule.

Permiten a Mule conectarse con diversas tecnologías.Permiten a Mule conectarse con diversas tecnologías.

- Ficheros- Ficheros - BPM- BPM

- JMS (queue y topic)- JMS (queue y topic) - HTTP- HTTP

- JDBC- JDBC - IMAP- IMAP

- mail (POP3 y SMTP)- mail (POP3 y SMTP) - QUARTZ- QUARTZ

- FTP- FTP - RMI- RMI

- EJBs (RMI y capa WS)- EJBs (RMI y capa WS) - SOAP- SOAP

Ejemplo:Ejemplo:

<<smtp:gmail-connectorsmtp:gmail-connector namename=="emailConnector""emailConnector" />/>

Page 36: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 35

Component

Es invocado cuando un mensaje recibido por el “inbound router” pasa todos los filtros.Es invocado cuando un mensaje recibido por el “inbound router” pasa todos los filtros.

Este componente por defecto es un POJO sin dependencias con Mule.Este componente por defecto es un POJO sin dependencias con Mule.

Puede ser gestionado por Spring o implementado en otras tecnologías como Groovy, REST, etc.Puede ser gestionado por Spring o implementado en otras tecnologías como Groovy, REST, etc.

Una vez terminado el proceso el resultado que devuelve al outbound router es el objeto respuesta.Una vez terminado el proceso el resultado que devuelve al outbound router es el objeto respuesta.

En caso de devolver null el proceso se detiene.En caso de devolver null el proceso se detiene.

Configuración en Mule:Configuración en Mule:

<<componentcomponent classclass=="com.autentia.ejemplo.PruebaComponentImpl""com.autentia.ejemplo.PruebaComponentImpl" />/>

¿Como sabe Mule que método debe invocar?¿Como sabe Mule que método debe invocar?- Dejar que Mule decida... - Dejar que Mule decida... - Especificar el nombre del método en la configuración de Mule.- Especificar el nombre del método en la configuración de Mule.

<<componentcomponent classclass=="com.autentia.ejemplo.PruebaComponentImpl""com.autentia.ejemplo.PruebaComponentImpl" methodsmethods=="process""process"/>/>- Mediante una interfaz que defina el “entrypoint” de la clase, como por ejemplo:- Mediante una interfaz que defina el “entrypoint” de la clase, como por ejemplo:

Callable que obliga a implementar el método onCall.Callable que obliga a implementar el método onCall.

Page 37: ¿Qué ofrece Autentia? · ESB. Queda totalmente prohibida la distribución o modificación de este material. Este material ha sido licenciado sólo y exclusivamente para su uso interno.

Queda totalmente prohibida la distribución o modificación de este material.Este material ha sido licenciado sólo y exclusivamente para su uso interno.

www.autentia.com

1– 36

Conclusión

- Mule recibe mensajes escuchando en un canal.- Mule recibe mensajes escuchando en un canal.

- Un - Un message receivermessage receiver recibe el mensaje utilizando la tecnología específica requerida por el recibe el mensaje utilizando la tecnología específica requerida por el canal.canal.

- El transformador de entrada es invocado.- El transformador de entrada es invocado.

- Antes de llamar al componente, el mensaje pasa por el - Antes de llamar al componente, el mensaje pasa por el inbound routerinbound router que decide si será que decide si será procesado el mensaje.procesado el mensaje.

- El componente lo procesa.- El componente lo procesa.

- El resultado pasa al - El resultado pasa al outbound routeroutbound router que determina donde será enviado. que determina donde será enviado.

- El transformador de salida es invocado.- El transformador de salida es invocado.

- El - El message dispachermessage dispacher deja el mensaje en el canal de salida. deja el mensaje en el canal de salida.