Ik ben bezig met de architectuur voor webapplicatie en focus me op dit moment op autorisaties. Als je wat gaat googlen kom je uit op ACL, maar ik heb er een beetje mijn twijfels bij.
Ik zal even schetsen wat de situatie gaat worden.
We hebben een lijst met in -en uitkloktijden (en een zooi andere data zoals locatie). Het aantal records loopt in de miljoenen. Deze records zullen door verschillende users (rond de 10.000) bekeken worden. Het is uiteraard niet de bedoeling dat iedereen zomaar alles mag zien, aangezien de gegevens sowieso privacygevoelig zijn.
Er zijn een aantal rollen gedefinieerd die iemand kan zijn. Naar gelang je daalt in de hiërarchie zal de persoon minder van deze kloktijden kunnen inzien.
De Admin kan alles zien en de Employee alleen zijn eigen tijden. Een Manager kan alleen de kloktijden van zijn eigen Regional Managers zien. Het zijn dus allemaal 1:N relaties
Wanneer ik dan naar ACL kijk lijkt het de bedoeling dat ik voor elke rol / user moet gaan vastleggen welke rechten op wel object instanties ze hebben.
Met andere woorden wordt de tabel acl_object_identity en vooral acl_entry (zie link) echt enorm! De laatste kan zomaar tien -tot honderd miljoen records gaan bevatten. Overzichtelijk wordt het in ieder geval niet.
Tevens vraag ik me ook af wat de impact gaat worden wanneer de ACL lists ingeladen worden voor een Admin qua memory usage e.d. Ik verwacht zo'n duizend concurrent users.
Ik zat me dus een beetje af te vragen of dit de beste oplossing is. Ik heb onderbuikgevoel dat ik met een volledige ACL list meer problemen op de hals ga halen (performance, memory, usabillity) dan ik daadwerkelijk wil.
Dit alles speelt zich overigens af in het J2EE domein.
Ik zal even schetsen wat de situatie gaat worden.
We hebben een lijst met in -en uitkloktijden (en een zooi andere data zoals locatie). Het aantal records loopt in de miljoenen. Deze records zullen door verschillende users (rond de 10.000) bekeken worden. Het is uiteraard niet de bedoeling dat iedereen zomaar alles mag zien, aangezien de gegevens sowieso privacygevoelig zijn.
Er zijn een aantal rollen gedefinieerd die iemand kan zijn. Naar gelang je daalt in de hiërarchie zal de persoon minder van deze kloktijden kunnen inzien.
code:
1
| Admin --> Manager --> Regional Manager --> Supervisor --> Employee |
De Admin kan alles zien en de Employee alleen zijn eigen tijden. Een Manager kan alleen de kloktijden van zijn eigen Regional Managers zien. Het zijn dus allemaal 1:N relaties
Wanneer ik dan naar ACL kijk lijkt het de bedoeling dat ik voor elke rol / user moet gaan vastleggen welke rechten op wel object instanties ze hebben.
Met andere woorden wordt de tabel acl_object_identity en vooral acl_entry (zie link) echt enorm! De laatste kan zomaar tien -tot honderd miljoen records gaan bevatten. Overzichtelijk wordt het in ieder geval niet.
Ik zat me dus een beetje af te vragen of dit de beste oplossing is. Ik heb onderbuikgevoel dat ik met een volledige ACL list meer problemen op de hals ga halen (performance, memory, usabillity) dan ik daadwerkelijk wil.
Dit alles speelt zich overigens af in het J2EE domein.
The ships hung in the sky in much the same way that bricks don’t.