объединение движка правил node.js на сервере и php в пользовательском интерфейсе

#database #node.js #drools #rule-engine

#База данных #node.js #пускает слюни #движок правил

Вопрос:

Я запускаю приложение, которое объединяет множество компонентов:

  • node.js на стороне сервера за его легкое асинхронное поведение, управляемое событиями ( а также для сокета функций.io) ==> он будет захватывать данные, полученные на порту сокета, сохранять в базе данных, обновлять пользовательский интерфейс и запускать события.

  • php-фреймворк для части пользовательского интерфейса, выполняющий обычную обработку и рендеринг html-страниц.

  • и, конечно, сервер базы данных, скорее всего, для сбора общих данных

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

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

У меня есть предыдущий опыт работы с механизмами правил, обычно, когда дело доходит до распределенных систем, я бы выбрал один поддерживающий API или soap для связи с различными средами (я сделал это между приложениями .net и JAVA с использованием openrules). Но в данном случае я рассматриваю drools, поскольку он имеет node.js совместимая версия nools. Итак, моя идея заключается в том, что пользовательские правила будут храниться в БД через drools, которые должны иметь тот же синтаксис, который будет выполняться через серверную часть nools.

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

Спасибо

Комментарии:

1. Nools может быть реализацией Rete, но это далеко от того, чтобы быть чем-то вроде Drools. Если быстро взглянуть на те документы nools, на которые вы ссылались, есть некоторые сходства в структуре правил, но синтаксис отличается от синтаксиса Drools DRL. Таким образом, правила, созданные с использованием Drools / Workbench, не будут загружаться в nools.

2. Понятно, итак, у вас есть какие-либо рекомендации относительно того, что соответствует таким требованиям?

3. Я думаю, либо использовать серверную часть на основе JVM для правильной интеграции с Drools. Не требуется много усилий, чтобы представить его как веб-сервис. В противном случае, спланируйте, как управлять вашими правилами nools самостоятельно. Обратите внимание, что последняя версия Drools хранит правила в Git, а не в DB.