DevSecOps

18 abr, 2013

Crie um complemento do Firefox para acessar servidores OSLC

Publicidade

Interfaces com o usuário desnecessariamente complicadas confundem os usuários

É importante manter uma interface com o usuário simples, para ter uma boa usabilidade. Esse fato diz respeito às ferramentas de gerenciamento de ciclo de vida do aplicativo (ALM). As ferramentas ALM precisam oferecer suporte para muitos casos de uso para muitas funções, como desenvolvedor, líder de equipe, gerente de projeto ou proprietário de produto. Por isso, as interfaces com o usuário dessas ferramentas são geralmente complicadas por dois problemas:

  • Primeiro, são incluídos muitos widgets (como botões, campos de texto, guias e links) para editar todas as propriedades de recursos a qualquer momento. No entanto, nem todos os widgets são usados, pois os usuários não editam propriedades de recursos com a mesma frequência. Se widgets de uso frequente e de uso ocasional forem exibidos ao mesmo tempo, os usuários podem se confundir facilmente. O ideal é exibir apenas os widgets que os usuários precisem para editar propriedades;
  • Segundo, widgets para editar propriedades de recursos ou para criar recursos são sempre incluídos em páginas da web e visualizações (parte de páginas da web) em particular. Os usuários precisam chegar a destinos como páginas da web e visualizações, clicando em links e guias várias vezes, e então editar as propriedades dos recursos ou criar recursos. No entanto, chegar a um destino não é uma ação essencial. O ideal é que os usuários editem as propriedades de recursos ou criem recursos sem etapas não essenciais para chegar a destinos.

image001

Este artigo soluciona esses dois problemas de ferramentas ALM com suporte para Open Services for Lifecycle Collaboration (OSLC).

OSLC padroniza a maneira como ferramentas de ciclo de vida podem compartilhar dados (solicitações de mudança e casos de teste, por exemplo). OSLC usa Representational State Transfer (REST) para associar dados nessas ferramentas para integração, o que é um dos grandes aspectos do OSLC.

O exemplo neste artigo usa a maneira padrão para melhorar a usabilidade, não para integração. Em servidores com suporte a OSLC, os recursos podem ser criados, lidos, atualizados e excluídos por serviços RESTful. Isso significa que é possível criar interfaces com o usuário com boa usabilidade ao chamar esses serviços da maneira que você escolher, em vez de continuar usando UIs empacotadas com o servidor.

Na abordagem que este artigo propõe, são preparados widgets para editar propriedades de recursos e criar recursos diretamente. Em seguida, são compostas interfaces com o usuário por combinações de widgets, que podem ser customizados pelos usuários (veja a Figura 2). Essa abordagem soluciona os dois problemas desta maneira:

  • Os usuários podem customizar combinações em UIs de acordo com seus propósitos, para reduzir widgets desnecessários.
  • Os usuários podem editar propriedades de recursos e criar recursos diretamente, usando os widgets em combinação sem etapas não essenciais, como chegar a um destino.

image002

Um aplicativo cliente de amostra, criado como um complemento do Firefox, soluciona esses dois problemas. As quatro seções deste artigo explicam como criar e implementar esse complemento, que o autor chamou de FireOSLC:

Pré-requisitos de tecnologias e software

A seção Downloads deste artigo oferece uma amostra do complemento FireOSLC Firefox. Antes de ler os detalhes, faça o download de fireoslc.xpi e execute-o para entender este artigo rapidamente.

FireOSLC é executado como um complemento do Firefox, portanto, o único software necessário é o Firefox. FireOSLC chama um XPCOM (cross-platform component object model) pré-instalado para usar arquivos locais e o about:config do Firefox, portanto, é necessário versões do Firefox que ofereçam suporte a XPCOM. Este exemplo usa Firefox Versão 15.

Você usará estas tecnologias para implementar FireOSLC:

  • XUL (XML User Interface language)
  • JavaScript

Também é possível usar Cygwin e Perl para criar um pacote XPI (cross-platform installation) do FireOSLC.

Para testar a execução do FireOSLC, este exemplo usa a solução Rational para Collaborative Lifecycle Management (CLM), que inclui ferramentas de ALM com suporte a OSLC. Este artigo explica o caso de uso FireOSLC para criar, ler e atualizar recursos de OSLC nestes aplicativos: recursos de CM (Gerenciamento de Mudanças) no IBM® Rational Team Concert™, recursos de QM (Gerenciamento de Qualidade) no Rational® Quality Manager, e recursos de RM (Gerenciamento de Requisitos) no Rational Requirements Composer. Você usará dados dessas soluções para testar o FireOSLC:

  • Collaborative Lifecycle Management Versão 3.0.1
    • Servidor: testhost.testdomain
    • Porta: 9443
  • Conta
    • Nome de usuário: tester
    • Senha: testerx
  • Projeto de ciclo de vida
    • Rational Team Concert
      • Nome do projeto: TestProjectCM
      • Processo: Scrum
    • Rational Quality Manager
      • Nome do projeto: TestProjectQM
      • Processo: Processo V3 padrão de Gerenciamento de Qualidade
    • Rational Requirements Composer
      • Nome do projeto: TestProjectRM
      • Processo: Modelo do Rational Requirements Server

Visão geral da arquitetura

A Figura 3 mostra uma visão geral da arquitetura do FireOSLC. O quadrado maior, com o rótulo FireOSLC, é o FireOSLC geral. Os quadrados dentro do maior são pacotes de JavaScript que compõem o FireOSLC. Cada pacote JavaScript possui um prefixo com.fireoslc. Por exemplo, oslc_cm é uma abreviação de com.fireoslc.oslc_cm. Os quadrados com o canto inferior direito dobrado são entidades de dados que os usuários precisam editar. As setas mostram como os pacotes e entidades de dados interagem. As frases a seguir neste capítulo explicam a arquitetura em detalhes.

image003

Designs em detalhes

Siga estas instruções para implementar o FireOSLC (explicações a seguir):

  1. Processar serviços de OSLC;
  2. Ler, atualizar e criar recursos;
  3. Projetar a interface com o usuário;
  4. Acessar propriedades que não estão definidas em OSLC;
  5. Definir preferências no Firefox.

Processar serviços de OSLC

Para poder obter informações do servidor OSLC, os usuários precisam ser autenticados por ele. O pacote auth envia informações de contas dos usuários para solicitar autenticação de formulário.

A seguir, é necessário ler os recursos existentes ou criar novos recursos. É necessário obter recursos de consulta ou factories de criação.

Para processar os serviços OSLC, siga estas instruções:

  1. Use o serviço de raiz para solicitar informações e extraia a URL do catálogo do provedor de serviços;
  2. Use o catálogo do provedor de serviços para solicitar informações e extraia a URL do provedor de serviços;
  3. Use o provedor de serviços para solicitar informações:
    1. Extraia a URL do recurso de consulta para que os recursos existentes sejam lidos.
    2. Extraia a URL de factories de criação para que novos recursos sejam criados.

O pacote sprovider solicita informações através de serviços de OSLC, como o serviço raiz, catálogo de provedor de serviços e provedor de serviços (nessa ordem), e obtém recurso de consulta e factories de criação. Com XPath, a URL do serviço OSLC pode ser extraída das informações retornadas pelo serviço OSLC anterior. O pacote oslc_cm oferece XPaths para obter serviços OSLC para OSLC CM. É o mesmo que o pacote oslc_qm (OSLC QM) e o pacote oslc_rm (OSLC RM).

Ler, atualizar e criar recursos

Serviços de OSLC usam HTTP para ações de criação, recuperação, atualização e exclusão de recursos. FireOSLC oferece suporte para as operações de leitura, atualização e criação de recursos, mas não para exclusão. Isso porque a operação de exclusão não tem geralmente suporte em servidores OSLC tanto quanto as demais operações.

Para selecionar um recurso existente em servidores OSLC, é possível usar a Consulta OSLC. Para a operação de leitura, FireOSLC recupera um recurso por vez com o método HTTP get com o parâmetro de consulta oslc.where. Para a operação de atualização, FireOSLC atualiza o recurso recuperado durante a operação de leitura através do método HTTP put com a entrada do usuário. Para a operação de criação, FireOSLC cria um novo recurso através do método HTTP post com a entrada do usuário. O pacote consts contém propriedades definidas em OSLC. Essas propriedades de recursos podem ser acessadas durante operações de leitura, atualização e criação pelo FireOSLC.

O pacote oslc_cm realiza as operações para o recurso de CM do OSLC, Solicitação de Mudança. Da mesma forma, o pacoteoslc_qm realiza as operações para os recursos de QM do OSLC QM: Plano de Teste, Caso de Teste, Script de Teste, Registro de Execução de Teste, Resultado de Teste. O pacote oslc_rm realiza as operações para os recursos de RM do OSLC: Requisito e Coleção de Requisito.

Projetar a interface com o usuário

A interface com o usuário do FireOSLC é criada pelo pacote ui com XUL. Inclui seis áreas de janela. Este artigo usa a expressão “área de janela” para indicar uma área lógica na interface com o usuário do FireOSLC.

  1. Login;
  2. OSLC settings;
  3. Properties list;
  4. Create, Retrieve, Update;
  5. Properties;
  6. Results.

A Figura 4 ajudará a entender as explicações a seguir.

Login: Insira o nome do servidor com a porta, nome de usuário e senha para efetuar login no servidor OSLC. Em caso de sucesso, o status mostra conectado.

OSLC settings: Selecione um tipo de aplicativo OSLC, um provedor de serviços e um tipo de recurso.

Properties list: Essa área de janela corresponde à lista de propriedades na Figura 3. O formato é um texto de propriedades separadas por vírgula. Na lista de propriedades, é necessário escrever propriedades com namespaces que você deseja acessar durante operações de leitura, atualização ou criação de recursos.NotaPropriedades que não tenham sido incluídas na lista não podem ser acessadas durante as operações.
Create, Retrieve, Update and Properties: Selecione o botão de opções de R|U (Leitura ou Atualização) ou C (Criação).Nota: No FireOSLC, a operação de atualização não pode ser feita sem a operação de leitura.
  • Ao escolher o botão de opções R|U, selecione uma opção para o parâmetro de consulta oslc.where e escreva um valor para esse parâmetro. FireOSLC oferece suporte para estes três parâmetros: dcterms:identifier, dcterms:title, dcterms:description
  • Ao clicar no botão de opções R, um recurso correspondente à consulta oslc.where é buscado no servidor OSLC e as suas propriedades são exibidas na área de janela Properties. Se houver mais de um recurso correspondente à consulta oslc.where, um deles é retornado aleatoriamente.
  • Para alterar as propriedades mostradas na área de janela Properties após clicar no botão de opções R, escreva os novos valores em campos de texto ou selecione itens das listas de menu. Ao clicar no botão de opções U, os valores alterados são enviados ao servidor OSLC para atualizar as propriedades do recurso.
  • Ao selecionar o botão de opções C, escreva valores das propriedades na área de janela Properties. Ao clicar no botão C, as propriedades são enviadas ao servidor OSLC para criar um novo recurso.
Results
  • Um código retornado e a hora são mostrados quando operações de leitura, atualização e criação são executadas.
  • Um corpo retornado é mostrado na janela de diálogo ao clicar no botão body.

A Figura 4 mostra uma captura de tela da interface com o usuário do FireOSLC. A Figura 5 mostra uma captura de tela do Rational Team Concert, na qual aparece o mesmo item de trabalho mostrado na Figura 4.

image004 (1)

 

image005 (1)

Acessar propriedades que não estão definidas em OSLC

Com as três etapas acima, é possível acessar propriedades definidas na especificação de OSLC durante operações de leitura, atualização e criação de recursos em servidores OSLC. No entanto, ainda há dois desafios:

  • Como acessar propriedades que não são definidas na especificação do OSLC
  • Como acessar propriedades com representação de referência e com propriedades sem referência

As ferramentas de ALM frequentemente definem propriedades que não são definidas na especificação de OSLC. Algumas dessas propriedades são essenciais para operações em recursos. Por exemplo, sem a propriedade rtc_cm:filedAgainst, o recurso Solicitação de Mudança não pode ser criado no Rational Team Concert com as configurações padrão. FireOSLC oferece uma extensão de propriedade que é um arquivo externo, no qual é possível incluir as propriedades necessárias das ferramentas de ALM que devem ser acessadas durante operações de leitura, criação e atualização de recursos. O pacote oslc_ext lê dados do arquivo externo da extensão de propriedade para tornar as propriedades adicionais disponíveis durante operações em recursos.

Quando o tipo de valor de propriedades (dcterms:contributor, por exemplo) for referenciado, é necessário solicitar as informações necessárias da referência para ver quais valores foram definidos para as propriedades. As informações solicitadas devem ser processadas para extrair valores e, em seguida, os valores são mostrados nos widgets apropriados. As maneiras de processar as informações solicitadas diferem de acordo com as propriedades e com as ferramentas de ALM. Para processar essas propriedades do Rational Team Concert, o pacote oslc_ext oferece duas abordagens:

  • A primeira é solicitar informações da URL especificada para mostrar todos os valores selecionáveis em um menu suspenso. Por exemplo,
    • rtc_cm:filedAgainst
    • rtc_cm:type
    • oslc_cmx:priority
    • oslc_cmx:severity
    • dcterms:contributor
  • A segunda abordagem é solicitar informações da URL especificada de uma propriedade, como oslc:discussion, para mostrar o seu valor mais recente em uma caixa de texto.

FireOSLC lê dados da extensão de propriedades, fireoslc_prop_ext.xml (um arquivo externo), no qual é possível escrever tags XML para definir informações ou propriedades acessadas durante as operações. Também é possível usar estas tags no arquivo de extensão de propriedades:

  • oslc_ext_all
    • A tag oslc_ext_all é a tag de raiz, com tags oslc_ext como filhas.
  • oslc_ext
    • A tag oslc_ext possui xpath_ns e tags de propriedade como filhas para cada tipo de OSLC.
    • Atributo oslc_type: 0 é CM, 1 é QM, 2 é RM.
  • xpath_ns
    • A tag xpath_ns registra namespaces. Os namespaces registrados são usados em dois casos:
      • Para incluir propriedades em XML enviado ao servidor OSLC durante a operação de criação, namespaces são incluídos em um cabeçalho de XML.
      • Para acessar um nó (que corresponde a uma propriedade) em documento com base XML usando a função document.evaluate durante a operação de atualização, um namespace do nó é incluído no resolvedor de namespace (consulte o link em Recursos para “Introduction to using XPath in JavaScript”).
    • Atributo key: um prefixo de namespace.
    • Atributo url: a URL do namespace.
  • property
    • A tag property inclui informações sobre uma nova propriedade. Os atributos id e type são necessários.
      • Atributo id: o nome de uma propriedade
      • Atributo type: Read-only, text, list, rtc_ext
    • Uma propriedade cujo valor de type seja read-only é mostrada como um rótulo na interface com o usuário.
    • Uma propriedade cujo valor de type seja text é mostrada como uma caixa de texto na interface com o usuário.
    • Uma propriedade cujo valor de type seja list é mostrada como um menu suspenso na interface com o usuário. O atributo precisa de tags de item como filhas.
    • Uma propriedade cujo valor de type seja rtc_ext é mostrada como um menu suspenso ou uma caixa de texto (apenas oslc:discussion). id com valor de type rtc_ext seria rtc_cm:filedAgainst, rtc_cm:type, oslc_cmx:priority, oslc_cmx:severity, dcterms:contributor, oslc:discussion. O atributo precisa de quatro atributos adicionais: def_url, tgt_xpath, tgt_ns e tgt_name.
      • Atributo def_url: uma URL especificada que retorna informações de todos os valores e rótulos selecionáveis. Esse atributo pode ser vazio para oslc:discussion.
      • Atributo tgt_xpath: um XPath que enumera valores e rótulos selecionáveis.
      • Atributo tgt_ns: a URL do namespace da tag que inclui o rótulo
      • Atributo tgt_name: o nome da tag que inclui o rótulo. É necessário um prefixo de namespace para oslc:discussion (por exemplo, dc:description).
  • Tag item
    • A tag item inclui rótulos selecionáveis e valores de uma propriedade.
      • Atributo label: rótulo mostrado no item de menu.
      • Atributo value: valor enviado ao servidor OSLC se o rótulo for selecionado.

Por exemplo, você incluiria a tag property para acessar uma nova propriedade e a tag xpath_ns quando a nova propriedade tiver um prefixo que não seja definido na especificação OSLC. A Listagem 1 mostra um exemplo do arquivo de extensão de propriedades.

<oslc_ext_all>
<!-- Extensions for OSLC CM -->
<oslc_ext oslc_type="0">
<!-- Here are examples of properties in RTC.-->
<xpath_ns key="foaf" url="http://xmlns.com/foaf/0.1/"/>
<xpath_ns key="rtc_cm" url="http://jazz.net/xmlns/prod/jazz/rtc/cm/1.0/"/>
<xpath_ns key="oslc_cmx" url="http://open-services.net/ns/cm-x#"/>
<xpath_ns key="rdf" url="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
<xpath_ns key="dcterms" url="http://purl.org/dc/terms/"/>

<!-- xmlns:foaf="http://xmlns.com/foaf/0.1/" -->
<property id="dcterms:contributor" type="rtc_ext"
  def_url="https://testhost.testdomain:9443/ccm/oslc/users/?oslc.select=foaf:name"
  tgt_xpath="//foaf:Person"
  tgt_ns="http://xmlns.com/foaf/0.1/"
  tgt_name="name"/>

<!-- xmlns:dcterms="http://purl.org/dc/terms/" -->
<property id="rtc_cm:type" type="rtc_ext"
  def_url="https://testhost.testdomain:9443/ccm/oslc/types/_yJNt8vNgEeCl8oCPwVoRZA/"
  tgt_xpath="//rtc_cm:Type"
  tgt_ns="http://purl.org/dc/terms/" 
  tgt_name="title"/>

<property id="rtc_cm:filedAgainst" type="rtc_ext"
    def_url="https://testhost.testdomain:9443/ccm/oslc/categories.xml
?oslc.select=dcterms:title"
  tgt_xpath="//rtc_cm:Category"
  tgt_ns="http://purl.org/dc/terms/"
  tgt_name="title"/>

<property id="oslc_cmx:priority" type="rtc_ext"
    def_url="https://testhost.testdomain:9443/ccm/oslc/enumerations/
_yJNt8vNgEeCl8oCPwVoRZA/priority"
  tgt_xpath="//rtc_cm:Literal"
  tgt_ns="http://purl.org/dc/terms/"
  tgt_name="title"/>

<property id="oslc_cmx:severity" type="rtc_ext"
  def_url="https://testhost.testdomain:9443/ccm/oslc/enumerations/
_yJNt8vNgEeCl8oCPwVoRZA/severity"
  tgt_xpath="//rtc_cm:Literal"
  tgt_ns="http://purl.org/dc/terms/"
  tgt_name="title"/>

<property id="oslc:discussion" type="rtc_ext"
  def_url="this_field_of_oslc_discussion_is_not_used"
  tgt_xpath="//rdf:Description[rdf:type[@rdf:resource='
http://open-services.net/ns/core#Comment']]"
  tgt_ns="http://purl.org/dc/terms/"
  tgt_name="dc:description"/>

<!-- Here are examples of properties specific for user's ALM tools. -->
<xpath_ns key="t1" url="http://testhost.testdomain/"/>
<property id="t1:list1" type="list">
  <item label="label1" value="value1"/>
  <item label="label2" value="value2"/>
  <item label="label3" value="value3"/>
</property>
<property id="t1:readonly1" type="readonly"/>
<property id="t1:text1" type="text"/>
</oslc_ext>
<!-- Extensions for OSLC QM -->
<oslc_ext oslc_type="1"/>
<!-- Extensions for OSLC RM -->
<oslc_ext oslc_type="2">
<xpath_ns key="dc" url="http://purl.org/dc/terms/"/>
<property id="dc:identifier" type="readonly"/>
<property id="dc:modified" type="readonly"/>
<property id="dc:created" type="readonly"/>
<property id="dc:title" type="text"/>
<property id="dc:creator" type="readonly"/>
<property id="dc:contributor" type="text"/>
<property id="dc:description" type="text"/>
</oslc_ext>
</oslc_ext_all>

Definir preferências no Firefox

FireOSLC usa as preferências do Firefox. Todas as preferências têm um prefixo, por exemplo, extensions.fireoslc.servername para nome de servidor. A Tabela 1 mostra todas as preferências. Para configurar essas preferências, escreva about:config na barra de endereços do Firefox.

Nome da preferência Tipo Explicação
servername cadeia de caractere Armazena o nome do servidor com o número da porta.
username cadeia de caractere Armazena o nome de usuário.
plist cadeia de caractere Armazena a lista de propriedades.
log variáveis booleanas Especifica se o conteúdo do log é gravado em um arquivo local. O valor padrão é falso.
root_serv.cm
root_serv.qm
root_serv.rm
cadeia de caractere Um caminho dos serviços de raiz que retorna catálogos do provedor de serviços. É um caminho relativo para o nome do servidor. Os valores padrão são ccm/rootservices, qm/rootservices e rm/rootservices, nessa ordem.
workdir cadeia de caractere É um caminho para um diretório no qual o arquivo de extensão de propriedades (fireoslc_prop_ext.xml) e o arquivo de log estão armazenados. O valor padrão é c:\tmp.

Casos de uso

Esta seção explica como usar FireOSLC para criar, ler e atualizar recursos de CM, QM e RM do OSLC.

Gerenciamento de mudanças (CM)

Crie um recurso de Solicitação de Mudança no Rational Team Concert.

  1. Selecione Tools > FireOSLC.
  2. Insira o nome do servidor, nome de usuário e senha e clique em login.
    • Servidor: testhost.testdomain:9443/jts
    • Usuáriotester
    • Senha: testerx
  3. Se o login falhar na etapa anterior, certifique-se de que os cookies estão ativados.
    1. Abra Tools > Options > Privacy e acesse a seção History.
    2. Em Firefox will, clique em Use custom settings for history.
    3. Clique em Accept cookies from sites e Accept third-party cookies. Alternativa: em vez de clicar em Accept third-party cookies, clique em Exceptions, escreva o nome do seu servidor (por exemplo, testhost.testdomain), clique em AllowClose
    4. Clique em OK
  4. Clique em um tipo de OSLC, selecione um provedor de serviços e um tipo de recursos na área de janela de configurações de OSLC. Por exemplo,
    • Clique em CM.
    • Em Service Provider, selecione TestProjectCM.
    • Em Resource type, selecione ChangeRequest.
  5. Escreva properties na área de janela Properties list. Para Rational Team Concert, dcterms:title e rtc_cm:filedAgainst deve ser incluída. Por exemplo,
    dcterms:title,dcterms:description,dcterms:contributor,rtc_cm:type,rtc_cm:filedAgainst
  6. Selecione o botão de opções C na área de janela Create, Retrieve, Update.
  7. Escreva valores nas caixas de texto ou selecione valores nos menus suspensos ao lado dos rótulos de propriedade na área de janela de propriedade. Por exemplo,
    1. dcterms:title: escreva Function A returns an invalid value.
    2. rtc_cm:filedAgainst: selecione TestProjectCM
    3. dcterms:description: escreva Investigate a case of input value B.
    4. dcterms:contributor: selecione tester
    5. rtc_cm:type: selecione Defect
  8. Clique no botão C na área de janela Create, Retrieve, Update (Figura 6) e verifique se o código de sucesso (201) é exibido na área de janela Results. Um código de erro significa que o FireOSLC não criou um recurso de Solicitação de Mudança.
  9. Clique no botão body na área de janela Results e você verá a propriedade dcterms:identifier do recém-criado recurso de Solicitação de Mudança (Figura 7). Também é possível usar o cliente da web do Rational Team Concert para verificar se o recurso de Solicitação de Mudança foi criado.

image006

image007

Em seguida, leia o recurso recém-criado e atualize-o.

  1. Escreva properties na área de janela Properties list. Por exemplo,
    dcterms:identifier,oslc_cmx:priority,oslc_cmx:severity,oslc:discussion
  2. Selecione um tipo de operação e um parâmetro de consulta oslc.where e escreva um valor na área de janela Create, Retrieve, Update.
    • Selecione o botão de opções R|U.
    • Selecione dcterms:identifier em oslc.where no menu suspenso.
    • Escreva um valor que você viu na etapa de criação de recurso acima.
  3. Clique no botão R na área de janela Create, Retrieve, Update e verifique se o código de sucesso (200, por exemplo) é exibido na área de janela Results. Então você verá as propriedades do recurso na área de janela Properties (Figura 8). Um código de erro significa que o FireOSLC não leu o recurso de Solicitação de Mudança.
  4. Selecione e escreva valores. Por exemplo,
    • oslc_cmx:priority: selecione High
    • oslc_cmx:severity: selecione Critical
    • oslc:discussion: We need to fix it ASAP!
  5. Clique no botão U na área de janela Create, Retrieve, Update e verifique se o código de sucesso (200, por exemplo) é exibido na área de janela Results (Figura 9). Um código de erro significa que o FireOSLC não atualizou o recurso de Solicitação de Mudança.Nota: Internamente, oslc:discussion estendido por Rational Team Concert é executado separadamente por meio de post HTTP, portanto, dois códigos de sucesso serão mostrados se oslc:discussion for acessado com outras propriedades, como acima.
  6. Clique no botão body na área de janela Results para ver as propriedades atualizadas nas informações de recurso retornadas. Também é possível ver as propriedades atualizadas do recurso com o cliente de navegador da web do Rational Team Concert (Figura 10).

image008

image009

 

image010

Gerenciamento de Qualidade (QM)

Crie um recurso de TestCase no Rational Quality Manager.

  1. Clique em um tipo de OSLC, selecione um provedor de serviço e um tipo de recurso na área de janela de configurações de OSLC.
    • Clique em QM.
    • Selecione TestProjectQM em Service Provider.
    • Selecione TestCase em Resource type.
  2. Escreva propriedades na lista de propriedades. Por exemplo, dcterms:title
  3. Selecione o botão de opções C na área de janela Create, Retrieve, Update.
  4. Escreva um valor na caixa de texto na área de janela Properties. Por exemplo, para dcterms:title:TC0905
  5. Clique no botão C para criar um recurso TestCase e verifique se o código de sucesso (201, por exemplo) é exibido na área de janela Results.

Em seguida, leia o recurso TestCase recém-criado e atualize-o.

  1. Escreva propriedades na lista de propriedades. Por exemplo, dcterms:title,dcterms:description
  2. Selecione um tipo de operação e um parâmetro de consulta oslc.where e escreva um valor na área de janela Create, Retrieve, Update.
    • Selecione o botão de opções R|U.
    • Selecione dcterms:title em oslc.where no menu suspenso.
    • Escreva o mesmo valor da etapa 4. Por exemplo, TC0905
  3. Clique no botão R e verifique se o código de sucesso (200, por exemplo) é exibido na área de janela Results, e então você verá as propriedades na área de janela Properties.
  4. Escreva um valor. Por exemplo, dcterms:description: this is test description
  5. Clique no botão U e verifique se o código de sucesso (200, por exemplo) é exibido na área de janela Results.

A Figura 11 mostra uma captura de tela do recurso TestCase recém-criado no web client do Rational Quality Manager.

image011

Gerenciamento de Requisitos (RM)

Crie um recurso de Requisito no Rational Requirements Composer.

  1. Clique em um tipo de OSLC e selecione o provedor de serviço e o tipo de recurso na área de janela de configurações de OSLC:
    1. Clique em RM.
    2. Selecione TestProjectRM como provedor de serviços.
    3. Selecione Requirement como tipo de recurso.
  2. Escreva as propriedades na lista Properties. Por exemplo, dc:title
  3. Selecione o botão de opções C na área de janela Create, Retrieve, Update.
  4. Escreva valores na caixa de texto da área de janela properties. Por exemplo, Req0905
  5. Clique no botão C para criar um recurso de Requisito e verifique se o código de sucesso (201, por exemplo) é mostrado na área de janela Results.

Nota: Geralmente é possível confirmar o ID do recurso clicando no botão body na área de janela Results. No entanto, o Rational Requirements Composer 3.0.1 pode retornar um corpo vazio com o código de sucesso. Nesse caso, confirme o ID usando o web cliente do Rational Requirements Composer.

Em seguida, leia o recurso de Requisito recém-criado e atualize-o.

  1. Escreva estas propriedades, por exemplo, na lista de propriedades:
    dc:identifier,dc:title,dc:description
  2. Selecione um tipo de operação e um parâmetro de consulta oslc.where e escreva um valor na área de janela Create, Retrieve, Update. Por exemplo,
    1. Selecione o botão de opções R|U.
    2. Selecione dcterms:identifier em oslc.where no menu suspenso
    3. Escreva um valor que você verificou na etapa 5. Por exemplo, 71.
  3. Clique no botão R e verifique se o código de sucesso (200, por exemplo) é exibido na área de janela Results. Então você verá as propriedades na área de janela Properties.
  4. Escreva um valor na área de janela Properties. Por exemplo, dc:description: this is test description
  5. Clique no botão U e verifique se o código de sucesso (200, por exemplo) é exibido na área de janela Results.

A Figura 12 mostra uma captura de tela do recurso de Requisito recém-criado no web client do Rational Requirements Composer.

image012

Agradecimentos

O autor agradece a Masaki Wakao e Takehiko Amano pelo auxílio técnico.

Download

Descrição Nome Tamanho Método de download
Sample file for this article fireoslc_all.zip 35KB HTTP

Recursos

Aprender

Obter produtos e tecnologias

  • Faça o download da versão gratuita de avaliação do software Rational.
  • Avalie outros softwares IBM da forma que melhor lhe convier: faça o download da versão de avaliação, experimente-a on-line, use-a em um ambiente de nuvem ou passe algumas horas no Sandbox da SOA para saber como implementar arquitetura orientada a serviço de maneira eficiente.

Discutir

***

Sobre o autor: Ken Kumagai (theken) é staff software engineer na IBM no Japão. Ele é desenvolvedor na equipe do IBM Rational ClearCase. Um de seus interesses atuais é melhorar a usabilidade das ferramentas de desenvolvimento de software. Em seu tempo livre, ele gosta de ler livros no Starbucks mais próximo.

***

Artigo original está disponível em: http://www.ibm.com/developerworks/br/rational/library/firefox-add-on-oslc-servers/index.html