要約

  • RFC 3421はSLPの一致URLをサーバー側で整列し、指定数だけ返せるようにしたが、先頭URLが示すのは要求キーと保存属性の中での順位だった。
  • 総一致数m、上限n、返却集合、NULL、型不整合、SortとSelectの順序は別の記録であり、実際の速度や接続成功を保証しなかった。

接続より先に順位が決まった

クライアントが高速なプリンターや低負荷のサーバーを探すとき、サービスディレクトリは登録属性を比較できる。候補へ接続せずに「一位」を返せる点が便利であり、同時に証拠の限界でもある。

2002年11月の実験的 RFC 3421 は、SLPv2にSortとSelectを加えた。Sortは属性でURLを並べ、Selectは返却数を制限する。狭い回線の節約になる一方、「最良」が何から作られたかを明示した。

一位とは、あるDAまたはSAが、その時点の属性に要求された型、方向、優先順位を適用した結果である。新しい速度測定でも、認証済み相手でも、アプリケーション完了でもない。

件数と返却リストは同じではない

Select(n)は最大n件を要求する。応答のSelect(m)は総一致数を伝える。n < mなら最初のn件だけが届く。Select(0)ならURLを一件も受け取らず、件数だけを取得できる。

したがって三件の応答は総数三件を証明しない。総数百件も百サービスの動作確認を意味しない。登録を数えただけで、クライアントが見た候補はゼロの場合さえある。

監査には要求上限、総数、返却数、試行したURL、接続結果を別々に残す必要がある。

ソートキーが「良さ」を定義した

各キーは属性名、文字列または整数、昇順または降順を指定し、整数では参照値も持てる。キーの記載順が優先順位になる。

速度12に最も近い候補を求めれば、保存値との差の絶対値で並ぶ。12は10、15、8より前になる。この計算が正しくても、値の新しさは証明されない。Sortは測定を実行しない。

文字列はSLPの字句順に従い、同じ属性を繰り返しても最初だけが有効である。何を重視し、高低のどちらを良しとするかは要求者が決めている。

欠落値にも順位規則があった

キーを欠くエントリはNULLになり、すべての有効値の後ろへ置かれる。整数ソートと矛盾する値もNULLである。複数値属性からは最小値を使う。

負荷属性のないサービスは、実負荷にかかわらず有効値の後ろになる。複数の値は平均や最新値ではなく最小値へ縮約される。低順位の原因は高負荷、欠落、型誤りのどれでもあり得る。

最終リストだけでは原因を復元できない。元属性とNULL判定を保存して初めて説明可能になる。

拡張の順番が候補集合を変えた

複数のSortとSelectは出現順に処理される。速度で並べて三件を選び、その三件を負荷で並べ直して一件を選ぶと、「記録上の高速三件の中で低負荷」が得られる。

最初に三件を選べば、速度比較前に他候補が消える。全件を負荷で並べる場合も別の質問になる。Selectは後段が見られる母集団を変更する。

拡張列は小さなクエリ計画である。最後のキーと勝者だけを残すことは、それ以前のLIMITを忘れることに等しい。

機能広告はデータ品質の証明ではない

対応エージェントはselect-enabledまたはsort-enabledを広告し、UAは利用前に確認すべきとされた。非対応または実行不能ならOPTION_NOT_UNDERSTOODを返す。ゼロのエラーコードは処理完了を示すが、属性の鮮度や発行者を証明しない。

ソートはbest effortとも記された。要求、キー、順序、エラー、出力は検証できる。ディレクトリの完全性とサービス動作は別の証拠が必要である。

0x4002と0x4003はSLPのmandatory-to-implement拡張範囲から割り当てられた。それは実験的仕様の普及証明ではない。番号、広告、処理、接続、業務結果は別々の受領書である。

選択の後に実世界の試験が始まる

クライアントはURLを解釈し、接続し、プロトコルを交渉し、相手を認証し、操作を完了しなければならない。後段の失敗はソート計算を否定せず、証明範囲が異なることを示す。

RFC 3421は「最良」を構成する政策を見える形にした。属性の作者と時刻、型、方向、NULL、キー順、切り詰めの位置である。それらを残せば、順位は有用な判断材料でありながら全知の宣言にはならない。

資料と限界

一次資料は HTML、テキスト、RFC Editor情報、Datatracker、履歴、参照関係、正誤表検索である。

背景は RFC 2165、SLPv2 RFC 2608、テンプレート RFC 2609、API RFC 2614、LDAPソート RFC 2891、属性一覧 RFC 3059、IPv6 RFC 3111、ベンダー拡張 RFC 3224、メッシュ RFC 3528、遠隔探索 RFC 3832、IANAテンプレート登録簿と照合した。分析はHeng Luの実行コード論と最小初期仕様論を用いる。

これらは規則と文書史を示し、普及、登録完全性、鮮度、現在負荷、サービス成功率は測定しない。