いくつかのキーワード: KoNSとサービス転送オブジェクト
クライアント/サーバーシステムで、クライアント側状態の遷移をする際に、「次にどこに遷移すべきか」あるいはむしろ「次に遷移するために何をなすべきか」の知識がいる。この知識を Knowledge of Next Step、略して KoNS と呼ぼう。
問題は、KoNSを誰が持っているか? どう伝えるか? クライアント側がすべてのKoNSを持っていて、サーバー側はRPCエンドポイントの集まり、のような形態も考えることができる。しかし、これはハイパーリンクアプリケーションじゃない。ハイパーリンクアプリケーションでは、KoNSをサーバー側が持っていて、それをその場その場でクライアント側に伝える。クライアントはKoNSを一切持たず、サーバーからの提供に頼る。
これがハイパーリンクアプリケーション、あるいはリンクトサービスの基本だ。KoNSを全体として図示するとハイパーリンクグラフになる。ハイパーリンクグラフを知っているとは、行動のシナリオを知っていることになる。シナリオは、局所的な選択の知識が時間方向に累積される結果として生じる。シナリオの全体が、局所的な情報で定義される。ローカル/グローバル、またはミクロ/マクロ対応がある。
ただし、KoNSの伝達方式(プロトコル)と記述方式(フォーマット)は前もって合意しておく必要がある。これは、KoNSを扱う上でのメタ知識となる。メタ知識は共有しながら、知識を決め打ちでなくてオンザフライでやり取りする。オンザフライでやり取りする分のオーバーヘッドはあるが、その代わりロバストになる。仕様変更でクライアントが壊れるリスクは減る。
KoNSを含めた転送オブジェクトを、以前からサービス転送オブジェクトと呼んでいた。データ転送オブジェクトより情報が豊富で、KoNSが詰め込まれている。ハイパーメディアオブジェクトとほぼ同義だ。