Servicios OSLC DXL para Rational DOORS

Puede utilizar los servicios OSLC DXL para ejecutar scripts DXL de IBM® Rational DOORS con el protocolo de comunicación HTTP o HTTPS.
Nota: El ejemplo incluye pasos de instalación de un archivo DXL como servicio utilizando el programa de utilidad Servicios OSLC DXL. Este programa de utilidad está disponible en Rational DOORS versión 9.6.1.3 y posteriores. Para instalar el archivo DXL sin este programa de utilidad, consulte la documentación de un release anterior.

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.

Estos pasos describen el proceso para utilizar un servicio OSLC DXL:
  1. Buscar el script OSLC DXL.
  2. Llamar al script para empaquetar los parámetros necesarios en la llamada OSLC. Si envía una solicitud GET para el URI del servicio DXL, la respuesta contiene información de ayuda sobre el script, proporcionada por el autor. Si envía una solicitud PUT con parámetros opcionales para el URI de servicio DXL, se ejecuta el servicio.
  3. El script se ejecuta en un servidor de interoperatividad.
  4. Los resultados se publican.

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.

Estos son los pasos habituales para utilizar un servicio OSLC DXL:
  1. Crear un script DXL.
  2. Instalar este script DXL como un servicio.
  3. Localizar el servicio a través del descubrimiento de servicios.
  4. Llamar al servicio.
  5. Extraer el valor de retorno de la respuesta.

Ejemplo

  1. Crear un archivo DXL que se denomine helloWorld.inc que contenga este 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"
    }
  2. Copie el archivo helloWorld.inc al directorio /addins/services. La ubicación predeterminada de este directorio es C:\Archivos de programa \IBM\Rational\DOORS\9.versión\lib\dxl\addins\services.
  3. Abra el cliente de Rational DOORS e inicie una sesión como administrador.
  4. Para instalar el DXL, pulse ARCHIVO > OSLC > Servicios DXL.
  5. En la ventana Servicios OSLC DXL, pulse Añadir.
  6. En la ventana Añadir servicio OSLC DXL, indique estos valores:
    • Nombre: helloWorld
    • Descripción: Hello world in several languages
    • DXL: #include <addins/services/helloWorld.inc>
    • Nombre de función: getHelloString
    Se creará un servicio 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" 
    }
  7. Llamar al servicio. El URI es similar a este ejemplo: http://nombreservidor:númeropuerto/dwa/rm/dxl/helloWorld
  8. Configure tanto la cabecera accept como la cabecera content-type para esta entrada: application/rdf+xml
  9. Compruebe que el contenido de la solicitud sea como el código siguiente:
    <?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>
  10. Para pasar argumentos al servicio, utilice el elemento <doors:arguments>. Escriba una serie en el texto del elemento que represente los argumentos necesarios. El servicio DXL transforma dicha serie en los argumentos necesarios para la función de los servicios DXL. El ejemplo anterior muestra un parámetro, English, que se pasa a la función getHelloString. Si una función DXL espera dos parámetros, la solicitud tiene el aspecto del ejemplo siguiente:
    <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.
  11. Si hay algún argumento que no sea del tipo correcto de serie, debe convertirlo al tipo apropiado mediante DXL. Por ejemplo, si un argumento es un número entero, puede utilizar la operación intOf para convertir la serie extraída de la lista separada por comas en un valor de tipo int. A continuación, puede pasar el valor al método.
    El contenido de la respuesta será similar a este 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 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.

Los archivos de ejemplo se incluyen en la instalación del cliente de Rational DOORS. El archivo de ejemplo hierarchy.dxl muestra cómo utilizar el servicio OSLC DXL para obtener información sobre la jerarquía del módulo.

Comentarios