7. Copyright (C) 2018 OGIS-RI All rights reserved.
Enterprise Integration Patterns
? 著者:Gregor Hohpe氏 and Bobby Woolf氏. 2005
? 企業におけるシステム連携のパターンを65種類網羅
したパターン本
? Mule、Camel、Spring Integrationなど様々な連携ミドルウェアがリ
ファレンスしている
? メリット
– システム連携の共通言語、連携アーキテクチャの議論の出発点
http://www.enterpriseintegrationpatterns.com より
8. Copyright (C) 2018 OGIS-RI All rights reserved.
EIPとMule
https://docs.mulesoft.com/mule-user-guide/v/3.9/understanding-enterprise-integration-patterns-using-mule より
Pattern Mapping to a Mule Object
File Transfer File Transport
Shared Database JDBC Transport
Messaging Mule is all about Messaging
Message Channel Mule provides a message channel that
connects the message processors in a flow.
Pipes and Filters A Flow implements a pipe and filter
architecture
Message Router Message Routers
Message Translator Message Transformer
Message Endpoint Inbound & Outbound Endpoints
Pattern Mapping to a Mule Object
Point-to-Point Channel The default channel within a flow.
Message Bus Mule is a message bus.
Content-Based Router Choice
Message Filter Filters
Recipient List Recipient List
Splitter Collection Splitter, Message Chunk Splitter &
Plain Splitter
Aggregator Collection Aggregator, Message Chunk
Aggregator & Custom Aggregator
Resequencer Resequencer
Idempotent Receiver Idempotent Message Filter
9. Copyright (C) 2018 OGIS-RI All rights reserved.
Conversation Patterns
? EIP本の第2弾
– Gregor Hohpe氏が執筆中(2019.1.19に発売予定? Amazonより)
? EIPは、メッセージとそれが通るコンポーネントに着目していたが、
Conversation Patternsでは時間の経過に伴うメッセージの流れ相互作用に着目
http://www.enterpriseintegrationpatterns.com/patterns/conversation/ より
11. Copyright (C) 2018 OGIS-RI All rights reserved.
一貫性に関するパターン
? API-let ConnectivityやApplication Networkを実現する上で重要なREST APIのエラー
とリトライ、べき等性に関連するパターン(齋藤理解)
? 一部のパターンはHohpe氏のブログ記事「スターバックスは2フェーズコミットを
使わない(Starbucks Does Not Use Two-Phase Commit)」に実例が掲載されている
Pattern 概要
Ignore Error エラーを無視する。エラー処理のコストが処理全体のコスト
に見合わないケース
Compensating Action 補償行為。エラーにより不整合が発生した場合、元に戻す。
処理を行うことで一貫性を担保する
Tentative Operation 仮の操作を実行し、その後確認を行うことで処理を完結させ
る
Coordinated Agreement 仲介者が各参加者の状況?回答を確認し、その結果を判断し。
参加者と共有する
12. Copyright (C) 2018 OGIS-RI All rights reserved.
Mule のアーキテクチャコンセプト
イベントドリブンとパイプ&フィルタ
? Mule は様々なシステム連携に対応するために抽象化された処理モデルを
採用している
? イベントドリブンアーキテクチャとパイプ&フィルタモデルである
イベント
(メッセージ)
Flowの処理モデル
データ
変換
API
呼出
DB
アクセス イベント
(メッセージ)
API
DB
13. Copyright (C) 2018 OGIS-RI All rights reserved.
Mule3のスレッドモデル
? 同期の場合は、すべてが同じスレッドで動作する
? 非同期の場合は、RECIVER、Flow、DESPACHTERが別々のスレッドで動作する
https://docs.mulesoft.com/mule-user-guide/v/3.9/tuning-performance
14. Copyright (C) 2018 OGIS-RI All rights reserved.
Mule4のNon-blocking IO
? I/O(HTTPリクエストなど)の処理を待たずに別の処理を開始することができる
? Mule 3.7 からHTTPなど一部のConnectorで適応可能だった
? 基本的にすべてのFlowでNon-blocking IO方式が適用される