Возможны ли слюни для мультиклиентских веб-приложений?

Я работаю над мультиклиентным веб-приложением, которое анализирует данные датчиков и будет вызывать действия на основе этих данных с помощью механизма правил. У каждого клиента этого приложения есть набор датчиков окружающей среды (10–100 с) и набор правил, которые будут оцениваться каждый раз, когда значения датчиков изменяются (значения датчиков копируются в базу данных). Базовый набор правил часто будет повторно использоваться разными клиентами, но правила параметризуются индивидуально (например, зависят от времени) для каждого клиента, и каждый клиент имеет разное количество датчиков и правил, которые можно настроить индивидуально. Некоторые правила могут быть применимы даже к отдельным клиентам.

Я считаю, что слюни могут быть хорошим выбором для такой реализации - использовать слюни guvnor для управления правилами для каждого клиента. У каждого клиента будет своя база знаний и сеанс выполнения правил.

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

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

Любые комментарии о тестах производительности или сравнении механизмов правил, касающиеся этой проблемы масштабируемости, приветствуются. Я также был бы рад услышать о реальных реализациях, в которых каждый клиент имеет свои собственные правила и набор данных, над которыми нужно работать.


person Alex    schedule 20.08.2013    source источник


Ответы (2)


Основная проблема с тестами заключается в том, что они будут сильно различаться в зависимости от конкретных правил, которые вы пишете для своего собственного домена. Большинство тестов настроены для лучшей работы в тестируемом механизме правил. Если у вас есть сеанс для каждого клиента и у вас есть стабильное количество клиентов, вы не столкнетесь с проблемами. Как только вы получите начальную версию своего проекта, вы можете настроить движок для повышения производительности. Самым «сложным», на мой взгляд, является создание инфраструктуры, я имею в виду, когда создавать сеансы и как выбирать правила для каждого из клиентов. Поскольку это часть вашего конкретного домена, вам нужно будет его кодировать и управлять всеми сеансами.

Надеюсь, это поможет

person salaboy    schedule 20.08.2013

Воздействие на данные датчика - один из примеров, приведенных для «Обработки сложных событий». Следующая ссылка может дать более глубокое понимание этого вопроса.

Drools Fusion также поддерживает CEP.

person ali köksal    schedule 21.08.2013