Enduro/X

Материал из Викиреальностя
Перейти к: навигация, поиск
Enduro/X
Тип , , ,
Разработчик Ltd
Лицензия Коммерческая или GPL v2
Сайт endurox.org

Enduro/X — это кроссплатформенное программное обеспечение для обработки распределенных транзакций. Enduro/X создан на хорошо зарекомендовавших себя API, таких как X/Open объединенном с и . Платформа разработана для приложений работающх в реальном времени с возможностью кластеризации. Встроенные функции Enduro/X являются альтернативой Oracle (R) Tuxedo. Программа использует очередность ядра POSIX, которая обеспечивает высокую пропускную способность при .

Содержание

[] Функционал

Платформа позволяет вносить изменения без остановки работы сервисов. Система контролирует запущенные процессы и перезапускает их в случае сбоя или зависания. Система может быть быстро перезагружена и выделено место, позволяющее подключить два или больше сервисов по схеме соединения «точка-точка». Enduro/X написан на и имеет понятный API для .

[] Технология

В настоящее время Enduro/X работает на , начиная с версии 2.6.12. Самая важная функция ядра Linux — epoll () на очередях POSIX. Эта функциональность Linux предоставляет механизм для одной очереди — множество серверов, где серверы Enduro/X опрашиваются по очереди.

Начиная с версии 3.1.2 в Enduro/X добавлена поддержка FreeBSD, (версии 6.1 и 7.1) и . В версии 3.1.2 добавленна тестовая поддержка Apple и . На системах Unix, где доступны очереди POSIX они используются и для каждой пары ATMI сервер/сервис открыта отдельная очередь и вызов сервиса выбирает очередь в круговом режиме. Что касается macOS, то в операционной системе нет поддержки POSIX, Enduro/X эмулирует очереди POSIX, которые основываются на файлах отображаемых в память в связке с процессами взаимосключения POSIX’а.

[] Функционал

  • Стандартs API — SCA, The Open Group XATMI
  • Тип соединения — синхронный, асинхронный, дуплексный,
  • Типы буферов
    • UBF — эмитирует формат Tuxedo’s FML/FML32. UBF высокотехнологичный протокол двоичной передачи данных. Буфер индексируется двоичным поиском для определенных типов данных.
    • Формат буфера — STRING
    • Формат буфера — CARRAY (массив байт)
    • Формат буфера — JSON, доступно автоматическое преобразование из JSON в UBF.
  • Управление транзакциями — Глобальные транзакции — 2PC- X/Open XA
  • Группировка — основывается на типе соединения «точка-точка»
  • Псоредник событий — вызывается при обмене сообщениями по схеме «издатель-подписчик»
  • Защита — кластерное шифрование ссылки с помощью GNU
  • Системный контроль процессов и «самовосстановление» (пингование и перезагрузка)
  • Динамическая перенастройка
  • Пользовательские расширения для сервера
  • Подсистема XATMI работает с основным демоном сервера (ndrxd)
  • Основной демон сервера (ndrxd) может быть перезапущен (в случае сбоя). После перезапуска какое-то время он изучает систему и собирает информацию о том какие сервера запущены и прочее. После окончания сбора информации он начинает работать в нормальном режиме.
  • Доступен вызов tpforward()
  • Процессы сервера ATMI могут играть роль клиентов и выполнять tpcall()
  • Обширные журналирвоание и отладка. Журналирование Enduro/X может быть настроенно на бинарный файл с различным уровнями регистрации. Так как серверы могут быть запущены вне сервера приложения, то имеется возможность отладить их из IDE или с помощью утилиты, такой как .
  • Для гарантии качества проект использует unit-тестирование и комплексное тестирование
  • Создан в профильном ATMI сервисе
  • Переменные окружения могут быть модернизированны для процессов XATMI сервера без перезагрузки приложения.
  • Универсальный мониторинг клиенсткого процесса (cpm). Подсистема позволяет запустить/остановить/контролировать клиентские исполняемые программы. При сбое работы клиентского процесса, cpm его восстанавливает.

[] Очередность подсистемы

Enduro/X основан на приложении, которое для на стройки использует ini-файлы, читаемые XATMI сервером, поставляемом в пакете названном «cconfsrv». Обычно через tpcall() пользовательское приложение может прочитать конфигурационный файл (может разделить ini-файл или папку с ним). Метод позволяет использовать подразделы с наследованием ключа/значения от главного раздела.

[] Конфигурация сервисов

Enduro/X основан на приложении, которое для на стройки использует ini-файлы, читаемые XATMI сервером, поставляемом в пакете названном «cconfsrv». Обычно через tpcall() пользовательское приложение может прочитать конфигурационный файл (может разделить ini-файл или папку с ним). Метод позволяет использовать подразделы с наследованием ключа/значения от главного раздела.

[] Журналирования

Enduro/X представляет новый набор API-функций журналирования, названной tplog. Это позволяет пользователю использовать высокоэффективные, основанные на C средства, встроенные в Enduro/X. Имеется возможность изменить адрес журналирвоания с помощью файлов управления потоком исполнения. Так же есть API для журналирования запросов, что означает что пользователь и Enduro/X могут каждый для каждого запроса делать отдельный лог-файл (лог для id сеанса, лог для имени пользователя и т. д.).

[] Сервер приложений для Go (ASG)

ASG — это совокупность проектов поверх Enduro/X. Авторы рассматривают эту совокупность как сервер приложений для , потому что проекты Golang соединены статически и по умолчанию нет такой вещи как компоненты. Enduro/X позволяет выполнять отдельные исполяемые двоичные файлы, которые представляет как сервисы с независимой обработкой транзакций. Эти службы могут быть перезапущены без прерывания работы сервиса. Также платформа позволяет выполнять распределенную обработку транзакций при помощи Golang. Разработчики модифицировали драйвера Oracle DB OC18 для Go, для возможности поддержки XA транзакций. Enduro/X ASG предоставляет самые современные средства распределенных транзакций для Golang.

[] Enduro/X-PHP

Полная клиентская привязка доступна для PHP5. Клиент-процесс может быть скомпилирован на PHP в загружаемый модуль или клиент может скомпилировать процесс Enduro/X на PHP. Когда процесс PHP работает как клиент, он должен отображаться в среде Enduro/X, что может быть сделано когда приложение размещено от того же пользователя, от которого запущено PHP приложение или от пользователя, создавшего микроокружение, которое обрабатывает дальнейшее подключение к основному серверу приложения через tpbridge. Модуль доступен [1].

[] Enduro/X-Perl

Привязка клиента и сервера доступна для языка Perl. Модуль Perl доступен здесь [2].

[] Правообладатель

Enduro/X был приобретен ATR Baltic, Ltd Mavimax Ltd в феврале 2017 с полными правами на исходный код и текущие соглашения..[1]

[] Примечания

[] Ссылки

Enduro/X относится к теме «Программное обеспечение»   ±