動的委任発見システム (DDDS)
動的委任発見システム(Dynamic Delegation Discovery System)、略称DDDSは、アプリケーションが扱う特定の文字列を、
インターネット上のリソースを指し示すURI(Uniform Resource Identifier)などの形式に変換するためのシステムです。この変換プロセスでは、DNS(Domain Name System)のような情報源を参照しつつ、一連の文字列変換規則を動的に適用するという特徴があります。これにより、DDDSは
インターネット上にあるサービスやオブジェクトの「名前」から、その具体的な「場所」(
IPアドレスなど)を見つけ出す役割を果たします。
標準規格としてのDDDS
DDDSは、2002年10月にIETF(Internet Engineering Task Force)によって標準化され、RFC 3401からRFC 3405までの合計5つの文書群によってその仕様が定められています。これらのRFCはそれぞれがDDDSの異なる側面を記述しており、全体像を把握するためにはこれらすべてを合わせて読むことが推奨されています。
RFC 3401 (The Comprehensive DDDS): DDDS全体の包括的な概要や、後続のRFCで説明される
アルゴリズムや
データベースの概念が紹介されています。これは情報提供を主な目的とした文書です。
RFC 3402 (The Algorithm): DDDSの中核となる文字列変換
アルゴリズムが詳細に定義されています。また、この
アルゴリズムが発展してきた背景についても説明が加えられています。
RFC 3403 (The Domain Name System (DNS) Database): DDDS
アルゴリズムの
データベースとしてDNSを利用する場合の具体的な方法を規定しています。特に、DDDSで使用されるNAPTR(Naming Authority Pointer)リソースレコード(RR)はこのRFCで定義されています。
RFC 3404 (The Uniform Resource Identifiers (URI) Resolution Application): DDDS
アルゴリズムの具体的な応用例として、DNSを
データベースに利用してURIに関連する情報を持つサーバーの位置を探し出す方法が示されています。
*
RFC 3405 (URI.ARPA Assignment Procedures): BCP(Best Current Practice)文書として、DDDSにおいてURIやURN(Uniform Resource Name)の解決の起点となるURI.ARPAゾーンおよびURN.ARPAゾーンに新しい規則を登録するための手続きが定められています。
背景と哲学
DDDSは、元々IETFのURN(Uniform Resource Name)ワーキンググループの研究から発展したものです。URNは、場所(例えば特定のサーバー上のファイルパス)に依存せず、情報資源そのものを一意に識別するための名前の概念です。URNフレームワーク、通称Knoxville Frameworkでは、「名前付けスキーム」(名前の生成や割り当て方法)と「解決システム」(名前から実際のアドレスなどを得るためのネットワークサービス)を分離することが重要な原則とされています。DDDSは、この「名前付け」と「解決」を切り離すという哲学に基づいて設計されており、特定の名前(URNなど)からそのリソースの実体を解決するための一つの強力な手段を提供します。
DDDSの文字列変換
アルゴリズムは、基本的に以下のステップを繰り返すことで機能します。
1. まず、入力されたアプリケーション固有の文字列に対して、事前に定義された「最初の既知の規則(first well-known rule)」を適用します。
2. 最初の規則適用によって得られた結果文字列をキーとして、DDDS
データベース(例えばDNS)を検索します。
データベースからは、そのキーに対応する一連の「書き換え規則」が取得されます。
3. 取得された書き換え規則を、元のアプリケーション固有の文字列に対して適用します。規則の適用結果として新たな文字列が生成されるか、あるいは解決された情報(例えば最終的なURIやサーバーアドレス)が得られます。
4. 規則適用によって得られた文字列が次の
データベース検索のキーとなり、新たな書き換え規則が取得される限り、ステップ2と3のプロセスが繰り返されます。書き換え規則が見つからなくなるまでこの反復が続きます。
このプロセスにおいて、RFC 3403で定義されるDNS上のNAPTR RRが重要な役割を果たします。NAPTR RRには、ドメイン名に関連付けられたサービスの種類、プロトコル、正規表現を用いた書き換え規則などが格納されており、DDDS
アルゴリズムはこのNAPTR RRに含まれる情報を利用して文字列変換と次の検索先を決定します。
応用例
DDDS
アルゴリズムの具体的な応用例としては、RFC 3404に示されているように、DNSを利用してURIから関連する情報を持つサーバーの位置を見つけ出すプロセスが挙げられます。例えば、特定のURNやWebサイトに関連付けられた様々なサービス(音声通話、メッセージングなど)を提供しているサーバーのアドレス(SIPサーバーなど)を、DDDSを用いて発見することが可能です。URI.ARPAやURN.ARPAといった特定のDNSゾーンが、こうした解決プロセスの出発点として機能します。
まとめ
DDDSは、動的な文字列変換規則と
データベース(特にDNS)を活用することで、アプリケーション固有の文字列からURIやサービスの位置情報を柔軟に解決するための、標準化されたシステムです。URNの思想を受け継ぎ、名前と解決機構の分離を実現する枠組みとして、
インターネット上のリソース発見において重要な役割を担っています。