IBM® z/OS® Connect proporciona la posibilidad de transformar opcionalmente carga útiles de solicitudes y respuestas que se utilizan para llamar a un activo empresarial en los sistemas operativos z/OS. Puede crear transformadores de carga útil de mensajes para satisfacer las necesidades específicas implementando la interfaz de proveedor de servicios (SPI) com.ibm.wsspi.zos.connect.DataXform que se incluye con z/OS Connect.
Acerca de esta tarea
z/OS Connect proporciona una implementación que requiere que el mensaje de solicitud y respuesta esté en formato
JSON. Esta característica admite la conversión de la solicitud en una matriz de bytes, que se puede correlacionar mediante una estructura de lenguaje nativo
Cobol, PL/I o C. Esta estructura de lenguaje del programa de destino, o libro de copias, que incluye una descripción de los parámetros
in y out, se utiliza para generar un archivo de enlaces y archivos de esquema de solicitud y respuesta
JSON empleando un programa de utilidad que proporciona z/OS Connect. El archivo de enlaces que genera este programa de utilidad lo utiliza
z/OS Connect para completar la conversión de datos respecto a formatos de datos JSON y nativos a medida que llegan las solicitudes y se devuelven las respuestas. Puede recuperar los esquemas JSON para el mensaje de solicitud y respuesta con una llamada a la API REST que proporciona z/OS Connect.
z/OS Connect proporciona el elemento de configuración zosConnectService que permite que el administrador configure un conjunto de atributos que se aplican a un servicio determinado. Uno de estos atributos es dataXformRef, que apunta a una configuración de transformación de datos que debe utilizar un servicio específico. Esta tarea describe cómo solicitar que se utilice el transformador de datos suministrado por z/OS Connect.
- Defina un elemento zosConnectDataXform en el archivo server.xml.
<!-- Proveedor de transformación de datos de z/OS Connect -->
<zosConnectDataXform id="zosConnectXform"
bindFileLoc="/zosConnect/banking/bind/"
bindFileSuffix=".bnd"
requestSchemaLoc="/zosConnect/banking/reqSchema"
requestSchemaSuffix=".json"
responseSchemaLoc="/zosConnect/banking/respSchema"
responseSchemaSuffix=".json"/>
Utilizando este ejemplo, todas las definiciones de atributo relacionadas con la ubicación de archivo, como por ejemplo bindFileLoc, requestSchemaLoc y
responseSchemaLoc se especifican por razones de integridad. Sólo se requieren las definiciones de atributo
bindFileLoc y requestSchemaLoc. Si no se configura el atributo responseSchemaLoc, solo se utiliza el atributo
requestSchemaLoc.
Utilizando el mismo ejemplo, todas las definiciones de atributo relacionadas con sufijos, como por ejemplo <bindFileSuffix>, <requestSchemaSuffix> y
<responseSchemaSuffix>, se especifican por razones de integridad. Todas son opcionales.
Si no se especifican, no se esperará que los archivos de enlace y esquema que cargará z/OS Connect tengan un sufijo.
z/OS Connect espera que archivos relacionados con la transformación de datos tengan un formato específico basado en la configuración.
- Archivos de enlace: <nombre_servicio><sufijo_archivo_enlace>
- Archivos de esquema de solicitud:
<nombre_servicio>_request<sufijo_esquema_solicitud>
- Archivos de esquema de respuesta:
<nombre_servicio>_response<sufijo_esquema_solicitud>
Utilizando la siguiente configuración de ejemplo de
zosConnectService y la configuración de ejemplo
de
zosConnectDataXform anterior.
<!-- Definición de servicio de z/OS Connect -->
<zosConnectService id="zosConnectCustomer"
serviceName="customer"
serviceRef="wolaCustomerCreate"
dataXformRef="zosConnectXform"/>
El nombre de los archivos de transformación de datos es:
- Archivos de enlace: customer.bnd
- Archivos de esquema de solicitud: customer_request.json
- Archivos de esquema de respuesta: customer_response.json
Si desea más información sobre las definiciones de atributo configurables asociadas al elemento zosConnectDataXform, consulte la documentación para la característica z/OS Connect.
- Actualice el elemento zosConnectService para cada servicio en la configuración de
server.xml para el que desee habilitar la transformación de datos suministrados por
z/OS Connect.
<!-- Definición de servicio de z/OS Connect -->
<zosConnectService id="zosConnectCustomer"
serviceName="customer"
serviceRef="wolaCustomerCreate"
dataXformRef="zosConnectXform"/>
- Opcional: configure un transformador de datos que se aplique a todos los servicios. Defina el elemento globaDataXformRef de zosConnectManager en el ID del transformador de datos configurado que se va a utilizar de forma global. Si se definen los transformadores de datos global y de servicio y llegan solicitudes para un servicio con un transformador de datos configurado, z/OS Connect utilizará el transformador de datos configurado específicamente para el servicio.
<zosConnectManager id="zosConnectGlobalDefinitions
globalDataXformRef="zosConnectGlobalDataXform"/>
<!-- Proveedor de transformación de datos de z/OS Connect -->
<zosConnectDataXform id="globalDataXform"
bindFileLoc="/zosConnect/banking/bind/"
bindFileSuffix=".bnd"
requestSchemaLoc="/zosConnect/banking/reqSchema"
requestSchemaSuffix=".json"
responseSchemaLoc="/zosConnect/banking/respSchema"
responseSchemaSuffix=".json"/>
- Opcional: configure valores como por ejemplo pollingRate y
updateTrigger para ajustar las acciones de supervisión. De forma predeterminada se supervisan los directorios asociados con una definición de transformación de datos para ver si hay nuevos archivos y actualizaciones de archivos. Si desea más información sobre estos atributos de configuración, consulte la sección del elemento zosConnectDataXform bajo z/OS Connect 1.0 y z/OS Connect
1.2.
<zosConnectDataXform id="globalDataXform"
bindFileLoc="/zosConnect/banking/bind/"
bindFileSuffix=".bnd"
requestSchemaLoc="/zosConnect/banking/reqSchema"
requestSchemaSuffix=".json"
responseSchemaLoc="/zosConnect/banking/respSchema"
responseSchemaSuffix=".json"
pollingRate="500ms">
</zosConnectDataForm>
En el ejemplo, se sondean los directorios
/zosConnect/banking/bind,/zosConnect/banking/reqSchema y
/zosConnect/banking/respSchema para ver si hay actualizaciones de archivo cada 500 milisegundos. Si los atributos de configuración pollingRate y updateTrigger no están configurados, se utilizarán, respectivamente, los atributos predeterminados de polled y 2
seconds. Si no necesita supervisión de archivos, puede inhabilitarla estableciendo el atributo updateTrigger en disabled. Si prefiere desencadenar una renovación manual de determinados archivos, establezca el atributo updateTrigger en
mbean y utilice el mbean de notificación de archivos:
com.ibm.ws.kernel.filemonitor.FileNotificationMBean para desencadenar las actualizaciones; por ejemplo:
String[] MBEAN_METHOD_SIGNATURE = new String[] {Collection.class.getName(),Collection.class.getName(),Collection.class.getName() };
JMXConnector jmxConnector = ...;
MBeanServerConnection mbsc = jmxConnector.getMBeanServerConnection();
ObjectName fileMonitorMBeanName = new ObjectName("WebSphere:service=com.ibm.ws.kernel.filemonitor.FileNotificationMBean");
List<String> paths = new ArrayList<String>();
paths.add("/zosConnect/banking/bind/customer.bnd");
paths.add("/zosConnect/banking/reqSchema/customer_request.json");
paths.add("/zosConnect/banking/respSchema/customer_response.json");
Object[] params = new Object[] { null, paths, null };
mbsc.invoke(fileMonitorMBeanName, "notifyFileChanges", params, MBEAN_METHOD_SIGNATURE);
El ejemplo utiliza la característica restConnector-1.0 para desencadenar la actualización de los archivos
customer.bnd, customer_request.json y customer_response.json. Para obtener más información sobre cómo crear una conexión JMX segura, consulte la documentación de Configuración de una conexión JMX segura con Liberty