Services OSLC DXL pour Rational DOORS

Vous pouvez utiliser des services OSLC DXL pour exécuter des scripts IBM® Rational DOORS DXL avec le protocole de communications HTTP ou HTTPS.
Remarque : L'exemple inclut les étapes d'installation d'un fichier DXL comme service à l'aide de l'utilitaire des services OSLC DXL. Cet utilitaire est disponible dans Rational DOORS version 9.6.1.3 et versions ultérieures. Pour installer le fichier DXL sans cet utilitaire, consultez la documentation d'une édition précédente.

Rational utilise une technologie basée sur Open Services for Lifecycle Collaboration (OSLC) pour améliorer l'intégration aux applications Rational et aux autres outils IBM et outils tiers. La reconnaissance de service OSLC étant extensible, les développeurs Rational et tiers peuvent ajouter des services qui ne sont pas actuellement disponibles dans la norme mise en oeuvre ou qui sont considérés comme trop spécialisés pour être inclus aux versions en cours ou futures.

L'implémentation Rational DOORS de la spécification OSLC Requirements Management (RM) version 2 comprend une interface de programme d'application que vous pouvez utiliser pour exécuter des scripts Rational DOORS DXL avec le protocole HTTP ou HTTPS. Cette interface API ajoute une valeur supplémentaire aux intégrations en vous permettant d'accéder aux données Rational DOORS et de les manipuler de façon sécurisée. Elle est basée sur le concept d'une bibliothèque de scripts DXL. Les administrateurs peuvent facilement ajouter, modifier et supprimer des scripts DXL à l'aide de l'interface utilisateur des services OSLC DXL.

Les étapes suivantes décrivent le processus à suivre pour utiliser un service OSLC DXL :
  1. Recherchez le script OSLC DXL.
  2. Appelez le script pour regrouper les paramètres obligatoires dans l'appel OSLC. Si vous soumettez une requête GET pour l'identificateur URI du service DXL, la réponse contient des informations d'aide sur le script, comme indiqué par l'auteur. Si vous envoyez une demande PUT avec des paramètres facultatifs pour l'URI de service DXL, le service s'exécute.
  3. Le script est exécuté sur un serveur d'interopérabilité.
  4. Les résultats sont envoyés.

Les scripts sont contrôlés et personnalisés par l'administrateur Rational DOORS, qui peut décider quels scripts DXL sont disponibles dans l'interface de service. L'administrateur peut verrouiller la fonction d'appel de certaines fonctions pouvant être considérées comme un risque potentiel pour la sécurité, par exemple "runDXL". Certains DXL, tels que des widgets d'interface utilisateur, ne sont pas pris en charge.

Etant donné que la reconnaissance de service est protégée par OAuth, si vous utilisez le service DXL OSLC, vous devez vous authentifier en saisissant votre nom d'utilisateur et votre mot de passe.

Les étapes suivantes sont les étapes typiques pour l'utilisation d'un service OSLC DXL :
  1. Création d'un script DXL.
  2. Installez le script DXL en tant que service.
  3. Localisez le service à l'aide de la reconnaissance de service.
  4. Appel du service.
  5. Extraction de la valeur de retour à partir de la réponse.

Exemple

  1. Créez un fichier DXL nommé helloWorld.inc qui contient ce code :
    void getHelloString(string language)
    {
    	string hello = null
    
    	if ("French" == language)
    	{
    		hello = "Bonjour le monde"
    	} 
    	else if ("Finnish" == language)
    	{
    		hello = "Hei maailma"
    	} 
    	else if ("Latin" == language)
    	{
    		hello = "Ave mundi"
    	}
    	else 
    	{
    		hello = "Hello world"
    	}
    
    	setDxlServiceResult hello
        
    	print hello "\n"
    }
  2. Copiez le fichier helloWorld.inc dans le répertoire /addins/services. L'emplacement par défaut de ce répertoire est C:\Program Files\IBM\Rational\DOORS\9.version\lib\dxl\addins\services.
  3. Ouvrez le client Rational DOORS et connectez-vous en tant qu'administrateur.
  4. Pour installer le DXL, cliquez sur FILE > OSLC > DXL Services.
  5. Dans la fenêtre Services OSLC DXL, cliquez sur Ajouter.
  6. Dans la fenêtre Ajouter un service OSLC DXL, entrez les valeurs suivantes :
    • Nom : helloWorld
    • Description : Hello world dans plusieurs langues
    • DXL : #include <addins/services/helloWorld.inc>
    • Nom de fonction : getHelloString
    Un service appelé helloWorld est créé.
    OSLCDXLService os = null
    string err = null
    
    string dxlCode = "#include <addins/services/helloWorld.inc>\n"  
    err = addOrUpdateOSLCDXLService("helloWorld", "Hello world in several languages", dxlCode, "getHelloString")  
    if (!null err) 
    { 
    	print err 
    }  
    else  
    { 
    	print "Installed Service\n" 
    }
  7. Appel du service. L'identificateur URI est similaire à l'exemple suivant : http://servername:portnumber/dwa/rm/dxl/helloWorld
  8. Définissez les en-têtes accept et content-type en saisissant les éléments suivants : application/rdf+xml
  9. Vérifiez que le contenu de la requête ressemble au code suivant :
    <?xml version="1.0" encoding="UTF-8"?>
    <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/">
      <doors:Arguments>
      <doors:arguments>English</doors:arguments>
      </doors:Arguments>
    </rdf:RDF>
  10. Pour transmettre des arguments au service, utilisez l'élément <doors:arguments>. Saisissez une chaîne de texte représentant les arguments souhaités. Le service DXL transforme cette chaîne en arguments requis par la fonction DXL des services. L'exemple précédent présente un seul paramètre, English, transmis à la fonction getHelloString. Si une fonction DXL prévoit deux paramètres, la requête ressemble à l'exemple suivant :
    <doors:Arguments>
    <doors:arguments>English,French</doors:arguments>
    </doors:Arguments>
    Le service DXL de réception divise la liste séparée par des virgules en chaînes distinctes English et French.
  11. Si certains de vos arguments ne sont pas des chaînes, vous devez les convertir au type approprié à l'aide du DXL. Par exemple, si un argument est un entier, vous pouvez utiliser l'opération intOf pour convertir la chaîne extraite de la liste séparée par des virgules en valeur de type int. Ensuite, vous pouvez transmettre la valeur à la méthode.
    Le contenu de la réponse ressemble au code suivant :
    <?xml version="1.0" encoding="UTF-8"?>
    <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/">
      <doors:DxlServiceResult rdf:about="http://my-desktop:8080/dwa/rm/dxl/helloWorld>
      <doors:result>Hello world</doors:result>
      </doors:DxlServiceResult>
    </rdf:RDF>

Le service n'effectue pas de conversion de paramètres. Spécifiez des arguments sur une chaîne unique. Le script DXL analyse et extrait des valeurs de la chaîne avant de les convertir dans les paramètres individuels attendus.

Des exemples de fichiers sont inclus dans l'installation client Rational DOORS. L'exemple de fichier hierarchy.dxl indique comment utiliser le service DXL OSLC pour obtenir des informations sur la hiérarchie de module.

Commentaires en retour