Servicios OSLC DXL para DOORS

Puede utilizar los servicios OSLC DXL para ejecutar scripts DXL de IBM® Engineering Requirements Management DOORS (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 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.

La tecnología de Open Services for Lifecycle Collaboration (OSLC) se utiliza para facilitar la integración entre las aplicaciones de gestión del ciclo de vida y las herramientas desarrolladas para IBM u otras empresas. El descubrimiento de servicio OSLC es ampliable. Por lo tanto, los desarrolladores 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 DOORS de la especificación OSLC Requirements Management (RM) versión 2 incluye una API que puede utilizar para ejecutar scripts DXL de DOORS con el protocolo HTTP o HTTPS. Esta API aporta valor añadido a las integraciones, ya que permite acceder a los datos de 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 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 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 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.

Icono de vídeo Vídeo

Canal de Jazz.net
Canal de Software Education

Icono de más informaciónCursos

IoT Academy
Skills Gateway

Icono de preguntas Comunidad

Jazz.net
Foros de Jazz.net
Biblioteca de Jazz.net

Icono de soporte Soporte

Comunidad de IBM Support
Wiki de despliegue