next_inactive up previous


HostProcControl : руководство администратора
DocumentId:GradSoft-AG503-r-79-02.09.2000-v1.0b
GradSoft http://www.gradsoft.com.ua


Contents

Общие сведения

Обзор

Назначение пакета

HostProcControl - это CORBA сервис, предоставляющий API для удаленного управления операционной системой. С помощью HostProcControl вы можете создавать CORBA-объекты для таких вещей как:

  1. доступ к файловой системе сервера:
    1. чтение и запись файлов;
    2. удаление файлов;
    3. проверка статуса файлов;
  2. доступ к процессам на сервере:
    1. получение списка процессов;
    2. получение параметров выделенных процессов;
    3. запуск процессов;
    4. посылка сигналов.

Платформы

Пакет HostProcControl компилируется с такими моделями ORB как TAO, omniORB и ORBacus для UNIX, а также (пока) с ORBacus и только для Windows NT.

Поддержка

HostProcControl разрабатывается и поддерживается компанией GradSoft, домашняя страница GradSoft http://www.gradsoft.com.ua. Представленная версия продукта - HostProcControl-1.0.

Компоненты

Предмет поставки

В дистрибутив пакета входят:

  1. описание реализованного нами API в виде модуля HostControl.idl
  2. компоненты в исходном коде:
    1. сервер HostControlServer;
    2. вспомагательное ПО:
      1. инсталлер NtInstaller для установки HostControlServer как Windows NT сервиса;
      2. примеры клиентских приложений;
  3. средства управления компиляцией под Windows NT
  4. средства управления компиляцией под UNIX
  5. Документация, в т.ч.:
    1. Руководство программиста;
    2. Руководство администратора (этот файл);
Все перечисленные компоненты собраны в архив, который называется HostProcControl-1.0 и может быть архивом типа .zip или .tar.gz в зависимости от сделанного Вами выбора.


Инсталляция

Инсталлированный пакет содержит:

  1. idl-модуль HostControl.idl
  2. заголовочный файл стаба
  3. статические библиотеки С++ :

    платформа имя библиотеки содержание библиотеки
    UNIX libHostControlClient.a стаб
    UNIX libHostControl.a стаб, скелетон, серванты
    Windows NT HostControlClient.lib стаб
    Windows NT HostControl.lib стаб, скелетон, серванты

  4. исполняемые файлы:
Эти средства автоматичеки генерируюся из исходного кода (все за исключением HostControl.idl), после чего копируются в фиксированные подкаталоги специального "каталога инсталляции", имя которого определяется пользователем. Имена подкаталогов, в которых будут размещены idl-модуль, .h-файл, библиотеки и выполняемые файлы фиксированы: это "idl", "include", "lib" и "bin" соответственно. Данные подкаталоги должны быть созданы пользователем до начала инсталляции.

Компоненты, автоматически создающиеся в процессе использования пакета

При инсталляции сервера в качестве NT сервиса без спроса создается конфигурационный файл hpcservice.ini, в директории Windows (обычно C:\WinNT). Этот файл необходим для автоматического запуска сервиса при старте системы.

Порядок инсталляции пакета

Необходимое ПО

  1. CORBA ORB:
  2. Компилятор C++ :
  3. make:
  4. Специальное программное обеспечение: пакет GradC++ToolBox версии 1.0.3 или выше в конфигурации, включающей компоненты ProgOptions и ServiceOptions

Порядок инсталляции под UNIX

Порядок инсталляции под Windows NT

Тестирование

Общие сведения

Мы предлагаем 6 тестовых примеров, расположенных в подкаталогах 1,2,...6 каталога <project_root>/test и озаглавленных step1, step2, ... step6 соответственно. Описание каждого примера находится в соответствующем ему файле readme<number>.txt (где <number>=1,2,...6), расположенном в том же подкаталоге.

Примерный порядок тестирования

  1. Откомпилировать пакет HostProcControl как описано в подразделе "Порядок инсталляции" для Вашей платформы.
  2. Собрать примеры клиентcких приложений, для чего перейти в каталог <project_root>/test и воспользоваться командой make
  3. Перейти в каталог <project_root>/src/main и запустить HostControlServer со следующими опциями:

    	--userlist <project_root>/test/HostControlUserlist.ini -OAport 16001
    

    (смысл этих опций смотри в разделе "Использование" 4)

  4. Убедиться в работоспособности примеров, для чего последовательно перейти в каждый из подкаталогов 1,2,...6 каталога <project_root>/test и осуществить там следующие действия:
  5. Удалить бинарные файлы, для чего перейти в каталог <project_root>/test и воспользоваться командой make clean

Использование

Права доступа

В HostProcControl авторизация доступа осуществляется так:

  1. Существует т.н. "список пользователей" сервиса. Это файл, который создается перед запуском сервера, может редактироваться в процессе его работы и, вообще говоря, состоит из строк следующего формата:
    [spase]<name>[space]:[spase]<password>[space]
    
    где <name> и <password> - "имя" пользователя и его "пароль".

  2. Для того, чтобы получить доступ к функциональности сервера, клиентское приложение должно предоставить комплексный "ID клиента", состоящий из имени пользователя и его пароля. По получении этого ID, аналогичное ID ищется в списке пользователей сервиса. Доступ предоставляется, если аналогичное ID будет найдено и не предоставляется, если нет.

Важно: Путь к списку пользователей должен быть зафиксирован при старте сервера; рекомендуется использовать полный путь.

Запуск сервера

Общие сведения

Опции настройки сервиса

  1. Имя и положение списка пользователей:

    Имя файла-списка пользователей и передаются серверу как аргумент опции

    --userlist <filename>

    Если это имя НЕ является полным, список пользователей ищется относительно той же базы, что и конфигурационный файл 4.2.1.

  2. Инициальная ссылка:

    Публикация инициальной ссылки нашего сервиса осуществляется при помощи специального программного средства ServiceOptions, входящего в состав пакета GradC++ ToolBox. ServiceOptions автоматически обеспечивает доступ к серванту через объектную ссылку в стиле corbaloc и, дополнительно, позволяет опубликовать IOR тремя способами:

    1. если задана опция --with-naming, то инициальный объект отображаются в NamingService;
    2. если задана опция --ior-stdout, то объектная ссылка преобразуется в строку и печатается на стандартном выводе программы;
    3. если задана опция --ior-file-HostControlService <filename>, то объектная ссылка преобразуется в строку и помещается в файл с именем <filename>.

  3. Параметры ORB:

    Для того, чтобы клиент мог использовать ссылку в стиле corbaloc, Вы уже должны передать серверу как минимум один дополнительный параметр: Вы должны указать порт, через который будет осуществляться связь между компьютерами, при помощи обычной опции ORB:

    Другие параметры ORB можно также задать при помощи обычных для каждого случая опций, однако надо помнить, что даже в том случае, когда для запуска сервера используется конфигурационный файл, синтаксис опций должен быть таким же, как если бы они были заданы в командной строке. Определить параметры ORB при помощи тех синтаксических конструкций, которые используются в конфигурационном файле ORB-формата, можно при помощи дополнительного конфигурационного файла ORB-формата, который можно подключить при помощи опции ORB "-ORBconfig".

    Пример:

    ./HostControlServer --userlist HostControlUserlist.ini -ORBconfig orb.cf
    
    где в orb.cf, допустим, следующая конструкция:
    ooc.orb.server_timeout=2
    ooc.orb.oa.port=1025
    

Два способа запуcтить сервер под Windows NT

Для работы под управлением Windows NT сервер HostControlServer можно запустить двумя способами:

  1. Как консольное приложение
  2. Как NT сервис
причем опции, с которыми эта программа должна быть запущена, в обеих случаях те же. Для запуска программы в качестве консольного приложения вы просто командуете "HostControlServer" с нужными опциями. Для того, чтобы инсталлировавть и запустить HostControlServer как NT сервис используется специальная программа NtInstaller.exe. Порядок использования NtInstaller.exe следующий:

  1. Запустить NtInstaller.exe - всплывёт диалоговое окно, в котором необходимо указать следующие вещи:
    1. имя сервиса, под которым его можно видеть из служб Windows NT;
    2. путь к бинарному файлу HostControlServer.exe;
    3. коммандную строку, c которой сервис будет запущен.
  2. Для инсталляции сервиса нажать на кнопку Install and Start - сервер будет проинсталлирован как служба и запущен с указанными Вами параметрами.
    Детали:
    1. Eсли какая-то копия сервера уже была инсталлирована ранее, имеющийся сервис будет удален и инсталляция будет проведена заново.
    2. Сервис устанавливается в режиме автозапуска, т.е. он будет автоматически запускаться при каждой перезагрузке системы.
  3. Для получения информации об инсталлированном сервисе нажать на кнопку Service information - выводится статус сервиса, а в случае его работы - список аргументов, с которыми он был запущен.
  4. Для удалeния сервиса нажать на кнопку Uninstall.

Примерный порядок запуска

Пусть, для определенности, мы работаем под управлением Windows NT и сервер надо запустить как консольное приложение. Тогда оптимальный, на наш взгляд, способ запуска будет следующим:

  1. Назначить базу - выбрать каталог <base>, в котором будет находится конфигурационный файл HostControlConfig.ini и, в нашем случае, файл - список пользователей сервиса, и сохранить имя этого каталога в системной переменной HPC_CONFIG.

  2. Создать файл <base>\HostControlUserlist.ini с именами и паролями пользователей (- отметим, что на этапе запуска этот файл может быть пустым, и может быть заполнен после запуска сервера).

  3. Cоздать файл <base>\HostControlConfig.ini следующего формата
    (подробно см. http://www.gradsoft.kiev.ua/rus/Products/ToolBox/ProgOptions/ProgGuide/ProgrammingGuide_rus.html ):

    @"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 в файле задана так же, 
                        как если бы она была задана в командной строке */
    
    : это ПРИМЕР, но он может быть скопирован и использован без поправок

  4. Запустить 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 могут получить полный контроль над операционной системой сервера. Поэтому

  1. думайте о рисках безопасности;
  2. следуйте правилам:

Удаление

  1. Только для Windows NT:
    1. запустить NtInstaller и удалить NT сервис HostControl, если он установлен;
    2. удалить файл hpcservice.ini в каталоге Windows (обычно C:\WinNT), если такой существует.
  2. Удалить конфигурационный файл и список пользователей, если они создавались;
  3. Удалить системную переменную HPC_CONFIG, если она создавалась;
  4. Удалить каталог инсталляции либо файлы типа HostControl<smth> из данного каталога; список файлов, которые должны быть уничтожены, смотри в разделе Компоненты 1.2.2.
  5. Удалить каталог, в котором вы развернули исходный архив проекта.

История документа

09.04.2001
- текущий релиз; основные отличия от документа, вошедшего в состав предыдущего релиза HostProcControl-1.0b2:
  1. Расширен раздел Общие сведения;
  2. Добавлен раздел Удаление.
24.02.2001
- первая редакция.


next_inactive up previous
GradSoft