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.
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.
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"
}
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"
}
<?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>
<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.<?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.