ゆーたんのつぶやき

株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。

Notes/Domino8とクライアントサイドSOA



Notes/Domino8が正式リリースされましたね。


EcipseRCPを採用した新ノーツクライアント
は以前から注目していました。


オフラインの対応に「プチJ2EE」的な概念を
取り入れているといったトピックは以前にも
触れたとおりです。


http://d.hatena.ne.jp/dufresne/20060227


今回のリリースで強調されている「コンポジット
アプリケーション」はいわばクライアントサイド
SOAとでも言うべきものです。


Standard版の新ノーツクライアントはコンポジット
アプリケーションを構成する個々のコンポーネント
(部品化されたアプリケーション)間通信を仲介する
ESBの役割を持つ「Property Broker」が実装されて
います。
コンポーネントは自身が提供するプロパティ(データ)や
データを受け取った時に実行されるアクション(ロジック)
WSDLで定義します。つまり、コンポーネント一つ一つが
ローカルで動作するWebサービスのようになっています。


こうした仕組みにより、同一PC内のコンポーネントだけでなく
外部の本当のWebサービスも同じ仕組みでアプリ内に取り込む
ことができます。まさにSOAをクライアント上で実現している
わけですね。


実は今後はこうしたクライアントサイドSOAが注目
を集めるのではないかと個人的には考えています。


MicrosoftWCF(Windows Communication Foundation)もほぼ
似たような発想です。WCFでは各コンポーネントが「ABC」
(Address/Binding/Contract)と呼ばれる他コンポーネント
通信するための定義情報を保持しています。
Bindingにはネイティブで実行されるNamedPipeからWS-I Basic
に準拠したWebサービスまで幅広く揃っており、ローカル通信
も外部サービスとの通信も同一の方法でカバーできます。


このようにIBMMicrosoftがそれぞれクライアントサイドSOA
という概念に基づいて良く似た開発/実行基盤を提供してきて
いるのです。実際、WCFのABCはNotes/Domino8で言うところの
WSDLと対応させて考えることができます。


WebSphere PortalやSPPSの時代にもポートレットやWebパーツ
によって同様のことはある程度実現できていましたが、開発
も面倒でしたし、連携可能な相手のカバレッジも今と比べて
広くはありませんでしたが、Webサービスの発想を持ち込む
ことで標準的な技術を使えるようになったのだと思います。


サーバーサイドだけで統合させようとすると何かと大袈裟に
なってしまいがちなSOAですが、このようにクライアント側
マッシュアップさせるという発想を加えると、SOAもより
手軽になってくるのではないかと期待しています。


ただし、いずれもJavaと.NETでコーディングしたものを
XMLマッピングする段階やXMLマッピングされた結果
の相互運用性といった細かい課題を抱えています。今後
それらが解消し、IBM/Microsoftいずれの基盤を用いても
互いにマッシュアップして一つのアプリ画面上で操作が
できる「ベンダーの枠を超えたコンポジットアプリ」が
実現できたらいいなぁ、と思っています。