Main / SObjectizer 4 / Frameworks

Дополнительные библиотеки для SObjectizer

Общая информация

За время эксплуатации SObjectizer в компании Intervale было создано несколько дополнительных библиотек общего назначения, которые облегчали разработку SObjectizer-приложений. После публикации SObjectizer на SourceForge часть этих библиотек так же будет опубликована под лицензией BSD. Публикация будет происходить по мере подготовки библиотек и их документации к публичному использованию.

В настоящее время опубликованы и доступны для загрузки следующие библиотеки:

  • gemont_1 (GEneric MONitoring Tools). Позволяет SObjectizer-приложениям генерировать и распространять информацию, которая позволяет судить о происходящем внутри приложения (т.н. мониторинговую информацию).
  • so_alt_channel_2 (Alternative Channel). Позволяет транспортным агентам переключаться на резервные IP-адреса после разрыва соединения на основном подключении.
  • so_sysconf_2 (System Configurator). Позволяет строить SObjectizer-приложения из отдельных DLL как из элементов конструктора.

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

Вопрос о том, в каком виде лучше распространять дополнительные библиотеки пока полностью не решен. В компании Intervale каждая библиотека находится в своем Subversion-репозитории. И при необходимости подключения библиотеки в какой-либо проект, в этом проекте через свойство svn:externals делаются ссылки на соответствующие каталоги соответствующих проектов библиотек (подробнее этот механизм описывается в статье Структура проектов на C++ с использованием Subversion и Mxx_ru).

В настоящее время на SourceForge нет Subversion репозитория для SObjectizer и его библиотек. Поэтому данный способ оказался недоступен. Поэтому в настоящее время каждая библиотека распространяется в виде самостоятельного архива, в котором нахотятся только ее исходные тексты, но нет ни одного необходимого ей подпроекта. Предполагается, что для использования ее в каком-либо проекте достаточно будет включить в этот проект исходные тексты SObjectizer и поместить туда же исходные тексты нужных библиотек. Например, если в каком-то проекте потребуется использовать SObjectizer и несколько компонентов из so_sysconf_2, то файловая структура этого проекта может иметь вид:

some_project/
  dev/
    ace/
    ace_lib_distrib/
    auto_ptr_3/
    cls_2/
    cpp_util_2/
    lib/
    oess_1/
    smart_ref_3/
    so_4/
    so_alt_channel_2
    so_sysconf_2/
    so_sysconf_2_ichannel/
    so_sysconf_2_ochannel/
    so_sysconf_process/
    some_project/
    build.rb*

В качестве альтернативного варианта рассматривалось включение библиотек непосредственно в дистрибутив SObjectizer, но здесь было много недостатков из-за которых было решено данный вариант не использовать.

Если распространение библиотек для SObjectizer в виде отдельных библиотек является неудобным решением и есть конкретные другие варианты, то мы с удовольствием их рассмотрим.

Документация

Документация по библиотекам доступна в общем разделе документации по SObjectizer. В частности в разделах Manuals и API.