基礎解説

初めてのMicrosoft .NET
― .NET初心者のためのMicrosoft .NET入門 ―

デジタルアドバンテージ
2003/03/15

Page1 Page2 Page3 Page4

本記事は改訂されました。改訂版の「.NETとは何か? ― 基礎解説:.NET初心者のための.NET入門【2011年版】」をご覧ください。

Webサービスとは何か?

 Webサービスは、XML形式で記述されたデータを、HTTPなどの標準的なインターネット・プロトコルを利用して送受信することで、アプリケーション間通信を可能にする仕様である。データを送受信するためのトランスポート・プロトコルとしては、一般にHTTPが使われることが多い(仕様上はSMTPなど、ほかのプロトコルも使用可能)。通常のWebサーバは、ブラウザに表示してユーザーが見るためのHTMLデータを提供するが、Webサービスは、ソフトウェア向けのサービスを提供する。

通常のWebアクセス(上)とWebサービス(下)
通常のWebアクセスでは、HTTPプロトコルにより、Webページを記述したHTMLデータがWebサーバからブラウザに送られて表示される(上)。これに対しWebサービスでは、HTMLデータではなく、SOAPメッセージと呼ばれるデータがやり取りされる。SOAPメッセージはXML形式で構造化されており、内部にはアプリケーション通信のための情報が格納されている。

 通常のWebアクセスでは、図の上にあるように、HTTP(HyperText Transfer Protocol)をトランスポート・プロトコル(データ伝送プロトコル)として使い、Webページを記述したHTMLデータがWebサーバからブラウザに送られ、データがブラウザによって解釈されて表示される。これに対しWebサービスでは、HTTPプロトコルを使う点は同じだが、HTMLデータではなく、XML形式で記述されたSOAP(Simple Object Access Protocol)メッセージと呼ばれるデータが送受信される。SOAPメッセージの内部には、SOAPエンベロープ(envelope=封筒)と呼ばれる構造化データが含まれており、メッセージの送信先や、送信オプションなどの情報を含むヘッダ、およびメッセージの本体となるデータが格納されている。

 Webサービスの特徴の1つは、HTTPなど、広く普及したインターネット・プロトコルをトランスポート・プロトコルとして使用するため、ファイアウォールが存在しても、問題なく通信できる可能性が高いということだ。Webサービス以前から、アプリケーション間通信プロトコルとしてはCORBADCOM(Distributed COM)などがあった。しかしこれらは独自のプロトコルを採用しており、Webサービスと違ってファイアウォールの設定に変更を加える必要がある。つまりWebサービスは、すでに広く普及したインターネット・インフラをそのまま利用して、アプリケーション間通信を行えるわけだ。

 Webサービスは、一種のRPC(Remote Procedure Call:遠隔関数呼び出し)と考えることもできる。この場合には、パラメータとして何を指定する必要があるか、戻り値は何かといった情報が必要になるが、これらの情報は、WSDL(Web Services Description Language:Webサービス記述言語)と呼ばれるXMLドキュメントとして、通常はWebサービスとセットで提供される。

Webサービスの構成
Webサービスは、広く普及したインターネット・トランスポート・プロトコルの上で、XMLテクノロジやSOAP、WSDLなどといったオープン・プロトコルを利用し、アプリケーション連携を可能にする。

 Webサービスは、IBMとMicrosoftによって提唱され、その後W3C標準となった。現在では、Sun MicrosystemsやOracleを始め、主要なコンピュータ・ベンダの多くがWebサービス対応製品を発表したり、開発したりしている。

 なお、W3Cで標準化された名称は「Webサービス」であるが、Webサーバでの伝統的な情報サービス(Webページとして提供するサービス)との違いを明確にするためか、マイクロソフトは途中からXML Webサービスと呼称を変更し、現在はこの呼称で統一している。

混乱した「.NET」

 このように、Webサービスを使ったアプリケーション連携をベースとして、次世代の新しい情報環境を構築するという戦略がMicrosoft .NETである。そしてマイクロソフトは、.NET対応ソフトウェアを開発し、実行するためのソフトウェア・プラットフォームとして.NET Frameworkを発表した。またこの.NET Framework上で動作する.NET対応ソフトウェアを開発するための開発環境がVisual Studio .NETである(これらについてはすぐ次で詳しく述べる)。

 しかしマイクロソフトは、.NETの発表以来、新しい技術や戦略、製品に関連して、直接間接に「.NET」という言葉を使ってきた。善意に解釈すれば、あらゆる側面に影響する基本戦略なのだという意気込みとも取れるが、Webサービス対応という実体を伴わずに、マーケティング先行で「.NET」という言葉を乱用したために、「.NET」の意味は大変あいまいになってしまった。その最たるものの1つは“.NET Enterprise Servers”製品群である。

 これらは以前、Back Office と呼ばれていたサーバ向けのミドルウェア群だったが、2000年6月にMicrosoft .NETが発表された翌月(7月)には、その時点で開発途中だったWindows 2000 Server対応の新版を、“.NET Enterprise Servers”と名称を改めて発売することが発表された(この件に関する2000年10月15日付けの@ITニュース)。

 しかしこのとき発表された.NET Enterprise Servers製品は、必ずしもWebサービス対応や.NET Framework対応が行われたわけではなかった。Webサービスを実現するためのサーバ・プラットフォームの一部として機能するという意味では、あながち無関係ともいえないが、少なくとも.NET Enterprise Serversの何が“.NET”なのかは多くのユーザーには分からなかった(その後発表された最新版では、Webサービス対応や.NET Framework対応がなされたものもある)。

.NET connectedロゴ
一定の基準を満たしたWebサービス対応機能を持ち、.NET Frameworkプラットフォーム上で構築されたソフトウェアには、.NET connected認定が与えられる。

 2003年4月に発表が予定されているWindowsサーバOSの新版、Windows Server 2003は、当初は“Windows .NET Server”と呼ばれていた。しかしRC2発表後という土壇場になって、名前から“.NET”の看板が下ろされることとなった(ただし、.NETプラットフォーム対応という本質部分は何も変わらない)。マイクロソフトの説明によれば、今後は一部を除いて、製品名には“.NET”は使わないという。その代わりマイクロソフトは、Webサービス対応製品に対し、「.NET connectedロゴ」を表記する。

 これはISVにも開かれたロゴ・プログラムで、一定の基準をクリアすれば、サード・ベンダでも自社製品にロゴを付けて発売することが可能だ。


 INDEX
  [基礎解説] 初めてのMicrosoft .NET
    1.Microsoft .NETとは何か?
  2.Webサービスとは何か?
    3.開発プラットフォームとしての.NET
 


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 記事ランキング

本日 月間