• Общие настройки
  • Настройка соединения
  • Настройка сервисов
  • Настройка Web-приложения

    В корневом каталоге Gelios находится файл gelios_config.xml. Он содержит различные системные настройки Gelios. Файл разбит на разделы: общие настройки, настройка соединения, настройка сервисов, настройка web-приложений, др.вспомогательные разделы.

    Общие настройки

    Имя параметра Значение по умолчанию Описание
    DEFAULT-INACTIVE-INTERVAL 300 сек. Интервал времени (в сек.) простоя сессии. Если пользователь не проявляет активность(не выполняет запросы к серверу) в течении данного промежутка времени, сессия закрывается и освобождаются все ресурсы, которые были выделины в данной сессии.
    MAXDEPTH-QUEUE 100 Глубина очереди входящих tcp-соединений.
    SERVER-PORT 8085 Порт сервера.
    DEBUG false Режим отладки. При включенном режиме в консоль выводится более детализированная информация.

    Настройка соединения

    Имя параметра Значение по умолчанию Описание
    SO-REUSEADDR false Позволяет соединению использовать адрес, который уже задействован.
    SO-RCVBUF 7 340 032 b Определяет размер входного буфера(в байтах).
    SO-TCPNODELAY true Включает/отключает алгоритм Нейгла для соединения.
    SO-SECURE false Включает/отключает режим безопасного соединения (SSL).
    SO-ARCHIVE false Включает/отключает режим упаковки данных перед отправкой на клиента.
    SO-TIMEOUT 1000 Интервал времени(в миллисек.) в течении которого соединение готово ожидать входящей информации.

    Настройка сервисов

    В рамках натройки сервисов необходимо провести настроку вычислительного кластера в тэге <C-UNITS> и настройку соединений к базе данных в тэге <DATABASE>.

    Для настройка вычислительного кластера необходимо определить тип балансировки кластера. У тэга <C-UNITS> нужно определить атрибут balansmethod. Он может принимать два значения:

  • uniformSession - равный по сессиям. Кластер загружает вычислительные узлы, стараясь обеспечить равномерное распеределение сессий пользователей по узлам.
  • uniformLoading - равный по нагрузке. Кластер загружает вычислительные узлы, стараясь обеспечить равномерное распеределение времени, которое узлы тратят на выполнение запросов пользователей.

    Внутри тэга <C-UNITS> нужно определить узлы кластера. Это делается в тэге <C-UNIT>. Основным атрибутом узла является атрибут remote. Данный атрибут определяет расположен ли узел на том-же комптьютере что и Gelios или он располагается на другом хосте. В последнем случае необходимо определить дополнительные атрибуты host и port. Например:

        <C-UNITS balansmethod="uniformSession">
          <C-UNIT remote="false"/>
          <C-UNIT remote="true" host="//host156" port="2099"/>
        </C-UNITS>
    

    Любому Web-приложению, рано или поздно, понадобится соединение с базой данных (БД). В Gelios установить соединение с БД можно, если в системе существует так называемый псевдоним (алиас) БД. Настройка псевдонимов осуществляется в теге <ALIASES>. Для этого необходимо создать тэг <ALIAS> в котором создать необходимые тэги.
    Имя тэга Описание
    NAME Имя псевдонима.
    DESCRIPTION Описание псевдонима.
    URL Строка доступа к БД
    DRIVER Тип драйвера. Значение берется из тэга <DRIVERS>
    SYS-LOGIN Имя системного пользователя. От его имени Gelios будет соединятся с БД
    SYS-PASSWORD Пароль системного пользователя.
    MIN-CONNECTION Минимальное число свободных коннектов в пуле.
    MAX-CONNECTION Максимальное число свободных коннектов в пуле.
    OPTIONS Дополнительные опции соединения к БД. Все тэги размещенные здесь, попадут в соединение как его параметры с именами равными именам тэгов и значениями равными тексту в этих тегах. Например:
              <OPTIONS>
              ...
              <encoding>WIN1251</encoding>
              ...
              </OPTIONS>
            

    Настройка Web-приложения

    Настройка Web-приложения начинается с того, что в тэге WEBAPPS конфигурационного файла размещается регистрационная запись о web-приложении, например

      <WEBAPPS>
        ...
        <APPLICATION path="webapps\examples"/>
        <APPLICATION alias="CAPITAL4_FIREBIRD2"/>
        ...
      </WEBAPPS>
    
    Здесь можно использовать две формы.

    Если используется атрибут alias, то приложения будут загружены из БД, псевдоним которой должен совпадать с одним из псевдонимов из <SERVICE><DATABASE><ALIASES>. База данных должна быть базой данных системы Капитал CSE 4.x.

    Если используется атрибут path, то приложение будет распологаться в файлах. Настройку такого приложения нужно производить в файле web.xml, который должен располагаться в подкаталоге WEB-INF каталога path - корневого каталога web-приложения. Внутри корневого элемента web.xml необходимо создать новый элемент <servlet>. Внутрений элемент <servlet-name> определяет имя сервлета, например example0. Имя является произвольным и уникальным в рамках файла web.xml. Оно необходимо для идентификации Вашего приложения внутри данного файла. Следующий внутренний элемент <servlet-class> всегда должен быть равен значению Servlets.GServlet. Следующие за ним элементы <init-param> предназначены для настройки параметров WEB-приложения. Они содержат элементы <param-name> - имя параметра и <param-value> - его значение. Следующая таблица содержит список обязательных параметров WEB-приложения:
    Имя параметра (<param-name>) Описание Значение (<param-value>)
    CONFIGLOADER имя класса отвечающего за загрузку конфигурации Servlets.ServletFileConfigLoader
    PROJECTNAME Название WEB-приложения
    ROOTALIAS имя псевдонима БД которое будет использоваться по умолчанию один из алиасов, указанных в <ALIASES>
    PROJECTROOT путь до корневого каталога Web-приложения
    LOCATORLOADER Необязательный параметр, определяющий имя класса, который отвечает за загрузку локатора ресурсов. ServiceClass.FileResourceLocatorConfigLoader.
    XSLTROOT Необязательный параметр, определяющий путь до xslt-шаблонов По умолчанию берётся равным PROJECTROOT
    DEFAULT_TIMEZONE Необязательный параметр, определяющий часовой пояс, который будет использоваться для форматирования дат в динамических документах.
    (Для дополнительной информации по возможным значениям см. описание класса java.util.TimeZone)
    Если параметр не указан, то будет использоваться часовой пояс, установленный в системе
    После определения параметров необходимо определить элемент <servlet-mapping>. Данный элемент определяет URL WEB-приложения. Он содержит следуюшие дочерние элементы: <servlet-name> - имя сервлета (в нашем случае example0) и <url-pattern> - значение URL.

    В корневом каталоге Web-приложения должны быть расположены файлы
    Имя файла Описание Пример содержимого
    users.xml Файл содержит информацию о пользователях Web-приложения. Информация о пользователях может распологаться не только непосредственно в данном файле, но и в БД. Для доступа к ним можно использовать тэг <sql>(См. пример).
     <users>
       <!-- главный администратор -->
       <user name="ADMIN" password="admin"/>
       <!-- из БД -->
       <sql alias="root" username="proguser_login" 
             passwdname="proguser_pswd" user_id="proguser_id"
             user_familyname="proguser_fname" 
             user_firstname="proguser_name" 
             user_surname="proguser_surname" />
           select * 
           from proguser
       </sql>
     </users>
    areas.xml Файл содержит информацию о зонах, обеспечивающих класс видимости и пользователях имеющих доступ к ним (см. Администрирование). Если необходимо сослаться на любого авторизированного пользователя информация о котором располагается непосредственно в users.xml необходимо использовать символ "!". Если пользователь расположен в БД используйте "%".
     <areas>
     	<area name="admin">
     		<user name="ADMIN"/>
     		<user name="andy"/>
     	</area>
     	<area name="intra">
     		<user name="!"/>
     	</area>
     </areas>
    association.xml Файл содержит информацию о всех ресурсах Web-приложения и из привязке к зонам (см. Администрирование). Ресурсы не привязанные ни к одной из зон считаются общедоступными.
     <Associations>
         <Association Alias="css"
                      Class="ServiceClass.GStaticHTMLResource"
                      DataLocation="pages/css"/>
         <Association Alias="index"
                      Class="ServiceClass.GDynamicHTMLResource"
                      DataLocation="pages/index"/>
         <Association Alias="home"
                      Class="ServiceClass.GDynamicHTMLResource"
                      area = "intra"
                      DataLocation="./pages/home"/>
     </Associations>