フィオラノ ソフトウェア ジャパン ブログ
    Twitter
  • Facebook
  • Google+

マイクロサービス (その4) — 仮想バス アーキテクチャ —

miroservice-banner

前回は “smart endpoints and dumb pipes (賢いエンドポイントと機能性の低いパイプ)” の意味することにについて考察しました。

今回は、マイクロサービス間の連携を支えるこの “smart endpoints and dumb pipes” の具体的なアーキテクチャについて考えてみます。

 

マイクロサービスとは、複数のマイクロサービスが連携して業務処理を実現するアプリケーション アーキテクチャです。
単一の機能にしぼった小さな (マイクロな) サービスを連携させることで、大きな処理を実現するアプローチは、UNIX シェルのパイプのエッセンスを有しています。

マイクロサービス (その3) — 土管 (Dumb pipe) の意味 —

miroservice-banner

前回は、マイクロサービスについてUNIX のパイプ機能をアナロジーとして取り上げ説明しました。
今回は、マイクロサービス間の連携を支える “マイクロサービスにおけるパイプ機能” について考察してみたいと思います。

Dumb Pipe (土管) ?

マイクロサービスを提唱したJames Lewis氏が Martin Fowler氏と共に著した『Microservices』*1という記事の中で、「Smart endpoints and dumb pipes」*1というセクションを設けて、マイクロサービス間の連携について説明しています。

このセクションではまず、対極にある smart pipe を説明しています。smart pipe の例として ESB (エンタープライズ サービス バス) などのアプリケーション連携製品をあげています。

メッセージング再入門 (後編) — イベント駆動と非同期メッセージング —

messaging

1.3 イベント駆動によるアプリケーション

1.3.1 イベント駆動と非同期メッセージング

現実世界の業務処理では、”何らかの事象 (イベント) が発生するとそれに応じた業務処理が実行される” というケースが数多くあります。例えば、イベントには次のようなものがあります。

  • 倉庫に部品が入庫した
  • 製造ラインで不良品を検出した
  • 株価が変化した
  • 新規顧客がデータベースに登録された
  • 在庫数が閾値を超えた
  • POS 端末で特定商品の売上げを検出した

今回は、イベント駆動によるアプリケーション実行とメッセージングとの関係について考察します。

メッセージング再入門 (前篇) — JMS を使用することの意味 —

messaging

1. メッセージングとは

“メッセージング” という言葉は、コンピュータの世界のさまざまな場面で広く使われています。例えば、OS のコンセプトを説明する場面や e-メール システムを説明する場合にも使われています。

ここで説明するメッセージングとは、JMS におけるメッセージングを指し、アプリケーション間の非同期通信 を説明する言葉として用いています。

また、”メッセージ” とは、非同期に送受信される情報データ、リクエスト、レポート、イベントなどを指し、人間ではなくアプリケーション ソフトウェアによってコンシューム (受信、処理) されるものを指してしています。

今回は、JMS をメッセージングのプロトコルとして使用することの意味について考察します。