連載:世界の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サービス」

 



Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間