TOP業務システム> ESBに求められるデータの違いを吸収する機能
SOA/ESB
SOA/ESBの真の姿とは

第4回:ESBにおけるデータ変換(後編)

著者:Fiorano Software  青島 茂   2007/9/3
1   2  3  次のページ
ESBに求められるデータの違いを吸収する機能

   「第3回:ESBにおけるデータ変換(前編)」では、ESBに求められるアプリケーション間のデータの違いを吸収する機能の一例として、XMLデータを用いた方法とその問題点について解説しました。

   今回は引き続き、アプリケーション統合の際に発生する課題である「アプリケーション間のデータの違い」について、特にXML変換では対処できないケースを取り上げます。

XML変換ではカバーできないシンタックスの違い

   多くのESB製品には前述のようにXML変換機能が備わっています。いうまでもありませんが、このXML変換機能はアプリケーションがXMLをサポートしていることを前提としています。

   しかしながら、実際の現場ではしばしばXMLをサポートしていないアプリケーションを統合するケースが発生します。以下は、非XMLデータ形式の例です。

  • プレーンテキスト(フラットファイル)
  • EDI形式(X.1.2 EDI、EDIFACTなど)
  • メール形式
  • CSV
  • ERP固有の形式(SAP-IDOCなど)
  • SQLのクエリ結果

表1:非XMLデータ形式の例

   これらに対する解法は、各種データ形式からXMLに(およびその逆へ)変換する機能をESBに設けることです。

   また別の問題として、文字コードがアプリケーション間で異なっている場合があげられます。例えば、Windows上のアプリケーションから送られるShift-JISのデータを、EUCをベースとしているSolaris上のアプリケーションが受信したとしても、Solaris側では理解できません。

   このため、文字コードの違いもESBで吸収してやる必要があります。ただこの問題は日本特有のもので、外国製のESB製品ではあまり考慮されていないようです。


シンタックス変換機能を追加したESB

   ESBが備えるべきデータ変換機能はXSLTによるXML変換機能で充分とする製品も存在します。しかし既存アプリケーションの再利用を促し、迅速にアプリケーションを統合することを目的とするSOAにとって、シンタックスの違いを吸収・変換する機能をESBが備えていることは不可欠です。

   シンタックス変換機能を追加したESBのフローは図1のようになります。

データ変換のプロセスフロー
図1:データ変換のプロセスフロー
(画像をクリックすると別ウィンドウに拡大図を表示します)

   大切な点は、XML変換機能やシンタックス変換機能が固定されているのではなく、ユーザが状況に応じて自由にその実行順序を変えられることです。

   もっとも効果的な方法は、各種の変換機能をそれぞれコンポーネントとして提供し、必要なコンポーネントをESB上に任意の順序で並べられるようにすることです。つまりデータ変換のためのプロセスフローをESB上に組み立てられるということになります。

   これは、まさにデータがバス上を流れ、流れている間に必要なデータ変換が適用されるという、バス形式のESBに適した処理方法といえるでしょう。

1   2  3  次のページ


Fiorano Software, Inc. 日本オフィス ジャパン オペレーション マネージャ 青島 茂
著者プロフィール
Fiorano Software, Inc.
日本オフィス ジャパン オペレーション マネージャ
青島 茂
SOA/ESBの分野に2003年1月からたずさわる。2005年3月にFiorano Softwareの日本オフィスを開設し、現在SOA/ESB製品の国内市場への普及に専心している。


INDEX
第4回:ESBにおけるデータ変換(後編)
ESBに求められるデータの違いを吸収する機能
  マッピングツールでは解消できないセマンティクスの違い
  ESBに求められるデータ変換機能のまとめ