Contenu connexe
Similaire à Soa Fast Track
Similaire à Soa Fast Track (20)
Soa Fast Track
- 1. SOA – Fast Track
________________________________________________________________________________
SOA : EJEMPLOS PRÁCTICOS
© Jorge Irey - 2012 Página 1
- 2. SOA – Fast Track
________________________________________________________________________________
¿ Qué es SOA?. No existe una definición única en la que todos estén de acuerdo. En
lugar de ello, se han publicado varias definiciones por diferentes grupos, proveedores y
analistas de negocio: estas definiciones varían desde las vistas de alto nivel de lo que
representa SOA para un negocio hasta el enfoque de aspectos técnicos de soluciones
basadas en SOA. Sin embargo, podemos rescatar 3 aspectos de SOA:
Es una filosofía de diseño y arquitectura.
Es una solución.
Se ayuda de Servicios Web y otras tecnologías.
Existen muchas definiciones para SOA: Por ejemplo, IBM dice que :
“SOA es un modelo de componentes que interrelaciona las diferentes unidades
funcionales de las aplicaciones, denominadas servicios, a través de interfaces y
contratos bien definidos entre esos servicios. La interfaz se define de forma neutral,
y debería ser independiente de la plataforma hardware, del sistema operativo y del
lenguaje de programación utilizado. Esto permite a los servicios, construidos sobre
sistemas heterogéneos, interactuar entre ellos de una manera uniforme y
universal.”
El W3C define a SOA como: “Un conjunto de componentes que pueden ser
invocados y cuyas descripciones de las interfaces pueden ser publicadas y
ubicadas”
Una vez que una organización decide implementar SOA, es muy típico pasar por todas
estas fases en el camino de evolución hacia la madurez SOA:
Creación de los Servicios dentro de la organización. Estos Servicios incluyen
funcionalidades reutilizables, accesibles de manera estándar y que pueden formar
parte de procesos de negocio.
Orquestación de los Servicios previamente creados, mediante la definición de
Procesos que utilizarán dichos servicios disponibles en la organización y
Construcción de nuevos servicios según sean necesarios para la orquestación
de los nuevos Procesos y reutilización de los Servicios ya existentes en distintos
Procesos.
Enterprise Service Bus (ESB). Una vez que el número de procesos orquestados
es elevado, la organización descubre que es difícil controlarlos y es difícil escalar
procesos existentes, y en ese momento es cuando las organizaciones realmente
© Jorge Irey - 2012 Página 2
- 3. SOA – Fast Track
________________________________________________________________________________
descubren que es muy complicado gestionar y escalar una Arquitectura SOA si se
carece de un ESB.
Integración Semántica de Datos.Es la problemática conocida como la del “Año
SOA + 1”, ya que es una problemática que habitualmente no se tiene en cuenta a
la hora de diseñar SOA y que se descubre cuando se empieza a utilizar. Toda la
gestión de las transformaciones de datos, en muchas ocasiones se solventan a
nivel del Orquestador o del BPM o incluso a nivel del ESB, implementando en
muchas ocasiones complicadas transformaciones XSLT incluso para formatos no
XML. Esto genera problemas a la hora de cambiar la estructura de datos de una
aplicación, ya que es muy complejo identificar a qué puede afectar dicho cambio,
todos los cambios a realizar en otras aplicaciones o transformaciones de datos
para gestionar dicho cambio y dónde realizarlos.
Monitorización de negocio (BAM) de los procesos en ejecución en SOA.
Además de conocer los procesos que están en ejecución, surge la necesidad de
tener información en tiempo real del negocio, es decir, cuántos pedidos se están
recibiendo en el momento, cuántos pagos no se han realizado, demoras en la
entrega de algún producto, etc.
Existen muchas soluciones tecnológicas para SOA, sin embargo, hemos seleccionado
una solución Open Source basada en algunos productos de Apache que nos permita
© Jorge Irey - 2012 Página 3
- 4. SOA – Fast Track
________________________________________________________________________________
apreciar el despliegue tecnológico en toda su dimensión. Esta solución se llama WSO2 y
se puede obtener del sitio web http://wso2.org/.
La plataforma de productos de WSO2 está conformada por una suite de desarrollo
llamada WSO2 Carbon Studio, la cual puede ser instalada aparte o como un plugin
para Eclipse.
Y los productos de soporte a SOA como son:
Es un Enterprise Service Bus construido sobre la
plataforma WSO2 Carbon OSGi .
Permite añadir la agilidad de usar reglas de negocio
para el esquema de SOA.
La Gobernabilidad abarca más que la tecnología,
también incluye a las personas y procesos.
Proporciona la habilidad para monitorear el creciente
ecosistema de servicios desde un solo lugar.
Incluye la capacidad para especificar al dueño de cada
colección de recursos a un nivel muy fino permitiendo
el control de visibilidad de cada recurso.
WSO2 Identity Server proporciona una manejo
sofisticado de identidad y seguridad para las
aplicaciones web y los servicios.
No solo está diseñado para monitorear métricas de
SOA sino tambien para monitorear los KPI (Key
process Indicators) . En general puede monitorear
cualquier otro indicador.
Permite entregar a los empleados, clientes y
proveedores una forma de obtener toda la información
que necesitan en un solo lugar.
Permite a los desarrolladores desplegar procesos de
negocio escritos en WS-BPEL.Est+a basado en
Apache Orchestration Director Engine (ODE) BPEL
© Jorge Irey - 2012 Página 4
- 5. SOA – Fast Track
________________________________________________________________________________
Es un hub para integrar la empresa con la información
disponible en la web.
Data services son esencialmente servicios web que
proporcionan acceso a datos almacenados en
diferentes Fuentes permitiendo una integración fácil de
los datos dentro de los procesos de negocio, mashups,
gadgets, aplicaciones de BI y servicios en general.
El WSO2 Application Server proporciona los mejor de
las tecnologías Open Source para aplicaciones web
con Apache Tomcat y Servicios Web con Apache
Axis2.
Permite monitorear secuencias complejas de eventos
que ocurren en tiempo real y entender los patrones de
tráfico.
Message Brokers permite que las aplicaciones
intercambien comunicación de forma asíncrona o
publiquen mensajes para que sean visto en el tiempo
adecuado por muchos suscriptores.
Utiliza Apache Qpid
© Jorge Irey - 2012 Página 5
- 6. SOA – Fast Track
________________________________________________________________________________
Para este laboratorio vamos a emplear 4 PC’s, cada una con diferente dirección IP de tal
forma que no tengamos que cambiar los puertos de escucha de los procesos.
En caso no se cuente con las PC’s, se tendrá que editar el archivo carbon.xml y
modificar el valor de “offset” en cada producto de software.
NOTAS PREVIAS:
1. Se debe asegurar que las PC’s tengan instalado el JDK de java.
2. Se asume que la base de datos es MySQL y ya está instalada en alguna máquina
© Jorge Irey - 2012 Página 6
- 7. SOA – Fast Track
________________________________________________________________________________
Ejemplo 1: WSO2 ESB1
El objetivo de este ejemplo es mostrar como se pueden ejecutar acciones en el ESB. En
este caso cuando llega un archivo a un directorio, el ESB se encarga de leerlo y moverlo a
un directorio destino, así como grabar el contenido en una base de datos. Adicionalmente,
el ESB se conectará a un servidor de correo para enviar una notificación vía e-mail
PASO 1 : Instalar wso2esb-4.0.3
Simplemente descomprimir el archivo zip en un directorio.
En el directorio “bin” modificar el script
Se están definiendo dos variables para la ejecución del script:
1
Fuent: http://wso2.org/library/articles/2011/01/wso2-esb-example-file-processing
© Jorge Irey - 2012 Página 7
- 8. SOA – Fast Track
________________________________________________________________________________
JAVA _HOME indica la ruta de instalación del JDK de Java
CARBON_HOME es la ruta de instalación del ESB
PASO 2 : Crear la base de datos y la tabla
En la máquina donde corre el MySQL, se debe crear la base de datos SAMPLE con una
tabla llamada INFO que tenga la siguiente estructura:
PASO 3 : Copiar las librerías
En el directorio %CARBON_HOME%/ repository/components/lib , copiar los 2
JAR del ejemplo
PASO 4 : Modificar el archivo axis2.xml
© Jorge Irey - 2012 Página 8
- 9. SOA – Fast Track
________________________________________________________________________________
En el directorio %CARBON_HOME%/repository/conf editar axis2.xml para
habilitar servicios:
VFS es el transport file del ESB
En primer lugar se debe habilitar el “receiver” para archivos para ello hay que eliminar los
comentarios en la línea:
Luego se debe activar el “Sender” de archivos:
Mail Transport
Se usa para enviar y recibir mensajes de correo
Si se desea enviar correos, hay que configurar los datos de conexión al servidor de correo
(que tenga la función de SMTP relay).
Message Builders/Formatters
El “message builder” es responsable de convertir el mensaje que llega a un formato de mensaje
SOAP. Mientras que el “Message formatters” determina la salida del mensaje en format SOAP
dentro del ESB.
Los “Message formatters” están configurados dentro del axis2.xml bajo el bloque:
© Jorge Irey - 2012 Página 9
- 10. SOA – Fast Track
________________________________________________________________________________
<messageFormatters></messageFormatters>
Finalmente , modificar la línea :
Para cambiar la ruta del sysnapse-config: observe que la ruta inicia en “/repositorry/conf”
PASO 5 : Configurar el synapse-config
Habíamos indicado que Synapse es el ESB ligero de Apache (http://synapse.apache.org/ )
Para evitar problemas de la configuración vamos a copiar :
DESDE: %CARBON_HOME%repositorydeploymentserversynapse-configsdefault
HACIA: %CARBON_HOME% repositoryconfsynapse-config
© Jorge Irey - 2012 Página 10
- 11. SOA – Fast Track
________________________________________________________________________________
Copiar los archivos del ejemplo bajo la ruta conf/synapse-config
Dentro del directorio %CARBON_HOME% repositoryconfsynapse-config/default
PASO 6 : copiar el archivo smooks-config,.xml
Copiar desde el directorio del ejemplo
Copiar hacia:: %CARBON_HOME% repositoryresources
© Jorge Irey - 2012 Página 11
- 12. SOA – Fast Track
________________________________________________________________________________
PASO 7 : Configurar los localEntries
En el directorio local-entries editar el archivo smooks.xml y verificar que la ruta sea
correcta:
PASO 8 : Configurar los proxyServices
Un proxy service se crea y expone en un transporte específico a traves del motor de
Axis2.
En el directorio proxy-services editar el archivo y cambiar las rutas
PASO 7 : Configurar los sequences
En el directorio sequences
© Jorge Irey - 2012 Página 12
- 13. SOA – Fast Track
________________________________________________________________________________
El archivo fileWriteSequence.xml, editar la ruta de salida
El archivo sendMailSequence.xml, indicar el correo al cual se envía la notificación
En el archivo databaseSequence.xml
Colocar los datos de conexión a la BD considerando el usuario, clva e, dirección IP y
puerto donde se ejecuta el motor de base de datos.
© Jorge Irey - 2012 Página 13
- 14. SOA – Fast Track
________________________________________________________________________________
PASO 8 : Crear los directorios de trabajo
Los directorios indicados en:
FileProxy.xml
fileWriteSequence.xml
PASO 9 : Iniciar el ESB
En una ventana de comandos ejecutar:
La consola de administración del ESB se carga en: https://IP-1:9443/carbon
© Jorge Irey - 2012 Página 14
- 15. SOA – Fast Track
________________________________________________________________________________
Donde IP-1 es la dirección IP donde está corriendo el ESB.
El usuario es “admin” y el password es “admin” por defecto.
© Jorge Irey - 2012 Página 15
- 16. SOA – Fast Track
________________________________________________________________________________
Ejemplo2: WSO2 ESB + AS2
En este ejemplo, un cliente externo (aplicación standaloneo una aplicación web)
invocarán a un servicio que se ejecuta en el ESB. El ESB actuará como orquestador de
servicios y buscará la información que reside en un servidor de aplicaciones (AS) como se
muestra en la figura. Una vez obtenidos los datos, el ESB devolverá la respuesta al cliente
que hizo la invocación.
NOTA: Se asume que:
El ESB se ejecuta en una máquina con IP-1
El AS se ejecuta en una máquina con IP-2
Ambos procesos usan los puertos por defecto.
PASO 1 : Instalar wso2as-4.1.2
Simplemente descomprimir el archivo zip en un directorio.
2
Fuente: http://wso2.org/library/articles/2011/01/wso2-esb-by-example-service-chaining
© Jorge Irey - 2012 Página 16
- 17. SOA – Fast Track
________________________________________________________________________________
En el directorio “bin” modificar el script
Se están definiendo dos variables para la ejecución del script:
JAVA _HOME indica la ruta de instalación del JDK de Java
CARBON_HOME es la ruta de instalación del AS
PASO 2: Registrar los servicios en el AS
La consola de administración del AS se carga en: https://IP-2:9443/carbon
Donde IP-2 es la dirección IP donde está corriendo el AS.
El usuario es “admin” y el password es “admin” por defecto.
En el lado izquierdo, en la opción que dice
© Jorge Irey - 2012 Página 17
- 18. SOA – Fast Track
________________________________________________________________________________
Hacer el deploy del archivo esb-samples-1.0-SNAPSHOT.jar como un “ jar service”
que viene dentro del ejemplo.
Este .jar tiene dos clases POJO que se requieren exponer como servicio:
org.wso2.esb.samples.CreditService
org.wso2.esb.samples.PersonInfoService
Luego, presionar el botón de “Next”
© Jorge Irey - 2012 Página 18
- 19. SOA – Fast Track
________________________________________________________________________________
Y seleccionar las operaciones que expondrán los servicios:
Presionar “Finish”
© Jorge Irey - 2012 Página 19
- 20. SOA – Fast Track
________________________________________________________________________________
PASO 3: Registrar los servicios en el ESB
En la máquina con IP-1 ( donde corre el ESB ), detener el ESB para ejecutar los cambios
siguientes:
Copiar el archivo personToCredit.xslt
hacia el directorio %CARBON_HOME% repositoryresources
Copiar el archivo CreditProxy.wsdl
hacia el directorio %CARBON_HOME% repositoryresources
Copiar los directorios dentro del folder synapse-config a los respectivos folders de
%CARBON_HOME% repositoryconf/synapse-config/default
El archivo CreditProxy.wsdl contiene la definición del servicio que el ESB publica a los
clientes así como la ruta donde invocar a los servicios del AS. Se debe cambiar:
Donde dice “localhost” por IP-1
Donde dice 9446 cambiar por 9443 y donde dice 9766 cambiar por 9763.
© Jorge Irey - 2012 Página 20
- 21. SOA – Fast Track
________________________________________________________________________________
PASO 4: Probar la orquestación de servicios
Ingresar a la consola del ESB.
En el listado que sale seleccionar “CreditProxy” y presionar “Try this service”
Aparecerá una pantalla de prueba para el servicio web:
© Jorge Irey - 2012 Página 21
- 22. SOA – Fast Track
________________________________________________________________________________
En el lado izquierdo están los parámetros de entrada para el WS y en el lado derecho
aparecerá la respuesta.
Colocar algunos valores en lugar de los signos de interrogación y presionar el botón
“Send”:
© Jorge Irey - 2012 Página 22
- 23. SOA – Fast Track
________________________________________________________________________________
Observar los logs del ESB y del AS.
En este ejemplo, el response que arroja siempre será “true” ( crédito aprobado ) porque
así está codificado dentro de la clase Java que maneja el servicio.
© Jorge Irey - 2012 Página 23
- 24. SOA – Fast Track
________________________________________________________________________________
Ejemplo2: WSO2 ESB + AS + BPS 3
En este ejemplo, agregaremos un proceso definido en BPEL para ser ejecutado dentro del
WSO2 Business Process Server.
El ejemplo se basa en un proceso BPEL llamado “FunctionProcess” que
implementa una función matemática que invoca a tres servicios web que corren en el
Application Server:
1. AdderService ejecuta (x+y)
2. MultiplierService ejecuta (x*y)
3. SquareService eleva un valor al cuadrado.
NOTA: Se asume que:
El ESB se ejecuta en una máquina con IP-1
El AS se ejecuta en una máquina con IP-2
Ambos procesos usan los puertos por defecto.
3
Fuente: http://wso2.org/library/articles/writing-simple-ws-bpel-process-wso2-bps-apache-ode
© Jorge Irey - 2012 Página 24
- 25. SOA – Fast Track
________________________________________________________________________________
PASO 1 : Instalar wso2bps-2.1.2
Simplemente descomprimir el archivo zip en un directorio.
En el directorio “bin” modificar el script
Se están definiendo dos variables para la ejecución del script:
JAVA _HOME indica la ruta de instalación del JDK de Java
CARBON_HOME es la ruta de instalación del BPS
PASO 2: Registrar los servicios en el AS
La consola de administración del AS se carga en: https://IP-2:9443/carbon
Donde IP-2 es la dirección IP donde está corriendo el AS.
El usuario es “admin” y el password es “admin” por defecto.
En el lado izquierdo, en la opción que dice “Add” – “Axis2 Service”
© Jorge Irey - 2012 Página 25
- 26. SOA – Fast Track
________________________________________________________________________________
Cargar los 3 archivos .aar del ejemplo.
© Jorge Irey - 2012 Página 26
- 27. SOA – Fast Track
________________________________________________________________________________
PASO 3: Registrar el proceso BPEL en el BPS
La consola de administración del BPS se carga en: https://IP-3:9443/carbon
Donde IP-3 es la dirección IP donde está corriendo el BPS.
El usuario es “admin” y el password es “admin” por defecto.
En el lado izquierdo seleccionar “Add BPEL”
En la pantalla que aparece, cargar el archivo .ZIP (FunctionProcess.zip)
© Jorge Irey - 2012 Página 27
- 28. SOA – Fast Track
________________________________________________________________________________
Luego seleccionar en el lado izquierdo:
Aparece la lista de procesos desplegados y el proceso que acabamos de instalar:
Seleccionamos el proceso y se abre una ventana
© Jorge Irey - 2012 Página 28
- 29. SOA – Fast Track
________________________________________________________________________________
Presionamos el link “Try it” para probar. Aparece una pantalla para ingresar los valores de
prueba
Al presionar el botón de “Send” en el lado derecho aparece el mensaje SOAP de
resultados:
© Jorge Irey - 2012 Página 29
- 30. SOA – Fast Track
________________________________________________________________________________
© Jorge Irey - 2012 Página 30
- 31. SOA – Fast Track
________________________________________________________________________________
Ejemplo 4: WSO2 BAM
BAM es el monitoreo de las actividades de nuestra plataforma SOA.
PASO 1 : Instalar wso2bams-1.3.2
Simplemente descomprimir el archivo zip en un directorio.
En el directorio “bin” modificar el script
Se están definiendo dos variables para la ejecución del script:
JAVA _HOME indica la ruta de instalación del JDK de Java
CARBON_HOME es la ruta de instalación del BPS
PASO 2: Registrar los servicios a monitorear
La consola de administración del AS se carga en: https://IP-4:9443/carbon
Donde IP-4 es la dirección IP donde está corriendo el AS.
El usuario es “admin” y el password es “admin” por defecto.
© Jorge Irey - 2012 Página 31
- 32. SOA – Fast Track
________________________________________________________________________________
En el lado izquierdo, seleccionar la opción “Configure” y luego “Monitored Servers”
Luego presionar “Add Server” y registrar los datos indicados para cada servidor que se
requiere monitorear:
© Jorge Irey - 2012 Página 32
- 33. SOA – Fast Track
________________________________________________________________________________
Presionar “Add” para grabar.
Luego en el lado izquierdo “Main” – “dashboard”
Podemos monitorear los servicios:
© Jorge Irey - 2012 Página 33
- 34. SOA – Fast Track
________________________________________________________________________________
© Jorge Irey - 2012 Página 34