OSLC-DXL-Services für Rational DOORS

Sie können OSLC DXL-Services verwenden, um IBM® Rational DOORS-DXL-Scripts mit dem Kommunikationsprotokoll HTTP oder HTTPS auszuführen.
Anmerkung: Das Beispiel umfasst Schritte zur Installation einer DXL-Datei als einen Service, indem die OSLC DXL Services Utility verwendet wird. Dieses Dienstprogramm ist in Rational DOORS Version 9.6.1.3 und höher verfügbar. Zur Installation der DXL-Datei ohne dieses Dienstprogramm lesen Sie die Informationen in der Dokumentation zu einem Vorgängerrelease.

Rational verwendet eine auf OSCL (Open Services for Lifecycle Collaboration) basierende Technologie, um Integration mit Rational-Anwendungen und anderen Tools von IBM oder anderer Anbietern zu verbessern. Die OSLC-Serviceerkennung ist erweiterbar. Daher können Entwickler von Rational und anderer Anbieter Services hinzufügen, die momentan nicht im implementierten Standard verfügbar sind, oder die als zu spezialisiert zur Aufnahme in aktuellen oder zukünftigen Versionen betrachtet werden.

Die Rational DOORS-Implementierung der OSLC-RM-Spezifikation (RM = Requirements Management, Anforderungsmanagement) der Version 2 umfasst eine API, mit deren Hilfe Sie Rational DOORS-DXL-Scripts unter Verwendung des HTTP- oder HTTPS-Protokolls ausführen können. Diese API verbessert den Nutzwert der Integrationen wesentlich, da Sie auf die Rational DOORS-Daten sicher zugreifen und diese ändern können. Die API basiert auf dem Konzept einer DXL-Scriptbibliothek. Administratoren können DXL-Scripts leicht hinzufügen, bearbeiten und entfernen, indem sie die Benutzerschnittstelle der OSLC DXL Services verwenden.

Diese Schritte beschreiben den Prozess der verwendung eines OSLC DXL-Services:
  1. Suchen Sie das OSLC-DXL-Script.
  2. Rufen Sie das Script auf, um die erforderlichen Parameter im OSLC-Aufruf zu verpacken. Wenn Sie eine GET-Anforderung für den DXL-Service-URI übergeben, enthält die Antwort Hilfeinformationen zum Script, wie der Autor sie angegeben hat. Wenn Sie eine PUT-Anforderung mit optionalen Parametern für den DXL-Service-URI übergeben, wird der Service ausgeführt.
  3. Das Script wird auf einem Interoperation Server ausgeführt.
  4. Die Ergebnisse werden gemeldet.

Die Scripts werden vom Rational DOORS-Administrator gesteuert und angepasst, der darüber entscheiden kann, welche DXL-Scripts in der Serviceschnittstelle verfügbar gemacht werden. Der Administrator kann die Möglichkeit zum Aufrufen bestimmter Funktionen sperren, die als potenzielles Sicherheitsrisiko betrachtet werden könnten, z. B. 'runDXL'. Bestimmte DXL-Scripts, z. B. Benutzerschnittstellenwidgets, werden nicht unterstützt.

Da die Serviceerkennung durch OAuth geschützt ist, müssen Sie sich bei der Verwendung des OSLC-DXL-Service durch Eingabe Ihres Benutzernamens und Ihres Kennworts authentifizieren.

Diese Schritte sind typisch für die Verwendung eines OSLC DXL-Services:
  1. Erstellen eines DXL-Scripts.
  2. Installieren des DXL-Scripts als Service.
  3. Suchen des Service über die Serviceerkennung.
  4. Aufrufen des Service.
  5. Extrahieren des Rückgabewerts aus der Antwort.

Beispiel

  1. Erstellen einer DXL-Datei mit dem Namen helloWorld.inc, die folgenden Code enthält:
    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. Kopieren Sie die Datei helloWorld.inc in das Verzeichnis /addins/services. Der Standardspeicherort dieses Verzeichnisses lautet C:\Programme\IBM\Rational\DOORS\9.version\lib\dxl\addins\services.
  3. Öffnen Sie den Rational DOORS-Client und melden Sie sich als Administrator an.
  4. Zur Installation des DXL klicken Sie auf Datei > OSLC > DXL-Services.
  5. Klicken Sie im Fenster OSLC DXL-Services auf Hinzufügen.
  6. Geben Sie im Fenster OSLC DXL-Service hinzufügen diese Werte ein:
    • Name: helloWorld
    • Beschreibung: Hello World in mehreren Sprachen
    • DXL: #include <addins/services/helloWorld.inc>
    • Funktionsname: getHelloString
    Ein Service mit dem Namen helloWorld wird erstellt.
    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. Aufrufen des Service. Der URI entspricht in etwa dem folgenden Beispiel: http://Servername:Portnummer/dwa/rm/dxl/helloWorld
  8. Legen Sie sowohl für den Header accept als auch für den Header content-type den folgenden Eintrag fest: application/rdf+xml.
  9. Überprüfen Sie, ob der Anforderungsinhalt dem folgenden Code gleicht:
    <?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. Verwenden Sie das Element <doors:arguments>, um Argumente an den Service zu übergeben. Geben Sie für den Elementtext eine Zeichenfolge ein, die die erforderlichen Argumente darstellt. Der DXL-Service setzt diese Zeichenfolge in die Argumente um, die für die DXL-Servicefunktion erforderlich sind. In dem vorherigen Beispiel wird ein einzelner Parameter gezeigt (English), der an die Funktion getHelloString übergeben wird. Wenn eine DXL-Funktion zwei Parameter erwartet, sieht die Anforderung wie im folgenden Beispiel aus:
    <doors:Arguments>
    <doors:arguments>English,French</doors:arguments>
    </doors:Arguments>
    Der empfangende DXL-Service teilt die durch Kommas getrennte Liste in die beiden separaten Zeichenfolgen English und French auf.
  11. Bei Argumenten, die nicht vom Datentyp 'string' sind, müssen Sie sie mithilfe von DXL in den entsprechenden Typ konvertieren. Beispiel: Wenn ein Argument vom Datentyp 'integer' ist, können Sie mithilfe der Operation intOf den Datentyp 'string', der aus der durch Kommas getrennten Liste extrahiert wurde, in den Typwert 'integer' konvertieren. Anschließend können Sie den Wert an die Methode übergeben.
    Der Inhalt der Antwort gleicht dem folgenden Code:
    <?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>

Mit dem Service kann kein Marshalling durchgeführt werden. Geben Sie Argumente als einzelne Zeichenfolge ein. Das DXL-Script führt ein Parsing durch und extrahiert die Werte aus der Zeichenfolge und konvertiert diese anschließend in die erwarteten einzelnen Parameter.

Beispieldateien sind in der Rational DOORS-Clientinstallation enthalten. Die Beispieldatei hierarchy.dxl zeigt, wie mit dem OSLC-DXL-Service Informationen zur Modulhierarchie abgerufen werden können.

Feedback