ASTERIA Warpのフロー実行時におけるスコープには、「セッション」と「リクエスト」の2種類があります。
「リクエスト」は、フロー、サブフロー、Nextフローなどが、同じWorkerスレッド上で一連の処理として実行される単位を指します。
一方、「セッション」は、WebサービスのようにブラウザからのHTTPリクエストを処理する構成において使用されます。複数のリクエスト間で変数(セッション変数)を共有したい場合や、ログインからログアウトまでの一連の処理を同一セッション内で扱いたい場合に活用されます。
実際には、同一セッションで処理したいフローに対して、フロープロパティの「セッション」を「保持する」と設定することで、最初のHTTPリクエストに対するHTTPレスポンスにSession IDをCookieとして付与します。これにより、ブラウザ側は次回以降のHTTPリクエスト時に同じSession IDを送信し、ASTERIA WarpはそのSession IDをもとに、セッションの有効期間内であれば前回と同一のセッションと判断し、処理を継続します。
また、外部変数セットで定義可能な「セッション変数」および「リクエスト変数」は、それぞれのスコープに基づいて共有されます。
ご注意いただきたい点として、FlowInvoker
を用いて他のユーザーのフローを実行する場合であっても、セッションを同一にして実行することは可能です。ただし、その際はセッション変数やStream変数の共有は行えませんので、設計時にはご留意ください。