Среда вопросов относится к JavaEE, Spring
Я разрабатываю систему, которая может запускать и останавливать произвольные TCP (или другие) прослушиватели для входящих сообщений. Может возникнуть необходимость аутентификации этих сообщений. Эти сообщения должны быть проанализированы и сохранены в некоторых других объектах. Эти объекты моделируют, какие поля они хранят.
Так, например, если у меня есть свойство1, которое может иметь два текстовых поля FillLevel1 и FillLevel2, я мог бы получать сообщения по TCP, у которых оба уровня заполнения указаны в тексте как F1 = 100; F2 = 90
Позже я мог бы добавить еще одно поле, скажем, FillLevel3, когда я начну получать сообщения F1 = xx; F2 = xx; F3 = xx. Но это сознательное решение со стороны разработчика системы.
Мой вопрос: что, по вашему мнению, лучше использовать для анализа и хранения сообщения? ETL (использующий Pantaho, который используется в другой системе), где вы сохраняете необработанное сообщение и используете исполнителя задач, чтобы использовать их одно за другим и хранить преобразованные сообщения в соответствии с вашими правилами.
Можно использовать Espr или Drools, чтобы делать то же самое, сохраняя правила и выполняя их с таймером, но я не уверен, насколько динамичными вы могли бы стать при создании правил (они должны выполняться конечным пользователем в работающей системе и желательно наиболее удобным для пользователя способом, т.е. без сценариев или кода, только с графическим интерфейсом)
Конечный пользователь должен иметь возможность изменять правила разбора. Также возможно, что конечный пользователь также может захотеть изменить архивированные данные (например, в приведенном выше примере, если добавлено новое значение FillLevel, нужно добавить FillLevel = -99 в предыдущие значения, чтобы сделать данные соответствует).
Пожалуйста, попросите объяснений, у меня такое ощущение, что мне нужно немного пересмотреть этот вопрос.
Спасибо