Utilización de API de servicios web remotos

Puede utilizar los servicios web de IBM® Rational Asset Manager en las aplicaciones.

Acerca de esta tarea

Atención: La API de servicios web y el mecanismo de carga y descarga de HTTP son API internas y no están soportadas. Utilícelas bajo su propia responsabilidad.

Rational Asset Manager publica servicios web que permiten trabajar con el repositorio. Utilice el archivo del Lenguaje de descriptor de servicios web (WSDL) de Rational Asset Manager para desarrollar aplicaciones personalizadas que interactúen con el servidor Rational Asset Manager.

Procedimiento

Para conectarse al servidor Rational Asset Manager utilizando los servicios web:

  1. Navegue hasta la página Ampliaciones en el cliente web de Rational Asset Manager.
  2. En servicios web, pulse en el enlace RAM1.wsdl para descargar el archivo WSDL.
  3. Para utilizar el servicio web, debe generar los proxies del lado del cliente desde el WSDL para interactuar con el servidor.
  4. Cuando se hayan generado los proxies para el WSDL, acceda al URL siguiente de servicios web: http://servidor:puerto/com.ibm.ram.repository.web.ws.was/RAMServices, donde servidor es el nombre de host del servidor, puerto es el número de puerto, com.ibm.ram.repository.web.ws.was es la aplicación web de los servicios web y RAMServices es la ubicación donde el servicio web está disponible. El cliente debería habilitar el redireccionamiento cuando se hace una llamada, ya que los servicios RAMServices se redirigen automáticamente a la llamada en la ubicación adecuada.

    Los clientes puede acceder a http://servidor:puerto/com.ibm.ram.repository.web.ws.was/RAMServices para obtener los servicios. Esta única ubicación para invocar los servicios web redirigirá el cliente a la ubicación del servidor anónimo en http://servidor:puerto/com.ibm.ram.repository.web.ws.was/services/RAM1 o a la ubicación de autenticación básica en http://servidor:puerto/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1, según la presencia de credenciales de usuario en la petición.

    Si los clientes prefieren acceder directamente a los servicios basados en autenticación básica y anónima, pueden hacerlo utilizando los puntos finales http://servidor:puerto/com.ibm.ram.repository.web.ws.was/services/RAM1 yhttp://servidor:puerto/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1 respectivamente.

  5. Conecte al servidor:
    • Si quiere conectar como usuario conectado, proporcione el nombre de usuario y contraseña utilizando la autenticación básica HTTP.
    • Si quiere conectar de forma anónima, no proporcione nombre de usuario y contraseña.
  6. Rational Asset Manager tiene un esquema de licencias que proporciona una licencia por cada usuario que se conecta al servidor. Si hace múltiples invocaciones y quiere mantener la misma memoria caché de licencia, la conexión al servidor y sus sesiones mantendrán la misma licencia.
  7. Utilice la API que se encuentra en el Javadoc de Rational Asset Manager, ubicado en la sección Referencia de la ayuda.

Resultados

Recuerde: Para conectar utilizando una conexión segura SSL HTTPS, confirme que la clave pública fuera del servidor se encuentra en el conjunto de claves del cliente para que HTTPS funciones.

Ejemplo

Una clase de ejemplo para la invocación de servicios:
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"; // To be used when username and password are provided
    String RAM_WS_LOCATION = RAM_LOCATION + SECURE_PREFIX + "/services/RAM1";
    String USERNAME = "admin";
    String PASSWORD = "admin";

    // Construct WebSerivces stub
    RAM1 ramWebService = new RAM1ServiceLocator().getRAM1(new URL(RAM_WS_LOCATION));
    if (ramWebService instanceof Stub) {
      Stub axisStub = (Stub) ramWebService;
      // Set user name and password
      axisStub.setUsername(USERNAME);
      axisStub.setPassword(PASSWORD);
    }

    // Get constants for invoking WebServices
    Constants constants = ramWebService.getConstants();

    // Search for assets with name starting with 'soa' and owned by 'admin' user.
    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());

    // Download assets got from search
    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) {
    // Download asset
  }
}

Comentarios