Services OSLC DXL pour Rational DOORS

Dans IBM® Rational DOORS, l'implémentation de la version 2 de la spécification OSLC Requirements Management (RM) comprend un service que vous pouvez utiliser pour exécuter des scripts DXL Rational DOORS à l'aide du protocole HTTP.
Rational utilise une technologie basée sur Open Services for Lifecycle Collaboration (OSLC) pour assurer l'intégration avec les outils Rational et non-Rational. Rational DOORS complète les fonctions OSLC standard avec un service OSLC DXL que vous pouvez utiliser pour exécuter des scripts DXL Rational DOORS sur HTTP. Le service est basé sur le concept d'une bibliothèque de scripts DXL. Le processus d'utilisation du service est le suivant :
  1. L'utilisateur recherche le script OSLC DXL requis.
  2. L'utilisateur appelle 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 soumettez une requête PUT avec des paramètres optionnels pour l'identificateur URI du service DXL, le service est appelé.
  3. Le script est exécuté sur un serveur d'interopérabilité.
  4. Les résultats sont envoyés.

Les scripts contrôlés et personnalisés par l'administrateur Rational DOORS, qui peut décider quels scripts DXL sont exposés sur 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 les widgets d'interface utilisateur, ne seront jamais 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.

La procédure type d'utilisation du service DXL OSLC est la suivante :
  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 contenant le code suivant :
    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 (x86)\IBM\Rational\DOORS\9.version\lib\dxl\addins\services.
  3. Ouvrez un client Rational DOORS et connectez-vous en tant qu'administrateur.
  4. Pour installer DXL, ouvrez une fenêtre DXL et entrez le code DXL suivant. Un service nommé 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" 
    }
  5. Appel du service. L'identificateur URI est similaire à l'exemple suivant : http://servername:portnumber/dwa/rm/dxl/helloWorld
  6. Définissez les en-têtes accept et content-type en saisissant les éléments suivants : application/rdf+xml
  7. 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>
  8. 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.
  9. 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'assure aucune conversion de paramètres. Les arguments sont spécifiés au format chaîne, à partir duquel le script DXL extrait les valeurs puis les convertit selon les paramètres individuels attendus.


Commentaires en retour