Exchange 2000徹底解剖
>
開発環境としてのExchange 2000 Server
|
以上で説明したように,Exchange 2000 ServerがインストールされたサーバーにHTTPで通信することにより,データの取得ばかりかプロパティ情報の取得や検索など,さまざまな処理を実行できる。
WebDAVにおける通信プロトコルはHTTPであるから,Windows以外のOSからも容易にアクセスでき,汎用性にも優れる。しかし半面,開発者が自らHTTPを使って通信プログラムを作る場合は,やや難解である。もちろん,Visual BasicでTCP/IPのコントロールなどを使い,サーバーと直接HTTPで通信することも不可能ではない。しかし,(1)送受信するデータがXML形式であること,(2)多くの場合はHTTPの認証をサポートする必要があること,という2点から,開発は煩雑になる傾向がある。
そこで,Windows環境からWebDAVを使って通信したいのであれば,Internet Explorer 5.0以降でサポートされているMicrosoft.XMLHTTPというCOMコンポーネントを使うことを推奨する。Microsoft.XMLHTTPコンポーネントは,HTTPとXMLパーサーの機能をサポートしているため,これを用いると比較的容易にWebDAVを利用するプログラムを開発できる。
たとえば,Webページ上にFig.2-21に示すようなフォームを用意し,検索場所と検索する文字列を指定して[検索]ボタンを押したら,指定された条件で検索結果をユーザーに表示するというようなプログラムを実装する場合,List 10のようにすればよい。List 10の実装では,動作をわかりやすくするため,取得したXML形式のデータをそのままWebブラウザ内のTEXTAREAフィールドにテキストとして表示している。ただし実運用では,XSLT(eXtensible Stylesheet Language Transformations)やDHTMLを用いて整形することになろう。
List 10の21行目にあるOpenメソッドの呼び出しにおいて,第4引数にユーザー名,第5引数にパスワードを指定すると,指定したユーザーアカウントで接続することもできる。ユーザー名とパスワードを省略した場合には,Internet Explorerによって自動的に認証が処理される。このときアクセス権がない場合には,Fig.2-17に似たユーザー名やパスワードを問い合わせるウィンドウが表示される。
Fig.2-21 検索用のフォーム(図版をクリックすると拡大可能)

なお,Microsoft.XMLHTTPコンポーネントは,Exchange 2000 Serverの機能というよりも,Internet Explorer 5.0以降の機能である。詳細は,XML 2.5 SDK(
List 10は,クライアント側のInternet Explorer 5.0以降で動作することになる。しかし,そうではなく,より汎用的なWebブラウザ全般をサポートするため,サーバー側で処理を実行したいこともあるだろう。その場合には,ASP(Active Server Pages)を利用して,List 10と同等な処理をサーバー側で実行すればよい。
ただし,サーバー側で処理する場合には,結果をXML形式でクライアントに返すのではなく,HTML形式に変換して返すことが多い。Microsoft.XMLHTTPコンポーネントを使うと,結果がXMLとして表現されるために,それをHTMLに変換するという手間が生じる。もちろん,XSLTを使ってXMLをHTMLに変換する方法もあるが,開発者の作業量は多くなる。
そのため,サーバー側で検索してHTMLを返すという程度の用途であれば,後述するADOコンポーネントを使って検索したほうがよいかもしれない。なぜなら,ADOコンポーネントによる検索では,ADODB.Recordsetオブジェクトとして検索結果が表現されるため,それをTABLEエレメントで括って表形式に変換するような処理は,ループ処理として比較的容易に実装できるからである。
|
いままで説明してきたように,WebDAVを用いると,HTTPを使ってプロパティを参照,設定,検索することができる。HTTPは汎用的なプロトコルであるから,Windows以外のOSからでも容易にアクセスできるというメリットがある。よって,異機種が混合する環境で開発する際には,WebDAVを用いてサーバー間の連携をとる方法が現実的であろう。
| 18/27 |
