integracion google calendar-drive-wso2_bonita_bonita_life_liferay

26
aciones con arquitectura Chakray Google Calendar & Google Drive WSO2 – Application Server & Business Activity Monitor Bonita BPM Jack A. Rider Principal Software Architect & Consultant BPM, ECM, Open Source, Portals jack.rider [at] chakray.com +34 667770067

Upload: chakray

Post on 07-Nov-2014

700 views

Category:

Technology


0 download

DESCRIPTION

Ejemplo de Orquestacion con Bonita BPM en una Arquitectura de Referencia WSO2

TRANSCRIPT

Page 1: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Integraciones con arquitectura ChakrayGoogle Calendar & Google Drive

WSO2 – Application Server & Business Activity Monitor Bonita BPM

Jack A. RiderPrincipal Software Architect & Consultant

BPM, ECM, Open Source, Portals

jack.rider [at] chakray.com

+34 667770067

Page 2: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Objetivos

Integraciones con arquitectura Chakray

Requisitos

• Uso de Web Services para mostrar desacoplamiento entre recursos.• Solo usar Conectores pre-existentes de Bonita BPM.• Acceder a recursos de Google usando su API.• Tener una plataforma de monitoreo de toda la estructura.

• Ejercicio práctico de creación de un proceso de integración, orquestado por BPM, que resuelva una situación compleja.

• Usando el Stack Open Source definido en la arquitectura Chakray.

• Manteniendo total separación entre la vista, el modelo de negocio y el control de los recursos.

• Escalable, con posibilidad de Implementar Seguridad, Calidad de Servicios, KPIs, BAM…

Page 3: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Arquitectura de Referencia

Integraciones con arquitectura Chakray

Vista global de la arquitectura de referencia usada

Page 4: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Elementos utilizados en la Integración 1/2

Integraciones con arquitectura Chakray

Capa de Presentación

VIEW

Capa de Orquestación

CONTROLLER

Capa de Negocio

MODEL

Page 5: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Escenario : Chackray Magazine Events

Integraciones con arquitectura Chakray

Definir los pasos del proceso:

• Un Redactor un pide la cobertura de un evento

• Se crea el Evento en Google Calendar y se avisa al Jefe de Fotógrafos

• El Jefe de Fotógrafos invita a un Reportero a cubrir el evento.

• Se añade a ese fotógrafo a calendario y se le invita.

• El Reportero puede, o no, aceptar la invitación.

• En caso de no aceptar se repite selección y se avisa al Jefe de Fotógrafos

• Si acepta, se habilita un Repositorio en Google Drive y se le comparte.

• Cuando el fotógrafo sube las fotos, se avisa al redactor y termina.

• Quedando al final una plataforma de Monitorización del sistema, para QoS, estadísticas, etc.

Page 6: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Escenario : Chackray Magazine

Integraciones con arquitectura Chakray

El Proceso:

Page 7: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Elementos utilizados en la Integración 2/2

Integraciones con arquitectura Chakray

Para esta prueba de concepto utilizamos como capa de visualización el Bonita Portal, aunque como hemos visto en casos anteriores, podríamos usar BonitaLife con Liferay Portal.

Nuestra capa de controlador, la resolvemos a través del uso del Bonita engine, que con sus conectores nos permite consumir los servicios creados y expuestos en WSO2 y orquestar las tareas de forma sencilla. El uso de estos servicios se publica con el AS Service Data Publisher en el BAM.

Nuestros recursos en este ejemplo provienen de Google Calendar para la gestión de calendario y de Google Drive para los repositorios documentales. Evidentemente luego podremos cambiar estos recursos por otros, como Outlook, Alfresco, Documentum, etc. Cassandra lo utilizamos para guardar las actividades de los WS para el explotarlos en el BAM.

Page 8: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Tareas del Proceso

Integraciones con arquitectura Chakray

El Redactor Crea el evento

Nuestro redactor, una vez autenticado en Bonita Portal, lanza el proceso de eventos fotográficos, asignándose y ejecutando la tarea “Introducción Evento”, que corresponde a la formalización del correspondiente formulario, con los datos del mismo.

Page 9: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Tareas del Proceso

Integraciones con arquitectura Chakray

Se crea el Evento e Google Calendar

De forma automática, el proceso crea el evento en Google Calendar, como se ve en las capturas actuales, usando los datos del Redactor.

Page 10: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Tareas del Proceso

Integraciones con arquitectura Chakray

Se avisa al Jefe de Fotografía

Aunque, el envío de una notificación, se podría haber definido en el alta del calendario, como se verá mas adelante, aquí hemos querido mostrar el uso del conector de correo de Bonita para enviar notificación del evento al Jefe de Fotografía.

Page 11: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Tareas del Proceso

Integraciones con arquitectura Chakray

El Jefe de Fotografía ahora debe Asignar el evento

Nuestro Jefe de Fotografía, una vez notificado, entra en el portal y observará que tiene la tarea “Asignar Evento a Fotógrafo”, pendiente de ejecutar.El formulario que le aparece al ejecutarla, se muestra en la captura de la izquierda. Simplemente seleccionará un fotógrafo de la lista y enviará la invitación.

Page 12: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Tareas del Proceso

Integraciones con arquitectura Chakray

El Reportero asignado debe Aceptar

El proceso ahora es bastante dinámico, creando primero un evento en el calendario del fotógrafo seleccionado, como se ve a la izquierda, para quedar después a la escucha de su respuesta.

Si la respuesta es negativa, eliminará la actual invitación y volverá al Jefe de Fotografía para que realice otra selección, y en caso positivo, continuará el proceso, todo esto sin intervención humana.

Page 13: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Tareas del Proceso

Integraciones con arquitectura Chakray

Se crea el repositorio para el evento y se le avisa

El primer paso a realizar, una vez el fotógrafo a aceptado el evento, es crear un repositorio para que pueda subir sus documentos y notificarle. Aquí hemos dejado que la Google Drive API realice la notificación al usuario.

Page 14: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Tareas del Proceso

Integraciones con arquitectura Chakray

Esperamos a que el Fotógrafo suba los documentos

Al igual que hacíamos con los eventos, quedamos a la espera de que el fotógrafo realice la acción esperada, en este caso, subir los documentos, como se observa en la captura de la izquierda.

Esto se consigue con el uso de “Border Events” de Bonita, en este caso particular, con un timer.

Page 15: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Tareas del Proceso

Integraciones con arquitectura Chakray

Avisamos al redactor que ya tiene sus fotos

Detectada la acción de subida al repositorio correspondiente del trabajo del reportero, la última tarea que nos queda es avisar al redactor responsable del evento de que ya tiene los recursos disponibles.

Page 16: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Como se hizo: Definiendo el catalogo de servicios.

Integraciones con arquitectura Chakray

Primero detectamos los servicios por Departamento / Rol

Redactor• Crea un Evento y su entrada de calendario• Avisa al Jefe de Fotógrafos• Recibe resultado del Evento

Jefe de Fotógrafos• Asigna / Re-asigna Eventos a Reporteros• Invita a Reportero al Calendario / Evento• Comprueba que el reportero acepta el trabajo

Reportero / Fotógrafo• Acepta o no el Evento• Sube su trabajo al repositorio• Avisa a redacción de su terminación.

Page 17: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Como se hizo: Creando los servicios

Integraciones con arquitectura Chakray

Después Creamos un Web Service para cada necesidad

Con el Developer Studio de WSO2 en Eclipse, y valiéndonos de las Google Calendar & Drive APIs creamos unos AXIS2 webservices de las operaciones necesarias.

Page 18: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Como se hizo: Implementando los servicios.

Integraciones con arquitectura Chakray

Expusimos los servicios en WSO2

Instalamos WSO2 Application Server y le implementamos los servicios Axis2 creados

Page 19: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Como se hizo: La integración con Bonita BPM

Integraciones con arquitectura Chakray

Finalmente asignamos estos servicios a tareas del modelo

Por último, utilizando el conector de Bonita para “WebService SOAP 1.2”, realizamos las conexiones correspondientes entre las tareas y los WebServices.

Page 20: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Como se hizo: Configurando la monitorización.

Integraciones con arquitectura Chakray

Activamos la publicación de Datos de Servicios desde WSO2 AS

Antes instalamos WSO2 BAM Business Activity Monitor para lanzar al repositorio Cassandra del BAM server la actividad de los servicios usados.

Page 21: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Como se hizo: Configurando la monitorización.

Integraciones con arquitectura Chakray

En el Servidor BAM instalamos las herramientas de monitoreo de estadísticas

Las BAM “Service Stats Monitoring Toolbox” son unas herramientas de WSO2 para la monitorización de actividades y existen para BAM, ESB, AS, DSS y BRS.

Page 22: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Como se hizo: Business Activity Server DashBoard.

Integraciones con arquitectura Chakray

Gráficos de monitorización pueden verse en el BAM Dashboard

El Dashboard puede personalizarse con diferentes gadgets y aparte pueden generarse informes como veremos en la siguiente slide.

Page 23: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Como se hizo: Business Activity Server Reports.

Integraciones con arquitectura Chakray

Además podemos realizar informes sobre los datos monitorizados

El Business Activity Monitor Server tiene una serie de herramientas para crear informes de los datos adquiridos de forma sencilla y exportables a Pdf, html, etc.

Page 24: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Integraciones con arquitectura Chakray

¿Que podemos mejorar?

Bueno, el límite es el cielo, pero aquí van algunas ideas:

-Integrar esta solución con WSO2 Identity Server, nos resolvería toda la temática de autenticacíon entre aplicativos y roles de usuarios.

-Probablemente Nuxeo, Alfresco o Documentum, sean repositorios mas apropiados para esta solución que Google Drive.

- En un contexto real, se necesitarían opciones que permitan la cancelación del proceso por el Redactor o el Jefe de Fotografía.

- Aplicar seguridad a todos los WS, seguridad, seguridad y seguridad.

- Para asignar eventos con racionalidad se pueden aplicar ciertas reglas de negocio en WSO2 Business Rules Server.

- Se podrían calcular los tiempos de desplazamiento entre eventos (tenemos la localización) para no darle a un reportero dos eventos con 10 minutos entre ellos y a 100Km de distancia.

- Si utilizamos la integración de Liferay Portal, BonitaLife, el uso del portal nos dará mas comodidad en el manejo de las tareas.

- y a si 1000 mas.

Page 25: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Integraciones con arquitectura Chakray

¿Que podemos concluir?

Como dice un amigo, “depende”, pero aquí van algunas conclusiones:

-Hemos construido una solución compleja a base de herramientas totalmente open source. Ojo, nuestra vida sería mas fácil si por ejemplo usamos la versión de subscripción de Bonita, que tiene mejoras sustanciales.

-Nos encontramos con una infraestructura totalmente escalable, desacoplada, que podemos convertir en tolerante a fallos y crecer sin límites.

-Tenemos Monitorización de los servicios, con lo que esto significa.

- No hemos tenido que “matarnos” a programar, solo hemos hecho 8 sencillos servicios, bien ¿eh?

- Modificar o extender el proceso, solo implica modificar el diagrama. En el peor de los casos modificaremos o añadiremos algún servicio.

- Para aplicar seguridad, no tenemos que modificar nada, WSO2 se encarga de todo.

- Si tenemos que cambiar alguna de las herramientas, solo tendremos que cambiar los servicios afectados, no hay que tirar la solución a la basura. Esto es SOA.

- y tú, ¿Qué concluyes?

Page 26: Integracion google calendar-drive-wso2_bonita_bonita_life_liferay

Integraciones con arquitectura Chakray

Gracias por su atención ------------------

Thanks for your attention

Doing the right thingsWith the right technology

To support business

Haciendo las cosas correctasCon las tecnologías adecuadas

Para apoyar a las empresas