С появлением в системе управления HP IMC web-сервиса доступа RESTful eAPI, система может теперь не только управлять устройствами, но и быть частью общего комплекса управления мультивендорной средой, обеспечивая следующую ступень к автоматизации и гибкости настройки всей сетевой инфраструктуры.
iMC обеспечивает web сервисы на основе открытой сервис ориентированной архитектуры (SOA). Web сервисы главным образом выполнены через использование следующих методов: REST, SOAP, and XML-RPC. В сравнении с другими двумя методами REST-style функционал прозрачен и прост.
Доступ к iMC RESTful web сервисам может быть получен с помощью следующих Java REST клиентов:
- Apache Commons HTTP Client (3.1)
- Apache HTTP Client (4.x)
- SpringFramework (3.x) RestTemplate
- Jersey Client
- Android SDK
Что нужно проделать для написания клиента, использующего IMC-RS? Следующая секция покажет, как получить доступ к IMC-RS при помощи Java.
Приготовления
- Нужно инсталлировать и развернуть iMC 5.1 Enterprise или более позднюю версию. Запустить iMC и сделать autodiscovery.
- Загрузить и установить JDK 6 или JRE 6.
- Загрузить и установить Eclipse 3.6 или более позднюю версию.
- Загрузить Apache HttpClient 4.1 или более позднюю версию и разархивировать его на локальной машине .
- Убедится в доступности iMC-RS.
(введите "http://imc_host:port/imcrs/application.wadl
" в адресной строке бразузера, где imc_host имя хоста или IP адрес iMC сервера, и сервисный порт (8080 по умолчанию)). - В диалоговом окне аутентификации введите «admin» как имя пользователя и пароль и нажмите OK.
- Если браузер отобразит XML документ "
<application>
" как корневой узел, iMC-RS готов к использованию. - Запустите Eclipse и создайте проект.
- Select File > New > Java Project.
- Наберите имя проекта «MyRestClient» и нажмите Next.
- Нажмите Libraries tab, щёлкните Add External JARs, и добавьте разархивированные Apache HttpClient файлы httpcore-4.1.jar, httpclient-4.1.jar, and commons-logging-1.1.1.jar to the project.
- Нажмите Finish.
Скомпилируйте код iMC-RS клиента
- Щёлкните на проекте правой кнопкой мыши и выберите New > Class из меню.
- В wizard, наберите имя пакета (например, com.mycompany.rest) и имя класса (например, MyClient), выберите Create Main Class, и нажмите Finish.
- Введите следующий код в новом классе:
package com.mycompany.rest;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
public class MyClient {
public static void main(String[] args) throws Exception {
DefaultHttpClient client = new DefaultHttpClient();
client.getCredentialsProvider().setCredentials(
new AuthScope("imc_host", 8080, "iMC RESTful Web Services"),
new UsernamePasswordCredentials("admin", "admin"));
HttpGet get = new HttpGet("http://imc_host:8080/imcrs/plat/res/device");
get.addHeader("accept", "application/xml");
HttpResponse response = client.execute(get);
System.out.println(response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
}
}
Запустите код и посмотрите на результат
Выберите Run > Run или нажимте Ctrl + F11 для запуска кода. Консоль Eclipse отобразит следующее:
HTTP/1.1 200 OK
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><list start="0">......</list>
Вывод показывает что вы успешно сделали запрос информации об устройствах и получили информацию о первых десяти устройствах в формате XML.
Пример запроса детальной информации об устройстве:
Автор: kristina_k