Ejemplo: intercambio completo de mensajes AS2 (Simple)
Este ejemplo muestra cómo configurar en FlowForce un intercambio completo de mensajes AS2 entre dos socios AS2. En el caso que nos ocupa, tanto el socio AS2 emisor como el socio AS2 receptor son instancias de FlowForce Server.
Llamemos al socio emisor "Hermes" y al receptor "Apollo". Observe que Hermes se ejecuta en CentOs y Apollo en Windows (este detalle es importante únicamente para la configuración de rutas y del servidor de seguridad, como se muestra en la imagen siguiente). Lo que pretendemos con este ejemplo es lo siguiente:
•el servidor emisor (Hermes) debe enviar con éxito un mensaje AS2 al servidor AS2 receptor (Apollo).
•el servidor receptor (Apollo) debe procesar con éxito el mensaje entrante y guardarlo de forma local.
Este ejemplo ilustra el escenario de comunicación más sencillo posible entre dos socios AS2 (la primera combinación de doce posibles, conforme a la sección 2.4.2 del RFC 4130), que básicamente es la siguiente:
•el emisor envía datos AS2 sin cifrar
•el emisor envía datos AS2 sin firmar
•el emisor no necesita que se le envié una MDN como respuesta al mensaje
Otros supuestos:
•Apollo y Hermes se ejectuan los dos en una red privada loca.
•el servidor receptor AS2 (Apollo) acepta solicitudes HTTP de clientes sin autenticas (es decir que el servicio AS2 es de acceso público).
Requisitos previos
•FlowForce Server Advanced Edition tiene que estar instalado y tener una licencia asignada tanto en el equipo de Apollo como en el de Hermes.
•en los servidores Apollo y Hermes, la interfaz de administración de FlowForce Web debe estar instalada y ejecutándose, y el host y el puerto deben estar configurados (por ejemplo, http://apollo:8082 y http://hermes:8082, si los respectivos nombres de host son "apollo" y "hermes"). Consulte también Definir la configuración de red.
Configurar el servidor AS2 emisor ("Hermes")
1.Inicie sesión en la interfaz de administración de FlowForce Web y cree un nuevo socio AS2 llamado "APOLLO" (consulte también Configurar socios AS2). Este socio identifica al servidor que recibe los mensajes AS2. Como en este ejemplo simple no son necesarios cifrado, firmani MDN, estas son las únicas opciones del socio que se deben configurar:
Como se muestra en la imagen anterior, el nombre del socio AS2 que se usa para la comunicación AS2 es "Apollo" y el objeto socio almacenado en FlowForce Server es "APOLLO". El valor "URI de solicitud" asume que el nombre del host del socio también es "apollo". Si el nombre de host es distinto, ajuste la URI en consonancia. El servicio al que hace referencia esa URI se puede configurar más adelante.
2.Cree un nuevo trabajo que envíe un mensaje AS2.
a) En el contenedor public, haga clic en Crear | Crear tranajo.
Introduzca un nombre para el trabajo (por ejemplo, "send-as2") y, si quiere, una descripción.
b) Haga clic en desencadenador de archivos nuevo y configúrelo como en la imagen siguiente. Si el directorio /home/altova/as2/outgoing no existe en el equipo Hermes, créelo.
Cuando añada el desencadenador se añadirá automáticamente al trabajo un parámetro llamado triggerfile. Este parámetro representa el nombre del archivo que desencadenará automáticamente este trabajo cada vez que copie un archivo a /home/altova/as2/outgoing. Para más información, consulte Desencadenadores de sistema de archivos.
c) Añada un paso de ejecución que envíe un archivo EDI desde la ruta local previamente definida para el socio AS2. Para más información sobre este paso, consulte Enviar mensajes AS2.
d) Por último, añada las credenciales de la cuenta de usuario del equipo local (por lo general, el nombre de usuario y la contraseña que usa para acceder a dicho equipo). Recuerde que estas credenciales no son las mismas que necesita para acceder a la interfaz de administración de FlowForce Web. Para más información, consulte el apartado Credenciales.
e) Haga clic en Guardar. Ahora el trabajo debería aparecer en la página de inicio de FlowForce Server, bajo "Desencadenadores activos".
Configurar el servidor AS2 receptor ("Apollo")
1.Configure FlowForce Server para que acepte conexiones de clientes AS2 en la URL indicada. En este ejemplo, los clientes AS2 se conectan a Apollo simplemente a través de HTTP en el puerto predeterminado 4646, por lo que la página de configuración debería tener las siguientes opciones (véase también Definir la configuración de red):
2.Asegúrese de que FlowForce Server puede comunicarse a través del servidor de seguridad del sistema operativo. En este ejemplo, como el servidor FlowForce Server "Apollo" se ejecuta en Windows, tiene que poder comunicarse a través de Windows Defender Firewall.
3.Cree un nuevo contenedor en FlowForce Server y llámelo "as2service". (En FlowForce los permisos se otorgan a nivel de contenedor, por lo que es recomendable crear un contenedor aparte para el trabajo que recibirá los mensajes AS2. De esta manera podrá otorgar permisos específicos para AS2 únicamente para ese contenedor, sin que esto afecte a los permisos aplicables a otros trabajos de FlowForce ya existentes).
4.Abra el contenedor "as2service" previamente definido y cree el socio emisor, Hermes, como se muestra a continuación. El valor "URI de solicitud" asume que el nombre del host del socio también es "hermes". Si el nombre de host es distinto, ajuste la URI en consonancia.
Asegúrese de que la Configuración de interoperabilidad es la misma en los dos servidores, por ejemplo:
5.Abra el contenedor "as2service" previamente definido y cree un nuevo trabajo. El objetivo de este trabajo es exponer un servicio AS2 que atienda solicitudes AS2. Cuando se recibe un nuevo mensaje, este trabajo lo copia a una carpeta temporal.
a) Seleccione la casilla Permitir acceso a este trabajo por HTTP en... e introduzca un nombre para el servicio AS2 (en este ejemplo, "as2-receiver").
b) Seleccione la opción Servicio AS2 de la lista desplegable, como se muestra en la imagen anterior. Con esto se añadirán dos parámetros de entrada al trabajo: partner y message. Estos parámetros se pueden usar para procesar y almacenar información sobre el socio emisor y el mensaje. En este ejemplo solo almacenaremos el mensaje, como puede ver en la imagen siguiente.
c) Añada un paso de ejecución que copie el mensaje recibido a una ruta local. Las expresiones de FlowForce Server de la imagen siguiente convierten el mensaje en un archivo cuyo nombre forman en base al campo de encabezado Message-ID. Para leer una explicación más detallada sobre estas expresiones, consulte Recibir mensajes AS2.
Asegúrese de que existe el directorio C:\as2\incoming, que es donde se guardarán la comunicación AS2 recibida.
d) Por último, añada las credenciales de la cuenta de usuario del equipo local (por lo general, el nombre de usuario y la contraseña que usa para acceder a dicho equipo). Recuerde que estas credenciales no son las mismas que necesita para acceder a la interfaz de administración de FlowForce Web. Para más información, consulte el apartado Credenciales.
6.Vaya al contenedor public / as2service y haga clic en Permisos. Haga clic en Agregar permisos y asigne el permiso "Uso" al usuario anonymous en el contenedor "as2service".
Los permisos del contenedor ahora son los siguientes:
Ahora el servicio AS2 es público y cualquier usuario sin autenticación puede acceder a él y consumirlo.
Enviar el mensaje AS2
En el equipo Hermes, copie un archivo .edi al directorio previamente configurado /home/altova/as2/outgoing. Cuando transcurre el intervalo de sondeo (60 segundos por defecto) se ejecuta el desencadenador y el trabajo envía el archivo al servicio AS2 del equipo Apollo.
Para ver el resultado del trabajo, consulte el registro de FlowForce Server (véase Ver el registro de trabajos). Si el trabajo falla se indicará el motivo en el registro. Existen varias razones por las que podría fallar un trabajo, entre otras:
•la ruta al archivo EDI de Hermes es incorrecta
•las credenciales del sistema operativo de Hermes especificadas en el trabajo son incorrectas
•el servicio de Apollo http://apollo:4646/service/as2-receiver no está disponible porque el servidor de seguridad del equipo Apollo lo está bloqueando
•los permisos del contenedor de FlowForce Server para el servicio http://apollo:4646/service/as2-receiver prohíben acceso anónimo (es decir, los clientes no pueden acceder al servicio AS2)
•el parámetro "URI de solicitud" del socio Apollo es incorrecto (en uno de los dos equipos o en ambos)
•los parámetros de la configuración de interoperabilidad no están bien configurados para el socio Hermes en el equipo Apollo.
Si no falla, el trabajo receptor en el equipo Apollo procesa el mensaje entrante y crea un nuevo archivo en la siguiente ruta: C:\as2\incoming.