矢沢久雄 文化オリエント アドバイザリースタッフ

●はじめに

 .NETは,特定の製品を指すものではありません。インターネットをプラットフォームとしてWebサービスを連携させ,それによってエンドユーザーにソリューションを提供するものです。.NETは既存のHTTPやXMLといった汎用的な技術を基盤として実現します。OSやWebサービスの実態は何であっても構いません。そのため,SOAPとXMLとは何かを知ることは,.NETを理解する近道になるのです。今回は,SOAPとXMLを中心に,マイクロソフトがリリース予定の.NETに対応した新しいサーバー製品や開発ツールなどを解説します。

図1●SOAPは,HTTPの上にXMLを乗せてアプリケーション間通信を行う

●SOAPとは

 SOAP(Simple Object Access Protocol,ソープ)とは,インターネットで接続された様々なコンピュータに配置されたWebサービスを,XMLメッセージの交換によって連携させる手順(プロトコル)を規定する仕様です。インターネット版のRPCのようなものだと考えてください。

 Webサービスのクライアントは,XML形式のSOAPメッセージ(メソッドの呼び出し)を作成し,それをWebサービスのサーバーにSOAPのプロトコルで送信します。サーバーは,SOAPメッセージを解釈してWebサービスを実行し,その結果(メソッドの戻り値)をXML形式で返信します(図1[拡大表示])。

 SOAPは,アプリケーション層のプロトコルであり,プラットフォームや下位層(トランスポート層)のプロトコルに非依存です(ただし現状ではHTTPを使うことになります)。SOAPは,コンピュータの機種,OS,及びWebサービスの開発言語を問いません。SOAPは,異なるOSや記述言語(例えば,Windows+COMとUNIX+Java)で構築されているアプリケーションをサービス化することを目的としています。

SOAPは仕様であり,実装ではありません。Windows以外でもSOAPの実装が可能です。例えば,IBMなどは,CORBA+EJBベースのアプリケーション・サーバーでSOAPを実装する予定です。

●XML

 SOAPでは,アプリケーション同士がデータ交換をするためのデータ表現形式をXML(Extensible Markup Language)で標準化します。XMLはテキスト形式なので,OSやアプリケーションが異なるコンピュータ間でも容易にデータ交換ができます。XMLはメッセージ形式の変更にも柔軟に対応できます。拡張タグを使って,データの論理構造と物理構造を分けられるからです。

 以下は,加算を行うWebサービスを実験的に作成し(この講座の第5回でソース・コードを示します),それに123+456という計算をした結果として返されたXML形式の戻り値です。int型を表す<int>タグに挟まれて579という値が返されていることが分かるでしょう。

●.NET Enterprise Servers

 マイクロソフトは,.NETに対応した各種のサーバー製品を提供します(表1[拡大表示])。.NETを実現するためには,これらのサーバー製品が不可欠というわけではありません。これらのサーバー製品は,Windows上で.NETを実現するために便利な機能を提供するといった意味合いのものです。現状のWindows NT 4.0 ServerやWindows 2000 ServerとIIS(Windows用のWebサーバー)だけでも,.NETの実現は可能です。

表1●.NET Enterprise Serversとして提供されるサーバー製品

●.NET Framework SDKとVisual Studio.NET

 Windows上で動作するWebサービスを作成するための開発ツールとして,マイクロソフトから.NET Framework SDKとVisual Studio.NETが提供されます。.NET Framework SDKは,現状のWin32 Platform SDKの.NET版であり,コマンドライン・コンパイラやデバッガなどの開発ツールとドキュメント類を提供します。Visual Studio.NETは現状のVisual Studio 6.0の.NET版であり,ウインドウ・ベースのビジュアルな開発ツールを提供します。どちらもマイクロソフトのWebページからベータ1が入手できます。

●おわりに

 皆さんがプログラマなら,.NETによってプログラミング・スタイルがどう変わるか,そして具体的にWebサービスをどのように作成すればよいかが最も気になることでしょう。次回からは,その疑問にお答えしたいと思います。