4/11に,「エンタープライズ・マッシュアップ」というテーマでXMLコンソーシアム Web2.0勉強会の第2回ミーティングを開催しました。講演内容はこちらです。勉強会といっても,4月初めの時点での最先端の情報,見解,そしてXMLコンソーシアム発のアイディアをプロトタイプ・イメージ付きで紹介いたしました。

 日本ユニシスの小林 茂氏の「エンタープライズ・マッシュアップの実際」では,複数のREST APIの間で,XML文書を次々とXSLTで変換しながらデータをやりとりする例が提示されました。最初の連携(愛・地球博近辺の地図上のマッシュアップ)を緯度・経度という地理的メタデータで実現した後,今度は,その際に取得したキーワード,例えば「長久手」という地名のメタデータで,電子書籍カタログを提供するREST型Webサービスhon.jpを検索。関連書籍の要約を同じ画面に表示させ,ユーザーに新しい知識を提供しています。

 クライアント側でAjaxのように操作性の向上を実現するだけでなく,メタデータの選定とほかのサーバーへの送信というロジックを一部分担している点で,大変ユニークな方式と言えます。今後,企業名からXBRL(Extensible Business Reporting Language)で記述された金融情報を取得するなど,よりエンタープライズ・マッシュアップらしいアプリケーションに発展していく可能性があります。1カ月経過してさらに発展を遂げた姿が,5月22日~26日に開催される第5回XMLコンソーシアムWeekの中の1日,「Web 2.0 Day(1)」(5月23日,サブテーマは「エンタープライズシステム革新の入口はSOA2.0かKM2.0か?」)の最終講演で紹介される予定です。ご期待ください。

BPELはクライアントに内部構造を見せない

 Google Mapsを利用するサイトが多いこともあってか,マッシュアップというと地図が下敷きになっているイメージがあります。もちろん地図データが必須というわけではありません。しかし,複数のWebサービスから取得されたデータが,「見える」ことは,マッシュアップの本質と考えられます。特に,REST型のAPIをXHTMLから呼んでいる場合,やりとりされるデータは原則何らかの形で表示され,「見える」のが自然です。

 Web 2.0のマッシュアップが一般的になる前,「複数のWebサービスを連携させる」と言えば,エンタープライズ系のエンジニアならBPEL(Business Process Execution Language)を一番に思い浮かべたことでしょう。現在でもそうかもしれません。

 BPELの「ビジネス・プロセス実行」とか「ワークフロー」という呼称は,より上位層のビジネス上の問題解決や業務フローのモデリング・ツールとしてそのまま使えるかのような誤解を与えた側面がありました。しかし,BPELの規格や処理系(実行エンジン)を中心とした技術自体は,XMLベースの分散オブジェクト技術としてのWebサービス(いわゆるSOAP/WSDL型のWebサービス)を複数統合するものです。

 とすると,「BPELはマッシュアップとそっくりではないか」あるいは「両者の違いは,BPELが構成要素のWebサービスにWSDL(Web Service Description Language)を必須とする点だけではないか」と考える方もいらっしゃるかもしれません。本当にそうでしょうか。

 図1[拡大表示]をご覧ください。WSDLで記述した複数のWebサービスをBPELで統合すると,それは全体で1つのWebサービスとして見えるようになります。すなわち個々のWebサービスは,原則としてクライアント側から「見えなく」なってしまうのです。またこの構造は,図1に示したように再帰的に発生する(BPELが入れ子になる,つまりBPELから呼ばれるWebサービス自体がまたBPELでまとめられたものである)可能性もあります。BPELで束ねたWebサービスの1つが,実は複数のWebサービスで構成されているかもしれないのです。


図1 BPELで統合されたWebサービス
BPELはサービスの内部構造をクライアントに見せない。BPELが入れ子になる,つまりBPELから呼ばれるWebサービス自体がまたBPELでまとめられたものである可能性もある。

[画像のクリックで拡大表示]

 重要なのは,図1の左側にあるクライアントには原則としてこれらの内部の構造が「見えない」ことです。言葉の定義次第ですが,もし「マッシュアップは元の素材の姿の一部が見えるもの」とするならば,BPELはマッシュアップとは呼べなくなります。逆に,マッシュアップされたREST型Webサービスは一般に,BPELでは必須とされるWebサービス間の厳密な独立性の条件を満たしていない可能性もあります。

 このように,複数のWebサービスを統合すると言っても,マッシュアップとBPELとの間には本質的な違いがあります。両者の併用と使い分けに際しては,必ずしも業界慣行にとらわれる必要はありませんが,耳学問でなく,技術の性質を見極めて適切に選んでいくことが肝心,と言えるでしょう。