Rational 部門的其中一項主要策略,便是改進 Rational 與非 Rational 工具的整合。這項策略的技術,是以 Open Services for Lifecycle Collaboration (OSLC) 為基礎。
啟用的 Script 完全接受 Rational DOORS 管理者的控制和自訂,管理者可以決定要透過服務介面來公開哪些 DXL Script。 管理者可以鎖定呼叫特定函數的功能,而這項功能可能會被視為潛在的安全風險,如 "runDXL"。
請注意,特定的 DXL(如使用者介面小組件)將永遠不受支援。
由於服務探索受到 OAuth 的保護,所以這項功能的使用者也需要先利用使用者名稱和密碼來進行鑑別。
建立一個包含下列程式碼,稱為 helloWorld.inc 的 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"
}
將 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 欄位。 其中包含 Script 運作所需要的所有參數。 如果任何這些參數遺漏或不正確,呼叫就會失敗。
回應內容會類似下列程式碼:
<?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 Script 會從其中擷取值,再將它們轉換成預期的個別參數。