Open Services for Lifecycle Collaboration (OSLC) テクノロジーは、IBM または他社が開発したライフサイクル管理アプリケーションおよびツール間の統合を促進するために使用されます。 OSLC サービス・ディスカバリーは拡張可能です。 そのため、実装された標準では現在使用できないサービスや、現行および将来のバージョンに組み込むには特殊すぎると見なされるサービスを、開発者が追加できます。
OSLC Requirements Management (RM) 仕様バージョン 2 の DOORS 実装環境には、HTTP または HTTPS プロトコルを使用して DOORS DXL スクリプトを実行するために使用可能な API が組み込まれています。 この API は、ユーザーが安全に DOORS データにアクセスし、操作できるようにするため、統合に付加価値を追加します。 これは、DXL スクリプト・ライブラリーの概念に基づいています。 OSLC DXL サービス・ユーザー・インターフェースを使用することによって、管理者は簡単に DXL スクリプトを追加、編集、および削除できます。
スクリプトは、サービス・インターフェースで使用可能な DXL スクリプトを決定できる DOORS 管理者によって制御およびカスタマイズされます。 管理者は、「runDXL」などの、潜在的なセキュリティー・リスクとみなされる可能性のある特定の機能を呼び出す機能をロックできます。 ユーザー・インターフェース・ウィジェットなどの特定の DXL はサポートされません。
サービス・ディスカバリーは OAuth によって保護されているため、OSLC DXL サービスを使用する場合は、ユーザー名とパスワードを入力して認証を行う必要があります。
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>
受信側の DXL サービスは、コンマ区切りのリストを English と French の別々の文字列に分割します。<?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>
サービスではマーシャルは行われません。 引数を 1 つのストリングとして指定します。 DXL スクリプトは、そのストリングの値を解析して抽出してから、予期される個別のパラメーターに変換します。