ステートレスで配布可能なアプリケーション
ステートレスな分散アプリケーションにより、簡単な水平スケーリングが可能になります (つまり、アプリケーション インスタンスを持つマシンをシステムに追加するなど)。
ステートレスとは、状態情報を維持しないアプリケーション インスタンスを指します。状態がないため、アプリケーション インスタンスは、以前に受信した入力に関係なく、特定の入力に対して同じ出力を生成します。したがって、どのインスタンスがリクエストに応答するかは問題ではありません。
これにより、特定のインスタンスに「固定」されたセッションを維持する必要がないため、スケーラビリティがはるかに容易になります。要求のダートリビューション ロジック (ロード バランサーなど) は、以前に何が起こったかを気にすることなく、任意のインスタンスに負荷を分散できます。インスタンスは、アクティブなセッションを気にせずにクラスターに追加またはクラスターから削除できます。
このようなアーキテクチャは通常、システムの永続レイヤーで状態情報を維持します。つまり、アプリケーション インスタンスは、処理する要求ごとに永続レイヤーから新しい状態情報を取得します。これは、スケーリングの柔軟性に対して支払うペナルティです。
プラグ可能なセキュリティ モデル
セキュリティ モデルは、リソースへのアクセスをユーザーに許可する方法を定義します。セキュリティ モデルの例としては、役割ベースとアクセス制御リストがあります。
セキュリティ モデルの実装は、ビジネス ロジックと対話します。機密性の高い処理を行う前に、ビジネス ロジックはセキュリティ ロジックに承認を求める必要があります。複雑なビジネス ロジックには、このようなチェックを実行する必要がある場所が多数ある場合があります。セキュリティ ロジックとビジネス ロジックが密接に結合されている場合、つまり、ビジネス ロジックがセキュリティ ロジックを直接呼び出す場合、セキュリティ モデルを変更することは困難です。
プラグイン可能なセキュリティ モデルは、ビジネス ロジックがプラグイン インターフェイスを介してセキュリティ モデルと対話する場合に、タイト結合を疎結合に置き換えます。ビジネス ロジックはセキュリティ ロジックの内部について何も知らないため、ビジネス ロジックを変更せずにセキュリティ ロジックを交換できます。
このようなプラグイン インターフェイスは、ビジネス ロジック内で構成され、セキュリティ ロジックをクエリするためにビジネス ロジックによって使用されるコールバックのセットとして実装されることがよくあります。