Rational 使用基于生命周期协作开放式服务 (OSLC) 的技术来改进与 Rational 应用程序和其他第三方工具的集成。 OSLC 服务发现是可扩展的。因为 Rational 和第三方开发人员可添加已实施标准中当前不可用的服务,或者添加那些被认为因太特殊而不能包含在当前或未来版本中的服务。
OSLC 需求管理 (RM) 规范 V2 的 Rational DOORS 实施包括可用于通过 HTTP 或 HTTPS 协议来运行 Rational DOORS DXL 脚本的 API。该 API 通过使您能安全地访问和控制 Rational DOORS 数据来向集成添加额外值。它基于 DXL 脚本库的概念。管理员可使用“OSLC DXL 服务”用户界面轻松地添加、编辑和除去 DXL 脚本。
脚本由 Rational 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>
服务不执行任何数据编组。将参数指定为单个字符串。DXL 脚本会首先从字符串解析和抽取值,然后将它们转换为期望的各个参数。