yohei-y:weblog

XML と REST/Web サービス関連の話題が中心の weblog です

2004-11-24

Service Oriented の正体

Newcastle upon Tyne 大学の Savas Parastatidis のこのポストが面白い。いや面白いというか感動した。ここ最近 Web サービス、REST などに関して混乱している僕に一筋の光明を照らしてくれたような気がする。Savas いわく分散システムの実現手法には以下の三つがある。

  1. オブジェクト指向
  2. リソース指向
  3. サービス指向

彼はこれらの手法を、それらが採用する building block で特徴付けている。

オブジェクト指向の building block はインターフェースとオブジェクトだ。コミュニケーション抽象化はメソッド呼び出しの粒度で行われる。たとえば以下のような例が挙げられている

interface Calendar {
    Appointment CreateAppointement(Person, DateTime);
    void Cancel(Appointment);
}

リソース指向(REST)の building block はリソースと統一されたインターフェースである。オブジェクトとリソースの最大の違いはリソースそれ自身がメソッドを持たないところにある。リソース指向ではリソースの操作は統一されたインターフェースだけを介して行われ、それ以外の方法では操作されない。この統一されたインターフェースを、セマンティクスによって呼び分けるのも大きな特徴である。すなわち、オブジェクトは呼び出し可能な実体であるが、リソースはそうではないということだ。上記の例はリソース指向(REST)で書きなおすと以下のようになる。

POST InformationAboutNewAppointment 
TO http://calendar.com/appointments AND 
SEND created, http://calendar.com/appointments/123

これらに対してサービス指向ではどうか。サービス指向のにおける biulding block はサービスとメッセージである。ここで Savas が持ち出す記法はすごい。まずは以下の例を見てほしい。

AppointmentRequestMsg TO CalendarService FROM sender
AppointmentInformationMsg TO sender FROM CalendarService

AppointmentCancellationMsg TO CalendarService FROM sender

この記法の意味するところは次のようなものだ。まず AppointmentRequest メッセージが送信者から Calendar サービスに送られる。次に Calendar サービスから送信者に AppointmentInformation メッセージが送られる。見方によってはこれはリクエスト・レスポンスになるが、メッセージが送信・処理される、という一方向の組み合わせに過ぎない。それは Cancel の方を見るとよくわかる。 Cancel ではメッセージは送信者からサービスに送られるのみである。サービスから送信者には何もメッセージが送られない。オブジェクト指向や REST では一方向を実装規約で乗り切っていたことを思い出してほしい。オブジェクト指向では void という戻り値で、REST では空のメッセージを返すことで、一方向メッセージを実現していた。しかし、サービス指向では全ては一方向メッセージ交換、とその組み合わせで実現される。

Savas はこれを ProcessMessage Architectural Style と呼んでいる。そう、これは一つの Architectural Style なのだ。このスタイルではオペレーションはこの「メッセージを処理する」という意味の ProcessMessage しか存在しない。

このほかにもこのポストでは興味深い考察がいくつも挙げられている。WS-Transfer の位置づけや、サービス指向における verb の扱いについて、さらに WS-Addressing における wsa:Action の存在についてだ。

最後に彼は WSDL を IDL として使うことや、CORBA のオブジェクトをそのまま Web サービスとして出すことに反対している。これに通じる流れとして WSDL 2.0 に明確に反対する記事も出てきている。こちらも見逃せない。

ラベル: , ,

2004-11-17

xfy

XML 2004 初日の講演で一番印象に残ったのは Justsystem の xfy だった(エクスファイと呼ぶそうである)。 これは一言で言ってしまうと、複数ボキャブラリを組み合わせた XML 文書の統合編集プラットフォームである。 日本語の記事では ITmedia が詳しい

xfy では、たとえば XHTML 文書の中に SVG と MathML を入れて、それらをシームレスに編集することができる。 特に感動したのは このスクリーンショット において、左側の XML 文書ソースと右側のレンダリング済み XML が完全に同期しているところである。 たとえば左側のテキストを編集すると右側の SVG 画像が動的に完全に同期して再描画されていた。逆も同じである。

xfy の肝は Vocabulary Connection Description (VCD) にあるようだ。 これはボキャブラリ をどのように表示するか、そしてどのように編集するかを定義する XSLT ライクな言語である。表示(描画)の部分に関しては、セッションでのデモやチュートリアルを見た限りほとんど XSLT であった。編集に関しては、ちょっとまだよくわかっていない。単なるテキストの編集であれば簡単そうだが、複雑なボキャブラリ、特に構造を持っている場合にどのように定義するのだろうか。

SVG や MathML のように特殊なレンダリングが必要な場合はプラグインが必要になるのは理解できるが、テキストベースの複雑な構造を持った XML 文書はどうなるのだろうか。

また、実用のためには GUI 部品がどれだけそろっているかも重要なのではないかと思う。競合製品にはならないかもしれないが、マイクロソフトの InfoPath は Office に統合されていて非常にリッチなエディットコントロールを装備している。XSD を読み込んで、たとえば xs:date 型の要素はカレンダーで編集することもできる。xfy にもこのような編集環境が装備されていれば、十分実用的な XML 編集環境になりそうだ。

ところで、XML 2004 の xfy の発表会場で、檜山さんに久しぶりにお会いした。本当に偶然、僕の後ろの席に座っておられて、最後に振り返らなければ気づかなかったかもしれない。僕のことも覚えていただいており、大変うれしかった。この日記(はてなの方ですが)もご存知でちょっと冷や汗が出てきたり。

追記: 村田さんの blog にニュース記事などへのリンクが集められていた。

ラベル:

2004-11-16

XML 2004

XML 2004 に参加するためにワシントンDCに来ている。 DCの交通情報などをいくつか。

  • 月曜朝のNH02は混雑率が9割くらい
  • 機体は B777-200ER。エコノミーだと映画は垂れ流しのやつでチャンネルも少ない。下妻物語をみたかったのに、残念!
  • IADのコンコースからメインターミナルに渡るモービルラウンジは入り口近辺に立つと早い
  • 列の最後尾になってしまったので入国審査は1.5時間くらいかかった
  • 質問は入国目的と滞在期間(超マニュアルどおり)
  • 税関は素通し(申告無しで荷物が少ないから?)
  • 指紋と顔写真は左人差し指→右人差し指→顔の順番
  • IADからは Washington Flyer の Coarch でオレンジライン West Falls Church 駅まで20分
  • このバス、時刻表では毎時15,45出発だけど、実際には20分くらいに出発した。乗る時間は20分くらい
  • West Falls Church から Metro Center まで20分強。Metro Center から Woodley Park Zoo までは 10分弱。
  • メトロのフェアカードはおつりが全部小銭で出る。しかも最高$4.75までしか出ない… $20 入れて $15 分買おうとしてやられた
  • 地下鉄は本当に安全。でも駅は間接照明ですごく暗い
  • Marriott Wardman Park は駅の出口を出てすぐだけど、馬鹿でかいのでロビーまで2分くらいかかる。しかも上り坂
  • National Air and Space Museum は空港の手荷物検査みたいなものだけ。IDチェックはなし。フードコートのマックは Big Mac のセットで $6.75 くらいする。
  • ペンタゴンシティーの The Fashion Centre のマックだと $4.95 だった。セールスタックスの違い?
  • ホテルの売店、750ml くらいの水が $2.99

今は時差ぼけで午前二時に起きてしまってこの日記を書いている。

2004-11-09

心機一転

blogger に移ったので、日記のスタイルを少々変えようと思う。これまでは海外 blog の人々には「~氏」と敬称を付けてきたが、これからはあちら流にファーストネームで呼ぶことにする。

2004-11-08

はてなからの引越し

はてなの日記からこちらに引っ越すことにした。ちなみに、はてなの方を削除するつもりはない。