euvicc’s sphere pt.3 (migrated)

はてなダイアリー時代に書いてた古い古い日記です💦 更新はしません。

ちょっと試してみる(メモ)

そういえば、XML Webサービスって言葉を最近聞かないなぁ〜、とか思ってた。ちなみにWebサービスってなんだよそれ? ってな読者様向けにごく簡単な説明をすると・・・

サーバに置かれたプログラムを所定の手順で呼び出して実行させ、結果だけをXML文書形式でいただく

とでも言えばいいかな。
ここで重要なのは受け取る側はWebブラウザである必要はないってことです。受け取るデータの形式がXMLといういわば共通の言語なので、受け取る側の条件はXMLを解釈できればいいということになります。詳しくはWebサービスについて書かれた書籍でも参考にしてください。ちなみにオレはこんな本をずいぶん昔に入手したんですが、ちっとも読み進んでいません(ぉぃ

Webサービスエッセンシャルズ

Webサービスエッセンシャルズ

O'REILLY本は難しいですorz 単にオレの理解力と根気が足りないだけですがw


それはともかく、このWebサービスとやらを作ってみたくなった。
VS2005を起動し、【Webサイトの作成】→【ASP.NET Webサービス】でまずWebサービスプロジェクトを作る。そんで、テストのために同じソリューションにWindowsアプリのプロジェクトも作って、開発開始。

サービス側を作るのは至極カンタン。すでにHTTP POSTリクエストを受信すると"Hello World"と返すサンプルコードが出来てるし。ためしに実行してみると・・・テストのためのブラウザが起動した。そこではコンパイルの済んだバイナリの名前がリンクになっていて、そのリンクを開くと実行ボタンが。クリックすると・・・・・・おお!
新たにブラウザが起動し、

<?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://tempuri.org/">Hello World</string> 

ちゃんとXML形式でデータが返ってきました。ちなみにxmlnsに記述されたURIはテスト用に設定されたもので、実際は配置するサーバのURIを記述するんだそうな。いや〜、こんな簡単にサービスを作れるとは...( ゚д゚)ポカーン


よし、じゃあ今度はサービスを要求して結果を受け取るテストクライアントを作ってみよう。てことで、Windowsアプリのプロジェクトにフォームを1枚作って、リクエストを投げるためのButtonコントロールを貼り付けてみる。・・・・・・さて、ここからどうするんだ??

Webサービス」をキーワードにMSDNドキュメントを読み漁った限りでわかったのは次の通りだ:

  1. まずクライアント側のプロジェクトで、サービス側のプロジェクトをWeb参照する(プロジェクトで右クリック→Web参照の追加(E)..ってヤツ)。
  2. サーバを指定して、ServiceクラスをNewする(開発中で自分のマシン上にあるサービスなので、サーバ名はまず間違いなくlocalhost)。
  3. Serviceインスタンスのメソッドを呼ぶ。

たったこんだけ。ホントに大丈夫か?

しかし、心配は杞憂でした。とりあえず戻り値をメッセージボックスに出させるようコードを書いて実行・・・・・・バッチリ結果が得られました!! (;´Д`)スッ、スバラスィ ...ハァハァ


とまあそんなわけで、Webサービスを作ってみる実験は少なくとも第1段階成功といったところです。そうするとクライアントを別のもの(例えばOfficeアプリとか)にしたり、もっと複雑なやり取り(バックエンドのDBから1レコード取得とか)をさせてみたくもなるんですが、とりあえずはここでストップということで。
気が向いたら追加実験やって続きを書きます(^^;