IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  SOA and Web services  >

Web Servicesの進化と革命: 第1回

Web Servicesをアプリケーションに適用する

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません

原文はこちら

原文はこちら


レベル: 初級

Graham Glass (graham-glass@mindspring.com), CEO/Chief Architect, The Mind Electric

2000年 11月

新しいコラムの初回となるこの記事では、Web Serviceアプリケーションを作成することの利点と、作成するうえでの課題を示します。Web Servicesは分散アプリケーション設計における1つの発展段階ですが、それなりの問題がないわけでもありません。真に実用的なWeb Services分散システムを作成するうえで 開発者たちが直面している課題について、著者Grahamが解説します。また、このコラムの今後の記事ではピアツーピアWebアプリケーション を構築する方法が示される予定ですが、その計画についても今回の記事で紹介されます。

ようこそ。この新しいコラムでは、Web Servicesテクノロジーの進化と革命のさまざまな面を紹介しましょう。Web Servicesはオブジェクト指向テクノロジーの次に来る 抽象化の段階であるという意味で「進化」です。またWeb Servicesはクライアント / サーバー方式から ピアツーピア方式への転換を促すという意味では「革命」です。

この連載では、まずWeb Servicesの概要について、およびWeb Servicesが広く普及するために 飛び越えなければならないハードルについて解説します。次に、実際に簡単なWeb Servicesを作成し、それを使って分散システムを作成してみます。さらに、セキュリティー、トランザクション、拡張容易性といった難しい問題についても取り組む予定です。最後に、これまでの分散アーキテクチャーの概念とは違う ピアツーピア・システムを、Web Servicesを使って作成します。

概要

Web Serviceとはさまざまな機能の集合であり、1つの実体としてパッケージ化され、他のプログラムが使用できるようにネットワークで公表されます。Web Servicesはオープンな分散システムを構築するための いわば建築用ブロックです。企業や個人はWeb Servicesを利用して、全世界で通用するディジタル資産を 手早く低コストで作り上げることができます。初期の1つの例に、Microsoftがホストとなった便利な 認証サービスMicrosoft Passportがあります。その他にも、次のような例があります。

  • 社会保障番号を提供すればその人の信用情報を戻す、信用調査サービス
  • 特定のチッカー記号に関連した株価を戻す、株価情報サービス
  • 品目コードと数量を入力すればコンピューター・システムに よって事務所の備品を購入することができる、購買サービス

Web Serviceは他のWeb Servicesを統合して、一連の高レベル機能を提供することができます。たとえば、レンタカー、航空便、ホテルなどの下位レベルWeb Serviceを調和させて、高レベルの旅行機能を提供するWeb Servicesにすることができます。これからのアプリケーションの基になるのは、それぞれのコスト、品質、可用性に基づいて実行時に動的に選ばれるWeb Servicesです。

次のような理由から、Web Servicesが次世代の分散システムの 中核を占めることはほほ確実です。

  • 相互運用性。Web Serviceは他のどんなWeb Serviceとも対話することができます。ほとんどの主要なベンダー (およびほとんどの小規模ベンダー) にサポートされている新しい SOAP標準のおかげで、CORBA、DCOM、その他のプロトコルを相互に変換する手間のかかる時代は終わりました。また、Web Servicesはどんな言語でも (たぶんCOBOLでも) 書く ことができるため、開発者はWeb Servicesを作成したり利用したりするために わざわざ開発環境を変える必要がありません。
  • 普及性。Web ServicesはHTTPとXMLを使って通信を行います。したがって、これらのテクノロジーをサポートするどんなデバイスも、Web ServicesのホストになったりWeb Servicesにアクセスしたり することができます。もうすぐ、Web Servicesは電話機、自動車、それに清涼飲料の自動販売機にまで搭載されるようになるでしょう。清涼飲料の売上が落ちているとしても、心配ご無用。ワイヤレス・ネットワークにつながれた自動販売機が 地元の販売業者に連絡を入れて、人気のある飲み物をもっと重点的に揃えるよう 注文情報を提供してくれます。
  • 参入バリアの低さ。Web Servicesの背後にある概念はわかりやすく、IBMやMicrosoftなどのベンダーからフリー・ツールキットが 提供されているので、開発者は手軽にWeb Servicesを作成して展開することができます。加えて、こうしたツールキットの中には、従来のCOMコンポーネントやJavaBeansを 簡単にWeb Servicesとして公表できるようにするものもあります。
  • 業界からのサポート。主なベンダーはすべて、SOAPおよびそれに 関連するWeb Servicesテクノロジーをサポートしています。たとえばMicrosoft .NETプラットフォームはWeb Servicesに 基づいているので、Visual Basicで書かれたコンポーネント をWeb Servicesとして簡単に展開することができ、IBM VisualAgeで書かれたWeb Servicesが簡単にそれを利用することもできます (その逆も可能です)。



上に戻る


課題

ここまではすべて順調に見えます。しかしWeb Servicesが成功するためには、たくさんの技術上の課題を克服しなければなりません。ほとんどの課題は、(自らの存続のために) 排他的にならざるを得ない オープンな環境とかかわりがあります。次のような問題があります。

  • 発見。Web Serviceは、他のサービスに発見してもらうために、どのようにして自分を宣伝すればよいのでしょうか。Web Serviceが宣伝された後に、内容変更または移動した場合はどうなるのでしょうか。2つの新しい標準WSDL (Web Services Definition Language) および UDDI (Universal Description, Discovery and Integration) が、この問題に取り組んでいます。
  • 信頼性。さまざまなWeb Serviceホストの中には、信頼できるものやそうでないものが混在するでしょう。信頼性をどのようにして計測し公表すればいいのでしょうか。Web Servicesの1つがもし一時的にオフラインになったら、どうすればいいのでしょうか。別のベンダーがホストとなっている代替サービスを見付け出して 利用するのですか、それとも、オフラインになったサービスが再開するまで待つべきですか。他の代替ベンダーの中から、どのようにして信頼できるベンダーを見付ければいいのでしょうか。
  • セキュリティー。Web Servicesの一部は広く公に利用できるためセキュリティー面で 劣りますが、ほとんどのビジネス関連サービスは、認証によって暗号化された通信を使用するでしょう。SSL層を使ったHTTPによって基本的なセキュリティーが 確保されますが、個々のサービスにもまた、独自のセキュリティーが必要でしょう。Web Serviceはどのようにしてユーザーを認証すればいいのでしょうか。サービスのメソッド・レベルでセキュリティーを提供する必要がありますか。全世界にサービスを提供しているベンダーがユーザーとの間で 使用契約を結ぶとき、これらのサービスは、ユーザーのセキュリティー上の特権をどのようにして認識できるのでしょうか。
  • トランザクション。従来のトランザクション・システムでは、2フェーズ・コミットが使われてきました。これは、トランザクションに関係のあるすべてのリソースを集め、トランザクション全体が完了するまでロックして、それからリリースをやっと解放するというしくみです。この手法は、トランザクション存続期間の短い閉じた環境では有効でしたが、トランザクション存続期間が数時間、あるいは数日にも及ぶオープンな環境ではうまく動作しません。Microsoftは分散ビジネス・プロセス用の 新しいXLANGシステムの中で、「補償トランザクション」という代替方式をサポートしています。このようなトランザクションをWeb Servicesに統合すべきでしょうか。もし統合する場合、この手法と、たとえばXAML (従来型トランザクションをサポートする、提案中のXMLマークアップ言語) とはどんな点で重なり合うのでしょうか。
  • 拡張容易性。Enterprise Java Beansのような既存の コンポーネント・システムをWeb Servicesとして公表できるため、すでに使われているロード・バランシングなどの 拡張容易性メカニズムを引き続き利用できるように見えます。しかし、この方法には予測できない落とし穴がないのでしょうか。新しい「Web Services用」アプリケーション・サーバーが 必要になるのではないでしょうか。
  • 管理の容易性。高度な分散システムを管理するには、どんなメカニズムが必要なのでしょうか。システムの特性は、それを構成する個々のパーツの特性が互いに関連し合ったものですから、数多くのWeb Servicesの個々の管理者は、何らかの方法で相互協力しなければならないのでしょうか。一部のWeb Servicesの管理を、他のWeb Servicesに「アウトソーシング」することは可能でしょうか。
  • 責任能力。あるユーザーが特定のWeb Serviceにアクセスして それを実行することができる期間を、どのように定義すればよいのでしょうか。Web Servicesの利用料金はどのように請求すればいいのでしょうか。標準モデルは、定期予約ベースまたは逐次支払い方式のどちらになるのでしょうか。Web Servicesを売却するとき、所有権の移譲をどのように明示すればいいのでしょうか。Web Servicesの一回の使用で完全に使い切ってしまうのでしょうか、それとも、購入契約に従って何回でもサービスを使用できるのでしょうか。
  • テスト。所在場所と品質が動的に変わる可能性のある多数のWeb Servicesで構成されるシステムの場合、テストおよびデバッグにはまったく新しい次元が加わります。応答時間をどのようにして予測できるのでしょうか。さまざまなベンダーが製造し、さまざまな環境およびオペレーティング・システムが ホストとなっているWeb Servicesを、どのようにしてデバッグすればいいのでしょうか。

こんなことを考えると気が遠くなってしまいますが、こうした問題をすべて解決しているシステムが、実はもうすでに存在するのです。そのシステムとは、人間社会、および生物器官です。この2つの実例にはとぢらも、次のような特徴があります。

  •         フォールト・トラレント
  •         超並列的である
  •         分散されている
  •         よく編成されている
  •         自己改修能力がある
  •         階層化設計されている
  •         単純なコンポーネントをもとに設計されている

こうした既存の実例に倣えば、各コンポーネントが互いに協働しつつ 個々の目的を達成するようなWeb Services社会を作り出すことは 可能なはずです。最高額の言い値を付けた参加者にWeb Services自体が 賃貸しされるようなネットワーク・マーケットプレイスさえ、想像に難くありません。Mojo Nationは、まさにそのようなアプローチを 採用しているオープン・ソース・プロジェクトです。




上に戻る


ピアツーピアとWeb Services

Web Servicesを単純に利用する以外にも利用法はないかと捜せば、ピアツーピア (P2P) の世界に、このテクノロジーを適用できる興味をそそる分野がたくさんあります。たとえば、消費者が簡単なオークションWeb Serviceを ホーム・コンピューターまたはスマートフォンにインストールする、P2PのeBayバージョンを想像してみてください。ユーザーが売りたい物と買いたい物をオークション・サービスに指示すれば、サービスは世界中の他のオークション・サービスと連絡を取り、ふさわしい買い手や売り手に自動的に接続します。トランザクションは消費者のデバイス間で直接的に行われ、サーバーが介入する必要はありません。

もっと面白いのは、基地局の代わりに他の消費者の電話機を 仲介として使用するP2P携帯電話ネットワークです。通話したいとき、通話発信が近くの携帯電話に次々とルーティングされて、やがて目的の相手にたどり着きます。この方式に従えば、それまで電話の届かなかった地域でも、ある程度の人口が集まってさえいれば、10,000個ほどの携帯電話をまさに空中散布できるでしょう。基地局その他の電話ネットワーク・インフラストラクチャーを 作らなくても、今すぐに電話をかけられるのです。

Web Servicesの持つパワーと単純さをもってすれば、分散コンピューティングの世界の技術革新は大いに加速されると私は考えます。この連載の次回以降の記事で、私はこの分野に関して開発者たちを教育し、楽しんでいただき、そして開発者相互の議論を刺激したいと考えています。今後の内容は次のとおりですが、どんな順番にするかは正確に予告できません。

  •         "ハンズオン" (実習付き) チュートリアル
  •         SOAP、UDDI、WSDL、XAMLなどの新しい標準
  •         ピアツーピア方式
  •         動的発見
  •         セキュリティーとトランザクション
  •         Web Servicesのユーザー・インターフェース
  •         Web Servicesの調和
  •         Web Servicesに基づくアプリケーションのテスト

次の記事では、Web Serviceを実際に作成する ステップを1つ1つ解説します。それまで、ハッキングを楽しんでください。



参考文献



著者について

Graham Glass氏はThe Mind Electric の創設者、CEO、主任設計士で、大規模分散コンピューティングの構築を専門としています。インターネットの進化は頭脳の進化を反映し、人々や企業が効率的にネットワークを形成するのを 助けるアーキテクチャーは、人々の頭脳をネットワークで結ぶアーキテクチャーにヒントを与えると 氏は考えています。
The Mind Electricの創設以前は、ダラスに本拠を置く、企業間統合に取り組むObjectSpace の会長、CTO、共同創設者でした。ObjectSpaceでは、Voyager製品ラインの設計者兼主任開発者として
分散コンピューティング、JGL Javaコレクション・ライブラリー、さらにクロス・プラットフォームのC++ ツールキットを手がけました。1996年にErnst and Young Entrepeneur年間賞を 受賞したのをはじめ、VoyagerおよびJGLの産業界の賞をいくつも受賞しています。
Graham Glass氏はまた、最先端テクノロジーのトレーニングを提供するObjectLesson社の創設者でした。UNIXおよびSTLに関するPrentice Hallの2冊の書籍を著作し、新しいテクノロジーに関する熱意にあふれた分かりやすい話をする 講演者としても知られています。
University of Southamptonで 数学およびコンピューター・サイエンスのBSc、University of Texasでコンピューター・サイエンスのMS、およびHaberdashers' Aske's Schoolで 英国 "O" レベルと "A" レベルをそれぞれ取得しました。産業界に身を転じる以前は、UTDで上級講師としてUNIX、C、C++、Smalltalk、およびプログラム言語を教えました。連絡先はgraham-glass@mindspring.com です。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


    日本IBMについて プライバシー お問い合わせ