Implementierung


Im Rahmen einer Schulungsvorbereitung ist folgende kleine LDAP-Einführung entstanden, die ich in Form von drei YouTube-Videos festgehalten habe:

LDAP Tutorial 1/3 – First Steps, OpenSource und Einführung

LDAP steht für Lightweigt Directory Access Protocol und bildet in den dazu gehörenden Directory-Diensten hierarchische Datenbanken ab. Meist wird LDAP für das Speichern von Benutzerdaten verwendet. Der bekannteste quelloffene LDAP-Server ist openldap. Aber auch Microsoft hat sich mit dem ActiveDirectory LDAP gebeugt. In diesem Tutorial nutze ich der Einfachheit halber den javabasierten Verzeichnisdienst der Apache Foundation, den Apache Directory Server. Sicherlich ist OpenLDAP der ältere, stabilere und vor allem der perfomantere Verzeichnissdienst, wenn es um die Speicherung und den Zugriff von Millionen von Datensätzen geht.

Das Schöne an dem Apache-Projekt ist, dass es neben einem Server auch einen LDAP-Browser auf Basis von Eclipse mit bringt, das Apache Directory Studio.



Ein weiterer wichtiger Begriff im LDAP-Umfeld ist LDIF. LDIF steht für LDAP Interchange Format und stellt das Austauschformat für LDAP-Daten dar.

LDAP Tutorial 2/3 – Import des Bundestagsbeispiels

Im Zweiten Teil zeige ich, wie man das Bundestagsbeispiel von Stefan Zörner importiert. Mit seinem Buch LDAP für Java-Entwickler stellt er zwei LDIF-Dateien zur Verfügung, und zwar die Bundestagsdaten mit Politikern, Parteien, Fraktionen und Bildern:

Das Wesentliche an diesem Teil ist, dass man den Namensraum des LDAP-Servers, den Suffix leicht anpassen muss, damit sich die Daten ohne Weiteres importieren lassen. Dazu muss die Konfiguration des Apache Directory Servers angepasst werden, es muss eine sogenannte Partition für den Namensraum dc=bundestag,dc=de angelegt werden. Dies geschieht in der Datei server.xml der Apache Directory Server Konfiguration.



LDAP Tutorial 3/3 – Anbindung von Tomcat

Im dritten und letzten Video zeige ich, wie der javabasierte Applikationsserver Tomcat angebunden werden kann. Hierzu sind im Westenlichen zwei Dinge zu tun. Zum Einen ist in der Tomcat-Konfigurationsdatei ein JNDIRealm zu konfigurieren. Zum Anderen muss eine Struktur im LDAP-Server für die Abbildung der Rollen angelegt werden. Ebenso müssen natürlich ein paar Testdaten angelegt werden. In meinem konkreten Beispiel ist es die Bundeskanzlerin Angela Merkel und Wolfgang Schäuble, die ich zu Tomcat Managern mache. Für den ersten Teil hier die Konfiguration server.xml meiner Tomcat-Installation. Dabei bitte unbedingt darauf achten, dass sowohl die Konfigurationsdatei für den Tomcat als auch die Konfigurationsdatei für den Apache Directory Server den Namen server.xml tragen, aber unterschiedliche XML-Strukturen aufweisen! Für die Anpassung des LDAP-Servers bzgl. der Tomcat-Rollenverwaltung liefere ich hier das LDIF-File, welches die Struktur für die Rollenverteilung anlegt.


Augenblicklich halte ich eine Designpatterns-Schulung für die Telekom. Am ersten Tag haben wir die Erzeugungsmuster wie das Abstract Factory Pattern und das Factory Method Pattern, den Builder und den Singleton bearbeitet. Am zweiten Tag die Strukturmuster wie Proxy, Adapter, Flyweight und den Decorator. Morgen kommen die Verhaltensmuster wie Strategy, State, Command und Iterator. Das ganze Seminar führe ich mit dem Buch Heads First bzw. Entwurfsmuster von Kopf bis Fuß durch.

Ich muss sagen, es macht einen riesen Spaß! Erstens, die Designpatterns-Schulung durchzuführen und zweitens mit diesem tolleb Buch zu arbeiten.

Cover Entwurfsmuster, Eric & Elisabeth Freeman, GoF, gang of Four, Kathy Sierra & Bert Bates

Pfusch am Bau passiert oft. Ebenso bei IT-Projekten. Um Pfusch am Code festzustellen, bedarf es einen kleinen Blick unter die Motorhaube. Ein kleiner Code-Review lässt Bände sprechen. Böse Zungen behaupten sogar, man könne am Code erkennen, ob es sich um ein Offshoring-Projekt handelt.

Ist die Basis (der Code) bereits versaut, dann hilft auch keine solide Architektur mehr oder ein J2EE-Container. Ebenso rettet auch kein Produkt die Sache. Obschon eine J2EE oder JEE-Architektur so einiges “erzwingt” und damit einige Sauerei vermeidet, habe ich auch hier schon Abenteuerliches gesehen. Für einen kurzen Code-Review begnüge ich mich einiger weniger Prinzipien, die schnell und einfach zu prüfen sind:

  1. Wird eine Namenskonvention eingehalten ?
  2. Ist der Code dokumentiert ?
  3. Entspricht ein Klassenmodell einer Abstraktion-Konkretisierungs-Hierarchie?
  4. Beschreiben Methodennamen Verhalten?
  5. Und last but not least, werden Patterns verwendet

Und da sind wir auch schon bei einem, meiner Meinung nach, extrem wichtigen Punkt, und zwar bei den berühmten GoF-Patterns, oder in Deutsch Entwurfsmuster. Sie sind für die objektorientierte Programmierung sehr sehr wichtig.

Weil ich derzeit einige Schulung in diesem Umfeld vorbereite, habe ich ein didaktisch gutes Werk gesucht. Aus eigener Erfahrung weiß ich, dass das Vermitteln der Design Patterns nicht so einfach ist, insbesondere wenn Teilnehmer noch nicht allzuviel Programmiererfahrung haben, erscheinen die Patterns oftmals zu abstrakt. Erst kürzlich bei Amazon bestellt, habe ich nun ein Werk vorliegen, das ich wirklich empfehlen kann. Den Autoren Eric Freeman & Elisabeth Freeman, Kathy Sierra & Bert Bates ist es gelungen ein didaktisch sehr gut aufbereitetes Buch über Entwurfsmuster zu schreiben: Entwurfsmuster von Kopf bis Fuß.

Gerne lasse ich meine Kursteilnehmer immer wieder in Probleme rennen, damit Sie lernen, Alltagsschwierigkeiten lösen zu lernen. Die Autoren machen es ähnlich, indem Sie von einer Aufgabenstellung ausgehen, eine problembehaftete Lösung aufzeigen und dann die Eleganz durch die Lösung mit Entwurfsmuster aufzeigen. Sehr erwähnenswert ist, dass die Patterns nicht theoretisch abgespult werden, sondern an ganz konkreten Beispielen in Java behandelt werden.

So zeigen Sie einleitend sehr unterhaltsam, wie man mit dem Strategy-Pattern Komposition, anstatt falscher Vererbung verwendet. Dies geschieht an einer Enten-Simulation mit quakenden, quietschenden, fliegenden und nicht-fliegenden Enten. Mindestens genauso toll zeigen Sie das Decorator-Muster anhand des Kaffeehauses Sternback-Kaffee.

Insgesamt ist das Buch einfach der Hammer. In lockeren Dialogen zwischendurch behandeln die Autoren philosophische Fragen über verschiedenen Lösungsansätze und reflektieren, wann ein Muster eingesetzt werden sollte und in welchen Situationen besser nicht.