連載

世界のWebサービス ― 究極のWebサービスを求めて ―

第11回 Windows XPでXML Webサービスへアクセス

田口景介
2002/01/09


 ご存じのとおり、Windows XPには.NET環境が収録されていないので、.NET Framework SDKを追加インストールしなければ、.NET対応アプリケーションを開発することはできない。しかし、Webサービス・クライアントだけならば、Windows XP標準の機能だけで十分作ることができる。しかも手軽に。Windows XPには、Microsoft SOAP Toolkit 2.0(以後MSSOAP)のクライアント部分が収録されているからだ。

 MSSOAPといえば、本連載の第5回でも紹介したように、既存のCOMオブジェクトをラッピングして、Webサービスとして公開するなどの用途に利用する、Win32システム向けに用意されたSOAPツールキットである。ただし、Windows XPに付属するMSSOAPはサブセットであり、Webサービスを開発し、公開するために必要なサーバ・サイドのライブラリは付属していない。付属しているのは、クライアント・サイドのライブラリだけだ。つまり、Webサービスを呼び出すクライアント・アプリケーションの開発だけなら、Windows XPに付属するモジュールだけでも可能である。

WSHスクリプトでSOAPクライアントを作る

 Windows XPに付属するSOAPクライアントモジュールは、COMオブジェクトとして提供されているため、COMに対応していれば、どんなプログラミング言語からでも利用できる。COM対応プログラミング言語といえばすぐにC++やVB(Visual Basic)などが思い出されるが、現在Windows上で用いられているほとんどのプログラミング言語はCOMに対応しているので、そこまで本格的な言語処理系を使わなくても、もっと簡単に利用する手段が用意されている。例えばWSH(Windows Scripting Host)を利用すれば、VBScriptやJScriptで記述したスクリプトでも、Webサービス・クライアントの開発が可能だ。

■WSH(Windows Scripting Host)

 WSHスクリプトを解説する前に、WSHについて簡単に解説しておこう。

 WSHとは、いってみればMS-DOSの時代から受け継がれているバッチ・システムの拡張版だが、バッチ・ファイルのように特定のバッチ言語に縛られてはいない。実際にスクリプトの実行を担当するスクリプト・エンジン、スクリプトの起動を担当するスクリプト・ホスト、それにライブラリがそれぞれ分離されているため、スクリプト・エンジンとしてインストールされたスクリプト言語を自由に選択して利用できる仕組みになっている。Windows XPには標準でVBScriptとJScript(JavaScriptにMicrosoft独自の拡張を施したスクリプト言語)がスクリプト言語として組み込まれているが、サードパーティから、例えばActiveState(http://www.activestate.com/)からPerlのスクリプト・エンジンを入手すれば、WSHスクリプトをPerlで記述できるようになる。このときスクリプト・エンジンとともにインストールされるライブラリは特定の言語に依存することになるが、それ以外のスクリプト・ホストやCOMオブジェクトとして提供されているライブラリは、いずれの言語でも同じようにアクセス可能だ。言語ごとに記述力の差はあるが、基本的にはどの言語を使っても同じようにスクリプトを開発できるのがWSHの利点の1つである。

 WSHスクリプトのファイル名に、VBScriptならば「.vbs」、JScriptならば「.js」というようにスクリプト・エンジンごとに指定された拡張子を指定すれば、「.exe」や「.bat」のような実行ファイルと同じように扱われるようになる。つまりスクリプトを“soap.js”に保存したら、コマンドラインから“soap”と指定するだけで実行可能となる。ただしこの方法でスクリプトを起動すると、デフォルトのスクリプト・ホストによってスクリプトが実行されるため、場合によっては思わぬ結果となってしまう。Windows XPにはスクリプト・ホストとして「CScript.exe」と「WScript.exe」が登録されているが、初期状態ではWScript.exeがデフォルトに設定されている。両者の違いは、例えば、文字列を表示するメソッドを呼び出したとき、前者なら標準出力に出力されるのに対して、後者ならメッセージ・ボックス・ウィンドウに出力されるなどにある。つまりデフォルトでは文字列の出力はすべて1行ずつメッセージ・ウィンドウに対して行われるので、このまま大量に文字列を出力するスクリプトを実行すれとひどい目にあうことは間違いない。指定したスクリプト・ホストで実行したければ、「<CScript | WScript> <スクリプトファイル>」とスクリプト・ホストを明示して実行するか、「CScript //H:<CScript|WScript>」を実行してデフォルト・スクリプト・ホストを切り替えておけばよい。

 

 INDEX
  [連載]世界のWebサービス―― 究極のWebサービスを求めて ――
第11回 Windows XPでXML Webサービスへアクセス
    1.WebサービスとSOAPクライアント
    2.WebページからXML 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 記事ランキング

本日 月間