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
, если она создавалась;