開発とテストのためのセッション管理の強化

最新の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セッション、権限セッションのページを読むことをお勧めします。

また、あなたの経験/感想などをお気軽にフォーラムに投稿してください。

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。