ESB【Enterprise Service Bus】エンタープライズサービスバス
概要

従来、複数のシステムを連携させる場合には、接続先ごとに個別のデータ伝達経路を構築するポイントツーポイント方式(Point-to-Point)が用いられてきた。この方式では接続先が増えるほど通信経路や変換処理が複雑化し、保守や運用の負荷が大きくなる。
ESBでは各システムを共通の通信基盤に接続し、相互に通信できるようにする、個別の接続関係を減らし、連携設定や運用管理を集約できる。データ変換機能が備わっており、XMLやJSONなどのデータ形式を相互に変換できる。通信プロトコルについてもHTTP、JMS、SOAP、RESTなど様々な方式に対応する製品が多い。
システムごとの仕様に合わせた「アダプタ」(adapter)を導入することで、既存のシステムに大きな改修を加えずに連携対象を追加できる構造になっている。目的のシステムへデータを振り分けるルーティング機能や、複数の処理を連携させるワークフロー機能、通信障害時の再送制御、処理の整合性を保つトランザクション管理などの機能を備える製品もある。
データの転送やサービスの連携は、要求への応答を待ちながら処理を進める「同期方式」と、メッセージを一時的にキュー(待ち行列)へ蓄積して順次処理する「非同期方式」の双方に対応する。販売管理システムや会計システム、顧客管理システム、外部のクラウドサービスなど、技術基盤の異なるシステム同士の仲介を担うことができ、業務要件に応じた連携方法を選べる。
ESBは2000年代にサービス指向アーキテクチャ(SOA)の普及と共に企業システム統合の中核技術として広く利用されるようになった。繋ぎたいペアごとに個別に接続の仕組みを実装する従来の方式に比べ、保守や拡張に伴う負荷を抑える手段として広まった。近年ではクラウドサービスとの連携を担う「iPaaS」(Integration Platform as a Service)や、マイクロサービスアーキテクチャにおけるAPI管理基盤、メッセージブローカー、イベント駆動型アーキテクチャ(EDA)などを組み合わせて同様の機能を実現する例も増えている。