DGEE (DotGNU Execution Environment)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:34, 18 мая 2019.
DotGNU Execution Environment
Dotgnu-small.png
Разработчики: Free Software Foundation (FSF)
Состояние разработки: Active
Написана на: С#, C++
Операционная система: Кроссплатформенное программное обеспечение
Тип ПО: webservice
Лицензия: GNU GPL
Веб-сайт https://www.gnu.org/projects/dotgnu/dgee.html

DotGNU Execution Environment (DGEE) - это прикладная среда для управления    веб-сервисами (и в будущем другими веб-приложениями) для    системы DotGNU. DGEE является основным компонентом веб-сервисов DotGNU и обеспечивает функционирование приема, проверки и выполнения запросов веб-сервисов. DGEE реализуется на архитектуре, которая объединяет сетевые сервера, протоколы, виртуальные машины и механизмы обеспечения безопасности в единое, распределенное и масштабируемое приложение.

Проекты DotGNU

DotGNU Execution Environment (DGEE) является одним из проектов DotGNU. В настоящее время DotGNU состоит из трех основных развивающихся проектов, к которым со временем в ходе разработки проекта будут добавлены дополнительные компоненты:[Источник 1]

  • DotGNU Portable.NET, реализация инфраструктуры общего языка (CLI), более известная как ".NET", включает в себя все необходимое для компиляции и запуска приложений C# и C, которые используют библиотеки базовых классов, XML и Systems.Windows.Forms. В настоящее время поддерживаются процессоры: x86, ppc, arm, parisc, s390, ia64, alpha, mips, sparc. Поддерживаемые операционные системы: GNU / Linux (на ПК, Sparc, iPAQ, Sharp Zaurus, PlayStation 2, Xbox,...), BSD, Cygwin / Mingw32, Mac OS X, Solaris, AIX.
  • phpGroupWare, многопользовательский веб-пакет группового программного обеспечения, который также служит для обеспечения хорошей коллекции компонентов webservice, все из которых могут быть доступны через XML-RPC, так что можно легко интегрировать их в приложения webservice самостоятельно.
  • Веб-сервис DotGNU Execution Environment (DGEE), который также активно развивается.

Goldwater

DGEE реализован как приложение Goldwater. Goldwater - это хорошо масштабируемое распределенное промежуточное ПО, которое способствует созданию приложений в виде набора отдельных, но логически связанных процессов. Goldwater выполняет всю работу по маршрутизации сообщений между этими процессами, как если бы они были просто вызовами функций, даже если они распределены по нескольким серверам, и при необходимости выполняет очереди и тайм-ауты. Поэтому DGEE наследует масштабируемость и устойчивость Goldwaters, а также функции управления и обслуживания.

Обзор работы DotGNU Execution Environment

Рисунок 1 Обработка запроса в DotGNU Execution Environment

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

Функционирование DotGNU Execution Environment при обработке принятого запроса можно описать в виде следующего алгоритма (схема работы представлена на рисунке 1):[Источник 2]

  1. Запрос на обслуживание принимается сетевым сервером (A) и проверяется. Примером сетевого сервера может служить Apache.
  2. Сетевой сервер передает данные запроса и URI веб-службы диспетчеру служб (B).
  3. Диспетчер служб проверяет доступность веб-службы локально, запрашивая диспетчер ресурсов (C).
  4. Если веб-служба доступна локально, диспетчер служб отправляет данные запроса и URL-адрес веб-службы на соответствующую виртуальную машину (D) для выполнения.
  5. Виртуальная машина проверяет внутренний кэш сохраненного кода веб-службы и, если его нет, загружает его из диспетчера ресурсов.
  6. Виртуальная машина выполняет веб-службу и обрабатывает данные запроса.
  7. Выходные данные веб-службы отправляются обратно на сетевой сервер.
  8. Сетевой сервер возвращает выходные данные веб-службы запрашивающему объекту в той же форме, в которой он получил запрос (т. е. через HTTP-соединение в случае обработки HTTP-запроса).

Модули DGEE

Структура DotGNU Execution Environment включает в себя четыре модуля, представленных на рисунке 1. Модули DGEE представляют собой следующее:

A - Сетевой сервер, который отвечает за обработку специфики протокола запроса и ответа. Это точка входа в DGEE и по умолчанию обычно Apache (v1 или v2), который привязан к DGEE в качестве клиента. Это также может быть часть пользовательского серверного программного обеспечения, предназначенного для обработки любого произвольного протокола.

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

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

D - Виртуальная машина-это сущность, в которой выполняется веб-служба. Виртуальные машины будут предоставляться для каждого байт-кода или веб-служб собственного формата, которые необходимо поддерживать. В настоящее время DGEE поддерживает Portable.Netи экспериментальную виртуальную машину Python.

Установка DGEE

DGEE может быть собран из исходного кода или установлен из бинарного пакета.

Сборка из исходного кода

Для построения DGEE необходимо выполнение следующих шагов[Источник 3]:

  1. Настройка и установка phlib в /usr / local
  2. Настройка и установка goldwater под /usr / local (goldwater требует expat и readline (и readline-devel, как это необходимо заголовочные файлы для компиляции)
  3. Настройка и установка pnet и pnetlib
  4. Настройка и установка DGEE в /usr / local (расположение по умолчанию)
  5. Проверить наличие библиотек
  6. Настроить Apache
  7. Настроить среду и загрузить DGEE (см. файл README).
  8. Следовать инструкциям в каталоге примеров dgee src для компиляции и установки тестового веб-сервиса и получение документации.

Также необходимо ознакомится с руководствами README, QUICKSTART и BINARYINSTALL, содержащих более полное описание конфигураций веб-сервиса. DGEE должен быть установлен в учетную запись пользователя, поскольку он должен работать как "пользователь".
Опции конфигурации:

-- prefix=                          //где установить dgee
--with-phlib=                  //где установлен phlib (по умолчанию /usr / local)
-- with-goldwater=           //где установлен Goldwater (по умолчанию /usr / local)
-- с-pnet=                    //где установлен portable.net  (по умолчанию /usr / local)
-- with-apache=          //где найти инструмент apache v1 apxs
-- with-apache2=       //включить Apache 2 (и где найти инструмент Apache v2 apxs)
--with-python             //включить поддержку pythonVM (--without-python отключить)
--with-username=     //имя пользователя DGEE будет работать как (по умолчанию никто)
--с-usergroup=        //группы пользователей в DGEE будет работать (по умолчанию никто)
./ configure --help   //дает полный список настроек

Установка из бинарного пакета

Краткое руководство по началу работы и установке веб-сервисов включает в себя следующие пункты[Источник 4]:
1. Настройка среды
Так как DGEE нужны некоторые переменные окружения, для поиска ресурсов, предоставлен скрипт env, который должен быть установлен по мере необходимости. Если используются команды, предоставленные DGEE (dgadmin, dgeestart, csdgmx, dginstallws, dgremovews и т. д.) для системного администрирования, то ручная настройка среды не нужна. Однако при необходимости изменения конфигурации времени выполнения файл в любое время, требуется настройка среды.

По умолчанию DGEE работает как пользователь nobody, у которого нет домашнего каталога, поэтому перед запуском от имени администратора необходимо выполнить следующую команду:

shell. > /usr/local/share/dgee/dgeeenv.sh

2.Проверка правильности конфигурации системы
Необходимо запустить команду, которая будет проверять и сообщать о проблемах конфигурации, влияющих на запуск DGEE

dgeediagnose


3. Запуск DGEE Для запуска DGEE необходимо задать следующую команду:

dgeestart

Более подробная информация содержится в файле README
4. Конфигурация Apache В Apache httpd.conf необходимо добавить следующее( каталог Apache src содержит пример httpd.Conf):

LoadModule dgee_module     /usr/local/libexec/mod_dgee.so
AddModule mod_dgee.c
include /usr/local/etc/mod_dgee.conf
# Optional 'directory' based DGEE association 
# allows <url/dgee/test> in addition to the default 
# <//url/test.dgmx>
#
<Location /dgee>
  include /usr/local/etc/mod_dgee.conf
</Location>

5. Запуск Apache

В данном пункте необходимо запустить Apache обычным способом
6. Установка веб-сервиса

cd examples
make

Выполнение этих команд создаст файл wstest.problems, state.dll и math.DLL. Далее нудно создайте файлы dgmx для каждого из этих веб-сервисов: csdgmx wstest.dll, csdgmx state.dll, csdgmx math.dll. Затем необходимо установить веб-сервис в DGEE, запустив скрипт dgeeinstallws:

dgeeinstallws wstest
dgeeinstallws state
dgeeinstallws math

Обзор запуска DGEE

Рисунок 2 - среда исполнения DotGNU

При наличии на компьютере всех необходимых компонентов, для запуска DGEE выполняются следующие действия (на рисунке 2 представлен пример запущенной среды исполнения DotGNU Execution Environment (DGEE)):

  1. Настройка Apache для загрузки и использования mod_dgee.so
  2. Настройка ресурсов IPC (см. Файл INSTALL)
  3. Запуск DGEE, запустив Goldwater и затем загрузив процессы DGEE в нем. Это достигается с помощью специальной команды DGEE
dgadmin.
  1. Установка веб-сервиса с помощью команды
dginstallws
  1. Отображение некоторой онлайн-документации для установленного веб-сервиса, указав в браузере ресурс DGMX для веб-сервиса.
  2. Направление клиента XML-RPC на веб-сервис.

Источники

  1. Официальный сайт проекта DotGNU URL: http://dotgnu.org (дата обращения: 18.05.2019).
  2. DotGNU Execution Environment URL: https://www.gnu.org/software/dotgnu/dgee.html (дата обращения: 18.05.2019).
  3. DotGNU Execution Environment Source Installation Guide URL: https://www.gnu.org/software/dotgnu/dgee-install.html (дата обращения: 18.05.2019).
  4. DotGNU Execution Environment - RPM Packages URL: https://www.gnu.org/software/dotgnu/dgee-packages.html (дата обращения: 18.05.2019).