c4ab3e470c384734a90fb599798b8a4a
このセクションはユーザーから送られてくるデータの内部的な扱いに関する説明になります。
データのライフタイムとロギング
サーバーに対して送られてくる通信リクエストはHTTPプロトコルに限定され、中でも
- GET
- POST
の2種類しか使用しません。
いずれの通信リクエストもログに残ります。
${PJ_HOME}/var/log/submission-http
※ログファイルの名前は環境で変わることがあります。
これまでに見たり聞いたりした話ではログからデータを取り出して運用するタイプのシステムが設計される例がありましたが、RADIREC WSでは、ログはあくまでもアクセス記録として使われています。
副作用とデータ保存
データの保存領域として設定可能なものには以下の種類があります。
- 変数領域
- Rewritable領域
- ファイルシステム領域
変数領域
プログラミングガイドで触れている、動作記述用のスクリプトあるいはWebページ上に記述されているJavascriptなどからアクセスできる変数を指します。
変数領域にはさらにいくつかの種類があり、以下のようになっています。
呼び名 | 表記 | ライフタイム | トレース |
---|---|---|---|
プロセス変数 | /変数名 | ページが表示し終えるまで | できない |
パーシステント変数 | @変数名 | 恒久的 | できる |
セッション変数 | ~変数名 | セッションが終わるまで | できない |
ホスト変数 | &変数名 | 恒久的 | できる |
RADIREC WSの現在のバージョンでは、プロセス、パーシステントのみが使用されます。
※表中の、表記というのは内部記述用のスクリプトで使用する表記です。
プロセス変数とは、通常Webページを開いて描き切るまでの短い期間だけメモリ上に存在する値です。
どのアクセスにおいても、HTTP URL(URI)のCGIと呼ばれる標準的な記述ルールで定義されるクエリーパラメーター
http://サーバー名/スクリプト?変数名=値&変数名=値....
のような表記があれば、自動的にサーバー側に上記の変数名と値の組み合わせが作られます。
処理が終了すると、この組み合わせは抹消されます。
内部の計算などの処理において、URLにはない変数名と値の組み合わせを発生させることがありますが、いずれも処理が終わると抹消されます。
パーシステント変数
RADIREC WSでは、動作設定の値の保存に使用しています。
代表例としてカラーマップの値は、パーシステント変数に保管されます。
Rewritable(リライタブル)領域
リライタブル領域は、前項のパーシステント領域に近い概念になりますが、サイズの大きいファイルを扱う点と、専用のURLを持っている点で異なります。
以下のようにファイルを送信すると、
- エンドポイントのURLにピリオド( … ) を付与
- HTTP POSTメソッドでデータを送信
サーバーの方で、そのURLにデータを登録することができます。
ファイルシステム
ファイルシステムとは、いわゆる普通のドライブを指していいます。
RADIREC WSでは、外部からアクセスしうる、一部のフォルダ階層にワークファイルを配置することがあります。
トレーサビリティの確保
検査データを扱う点、およびクラウドとして運用される点から、デバッグの簡易性とセキュリティの両立を図るため、パーシステント変数と、リライタブル領域のデータにはトレーサビリティが確保されており、後から内容の変更を時系列的に追うことができるように設計されています。
トレースが実行できるのは現在、管理者に限られています。