Ferne Web-Services-API verwenden

Sie können IBM® Rational Asset Manager-Web-Services in Ihren Anwendungen verwenden.

Informationen zu diesem Vorgang

Achtung: Die Web-Services-API und die HTTP-Mechanismen zum Hoch- und Herunterladen sind API-intern und werden nicht unterstützt. Die Verwendung erfolgt auf Ihr eigenes Risiko.

Rational Asset Manager publiziert Web-Services, die Ihnen die Arbeit mit dem Repository ermöglichen. Verwenden Sie die WSDL-Datei (WSDL = Web Services Descriptor Language) von Rational Asset Manager, um angepasste Anwendungen zu entwickeln, die mit dem Rational Asset Manager-Server interagieren.

Vorgehensweise

Gehen Sie wie folgt vor, um unter Verwendung der Web-Services die Verbindung zum Rational Asset Manager-Server herzustellen:

  1. Navigieren Sie zu der Seite Erweiterungen im Rational Asset Manager-Web-Client.
  2. Klicken Sie unter 'Web-Services' auf den Link RAM1.wsdl, um die WSDL-Datei herunterzuladen.
  3. Um den Web-Service verwenden zu können, müssen Sie die clientseitigen Proxys aus der WSDL für die Interaktion mit dem Server generieren.
  4. Nachdem die Proxys für die WSDL generiert wurden, greifen Sie auf die folgende URL für Web-Services zu: http://Server:Port/com.ibm.ram.repository.web.ws.was/RAMServices. Dabei ist Server der Hostname des Servers, Port die Portnummer, com.ibm.ram.repository.web.ws.was die Web-Services-Webanwendung und RAMServices die Position, an der der Web-Service verfügbar ist. Der Client sollte beim Senden des Aufrufs die Umleitung ermöglichen, da RAMServices den Aufruf automatisch zu der entsprechenden Position umleitet.

    Clients können auf http://Server:Port/com.ibm.ram.repository.web.ws.was/RAMServices zugreifen, um die Services abzurufen. Diese einzelne Position zum Aufrufen von Web-Services leitet den Client, abhängig davon, ob in der Anforderung Benutzerberechtigungsnachweise vorhanden sind, entweder zu der anonymen Serverposition unter http://Server:Port/com.ibm.ram.repository.web.ws.was/services/RAM1 oder zu der Basisauthentifizierungsposition unter http://Server:Port/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1 um.

    Wenn Clients bevorzugen, direkt auf die Services zuzugreifen, die auf der anonymen Anmeldung und der Basisauthentifizierung basieren, kann der Zugriff unter Verwendung des Endpunkts http://Server:Port/com.ibm.ram.repository.web.ws.was/services/RAM1 bzw. http://Server:Port/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1 erfolgen.

  5. Stellen Sie die Verbindung zum Server her:
    • Wenn die Verbindung als angemeldeter Benutzer hergestellt werden soll, geben Sie den Benutzernamen und das Kennwort unter Verwendung der HTTP-Basisauthentifizierung an.
    • Wenn die Verbindung anonym hergestellt werden soll, geben Sie keinen Benutzernamen und kein Kennwort an.
  6. Rational Asset Manager verfügt über ein Lizenzierungsschema, das jedem Benutzer, der die Verbindung zum Server herstellt, eine Lizenz erteilt. Wenn mehrere Aufrufe ausgeführt werden und dieselbe Lizenz verwendet werden soll, speichern Sie die Verbindung zu dem Server zwischen; Ihre Sitzungen verwenden dann weiterhin dieselbe Lizenz.
  7. Verwenden Sie die API in der Rational Asset Manager-Javadoc, die sich im Referenzabschnitt der Hilfe befindet.

Ergebnisse

Hinweis: Um die Verbindung mithilfe einer sicheren HTTPS-SSL-Verbindung herzustellen, müssen Sie bestätigen, dass sich der öffentliche Schlüssel des Servers im Schlüsselring des Clients befindet, damit HTTPS funktioniert.

Beispiel

Eine Beispielklasse zum Aufrufen von Web-Services:
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"; // Zu verwenden, wenn Benutzername und Kennwort angegeben werden
    String RAM_WS_LOCATION = RAM_LOCATION + SECURE_PREFIX + "/services/RAM1";
    String USERNAME = "admin";
    String PASSWORD = "admin";

    // Web-Services-Stub erstellen
    RAM1 ramWebService = new RAM1ServiceLocator().getRAM1(new URL(RAM_WS_LOCATION));
    if (ramWebService instanceof Stub) {
      Stub axisStub = (Stub) ramWebService;
      // Benutzername und Kennwort definieren
      axisStub.setUsername(USERNAME);
      axisStub.setPassword(PASSWORD);
    }

    // Konstanten zum Aufrufen der Web-Services abrufen
    Constants constants = ramWebService.getConstants();

    // Suche nach Assets mit Namen, die mit 'soa' beginnen und deren Eigner der Benutzer 'admin' ist
    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());

    // Bei der Suche gefundene Assets herunterladen
    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) {
    // Asset herunterladen
  }
}

Feedback