За время эксплуатации 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.