Rational utiliza tecnología basada en OSLC (Open Services for Lifecycle Collaboration) para mejorar la integración con aplicaciones Rational y otras herramientas de IBM y de terceros. El descubrimiento de servicio OSLC es ampliable. Por lo tanto, Rational y los desarrolladores de terceros pueden añadir servicios que no están disponibles actualmente en el estándar implementado o que se consideran demasiado especializados como para incluirlos en versiones actuales o futuras.
La implementación de Rational DOORS de la especificación OSLC Requirements Management (RM) versión 2 incluye una API que puede utilizar para ejecutar scripts DXL de Rational DOORS con el protocolo HTTP o HTTPS. Esta API aporta valor añadido a las integraciones, ya que permite acceder a los datos de Rational DOORS y manipularlos de forma segura. Se basa en el concepto de una biblioteca de scripts DXL. Los administradores pueden añadir, editar y eliminar scripts DXL fácilmente con la interfaz de usuario de OSLC DXL Services.
El administrador de Rational DOORS controla y personaliza los scripts y puede decidir qué scripts DXL estarán disponibles en la interfaz de servicio. El administrador puede bloquear la posibilidad de llamar a determinadas funciones que se podrían considerar de un posible riesgo de seguridad, como por ejemplo "runDXL". No se da soporte a algunos DXL como, por ejemplo, los widgets de interfaz de usuario.
Puesto que el descubrimiento de servicios está protegido mediante OAuth, si utiliza el servicio OSLC DXL debe autenticarse con su nombre de usuario y contraseña.
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>
El servicio DXL receptor divide la lista separada por comas en series diferentes para English y 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>
El servicio no realiza ninguna ordenación. Indique los argumentos como serie única. El script DXL analiza y extrae los valores de la serie antes de convertirlos en los parámetros individuales esperados.