|
Очередь XML-сообщений (Message Queue)
|
|||
---|---|---|---|
#18+
Всем привет. Хотелось бы понять основной архитектурный принцип реализации ( например : источник - шлюз (очередь) - приложение - бд - ... (возможно, пример некорректный и если есть какие - нибудь замечания, то поделитесь ими ) Допустим источник отправляет XML-сообщения, а вот куда они должны попадать ( какую роль выполняет шлюз ? по какому принципу организуется и как взаимодействует с приложением, которое обрабатывает входящие сообщения ? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2015, 21:28 |
|
Очередь XML-сообщений (Message Queue)
|
|||
---|---|---|---|
#18+
Обмен сообщениями реализуется с помощью отдельного ПО (Message Oriented Middleware) - это и есть "шлюз" в Вашей терминологии. Клиентское приложение подключается к нему с помощью библиотек предоставляющих соответствующий api. По входящим сообщениям - режим либо синхронный - подключаетесь и считываете сообщения из очереди, либо асинхронный запускается слушатель (listener) в отдельном потоке и при появлении сообщения в очереди срабатывает, дальше обработка сообщения за Вами. Вопрос у Вас слишком общий. Если есть конкретика, то лучше её озвучить. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 06:59 |
|
Очередь XML-сообщений (Message Queue)
|
|||
---|---|---|---|
#18+
Станислав КлевцовВсем привет. Хотелось бы понять основной архитектурный принцип реализации ( например : источник - шлюз (очередь) - приложение - бд - ... (возможно, пример некорректный и если есть какие - нибудь замечания, то поделитесь ими ) Допустим источник отправляет XML-сообщения, а вот куда они должны попадать ( какую роль выполняет шлюз ? по какому принципу организуется и как взаимодействует с приложением, которое обрабатывает входящие сообщения ? Заранее спасибо. Ближайшая аналогия это e-mail. Грубо говоря источник кладет сообщение в очередь сообщений. А приемник это сообщение забирает из очереди. В рамках шлюза различные сообщения можно перекладывать в другие очереди, по правилам седланным "в ручную". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 07:04 |
|
Очередь XML-сообщений (Message Queue)
|
|||
---|---|---|---|
#18+
mad_nazgulСтанислав КлевцовВсем привет. Хотелось бы понять основной архитектурный принцип реализации ( например : источник - шлюз (очередь) - приложение - бд - ... (возможно, пример некорректный и если есть какие - нибудь замечания, то поделитесь ими ) Допустим источник отправляет XML-сообщения, а вот куда они должны попадать ( какую роль выполняет шлюз ? по какому принципу организуется и как взаимодействует с приложением, которое обрабатывает входящие сообщения ? Заранее спасибо. Ближайшая аналогия это e-mail. Грубо говоря источник кладет сообщение в очередь сообщений. А приемник это сообщение забирает из очереди. В рамках шлюза различные сообщения можно перекладывать в другие очереди, по правилам седланным "в ручную". Спасибо большое, разбираюсь... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2015, 18:51 |
|
Очередь XML-сообщений (Message Queue)
|
|||
---|---|---|---|
#18+
Станислав КлевцовХотелось бы понять основной архитектурный принцип реализации ( например : источник - шлюз (очередь) - приложение - бд - ... (возможно, пример некорректный и если есть какие - нибудь замечания, то поделитесь ими ) Что за шлюз? В переводе на русский язык очередь называется... очередь называется... сюрприз... называется очередью (messaging queue). Значит, надо отбросить безграмотный документ со словом "шлюз" и найти документ по лучше, которых много. Наиболее распространённые системы передачи сообщений основаны на спецификациях JMS, Oracle Streams AQ и AMQP. В документации по каждой из этих тем есть описания специфических для них очередей. Очередь - это набор сообщений, которые надо передать. Исторически первой была JMS для Java, остальные перечисленные позаимствовали идеи из неё. Кто программирует на Java, тому можно ознакомиться JMS и для примера установить Apache ActiveMQ - сервер JMS сообщений, простой в использовании и с хорошей документацией. Oracle Strems AQ может быть полезно в организации, где есть специалисты по Oracle, поскольку оно допускает программирование на PL/SQL (но можно и на Java). Впрочем, там есть и конвертирование сообщений из AQ в JMS и обратно. AMQP - новый программный интерфейс и протокол передачи данных, не зависящий от языка программирования. Можно ознакомиться с сервером AMQP - RabbitMQ - он простой в использовании и с хорошей документацией. ActiveMQ, RabbitMQ (и много подобных) - это службы доставки сообщений (messaging service или message bus). В некоторых из них, но не во всех, реализована надёжная доставка сообщений - сообщение сохраняется в очереди, пока не будет передано (о чём клиент подаёт сигнал). Для этого обычно используется долговременное хранение сообщений в базе или в файлах. Перечисленные программы относятся к таким. Они часто снабжаются адаптерами (компонентами для ввода и вывода сообщений разных форматов) и библиотеками для связи с ними из разных языков. Так что если служба использует JMS, то всё же может оказаться возможность обратиться к ней не из Java (только при этом будет использоваться нестандартный интерфейс). Ещё бывают программы типа ESB (пример MuleESB) - они всегда включают в себя и службу доставки сообщений и ETL (программы интеграции, допускают использование служб доставки сообщений, когда надо), для ознакомления подойдут Pentaho Data Integration и Talend Open Studio, но в ESB и ETL использование очередей не так очевидно. JMS, AQ, AMPQ допускают различные форматы содержимого сообщений, в том числе и XML, который для них просто текст. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2015, 21:41 |
|
|
start [/forum/topic.php?fid=33&tid=1547470]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
268ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
others: | 378ms |
total: | 720ms |
0 / 0 |