amspとは、非同期写像システム規約(asynchronous mapping system protocol)の事。
amsの通信仕様。
まだ草稿段階なので、あとで仕様変更するかも。ページ名も変わる可能性有り。
草稿
- 内部通信用のamsip(ams internal protocol)と、外部通信用のamstp(ams transfer protocol)がある。
- 基本的にはamsipがベースになる。amstpはそれを文字列にシリアライズ/デシリアライズして通信しているだけ(の予定)
- 要は、呼び出し元がどっちなのか意識しなくてすむようにする
- リクエストと、レスポンスがある。
- リクエストもレスポンスも一つのS式(具体的には連想リスト、キーワードリスト、Clojureのmap等の、複数の「keyとvalueのセット」で構成されたデータ構造)で表現される
- 基本的には、リクエストとレスポンスは区別がつかない(予定)
- リクエストはuniversal uniqueなリクエストidを持つ
- レスポンスは、どのリクエストに対する返事かを示すIn-Reply-Toヘッダ(のようなもの)を持つ
- リクエスト(レスポンスも)は、「データ問い合わせ要求」と、「データ更新」(「データ問い合わせ結果」もこれに含む(仮))と、「エラー通知」の、三種類のタイプがある。
- amsipによる問い合わせがエラー(何らかの例外とか)を起こした場合は、エラー通知はレスポンスとして呼び出し元に返される
- amstpによる問い合わせがエラー(通信エラーとか)を起こした場合も、ライブラリ内で自動的に処理され、呼び出し元にはレスポンスとしてエラーが返される(呼び出し元にはamsipもamstpも見た目が変わらない)
- リクエストにはタイムアウト値が設定できる。この値以内にレスポンスが返ってこない場合は、ライブラリが勝手にエラーをレスポンスとして返す(仮)
- タイムアウト後にちゃんとしたレスポンスが返ってきた場合の扱いを考える必要有り
- このタイムアウト値は、実時間以外にも、cpu秒や曖昧指定できた方が便利かもしれない(要思考)
- amstp時に、偽のレスポンスを偽造された場合に対する対策を考えておく事
- amstpはutf-8のみ対応とする
最終更新 : 2010/05/17 19:59:39 JST