連載:世界のWebサービス
第1回 Web Services for Smart Searching

2.とりあえずプロジェクトに組み込んでみる

田口景介
2001/01/31


 それでは、 Web Services for Smart Searchingを使って、簡単なWebアプリケーションを作ってみることにしよう。そのためには、まずuddi.microsoft.comで見つけたasmxファイル(http://beta.search.microsoft.com/search/mscomsearchservice.asmx)をブラウザで開き、Webサービスの仕様を調べる必要がある。開いてみると、残念ながら「No Additional Reference Information」と表示され、詳細なリファレンス・マニュアルは用意されていないことが分かる。それでも、Webサービスが公開しているWebメソッドは分かるし、Visual Studio.NETに組み込めばもう少し詳細な情報が表示されるので、メソッド名からあたりをつければ、何とかなるだろう(もちろん、これは本来の手順ではないのだが…)。

 それでは、Visual Studio.NETでプロジェクトタイプに[Webアプリケーション]を指定して、C#のプロジェクトを作成してみよう。

サービスの追加その1−新しいプロジェクトの作成

Webアプリケーション・プロジェクトを作成する。プログラミング言語にはC#を選択する。[場所]の部分を見ると分かるように、WebアプリケーションのソースコードはWWWサーバ上に保管される。
  今回のプログラムにはC#を使用するので、ここでは[Visual C#プロジェクト]を選択する。
  C#で作成可能なアプリケーションの種類の一覧。今回は、これらの中から[Webアプリケーション]を選択する。
  プロジェクト名を入力する。
  作成するアプリケーションの保存場所を指定する。Webアプリケーションの場合には、ディレクトリではなく、Webサーバを指定する。

 次に、プロジェクトを構成するファイルの一覧が表示された[ソリューションエクスプローラ]ウィンドウの[Web参照]を右クリックして、表示されるポップアップ・メニューから[Web参照の追加]を実行する。

サービスの追加その2−Web参照の追加

Webサービスを追加するには、画面右上のソリューション エクスプローラでプロジェクト名を右クリックし、表示されるポップアップ・メニューから[Web参照の追加]を実行する。
  新しいプロジェクトとして作成したプロジェクト名を右クリックしてメニューを表示する。
  [Web参照の追加]をクリックする。

 すると次のような簡単なブラウザ・ウィンドウが表示されるので、[アドレス]にさっき調べておいたasmxファイルへのURLを入力して、ページを表示する。そして、[ファイルの参照]ボタンをクリックすれば、プロジェクトにWebサービスが組み込まれる。

サービスの追加その3−Web参照用の簡易ブラウザ

[Web参照の追加]を実行すると、簡易ブラウザが表示されるので、asmxファイルへのURLを指定し、[ファイルの参照]ボタンをクリックする。
  簡易ブラウザ。Microsoft UDDIから辿っていくと「Web services for smart searching」という名前のWebサービスを見つけることができる。
  左の簡易ブラウザで表示されたページにWebサービスへの参照が含まれている場合、使用できる参照としてWebサービスのURLが表示される。
  使用できる参照がある場合にはこのボタンをクリックすることによって、そのWeb参照がプロジェクトに組み込まれる。

 以上の作業を終えてクラス ビューを見ると、次の画面のように5個のC#クラスが自動的に生成されていることが分かる(MSComSearchServiceクラスなど)。

自動生成された5つのクラス

[Web参照の追加]を実行すると、Webサービスへのアクセスに利用するクラスが自動生成される。画面に表示されているBestBetItem以下5つのクラスがそれ。ネームスペースには、Webサービスが登録されたサイトのドメイン名が使われる。
  ネームスペースとしてWebサービスがあるサイト名(この場合はuddi.microsoft.com)が使用されている。
  Webサービスへの参照を追加することによって自動的に作成された5つのクラス。

 これがWebサービスへのアクセスに利用するクラスで、このクラスのオブジェクトを作成し、メソッドを呼び出せば、Microsoftのサーバで動作しているWebサービスが処理を行い、結果を戻す。先ほどVisual Studio.NETで行った[Webサービスの組み込み]とは、Webサービスのインターフェイスを調べて、対応するクラスを生成する作業であり、何がしかのソースコードをダウンロードしたりすることではない。

WebアプリケーションとWebサービスの関係

今回作成したWebアプリケーションはローカルマシンのWWWサーバ(IIS)上に登録されているが、Webサービスの実体はMicrosoftのサーバ上で動作する。

 また、生成されたクラスを利用すれば、Webサービスの呼び出しは単なるメソッドの呼び出しとして記述できるため、XMLやSOAPなど、Webサービスの基盤となる技術の知識はいっさいなくともサービスが利用できる。そういった内部的な処理はすべて.NET Frameworkが吸収してくれるからだ。これはWebサービスを開発するときも同じである。Webサービスを完全に理解するには、XMLやSOAPといった細部を無視することはできない。しかしこのような理由から、まずは.NET Frameworkに目を向けるべきだろう。 

 こうしてWebサービスを呼び出す準備は整ったものの、やはり詳細な情報は不明なままなので、ここからは当てずっぽうでいくしかない。泣き言を言っていても始まらないので、とりあえず生成されたクラスの内容を眺めてみると、どうやらMSComSearchServiceクラスのオブジェクトを作成し、検索文字列をパラメータとしてMSComSearchService.GetBestBetsメソッドを呼び出せば、検索結果が戻されるというサービスのようだ。

関連リンク
asmxファイル


 INDEX
[連載]世界のWebサービス―― 究極のWebサービスを求めて ――
  第1回 Web Services for Smart Searching
    1.Webサービスはここで探せ!
  2.とりあえずプロジェクトに組み込んでみる
    3.Webアプリケーションから呼び出してみよう
 
「世界のWebサービス」

 

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • Kinectが切り開く“夢の近未来” (2012/2/2)
     日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか?
  • 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
     アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する
  • SQL Azure Data Sync入門 (2012/1/30)
     SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説
  • Windows Phoneアプリ市場の現状を分析する (2012/1/27)
     Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH