TOP
>
業務システム
> マッピングツールでは解消できないセマンティクスの違い
SOA/ESBの真の姿とは
第4回:ESBにおけるデータ変換(後編)
著者:
Fiorano Software 青島 茂
2007/9/3
前のページ
1
2
3
次のページ
マッピングツールでは解消できないセマンティクスの違い
さて、アプリケーション統合におけるデータの違いに関する最大の問題は、今までに説明してきたXML間のマッピングツールによるデータ変換やシンタックス変換だけでは解消できない、セマンティクス上のやっかいな相違が存在することです。
このセマンティクス上の問題には多種多様なものがあり、どこまで対処可能かはESB製品やベンダーの考え方によっても異なります。またESBなどのミドルウェアの範疇の外で、ITシステム全体を通じたデータアーキテクチャとして解決すべき問題もあります。
では実際に、いくつかの例をあげてみましょう。
コード体系の相違
例えば、図2のようなIDや製品番号のデータ値のセマンティクス変換は、両方のアプリケーションが同じコード体系で稼動しているという大前提のもとで、はじめて可能なものとなります。
図2:XML変換(再掲)
(画像をクリックすると別ウィンドウに拡大図を表示します)
コード体系の異なるアプリケーションに、顧客IDや製品番号などのコード化されたデータを送っても無意味です。しかしながら、SOAではコード体系を共有しない既存アプリケーションや取引先企業のアプリケーションとも連携することが求められます。このあたりが、コード体系も事前にきちんと定義していた従来のEDIによる取引先連携ともっとも異なる点です。
コード体系の異なるアプリケーションを統合するためには、相手側のコード体系に合うようコード変換を行ったり、顧客マスターを参照して顧客IDコードを氏名などのコード化されていないデータに変換してから送信するといった処置が必要になります。
具体的にはデータ変換プロセスの一環として、マスターデータを収めたデータベースへのアクセスやコード変換を行うアプリケーションの呼び出しなどの機能をESBに組み込めるようにすることです。
図3:マスターデータの参照、コード変換アプリケーションの呼び出し
(画像をクリックすると別ウィンドウに拡大図を表示します)
セマンティクス上のデータの粒度(大きさ)の違い
「粒度」というあやふやな言葉を持ち出してしまいましたが、アプリケーション間ではその処理対象の大きさが異なるケースがあります。
例1:注文伝票の明細行
1枚の注文伝票に明細行を10行まで載せることが許されているアプリケーションでは、10種類の製品の注文を1枚の伝票で処理することができます。
一方、1枚の伝票で1製品の注文しか扱えないアプリケーションでは、10明細行の伝票を処理できません。
この2つのアプリケーションを統合する場合、伝票形式の違いをESBで吸収する必要が生じますが、XSLTによるXML変換では対処できません。解消法の1つは、図4のようにESB上にデータの分割機能を持たせることです。XMLデータの分割としたのは、XML処理の関連技術を使えるので扱いやすいものとなるからです。
図4:データの分割
(画像をクリックすると別ウィンドウに拡大図を表示します)
例2:ESBでは変換不可能なケース
ある企業の営業部門では、CRMを用いて顧客企業の管理をしていたとします。営業マンが顧客企業からの注文を受けると、CRMにその注文を登録します。きめ細かなサービスを顧客に提供するため、注文は顧客企業の部門単位で受け付けていたとします。
一方で顧客への請求書の発行は、経理部の別のアプリケーションが担っています。この請求書発行アプリケーションでは、顧客は企業単位で扱っており、顧客企業の部門別に請求書を発行することができません。
このような状況でCRMと請求書発行アプリケーションを統合し、注文受付から請求書発行までの処理を自動化しようとする場合、どのようにしたらよいでしょう。明らかにこれは、ESBなどのミドルウェアの範疇を超えた問題です。
顧客を企業単位で捉えるか、それとも顧客企業の部門単位で捉えるのか、これはまさにITシステムを離れて決定すべき業務上の問題であり、またそれに基づくデータアーキテクチャの問題です。
前のページ
1
2
3
次のページ
著者プロフィール
Fiorano Software, Inc.
日本オフィス ジャパン オペレーション マネージャ
青島 茂
SOA/ESBの分野に2003年1月からたずさわる。2005年3月にFiorano Softwareの日本オフィスを開設し、現在SOA/ESB製品の国内市場への普及に専心している。
INDEX
第4回:ESBにおけるデータ変換(後編)
ESBに求められるデータの違いを吸収する機能
マッピングツールでは解消できないセマンティクスの違い
ESBに求められるデータ変換機能のまとめ