Vous pouvez utiliser les services Web IBM® Rational Asset Manager dans vos applications.
Pourquoi et quand exécuter cette tâche
Avertissement : L'API de services Web et le mécanisme de chargement et téléchargement HTTP sont des API internes et ne sont pas pris en charge.
Utilisez-les à vos risques et périls.
Rational Asset Manager publie des
services Web vous permettant d'interagir avec le référentiel.
Utilisez
le fichier WSDL (Web Services Descriptor Language)
de Rational Asset Manager
pour développer vos propres applications d'interaction avec le serveur
Rational Asset Manager.
Procédure
Pour vous connecter au serveur Rational Asset
Manager à l'aide des services Web :
- Accédez à la page Extensions dans le client Web de Rational Asset Manager.
- Sous Services Web, cliquez sur le lien RAM1.wsdl afin de
télécharger le fichier WSDL.
- Pour pouvoir utiliser les services Web d'interaction avec le serveur, vous
devez générer les proxys côté client à partir
du fichier WSDL.
- Une fois les proxys générés pour le fichier WSDL, accédez à l'URL de services
Web suivante : http://serveur:port/com.ibm.ram.repository.web.ws.was/RAMServices,
où serveur est le nom d'hôte du serveur, port est le numéro de port, com.ibm.ram.repository.web.ws.was est l'application de services Web et RAMServices est
l'emplacement du service Web. Le client doit autoriser la redirection lorsqu'il émet
l'appel, car RAMServices redirige automatiquement l'appel vers l'emplacement
approprié.
Les clients peuvent
accéder à http://serveur:port/com.ibm.ram.repository.web.ws.was/RAMServices pour
obtenir les services. Cet emplacement unique d'appel de services Web redirige le client soit
vers l'emplacement d'authentification standard, à
l'URL http://serveur:port/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1,
soit vers l'emplacement de serveur anonyme, à
l'URL http://serveur:port/com.ibm.ram.repository.web.ws.was/services/RAM1, selon que la
demande contient ou non des données d'identification d'utilisateur.
Si le client préfère accéder directement au service anonyme ou au service avec
authentification standard, il peut le faire en utilisant le point de
terminaison http://serveur:port/com.ibm.ram.repository.web.ws.was/services/RAM1 (pour le service anonyme)
ou le point de terminaison http://serveur:port/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1 (pour le
service avec authentification standard).
- Connectez-vous au serveur :
- Si vous souhaitez vous connecter en tant qu'utilisateur identifié, indiquez vos nom d'utilisateur et mot de passe en
utilisant le mécanisme d'authentification standard HTTP.
- Si vous souhaitez vous connecter anonymement, n'indiquez pas de nom d'utilisateur ni de mot
de passe.
- Rational Asset Manager fonctionne
avec un système de gestion des licences octroyant une licence à chaque utilisateur qui se connecte
au serveur. Si vous souhaitez utiliser la même licence chaque fois que vous émettez un appel, mettez en cache la connexion
au serveur. Vos sessions conserveront ainsi la même licence.
- Utilisez l'API décrite dans le Javadoc
de Rational Asset Manager, que vous
trouverez dans la section Référence de l'aide.
Résultats
A faire : Pour établir une connexion
sécurisée SSL (protocole HTTPS), vérifiez que la clé publique du serveur se trouve dans le fichier de clés
du client.
Exemple
Voici un exemple de classe pour appeler des services Web :
public class RAMClient {
public static final String RAM_LOCATION = "http://serveur:port/com.ibm.ram.repository.web.ws.was";
public void doSearchAndDownload() throws Exception {
String SECURE_PREFIX = "/RAMSecure"; // A utiliser lorsque le nom d'utilisateur et le mot de passe sont fournis
String RAM_WS_LOCATION = RAM_LOCATION + SECURE_PREFIX + "/services/RAM1";
String USERNAME = "admin";
String PASSWORD = "admin";
// Construire la souche (stub) des services Web
RAM1 ramWebService = new RAM1ServiceLocator().getRAM1(new URL(RAM_WS_LOCATION));
if (ramWebService instanceof Stub) {
Stub axisStub = (Stub) ramWebService;
// Ecrire le nom d'utilisateur et le mot de passe
axisStub.setUsername(USERNAME);
axisStub.setPassword(PASSWORD);
}
// Obtenir les constantes pour invoquer les services Web
Constants constants = ramWebService.getConstants();
// Rechercher les actifs dont le nom commence par 'soa' et appartenant à l'utilisateur '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());
// Télécharger les actifs résultant de la recherche
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) {
// Télécharger l'actif
}
}