O Rational usa a tecnologia baseada em Open Services for Lifecycle Collaboration (OSLC) para melhorar a integração com os aplicativos Rational e outras ferramentas da IBM e de terceiros. A descoberta de serviço OSLC é extensível. Portanto, os desenvolvedores do Rational e de terceiros podem incluir serviços que não estejam disponíveis atualmente no padrão implementado ou que sejam considerados muito especializados para serem incluídos nas versões atuais ou futuras.
A implementação do Rational DOORS da especificação de Gerenciamento de requisitos (RM) do OSLC versão 2 inclui uma API que pode ser usada para executar scripts DXL do Rational DOORS com o protocolo HTTP ou HTTPS. Essa API agrega um valor adicional à integrações por permitir o acesso e a manipulação de dados do Rational DOORS de forma segura e protegida. Ela é baseada no conceito de uma biblioteca de scripts DXL. Os administradores podem incluir, editar e remover scripts DXL com facilidade, usando a interface com o usuário dos Serviços OSLC DXL.
Os scripts são controlados e customizados pelo administrador do Rational DOORS, que pode decidir quais scripts DXL estão disponíveis na interface de serviço. O administrador pode bloquear a capacidade de chamar determinadas funções que poderiam ser consideradas um risco de segurança potencial, como "runDXL". Determinados DXLs, como widgets da interface com o usuário, não são suportados.
Como a descoberta de serviço é protegida por OAuth, se você usar o serviço OSLC DXL, deverá autenticar-se digitando seu nome de usuário e senha.
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>
O serviço DXL de recebimento divide a lista separada por vírgula em duas
sequências English e French separadas.<?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>
O serviço não realiza nenhuma serialização. Especifique os argumentos como uma única sequência. O script DXL analisa e extrai os valores da sequência antes de convertê-los nos parâmetros individuais esperados.