ステートレス・プログラミング
WebプログラミングとLANSA/ADまたはVisual LANSAプログラミングの基本的な違いはステートレス・プログラムの理解にあります。
プログラムとブラウザー・ユーザーとの対話処理(またはそこに存在するインターネット上のその他のもの)のステートを管理しない場合、そのプログラムはステートレスです。したがって、プログラムに定義された変数は対話処理の値の記憶には使用できないことになります。ファイル・カーソルの位置や、オープン・ファイルの接続、リソースの割り振りなどの、より微妙な他のステートも保存できません。
ステートレス・プログラミングの影響については以下の簡単なプログラム仕様を検討してください。
· 値が0から始まる、#NUMBERというフィールドを表示します。
· ユーザーがEnterを押すたびに#NUMBERの値をインクリメントし、新しい結果を表示します。
5250プログラム(LANSA/RPG)またはWindowsプログラム(Visual LANSA/Visual Basic)でのロジックは、以下のようになります。
Define #NUMBER with a default value of zero
Change #NUMBER to #NUMBER + 1
Display the incremented #NUMBER value
· ステートレス・プログラムでは、#NUMBER(実際には、プログラム全体とそのステート)はユーザーとの対話処理で存在がなくなります。したがって、変数はユーザーとの対話処理のなかで前の値を保存するためには使用できません。
· プログラムを変更するアプローチは非常に簡単です。以下を実行するだけです。
Define #NUMBER
Restore the current value (i.e. state) of #NUMBER
Change #NUMBER to #NUMBER + 1
Save the new value (i.e. state) of #NUMBER
Display the new #NUMBER value (at which point your program ceases to exist)
· LANSA for the Webとフレームワークはどちらもユーザーのステートを(後ほど)保存/復元する機能を備えています。ステートを管理するのは簡単ですが、それが発生することと、アプリケーションに与える影響は理解しておく必要があります。