Una de las estrategias básica de la división de Rational es mejorar la integración de las herramientas de Rational y de las que no lo son. La tecnología de esta estrategia se base en OSLC (Open Services for Lifecycle Collaboration).
Los scripts que están disponibles están totalmente bajo el control y la personalización del administrador de Rational DOORS, que puede decidir qué scripts DXL se exponen a través de 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".
Tenga en cuenta que no se dará soporte a algunos DXL como, por ejemplo, los widgets de interfaz de usuario.
Puesto que el descubrimiento de servicios está protegido mediante OAuth, los usuarios de esta funcionalidad también es necesario que se autentiquen en primer lugar con su nombre de usuario y contraseña.
Cree un archivo DXL denominado helloWorld.inc que incluya el siguiente código:
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"
}
Copie el archivo helloWorld.inc al directorio /addins/services. La ubicación predeterminada de este directorio es C:\Archivos de programa (x86)\IBM\Rational\DOORS\9.5\lib\dxl\addins\services.
Inicie un cliente de Rational DOORS e inicie una sesión como administrador.
Para instalar el DXL, abra una ventana DXL y escriba el siguiente código DXL. Esto creará un servidor denominado 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"
}
A continuación, llame al servicio. El URI es similar al del ejemplo siguiente: http://servername:portnumber/dwa/rm/dxl/helloWorld
Configure tanto la cabecera accept como la cabecera content-type para la siguiente entrada: application/rdf+xml
La solicitud de contenido debería ser parecida a la del siguiente código:
<?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>
Los campos más importantes son los doors:arguments. Estos campos contienen todos los parámetros necesarios para que el script pueda funcionar. Si falta alguno o si están ordenados de forma incorrecta, la llamada fallará.
El contenido de la respuesta debería ser parecido al del siguiente código:
<?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 ningún tipo de marshalling. Los argumentos se especifican en un formato de serie de texto, de la que el script DXL extrae valores y, a continuación, los convierte en los parámetros individuales esperados.