Exponer un trabajo como servicio web

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Ejemplos de trabajos >

Exponer un trabajo como servicio web

Con este ejemplo aprenderá a exponer un trabajo de asignación de datos como servicio web. La asignación del ejemplo se diseñó con MapForce y lee datos de una base de datos de Microsoft Access que contiene una lista de registros personales. La asignación recupera de la base de datos solamente los registros cuyo apellido empieza por una letra determinada (dada en forma de parámetro). En este apartado aprenderá a implementar la asignación en FlowForce Server desde MapForce (en el mismo equipo o en otro distinto) y a convertirlo en un servicio web. Cuando termine podrá invocar al servicio web desde un explorador.

 

Requisitos

Licencias necesarias: MapForce Enterprise o MapForce Professional, MapForce Server o MapForce Server Advanced Edition y FlowForce Server.
FlowForce Server debe ejecutarse en la dirección y en el puerto de red configurados (véase Definir la dirección de red y el puerto).
Debe tener una cuenta de usuario de FlowForce Server con permisos para uno de los contenedores (en este ejemplo se usa el contenedor /public porque está automáticamente abierto a todos los usuarios autenticados).
La asignación que se utiliza en este ejemplo lee datos de una base de datos de Microsoft Access. Por eso es necesario tener instalado Microsoft Access o Microsoft Access Runtime (https://www.microsoft.com/es-es/download/details.aspx?id=50040) en el equipo donde se ejecuta FlowForce Server.

 

Archivos de ejemplo utilizados

Para el ejemplo se usan los archivos que aparecen a continuación, disponibles en la carpeta ..\Documentos\Altova\MapForce2019\MapForceExamples del equipo donde está instalado MapForce.

 

DB_PhoneList.mfd (el archivo de diseño de asignación de datos de MapForce)
altova.mdb (la base de datos de Microsoft Access de la que lee datos la asignación).

 

Preparar la asignación para implementarla en otro equipo

Como esta asignación lee datos de un archivo de base de datos, antes de poder implementar la asignación debemos ajustar la configuración del diseño. Si  MapForce y FlowForce Server están instalados en el mismo equipo, puede saltarse este apartado y pasar directamente al apartado Implementar la asignación.

 

Nota:el término equipo de origen se refiere al equipo donde está instalado MapForce, mientras que el término equipo de destino se refiere al equipo donde está instalado FlowForce Server.

 

Antes de intentar implementar la asignación en el equipo de destino debe seguir estas instrucciones:

 

1.En el equipo de destino debe configurar el servicio "FlowForce Web Server" para que escuche en todas las interfaces o en una dirección IP concreta distinta a la dirección de host local (véase Definir la configuración de red). Para comprobar si el servicio está configurado correctamente basta con ir a esta URL: http://<ServidorWeb FlowForce Server><puerto>. Compruebe que el servidor de seguridad no bloquea las conexiones entrantes a la dirección y al puerto indicados.
2.El trabajo creado debe estar disponible en forma de servicio web. En FlowForce todas las solicitudes a trabajos que estén expuestos como servicios web son responsabilidad del servicio "FlowForce Server" (y no del servicio "FlowForce Web Server", tal y como se explica en el apartado Funcionamiento). Por tanto, si desea que se pueda acceder al servicio web desde clientes HTTP situados fuera del host local, deberá configurar el servicio "FlowForce Server" para que escuche en otras interfaces o en una dirección IP concreta distinta a la dirección de host local. Para comprobar si el servicio está configurado correctamente basta con ir a esta URL: http://<Servidor FlowForce><puerto>/servicio/ . Todos los trabajos que estén expuestos como servicios web deberían aparecer en la ventana del explorador (en forma de enlaces).

 

Antes de implementar la asignación deberá configurarla para que use rutas de acceso relativas en lugar de rutas de acceso absolutas:

 

1.Abra la asignación DB_PhoneList.mfd en MapForce, haga clic con el botón derecho en el área de asignación y seleccione Configurar asignación en el menú contextual.
2.Desactive la casilla Convertir las rutas de acceso en absolutas en el código generado.

fs_ws_job_02

3.Haga clic en Aceptar y guarde la asignación.

 

Las bases de datos basadas en archivos como Microsoft Access o SQLite no se implementan en el equipo de destino junto con la asignación. Por tanto, la base de datos de Access debe copiarse a mano del equipo local al equipo de destino. Copie el archivo de base de datos altova.mdb del directorio ..\Documents\Altova\MapForce2019\MapForceExamples del equipo local a un directorio vacío del equipo de destino. En este ejemplo usamos el directorio de destino "C:\FlowForceDirTrabajo". Se trata del directorio al que haremos referencia desde el trabajo de FlowForce.

 

La asignación ya está lista y se puede implementar en FlowForce Server. Para más información sobre la implementación de asignaciones que incluyan conexiones a bases de datos puede consultar Preparar asignaciones para su ejecución en servidor.

 

Implementar la asignación

1.Abra el archivo DB_PhoneList.mfd en MapForce.
2.Haga clic en el comando de menú Archivo | Implementar en FlowForce Server (se entiende que la asignación se implementa en la ruta de acceso predeterminada, es decir, el contenedor /public). Si la asignación se está implementado en un equipo distinto, cambie la dirección del servidor y el puerto "localhost:8082" por la dirección y el puerto que se configuraron en FlowForce Server (ver apartado anterior).

fs_ws_job_01

 

Crear el trabajo de FlowForce

La asignación ya está implementada en FlowForce Server y la página de configuración de trabajos está abierta en el explorador (asumiendo que se marcara la casilla Abrir el explorador web para crear un trabajo nuevo en el cuadro de diálogo "Implementar asignación"). De lo contrario, inicie sesión en la interfaz de administración web de FlowForce Server, abra la función de asignación que acaba de implementar (que debería estar en el contenedor /public) y después haga clic en Crear trabajo.

 

Para configurar el trabajo:

1.En la sección Parámetros de entrada del trabajo debe crear un parámetro de entrada nuevo de tipo cadena de texto llamado NamePrefix.

ExampleWebService1

2.En la sección Pasos de ejecución, junto a NamePrefix, haga clic en Establecer valor y después seleccione NamePrefix. Esto define el valor del parámetro de asignación NamePrefix como el valor del parámetro de entrada NamePrefix que se creó en el paso anterior.
3.Junto a Working-directory introduzca "C:\FlowForceDirTrabajo" (es decir, el directorio en el que se copió el archivo de Microsoft Access).

fs_ws_job_03

4.En la sección Servicio marque la casilla Permitir acceso a este trabajo por HTTP en la dirección URL y después introduzca el nombre de servicio "ObtenerListaTeléfonos".

ExampleWebService3

5.En la sección Credencial seleccione un registro de credencial o especifique una credencial local (véase Credenciales).

 

Un registro de credencial es la combinación del nombre de usuario y la contraseña asociados a la cuenta de usuario del sistema operativo donde se debe ejecutar el trabajo de FlowForce Server. Por tanto, al definir un trabajo en FlowForce Server deberá dar las credenciales con las que se debe ejecutar el trabajo. Recuerde que si la cuenta de usuario asociada a las credenciales dadas no tiene suficientes permisos en el sistema operativo, el trabajo no se ejecutará correctamente.

fs_deploy_mapping_05

Nota:no se deben confundir estas credenciales con las que se usan para acceder a la interfaz de administración web de FlowForce Server. Además, debe asegurarse de que el usuario que se introduce aquí puede acceder al archivo de base de datos altova.mdb del directorio de trabajo. De lo contrario el trabajo no se ejecutará correctamente.

 

6.Haga clic en Guardar.

 

Invocar al servicio web

Ahora puede invocar al servicio web que acaba de crear. Esto se hace de la siguiente manera:

 

1.Abra un explorador web y teclee esta dirección URL en la barra de direcciones (reemplace [FlowForceServer] y [Puerto] por la configuración definida en la página de administración):

 

https://[FlowForceServer]:[Puerto]/service/ObtenerListaTeléfonos

 

Si utiliza Internet Explorer para probar trabajos de FlowForce Server expuestos como servicios web puede que necesite deshabilitar la opción Mostrar mensajes de error HTTP descriptivos en la pestaña de opciones avanzadas de IE.

 

2.Cuando el servicio solicite credenciales, deberá introducir las que utiliza para acceder a la interfaz de administración web de FlowForce Server.
3.Cuando el servicio solicite los parámetros del servicio web, introduzca cualquier letra. Por ejemplo, si introduce F podrá recuperar todas las personas cuyo apellido empiece por esa letra.

ExampleWebService4

4.Haga clic en Submit y FlowForce Server procesará el trabajo y devolverá los resultados.

ExampleWebService5

Si el trabajo se ejecuta correctamente, el resultado del trabajo aparecerá en el explorador directamente (aunque también se genera en el directorio de trabajo definido previamente, es decir, C:\FlowForceDirTrabajo). Si se produce un error de ejecución, consulte el registro de trabajos para obtener más información (véase Ver el registro de trabajos).


© 2019 Altova GmbH