技術から離れれば、SOAだって理解できる!

soa 2007-10-04 16:23:44

 SOAがほんとうに意味するところをめぐって、これまでさまざまな混乱が生じ、SOAを「実際に」構成しているものと人々がSOAと考えるものの間にも、大きな隔たりが出来てしまった。サービスとして提供されている既存のアプリケーションがSOAを構成しているのか? それともESB(Enterprise Service Buses)がSOAを形作っているのか? あるいはレジストリとレポジトリを備えるものであれば、それはすなわちSOAなのか? サービスが共有されていない場合は? BPELやBPMN、JMS、SCA、WSDL、SOAP、REST、それにWS仕様プロトコルについてはどう考えればよい?

 一部の人々には「サービス指向」と思われるものが、ほかの人々にとっては見苦しいほど複雑な機械装置と映るかもしれない事実に、正面から向き合ってみよう。サービス指向アーキテクチャの何たるかを正確に理解するには、その枠組みから技術を取り去ってみるのがいちばんよいのではないだろうか。

 先頃Dan North氏が発表したSOAに関する考察は、そうした点で的確にポイントを突いていたと言える。North氏はSOAを、1950年代の大企業社員が休暇を申請する際に採った手順にたとえた。ここで重要になるのは、申請手順を効率的に実施し、メッセージのやり取りを確実に行うことだ。

 休暇申請の事例とは、次のようなものである。ある企業に勤めるボブ某が、休暇申請書を作成して書類を人事部に提出した。しかし、この申請書は、社内の書類配送制度の中でなくなってしまう。1週間経っても人事部から返事が来ないので、ボブは彼らに電話をかけた。人事部は、申請書など受け取っていないと言う。そこでボブは、新たに申請書を作成して、人事部に再送した。これでようやく人事部も申請を受領し、休暇を承認した。

 これをSOAのプロセスに当てはめてみよう。「人事部は、SOAシステムにおけるサービスプロバイダーであり、(中略)ボブはクライアントもしくはサービスの消費者である。休暇申請書は、サービス契約に置き換えられる。提出された申請書は、非同期的なメッセージだ。ボブは、メッセージに対する返事をただ待っているのではなく、それまでの日常的な業務を続行する。(中略)社内の書類配送制度は、メッセージ配信のたとえであり、この事例においては信頼性の低い仕組みだ。幸いにも、ボブはエラー処理プロトコル――すなわちタイムアウト――を受け取ることができた」(North氏)

 ボブが人事部にかけた確認の電話は、「同期的な相互通信」を意味していると、North氏は説明する。「次にボブは、エラー修正手段を講じた。つまり、メッセージを再送したのである。(中略)2回目の非同期メッセージが送信され、今回はボブの受信箱に返信が届いた。これが非同期のレスポンスということになる。最終的に、ボブは最初のリクエストとレスポンスを関連づけることに成功し、メッセージのやり取りが完了した」(North氏)

(Joe McKendrick)

※このエントリはZDNetブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet編集部の見解・意向を示すものではありません。

SpecialPR

  • 「奉行シリーズ」の電話サポート革命!活用事例をご紹介

    「ナビダイヤル」の「トラフィックレポート」を利用したことで着信前のコール数や
    離脱数など、コールセンターのパフォーマンスをリアルタイムに把握するに成功。詳細はこちらから

  • デジタル変革か?ゲームセットか?

    デジタルを駆使する破壊的なプレーヤーの出現、既存のビジネスモデルで競争力を持つプレイヤーはデジタル活用による変革が迫られている。これを読めばデジタル変革の全体像がわかる!