next_inactive up previous


ModCBroker: Руководство Администратора
DocumentId:GradSoft-Cbroker-AG503-79-10.05.2000-3.1.1

Руслан Шевченко, Александр Яновец, Юлия Прокопенко


Contents

Введение

ModCBroker - модуль Apache, обеспечивающий трансляцию WWW запросов в CORBA запросы. Модуль разрабатывается и поддерживается компанией GradSoft, дистрибутив ModCBroker в исходных кодах доступен по адресу http://www.gradsoft.kiev.ua. Версия ModCbroker, для которого написанно это руководство: 3.1.1

Компиляция и Инсталляция $ModCBroker$

Для UNIX

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

  1. Операционная система: Sun Solaris 2.6 или выше, Linux с ядром 2.2.0 или выше, FreeBSD версии 4.7 или выше. В принципе возможен перенос на любую posix-совместимую платформу.
  2. ORB - один из ORBacus-4.1, omniORB, TAO, MICO
  3. Apache - 2.0.45 или выше.
  4. Компилятор C++, совместимый с используемым брокером объектных запросов
  5. Make - GNU make версии 3.76 или выше.

Компиляция ModCbroker как DSO модуля

Необходимые предусловия:

Процесс инсталляции:

  1. Развернуть архив ModCBroker.tar.gz с помощью последовательности команд:
  2. Перейти в образовавшуюся директорию ModCBroker
  3. Запустить ./configure
    При необходимости, указать опции configure, описанные в разделе 2.1.3

  4. Запустить gmake
  5. Запустить gmake install После этого DSO модуль с именем mod_cbroker.so будет скопирован в каталог <prefix>/libexec/apache2 //
  6. Добавить в конфигурацию Apache (httpd.conf) строчку
    LoadModule cbroker_module <prefix>/libexec/apache2/mod_cbroker.so.
    
  7. Если необходимо, добавить туда-же строку AddModule mod_cbroker
  8. Перезапустить Apache

После этого модуль загружается при старте Apache и вы можете переходить к тестированию.


Параметры configure

Список всех опций конфигурации можно посмотреть с помошью команды
./configure --help
Вы можете обратиться к [4], для подробного описания механизма выбора ORB. Если что-то идет не так, можете написать нам.

Для Windows.NT

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

  1. ORB - ORBacus-4.0.x
  2. Проинсталированный Apache, версии 2.0.43 или выше.
  3. Компилятор C++ Microsoft Visual C версии 6.0 или выше.

Процесс инсталляции:

  1. Развернуть архив ModCBroker.zip.
  2. Перейти в образовавшуюся директорию ModCBroker/msvc.gen
  3. Определить значения следующих nmake-переменных в файле env_inc.mak:
  4. Зайти в директорию ModCBroker/msvc.gen
  5. Запустить компиляцию, запустив make.bat
  6. Инсталлировать, набрав make install
  7. Инсталлировать библиотеку, набрав make install-dll
  8. Вписать в конфигурацию Apache (httpd.conf) строчку
    LoadModule cbroker_module modules/mod_cbroker.so
    
    Данная директива должна идти последней в списке директив LoadModule

Компиляция клиентской библиотеки $clcbroker$

Так как клиентская библиотека состоит просто из генерируемых стаб файлов, то ее можно собрать на любом компюьетере с инсталлированной ORB просто взяв файл idl/HTTP.idl, сгенерировать объектные стабы и скелетоны с помощью idl компилятора, и либо добавить их в свой проект, либо собрать в библиотеку libclcbroker.so (clcbroker для UNIX)

В процессе компиляции $ModCBroker$ клиентская библиотека также генерируется, поэтому если у вас клиент и сервер находяться на одном и том-же компьютере, то никаких дополнительных действий производить не нужно.

Для Unix

  1. Развернуть инсталляцию $ModCBroker$
  2. Отконфигурировать, сказав ./configure --without-apache
  3. Откомпилировать, командой make client
  4. Инсталлировать клиентскую библиотеку, командой make install-client

Для Windows NT

  1. Развернуть инсталляцию $ModCBroker$
  2. Откомпилировать, командой make client
  3. Инсталлировать командой make install-client

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

  1. После инсталляции $ModCBroker$ убедитесь, что Apache работает и, впишите в конфигурацию (httpd.conf) следующий блок:

    CbrokerORBArgs -ORBInitRef NameService=corbaloc::you-host-name:10000/NameService
    CbrokerLocation /cbroker
    

  2. Перезапустите httpd
  3. Запустите CORBA NameService на 10000 порт. (для ORBACUS команда: nameserv -OAport 10000)
  4. Зайдите в каталог mod-cbroker-dir/demo/HelloWorld
  5. Запустите HelloWorldServlet, указав ему имя NameService командой:
    ./HelloWorldServlet -ORBInitRef \
              NameService=corbaloc::you-host-name:10000/NameService
    Для TAO 1.1
    ./HelloWorldServlet -ORBInitRef \
              NameService=iioploc://you-host-name:10000/NameService
    
  6. Наберите в WWW браузере следующий URL: http://you.host.name/cbroker/Hello/Hello

Замечание о режиме выполнения потоков 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 \

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

  1. Убедиться что в конфигурации Apache2 загружается mod_cbroker.so
  2. Установите параметры конфигурации в httpd.conf (см. [*])
  3. Пользовательские программы, работающие back-end-ом для ModCBroker должны быть скомпилированны с библиотекой libclcbroker.so либо libclcbroker.a (для UNIX), clbroker.lib (для Windows NT)

Настройка

Настройка ModCBroker заключается в установке обработчика (вы можете установить обработку по директории), в настройке авторизации apache и, при необходимости, настройке авторизационных сервлетов, фильтров и интерфейсов со скрипт-языками.

Перечень директив

  1. CbrokerORBArgs <arguments for ORB>
  2. CbrokerLocation
  3. CbrokerDefaultServlet
  4. CbrokerDefaultHandler
  5. CbrokerAddAuthByLocation location servletName hanlderName
  6. CbrokerPrefix
  7. CbrokerSuffix
  8. CbrokerPrefix0
  9. CbrokerSuffix0

Типичные примеры

Обращение к сервлету для выдачи контента

CbrokerORB_args -ORBInitRef NameService=corbaloc::www.name.com:10000/NameService
CbrokerLocation /cbroker

И если вам нужна авторизация, то для выделенного ресурса должна быть настроена авторизация этого ресурса, например так:

<Location /cbroker>
AuthType Basic
AuthName authorization
require  valid-user
</Location>

Этот пример говорит, что

  1. apache вызывает обработчик ModCBroker когда мы обращаемся к виртуальной директории cbroker. (т. е. когда URL запроса начинается с /cbroker )
  2. Встроенной ORB передается строка параметров инициализации:
       -ORBInitRef NameService=corbaloc::www.name.com:10000/NameService
    
  3. для доступа требуется авторизация. Заметим, что авторизация производится в пользовательском сервлете, хотя в конфигурации об этом ничего не сказанно.

Использование сервлетов для авторизации

Допустим, Вы хотите определить с помощью CORBA сервлетов доступ к определенному набору ресурсов (Web страницам либо приложению).

В таком случае надо воспользоваться директивой CbrokerAddAuthByLocation, не забыв при этом указать Apache на необходимость авторизации этого ресурса.

CbrokerAuthLocation  MyProtectedArea AuthServlet AuthHandler
<Location MyProtectedArea>
AuthType Basic
AuthName MyResources
require  valid-user
</Location>

При отсуствии директив AuthType Apache будет генерировать внутреннюю ошибку.

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

ModCbroker также определеет два фильтра: CBROKER и CBROKER0. Вы можете указать использование этих фильтров при обработке файлов определенных типов с помощью команды AddOutputFilterByType. Например:

AddOutputFilterByType  CBROKER  cbhtml

Интеграция с tcl [3] [2]

Также можно использовать cbroker совместно со скрипт-языком. Как пример, вы можете найти в дистрибутиве, в поддиректории add_on/tcl расширение tcl, которое должно загружаться из ssh

Его надо откомпилировать как расширение Tcl, соответствующее стандарту TEA, и загрузить результирующуюю разделяемую библиотеку в секции инициализации интерпретатора. После этого можно будет пользоваться командой cbroker в скрипт-языках.

Интеграция с mod_ssl [1]

Для Unix

  1. Установите mod_ssl
  2. Откомпилируйте и установите mod_cbroker, как обычный DSO модуль. при установке он должен быть скомпилирован с mod-ssl

Для Windows NT

Во первых, необходимо иметь проинсталированный apache (вер. 2.0.44 и выше).

Перед компиляцией mod_cbroker в файле env_inc.mak к переменной CFLAGS добавьте параметр /DEAPI.

Далее следуйте общим инструкциям по инсталяции.

Матрица поддержки


\begin{displaymath}
\begin{array}{ l \vert l \vert l \vert l }
OS & ORB & Прове...
...aris-2.8/Sparc & OmniORB-4.0.0 & Нет & Да \\ \hline
\end{array}\end{displaymath}

Перечень изменений

Bibliography

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.


next_inactive up previous
GradSoft