OSLC-DXL-Services für Rational DOORS

Die IBM® Rational DOORS-Implementation der OSLC-RM-Spezifikation (RM = Requirements Management, Anforderungsmanagement) der Version 2 umfasst einen Service, mit dessen Hilfe Sie Rational DOORS-DXL-Scripts unter Verwendung des HTTP-Protokolls ausführen können.

Eine der Hauptstrategien des Rational-Unternehmensbereichs ist die Erweiterung der Integration von Rational- und Nicht-Rational-Tools. Die Technologie für diese Strategie basiert auf Open Services for Lifecycle Collaboration (OSLC).

Da die OSLC-Serviceerkennung erweiterbar ist, können Entwickler von Rational und von anderen Anbietern Services hinzufügen, die momentan nicht im implementierten Standard verfügbar sind oder als zu spezialisiert für die Aufnahme in den Standard betrachtet werden und daher nicht für zukünftige Versionen des Standards geplant sind. Als Unterstützung des dauerhaften Bestrebens zum Erreichen von Erweiterbarkeit werden in Rational DOORS die OSLC-DXL-Services eingeführt, um diese Lücken zu schließen. Die OSLC-RM-Schnittstelle der Version 2 macht einen Service verfügbar, mit dem Benutzer Rational DOORS-DXL-Scripts über HTTP ausführen können. Dieser Service basiert auf dem Konzept einer DXL-Scriptbibliothek:
  1. Der Benutzer sucht das erforderliche OSLC-DXL-Script.
  2. Der Benutzer ruft dieses Script auf, um die erforderlichen Parameter im OSLC-Aufruf zu verpacken.
  3. Das Script wird auf einem Interoperation Server ausgeführt.
  4. Die Ergebnisse werden zurückgemeldet.

Die zur Verfügung gestellten Scripts unterliegen vollständig der Kontrolle und Anpassung des Rational DOORS-Administrators, der entscheiden kann, welche DXL-Scripts in der Serviceschnittstelle verfügbar gemacht werden. Der Administrator kann die Möglichkeit zum Aufrufen bestimmter Funktionen unterbinden, die als potenzielles Sicherheitsrisiko betrachtet werden könnten, wie 'runDXL'.

Beachten Sie, dass bestimmte DXL-Scripts, wie Benutzerschnittstellenwidgets, nie unterstützt werden.

Da die Serviceerkennung durch OAuth geschützt ist, müssen Benutzer dieser Funktionalität sich zunächst mit Benutzername und Kennwort authentifizieren.

Die Nutzung dieser Funktion umfasst in der Regel die folgenden Schritte:
  1. Erstellen eines DXL-Scripts.
  2. Installieren dieses DXL-Scripts als Service.
  3. Suchen dieses Service über die Serviceerkennung.
  4. Aufrufen des Service.
  5. Extrahieren des Rückgabewerts aus der Antwort.

Beispiel

Erstellen Sie eine DXL-Datei namens helloWorld.inc, die den 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"
}

Kopieren Sie diese Datei in das folgende Verzeichnis: $DOORSHOME$/addins/services/helloWorld.inc.

Starten Sie einen Rational DOORS-Client und melden Sie sich als Administrator an.

Um die DXL zu installieren, öffnen Sie ein DXL-Fenster und geben Sie den folgenden DXL-Code ein. Dadurch wird ein Service namens "helloWorld" 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" 
}

Rufen Sie dann den Service auf. Der URI entspricht in etwa dem folgenden Beispiel: http://Servername:Portnummer/dwa/rm/dxl/helloWorld

Legen Sie sowohl für den Header accept als auch für den Header content-type den folgenden Eintrag fest: application/rdf+xml.

Der Aufforderungsinhalt sollte in etwa dem folgenden Code entsprechen:

<?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>

Die wichtigsten Felder sind die Felder des Typs doors:arguments. Sie enthalten alle Parameter, die für das ordnungsgemäße Ausführen des Scripts erforderlich sind. Fehlen welche oder sind die Parameter nicht ordnungsgemäß angeordnet, schlägt der Aufruf fehl.

Der Antwortinhalt würde in etwa dem folgendem Code entsprechen:

<?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>

Es wird kein Marshalling vom Service durchgeführt. Argumente sind im Zeichenfolgeformat angegeben, aus dem das DXL-Script Werte extrahiert und diese dann in die erwarteten einzelnen Parameter konvertiert.


Feedback