Langphilia! / Study / Internet Applications / Additional Information for Internet Objects

オブジェクトの情報

インターネット応用特論 第5回課題内容

新しく追加する情報は、既存の情報を補うものでなければなりません。 例えば、「独立なIPアドレスをもう1個付けて、 アドレスを指定するときは2個のIPアドレスがそれぞれ 合っているものを指定したことにすれば冗長性が高まるよ。」 と言うのは、IPアドレスのビット数を2倍にするのと等価であり、 IPv6で4倍長のIPアドレスが既に提案されているので、意味がありません。


既存の情報

IPアドレスは、正に識別子です。 個々のIPアドレスは、インターネット上で唯一のものです。 (NATとかありますが、「インターネット上」ではないと言えるでしょう。) IPアドレスの役割は識別ですから、 IPv6で128ビット長になったように、 識別に十分な冗長性さえあれば良いものです。 具体的なビット長については、 管理運用のコストから見た議論がありました。

ドメイン名は、論理的な識別よりも、 人の分かりやすい名前であるべき役割を持ちます。 課題4で取り上げられたのは、端的には 「分かりやすい名前であるべきドメイン名が管理運用の問題で分かりやすくない!」 というものでした。

補うべき要素を見つけるために、既存の情報を挙げました。 IPアドレスは、補う必要がないと思います。 ビット長が足りなくなったら伸ばせば良いから。 ドメイン名の分かりやすさについては補う必要があります。


文脈依存の識別

ドメイン名補完の機能は、 既にいくつかのアプリケーションで使われています。 メーラではメールアドレス補完機能があり、 ウェブブラウザではドメイン名を含むURL補完機能があり、 様々なアプリケーションでは、ローカルホストを指定するとき ドメイン名を省略できるようになっています。

Unix と Windows/DOS という2大OSは、 いずれもディレクトリ階層の概念、 カレントディレクトリという文脈依存のオブジェクト識別法を持ちます。 (Mac OSは知らないのでごめんなさい。) ドメイン名には、階層の概念はありますが、 カレントドメインによるドメイン名黙示が generic なものか疑問です。 個々のアプリケーションソフトに任せっきりに見えるのは気のせい? 実作業は個々のアプリケーションソフトが行うにしても、 言語としてのオブジェクト識別法は規定されているのでしょうか?

ドメイン名(ホスト名)は、IPアドレスと1対1に対応し、 インターネット上でそれぞれ唯一でなければなりません。 しかし、階層化された特定の文字列のみでドメイン名が完成する必要はありません。 文脈情報を含むドメイン名を「広義のドメイン名」と呼ぶことにします。 階層化された特定の文字列は「狭義のドメイン名」です。

HTMLのMETA要素に書かれるような情報は、 すべて広義のドメイン名に含むことができます。 こうしてできる広義のドメイン名は階層的ではなく、 もっとぐちゃっとしたものになります。 ユーザから見ると、 ウェブブラウザと検索エンジンが合体したようなアプリケーションが必要ですが、 既にブラウザとエンジンはシームレスに見えるものです。

利点

狭義のドメイン名に重複を許すことができます。 例えば、HONDAというドメイン名を指定すると 普通は車のホンダのホームページにアクセスし、 個人で同名のドメイン名を取得した本田さんのホームページにアクセスするのは、 本田さんのごく近くの人々だけといったことができます。 本田さんの近くの人々が車のホンダにアクセスするには、 「車」の「HONDA」というように広義のドメイン名を指定します。

欠点

ドメイン階層がツリーでなくグラフになります。 この結果、管理運用のコストが莫大になるでしょう。

文脈依存であるため、間違いが多く発生する可能性があります。 例えば、近くに本田さんがいるのを知らないで車のホンダ宛にメールを出すとか。 しかし、間違い電話は容認されています。少なくとも、必要悪とされています。 文脈の誤解による間違いを防ぎたければ グローバルなIPアドレスを使えば良いのですから、 ドメイン名は分かりやすさを重視すべきだと考えます。


早稲田大学 理工学研究科 情報科学専攻 600P031-4 高木祐介