# RCP, EMF, CDO und das Verständnins



## Waldi (11. Mai 2009)

Hallo liebe Java Gemeinde,

ich beschäftige mich schon seit etwas längerem mit EMF und CDO und RCP Anwendungen. Immer wider taucht bei mir die selben Frage in meinem Kopf auf. Hier mal mein Verständnis zu der ganzen Sache:

Also ich erstelle ein .ecore mit dem ich ein .genmodel erstellen lasse. Daraus kann ich dann mein Java Model erzeugen lassen. 

Soweit so gut. Nun kommt der CDO Server ins Spiel. Bei ihm kann ich mein generiertes Model registrieren. Der CDO Server verwaltet die bei ihm registrierten Modelle und macht die Persistenz auf die DB. 

Wenn ich nun eine Klassische Server Client Application schreiben muss, auf welcher Seite ist dann das generierte Model? Meiner Meinung nach auf der Client Seite. 

Nun habe ich aber eine Application bei der Sicherhheit eine Rolle Spielt. Nicht jeder angemeldete Benutzer darf alle Daten sehen. Einfaches Beispiel: Ich habe eine Personen Klasse. Manche User dürfen die komplette Adresse sehen, andere widerum nur den Vor und Nachnamen. 

Wie realisiert man das? Könnte man solch eine Logik in das Modell legen?? Ich denke mit Sicherheit schon aber das kann ja dann jeder lesen wenn das Model auf der Clientseite liegt. 

Das nächste ist die Authentifizierung und Authorisation. Normalerweise habe ich das immer gegen die DB gemacht, dort konnte man Benutzer und Gruppen sehr gut verwalten und die Sache mit dem sehen und nicht sehen habe ich über Rechteverwaltung auf Views gemacht... 

Bei CDO ist aber alles anderst. Dort meldet sich der Server an der DB an, nicht der User.....

Wie ihr seht ist hier bei mir nicht alles im grünen... Kann mir einer weiterhelfen?


----------



## Wildcard (11. Mai 2009)

Ich habe mit CDO noch nichts gemacht, aber das Modell brauchst du überall dort wo es benötigt wird 
Sollte die Server Implementierung also die Java Klassen benötigen, dann brauchst du das Modell sowohl im Client, als auch im Server. Verwendet der Server hingegen dynamic EMF, dann reicht das Meta Modell. Sollte doch einfach sein das über die Dokumentation in Erfahrung zu bringen?



> Wie realisiert man das? Könnte man solch eine Logik in das Modell legen?? Ich denke mit Sicherheit schon aber das kann ja dann jeder lesen wenn das Model auf der Clientseite liegt.


Klar, kann man ins Modell legen, allerdings kann ich da nichts konkretes zu sagen da ich mich wie gesagt noch nicht mit CDO beschäftigt habe.
Aber was meinst du mit 'jeder lesen'? Du sollst doch nicht irgendwelche hard coded Rechteverwaltung im Modell Code einbauen. Der Server entscheidet was du abfragen kannst und was nicht und (sofern CDO da keine Standardmechanismen bietet) muss dein Modell nur dafür sorgen failsave zu sein, also nicht auf die Nase zu fliegen wenn ein bestimmtes Feature nicht gelesen, oder nicht geschrieben werden kann.


----------



## Waldi (12. Mai 2009)

Wildcard hat gesagt.:


> Aber was meinst du mit 'jeder lesen'? Du sollst doch nicht irgendwelche hard coded Rechteverwaltung im Modell Code einbauen.


Eben - wo und wie macht man eine Rechteverwaltung



Wildcard hat gesagt.:


> Der Server entscheidet was du abfragen kannst und was nicht und (sofern CDO da keine Standardmechanismen bietet) muss dein Modell nur dafür sorgen failsave zu sein


Genau um das geht es. Hier hört einfach mein Verstand auf. Wie kann ich das steuern? Ich habe zu diesem Thema auf der CDO Seite lediglich ein Schnipsel gefunden mit dem man sich gegen eine Datei authentifizieren kann aber nichts zum Thema wie ich bestimmte Attribute beschränke o.ä

Mit Meta Modell meinst du das *.ecore?


----------



## Wildcard (12. Mai 2009)

> Eben - wo und wie macht man eine Rechteverwaltung


Immer auf dem Server. Wie es am besten in CDO realisiert wird kann ich dir nicht beantworten, schau mal in die Newsgroup, oder stell dort eine Frage, da kann man dir sicher mehr sagen wenn es die Doku nicht hergibt.


> Genau um das geht es. Hier hört einfach mein Verstand auf. Wie kann ich das steuern? Ich habe zu diesem Thema auf der CDO Seite lediglich ein Schnipsel gefunden mit dem man sich gegen eine Datei authentifizieren kann aber nichts zum Thema wie ich bestimmte Attribute beschränke o.ä


Auch hier würde ich erst Doku, dann Eclipse Wiki, dann Newsgroup versuchen.



> Mit Meta Modell meinst du das *.ecore?


Ja


----------

