Microsoft は、2000 年を目前にした頃、
Office ソフトの最新版、Office 2000 をリリースした。

Office 2000 では XML サポート機能が強化され、
製品の一部として、同社の XML ライブラリが含まれていた。
この中に、Microsoft の隠れた新兵器が含まれていた。
それが、XMLHttpRequest と呼ばれる機能である。

XMLHttpRequest は、HTTP でサーバに接続し、
XML 等のデータを取得することができる軽量クラスだ。
必要最小限の命令セットで構成されているため、
クラス自体は非常にシンプルであり、利用が簡単である。

俺の日記でも、過去 7/20 あたりから、
mixi の日記を取得するプログラミングで、
XMLHttpRequest を利用している。

■XMLHttpRequest を作成する
http://mixi.jp/view_diary.pl?id=180093909&owner_id=2300658

XMLHttpRequest の特徴としては、
同期だけでなく、非同期の通信形態を選べることだ。
そのため、XMLHttpRequest を利用するプログラムでは、
ダウンロードしている最中も処理を継続することができる。

通常、こういったプログラムを作るためには、
ワーカ(作業用)スレッドを作成する、
または、コールバックルーチンを利用するなど、
C 言語などの低水準のコーディングを駆使する、
高度なプログラマでないと難しいことが多い。

そのため、従来の HTTP 通信プログラミングは、
C 言語による OS 機能を利用するか、
Visual Basic を購入すると付いてきた、
Internet Transfer Control という、
HTTP, FTP 通信を行うコントロールクラスがメインだった。

しかし、これらはデータ取得やエラー処理が面倒である上に、
VBScript 等のスクリプト言語からは利用が難しい、
Internet Transfer Control に関しては、
利用した開発にライセンスコードが必要であったため、
Visual Basic 購入者でないと利用できない問題もあり、
生産性がそれほど高いわけではなかった。

XMLHttpRequest は、ActiveX DLL であるため、
Visual Basic をはじめ、Word や Excel など、
VBA や VBScript が利用できる環境であれば、
XMLHttpRequest を利用することが可能である。

また、XMLHttpRequest は、Microsoft の
XML のライブラリの一部として提供されているため、
単にデータの取得するだけではなく、
取得した XML にそのまま DOM によるアクセスができる。
そのため、開発者は、XML を自己解析する必要もなく、
取得した XML がそのまま利用できるのである。

XML のライブラリは MSXML と呼ばれ、
独立したライブラリとして無償提供されているため、
ライセンスや費用を気にせずに利用することが可能なのだ。

そのため、XMLHttpRequest は、VB だけでなく、
VBA や WSH 系プログラマには非常に嬉しい機能であった。

プログラムで XMLHttpRequest を使うことで、
Web サーバだけでなく、データ系 Web サービスからも、
色々とデータを取得することができるため、
アプリケーションの機能を増すことができるのである。

でも、XMLHttpRequest の狙いはこれだけではなかった。