ModCBroker: Руководство Администратора
DocumentId:GradSoft-Cbroker-AG503-79-10.05.2000-3.2.0
Руслан Шевченко, Александр Яновец, Юлия Прокопенко
June 14, 2007
Contents
1 Введение
ModCBroker – модуль Apache, обеспечивающий трансляцию WWW запросов в
CORBA запросы. Модуль разрабатывается и поддерживается компанией
GradSoft, дистрибутив ModCBroker в исходных кодах доступен по адресу
http://www.gradsoft.kiev.ua. Версия ModCbroker, для которого написанно это
руководство: 3.2.0
2 Компиляция и Инсталляция ModCBroker
2.1 Для UNIX
2.1.1 Необходимое ПО:
- Операционная система: Sun Solaris 2.6 или выше, Linux с ядром 2.2.0
или выше, FreeBSD версии 4.7 или выше. В принципе возможен
перенос на любую posix-совместимую платформу.
- ORB - один из ORBacus-4.1, omniORB, TAO, MICO
- Apache - 2.2.3 или выше.
- Компилятор C++, совместимый с используемым брокером объектных
запросов
- Make - GNU make версии 3.76 или выше.
2.1.2 Компиляция ModCbroker как DSO модуля
Необходимые предусловия:
Процесс инсталляции:
- Развернуть архив ModCBroker.tar.gz с помощью последовательности
команд:
- gzip -d ModCBroker.tar.gz
- tar -xvf ModCBroker.tar
- Перейти в образовавшуюся директорию ModCBroker
- Запустить ./configure
При необходимости, указать опции configure, описанные в разделе
2.1.3
- Запустить gmake
- Запустить gmake install После этого DSO модуль с именем
mod_cbroker.so будет скопирован в каталог <prefix>/libexec/apache2
//
- Добавить в конфигурацию Apache (httpd.conf) строчку
LoadModule cbroker_module <prefix>/libexec/apache2/mod_cbroker.so.
|
- Если необходимо, добавить туда-же строку AddModule mod_cbroker
- Перезапустить Apache
После этого модуль загружается при старте Apache и вы можете переходить
к тестированию.
2.1.3 Параметры configure
Список всех опций конфигурации можно посмотреть с помошью команды
Вы можете обратиться к [4], для подробного описания механизма выбора ORB.
Если что-то идет не так, можете написать нам.
2.2 Для Windows.NT
2.2.1 Необходимое ПО
- ORB - ORBacus-4.0.x
- Проинсталированный Apache, версии 2.2.3 или выше.
- Компилятор C++ Microsoft Visual C версии 6.0 или выше.
2.2.2 Процесс инсталляции:
- Развернуть архив ModCBroker.zip.
- Перейти в образовавшуюся директорию ModCBroker/msvc.gen
- Определить значения следующих nmake-переменных в файле env_inc.mak:
- PROJECT_ROOT - абсолютный путь к ModCBroker
- TARGET_ORB - тип используемой ORB, т. е.
- ORBACUS - для Orbacus
- TAO - для TAO
- OMNI - для OmniIDL
- ORB_DIR - где инсталлированна данная ORB.
- APACHE_DIR - директория, где находится проинсталированный
Apache.
- APACHE_MODULE_DIR - директория,где находится библиотека.
Обычно - директория modules в корневой директории
проинсталлированного Apache. Это значение установленно по
умолчанию.
- INSTALL_DIR - абсолютный путь к целевой директории инсталляции
- INSTALL_IDL_DIR - директория, куда будут инсталлированны IDL
файлы. Установленна по умолчанию.
- INSTALL_INC_DIR - директория, куда будут инсталлированны
включаемые файлы.
- INSTALL_IDL_DIR - директория, куда будут инсталлированны IDL
файлы. Установленна по умолчанию.
- INSTALL_LIB_DIR - директория, куда будут инсталлированны
библиотеки.
- INSTALL_IDL_DIR - директория, куда будут инсталлированны IDL
файлы. Установленна по умолчанию.
- MSVC_DIR - директория, где находится MS Visual C++
- Зайти в директорию ModCBroker/msvc.gen
- Запустить компиляцию, запустив make.bat
- Инсталлировать, набрав make install
- Инсталлировать библиотеку, набрав make install-dll
- Вписать в конфигурацию Apache (httpd.conf) строчку
LoadModule cbroker_module modules/mod_cbroker.so
|
Данная директива должна идти последней в списке директив LoadModule
2.3 Компиляция клиентской библиотеки clcbroker
Так как клиентская библиотека состоит просто из генерируемых стаб файлов, то
ее можно собрать на любом компюьетере с инсталлированной ORB просто взяв
файл idl/HTTP.idl, сгенерировать объектные стабы и скелетоны с помощью idl
компилятора, и либо добавить их в свой проект, либо собрать в библиотеку
libclcbroker.so (clcbroker для UNIX)
В процессе компиляции ModCBroker клиентская библиотека также
генерируется, поэтому если у вас клиент и сервер находяться на одном и
том-же компьютере, то никаких дополнительных действий производить не
нужно.
2.3.1 Для Unix
- Развернуть инсталляцию ModCBroker
- Отконфигурировать, сказав ./configure --without-apache
- Откомпилировать, командой make client
- Инсталлировать клиентскую библиотеку, командой
make install-client
2.3.2 Для Windows NT
- Развернуть инсталляцию ModCBroker
- Откомпилировать, командой make client
- Инсталлировать командой make install-client
3 Тестирование
- После инсталляции ModCBroker убедитесь, что Apache работает и,
впишите в конфигурацию (httpd.conf) следующий блок:
CbrokerORBArgs -ORBInitRef NameService=corbaloc::you-host-name:10000/NameService
CbrokerLocation /cbroker
|
- Перезапустите httpd
- Запустите CORBA NameService на 10000 порт. (для ORBACUS команда:
nameserv -OAport 10000)
- Зайдите в каталог mod-cbroker-dir/demo/HelloWorld
- Запустите HelloWorldServlet, указав ему имя NameService командой:
./HelloWorldServlet -ORBInitRef \
NameService=corbaloc::you-host-name:10000/NameService
Для TAO 1.1
./HelloWorldServlet -ORBInitRef \
NameService=iioploc://you-host-name:10000/NameService
|
- Наберите в WWW браузере следующий URL: http://you.host.name/cbroker/Hello/Hello
3.0.3 Замечание о режиме выполнения потоков ORB
В некоторых ORB (к примеру - ORBacus), режимы выполнения потоков по
умолчанию (threading mode) не поддерживают обратные вызовы (т. е.
callback функции). То есть вам необходимо самомстоятельно установить
режим выполнения потоков в конфигурационных параметрах ORB, в
противном случае ваш клиент остановится во во время первого вызова метода
HTTPStream
К примеру, для ORBacus директива CbrokerORBArgs в конфигурационном
файле httpd.conf в нашем примере должна выглядеть следующим образом:
CbrokerORBArgs -ORBInitRef NameService=corbaloc::you-host-name:10000/NameService \
-ORBreactive -OAreactive
|
В то время, как для всех остальных ORB режимы потоков остаются по
умолчанию:
CbrokerORBArgs -ORBInitRef NameService=corbaloc::you-host-name:10000/NameService \
|
4 Использование
- Убедиться что в конфигурации Apache2 загружается mod_cbroker.so
- Установите параметры конфигурации в httpd.conf (см. ??)
- Пользовательские
программы, работающие back-end-ом для ModCBroker должны быть
скомпилированны с библиотекой libclcbroker.so либо libclcbroker.a
(для UNIX), clbroker.lib (для Windows NT)
5 Настройка
Настройка ModCBroker заключается в установке обработчика (вы можете
установить обработку по директории), в настройке авторизации apache и, при
необходимости, настройке авторизационных сервлетов, фильтров и интерфейсов
со скрипт-языками.
5.1 Перечень директив
- CbrokerORBArgs <arguments for ORB>
- Устанавливает параметры инициализации ORB.
- Значение по умолчанию: -ORBconfig /etc/orb.cf
- CbrokerLocation
- Устанавливает виртуальную директорию для ModCbroker
- Значение по умолчанию: /cbroker
- CbrokerDefaultServlet
- Устанавливает имя сервлета по умолчанию: мы вызываем
этот сервлет в том случае, когда в запросе элемент пути,
соответствующий сервлету пуст.
- Значение по умолчанию: index
- CbrokerDefaultHandler
- Устанавливает имя обработчика по умолчанию: мы вызываем
этот обработчик в том случае, когда соответствующий элемент
пути отсуствует.
- Значение по умолчанию: index
- CbrokerAddAuthByLocation location servletName hanlderName
- Устанавливает авторизационный обработчик для директории.
Параметры:
- location - директория, которую мы защищаем.
- servletName - имя авторизационного сервлета.
- handlerName - имя авторизационного обработчика.
- Значение по умолчанию: нет.
- CbrokerPrefix
- Значение тега начала вызова сервлета в фильтре CBROKER.
- Значение по умолчанию: <?cbroker
- CbrokerSuffix
- Значение тега конца вызова сервлета в фильтре CBROKER.
- Значение по умолчанию: ?>
- CbrokerPrefix0
- Значение тега начала вызова сервлета в фильтре CBROKER0.
- Значение по умолчанию: <?cbroker0
- CbrokerSuffix0
- Значение тега конца вызова сервлета в фильтре CBROKER0
- Значение по умолчанию: ?>
5.2 Типичные примеры
5.2.1 Обращение к сервлету для выдачи контента
CbrokerORB_args -ORBInitRef NameService=corbaloc::www.name.com:10000/NameService
CbrokerLocation /cbroker
|
И если вам нужна авторизация, то для выделенного ресурса должна быть
настроена авторизация этого ресурса, например так:
<Location /cbroker>
AuthType Basic
AuthName authorization
require valid-user
</Location>
|
Этот пример говорит, что
- apache вызывает обработчик ModCBroker когда мы обращаемся к
виртуальной директории cbroker. (т. е. когда URL запроса начинается
с /cbroker )
- Встроенной ORB передается строка параметров инициализации:
-ORBInitRef NameService=corbaloc::www.name.com:10000/NameService
|
- для доступа требуется авторизация. Заметим, что авторизация
производится в пользовательском сервлете, хотя в конфигурации об этом
ничего не сказанно.
5.2.2 Использование сервлетов для авторизации
Допустим, Вы хотите определить с помощью CORBA сервлетов доступ к
определенному набору ресурсов (Web страницам либо приложению).
В таком случае надо воспользоваться директивой CbrokerAddAuthByLocation,
не забыв при этом указать Apache на необходимость авторизации этого
ресурса.
CbrokerAuthLocation MyProtectedArea AuthServlet AuthHandler
<Location MyProtectedArea>
AuthType Basic
AuthName MyResources
require valid-user
</Location>
|
При отсуствии директив AuthType Apache будет генерировать внутреннюю
ошибку.
5.2.3 Использование фильтров
ModCbroker также определеет два фильтра: CBROKER и CBROKER0. Вы
можете указать использование этих фильтров при обработке файлов
определенных типов с помощью команды AddOutputFilterByType. Например:
AddOutputFilterByType CBROKER cbhtml
|
6 Интеграция с tcl [3] [2]
Также можно использовать cbroker совместно со скрипт-языком. Как пример,
вы можете найти в дистрибутиве, в поддиректории add_on/tcl расширение tcl,
которое должно загружаться из ssh
Его надо откомпилировать как расширение Tcl, соответствующее стандарту
TEA, и загрузить результирующуюю разделяемую библиотеку в секции
инициализации интерпретатора. После этого можно будет пользоваться
командой cbroker в скрипт-языках.
7 Интеграция с mod_ssl [1]
7.0.4 Для Unix
- Установите mod_ssl
- Откомпилируйте и установите mod_cbroker, как обычный DSO
модуль. при установке он должен быть скомпилирован с mod-ssl
7.0.5 Для Windows NT
Во первых, необходимо иметь проинсталированный apache (вер. 2.0.44 и
выше).
Перед компиляцией mod_cbroker в файле env_inc.mak к переменной
CFLAGS добавьте параметр /DEAPI.
Далее следуйте общим инструкциям по инсталяции.
8 Перечень изменений
- 13.06.2007 - пересмотрено для ModCbroker-3.2.0, убрана устаревшая
информация.
- 23.05.2003 - пересмотрено для ModCbroker-3.1.1, убрана устаревшая
информация.
- 04.02.2003 - пересмотрено для ModCbroker-3.1.0
- 07.06.2002 - просмотр.
- 21.05.2002 - пересмотрено для ModCbroker-3.0, убрано описание
статической компиляции.
- 18.03.2002 - добавлена матрица поддежки и контрибуция Ричарда
Боуска.
- 15.02.2002 - добавлено замечание о TAO-1.1
- 09.01.2002 - просмотр.
- 16.08.2001 - добавлено замечание о инсталляции Apache на FreeBSD
используя коллекцию портированного ПО (ports collection)
- 21.06.2001 - изменен порядок инсталяции для Windows NT.
- 02.06.2001 - изменения структуры.
- 25.05.2001 - добавлено описание компиляции DSO модуля.
- 22.03.2001 - добавлены инструкции по интеграции с mod_ssl.
- 17.03.2001 - просмотр.
- 04.02.2001 - добавлено замечание о режиме выполнения потоков.
- 30.01.2001 - добавлены формальные атрибуты документа
- 28.11.2000 - добавлено указание на необходимость предварительного
конфигурирования Apache.
- 10.05.2000 - первая редакция
References
[1] Ralf. S. Engelschall Ben Laurie. mod_ssl home page, 1995-2001.
http://www.modssl.org.
[2] Apache Software Foundation NetCetera AG. websh home page,
2000-2002. http://tcl.apache.org/websh.
[3] J. K. Osterhout. Tcl: An embeddable command language, 1990.
[4] Ruslan Shevchenko. corbaconf: autoconf-based package for CORBA based
applications, 2000. http://corbaconf.kiev.ua.