Rational 使用以 Open Services for Lifecycle Collaboration (OSLC) 為基礎的技術, 來改良與 Rational 應用程式和其他工具的整合。OSLC 服務探索可以延伸。因此, Rational 和協力廠商開發人員能夠新增目前實作標準未提供的服務, 或是新增被視為太特殊而未包含在現行或未來版本中的服務。
OSLC Requirements Management (RM) 規格第 2 版的 Rational DOORS 實作包含一個 API, 可讓您用來透過 HTTP 或 HTTPS 通訊協定來執行 Rational DOORS DXL Script。這個 API 可讓您安全可靠地存取和操作 Rational DOORS 資料,為整合帶來額外的價格。它是以 DXL Script 程式庫的概念為基礎。管理者使用「OSLC DXL 服務」使用者介面, 就能輕鬆新增、編輯和移除 DXL Script。
Script 由 Rational DOORS 管理者控制和自訂, 管理者可以決定服務介面中要提供哪些 DXL Script。管理者可以鎖定呼叫特定函數的功能,而這項功能可能會被視為潛在的安全風險,如 "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>
服務不會執行任何配置。以單一字串來指定引數。DXL Script 會先剖析和擷取字串中的值,再將它們轉換成預期的個別參數。