Altova FlowForce Server 2023 Advanced Edition

Los trabajos de FlowForce Server se pueden exponer como servicios web, lo cual permite acceder a ellos mediante programación. No obstante, durante la fase de pruebas y de depuración también puede invocar estos trabajos desde un explorador web.

 

Para exponer un trabajo como servicio web

Para configurar un trabajo como servicio web siga estos pasos:

 

1.Primero cree un trabajo nuevo o abra uno de los trabajos actuales.

2.Marque al casilla Permitir acceso a este trabajo por HTTP en la dirección URL.

fs_play_web_service

3.En el cuadro de texto escriba el nombre del servicio web.

 

Los trabajos expuestos como servicios continúan activos mientras FlowForce Server siga ejecutándose.

 

Nota:si configura el campo Nombre de host de FlowForce Server desde la página de configuración puede ejecutar la llamada al servicio web directamente desde la página de configuración del trabajo. Para ello haga clic en el botón fs_ic_call_ws que hay junto a la casilla Permitir acceso a este trabajo por HTTP. Este botón solo se habilita si configura este campo Nombre de host. Si no lo ha hecho, puede llamar al servicio web escribiendo la URL manualmente en la barra de dirección.

 

Resultados posibles

Cuando se invoca el servicio, FlowForce Server ejecuta los pasos de ejecución del trabajo especificados y devuelve:

 

El primer archivo de resultados del último paso (si el trabajo produce un archivo de resultados) o

El resultado estándar del último paso, si no se genera ningún archivo de resultados (esto puede pasar cuando se trabaja con la salida de la línea de comandos).

 

Si el resultado es válido, se devuelve con el estado HTTP 200 y con un encabezado Content-Type configurado de acuerdo con el resultado. El encabezado Content-Type depende del resultado actual. Una asignación de datos de MapForce da como resultado text/xml si el resultado es XML o text/plain si el resultado es texto. El resultado estándar de otras funciones también se devuelve como text/plain. El resultado se devuelve como cuerpo de respuesta, sin adornos.

 

Los errores de ejecución se notifican con el estado HTTP 5xx y con un mensaje de error genérico, pero si necesita más información puede consultar el registro de FlowForce Server.

 

Si quiere consultar un ejemplo con instrucciones para configurar este tipo de trabajos, consulte el apartado Exponer un trabajo como servicio web.

 

FlowForce se puede configurar para que devuelva un resultado antes de que se ejecuten todos los trabajos. Esta opción es particularmente útil si el trabajo que se invoca como servicio necesita mucho tiempo. El emisor de la llamada puede tratar el resultado temprano como una confirmación de que FlowForce ha aceptado la tarea para su procesamiento. Para más detalles consulte Pasos aplazados.

 

Ver los servicios web actuales

Para ver todos los servicios web de FlowForce Server que están en ejecución tiene dos opciones:

 

En la interfaz administrativa web de FlowForce vaya a Inicio y haga clic en Mostrar todos los desencadenadores y servicios activos. Consulte también Desencadenadores y servicios activos.

Abra el explorador web y escriba esta URL en la barra de dirección: http://[FlowForceServer][PuertoDelServidor]/servicio/*

 

En la URL anterior [FlowForceServer] y [PuertoDelServidor] hacen referencia a la dirección de red y al puerto donde se está ejecutando FlowForce Server. FlowForce Server se ejecuta por defecto en http://localhost:4646 (si se accede desde el mismo equipo). El nombre y el puerto del servidor son los definidos en la página de administración (véase Definir la dirección de red y el puerto).

 

Parámetros de un servicio web

Cuando se expone un trabajo como servicio web, todos los parámetros del trabajo se convierten automáticamente en parámetros del servicio. Si un parámetro del trabajo no tiene un valor predeterminado, entonces es obligatorio suministrarlo cuando se invoque el servicio. Los parámetros opcionales toman el valor predeterminado, si su valor no se indica en la solicitud.

 

Cuando se invoca el servicio, FlowForce Server verifica los parámetros suministrados en la solicitud y los compara con los parámetros definidos en el trabajo. Si hay alguna discrepancia, FlowForce Server devuelve el estado HTTP 5xx. En este caso FlowForce Server también muestra un formulario de parámetros HTML, para las tareas de depuración y pruebas. Este formulario HTML se puede utilizar para introducir parámetros a mano en las tareas de depuración y pruebas. Por cada parámetro de tipo Secuencia, en la página aparece un botón Examinar, que puede utilizar para cargar el archivo que sea necesario como parámetro.

 

Para ver el formulario HTML de pruebas sin condiciones, suministre el parámetro integrado showform en la solicitud (con cualquier valor).

 

Para llamar a un servicio web de FlowForce con parámetros un cliente puede usar una de estas opciones:

 

1.En el caso de parámetros de tipo simple como cadenas de texto o números, un cliente puede enviarlos en la URL de una solicitud GET o POST. Para ver un ejemplo consulte el apartado Exponer un trabajo como servicio web.

2.En el caso de solicitudes POST, un cliente también puede proporcionar parámetros como multipart/form-data o como application/x-www-form-urlencoded. Si el parámetro es de tipo "secuencia" en FlowForce, entonces el cliente debe proporcionarlos (y FlowForce los espera) como multipart/form-data. Para este tipo de parámetros el formulario HTML de prueba muestra un botón Examinar junto al parámetro correspondiente, como se menciona más arriba.

3.La llamada al cliente también puede incluir contenido arbitrario en el cuerpo de la solicitud POST (esto hace referencia concreta a contenido como JSON o XML enviado no como parámetro sino como el cuerpo de la solicitud HTTP). Para que esto sea posible el trabajo FlowForce debe contener un único parámetro de tipo secuencia. Si necesita más parámetros que no sean secuencia debe suministrarlos con la la URL POST. En FlowForce solo se puede definir un parámetro de tipo secuencia; el resto de parámetros deben ser de otro tipo. Si se cumplen estas condiciones el cuerpo de la solicitud se tratará como datos para el parámetro secuencia. No es necesario configurar nada más. Para ver un ejemplo consulte el apartado Enviar JSON a un servicio web de FlowForce.

 

Autenticación de servicios web

FlowForce Server usa por defecto una autenticación HTTP básica para identificar a los clientes que llaman a un servicio web. Las credenciales de usuario se comparan con los datos disponibles en la BD de usuarios de FlowForce Server (es decir, el nombre de usuario y la contraseña utilizados para iniciar sesión en la interfaz de administración web de FlowForce Server).

ff_login_04

Si quiere que un servicio web esté disponible a usuarios sin credenciales, basta con conceder el permiso Usar servicio al usuario predeterminado useranonymous (véase ¿Cómo funcionan los permisos?). A pesar de que el servicio se pueda usar de forma anónima, puede suministrar credenciales HTTP. Las credenciales se comparan con los datos disponibles en la BD de usuarios de FlowForce Server y la ejecución del servicio se atribuye al usuario autenticado en lugar de al usuario anonymous.

 

Si se aportan credenciales no válidas, la interfaz de solicitud devuelve el estado HTTP 401. Si no aportó ninguna credencial y no concedió el permiso Usar servicio al usuario anonymous para este servicio, la interfaz de solicitud también devuelve el estado HTTP 401.

 

Si se aportan credenciales válidas, pero el usuario autenticado no tiene el permiso Usar servicio para este servicio, la interfaz de solicitud devuelve un estado de error HTTP 4xx. Si intenta acceder a un servicio que no existe, también se devuelve un estado de error HTTP 4xx.

 

Además de la autenticación HTTP básica, puede configurar la autenticación con un dominio (véase Cambiar la configuración de los servicios de directorio). Una vez configurada la autenticación con dominio, los usuarios podrán acceder a los servicios web expuestos por FlowForce Server siempre y cuando aporten un nombre de usuario y una contraseña válidos del correspondiente dominio. Además, es importante saber que, en el caso de Active Directory, el nombre de usuario debe incluir el prefijo NT/ y el nombre de dominio (p. ej. NT/john.doe@my.domain.com).

ff_login_03

 

Configuración de la fila de trabajos

La ejecución del servicio tiene el mismo comportamiento que la ejecución por medio de desencadenadores y tiene las mismas limitaciones en cuanto a filas de ejecución (véase Configurar filas de trabajos).

 

Configurar el tamaño máximo del cuerpo de las solicitudes HTTP

En FlowForce Server existe un límite predeterminado que determina el tamaño máximo del cuerpo de las solicitudes HTTP, que es de unos 100 MB. Cuando el emisor de la llamada realiza solicitudes HTTP a los trabajos de FlowForce expuestos como servicios web y el cuerpo de alguna solicitud supera este límite, FlowForce Server devuelve un mensaje de error parecido a este:

 

La entidad enviada con la solicitud supera los bytes máximos permitidos.

 

Para aceptar solicitudes mayores:

 

1.Abra el archivo flowforce.ini en un editor de texto.

2.Añada la opción max_request_body_size a la sección [Listen] o [ListenSSL] y configure el número máximo de bytes que se permiten.

 

Por ejemplo, si quiere permitir un máximo de 500 MB este es el aspecto que tendría su archivo flowforce.ini:

 

[Listen]
active=1
host=0.0.0.0
port=4646
hostname=somehost.example.org
max_request_body_size=500000000

 

Para más información sobre el archivo .ini consulte Referencia de archivos de configuración.

 

Reconfigurar grupos de hilos en FlowForce Server

Si espera un alto número de solicitudes de servicios HTTP en paralelo (por ejemplo, 20 o más al mismo tiempo) puede reconfigurar el archivo flowforce.ini para que admita un número algo más elevado de grupos de hilos.

 

1.Abra el archivo flowforce.ini en un editor de texto.

2.Agregue la opción thread_pool a la sección [Listen] o [ListenSSL] del archivo .ini y configúrelo en un valor mayor que 20.

3.Reinicie el servicio.

 

Nota:es buena idea tener dos secciones [Listen] separadas, una para FlowForce Server (que no requiere tantos grupos de hilos) y la otra para el resto de solicitudes (de preferencia en un puerto distinto). De lo contrario, el servidor web de FlowForce estaría compitiendo con el resto de solicitudes HTTP para grupos de hilos.

© 2017-2023 Altova GmbH