最新の4Dアップデートでは、Sessionコマンドをクライアント/サーバー接続まで拡張し、これによりクライアントレベルでセッションストレージにアクセスできるようになりました。この機能をORDAクラスの新しい’Restrict’イベントと組み合わせることで、権限、ロール、あるいは地域など、セッションデータに基づいた結果のフィルタリングがこれまで以上に簡単になります。
4Dでアプリケーションを開発するということは、ローカル環境、つまりはシングルユーザーとして作業することを意味します。スタンドアロンモードでは、Session コマンドは常に Null を返していました。これは、”Storage”もしくは “Session.storage”のどちらから読み込んだらいいかを判別するために、Session オブジェクトが Null かどうかをチェックするような複雑なコードを書かなければならないことを意味します。この回避策は、機能的ではありましたが、エレガントではありませんでした。
4D 20 R8 では、これはもはや問題ではありません。Session コマンドは、スタンドアロンモードでも有効なオブジェクトを返すようになり、これによりアプリケーションの開発とテストが簡単になりました。
スタンドアロンで拡張されたコマンド
Session が開発フェーズでも使えるようになったことで、これら3つのコマンドも使えるようになりました:
シングルユーザー環境で作成されるセッションはシミュレートされたセッションであることに注意することが重要です。これらのコマンドは、ワークフローを簡素化するために、クライアント/サーバーアプリケーションの開発/テストのためだけに使用してください。
スタンドアロンアプリケーションでは、引き続き Storage コマンドを使用してユーザー固有の情報を保持し、例えば”Restrict “イベントなどで使用します。
実際の使用例
それではこのバージョンの4Dで導入された新機能によってよりシンプルになったセッションオブジェクトの、実用的な使用例をいくつか見てみましょう。
認証
“authentify” 関数を使用してユーザーを認証するとき、そのユーザーに関する情報を Session オブジェクトに保存することができます。
さらに詳しい情報は、以下のブログをご覧ください:
データ制限
Restrict “イベントを使用すると、”誰がアクセスするのか”または”どののデータにアクセスするのか”に応じてデータを保護し、アクセスを制限することでデータのセキュリティを確保することができます。
詳細な情報については、こちらのブログをご覧ください:ORDA – データを関連する基準に制限する
セッション間のデータ共有
各セッションは独自のストレージを保持します。また、別のセッションのストレージにアクセスすることもできます。
そのため、同じユーザーがデスクトップクライアントアプリケーションとウェブアプリケーションの両方から自分の(同じ)ストレージにアクセスすることができます。その結果、あるデバイスで作業を開始し、別のデバイスで継続することが非常に簡単になります。例えば、コンピューターからタブレットに移行する場合でも、同じ環境設定を維持したまま作業を続けることができます。
詳しくは、以下のブログをご覧ください:
さらに深く
様々なタイプのセッションについてもっと知りたければ、Webセッション、リモートセッション、APIセッション、権限セッションのページを読むことをお勧めします。
また、あなたの経験/感想などをお気軽にフォーラムに投稿してください。
現在、この投稿へのコメント機能は利用できません。