Я пытаюсь обернуть свой мозг вокруг JMS и читаю некоторые очень полезные источники и примеры . Сейчас я пытаюсь увидеть «общую картину» и представить всю теорию, лежащую в основе JMS, в практическом контексте, где используются реальные корпоративные технологии.
Итак, у нас есть четыре элемента: (1) JMS - Java API для MOM , (2) ActiveMQ - одна из многих реализаций JMS , (3) EIP - интригующий и загадочный зверь, которого я только начинаю понимать, и, наконец, (4) Apache Camel , реализация этого зверя с открытым исходным кодом.
Сейчас я пытаюсь связать эти компоненты вместе, чтобы увидеть JMS (и, вообще, обмен сообщениями корпоративного класса) в действии.
Полагаю, первое, что я ищу, это простое и краткое определение EIP. Кажется, они представляют собой целый набор шаблонов проектирования для поведения MOM, но, поскольку я уже размышляю над концепцией обмена сообщениями с самого начала, это просто нечеткое определение, добавляемое поверх уже нечеткого понимания некоторых довольно хардкорные концепции.
Даже если я не «понимаю», что такое EIP, я «получаю», что такие инфраструктуры, как Camel, Mule и ServiceMix, реализуют их и позволяют серверным компонентам («конечным точкам») эффективно передавать друг другу сообщения.
Наиболее важным в этом вопросе является мое понимание того, как эти четыре компонента связаны друг с другом. Я думаю, что понимание этого поможет мне соединить большинство точек; ну, в любом случае, важные.
Итак, на диаграмме выше я обозначил все 6 возможных отношений и сослался на них ниже:
- JMS: ActiveMQ. Я понимаю, что ActiveMQ - это реализация JMS, так же, как Hibernate - это реализация JPA. Это правильно?
- ActiveMQ: Camel - Camel имеет возможность отправлять сообщения в любую реализацию JMS, например ActiveMQ. В этом случае ActiveMQ является конечной точкой верблюда. Правильно?
- EIP: Camel - Camel - это реализация EIP. Понимание того, что такое EIP в первую очередь, также важно для моего понимания всей этой установки.
- EIP: JMS. Хотя между этими двумя соединениями не может быть прямой связи, создается впечатление, что обмен сообщениями является ядром EIP, а JMS является основой обмена сообщениями в Java. Это справедливая оценка?
- Я оставил отношения между EIP: ActiveMQ и JMS: Camel на случай, если между этими системами есть какие-то "большие понятия", о которых мне следует знать.
Будем весьма благодарны за любую помощь в наведении простого для понимания определения в EIP и в понимании того, как все эти компоненты связаны друг с другом. Заранее спасибо!