HostProcControl - это CORBA сервис, предоставляющий API для удаленного управления операционной системой. С помощью HostProcControl вы можете создавать CORBA-объекты для таких вещей как:
Пакет HostProcControl компилируется с такими моделями ORB как TAO, omniORB и ORBacus для UNIX, а также (пока) с ORBacus и только для Windows NT.
HostProcControl разрабатывается и поддерживается компанией GradSoft,
домашняя страница GradSoft http://www.gradsoft.com.ua.
Представленная версия продукта - HostProcControl-1.0.
В дистрибутив пакета входят:
Инсталлированный пакет содержит:
| платформа | имя библиотеки | содержание библиотеки |
| UNIX | libHostControlClient.a | стаб |
| UNIX | libHostControl.a | стаб, скелетон, серванты |
| Windows NT | HostControlClient.lib | стаб |
| Windows NT | HostControl.lib | стаб, скелетон, серванты |
При инсталляции сервера в качестве NT сервиса без спроса создается конфигурационный файл hpcservice.ini,
в директории Windows (обычно C:\WinNT).
Этот файл необходим для автоматического запуска сервиса при старте системы.
HostProcControl.tar.gz в избранном Вами каталоге (в дальнейшем этот каталог мы будем называть "корневым каталогом проекта", <project_root> ).
<project_root>
./configure
--help.
gmake install
<project_root> и воспользоваться командой make clean
nmake, cl и xcopy в переменной среды пользователя PATH.
HostProcControl.tar.gz в избранном Вами каталоге (в дальнейшем
этот каталог мы будем называть "корневым каталогом проекта", <project_root> ).
env_inc.nt.mak в подкаталоге <project_root>\config;
| имя переменной | описание |
| PROJECT_ROOT | <project_root> (корневой каталог проекта) |
| INSTALL_DIR | Каталог инсталляции |
| ORB_DIR | Корневой каталог ORB |
| MSVC_DIR | Корневой каталог Microsoft Visual Studio |
| GEN_DIR | Каталлог инсталляции пакета GradC++ToolBox |
<project_root> и воспользоваться
командой make
<project_root> и воспользоваться
командой make install
<project_root>
и воспользоваться командой make clean
Мы предлагаем 6 тестовых примеров, расположенных в подкаталогах 1,2,...6 каталога
<project_root>/test и озаглавленных step1, step2, ... step6 соответственно.
Описание каждого примера находится в соответствующем ему файле readme<number>.txt
(где <number>=1,2,...6), расположенном в том же подкаталоге.
<project_root>/test и воспользоваться командой make
<project_root>/src/main и запустить HostControlServer
со следующими опциями:
--userlist <project_root>/test/HostControlUserlist.ini -OAport 16001
(смысл этих опций смотри в разделе "Использование" 4)
<project_root>/test и осуществить там следующие действия:
-ORBInitRef HostControlService=corbaloc::127.0.0.1:16001/HostControlService
<project_root>/test и воспользоваться командой make clean
В HostProcControl авторизация доступа осуществляется так:
[spase]<name>[space]:[spase]<password>[space]где <name> и <password> - "имя" пользователя и его "пароль".
John:Johnson nsh:gsh another_name : another_password
Три вещи:
При помощи опций настройки сервиса 4.2.2, которые следует передать в HostControlServer
одним из двух способов:
В командной строке должны находится ЛИБО опции настройки сервиса, ЛИБО особые (управляющие) опции.
Управляющих опций две: --config <filename> и --help. Опция --config <filename>
указывает, что опции настройки сервиса находятся в файле конфигурации <filename>,
опция --help предотвращает запуск сервера и обеспечивает вывод на экран стандартного
help-сообщения.
--config <filename>
где <filename> - имя файла.
HostControlConfig.ini
C:\WINNT), либо каталог /etc для UNIX.
Для того, чтобы сменить базу, нужно выбрать другой каталог и сохранить его имя
в системной переменной HPC_CONFIG.
Имя файла-списка пользователей и передаются серверу как аргумент опции
--userlist <filename>
Если это имя НЕ является полным, список пользователей ищется относительно той же базы, что и конфигурационный файл 4.2.1.
Публикация инициальной ссылки нашего сервиса осуществляется при помощи специального программного средства ServiceOptions, входящего в состав пакета GradC++ ToolBox. ServiceOptions автоматически обеспечивает доступ к серванту через объектную ссылку в стиле corbaloc и, дополнительно, позволяет опубликовать IOR тремя способами:
--with-naming, то инициальный объект отображаются в NamingService;
--ior-stdout, то объектная ссылка преобразуется в строку и печатается
на стандартном выводе программы;
--ior-file-HostControlService <filename>, то объектная ссылка
преобразуется в строку и помещается в файл с именем <filename>.
Для того, чтобы клиент мог использовать ссылку в стиле corbaloc, Вы уже должны передать серверу как минимум один дополнительный параметр: Вы должны указать порт, через который будет осуществляться связь между компьютерами, при помощи обычной опции ORB:
-OAport, если вы используете ORBacus
-ORBport, если вы используете TAO
-ORBpoa_iiop_port, если вы используете omniORB
-ORBconfig".
Пример:
./HostControlServer --userlist HostControlUserlist.ini -ORBconfig orb.cfгде в orb.cf, допустим, следующая конструкция:
ooc.orb.server_timeout=2 ooc.orb.oa.port=1025
Для работы под управлением Windows NT сервер HostControlServer можно запустить двумя способами:
NtInstaller.exe.
Порядок использования NtInstaller.exe следующий:
Пусть, для определенности, мы работаем под управлением Windows NT и сервер надо запустить как консольное приложение. Тогда оптимальный, на наш взгляд, способ запуска будет следующим:
<base>, в котором будет находится конфигурационный файл
HostControlConfig.ini и, в нашем случае, файл - список пользователей сервиса, и сохранить
имя этого каталога в системной переменной HPC_CONFIG.
<base>\HostControlUserlist.ini с именами и паролями пользователей
(- отметим, что на этапе запуска этот файл может быть пустым, и может быть заполнен после запуска сервера).
<base>\HostControlConfig.ini следующего формата
@"ProgOptions config file" // Эта штука должна стоять в начале первой строки
# This is config file for HostControlService realized by executable:
HostControlServer.exe /* Первым "значащим" словом файла
должно быть имя программы */
# users list:
--userlist HostControlUserlist.ini // Файл - список пользователей
# options for ORB:
-OAport 16001 /* Внимание: опция ORB в файле задана так же,
как если бы она была задана в командной строке */
: это ПРИМЕР, но он может быть скопирован и использован без поправок
HostControlServer.exe без всяких опций.
| Сообщение | Описание ошибки | Действия программы | |
| 1 | error of StartServiceCtrlDispatcher | только для WinNT: Ошибка старта сервиса, запускаемого менеджером сервисов | завершение работы |
| 2 | error of parsing of <filename> | ошибочный формат файла конфигурации | завершение работы |
| 3 | filename necessary is NULL | отсутствует аргумент опции "--config" либо "--userlist" |
завершение работы |
| 4 | file to read <filename> does not exist | неправильно задано полное имя файла конфигурации либо файла-списка пользователей | завершение работы |
| 5 | file to read <filename> does not exist in base directory <directory_name> | файл конфигурации либо файл-список пользователей не найден в базовом каталоге | завершение работы |
| 6 | CORBA System Exception | ошибочные опции ORB | завершение работы |
| 7 | error while orb destroing | ошибка разрушения ORB, возможна при завершении работы программы | никаких |
| 8 | Server has been activated | нормальный старт | запуск сервера |
Клиентские приложения, использующие HostProcControl, должны быть скомпилированы с библиотекой HostControlClient.lib (для Windows NT) либо libHostControlClient.a (для UNIX) в дополнение к обычным библиотекам ORB, включая NamingService.
Помни об опциях, с которыми был запущен сервер!
Внимание: клиенты HostProcControl могут получить полный контроль над операционной системой сервера. Поэтому
C:\WinNT),
если такой существует.
HPC_CONFIG, если она создавалась;