トピック とは、パブリッシュ/サブスクライブ・システムでパブリッシュされるデータの特性を記述する文字ストリング。
トピックは、パブリッシュ/サブスクライブ・システムにおいて、メッセージを正常に送達するために重要です。 各メッセージの特定の宛先アドレスを含めるのではなく、パブリッシャーはトピックをメッセージに割り当てます。 メッセージ・ブローカーは、トピックを、そのトピックに対してサブスクライブしたクライアント (サブスクライバー) のリストと突き合わせ、メッセージをこれらのクライアントのそれぞれに配信します。
パブリッシャーが、メッセージで指定されるトピックを注意深く選択することによって、どのサブスクライバーがパブリケーションを受け取ることができるかをコントロールできることに注意してください。
トピックは、ワークベンチを使ったシステム管理者によって定義されます。 しかし、パブリッシャーが使用する前に、メッセージのトピックを定義する必要はありません。トピックは、パブリケーションで初めて指定される際にも定義することができます。
1 つのパブリケーションに複数のトピックを指定することができます。
トピック・ストリングには、スペース文字を含め、ユニコード文字セットの文字をどれでも 含めることができます。しかし、特別な意味を持つ文字が 3 つあります。 これらの文字 ("/"、"#"、および "+") については、トピックでの特殊文字で説明されています。
ヌル文字を使用してもエラーは発生しませんが、トピック・ストリングにはヌル文字を使用しないでください。
定義する各トピックは、トピック・ツリーではエレメント、またはノードです。 トピック・ツリーは、空でも、またはワークベンチを使用してシステム管理者が定義したトピックを含んでいても開始できます。 ワークベンチを使用することにより、またはトピックを初めてパブリケーションで指定することにより、新しいトピックを定義する ことができます。
トピック・ツリーを平たんな、線形構造にすることもできますが、1 つ以上のルート・トピックを持つ階層構造にするほうが良いでしょう。
図の各文字ストリングは、トピック・ツリーのノードを表します。 完全なトピック名は、トピック・ツリーの 1 つ以上のレベルからノードを集合することによって 作成されます。レベルは "/" 文字で区切ります。 完全に指定されたトピック名のフォーマットは、"root/level2/level3" です。
トピック名とトピック・ツリーを設計する際には、メッセージ・ブローカーがトピック名自体から 意味を解釈したり、引き出そうとしたりはしないことを覚えていてください。 メッセージ・ブローカーは、そのトピックにサブスクライブしたクライアントに関連メッセージを 送信するためだけにトピック名を使用します。