RSS

Monthly Archives: February 2012

N-Tier Struktur mit IBM Domino

In der modernen Software Architektur ist das Schichtenmodell (N-Tier) Standard und weit verbreitet. Die Vorteile liegen auf der Hand, da die Trennung von Präsentation, Logik und Datenhaltung auch eine horizontale Entwicklung begünstigt.
Die traditionelle Lotus Notes / Domino Entwicklung hat die Trennung von Präsentation, Logik und Datenhaltung bis jetzt nicht gefördert. Durch das Fast-Prototyping wurden sogar bewusst die Schichten übersprungen und die vertikale Entwicklung, sowie knappe Budgets haben eine saubere Trennung der Schichten stark behindert. Die logische Konsequenz war, dass Domino den Ruf bekam, nicht modern zu sein, keine N-Tier Struktur zu unterstützen. Automatisch wurde somit Domino von Architekten, die N-Tier als Muss-Anforderung definierten, gestrichen. Und dies zu Unrecht. Ich habe während meiner Programmiererzeit schon viele Anwendungen gesehen, die keine N-Tier Struktur besassen, aber auf Plattformen liefen, die als N-Tier Plattformen galten. Genau so habe ich einige Domino Anwendungen gesehen, die das N-Tier Architektur Prinzip passgenau umgesetzt hatten.
Mit dem neuen Relese 8.5.3 geht aber IBM konsequent den Schritt weiter, um diesen Missstand zu bekämpfen. XPages impliziert eigentlich eine N-Tier Struktur. Es ist jetzt nicht nur möglich Applikationen nach den N-Tier Architektur Prinzipien auf zu bauen, nein es ist sogar gewünscht.

Aber wie erreichen wir das? Hier einige Ideen dazu:

1. Verstehen, was Präsentation, Businesslogik und Datenhaltung bedeutet
2. Horizontale Entwicklung fördern
3. Definierte Schnittstellen zum Datenaustausch zwischen den Ebenen nutzen (zb. Präsentation zu Logik via JSON/REST, Logik zu NSF Store via NotesAPI)

Und vor allem darüber sprechen (und zwar mit dem neuen Vocabular)

 
Leave a comment

Posted by on February 18, 2012 in Domino, Java, XPages

 

Tags: , ,

IBM Domino ist in der Neuzeit angekommen

An einem Kurs für Fachvorgesetzte von Auszubildenden habe ich folgenden Satz aufgeschnappt und mir verinnerlicht: “Ihr müsst Euren Absolventen keine Prüfungsaufgabe in Form von ‘vergleiche Programmiersprache A mit B und bewerte welche besser ist’ stellen. Das Resultat ist von Anfang an klar”. Gespannt hatte ich auf die Antwort gewartet. Nach einer dramatischen Pause, dann die Erlösung: “Es ist immer die Sprache, die der Absolvent am Besten beherrscht”.
Eigentlich einleuchtend, und trotzdem absolut signifikant für die folgenden Ausführungen. Mir ist bewusst, dass ich vielen Lotus Notes Jüngern der alten Garde jetzt ziemlich Kopfschmerzen bereite, aber ich habe gelernt, dass der Blick in den Spiegel dann notwendig ist, wenn es nicht gut läuft.
Blicken wir ganz kurz in den Spiegel. Der Markt im Lotus Notes Sektor ist abnehmend. Neue, junge Entwickler zu finden, ist extrem schwierig und viele Verkaufsargumente für Lotus Notes Projekte sind hinfällig. Und wo liegt das Problem? “Schlechtes IBM Marketing” höre ich immer wieder, oder “Feature X, Funktion Y wurde nicht realisiert”. Nein das Problem ist leider 30cm vom Spiegel entfernt. Wir haben verpasst, dass die einmalige Sonderstellung von Lotus Notes / Domino von der Zukunft überholt wurde. Wir hatten über DesignPattern, MVC und 3 Tier Strukturen gelacht. Uns über Datenbankanbindungen amüsiert, Versionsabhängikeiten bewitzelt und uns hinter der Einmaligkeit von Lotus Notes versteckt, wenn es um neuartige Programmierung ging.
Und damit ist ein grosse Graben entstanden. Welche Programmiersprache ist die Beste? Die die ich gerade am Besten kann. An den Universitäten und Berufsschulen wurde JAVA, PHP und Integrationen mit mySQL unterrichtet. Junge Menschen lernten von der Basis her objektorientiert Programmieren, Businesslogik vom PresentationLayer zu trennen und das Thema Datenhaltung war in den Händen der RDBMS Fanatiker. Anstelle sich dieser Realität zu stellen, und das gute an den Denkstrukturen zu adaptieren, haben wir es als “Nicht Relevant” abgetan…. bis jetzt!

Aber der Domino Server ist in der Neuzeit angekommen. Vermutungen, die ich hatte, wurden an der Lotussphere bestätigt. Liebe Freunde, der Domino Server ist ein toller JAVA Application Server geworden, ohne die Schwerfälligkeit von Datenbankanbindung, komplexer Administration und unhandlichem Deployment. Nein, einfach ein RockSolid Server, der ein OSGi Layer hat, mit XPages ein auf JSF basierendes Presentation Framework, die Businesslogik kann in der Applikation direkt als JAVA Klassen abgelegt werden und dazu noch der beste dokumentorientierte Store, den man sich vorstellen kann.

Wenn wir jetzt noch das Vocabular der Neuzeit lernen und unseren Kunden selbstsicher die neuartige Architektur, sowie die Zukunftssicherheit des gesamten Framework erklären können, wird diese Plattform wieder hochattraktiv für junge, motivierte und innovative Entwickler. Und welcher Server ist der beste Server? Natürlich der Server, den ich am besten kenne.

Und eigentlich müsste das der Domino Server sein:
– Userverwaltung, Rollen und Rechtekonzept: DONE und bis auf Datenlayerimplementiert
– Anbindung an Storage: DONE (inkl. genialer Suchenginge)
– 3 Tier Struktur: Presentationlayer: XPages, BusinessLogik: JAVA, Storage: NSF
– Graphischer Desigern: Vorhanden.

Die Liste der Killerfeatures könnte ich noch erweitern (zb. offene Standards), aber passen wir das Vocabular an und sprechen wir die Sprache der Informatikmassen.

 
Leave a comment

Posted by on February 12, 2012 in Domino, Java, XPages