Visual Studio がプログラマブル Web を可能に: XML Web サービス
最終更新日: 2001/09/04
情報への迅速なアクセスを提供することによって、Web は社内および企業間のよりよいコミュニケーションに役立っています。しかし、多くの企業にとって、データドリブンなページのブラウズだけでは、ビジネス ニーズに十分でないことがわかってきました。このような企業は、インターネットを介した社内ビジネス システムへのリモート アクセスを望んでいます。そうすることによって、多数の重要なアプリケーションの統合とビジネス ツー ビジネス シナリオをサポートしたいと考えています。
標準の Web プロトコルによって公開される中間層ビジネス機能は、"XML Web サービス" と呼ばれます。XML Web サービスは:
- HTTP をトランスポートとして利用して、リモートからのメソッド要求が企業のファイアウォールを通過することを可能にします。
- セキュリティのために、標準的な認証方式だけでなく、Secure Sockets Layer (SSL)プロトコルの使用がサポートされます。
- 特定のコンポーネント テクノロジやオブジェクト呼び出し規則に拘束されません。結果として、どんな言語で書かれ、どんなコンポーネント モデルを使用し、どんなオペレーティング システム上で実行されるプログラムでも、XML Web サービスにアクセスすることができます。
明らかに、XML Web サービスは企業にとって計り知れないほどの価値を提供します。企業は社内のアプリケーションを容易に統合できるだけでなく、他の企業によって公開されたサービスにアクセスすることもできます。インターネット上に公開された XML Web サービスを組み合わせることによって、多種多様な付加価値アプリケーションを作成することができます。たとえば、バンキング、電子支払業務、株取引、および保険サービスを単一のシームレスな財務管理ポータルに統合することができます。あるいは、在庫管理、サービス業務メカニズム、および注文書管理を包括的なサプライ チェーン管理システムに統合することができます。
XML Web サービスによって解放されるパワーは、インターネット利用の進化を表します。かつてはブラウズが中心でしたが、今や開発者は Web をプログラムして新しいビジネス機会を作り出すことができるのです。サービスの統合が起きれば、Web はあらゆるコンピューティング デバイスを 1 つにまとめる不可欠な枠組となるでしょう。
XML Web サービスのパワーを解き放つ
Web のプログラマビリティを解き放つ鍵は、XML (Extensible Markup Language) の使用にあります。W3C XML Web サイト (英語サイトです) で述べられているように、「XML は情報の発見を容易にし、情報の作成者と消費者の互いの発見を容易にするメタデータ (情報に関するデータ) を提供します」。統合化されたプログラマブルな XML Web サービスという新しい世界では、XML がコミュニケーション (生のデータだけでなく、理解でき、働きかけることができる情報) のための共通言語となります。
XML Web サービスを作成するには、開発者はサービスの機能をWSDL (Web Services Description Language) を使用して記述しなければなりません。WSDL ドキュメントは、サービスによって公開されるすべてのメソッドについて、入力パラメータの形式と、結果としてのリターン タイプを含んでいなければなりません。あるいは、他の開発者は XML Web サービスのメソッドをどのように呼び出すのかを、このドキュメントを使用して決定します。XML Web サービスのメソッドが呼び出されたとき、サーバーに対して HTTP リクエストが行われ、結果は XML パケットで返されます。
複雑に聞こえるかもしれませんが、Visual Studio .NET® 製品は XML を 1 つのツール セットに統合することによって、XML Web サービスの開発を単純化します。ビジュアル デザイナーとウィザードが、複雑な XML データ構造の作成タスクを自動化します。結果として、これらのツールを使用すれば、開発者は XML を通じて、クライアント層、中間層、およびデータベース層の間でデータを交換できるだけでなく、Web ページと従来の Windows アプリケーションでの XML データの表示を容易にできます。
Visual Studio が XML Web サービスの作成を容易に
次のバージョンの Visual Studio がどのように開発者を支援するかを示すために、単純な株評価サービスを作成してみましょう。わかりやすくするために、この評価サービスは、入力されたティッカー記号に関係なく、"Buy" と返答します。実用システムでは、サービスがカバーするコードの複雑さに上限はありません。
以下のコードは Visual Basic® を使用していますが、Visual C++® など、他の Visual Studio 言語製品でも、Web Service 作成を単純化するための同じツールを使用することができます。
1. まず、Visual Studio を開いて、"Stocks" という名前の新しい Visual Basic Web Project を作成します。
2. 次に、XML Web サービスをコードビューで開き、次のような関数を記述します。

図 1. プロジェクトにクラスを追加する
それだけです。[ビルド] キーを押すと、Visual Studio は XML Web サービスのコードをコンパイルし、Web サーバーに展開します。関数の属性を追加することにより、 .NET Framework は Web クライアントにメソッドを公開します。XML Web サービスの URL によるメソッドの呼び出しに加え、フレームワークはさらに、さらに 2 つの機能を自動的に公開します。URLを表示すると、サーバーは XML Web サービスのために HTML で記述したページを返します。(図 2 参照。) このページはこの XML Web サービスで利用可能なメソッドについての情報を表示し、ブラウザからのメソッドの呼び出しを可能にします。

図 2. XML Web サービスに関して記述したページを表示
URL の終わりに '?SDL' を付加して XML Web サービスを表示させると、サーバーはこの XML Web サービスについて記述した WSDL ドキュメントを返します(図 3 参照)。このドキュメントは、サービスのパブリック関数、入力パラメーターおよびデータ型、リターン データ型について記述しています。

図 3. WSDL ドキュメントの表示
XML Web サービスを起動する
XML Web サービスが作成されたら、サービスとの間のデータの受け渡しには、XML を使用して HTTP を介して起動することができます。URL を入力することで、メソッド名およびパラメータデータを渡したブラウザから直接、GetRating XML Web サービスの機能をテストすることができます(図 4 参照)。 .NET Framework は、サービスから返すための結果を XML の形式にまとめます。

図 4. ブラウザに返された XML 形式の結果
Visual Studio は XML Web サービスの利用を容易にします
XML Web サービスを使用するために必要なのは、Web 参照を追加することです。[Web 参照の追加] コマンドによって、このためのダイアログ ボックスが立ち上がります (図 5 参照)。XML Web サービスの URL を表示した後、プロジェクトからサービスを参照することができます。XML Web サービスの WSDL は XML Web サービスの URL と使用可能なすべての関数の両方を含んでいるので、Visual Studio ではコードからサービスを呼び出すために必要な手順を自動的に作成することができます。

図 5. [Web 参照の追加] ダイアログ ボックス
一度 Web 参照がサービスに追加されれば、Visual Studio はその関数を使用するために必要な完全なステートメント コンプリーションを提供します。XML Web サービスの呼び出しは、簡単に XML Web サービス クラスの新しいインスタンスを作成し、GetRating メソッドを呼び出します (図 6 参照)。

図 6. XML Web サービスにおけるステートメント コンプリーション
XML Web サービスとプラットフォームの相互運用性
XML Web サービスは URL、HTTP、および XML を使用してアクセス可能なので、どんなプラットフォーム上のどんな言語のプログラムでも XML Web サービスにアクセスすることができます。XML Web サービスそのものも、Visual Studio を使用して書く必要はなく、Windows® オペレーティング システムを使用して作成する必要もありません。たとえば、上記の株評価サービスは、UNIX システムと Apache Web サーバーを使用して作成することもできます。Microsoft テクノロジを使用した場合の大きな利点は、これらのサービスの作成とアセンブリが非常に容易で自動的であるということです。
XML Web サービスに備える
XML Web サービスを使用する準備として、アプリケーションを多層アーキテクチャに基づいて作成することをお勧めします。新しいアプリケーション開発のための推奨アプローチとしては、中間層ビジネス コンポーネントを任意の Visual Studio 6.0 開発言語で作成して、COM コンポーネントとして公開することです。開発者はこれらの中間層コンポーネントを容易に XML Web サービスに変換することができます。
まとめ
Visual Studio .NET ツールによって、Microsoft はプログラマブルな XML Web サービスの作成の複雑さを大幅に軽減します。これらのサービスは、HTTP と XML をはじめとする業界標準のインターネット プロトコルに基づいて、新しいビジネス機会を提供します。
|