Rational 分割の 主な戦略の 1 つは、Rational ツールと非 Rational ツールの統合を向上させることです。 この戦略のテクノロジーは、Open Services for Lifecycle Collaboration (OSLC) に基づいています。
使用可能になった スクリプトは、Rational DOORS 管理者によって 完全に制御およびカスタマイズされます。 管理者は、サービス・インターフェース全体で公開される DXL スクリプトを決定できます。 管理者は、「runDXL」など、潜在的なセキュリティー・リスクとみなされる可能性のある特定の機能を呼び出す機能をロックアウトできます。
ユーザー・インターフェース・ウィジェットなど、特定の DXL はサポートされないことに注意してください。
サービス・ディスカバリーは OAuth によって保護されているため、この機能を使用するユーザーもユーザー名とパスワードを使用して 最初に認証を行う必要があります。
以下のコードを含む DXL ファイル helloWorld.inc を作成します。
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"
}
helloWorld.inc ファイルを /addins/services ディレクトリーにコピーします。このディレクトリーのデフォルトの場所は、C:¥Program Files (x86)¥IBM¥Rational¥DOORS¥9.5¥lib¥dxl¥addins¥services です。
Rational DOORS クライアントを起動し、管理者としてログインします。
DXL をインストールするには、DXL ウィンドウを開き、以下の DXL コードを入力します。 これにより、helloWorld というサービスが作成されます。
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"
}
次に、サービスを呼び出します。 URI は次の例のようになります: http://servername:portnumber/dwa/rm/dxl/helloWorld
accept および content-type の両ヘッダーを次の項目に設定します: application/rdf+xml
要求の内容は、以下のコードのようなものになります。
<?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 フィールドです。 このフィールドには、スクリプトが機能するために必要なすべてのパラメーターが含まれています。 これらのいずれかが欠けていたり、順序が正しくないと、呼び出しは失敗します。
応答の内容は、以下のコードのようなものになります。
<?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>
サービスによってマーシャルは実行されません。 引数はストリング形式で指定します。 DXL スクリプトはそこから値を抽出し、必要な個々のパラメーターに変換します。