1. 概要

ITの急激な進歩により、多くの業務ではシステム化を行うことでその恩恵を受けてきました。システムへの高度な要求が高まる一方で、日々めまぐるしく変わる業務に対応しなければならず、開発期間縮小やコスト減少の必要性が高まっています。

このような中で、「スクラッチ開発」、「サイロ型」、「メインフレーム利用」の特徴を持つシステムでは次のような問題を抱えることが増えてきています。

-サイロ型システムの問題

個々の業務に関して最適化されたシステムはサブシステムのインタフェースがバラバラで、再利用するためには多大なコストがかかる。また、変更時にミスが発生するリスクがある。

-メインフレームの限界

急速な変化に合わせて、迅速に新規機能を追加したくとも運用コストが壁になる。メインフレーム自体を置き換えることも影響が大きく難しい。

-スクラッチ開発の限界

システム部門のバックログが増加している中で、スクラッチ開発は開発期間が長く、コストが高いため、新規機能追加が難しい。

【図1a】従来のシステムアーキテクチャとESB適用後のシステムアーキテクチャ

上記の問題を回避するために、「変化に強い」、「高い柔軟性を持つ」システム構築手法が求められており、Service Oriented Architecture(以下SOA)によるシステム構築手法が注目を集めています。Enterprise Service Bus(以下ESB)はSOAに基づいたシステムの基盤となり、統一したアーキテクチャを提供し、再利用性の高いシステムを構成します。

ESBを導入することで「インタフェースの統一」、「既存システムのオープン化」、「パッケージ製品との連携」を特徴としたシステム構築を行うことができます。

【図1b】ESB導入のメリット

ESBを導入することで従来の複雑なシステム構成が簡素化され、変化に強い柔軟なシステム構成へと変更することができます。

【図1c】ESB導入後のシステム

WebOTX ESBは、アプリケーションサーバWebOTXのJava EE基盤に、JavaによるESBの実現を目指した標準仕様であるJava Business Integration(以下JBI)フレームワークの実装を加えた製品です。

1.1. ESBとは

【図2a】ESBの概念

SOAはある処理のかたまりをサービスという単位で扱い、サービスを組み合わることによって新たなサービスやシステムを素早く構築するという考え方です。ESBとは、それらのサービスを疎結合するサービスバスと呼ばれる仮想的な通信路のことです。

ESBではメッセージングを用いることで、個々のサービスの独立性が高まり、1つのサービスを複数のシステムで使用することを可能にします。結合を疎にすることでサービスバス上に存在するあらゆるサービスは、サービスバスの制御によって自由に組み合わせることが可能になります。個々のサービスだけでなく、連結して作成したサービスを1つの新しいサービスと捉えることで、多様なサービスを組み合わせたシステム構築を容易にします。このようにサービスの高度な組み合わせを容易に実現する高い拡張性も持っています。ESBを利用することでサービス同士が疎結合で、サービスに再利用性があるというSOAになくてはならない要件を満たすことができます。ESBはこれらの要件を満たすために次に示すルーティング、データ変換、プロトコル変換といった機能を提供します。

1.2. ルーティング

ESBでは、記述されたサービスの呼び出す順序に従って実行するルーティング機能を提供します。ルーティング機能は記述された順序に従ってサービスを呼び出すだけでなく、受信したメッセージの内容を元に呼び出し先を変更することもできます。

1.3. プロトコル変換

ESBでは、呼び出すサービスに応じたプロトコル変換機能を提供します。これによりESBが利用するサービスは様々なプロトコルで実装することができます。

ESBを呼び出すクライアントは連携するサービスそれぞれのプロトコルを意識することなく、サービスを利用することができるようになります。

1.4. データ変換

ESBから呼び出すサービスは既存資産を利用したサービスから新規に作成するサービスまで様々なものが存在します。ESBでは、サービス間のデータ形式の差異を吸収するためのデータ変換機能を提供します。個々のサービスは他のサービスのデータ形式を意識することなく作成することができるため、サービス間の依存度を低くすることができます。