dwps(仮)
Dynamic Webservices Provider Specification の略。この名前は仮のものなので、将来に変更される可能性が高い。
目的/概要
- CGIに代表される、HTTP上で提供される動的コンテンツ及びサービス。これらを作成/提供する際に、可能な限り作成効率及び抽象度を高くできるようなフレームワークの仕様を定義する。
- この仕様は、特定のプログラミング言語には依存しない、汎用の仕様とする。
- 但し、POSIX等、現行の一般的なosの仕様等には依存してもよいものとする。
- 特定のプログラミング言語には依存しないが、処理の構成上の都合により、副作用を伴う操作の扱いに気を遣わないプログラミング言語には向かない。
- 提供すべきコンテンツもhtmlに限らない、汎用の仕様とする。
- このdwpsの仕様を実装したもの(=dwps実装)は、CGIのように「gateway」として機能する。つまり、「httpd(もしくは直接HTTPクライアント)から入力を受け取り、それを整形してから子アプリに渡し、子アプリの実行結果を受け取り、それを整形してからhttpd(もしくは直接HTTPクライアント)に出力を返す」ようなシステムとなる。
- 複数の異なるdwps実装間で、同一の子アプリのコードが動くように仕様を定義すべきかどうかはまだ未定。可能そうならそうする。
- 「特定のプログラミング言語には依存しない」という時点で、無理な気はする。何も良い方法がなさそうなら諦める。
ライセンス
- この仕様自体はPublic Domainとする。
- この仕様を実装したものについては、実装者が好きにライセンスを決める事。
仕様策定のポリシー
- 基本的には「短く書ける=作成効率が高く抽象度も高い」という、Paul Graham方式をベースとする(但し、最優先という程ではない)。
- この上に、インタラクティブ開発できるフレームワークを容易に構築できるような構造を目指す。
- 基本的には、一つのページ(の見た目)を一つのファイル(相当の何か)に一対一で保存するのを前提とする。
- 複数のページで共有されるパーツ等は、rsに保存する。
- 見た目ではない、ロジック的なコードも、rsに保存する。
- rsについては、dwps-1を参照。
仕様
仕様は、今後に拡張や非互換変更を行う事を考慮し、バージョン番号を振る事にする。
バージョン番号は1から始まる連番とする。
最終更新 : 2009/04/30 23:11:06 JST