- blogs:
- cles::blog

JMSを調べる


最近、研究のために開発するアプリで採用するアーキテクチャを考えています。大体OKかなというレベルにまでまとまってきたと思っていたのですが、要件を良く考え直してみたみると大量にメールを送る処理があることをすっかり見落としていることに気づきました。
メール送信は意外に時間がかかるので、その部分はやっぱりトランザクションから切り離したい。さらに、大学のメールサーバはメンテナンスが十分に行き届いているとはいえない*1ので、再送のことなんかを考え始めると非常に頭が痛いところです。
バッチ処理とかがほとんど必要ないアプリケーションなので、同期処理の部分だけに頭がいっていて、非同期処理部分をぜんぜん考慮していませんでした。
ソフトウェア設計は難しいです。まだまだ修行が必要ですね。
† JavaにはMQってないんだっけ?
そこでふと、前の会社にいたときのことを思い出しました。
前の会社にいたときは分散非同期処理のためにIBM MQ Series*2が使われていました。要はこれと同じようなことが出来ればいいので、JavaによるMOM*3技術であるJMS*4について調べてみることにしました。JMSは今まで一度も使ったことがなかったのですがMQで身に付けた知識のおかげですんなりと理解できています。
今回はどうしてもPOJO*5+ORMという組み合わせでプログラミングをしたかったのでDIContainerを採用しているのですが、こうなってくると素直にEJBを使ってMessage Driven Beanを使うのが楽なような気がしてきました・・・・。
† 評価候補
WebSphere MQなんて絶対に買えないので、フリーのものを前提に検討すると、この辺になるんでしょうか。
- *1: つまり、しょっちゅう落ちたりしているということです
- *2: 現在はWebSphere MQ Familyと改称されています
- *3: Message Oriented Middleware
- *4: Java Messaging Service
- *5: Plain Old Java Object
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/218
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110648)
3 . 年次の人間ドックへ(110278)
4 . 2023 年分の確定申告完了!(1つめ)(109815)
5 . 三菱鉛筆がラミーを買収(109716)