Serviços OSLC DXL para DOORS

É possível usar os serviços OSLC DXL para executar scripts DXL do IBM® Engineering Requirements Management DOORS (DOORS) com o protocolo de comunicações HTTP ou HTTPS.
Nota: O exemplo inclui as etapas para instalar um arquivo DXL como um serviço, usando o Utilitário de serviço OSLC DXL. Esse utilitário está disponível no DOORS versão 9.6.1.3 e posterior. Para instalar o arquivo DXL sem esse utilitário, consulte a documentação de uma liberação anterior.

A tecnologia Open Services for Lifecycle Collaboration (OSLC) é usada para facilitar a integração entre aplicativos de gerenciamento de ciclo de vida e ferramentas desenvolvidas pela IBM ou por outras empresas. A descoberta de serviço OSLC é extensível. Portanto, os desenvolvedores podem incluir serviços que não estão atualmente disponíveis no padrão implementado ou que são considerados muito especializados para inclusão em versões atuais ou futuras.

A implementação do 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 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 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.

Estas etapas descrevem o processo para usar um serviço OSLC DXL:
  1. Consulte o script OSLC DXL.
  2. Chame o script para empacotar os parâmetros necessários na chamada do OSLC. Se você enviar uma solicitação GET para o URI do serviço DXL, a resposta conterá informações da ajuda sobre o script, conforme fornecido pelo autor. Se você enviar uma solicitação PUT com parâmetros opcionais para o URI do serviço DXL, o serviço será executado.
  3. O script é executado em um Interoperation Server.
  4. Os resultados são postados.

Os scripts são controlados e customizados pelo administrador do 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.

Estas etapas são típicas para o uso de um serviço OSLC DXL:
  1. Criar um script DXL.
  2. Instalar o script DXL como um serviço.
  3. Localizar o serviço por meio da descoberta de serviço.
  4. Chamar o serviço.
  5. Extrair o valor de retorno da resposta.

Exemplo

  1. Crie um arquivo XML com o nome helloWorld.inc, que contenha o 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 o arquivo helloWorld.inc no diretório /addins/services. O local padrão desse diretório é C:\Program Files\IBM\Rational\DOORS\9.version\lib\dxl\addins\services.
  3. Abra o cliente DOORS e efetue login como administrador.
  4. Para instalar o DXL, clique em ARQUIVO > OSLC > Serviços DXL.
  5. Na janela Serviços OSLC DXL, clique em Incluir.
  6. Na janela Incluir serviço OSLC DXL, insira estes valores:
    • Nome: helloWorld
    • Descrição: Hello world in several languages
    • DXL: #include <addins/services/helloWorld.inc>
    • Nome da função: getHelloString
    Um serviço chamado helloWorld é criado.
    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. Chamar o serviço. O URI é como este exemplo: http://servername:portnumber/dwa/rm/dxl/helloWorld
  8. Configure os cabeçalhos accept e content-type para esta entrada: application/rdf+xml
  9. Certifique-se de que o conteúdo da solicitação seja como 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:Arguments>
      <doors:arguments>English</doors:arguments>
      </doors:Arguments>
    </rdf:RDF>
  10. Para passar argumentos ao serviço, use o elemento <doors:arguments>. Digite uma sequência no texto do elemento que representa os argumentos necessários. O serviço DXL transforma essa sequência nos argumentos requeridos pela função DXL de serviços. O exemplo mais fácil mostra um único parâmetro, English, que é passado à função getHelloString. Se uma função DXL esperar dois parâmetros, a solicitação será semelhante a este exemplo:
    <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.
  11. Se você tiver argumentos que não são do tipo sequência, deverá convertê-los no tipo apropriado usando DXL. Por exemplo, se um argumento for um número inteiro, será possível usar a operação intOf para converter a sequência que foi extraída da lista separada por vírgula em um valor do tipo int. Em seguida, será possível passar o valor no método.
    O conteúdo da resposta é semelhante 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>

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.

Arquivos de amostra estão incluídos na instalação do cliente DOORS. O arquivo de amostra hierarchy.dxl mostra como usar o serviço OSLC DXL para obter informações sobre a hierarquia de módulo.

Ícone de vídeo Vídeo

Canal Jazz.net
Canal Software Education

Ícone Aprender Cursos

IoT Academy
Skills Gateway

Ícone Perguntar Comunidade

Jazz.net
Fóruns Jazz.net
Biblioteca Jazz.net

Ícone Suporte Suporte

IBM Support Community
Wiki de implementação