2009-08-22 9 views
1

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

大量のデータがあるとどうなるでしょうか。つまり、効率的なものを探しています。

私はかつてこの種のオブジェクトのアクセス制御を実装しましたが、その方法を知っていますが、実際にはこのためのデザインパターンがあるのだろうかと思っています。

答えて

1

利用可能な情報がたくさんあります。 Thisは合理的な出発点です。大規模なデータセットの場合、で効率を上げるのは難しいでしょう。実行時のパフォーマンスを最大化するには、設計時に開発時間を増やす必要があります。悲しいことに、銀色の弾丸はありません。

優れたオブジェクトレベルのコントロールの1つの例は、ロータスノーツにあります。ロータスノーツは、オブジェクトの細かいアクセス方法を記述しています。 (ノートはその卓越したパフォーマンスでは知られていませんが、そのようなシステムにはかなり安全です)。

0

私はこれを「サービス」の承認の特別なケースとみなします。

発信者の資格情報を知る方法が必要です。そのような情報をすべての方法に明示的に渡すことを避けるには、承認が決定されたときに利用可能な暗黙の「コンテキスト」が必要です。そのような機能を個人単位で管理することは、非常に不安定になる傾向があります。したがって、役割ベースのアクセス制御と、ユーザーのグループを役割に割り当てる方法が必要になりがちです。

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

私の "パターン"は、ホイールを再発明していないので、適切なフレームワークを見つけて使用してください。

関連する問題