Usando a API de Serviços da Web Remotos

É possível usar os serviços da Web do IBM® Rational Asset Manager em seus aplicativos.

Sobre Esta Tarefa

Atenção: A API de serviços da Web e o mecanismo de download e upload HTTP são API interna e não suportada. Utilize a seu próprio risco.

O Rational Asset Manager publica serviços da Web que permitem trabalhar com o repositório. Utilize o arquivo WSDL (Web Services Descriptor Language) do Rational Asset Manager para desenvolver aplicativos customizados que interajam com o servidor do Rational Asset Manager.

Procedimento

Para conectar-se ao servidor Rational Asset Manager usando os serviços da Web:

  1. Navegue para a página Extensões no Web client do Rational Asset Manager.
  2. Em Serviços da Web, clique no link RAM1.wsdl para fazer download do arquivo WSDL.
  3. Para usar o serviço da Web, você deve gerar os proxies no lado do cliente a partir do WSDL para interagir com o servidor.
  4. Assim que os proxies forem gerados para o WSDL, acesse a seguinte URL de serviços da Web: http://server:port/com.ibm.ram.repository.web.ws.was/RAMServices, em que server é o nome do host do servidor, port é o número da porta, com.ibm.ram.repository.web.ws.was é o aplicativo da Web de serviços da Web e RAMServices é o local no qual o serviço da Web está disponível. O cliente deve ativar a redireção ao fazer uma chamada, pois RAMServices redireciona a chamada para o local apropriado automaticamente.

    Clientes podem acessar http://server:port/com.ibm.ram.repository.web.ws.was/RAMServices para obter os serviços. Esse local único para chamar serviços da Web redirecionará o cliente ao local do servidor anônimo em http://server:port/com.ibm.ram.repository.web.ws.was/services/RAM1 ou ao local de autenticação básica em http://server:port/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1, dependendo da presença de credenciais do usuário na solicitação.

    Se os clientes preferem acessar diretamente os serviços baseados em autenticação anônima e básica, eles podem fazer isso utilizando os terminais http://server:port/com.ibm.ram.repository.web.ws.was/services/RAM1 e http://server:port/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1, respectivamente.

  5. Conecte ao servidor:
    • Se desejar se conectar como um usuário registrado, forneça o nome de usuário e a senha utilizando autenticação básica HTTP.
    • Se desejar se conectar anonimamente, não forneça um nome de usuário e uma senha.
  6. O Rational Asset Manager tem um esquema de licença que fornece uma licença para cada usuário que se conecta ao servidor. Se você fizer várias chamadas e desejar manter o mesmo cache de licença, a conexão com o servidor e suas sessões manterão a mesma licença.
  7. Use a API localizada no Javadoc do Rational Asset Manager, que está na seção Referência da ajuda.

Resultados

Lembre-se: Para conectar-se utilizando uma conexão segura HTTPS SSL, confirme se a chave pública do servidor está localizada no conjunto de chaves do cliente para que o HTTPS funcione.

Exemplo

Uma classe de exemplo para chamar serviços da Web:
public class
RAMClient {
  public static final String RAM_LOCATION = "http://server:port/com.ibm.ram.repository.web.ws.was";

  public void doSearchAndDownload() throws Exception {
    String SECURE_PREFIX = "/RAMSecure"; // A ser utilizado quando nome de usuário e senha são fornecidos
    String RAM_WS_LOCATION = RAM_LOCATION + SECURE_PREFIX + "/services/RAM1";
    String USERNAME = "admin";
    String PASSWORD = "admin";

    // Stub de Serviços da Web do Constructo
    RAM1 ramWebService = new RAM1ServiceLocator().getRAM1(new URL(RAM_WS_LOCATION));
    if (ramWebService instanceof Stub) {
      Stub axisStub = (Stub) ramWebService;
      // Configurar nome do usuário e senha
      axisStub.setUsername(USERNAME);
      axisStub.setPassword(PASSWORD);
    }

    // Obter constantes para chamar Serviços da Web
    Constants constants = ramWebService.getConstants();

    // Procurar recursos com nome iniciando com 'soa' e de propriedade do usuário 'admin'.
    String[] queries = new String[2];
    queries[0] = constants.getQUERY_NAME()+":(soa*)";
    queries[1] = constants.getQUERY_OWNER()+":(admin)";
    SearchResultSO searchResults = ramWebService.search(queries, null, true, 
      constants.getSORT_LAST_MODIFIED(), 0, -1, -1, false, Locale.getDefault().toString());

    // Fazer Download de recursos obtidos a partir da procura
    String RAM_ASSET_LOCATION = RAM_LOCATION + SECURE_PREFIX + "/RAMAssetAccess.jsp?";
    SearchAssetInformationSO[] searchAssets = searchResults.getSearchAssets();
    for (int ac = 0; ac < searchAssets.length; ac++) {
      String assetID = searchAssets[ac].getGUID();
      String assetVersion = searchAssets[ac].getVersion();

      String encodedAssetID = URLEncoder.encode(assetID, "UTF-8");
      String encodedAssetVersion = URLEncoder.encode(assetVersion, "UTF-8");

      String assetLocation = RAM_ASSET_LOCATION + "assetid="+encodedAssetID+"&version="+encodedAssetVersion;
      downloadAssetUsingHTTPGet(assetLocation, USERNAME, PASSWORD);
    }
  }

  private void downloadAssetUsingHTTPGet(String assetLocation, String username, String password) {
    // Fazer Download de recurso
  }
}

Feedback