Linux-Magazin-Logo Die Zeitschrift für Linux-Professionals

Lotus Domino auf Linux, ein Überblick

Das Lotus-Prinzip

Martin Kuppinger

Lotus Domino ist als komplexe Groupware bekannt, die schon länger auch auf Linux-Servern läuft. Mittlerweile hat IBM das Produkt zu einem Application Server ausgebaut, der offene Standards unterstützt.

Die Softwarefirma Lotus, seit 1995 ein Teil von IBM, unterstützte schon früh Linux. Lotus Domino[1] gibt es seit 1999 für Pinguin-Server - neben den Plattformen IBM I-Series, AIX, Windows, Solaris und anderen. IBM positioniert Domino gegen Microsofts Exchange und nennt Migrationswege. Der Domino-Client, er hört immer noch auf den Namen Notes[2], ist leider weiterhin nur für Windows und den Apple Macintosh verfügbar. Das wird sich auch mit der soeben angekündigten Version 7, die wohl Ende 2004 oder Anfang 2005 auf den Markt kommt, nicht ändern.

Allerdings hat Lotus doch einiges getan, um wesentliche Funktionen von Domino auch von Linux aus nutzbar zu machen. So gibt es mit Domino Web Access einen guten Web-basierten E-Mail-Client. Die aktuelle Version 6.5 unterstützt nun auch Mozilla unter Linux.

Lotus Domino war immer eine relativ offene Umgebung, in der man eigene Anwendungen entwickeln konnte. Anfangs entstanden so Groupware-Addons, bald kamen auch Produkte für die Büroorganisation und anderes hinzu. Ausgehend von einer an Lotus 1-2-3 angelehnten Formelsprache hatte Lotus zunächst mit Lotusscript eine (Visual-)Basic-ähnliche Sprache entwickelt. Ab Release 5 kam Java hinzu, ein Trend, der sich mit Notes/Domino 6 noch verstärkt.

Gleichzeitig verbesserte sich das Zusammenspiel mit dem IBM Websphere Application Server und anderen Anwendungsservern, da für Java-Anwendungen spezifische Domino-Funktionen nutzbar wurden. Das erleichtert einerseits die Verwaltung von Dokumenten und die Integration mit anderen Systemen im Unternehmen.

Lotus Domino 6.5 Server

Hersteller: IBM

Internet: [http://www.lotus.de]

Gattung: Groupware- und Application- Server

Lizenz: Closed Source

Domino Enterprise pro CPU inkl. 1 Jahr Support ca. 3500 Euro

Domino Messaging pro CPU inkl. 1 Jahr Support ca. 1350 Euro

Web Access Collaboration pro User inkl. 1 Jahr Support ca. 130 Euro

Web Access Messaging pro User inkl. 1 Jahr Support ca. 83 Euro

Selbst ein Application Server

Überhaupt ist Lotus Domino heute nicht mehr nur eine Groupware, sondern mehr eine Application-Server-Plattform für kollaborative Anwendungen. Wenn man den Domino-Server in Funktionsbereiche grob unterteilt, dann ergibt sich folgendes Bild:

Sowohl die Java-Klassen als auch die XML-Schnittstellen sind stark Dokumenten-orientiert. Damit bietet sich das Ganze vor allem für Anwendungen an, die entweder Basisfunktionen wie etwa Maildienste nutzen oder in denen Dokumente eine wichtige Rolle spielen - wie es eben bei kollaborativen Anwendungen der Fall ist. Hier ist die Entwicklung von Anwendungen mit Domino oft viel einfacher als mit J2EE-Application-Servern und Datenbanken.

Java ist für Domino die Sprache Nummer eins

Obwohl Lotusscript gleichermaßen plattformneutral ist, macht Java als Programmiersprache für Domino-Anwendungen mitlerweile die bessere Figur. Zum einen kann Java nämlich neben den Klassen von Domino auch externe Java-Klassen ansprechen. Zum anderen sind diese Klassen - auch als Domino Objects for Java bezeichnet - von externen Java-Anwendungen nutzbar. Damit lassen sich zur Freude jedes Anwendungsentwicklers Domino-Funktionen in andere Applikationen einbauen. Besonders eng gelingt die Integration - wenig überraschend - mit IBMs eigenem Applikation Server Websphere, insbesondere bei der Authentifizierung.

Die Java-Unterstützung - zu ihr zählen auch Servlets in Webanwendungen - hat zudem den Vorteil, dass sich Java-Entwicklern relativ leicht die Fähigkeiten von Lotus Domino erschließen. Wer sich einmal mit dem Domino Object Model (DOM - wie so viele Objektmodelle) vertraut gemacht hat, kann leicht auf die Datenbanken und die darin enthaltenen Dokumente zugreifen. Da Domino keine relationale Datenbank ist, hat es zwar ein paar Eigenheiten, die Zugriffe folgen jedoch immer demselben, verhältnismäßig einsichtigen Raster.

XML für Lotusscript und Java

XML greift auch bei Domino immer weiter um sich. In diesem Bereich sind Lotusscript- und Java-Klassen nicht weitgehend identisch. Während es bei Lotusscript mit »DXLImporter« und »DXLExporter« zwei Klassen für den XML-Im- und Export entsprechend der Domino-DTD gibt (DXL steht für Domino XML Language), kennt die Java-Implementierung in verschiedenen Java-Klassen wie »Document« für die Dokumente in Domino-Datenbanken zusätzliche Methoden: Bei Document ist es »generateXML«, die XML erzeugt.

Datenbanken nach XML konvertieren

Während sich bei Lotusscript dann spezielle Klassen für XSLT, DOM und SAX finden, liefert Lotus mit Domino für die Java-Programmierung Standard-Packages wie Org.W3C.DOM und Org.XML.SAX. Entscheidender in diesem Zusammenhang aber ist, dass praktisch alle Informationen aus Domino-Datenbanken - einschließlich vieler interner zu den Datenbankstrukturen, ACLs und so weiter - in XML importierbar und aus XML wieder in Domino-Datenbanken umsetzbar sind.

Das bildet einerseits die Basis für den Informationsaustausch mit anderen Systemen und andererseits für die Realisierung von Webservices. Letztere muss der Entwickler allerdings noch größtenteils manuell implementieren, die volle Unterstützung ist erst für die nächste Domino-Release vorgesehen.

Enterprise-Integration

Wichtig ist Domino als Schnittstelle zu anderen Datenquellen. Die LC-API (Lotus Connector API) stellt eine standardisierte Schnittstelle zu Connectoren. Lotus und andere Firmen bieten Connectoren für alle wichtigen Datenbanken und Enterprise-Systeme, aber auch zu Tabellen und Textdateien an. Die Schnittstellen sind per DECS (Domino Enterprise Connection Services) oder über LEI (Lotus Enterprise Integrator) nutzbar. Letzterer wird seit der Version 6.5 auch unter Linux unterstützt. Beide Produkte sind in der Administration ähnlich. Der LEI ist aber das leistungsfähigere Produkt, sowohl bei der Programmierbarkeit als auch bei der Skalierbarkeit.

Über diese Schnittstellen kann eine Domino-Anwendung Informationen aus Datenbanken auslesen und in Dokumente aufnehmen. Sie kann beispielsweise Dokumente mit aktuellen Verkaufszahlen automatisch erzeugen, wobei es möglich ist, die Informationen aus den Datenquellen real time zu übernehmen, also beim Öffnen der jeweiligen Dokumente zu aktualisieren. Der Reiz von DECS und LEI im Vergleich zum Direktzugriff auf die Datenquellen liegt sowohl in der Standardisierung des Zugriffs auf unterschiedlichste Datenquellen als auch in der Einfachheit.

Administration von Domino-Linux-Servern

Domino in der aktuellen Release 6.5 ist ein leistungsfähiger Groupware- und Mail-Server (auch) auf Linux-Basis. Offiziell unterstützt Lotus den Red Hat Advanced Server 2.1 (mit einer x86-CPU) sowie United Linux 1.0 SP2 (x86 und Z-Series). Die Installation ist einfach, wobei der erste Teil über ein Skript erfolgt (siehe Abbildung 1). Der wesentliche Teil der Basiskonfiguration läuft über eine Java-Anwendung (Abbildung 2). IBM stellt ein umfängliches Redbook bereit, das die Teilaspekte von Domino auf Linux-Servern erläutert[3].

Abbildung 1: Der erste Teil der Installation von Domino auf Linux erfolgt über ein skriptgesteuertes Installationsprogramm.

Abbildung 2: Wesentliche Teile der Basiskonfiguration eines Domino-Servers erfolgen über eine Java-Anwendung, die auf allen Plattformen identisch ist.

Interessant bei Domino sind die Entwicklungen bei der Administration: Die zentrale Software, der Domino Administrator, ist eine Windows-Anwendung. Seit Domino 6 gibt es aber neben der Konsole (Abbildung 3), die den Domino-Server zumindest teilweise über die Befehlszeile steuern kann, eine Web-basierte Variante des Domino Administrators.

Für sie muss der Admin den HTTP-Stack von Domino bei der Installation einrichten. Ist die Voraussetzung erfüllt, stehen alle wesentlichen Verwaltungsfunktionen über den Browser zur Verfügung - und die Windows-Software ist überflüssig.

Abbildung 3: Die Java-basierte Konsole ist eine der Administrationsschnittstellen für Domino auf Linux-Systemen.

Bleibt noch die Anwendungsentwicklung, für die der Domino Designer unverzichtbar ist - aber den gibt es nur für Windows. Auch das Anlegen der Grundstrukturen von Domino-Datenbanken ist nur mit diesem Tool effizient zu bewerkstelligen. Später sind externe Java-Anwendungen realisierbar, die auf die Datenbanken zugreifen.

Linux-Clients kommen ohne Notes aus

Der eigentliche Notes-Client läuft wie erwähnt nur auf Windows und Mac OS. Wer Linux nutzt, kann mit Domino-Webapplikationen oder Java-Anwendungen auf die Domino Objects for Java zugreifen. Ab Domino 6.5 funktioniert der Domino Web Access, damit stehen Mail- und Kalenderfunktionen per Mozilla bereit. Diese Client-Variante ist zudem sauber implementiert und beachtlich funktional. In diesen Teil von Notes und Domino hat Lotus in den letzten beiden Jahren viel Arbeit investiert.

Fazit: Lotus Domino entwickelt sich zusehends strukturell weg vom monolithischen Block hin zu Modulen und offenen Schnittstellen. Externe Java-Anwendungen können recht komfortabel die Funktionen von Domino nutzen. Dass sich Lotus in Sachen Serversoftware deutlich zu Linux bekennt, kann man auch als wachsende Vorliebe zu mehr Transparenz deuten. Mit der aktuellen Version 6.5 kamen so LEI auf Linux und die Unterstützung von Mozilla für den Domino Web Access neu hinzu.

Wer eine leistungsfähige Plattform für umfassende Mail- und Scheduling-Dienste einerseits und eine Anwendungsumgebung für Dokumenten-orientierte Anwendungen andererseits benötigt, sollte seine vielleicht vorhandenen Vorurteile gegenüber Domino beiseite schieben und sich genauer anschauen, was aus dem Produkt in den letzten Jahren geworden ist. Positive Überraschungen sind wahrscheinlich. (jk)

Infos

[1] Lotus Domino: [http://www.lotus.com/products/product4.nsf/wdocs/dominohomepage]

[2] Lotus Notes: [http://www.lotus.com/products/product4.nsf/wdocs/noteshomepage]

[3] IBM-Redbook zu Domino auf Linux-Servern: [http://www.redbooks.ibm.com/redbooks/SG246835.html]

Der Autor

Martin Kuppinger hat sich auf das Thema Identity Management spezialisiert. Er hat im Laufe der vergangenen Jahre viele Artikel insbesondere zu diesem Thema sowie zu Novell- und Windows-Themen verfasst und zudem gut 40 IT-Fachbücher geschrieben.