Я изучаю различные способы создания простого механизма бизнес-правил в Java. Мне нужно представить клиенту простой webapp, который позволяет ему настраивать кучу правил. Пример базы правил может выглядеть так:
Здесь пример:
IF (PATIENT_TYPE = "A" AND ADMISSION_TYPE="O")
SEND TO OUTPATIENT
ELSE IF PATIENT_TYPE = "B"
SEND TO INPATIENT
Механизм правил довольно прост, последнее действие может быть всего лишь одним из двух действий, отправляемых в стационарный или амбулаторный. Операторы, участвующие в выражении, могут быть =,>,<,!=
, а логические операторы между выражениями AND, OR and NOT
.
Я хочу создать веб-приложение, в котором пользователь будет писать небольшим script в textarea
, и я бы оценил выражение - таким образом, бизнес-правила объясняются простым английским языком, а бизнес-пользователь имеет полный контроль над логикой.
Из исследования, которое я сделал до сих пор, я столкнулся с ANTLR
и написал собственный язык сценариев как возможные варианты решения этой проблемы. Я не изучаю такие опции, как Drools rules engine, потому что у меня такое ощущение, что здесь может быть избыток. Был ли у вас опыт решения таких проблем? Если да, как вы это сделали?