Domino Gruppen Management mit Hilfe von Webservices und einer Vaadin Applikation

Letzte Woche habe ich geschrieben, dass ich mich mit dem Vaadin Framework ein wenig auseinandersetzen wollte. Mittlerweile bin ich schon so weit, dass ich meine erste Applikation für einen Kunden beinahe fertig habe. Das war nur eine kleine Applikation, die einige Daten aus einer Domino Applikation darstellt und einen Status per Webservice wieder zurück in die Applikation schreiben kann. Das war nichts großartiges, hat mir aber Gelegenheit gegeben, mich mit der Materie näher zu befassen. Das Ergebnis hat mich überzeugt, sodass wir auch gleich die nächste Anforderung über diesen Weg umsetzen werden.

Das Ziel

Wir arbeiten für einen Kunden, der momentan weg von Notes migriert (wie so viele). Da eine komplette Abschaltung jedoch vermutlich noch Jahre oder Jahrzehnte dauern wird, benötigt der Kunde eine Möglichkeit, die bislang vorhandene Lösung um Gruppen im Domino Adressbuch zu verwalten, durch eine Self Service Web Applikation zu ersetzen.

Die Idee

Um möglichst flexibel für zukünftige Szenarien zu sein, wollten wir die Applikation Zweigeteilt implementieren. Der erste Teil besteht aus einer Domino Applikation, die die eigentliche Verwaltung der Gruppen übernimmt. Also das eigentliche ändern der Gruppen im Adressbuch, Validierung, Rechte Verwaltung, etc. Diese Funktionalität soll per Webservice zur Verfügung gestellt werden um sie aus externen Systemen komfortabel bedienen zu können. Die Schnittstelle soll dabei aber einfach genug sein, um sie verwenden zu können, ohne zu viel Know-How über das Domino Backend haben zu müssen. Es sollen also z.B. automatisch verschachtelte Gruppen erzeugt werden, wenn wir an irgendwelche Grenzen laufen, ohne dass ich selbst an so etwas denken muss. Ebenso sollten die Gruppen Mitglieder anhand ihrer SMTP Adresse verwaltet werden können, ohne dass der Vollhierarchische Notes Name bekannt sein muss.

Für diese Schnittstelle entwickeln wir dann auch ein unabhängiges Web Frontend, um die Gruppen Verwaltung komplett in einem Browser vornehmen zu können. Hierfür verwenden wir eine Standalone Vaadin Applikation. Die Vaadin Applikation könnte man auch als OSGi Plugin auf den Domino Server installieren, aber die eigenständige Variante befreit uns von jeglicher Abhängigkeit von Server Versionen, Zugriffsrechten oder ähnlichem. Die Authentifizierung wird direkt gegen das Active Directory gemacht, da zukünftig nichtmehr jeder Mitarbeiter auch automatisch einen Notes Account erhalten wird. Die Funktionalität der Gruppenverwaltung (primär für Applikationen) muß aber jedem zur Verfügung stehen.

Ein ähnliches Konzept haben wir für unseren User Manager verwendet und der hat sich schon bei vielen Kunden bewährt.

Vorteile

Die MVC (Model View Controller) ähnliche Trennung von Funktion und Interface bietet einige Vorteile. Zukünftig könnte die Gruppenverwaltung auch über weitere Prozesse oder Workflow Systeme angesprochen werden, da wir über standardisierte Webservice Schnittstellen kommunizieren. Ebenso könnte das Web Frontend weitere Aufgaben übernehmen, in dem wir dort weitere Schnittstellen zur Verwaltung weiterer Systeme integrieren.

Die Umsetzung

Ich kann hier leider nicht die ganze Applikation veröffentlichen, werde aber versuchen im Verlauf der nächsten Tage/Wochen den Fortschritt, die Erfahrungen und einige Code Beispiele zu posten.

Advertisements
This entry was posted in Development, IBM Notes/Domino, Vaadin and tagged , , , . Bookmark the permalink.