本文へジャンプ

ソフトウェア > Lotus > Lotus Developer Domain > 

Iris Today Archives

iNotes Access for Microsoft Outlook を理解する


Lotus Software
by Jane Hosie-Bounar (with Margaret Rora)
レベル:上級者
対象:Domino 5.0
原文の掲載:2001年6月1日

Iris Today Archivesの原文(US)

インデックス
構成要素
ロータス ノーツ MAPI サービス
MAPI とドミノ サーバー
iNotes Access for Microsoft Outlook のインストール方法
Windows メッセージング・サブシステムとプロファイル
ロータス ノーツ MAPI サービスがサポートするMAPI オブジェクト
まとめ

ロータスがドミノ サーバー・テクノロジーに加えられた最新の改良やアップデートを公開すると、長年培った信頼性とともに強力なデータベースやセキュリティー機能を利用したいと考える管理者が増えるに違いありません。すでに Microsoft Exchange サーバーを構築していらっしゃる管理者の方々なら、ドミノ サーバーがより豊富な機能、さらなる柔軟性、よりよいネットワーク・パフォーマンスを提供するという事実に気づくはずです。

エンド・ユーザーが Microsoft Outlook に慣れていて、仕事のやり方もその機能に基づいて作り上げてきています。そのため、移行すると Outlook の機能を失うかも知れないという心配あるいは Outlook ユーザーをロータス ノーツへ移行しなければならないことから、サーバー管理者はドミノへアップグレードするのを躊躇してきました。

このような課題を念頭に置いて、ロータスは iNotes Access for Microsoft Outlook を開発しました。これは、Outlook 98 あるいは Outlook 2000 ユーザーの生産性に影響を与えることなく、メール・データベースを Exchange サーバーからドミノ サーバーへ移行するシンプルな解決策となっています。エンド・ユーザーはそれまでと同じく Outlook を使える状態のまま、管理者はドミノを使ってサーバーのメインテナンスと性能を拡大、簡単化できます。

ここでは、iNotes Access for Microsoft Outlook の技術的側面に焦点を当てていきます。次のセクション構成になっています。
  • 構成要素
  • ロータス ノーツ MAPI サービス
  • MAPI とドミノ サーバー
  • インストール・プロセス
  • Windows メッセージング・サブシステムとプロファイル
  • ロータス ノーツ MAPI サービスがサポートする MAPI オブジェクト
この記事では、サーバー管理とサーバー・テクノロジーに関して理解されていることを前提とします。


構成要素
iNotes Access for Microsoft Outlook に関して理解しなければならないポイントは3点あります。それは、ドミノ・オフライン・サービス(DOLS)、拡張メール・テンプレート、MAPI(Message Application Programming Interface)サービスです。このセクションでは、はじめの2つについて見ていきます。その後に、iNotes Access for Microsoft Outlook のロータス ノーツ MAPI サービスの部分について、そしてインストール・プロセスの詳細について説明します。

DOLS(ドミノ・オフライン・サービス)
DOLS を使えばドミノ・アプリケーションにオフラインでアクセスできるようになり、その結果、エンド・ユーザーがオフラインで行った作業はオンラインで行った作業と本質的に同等なものとなります。iNotes Access for Microsoft Outlook は DOLS を使っているので、Outlook ユーザーはオフラインで作業し、あとでその作業をドミノ サーバーと同期させることができます。

iNotes Access for Microsoft Outlook をインストールする際に、DOLS を使ってオフラインで作業し、後で同期させるという方法をとります。DOLS を利用できるアプリケーションには、ダウンロードする必要のある多数のファイルがあります。そのファイルは「サービス」とよばれ、DOLS を有効化したデータベースのオフライン購読設定でデフォルトで選択されます。iNotes Access for Microsoft Outlook の場合、基本サービスに加えて、「オフラインにインストールするドミノ・サービス」のリストに MAPI 有効化を含みます。

メモ:DOLS に関する詳しい情報は、Lotus Developer Network の Domino Offline Services(US) のページをご覧ください。DOLS のオンライン・デモは、Notes.net(US) の DOLS Demo(US) をご覧ください。

拡張メール・テンプレート
iNotes Access for Microsoft Outlook とともにメール・データベースを使うには、拡張メール・テンプレート(mail50ex.ntf)の設計要素が必要です。これは、[メール R5.0(拡張)] ともよばれます。このテンプレートは、Outlook ユーザーが Outlook カレンダーや 仕事フォルダーを表示できるように、追加のビューを含んでいます。ユーザーの利用環境によって、テンプレートをインストールする際のシナリオが違ってきます。
  • もっともあり得ると思われるシナリオは、既存の Exchange メール・ファイルを移動する状況で、この場合、どのテンプレートを使うかを指定することができます。
  • 新しいメール・ファイルとともに新しいユーザーを作るならば、登録プロセスの過程でテンプレートを指定できます。
  • 別のテンプレートに基づくノーツ・メール・ファイルが既にある場合は、ノーツ・クライアントかドミノ管理クライアントを使ってエンド・ユーザーの代わりに設計を置き換えるか、エンド・ユーザーがノーツ・クライアント経由でこの手順を実行する必要があります。
メモ: ユーザーが別のテンプレートに基づくノーツ・メール・ファイルをもっているということは、そのユーザーの環境は混合環境であって、すでにノーツ・クライアントにアクセスできる可能性があります。これは、ノーツ・クライアントを必要とする古い MAPI サポートを使用しているユーザーについて発生します。この場合、エンド・ユーザーは、ノーツ・クライアントを使って設計テンプレートを変更し、ノーツ・クライアントをアンインストールして、iNotes Access for Microsoft Outlook をインストールできます。
 
上に戻る
 
ロータス ノーツ MAPI サービス
iNotes Access for Microsoft Outlook を開発するにあたって、ロータスは MAPI(Messaging Application Programming Interface)というミドルウェア・テクノロジーを使いました。今日のメッセージング・アプリケーションは、メッセージング・アプリケーションを使ってファイルを送信する機能をもったアプリケーションと同じく、MAPI を共通インターフェースとして利用しています。ロータス ノーツ/ドミノ版の MAPI は、「ロータス ノーツ MAPI サービス」と呼ばれます。

メモ: MAPI は、SMTP や IMAP のようなバージョン付けされたプロトコルではないということに注意してください。MAPI の変更を管理する標準化機関はありません。MAPI は、既存のアプリケーションに障害を生じさせずに新しいデータ要素を導入できる HTML のようなデータ・フォーマットではありません。バージョンの違う MAPI を有効化したアプリケーション間での互換性や相互運用性は、ケース・バイ・ケースで判断する必要があります。

ノーツ MAPI サービスが初めてロータス ノーツ R4.0 に導入された時、ドミノ サーバー上で Microsoft Outlook を走らせているユーザー向けにサポートしていたのは、個人アドレス帳の利用とメール・メッセージ配信のみでした。これを利用するためには、Outlook のエンド・ユーザーでもノーツ・クライアントをインストールしておくことが必要でしたが、Outlook を使ってメッセージを書いたり読んだりすることの少ないユーザーにとっては十分でした。しかし、Outlook のカレンダー、スケジュール機能を使いたいユーザーがいても、それはできませんでした。

さて、iNotes Access for Microsoft Outlook についてみてみましょう。これは、カレンダー、スケジュール機能および簡単なインストールとアップグレードの機能を備えたノーツ R5.0.5 に含まれています。iNotes Access for Microsoft Outlook は、オフライン・サポートを提供するのと同様に、ドミノ・オフライン・サービス(DOLS)を使って Outlook クライアントが必要とするプログラムを配布、保守します。ノーツ R5.0.5 は、Outlook をメッセージング・システムとしてドミノ サーバーとともに使うのに必要なあらゆるコンポーネントを含んでいます。また、ノーツのユーザーと Microsoft Outlook のユーザーが互いにやりとりをするために必要なコンポーネントも含んでいます。

メモ: ロータス ノーツ R5.0.5 と iNotes Access for Microsoft Outlook のインストールの手順は、iNotes Access for Microsoft Outlook Administration というタイトルのホワイト・ペーパーに説明してあります。これは、Lotus Developer Network の iNotes ページのなかの iNotes Access for Microsoft Outlook というページにあります。このホワイト・ペーパーには、サポートしていない Outlook の機能に関する情報ものっています。ドミノ R5.0.7で代理人機能やパスワード管理が大幅に改良されたことにも注目してください。これについては 5.0.7 リリース・ノート に説明してあります。
 
上に戻る
 
MAPI とドミノ サーバー
MAPI アーキテクチャーに関する次の解説を読めば、アプリケーションが MAPI インターフェース経由でどのようにドミノ サーバーとやりとりしているかを理解しやすくなるはずです。次の図は MAPI アーキテクチャーの主要構成要素を示しています。

MAPI アーキテクチャー
クライアント・アプリケーション
MAPI アーキテクチャーの最上位層には、MAPI インターフェースを利用する MAPI クライアント・アプリケーションがあります。クライアント・アプリケーションはメッセージ処理の種類によってメッセージング認識(messaging-aware)、メッセージング有効化(messaging-enabled)、メッセージング・ベース(messaging-based)に分類されます。

MAPI を使っているほとんどのアプリケーションはメッセージング有効化とメッセージング認識で、そのアプリケーションのデータを内容とするメッセージの配信を要求する機能を備えています。メッセージング有効化とメッセージング認識アプリケーションの例は、ワープロや表計算、スキャナーです。この種類のアプリケーションの [ファイル] メニューには通常、[送信] メニュー項目があり、これをクリックするとアプリケーションはドキュメントを送信する MAPI 要求を開始します。この場合、アプリケーションは、メッセージを作成するための独自のユーザー・インターフェースをもっているか、あるいはメッセージを作成し配信するためにメッセージング・ベースのアプリケーションを利用できるようになっています。メッセージング有効化アプリケーションはメッセージングを追加機能として取り込みます。たとえば、Windows Explorerはドキュメントをメールとして送信できますが、それは Windows Explorerの主要な機能ではありません。

メッセージング・ベース・アプリケーションは、様々な形式の情報を交換する機能を有し、その情報を保存したり組み合わせたりする機能ももっています。電子メール、スケジュール管理、ドキュメント管理を行うのアプリケーションはすべてメッセージング・ベース・アプリケーションです。Microsoft Outlook も明らかに、このカテゴリーに入ります。

MAPI インターフェース
C++ プログラマー、C プログラマー、Visual Basic プログラマーは、メッセージング有効化アプリケーションを書くために MAPI インターフェースを利用できます。C++ あるいは C プログラマーは CMC(Common Messaging Calls)インターフェースも利用できます。Active Messaging は、Visual Basic や C++ で利用できるオブジェクト・ベースのクライアント・インターフェースです。

これらの MAPI インターフェースは、メッセージング・システムに接続したり、メッセージを作成したり、メッセージを配信したりするための基礎的な機能を提供します。単純なメッセージング操作にはこれでも十分ですが、メッセージの構成や流れをコントロールすることを考えると限界があります。

MAPI プログラミング・インターフェースはオブジェクト・ベースのインターフェースで、以前は MAPI 拡張とよばれていました。これは MAPI サービスが提供する機能にアクセスするのためのもっとも直接的な方法で、これを使えばプログラマーは、メッセージ、フォルダー、アドレスなど MAPI サービスが備えているオブジェクトを操作できます。

単純な eメール・メッセージ管理用の MAPI 関数については Microsoft がドキュメントを作成していますが、どの MAPI アプリケーション・デベロッパーも MAPI サービス・プロバイダーも独自のオブジェクト・プロパティーを定義していて、さらに複雑なメッセージング・ベース・アプリケーションを作ることができます。この機能を利用して、ロータスは iNotes Access for Microsoft Outlook を開発しました。

MAPI サービス・プロバイダー:iNotes Access for Microsoft Outlook
MAPI サービス・プロバイダーとして、iNotes Access for Microsoft Outlook は、Outlook ユーザーのメール・ファイルおよびアドレス帳の情報を管理、保存します。メッセージ・ストア・プロバイダー(図参照)はユーザーのメール・データベースからメッセージを取り出したり保存したりします。(iノーツがいかにしてカレンダー、スケジュール機能をメール機能と同じように取り込んだかを理解するためには、カレンダー・エントリーーを新たな種類のメッセージと見なすのがよいでしょう。)アドレス帳プロバイダーは、受信者の情報を保存したり、個人アドレス帳や公開アドレス帳から取り出したりします。トランスポート・プロバイダーは、メッセージ配信を容易にします。

ロータス ノーツ・アドレス帳プロバイダーとロータス ノーツ・トランスポート・プロバイダーは MAPI プロパティーをノーツ・アイテムに変換します。メッセージのプロパティーを保存する仕組みは、ノーツでアイテムを保存する仕組みと本質的に同じものです。そのため、iNotes Access for Microsoft Outlook のプログラムの大部分はプロパティー管理を実装するためにあります。ユーザーがOutlook を使ってメッセージを作成するときには、MAPI はロータス ノーツのメッセージ・ストア・プロバイダーを呼び出して、新しいメッセージのプロパティーを設定します。このとき、MAPI プロパティーをノーツ・アイテムに変換します。一方、ユーザーが既存のメッセージを開いたときには逆のことが起きます。そのために、ノーツ・アイテムを MAPI プロパティーに対応づけなくてはなりません。

MAPI インターフェースを見ると、メール・オブジェクトとアドレス帳オブジェクトがオブジェクト固有のプロパティーをカプセル化していることが分かります。プロパティーはタグと値の組み合わせで表現されます。たとえば、アドレス帳の番地エントリーを表現するために、次のプロパティーが対応づけられます。
  • MAPI プロパティー:PR_HOME_ADDRESS_STREET
  • ノーツ・アイテム:"StreetAddress"
  • 値:444 High Street
両方のシステムで利用していて簡単対応づけられるプロパティーもありますが、一方のシステムでしか利用しないプロパティーもあります。さらに、両方のシステムで利用していても、全く異なった形で保存されるプロパティーもあります。目標は、Outlook クライアントとノーツ・クライアントのユーザーどちらでも完全にアクセスできるようにすることですので、次に示すことも実現する必要があります。
  • 等価なプロパティーをすべて対応づける。
  • Outlook では提供されないがノーツで必要となるプロパティーを生成する。
  • ノーツでは必要ないが、Outlook では必要となるプロパティーを生成する。
ノーツ・クライアントで使うフォーマットですべてのデータを保存することにより、保存してあるメッセージはそのままで Outlook からノーツへ容易にアップグレードできるようにしました。ほとんどのアイテムがノーツ・クライアントにとって理解できるフォーマットで保存してありますが、一方で Outlook に固有のアイテムも保存しなくてはなりません。Outlook ユーザーが作ったメールのドキュメント・プロパティーには、"$Mapi..." のあとに長い数字が続く名前をもつアイテムがあります。この番号はプロパティー・タグと一意な ID との組み合わせになっています。

MAPI スプーラー
MAPI スプーラーはシステム内で独立したプロセスとして、配信するメッセージを保持しておいたり、新しいメッセージを受信したときにクライアント・アプリケーションに通知したり、レポートを生成したりする役割を果たします。スプーラーはトランスポート・プロバイダーと密接に関係しています。たとえば、新しいメッセージを受信したときには、トランスポート・プロバイダーがスプーラーにそのことを通知します。これがクライアント・アプリケーションまで伝わると、メッセージが更新されユーザーが新しいメッセージを読める状態になります。
 
上に戻る
 
iNotes Access for Microsoft Outlook のインストール方法
iNotes Access for Microsoft Outlook がどのように機能しているかをさらに詳しく理解するためには、インストール・プロセスにおいて何が起きているかを正確に知ることが有効です。iNotes Access for Microsoft Outlook のインストールは次のような手順を踏みます。
  1. ブラウザーから、サーバーにあるメール・ファイルの URL を入力します。
  2. 認証されたら、Web ページの指示に沿ってインストールを始めます。

    インストール・プログラムは、シンク・マネジャー(オンライン・データベースとオフライン・データベースを同期させるプログラム)を含む基本的な DOLS サービスをクライアントにダウンロードします。URL に /inotes ページが指定されるので、[MAPI 有効化] サービスもダウンロードされます。ダウンロードが完了したら、ロータス iノーツ・シンク・マネジャーはメール・ファイルをサーバーからクライアントへコピーします。
  3. nmInstall.exe を実行し、MAPI サービスを設定し、必要なプロファイルを作成します。

    iNotes Access for Microsoft Outlook インストールで /inotes ページを使うので、エージェントはメール・ファイルにオフライン設定プロファイルがあるか否かを検出します。初めてインストールする場合は、プロファイルは存在しないので、エージェントは選択されたサービスをもつプロファイルを新たに作成します。この場合、購読の更新(subscription refresh)があるときは常に、正しいプロファイルが存在していることになります。しかし、ユーザーがノーツ・クライアントで設定ファイルを編集した場合は、インストール・プログラムは明示的に選択されたサービスを、それが正しいサービスか否かにかかわらず、使います。
 
上に戻る
 
Windows メッセージング・サブシステムとプロファイル
Outlook、Word、Internet Explorer のような MAPI プログラムは、プロファイルを使って、メッセージや 関連するサービスにアクセスする方法を定義しています。複数のプロファイルを使うと、環境に固有の設定やサービスを定義できます。プロファイルには各サービスを記述する情報が保存してあり、サービス名、プログラム・インターフェースを容易にする DLL ファイルの場所、その他のプロバイダー・サービスに固有な設定情報を含んでいます。

iNotes Access for Microsoft Outlook のユーザーがロータス ノーツ MAPI サービスを利用するためには、プロファイルが必要です。iNotesは、インストール中に2つのプロファイル、「Local mail」プロファイルと 「Mail on サーバー名」プロファイルを自動的に作成します。Local mail プロファイルは、メール・ファイルのローカルにあるレプリカとオフライン・アドレス帳を使います。このプロファイルは、ユーザーがその時ネットワークに接続しているかいないかによらず使えます。ネットワークに接続している時は、ロータス iノーツ ・シンク・マネジャーは、サーバー上のメール・ファイルを複製してローカルのメール・ファイルを作成します。Mail on サーバー名 プロファイルは、サーバー上にあるメール・ファイルのコピーを使い、オフライン・アドレス帳にもサーバーのアドレス帳にもアクセスできます。このプロファイルは、ユーザーがドミノ サーバーに接続している時にのみ利用できます。

Web ベースの(DOLS) iNotesインストールがこれらのプロファイルを作る時に、環境に関する重要な情報を表す5個の引数を使って nmInstall.exe を実行します。

ほとんどの管理者は nmInstall.exe を直接使うことはないはずですが、このプログラムが実行中に何を行っているかに興味があることでしょう。管理者としてプロファイルの問題に出くわしたら、それを解決するために次の情報が参考になります。
  • インストールで発生する問題のほとんどは、クライアント・マシン上での mapisvc.inf の場所に関係しているか、一つのマシンにインストールされている複数の MAPI 有効化アプリケーション間の衝突による症状のどちらかです。この話題に関して 5.0.5 リリース・ノートに説明があり、R5 システム管理ヘルプ内にも記述があります。
  • その他の問題は、Outlook がインストール後に適切に設定されず、プロファイルを書き込む場所を見つけられなかったためインストールが失敗することです。
  • iNotes Access for Microsoft Outlook の開発中には、テスト環境で1台のマシンに複数のユーザーをインストールするために、nmInstall を使いました。普通に新しくユーザーをインストールすると、デフォルトのプロファイルを上書きしてしまうので、nmInstall が必要です。この使い方は、nmInstall の使い方として推奨もサポートもされていませんが、展開する前に一つのマシンで複数のユーザーをテストするために利用することができます。
nmInstall を実行するには、次の行に示すコマンドを MS DOS コマンド・プロンプトから入力してください。

nmInstall inipath homeserver password serverpath localpath
  • inipath notes.ini ファイルへのフルパス(ファイル名も含む )。nmInstall がインストール中に自動的に実行される場合は、この引数はユーザーのデータ・ディレクトリーにある mapinotes.ini ファイルへのパスになります。手動で実行する場合は、対応するユーザーの notes.ini ファイルへのパスを指定します。
  • homeserver  メール・データベースを含むドミノ サーバーの名前。サーバーが、たとえば servername/domainname にある場合に、同じドメイン内でコマンドを実行するならば、servername だけでかまいませんが、他のドメインから実行する場合は、servername/domainname と入力してください。
  • password  パスワード
  • serverpath ノーツ・データ・ディレクトリーに関連するサーバー・メール・データベースへのパス(データベース・ファイル名も含む )
  • localpath iNotes ディレクトリーに関連する Local mail データベースへのパス(データベース・ファイル名も含む )
メモ: 引数の区切り文字としてはスペースのみを使い、カンマは使わないでください。パスワード(3番目の引数)については、空文字列("")を使うこともできますが、この場合プログラムが別途パスワードを要求します。

nmInstall は、次に説明する6つのステップを踏んで iNotes Access for Microsoft Outlook を設定します。ステップ1と5は iノーツの環境に関係し、ステップ2、3、4、6は MAPI に関係します。

ステップ1:パスワード確認
このステップでは、MAPI プロファイルのユーザーとして的確か否かを判断します。nmInstall は、引数として入力されたパスワードを使ってリモート・メール・データベースを開くことで、パスワードを確認します。開けなかったらプログラムは停止しますので、サーバーがダウンしている場合、ネットワークにアクセスできない場合、メール・ファイルがないか壊れている場合には nmInstall を実行することはできません。

ステップ2:メッセージ・サービス設定ファイル MAPISVC.INF の設定
メッセージ・サービス設定ファイルの内容は種々の MAPI サービス・プロバイダーに関する情報で、見た目は Windows INI ファイルに似ています。登録されているサービスをすべて列挙している [Services] セクションがあります。サービスのそれぞれについて、サービスを初期化するために MAPI が必要とするプロパティーを列挙しているセクションがあります。MAPISVC.INF ファイルの内容の例を示します。

[NOTES]
PR_SERVICE_DLL_NAME=nwnsp.dll ;基本 dll
PR_SERVICE_SUPPORT_FILES=nwnsp.dll ;実際の名前は nwnsp32.dll になります。
PR_SERVICE_DELETE_FILES=nwnsp.dll
PR_SERVICE_ENTRY_NAME=ServiceEntry ;dll のエントリー・ポイント
WIZARD_ENTRY_NAME=ServiceWizard ;Service Wizard へのエントリー・ポイント
PR_RESOURCE_FLAGS=SERVICE_SINGLE_COPY| SERVICE_PRIMARY_IDENTITY
Providers=NAB,NMS,NXP ;サポートしているプロバイダーのリスト

[NAB] ;Name and Address Book(アドレス帳)サービス・プロバイダー
PR_PROVIDER_DLL_NAME=nwnsp.dll
PR_RESOURCE_TYPE=MAPI_AB_PROVIDER
PR_DISPLAY_NAME=Lotus Notes Address Book
PR_PROVIDER_DISPLAY=Lotus Notes Address Book
PR_RESOURCE_FLAGS=STATUS_PRIMARY_IDENTITY

[NMS] ;メッセージ・ストア・プロバイダー
PR_PROVIDER_DLL_NAME=nwnsp.dll
PR_RESOURCE_TYPE=MAPI_STORE_PROVIDER
PR_RESOURCE_FLAGS=STATUS_PRIMARY_IDENTITY| STATUS_DEFAULT_STORE
PR_PROVIDER_DISPLAY=Lotus Notes Message Store
PR_DISPLAY_NAME=Lotus Notes Message Store
PR_MDB_PROVIDER=395d475fecf1cd1193dc5aab3C478538

[NXP] ;トランスポート・プロバイダー
PR_PROVIDER_DLL_NAME=nwnsp.dll
PR_RESOURCE_TYPE=MAPI_TRANSPORT_PROVIDER
PR_RESOURCE_FLAGS=STATUS_PRIMARY_IDENTITY
PR_PROVIDER_DISPLAY=Lotus Notes Transport
PR_DISPLAY_NAME=Lotus Notes Transport

キーの名前が MAPI プロファイルの名前と同じであることに注目してください。Microsoft が提供している MSDN Platform SDK にこれらのプロファイルに関する記述があります。

ステップ3:自由時間検索サポート(free busy support)へのインターフェースおよびメッセージ・ストア・クラスの登録
MAPI がメッセージ・ストア・オブジェクトを初期化できる状態にするために、メッセージ・ストア・クラスを登録する必要があります。登録されるアイテムは次の2つです。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\SharedDLLS]
nwnsp32.dll

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\9.0\Outlook\ SchedulingInformation\FreeBusySupport]
"NOTES"="{B2892222-7C18-11D3-98DC-00A0C9A342AA}"

Outlook はこの CLSID をレジストリーから取得します。この情報を使って、Outlook はロータス メッセージ・ストア DLL(nmsp32.dll)へのパスを取得します。この DLL は自由時間検索サポート(free busy support)へのインターフェースを含んでいます。

ステップ4:nwnsp32.dll ファイルを Windows/System ディレクトリーへコピー
この DLL ファイルは、ユーザーがロータス ノーツ MAPI サービスを含むプロファイルを選択したときに最初にロードされる DLL なので、必ず Windows/System ディレクトリーになくてはいけません。MAPI はこの DLL ファイルをロードして、ロータス ノーツ・サービス・プロバイダーへのインターフェースを確立します。詳しくは、次の「基本 DLL」で述べます。

ステップ5:ユーザーの個人用アドレス帳にロケーション文書を作成
iNotes Access for Microsoft Outlook 用のインストール手順では、空の個人アドレス帳を作成し、ユーザー・メール・データベースのレプリカを(現在のデータも含めて)ダウンロードします。nmInstall は、Local mail データベースへアクセスするためのロケーション文書を個人用アドレス帳に作成し、もう一つのロケーション文書を Mail on サーバー名 データベースへアクセスするために作成します。ロケーション文書の名前はプロファイル名と同じです。

データベースがクラスタ内の別のサーバーへ複製されている場合、nmInstall はデータベースごとにロケーション文書を作成します。

ステップ6:プロファイル作成
ステップ5で作成された各ロケーションについて、nmInstall は MAPI プロファイルを作成します。プロファイルは、MAPI IMsgServiceAdmin インターフェースおよび IProfAdmin インターフェースを使って設定されます。プロファイルは、MAPI インターフェース層とプロバイダー・インターフェースが利用する Windows レジストリー・エントリーの集まりです。HKEY_CURRENT_USER/Software/Microsoft/WindowsNT/Current Version/Windows Messaging Subsystem/Profiles/ の下にこれらのレジストリー・エントリーがあります。
nmInstall が作成したプロファイルに対応してキーがあります。それぞれのキーは一意な ID 番号で、これは対応するプロファイルのプロパティー・セットを記述しています。Notes UID {704808520df8ce11a2e102608cda47ee} を含むキーを開くと、見慣れた値が並んでいることに気づくことでしょう。NOTES.INI ファイルへのパスやメール・データベースへのパスやサービス名などです。実際、このキーはロータス ノーツ MAPI メッセージ・ストア・サービスの設定を示しています。これらの値のほとんどは、nmInstall.exe を実行したときの引数の一部あるい引数そのものです。

メモ: これがトラブル・シューティングのための情報であることに注意してください。
通常は、レジストリーを変更するべきではありません。しかし、何らかの異常が生じたときには、レジストリーの内容から原因の手がかりを得られる可能性があります。エンド・ユーザーは、コントロール・パネル・ツール(プロパティー・パネルの [プロファイルの表示] をクリックすると表示されます。)あるいは、サービス・ツール([Outlook ツール] メニューから [サービス] をクリックすると表示されます。)を使ってプロファイルを管理するようにしてください。

私たちは、ほとんどのユーザーが iNotes Access for Microsoft Outlook で2つのプロファイルしか使わないと予想しています。一つはローカル・メール・ファイルにアクセスするためのプロファイル、もう一つはサーバー・ベースのメール・ファイルにアクセスするためのプロファイルです。ただし、各クラスタ・レプリカへアクセスするためのプロファイルや、他の個人やグループのメール・ファイルへアクセスするためのプロファイルなどが追加で必要になることもあります。また、プロファイル設定の変更やプロファイルの追加をしたいというユーザーの割合は少ないとも予想しています。
 
上に戻る
 
ロータス ノーツ MAPI サービスがサポートするMAPI オブジェクト
iNotes Access for Microsoft Outlook が提供するサービスは、それぞれがサポートする種類の MAPI オブジェクトに対応するダイナミック・リンク・ライブラリー(DLL)に含まれています。ライブラリーのリストとライブラリーが提供するサービスについて次に説明します。
  • nwnsp32.dll は基本 DLL で、MAPI はこれをロータス ノーツ・サービス・プロバイダーのインターフェースを取得するためにロードします。
  • nabp32.dll はアドレス帳オブジェクトのインターフェースを含んでいます。
  • nmsp32.dll はストア・オブジェクトへのインターフェースを含み、メッセージを読み書きする作業のほとんどを担います。
  • nxpp32.dll はトランスポート・プロバイダーへのインターフェースを含んでいます。
nmStrings.dll は MAPI サービスを提供する DLL ではありませんが、ローカライズのために翻訳対象となりうる文字列をすべて含んでいます。つまり、ロケールごとに nmStrings.dll は異なります。


基本 DLL
nwnsp32.dll はすべてのプロバイダーのインストールをラップしています。mapisvc.inf ファイルを見ると、nwnsp.dll という DLL のみが登録されています。Outlook ユーザーが、あるプロファイルを選んでログオンする時の過程を追っていくと、この DLL の働きが理解し易くなります。

MAPI はアドレス帳プロバイダーが管理するセッション・オブジェクトをユーザーのために作成する必要があります。つまり、MAPI はアドレス帳プロバイダーへのアクセスを確立したあとで初めて、セッションを要求できるということです。動作は次のようになります。
  • MAPI はライブラリー nwnsp32.dll をロードし、関数 ABProviderInit を呼び出します。この関数は、サクセス・コード(success code)及びアドレス帳プロバイダーのインターフェースへのポインター、バージョン番号を返します。
  • ABProviderInit はモジュール nabp32.dll をロードしてから、プライベート関数 WrapABProviderInit を呼び出します。このプライベート関数は、インターフェースのインスタンスを作成し、インストール作業を実行します 。
  • MAPI は、セッションを作成してユーザーがドミノにログオンするために必要なインターフェースを、プロバイダー・インターフェースを利用して問い合わせます。
各プロバイダーに対応して初期化関数があり、これを呼び出すことで MAPI はそれぞれのプロバイダーへのインターフェースを取得します。

nwnsp32.dll は、アドミニストレーション・サービスのインターフェースへのエントリー・ポイントを提供します。このサービスを使えば MAPI プロファイルを設定できます。

メッセージ・ストア・プロバイダー
メッセージを作成、送信、受信する際に必要なメッセージ・ストア・プロバイダーは、モジュール nmsp32.dll に含まれています。

ロータス メール MAPI メッセージ・ストア・プロバイダーは、堅く結び付けられたメッセージ・ストアです。つまり、このプロバイダーは、メッセージの送受信など MAPI スプーラーの機能の重要な部分を担っています。詳しくは下の「トランスポート・プロバイダー」のセクションを見てください。

メッセージ・ストア・プロバイダーの実装では、メッセージを保存するためにドミノを利用しています。そのため、メッセージはすべてユーザーのメール・データベースにノート(note)として(ノーツのフォーマットで)保存されます。それぞれのノートは、メッセージの MAPI プロパティーに対応するアイテムを含んでいます。

メール・データベースに保存されるオブジェクトはフォルダー、メッセージ、添付ファイルです。メールを保存するためのメカニズムと、カレンダー・エントリーを保存するためのメカニズムは、基本的に同じものです。両者とも別のクラスのメッセージであるのに過ぎないからです。実際、iノーツがクラスとフォーム名とを対応づけているので、Outlook が表示するために選ぶフォームやアイコンは、クラス・プロパティーに基づいています。ロータス メール・メッセージ・ストア・プロバイダーがサポートしている MAPI メッセージ・クラスは、次の通りです。

Appointments
IPM.Appointment Meeting
IPM.Schedule.Meeting.Request Meeting request
IPM.Schedule.Meeting.Resp.Pos Invitation acceptance
IPM.Schedule.Meeting.Resp.Tent Tentative invitation acceptance
IPM.Schedule.Meeting.Resp.Neg Invitation refusal
IPM.Schedule.Meeting.Canceled Canceled meeting
Journal
IPF.Journal

Contacts
IPM.Contact

Tasks
IPM.Task
IPM.Activity

Notes
IPM.StickyNote


重要な点は、iNotes Access for Microsoft Outlook が Journal 、Contacts 、Sticky Notes クラス向けにノーツのフォームを用意していないことです。そのため、デフォルトでは、ノーツ・クライアントへ移行したユーザーはこれらのフォームを使うことはできません。しかし、クラスは、Outlook をメール・クライアントとして使ったときと同様に機能します。

トランスポート・プロバイダー
モジュール nxpp32.dll はトランスポート・プロバイダーを含んでいます。このプロバイダーは MAPI スプーラーと共に機能しますが、MAPI スプーラーはメッセージの送受信を司る別のプロセスです。この図で、スプーラーはプロバイダーの一つ上の MAPI インターフェースのところに書いてあります。

Outlook クライアントがトランスポート・プロバイダーのサービスを利用する場合は、常に MAPI スプーラーを通してサービスにアクセスします。MAPI スプーラーは、別のスレッドで実行されている別のプロセスなので、非同期で実行されます。

Outlook クライアントがアドレス帳プロバイダー、またはメッセージ・ストア・プロバイダーにアクセスする場合は、図に示した別のインターフェースを利用します。
トランスポート・プロバイダーは、サービスを提供するためにメッセージ・ストア・プロバイダーとやりとりして、メッセージへのアクセスを取得します。iNotes Access for Microsoft Outlook のトランスポート・プロバイダーの用途には、MAPI スプーラーとの通信および Outbox の利用の2通りがあります。

MAPI スプーラーとの通信
トランスポート・プロバイダーは、会議や タスク(to-do)等のアラームを Outlook クライアントに通知し、また新しいメッセージが届いた時にも Outlook クライアントに通知します。実際には MAPI スプーラーからのリクエストを受けると、トランスポート・プロバイダーがアラーム、あるいは新着メッセージがあるかどうかを判断し、その情報を MAPI スプーラーへ送り返します。すると MAPI スプーラーは、Outlook クライアントに通知します。

Outbox を使う
トランスポート・プロバイダーの第二の用途はメッセージ配信です。Outlook クライアントがローカル・メール・ファイルを使うとき(すなわち Local mail プロファイルを使うとき)は、メッセージ・ストア・プロバイダーがメッセージを Outbox に置き、MAPI スプーラーがそれを配信します。MAPI スプーラーはトランスポート・プロバイダーを使ってこれを実現しますが、当然のことながらクライアントがネットワークに接続しない限りメッセージの配信はできません。

メモ: Outlook クライアントがサーバー上のメール・ファイルを使っている場合(すなわち Mail on サーバー名プロファイルを使っている場合)は、メッセージ・ストア・プロバイダーはメッセージを直接サーバーへ配信します。メッセージがクライアントの Outbox へ行くことはなく、MAPIスプーラーとトランスポート・プロバイダーも関与しません。

メッセージが Outbox にある時に、メッセージ配信を起こす要因は2つあります。

第一の要因は、クライアントが Local mail プロファイルを使い、ネットワークに接続した状態で、[送受信] ボタンをクリックする場合、あるいは Outbox にメールがあるままで Outlook を終了する場合です。この場合、要求は MAPI スプーラーへ送られ、MAPI スプーラーはトランスポート・プロバイダーにアクセスし、トランスポート・プロバイダーは iノーツ・シンク・マネジャーをスタートさせます。シンク・マネジャーは、サーバーのデータを使ってメール・ファイルを複製し、最終的にメッセージ配信が行われます。(これに加えて、シンク・マネジャーはローカル・メール・ファイル内の変更のすべてを複製します。メール・ファイル内の変更を複製せずに、Outbox 内のメールの配信だけをすることはできません。)

第二の要因は、クライアントが Local mail プロファイルを使い、ネットワークに接続していない状態で、Outbox にメールがあるままで Outlook を終了する場合です。ネットワークに接続していないので、メッセージ配信できません。ユーザーはあとでネットワークに接続して、次の2つの内のどちらかを行うことができます。
  • Outlook を起動して、先に述べたように、[送受信] ボタンをクリックする。
  • iノーツ・シンク・マネジャーを使って、メッセージを配信させる。ユーザーが iノーツ・シンク・マネジャーをスタートさせた場合は、MAPI スプーラーとトランスポート・プロバイダーがメッセージ配信を行うことはありません。
アドレス帳
モジュール nabp32.dll は、ロータス ノーツ・アドレス帳プロバイダーを含んでいます。このサービス・プロバイダーは、ログオン/ログオフ機能および、アドレス帳エントリーの作成、編集、削除を担っています。

それぞれのアドレス帳エントリーは、対応する MAPI プロパティーを含んでいます。iNotes Access for Microsoft Outlook は、メール受信者のアドレスを設定するのに必要なすべてのプロパティーをサポートし、同時に Outlook アドレス帳のユーザー・インターフェースに表示されるプロパティーもサポートしています。

Outlook の 連絡先(Contact)がアドレス帳のエントリーでないことは重要なことです。Outlook の連絡先(Contact)フォルダーは、IPM.Contact という種類のメッセージを保存するために使われます。この種類のメッセージは、Outlook の Contact Management アプリケーションで使われます。Outlook がアドレス帳のリスト内に連絡先フォルダーを含めるというオプションを提供していることが、唯一のアドレス帳との関連で、これはユーザー・インターフェース・レベルでの関連です。Outlook ユーザーは、連絡先フォルダーを複数作るかもしれません。連絡先エントリーはメッセージなので、ユーザー・メール・データベースに保存され、アドレス帳プロバイダーでなくメッセージ・ストア・プロバイダーがこれを処理します。
 
上に戻る
 
まとめ
iNotes Access for Microsoft Outlook の実装は MAPI アーキテクチャーに基づいています。MAPI サービス・プロバイダーにはアドレス帳プロバイダー、メッセージ・ストア・プロバイダー、トランスポート・プロバイダーの3種類があり、ドミノ・データベースに種々のメッセージを保存するためのすべての関数を提供します。結果として、iNotes Access for Microsoft Outlook は、特別なトレーニングの必要もなく、混乱を起こすこともなく移行する方法を提供します。Outlook ユーザーはノーツ・ユーザーと共に容易に仕事ができ、そして、Outlook ユーザーはメールやローカル・ユーザー・ディレクトリーをいっさい変更することなく、ノーツにアップグレードできます。



著者について
マーガレット・ローラは、iNotes Access for Microsoft Outlook、ドミノ・メッセージング、及びドミノ・ディレクトリーの開発マネジャーであり、ドミノ・メッセージング、ディレクトリー、及びアイリスのネットワークにおける QE マネジャーでもあります。
 
上に戻る