[開発] Message Brocker って結局、何者?

tag.
JMS Message Brocker MOM Queue

■ ことのはじまり
JMSで送受信する電文(メッセージ)が環境障害時に消失しないよう、DBなりに永続化して置きたい
その為に、単純にMOMに繋げるのではなく、Brokerを仲介させる必要があるげ?

てか、broker を今ひとつ掴み切れて無い
WebSphere Message Broker とか rich な感じはぷんぷんするが必須なのか?何が嬉しいのだ?

■ JMS Message Broker の意義
JMS Messaging product に含まれる物:
-Brocker: A JMS broker provides connectivity, message storage, and message delivery functions to its clients. It also provides quality of service features, such as reliability, persistence, security, and availability.
- Messages
- Destinations
- Clients (Producer / Consumer)
- Connections: Connections are the technique used by clients to specify a protocol and credentials for a sustained client interaction with a broker.
- Sessions: Sessions are defined by a client on a conection established with a broker. Each session defines whether the messages will form transactions, and -- if not -- the acknowledgement mode for messages.

画像検索してもなんだかBrockerがJMSの一部というかQueueなりTopicなりの実体を保持する輩に見えるが
WebSphere MQ と WebSphere Message Brock と別にあるということは別物。ん?どゆこと?

「ActiveMQでは中継を行うサーバのことをMessageBrokerと呼んでいます。」 (TechScore)
「WebSphere Message Brokerはそんな時代にEAIにおける「ハブ」製品」 (IBM developerWorks)

そもそも共通定義が無い!?
「There is not really an official definition for what a JMS broker is, but there is conceptual difference between a message queue and broker.」 (stackoverflow)
ビンゴ!共通定義はないが、Queue と Message Brocker は別物。

┏━━━━━━━━━━━━━━━━━━━━
┃■ Queue は、
┃msg の header だけを見る。それを元に電文送信する。
┃msg の body は決して見ないし、msg の変換とか変な事も一切しない。
┃悪までも電文送信が任務。

┃■ Message Brocker は、
┃Queue と違ってプログラム実行環境を提供する。
┃なので、msg の body を解析したり、よしなに変換したりできる。
┃=ミドルなりアプリのversion upで生じたひずみを吸収することも可能。

┗━━━━━━━━━━━━━━━━━━━━

Message Brocker の一番の意義は、

The big value of message brokers is that they can do some really nice things for you for handling message concurrently, fail-over for processing logic, deploying of processing logic, monitoring and logging ... etc. Think of a message broker as a specialized application server for writing message processing code, possibly in a custom high level language. For example IBM message broker can be programmed in a ESQL an extension of SQL along with a diagrams and nodes that you connect with each other. Programs written for a message borker will be shorter than if you wrote all the code yourself using plain JMS.

Brokers can be centralized or distributed, so for example you can have a central broker in New York, an have clients in London and Hong kong connected to it. Or you could have the broker be distributed and have an instance running in London and Hong kong which do the message processing closer to the source / destination of the message, it will all depend on your management infrastructure and what other resources like databases the message broker needs to talk to.


ref.
エンタープライズ・メッセージング! JMS編 前編
http://www.acroquest.co.jp/webworkshop/JavaNetwork/NP_lecture05.html
CORBA等のRPC(Remote Procedure Call)という通信方式とJMSとの違い

JMS Basics, JMS components
https://access.redhat.com/documentation/en-US/Fuse_Message_Broker/5.4/html/Getting_Started/files/FuseMBStartedKeyJMS.html
MOMが包含する登場人物の紹介。分かり易い

JMS Development, Basic broker application components
https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Fuse/6.0/html/Product_Introduction/files/JMSdev.html
アプリ側の処理フロー。分かり易い

JMS Messaging Objects and Patterns, Sun Java System Message Queue 4.1 Technical Overview
https://docs.oracle.com/cd/E19717-01/819-7759/aeras/index.html
RedHatより深いが、その割には分かり易そう

JMSの基礎, 2006.09.20
http://www.techscore.com/tech/Java/JavaEE/JMS/1/
ActiveMQサーバ/MessageBrokerの起動

What is the responsibility of a JMS broker in the JMS Eco system?
https://stackoverflow.com/questions/14152648/what-is-the-responsibility-of-a-jms-broker-in-the-jms-eco-system
JMS Brokerとは何か。


tag : JMS Message Brocker MOM Queue WebSphere MQ

2017-06-07 13:58 : 開発 : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud