![]() |
iPlanet Calendar Server プログラマリファレンス |
第 4 章 イベント通知サービス (ENS) の概要
イベント通知サービス (Event Notification Service、ENS) は、iPlanet Calendar Server 5.0 に付属する汎用の公開および購読サービスです。ENS は、iPlanet アプリケーションによって使用されるディスパッチャーとして機能します。ENS は、iPlanet アプリケーションが扱う特定のタイプのイベントの収集を集中管理します。特に、分類できるイベントのレポートを受け取り、そのカテゴリのイベントにアプリケーションが扱う処理として登録されている場合は、それらのアプリケーションに通知します。要約すると、ENS は次の目的に使われるインターネットサービスです。
ENS 用語集
ENS 用語集
イベント
イベントとは、リソースの 1 つ以上のプロパティ値が変化することです。URI でイベントを表現します。イベントがいつ発生したかという情報を必要とするアプリケーションが、ENS に登録されます。その登録情報でイベントを順番に識別し、通知と購読を対応付けます。
イベント参照
イベント参照は、ENS によって処理されるイベントを識別します。イベント参照は、RFC 2396 で定義された URI 構文を使います。イベント参照:= scheme ":"authority resource ["?" param "=" value *("&" param "=" value)]
scheme は、http、imap、ftp、wcap などのアクセス手段です。
すべての iPlanet Calendar Server イベントの URI スキーマは、次のようになります。
authority は、リソースへのアクセスを制御する DNS ドメインまたはホスト名です。
- iPlanet Calendar Server 5.0 の場合、ENS スキーマは enp になります。
resource は、authority コンテキスト内のリソースへ到達するためのパスです。複数のパス要素を指定するには、「/」で区切ります。
enp://domain.com/calendar/ics/v50/instance
例
たとえば、iPlanet Calendar Server 5.0 ユーザが特定の一意の識別子ですべてのイベントアラームを購読する場合は、URI は次のようになります。enp://domain.com/calendar/ics/v50/ics-hostname/alarms?type=events
&uid=XXXX
イベント通知サービス
イベント通知サービスは、アプリケーションが次の目的で使用するインターネットサービスです。ENS は、enpd デーモンとして動作します。ほかの iPlanet Calendar Server 5.0 デーモンとともに、さまざまなカレンダーサーバ構成で動作します。ENS および iPlanet Calendar Server 5.0 の統合についての詳細は、この章の 「Calendar Server と ENS との連携動作」と第 1 章「アーキテクチャの概要」の 「水平方向のスケーラビリティ」を参照してください。
通知する
ENS はサブスクライバにイベントを通知するために、イベント参照、オプションのアクセスコントロール規則、およびオプションのアプリケーション固有の (ENS には不透明) データで構成される通知を送信します。「公開する」とも呼びます。
非請求通知。イベントパブリッシャから通知サーバに送信される通知。イベントサブスクライバが存在するかどうか、サブスクライバが通知を受け取ったかどうかをパブリッシャが知らないまたはそれに注意を払わない場合には、この要求は応答を必要としません。しかしながら、パブリッシャとサブスクライバが互いに認識できる場合は、RENL (reliable event notification link) を設定することもあります。その場合には、サブスクライバはパブリッシャからの通知を処理すると、応答をパブリッシャに返します。
サーバ通知。 購読依頼に基づいて、サーバからサブスクライバへ送信される通知。このタイプの通知には、応答を返す必要があります。サーバ通知には、自発通知と同じ属性が含まれます。
購読する
ENS は、イベントの通知要求を受け取ります。イベントサブスクライバが送信する要求が購読依頼です。購読依頼は、セッションの存続期間中、または購読が中止されるまで有効です。購読依頼は、イベント名、クライアント側の要求 ID、およびオプションのアクセスコントロール規則を含んでいます。を参照してください。
購読を中止する
ENS は、購読のキャンセル要求を受け取ります。クライアント側の要求 ID とセッション ID が購読依頼を識別します。
Calendar Server と ENS との連携動作
ENS は、アラームキューおよび 2 つのデーモン csadmind と csnotifyd を介して、Calendar Server と連携動作します。図 4-1 は、2 つの Calendar Server デーモンと ENS デーモンとの連携動作を示しています。
図 4-1    ENS の概要
![]()
アラームキュー
ENS は、アラームディスパッチャーです。このディスパッチャーによって、アラームの配信と生成が分離され、また、電子メールや無線通信などのいくつかの配信方法を使用できます。csadmind は、アラームキューの状態の変化に基づいてイベントを検出します。アラームキューの状態は、アラームがキューに格納されるたびに変化します。アラームは、イベントプロデューサがアラームを生成したときにキューに格納されます。以下の URI は、これらの種類のイベントを表します。イベントの場合 enp:///ics/eventalarm?calid=calid&uid=uid&rid=rid&aid=aid
enp:///ics/todoalarm?calid=calid&uid=uid&rid=rid&aid=aid
csadmind は、アラームをキューから削除して通知を enpd へ送信します。次に、enpd は、このタイプのイベントの購読者がいるかどうかを調べ、検出した購読に対する通知を csnotifyd に送信します。この 3 つのデーモン間の対話により、イベント通知が行われます。
デーモン
iPlanet Calendar Server には、ENS デーモンの enpd と対話する次の 2 つのデーモンが組み込まれています。
csadmind
csnotifyd
- csadmind は、通知サービスに通知を送信するパブリッシャであり、イベントアラームを ENS へ送信します。csadmind は、iPlanet Calendar Server 5.0 のアラームキューを管理します。また、スケジューラを実装し、アラームが生成されるタイミングを知らせます。アラームの生成を知らされた時点で、csadmind はイベントを公開します。ENS は、イベント通知の受信およびディスパッチを行います。
- アラームを確実に送信するために、csadmind は、特定のイベントまたは特定のイベントタイプに対する応答を要求します。この章の「アラーム転送の信頼性」を参照してください。csadmind は、RENL (Reliable Event Notification Links) を使用してイベント通知が確実に送信されたかどうかを確認します。
- csnotifyd は、特定のイベントに関心を持つ、つまり特定のイベントを購読しているサブスクライバです。購読しているイベントについての通知をイベント通知サービスから受け取り、これらのイベントと仕事についてのお知らせを電子メールでクライアントに送信します。
- ENS アーキテクチャには購読を中止する機能がありますが、csnotifyd では次の 2 つの理由によりイベントの購読を中止しません。まず、通常動作において、購読の中止または再購読を行う必要はないためです。次に、購読は一時的に保存される (メモリに保存される) だけなので、ENS への接続が切断されるとすべての購読は暗黙に購読が中止されるためです。
- csnotifyd は、ics://hostname/alarm/pop を購読するため、ホスト hostname に対するすべてのアラーム通知を受け取ります。csnotifyd は、アラーム通知を受け取ると電子メールメッセージを生成します。
アラーム転送の信頼性
アラームの紛失を防ぐために、csadmind と csnotifyd は特定の種類のアラームに対して ENS の RENL 機能を使用します。csadmind は、それらのアラームに対して終端間の応答を要求します。また、csnotifyd は通知を正常に処理したあと、受け取った各 RENL アラーム通知に対する応答を生成します。RENL アラームの場合、ネットワーク、ENS デーモン、または csnotifyd が通知の処理に失敗した場合、csadmind は応答を受け取れないため、アラームキューからアラームを削除しません。そのため、タイムアウトのあとでアラームが再度公開されます。
イベントサブスクライバの csnotifyd が、特定のイベントに対して関心があることを表明します (購読する)。
図 4-2 は、この流れを示しています。また、表 4-1 は、この図の説明です。イベントパブリッシャの csadmind は、イベントを検出して通知を送信します (公開する)。
イベントサブスクライバは、イベントに対する関心をキャンセルします (購読の中止)。このステップは、ENS への接続が切断されると暗黙に行われます。
図 4-2    イベント通知サービスの公開と購読の流れの例
購読依頼は、データベースではなくメモリだけに保存され、ENS への接続が切断されると、すべての購読が暗黙に中止されるため
前へ 目次 索引 DocHome 次へ
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.
Last Updated June 04, 2001