WS-Topics
WS-Topics 標準では、NotificationProducer アプリケーションが作成した NotificationMessages とトピックをどのように関連付けるかを記述しています。
WS-Topics Version 1.3 OASIS Standard の抜粋では、以下のように WS-Topics が記述されています。
この文書では、「トピック」として知られるサブスクリプションのインタレストの項目を編成および分類するメカニズムが定義されています。 これらの項目は、WS-BaseNotification で定義される通知メカニズムと使用されます。WS-Topics はサブスクライブ要求メッセージおよび WS-Notification システムの他のパーツで、サブスクリプション式として使用できる 3 つのトピック式ダイアレクトを定義します。 さらに、トピックと関連付けられたメタデータを記述するための XML モデルも指定します。
Copyright © OASIS Open 2004-2006. All Rights Reserved.
This document and translations of it might be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation might be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the previous copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself does not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English.
トピックは、特定のタイプの情報に関連する通知メッセージをグループ化するのに使用されます。例えば、ストック・チッカーの NotificationProducer アプリケーションは、作成する NotificationMessages のトピックを情報が関連しているストック・シンボルに設定する場合があります。例えば、"stock/IBM" です。
NotificationConsumer アプリケーションはサブスクライブするときに、トピックを指定することができます。それによって、特定のトピックで、NotificationProducer アプリケーションによって作成されたすべてのメッセージを配信します。
各トピックは、XML 名前空間の一部として定義されます。特定の XML 名前空間に関連付けられた一連のトピックは、TopicNamespace と呼ばれます。特定の TopicNamespace へのトピックの割り振りは、名前の衝突を回避する場合、および別個に開発された NotificationProducer と NotificationConsumer アプリケーション間の相互運用を容易にする場合に使用されます。
この衝突回避を行うメカニズムは、通常、アプリケーション開発者によって決定されます。1 つのパターンでは、アプリケーション開発者は、関連するアプリケーションのグループによって使用する名前空間を定義します。これにより、開発者は、その名前空間内に適していると見られるトピック構造はなんでも自由に使用することができます。上記の例を続行する場合、アプリケーション開発者は、フランス語でパブリッシュされた通知メッセージには TopicNamespace を 1 つ、英語でパブリッシュされた通知には異なる TopicNamespace を 1 つ定義することができます。サブスクライブ・アプリケーションは、アプリケーション開発者が関心のある名前空間とトピックを指定して ("english:stock/IBM" など)、該当する言語で通知メッセージを受信できるようにします。このように、「同じ」トピック構造を使用して (異なる名前空間を使用) アプリケーションが非互換の通知を受けないようにできます。
WS-Topics 標準のセクション 6 では、XML 文書として TopicNamespaces をモデリングするためのメソッドについて説明しています。これにより、トピック・スペースの構成が定義されます。(オプションとして) 特定のトピック・スペースを参照して、アプリケーションによって使用できるトピックに状態を入力することができます。そのような機能が WebSphere Application Server でどのように実装されているかについては、WS-Notification トピック名前空間文書の適用を参照してください。
WS-Topics 標準のセクション 7 では、WS-Notification アプリケーションによって使用するよう推奨されているトピック式ダイアレクトの例が定義されています。WS-Notification 標準では、ベンダーが自身のトピック式ダイアレクトを定義できる拡張性メカニズムが提供されています。 WebSphere Application Server によってサポートされる 3 つのトピック式ダイアレクトは、次のとおりです。
- シンプル・トピック式
- 唯一許可されたトピックが QNames であるトピック式の基本スタイル。これは、ルート・トピックだけがシンプル・トピック式ダイアレクトによってサポートされ、トピック階層もワイルドカードの使用もないことを意味しています。 有効なシンプル・トピック式の例として、tns1:stock または tns2:sports を挙げることができます。この場合、例えば、tns1 は、トピックが配置されている名前空間への参照です。
- 具体的トピック式
- このトピック・ダイアレクトでは、シンプル・トピック式パターンが拡張され、/ (スラッシュ) 文字を使用して、トピック階層で「子供の」関係を示すことができます。このトピック・ダイアレクトも、ワイルドカードの使用を許可しないことに注意してください。有効な具体的トピック式の例は、tns1:stock/IBM または tns2:sports/football です。 有効なシンプル・トピック式は、具体的トピック式ダイアレクトでも自動的に有効となることに注意してください。
- フルトピック式
- このトピック・ダイアレクトでは、ワイルドカードおよび論理積の概念を含むように具体的トピック式ダイアレクトが拡張されます。このトピック・ダイアレクトは、前述したように、XPath ロケーション・パス式のサブセットに基づいており、トピック・スペースの XML 文書表現を使用したこのタイプの式の評価方法を記述しています。XPath スタイルのアスタリスク (*) およびドット (.) 文字をワイルドカードとして、縦棒 (|) 文字を論理積として使用します。
有効なフルトピック式の例は、以下のとおりです。
tns1:t1/* tns1:t1/*/t3 tns1:* tns1:t1/t3//. tns1:t1/t3//* tns1://* tns1:t1//t3 tns1:t1/t2 | tns1:t4/t5
一般に、NotificationProducer アプリケーションでは、上述した多くのトピック・ダイアレクトがサポートされています (何も含まず、上記にリストされていないダイアレクトもサポートします)。 これにより、シンプル NotificationProducer アプリケーションが、通知を提供する情報の構造をどのように公開するかを決定します。
WebSphere Application Server によって提供された NotificationBroker は、前述した 3 つのダイアレクトをすべてサポートしており、アプリケーション開発者は、要件に応じて使用するダイアレクトを決定できます。 ワイルドカードを使用する複雑な式の場合、アプリケーションはフルトピック式ダイアレクトを使用する必要があります。一方、シンプルな場合は、アプリケーションはシンプル・トピック式ダイアレクトまたは具体的トピック式ダイアレクトを使用できます。