77
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

システム間連携におけるEnterprise Integration Pattern

Posted at

複数のシステム(やサービス)を跨いでデータ連携したい、なんて要望は今やどこの現場でもあると思うが、その際のデザインとしてEnterprise Integration Patternというものがある。この手の検討は主に「方式設計」なんて呼ばれていて、開発のかなり早い段階で検討されたりする。Enterprise Integration Patternには4パターンあり各々簡単にまとめた。

パターン1:File Transfer

a.png

いわゆるファイル転送でのデータ連携。比較的容易に実現出来て、色んな現場で見かけるパターン。即時性を求められないバッチ等でよく見受けられる。双方のシステムで連携するデータ項目を定めて、IFファイル定義書を作成する。

パターン2:Shared Database

2.png

いわゆるデータベース共有でのデータ連携。説明不要ってくらいどこにでもあるデータ連携方式。フロントエンドとバックエンドで分かれるようなシステム構成をとる場合によく利用される。

パターン3:Remote Procedure Invocation

3.png
RESTやSOAPみたいなWeb APIなんかはこのパターン。外部システムのProcedureをリモートコールしてデータ連携する。昔はSOAでSOAP、最近ではマイクロサービスアーキテクチャなんかが注目されてきて特にRESTful APIなんかはトレンド感がある。

パターン4:Messaging

無題.png
メッセージバスと呼ばれる、非同期を前提としたフレームワークを介してデータ連携するパターン。SOAなんかでは多く見られたパターン。

どのパターンを採用するか?

最近マイクロサービスアーキテクチャという言葉をよく聞くからといって、安易にパターン3のRemote Procedure Invocationパターンを使おう!ではだめです。また、リアルタイム性が求められているのにパターン1のFile Transferやパターン4のMessagingを使うのも違うかと思います。自分たちが何を求めているのかしっかりと分析したうえで、じゃあこれだね、ってなるかと思います。要するに適材適所です。

77
54
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
77
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?