1

オブジェクトに CRUD レベルのロックを実装するための設計パターンを知っていますか。つまり、オブジェクトの 1 つのインスタンスに対して、操作 (作成、読み取り、更新、削除) ごとに異なるアクセス制御レベルを指定できるはずです。たとえば、人物 A はオブジェクト Z を読み取って更新することはできますが、削除することはできません。ユーザー B は、オブジェクト X、Y、および Z の読み取り、更新、および削除を行うことができます。

私の懸念は、大量のデータがある場合にどうなるかです。言い換えれば、私は効率的なものを探しています。

オブジェクトに対してこの種のアクセス制御を実装したことがありますが、それがどのように行われるかを知っています。実際にこのための何らかの設計パターンがあるかどうか疑問に思っています。

4

2 に答える 2

1

利用可能な情報は山ほどあります。これは妥当な出発点です。大規模なデータセットの場合、物事を効率化するのは難しい場合あります。実行時にパフォーマンスを最大化することは、設計時に開発者の時間を費やすことを意味します。悲しいことに、特効薬はありません。

優れたオブジェクト レベルの制御の 1 つの例は、Lotus Notes に見られます。Lotus Notes は、説明した方法でオブジェクトへのきめ細かなアクセスを提供します。(Notes の優れたパフォーマンスは知られていませんが、そのようなシステムとしてはかなり安全です。)

于 2009-08-22T09:02:53.647 に答える
0

私は、これをあらゆる「サービス」の承認の特別なケースと見なしています。

呼び出し元の資格情報を知る何らかの方法が必要です。そのような情報をすべてのメソッドで明示的に渡すことを避ける場合は、承認が決定されたときに利用可能な暗黙の「コンテキスト」が必要です。このような機能を個人ごとに管理することは非常に扱いにくくなる傾向があるため、役割ベースのアクセス制御と、ユーザーのグループを役割に割り当てる方法が必要になる傾向があります。

これらすべてが意味するのは、デザイン パターンというよりは、利用するフレームワークです。Spring や Java EE などのフレームワークにはこのような機能が組み込まれているため、LDAP を使用してディレクトリを悪用する可能性があります。

したがって、私の「パターン」は、車輪を再発明するのではなく、適切なフレームワークを見つけて使用することです。

于 2009-08-22T09:04:35.297 に答える