真に対応が困難なセマンティクス・ギャップの例は、システムにより「顧客」といエンティティのモデル化が異なるというようなケースだ。
例えば、あるシステムでは、「顧客とは法人と1対1に対応するもの」というモデル化を行っているとする。一方、別のシステムでは、「顧客とは請求書の送り先である」(つまり、1社が複数の顧客になることがある。)とモデル化しているようなケースである。現実世界の大企業の情報システムでは、このようなセマンティクス・ギャップが何らかの形で存在することがほとんどだ。
このようなケースでは、アプリケーションレベルのビジネスロジックを含む変換処理を作成しなければ、相互に意味のあるやり取りを行うことはできない。そして、SOAはこの点における直接的な解決策にはならない。SOAが提供するのは複数システム間の相互接続性であって、アプリケーション間の相互運用性を提供してくれるわけではないからだ。
別の言い方をすれば、SOAはシステム間のテクノロジーの違いは吸収してくれるが、アプリケーション設計の違いは吸収してくれないということである。
「SOAによってアプリケーション部品を自由に組み合わせて使えるようになる」というような説明を聞くと、あたかもこのセマンティクス・ギャップの問題が解消されるかのような錯覚を起こしてしまうかもしれない。
しかし、この説明が真に意味するところは、「(データのセマンティクスがすべて標準化されているという理想的環境では)SOAによりアプリケーション部品を自由に組み合わせて使えるようになる」ということなのだ。
Copyright © ITmedia, Inc. All Rights Reserved.