Я изучал инструменты и структуры для реализации приложения BAM. Основные требования будут:
- Интерфейс с различными
приложения, чтобы получить бизнес
статус / мероприятия. Начальные каналы
будет JMS-провайдер, веб-сервисы, FTP,
и JMX.
- Будет как можно ближе к реальному времени.
- Потребуется обрабатывать более 20 миллионов сообщений в день со скоростью 2000 / сек (сообщения, как в XML, через JMS-провайдера, такого как activeMQ или WebsphereMQ).
- Генерация оповещений при нарушении KPI (уровень предупреждения и критический уровень)
Другие вещи, которые следует учитывать: наша маленькая компания имеет лицензию Mulesoft EE, стек приложений компании (пакеты osgi с Tomcat, ActiveMQ, Drools и т. Д.)
Итак, первоначальный черновой подход, о котором я думал из одного исследования перед тем, как попробовать POC, выглядит примерно так:
Использование Mule в качестве ESB для интеграции с различными приложениями, а затем использование его службы SEDA для обработки и передачи событий в механизм Drools для обработки правил, связанных с этими событиями.
Я не совсем уверен, является ли этот процесс способом, которым эти инструменты были предназначены для использования, или есть лучший, более красноречивый способ справиться с этим. Также некоторые другие нерешенные вопросы:
- Как пользователю может отображаться агрегация событий и состояния (предупреждения, нарушения kpi и т. Д.). Интеграция GWT? Должны ли события быть помещены в базу данных в памяти для запроса и отображения?
- Что касается физической архитектуры, я думал о запуске мула в кластеризованных экземплярах tomcat на двух серверах с механизмами drools на тех же серверах? База данных (для хранения истории) на собственных серверах.
- Я не ограничен вышеперечисленными инструментами, я также смотрел на Esper, Apache Camel
- Этот подход излишний? Можно ли использовать более простое прямое веб-приложение с управляющим состоянием СУБД? Я полагал, что требования в реальном времени и количестве событий предотвратят это.
ЛЮБАЯ помощь была бы признательна, чтобы помочь мне с первоначальной стратегией, или кто-то внедрил решение с аналогичными требованиями и хотел бы поделиться. Спасибо!