Uso del correo electrónico para iniciar un proceso BPEL

El servicio de notificación en Oracle BPEL Process Manager te permite enviar una notificación por correo electrónico (así como mensajes de voz, fax, buscapersonas o SMS) desde un proceso BPEL.

Sin embargo, otro requisito es ser capaz de utilizar la recepción de un correo electrónico a iniciar un proceso BPEL. Este es el tema de este blog, muchas gracias a Muruga Chinnananchi en cuyo original se basa este ejemplo.

Esencialmente queremos crear un EMailActivation proceso simple que recibe un correo electrónico enviado a una dirección de correo electrónico en particular. Para ello hay dos pasos básicos:
  1. Configuración del servidor de BPEL para poder conectarse a la cuenta de correo.
  2. Definir el proceso BPEL que se iniciará a la recepción de un correo electrónico.

Nota: Descarga ejemplo de trabajo.

Configurar cuenta de correo electrónico

Para configurar la cuenta de correo electrónico que el servidor debe conectarse a BPEL, tenemos que colocar un archivo de configuración xml MailAccount (en nuestro ejemplo BpelMailAccount.xml) en el directorio siguiente:

\ BPEL \ domains \ \ default metadatos \ MailService

Nota: Usted tendrá que crear los metadatos y directorios MailService.

El archivo en sí mismo puede tener cualquier nombre (aunque debe terminar con. xml) como se puede definir de varias cuentas. Sin embargo tome nota del nombre ya que se necesita para enlazar su BPEL Process para la cuenta de correo real.

Aquí está nuestro archivo de ejemplo:



El servicio SMTP saliente no tiene que estar configurado (como usar el servicio de notificación para enviar sus correos salientes ). Sin embargo la cuenta entrante está definido por las siguientes etiquetas:


[protocolo POP3 o IMAP]
imap [o servidor POP3]
imap [o pop3 cuenta]
imap [o pop3 contraseña]
[sólo IMAP, la carpeta Bandeja de entrada]


Nota: la hora de definir el nombre de cuenta, tener cuidado de no utilización efectiva del nombre de la cuenta de la dirección de correo electrónico, ya que no son siempre los mismos.

Proceso de Creación de BPEL

El primer paso es usar JDeveloper para crear un proceso asincrónico iniciado por un mensaje de solicitud con una carga útil que contiene un elemento de tipo MailMessage (definido en el Correo . xsd instalado como parte de BPEL PM).

Para ello utiliza el Proyecto de Creación de BPEL asistente para crear un proceso BPEL de la forma habitual. Después de introducir el nombre del proceso y se indique la plantilla de proceso que se asincrónica, seleccione "Siguiente".

Esto le llevará al siguiente paso del asistente donde se especifica la entrada y salida de esquemas elementos, haga clic en la luz del flash para el esquema de entrada y seleccione Mail.xsd (ubicado en \ BPEL \ xmllib \ system) como se muestra en la figura 1 a continuación.


Figura 1 - Especificar de entrada y salida de elementos


Esta se abrirá la ventana de selector de tipo para seleccionar el elemento a utilizar en el esquema importado. Seleccione el elemento MailMessage como se muestra en la figura 2.


Figura 2 - Tipo de Selector


Una vez que el proceso se ha creado puede eliminar la actividad callBackClient ya que no lo necesitarán.

Común de importación de esquema

Si ahora tratar de compilar el proceso, usted encontrará que falla con un mensaje de error. Así es porque el propio Mail.xsd importa un esquema (common.xsd), por lo que es necesario importar este esquema también.

Para importar el esquema de correo en su BPEL Process, garantizar la vista del diagrama de su proceso de BPEL es abierto y seleccionado en JDeveloper. Luego, dentro de la estructura de ventana de BPEL, haga clic derecho en el nodo del proyecto de esquemas y seleccione "esquemas de importación" (como se muestra en la figura 3).


Figura 3 - Esquema de Importación


Nota: Una vez importada, actualice manualmente el archivo WSDL para garantizar las declaraciones de importación, tanto para el Mail.xsd y common.xsd están contenidas dentro de la misma elemento o todavía no podrá compilar. Ver blog anterior - Uso de esquemas anidados con BPEL para más detalles.

Mail Definir activación Agente

El proceso en sí ya está listo para su despliegue. Sin embargo nos falta para completar una actividad final, que consiste en atar el proceso BPEL a un agente de la activación de la cuenta de correo electrónico que hemos definido anteriormente.

El Agente de activación sondea al buzón de correo electrónico definido para mensajes de correo electrónico y luego por cada email que recibe invocar una instancia del proceso de manejarlo.

Para ello es necesario agregar la siguiente definición para el archivo bpel.xml, después de la elemento:


className ="com.collaxa.cube.activation.mail.MailActivationAgent"
heartBeatInterval ="60" >
name ="AccountName"> BpelMailAccount



Cuando heartBeatInterval es la frecuencia con que queremos para sondear la cuenta de correo electrónico de nuevos correos electrónicos, y la AccountName corresponde al nombre de la cuenta de configuración archivo que definimos anteriormente.

Por último implementar el proceso y enviar un correo electrónico a la cuenta correspondiente.

Gotcha! - Si modifica el proceso BPEL en JDeveloper, el archivo puede perder su bpel.xml cambios (es decir, la definición activationAgent), y como un resultado, el proceso nunca conseguirá inició - por lo que siempre compruebe el archivo bpel.xml se define correctamente antes de implementar el proceso.

Servidor de correo

Para hacer más fácil las pruebas, he instalado mi propio servidor de correo local. Para esto he utilizado James (que es un código abierto de Java Servidor de correo de Apache).

Instalación de James es muy sencillo simplemente descargarlo y descomprimirlo en una ubicación adecuada. Para iniciarlo, utilice la secuencia de comandos o run.bat run.sh, dependiendo de su sistema operativo en el james-2.3 .0/bin directorio.

Para configurar James acaba de llegar a una sesión de telnet (en el puerto 4555) para que aparezca la herramienta de administración remota desde la que puede crear las cuentas necesarias. Por ejemplo, para crear las cuentas de BPEL y jsmith (donde la contraseña es Welcome1) escriba lo siguiente:

JAMES remoto Herramienta de administración 2.3.0
Por favor, introduzca su nombre de usuario y contraseña
Login ID:
raíz
Contraseña:
raíz
Bienvenido raíz. AYUDA para obtener una lista de comandos
adduser Welcome1 BPEL
BPEL usuario añadido
adduser jsmith Welcome1
jsmith usuario añadido
listusers
existentes 2 cuentas
de usuario: BPEL
usuario: jsmith
salir
Bye

No hay comentarios:

Publicar un comentario