IBM® z/OS® Connect fournit la possibilité de transformer le cas échéant le contenu des requêtes et réponses utilisées pour appeler un actif métier sur des systèmes d'exploitation z/OS. Vous pouvez créer des transformateurs de messages destinés à des besoins spécifiques en implémentant l'interface de fournisseur de service (SPI) com.ibm.wsspi.zos.connect.DataXform, livrée avec z/OS Connect.
Pourquoi et quand exécuter cette tâche
z/OS Connect fournit une implémentation qui requiert que le format du message de requête et de réponse soit JSON. Cette
fonction permet la conversion de la requête en tableau d'octets, qui peut être mappé par une structure en langage natif Cobol, PL/I ou C. Cette structure de langage du programme cible, ou fichier de stockage, qui inclut une description des paramètres in et out , est utilisée pour générer un fichier de liaison et des fichiers de schéma de requête et de réponse JSON à l'aide d'un utilitaire fourni par z/OS Connect. Le fichier de liaison créé par cet utilitaire est utilisé par z/OS Connect pour effectuer la conversion des données entre le format JSON et les formats de données natifs lorsque des requêtes arrivent et que des réponses sont renvoyées. Vous pouvez extraire les schémas JSON pour le message de requête et de réponse via un appel d'API REST fournie par z/OS Connect.
z/OS Connect fournit l'élément de configuration
zosConnectService qui permet à l'administrateur de configurer un ensemble d'attributs s'appliquant à un service spécifique. L'un de ces attributs est dataXformRef, lequel pointe vers une configuration de transformation de données à utiliser pour un service spécifique. Cette tâche décrit comment demander que soit utilisé le transformateur de données fourni par z/OS Connect.
- Définissez un élément zosConnectDataXform dans le
fichier server.xml.
<!-- z/OS Connect data transformation provider -->
<zosConnectDataXform id="zosConnectXform"
bindFileLoc="/zosConnect/banking/bind/"
bindFileSuffix=".bnd"
requestSchemaLoc="/zosConnect/banking/reqSchema"
requestSchemaSuffix=".json"
responseSchemaLoc="/zosConnect/banking/respSchema"
responseSchemaSuffix=".json"/>
Dans cet exemple, toutes les définitions d'attributs en lien avec des emplacements
de fichier sont spécifiées par souci d'exhaustivité. C'est le cas
de bindFileLoc, requestSchemaLoc et
responseSchemaLoc. Seules les définitions d'attributs
bindFileLoc et requestSchemaLoc sont indispensables. Si l'attribut responseSchemaLoc n'est pas configuré,
la valeur de l'attribut requestSchemaLoc est utilisée.
Dans ce même exemple, toutes les définitions d'attributs en lien avec des suffixes
de fichier sont spécifiées par souci d'exhaustivité. C'est le cas
de <bindFileSuffix>, <requestSchemaSuffix> et
<responseSchemaSuffix>. Ces attributs sont tous optionnels.
S'ils ne sont pas spécifiés, les fichiers de liaison (bind) et de schéma à charger
par z/OS Connect seront considérés comme sans suffixe.
z/OS Connect s'attend à ce que les fichiers en rapport avec les transformations de données
aient un format spécifique, qui dépend de la
configuration.
- fichiers de liaison : <serviceName><bindFileSuffix>
- fichiers de schéma de demande :
<serviceName>_request<requestSchemaSuffix>
- fichiers de schéma de réponse :
<serviceName>_response<requestSchemaSuffix>
Si on considère l'exemple de configuration
zosConnectService suivant
et l'exemple de configuration
zosConnectDataXform précédent.
<!-- z/OS Connect service definition -->
<zosConnectService id="zosConnectCustomer"
serviceName="customer"
serviceRef="wolaCustomerCreate"
dataXformRef="zosConnectXform"/>
Les noms des fichiers de transformation de données seront :
- fichiers de liaison : customer.bnd
- fichiers de schéma de demande : customer_request.json
- fichiers de schéma de réponse : customer_response.json
Pour en savoir plus sur les définitions d'attributs configurables associées à l'élément zosConnectDataXform, voir la documentation de la fonction z/OS Connect.
- Mettez à jour l'élément zosConnectService dans votre fichier de configuration
server.xml pour chaque service pour lequel vous désirez activer la transformation de données assurée par z/OS Connect.
<!-- z/OS Connect service definition -->
<zosConnectService id="zosConnectCustomer"
serviceName="customer"
serviceRef="wolaCustomerCreate"
dataXformRef="zosConnectXform"/>
- Facultatif : Configurez un transformateur de données s'appliquant à tous les services. Définissez le paramètre globaDataXformRef de l'élément zosConnectManager sur l'ID du transformateur de données destiné à une utilisation globale. Si des transformateurs de données globaux et de service sont tous deux définis et que des requêtes parviennent pour un service disposant d'un transformateur de données, z/OS Connect utilisera celui configuré spécifiquement pour le service.
<zosConnectManager id="zosConnectGlobalDefinitions
globalDataXformRef="zosConnectGlobalDataXform"/>
<!-- z/OS Connect data transformation provider -->
<zosConnectDataXform id="globalDataXform"
bindFileLoc="/zosConnect/banking/bind/"
bindFileSuffix=".bnd"
requestSchemaLoc="/zosConnect/banking/reqSchema"
requestSchemaSuffix=".json"
responseSchemaLoc="/zosConnect/banking/respSchema"
responseSchemaSuffix=".json"/>
- Facultatif : Configurez des paramètres tels que pollingRate
et updateTrigger pour optimiser les actions de surveillance. Par défaut, les répertoires associés à une définition de transformation de données
sont surveillés pour les nouveaux fichiers ou les mises à jour de fichiers. Pour en savoir plus sur ces attributs de configuration, voir la section relative à l'élément zosConnectDataXform sous
z/OS Connect 1.0 et 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>
Dans cet exemple, les répertoires /zosConnect/banking/bind,/zosConnect/banking/reqSchema
et /zosConnect/banking/respSchema sont analysés pour la recherche de mises à jour de fichiers
toutes les 500 millisecondes. Si les attributs de configuration pollingRate et updateTrigger
ne sont pas configurés, les valeurs par défaut de polled et 2 seconds
sont utilisées, respectivement. Si vous n'avez pas besoin de surveiller des fichiers, vous pouvez
désactiver la fonction en définissant l'attribut updateTrigger sur disabled. Si vous préférez déclencher une actualisation manuelle de certains fichiers, définissez l'attribut
updateTrigger sur mbean et utilisez le bean géré de notification
de fichier com.ibm.ws.kernel.filemonitor.FileNotificationMBean pour déclencher
les mises à jour. Par exemple :
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);
L'exemple utilise la fonction restConnector-1.0 pour déclencher la mise à jour des fichiers
customer.bnd, customer_request.json et customer_response.json. Pour plus d'informations sur la création d'une connexion JMX sécurisée, voir la documentation à la rubrique Configuration d'une connexion JMX sécurisée à Liberty