eao197 on the Web
Сайт Евгения Охотникова
[ Главная | Блог | Описания | Проекты | Об авторе | Лицензия ]

SObjectizer

Что такое SObjectizer

О том, что такое SObjectizer я могу сказать две вещи. Во-первых, его официальное определение: SObjectizer является набором правил и принципов агентно-ориентированного проектирования и инструментом для этого агентно-ориентированного проектирования на C++.

Во-вторых, над SObjectizer я работаю, по сути, с 1994 года. Сначала это был SCADA Objectizer в КБСП (г.Гомель), а затем SObjectizer в Intervale. Это большой срок.

Большой настолько, чтобы у меня сложилось собственное отношение к этому проекту. И данная страница предназначена для того, чтобы высказывать на ней свое личное впечатление о SObjectizer, о его прошлом, настоящем и, надеюсь, будущем.

Новости о SObjectizer
2009.10.06
Опубликованы соображения о возможности постройки SObjectizer-5 на основе идей из MBAPI.
2009.03.27, 2009.05.22
Опубликованы соображения о возможности объединения идеи жесткого контроля за доступностью тех или иных событий в каждом из состояний агента и доменов сообщений.
2009.01.04
Опубликовано описание идеи контроля за переполненостью очередей сообщений.
2008.12.27
Опубликовано описание идеи порционного чтения приоритетной очереди заявок рабочих нитей диспетчеров SObjectizer 4.
2008.10.20
Первый публичный релиз библиотеки GEneric MONitoring Tools (gemont-1.4.0 [so-4.4.0-b6]). Данная библиотека позволяет SObjectizer-приложениям генерировать и распространять мониторинговую информацию, с помощью которой можно следить за тем, что происходит внутри SObjectizer-приложения. Более подробную информацию о gemont можно получить в документации по SObjectizer-библиотекам.
2008.09.23
Опубликованы первые соображения о том, что из себя может представлять SObjectizer 5: Первый взгляд на SObjectizer 5.
2008.09.18
Релиз SObjectizer 4.4.0-beta6!
Подробности.
Идея о том, как сделать адресацию сообщений в SObjectizer через mbox-ы.

Данное предложение описывает идею об использовании почтовых ящиков (mbox-ов) в качестве единственного механизма адресации сообщений в SObjectizer-5.

Можно посмотреть на сравнение описаний одного и того же агента в предлагаемой нотации и в существующей нотации SObjectizer-4.

2009.10.06

Возможность объединения идеи жесткого контроля за доступностью тех или иных событий в каждом из состояний агента и доменов сообщений.

Данное предложение описывает текущие представления о том, как же может выглядеть в SObjectizer-5 работа с сообщениями, событиями и состояниями. Только средствами языка C++, без использования каких-либо внешних DSL.

2009.05.22: добавлено сравнение описаний одного и того же агента в предлагаемой нотации и в существующей нотации SObjectizer-4.

2009.03.27, 2009.05.22

Идея контроля переполненности очереди сообщений на основе исходящих каналов

Некоторые соображения о том, как можно приостанавливать работу агентов, отсылающих сообщения, если очередь получателя сообщения сильно перегружена.

2009.01.04

Идея: порционное чтение приоритетной очереди

Идея: порционное чтение приоритетной очереди. Некоторые соображения о том, как можно сократить количество захватов мутексов при извлечении заявок из очереди заявок рабочих нитей диспетчеров SObjectizer 4.

2008.12.27

Первый взгляд на SObjectizer 5

Небольшое изложение идей о том, на что в первую очередь следует обратить внимание при проектировании следующего поколения SObjectizer -- SObjectizer 5.

2008.09.23

SObjectizer v.4.4.0-beta6 Notes

Небольшое описание того, что было сделано в SObjectizer v.4.4.0-beta6.

2008.09.18

Идея жесткого контроля за доступностью тех или иных событий в каждом из состояний агента

Данное предложение описывает предварительные соображения о том, как можно реализовать более жесткий контроль за списками разрешенных и запрещенных событий в описании состояний агента. Целью предложения является уменьшение таких ошибок как, забытое разрушенное/запрещеное событие из-за которого агент работает не так, как хотелось бы разработчику.

2008.03.12

Идея по регистрации в SObjectizer агентов-близнецов

Данное предложение описывает предварительные соображения о том, как можно балансировать нагрузку на одного агента в SObjectizer посредством запуска нескольких копий этого агента на разных контекстах.

2007.11.25

SObjectizer v.4.4.0-beta5 Notes

Небольшое описание того, что было сделано в SObjectizer v.4.4.0-beta5.

Идея по контролю интенсивности входящего SOP-трафика.

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

Предложение по поддерке C++ исключений в SObjectizer

Данное предложение описывает причины необходимости добавления в SObjectizer поддержки C++ исключений и одино из возможных решений проблемы выхода исключений за пределы обработчиков событий.

Предложение по перехватчикам сообщений агентов

Данное предложение описывает механизм перехватчиков сообщений агентов. Которые могут использоваться как для перехвата, так и для перемаршрутизации сообщений.

Предложение по наследованию диспетчера дочерними агентами

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

Краткий обзор MBAPI

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

Нужен ли SObjectizer-у DSL?

В этой небольшой заметочке изложены основные причины по которым мне кажется выгодным создание Domain Specific Language (DSL) для описания классов агентов.

SObjectizer v.4.4 Benchmark: Chameneos

В состав очередной бета версии SObjectizer (которая сейчас находится в стадии вялотекущей разработки) включена реализация теста производительности Chameneos (описание теста можно найти на сайте Computer Language Benchmark Game. На моей машине (Pentium M 1.5GHz) тест на 1000000 встреч отрабатывает за 36.7 секунды, показывая пропускную способность в 214000 сообщений в секунду.

Дополнение от 2007.09.13: на моей новой машине (Core2 Duo 2GHz) тест на 1M встреч отрабазывает за 25.2 секунды, показывая пропускную способность в 318000 сообщений в секунду.
Дополнение от 2008.09.18: на той же самой машине (Core2 Duo 2GHz) с использованием SObjectizer 4.4.0-b6 тест на 1M встреч отрабазывает за 16.2 секунды, показывая пропускную способность в 493000 сообщений в секунду.

Мне этот тест уже как родной, поскольку я как-то запарился с его реализацией на D. А так же сделал его реализацию на очень интересном, но почившем уже, языке Nice.

В отличии от реализации на D, написать версию на SObjectizer не составило труда. Хотя получившийся объем кода впечатляет -- слишком многословное решение :( Нужно бы что-нибудь придумать для уменьшения объема кодирования при использовании SObjectizer.

SObjectizer v.4.4 beta3 Notes

Небольшое описание того, что было сделано в SObjectizer v.4.4.b3.

SObjectizer-4 Book

SObjectizer-4 Book -- это написанное мной руководство по программированию с использованием SObjectizer. На данный момент SObjectizer-4 Book состоит из двух частей. Первая часть знакомит читателя с SObjectizer, его историей, основными понятиями и принципами работы. Вторая часть является пошаговым погружением читателя в программирование на SObjectizer. На каждом шаге рассматривается один пример, показывающий ту или иную возможность SObjectizer. Эта часть так и называется: "SObjectizer в примерах: шаг за шагом". В приложении приводятся исходные тексты всех рассмотренных примеров (эти примеры являются так же частью самого SObjectizer и располагаются в каталоге dev/sample в дистрибутиве SObjectizer).

SObjectizer Book на данный момент является наиболее полным руководством по программированию на SObjectizer (почти 300 страниц). В общем, если интересен SObjectizer, то must read :)

Книга жалоб и предложений

Если вы не смогли что-то найти или найденное вами описание оказалось для вас недостаточным -- не стесняйтесь, напишите об этом мне.

© 2003-2008 Е.А. Охотников
$LastChangedDate: 2009-10-06 18:21:24 +0400 (Р’С‚, 06 РѕРєС‚ 2009) $
e-mail

Hosted by uCoz