HCL Notes

E-Mail-basierte, firmeninterne Kollaborationssoftware
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 29. August 2006 um 16:21 Uhr durch 84.183.100.225 (Diskussion) (Protokolle). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Das ursprünglich Lotus Notes genannte Produkt wurde im Zuge der Eingliederung von Lotus in IBM auf Serverseite umgetauft in Lotus Domino. Auch die Datenbanken werden von IBM nur noch als Domino-Datenbanken bezeichnet. Lediglich die Client-Software für gewöhnliche Nutzer (nicht jedoch jene für Entwickler und Administratoren) trägt noch den Namen Lotus Notes.

Im Folgenden ist jedoch, den Gewohnheiten vieler Kunden entsprechend, weiterhin von Notes-Datenbanken usw. die Rede.

Lotus Notes ist ein dokumentenorientiertes, verteiltes Datenbanksystem mit sehr enger E-Mail-Anbindung. Es wurde ab 1984 von Iris Associates entwickelt, einer späteren Tochterfirma von Lotus resp. von IBM. Lotus Notes gehört in die Kategorie Groupware und wird von ca. 120 Mio. Anwendern (Stand 2005, Angaben von IBM) weltweit genutzt.

Lotus Notes ist wie andere Datenbankmanagementsysteme (DBMS) eine Plattform für die Entwicklung von Anwendungen. Die Anwendungen E-Mail (inkl. Kalender, Aufgabenliste), E-Diskussion, „TeamRoom“ und mehrere andere Anwendungen sind im Lieferumfang inbegriffen. Verschiedene Sprachen können für die Anwendungsentwicklung eingesetzt werden. Wichtigste Sprachen sind die Lotus-Notes-Formelsprache (sog. @-Funktionen und @-Commands), LotusScript (sehr ähnlich Visual Basic), sowie Java. Lotus-Notes-Anwendungen sind Client-Server-Anwendungen (Client-Server-System). Dabei werden – vereinfacht dargestellt – die Daten auf dem Lotus Domino-Server (seit der Version 4.5 wird der Server als Lotus Domino bezeichnet) gespeichert und die Benutzer-Interaktionen auf dem Lotus Notes-Client durchgeführt. Immer häufiger kommt auch der Internet-Browser als Client zum Einsatz.

  • Die aktuelle Version trägt die Nummer 7.0.1 (Stand Januar 2006), für den Domino Server gibt es zusätzlich das Fixpack 1 (FP1). Die ältere Version 6.5.x wird derzeit noch weiter (durch Support und Updates) unterstützt, für die Version 6.0.x ist der End of Service (EOS) auf den 30.April 2007 datiert. Die Version 5 wird bereits seit 30. September 2005 nicht mehr unterstützt, der Support wurde eingestellt.

Merkmale

  1. Replikation von Notes-Datenbanken zwischen Servern über verschiedenste Protokolle sowie Replikation von Notes-Datenbanken zwischen Notes-Client und Domino-Server: Dabei werden die verschiedenen Instanzen einer verteilten Datenbank automatisch abgeglichen. Da dies auch über sehr langsame Verbindungen (z. B. 9600 bit/s) funktioniert, eignet sich Notes auch für den Einsatz in geographischen Gebieten, die noch nicht durch schnelle Kommunikationsleitungen erschlossen sind.
  2. Rapid Application Development & Deployment (RADD) mittels Lotus Domino Designer: Durch den Einsatz von Viertgenerationssprachen (4GL) können Anwendungen mit geringem Aufwand entwickelt und gewartet werden, und mittels Replikation werden nicht nur Daten, sondern auch Design-Elemente (Masken, Views, Agenten etc.) auf alle Server und Clients automatisch verteilt. Diese Fähigkeit senkt Entwicklungs-, Wartungs- und Administrationskosten im Vergleich mit konventionellen Entwicklungsumgebungen.
  3. Volle Offline-Funktionalität: Eine Notes-Anwendung, die auf einem Domino-Server betrieben wird, kann i.d.R. vollständig identisch auf einem Laptop benutzt werden, der offline betrieben wird, also nicht mit einem Server verbunden ist (z. B. in der Bahn, im Flugzeug oder im Feld).
  4. Nicht-relationales Server-DBMS mit enger E-Mail-Integration, integrierter Benutzerverwaltung (mit und zahlreichen Services (HTTP, HTTPS, SMTP, LDAP, POP3, IMAP4 etc., bis zur Version 5 auch NNTP)
  5. Integrierte Public-Key-Infrastruktur (PKI): Ein Notes-Benutzer benötigt für die Arbeit eine Notes-User-ID. Diese enthält Zertifikate, einen Öffentlichen Schlüssel, einen dazu passenden Privaten Schlüssel und gegebenenfalls Schlüssel zur symmetrischen Verschlüsselung. Dasselbe gilt für Server. Die im Allgemeinen bei PKI aufwändige Administration der IDs respektive der öffentlichen Schlüssel in Verzeichnissen ist bei Lotus Notes/Domino im LDAP-fähigen Domino Directory bereits enthalten.

Geschichte

Anfang der 70er Jahre begann Prof. Wooley am CERL (Computer Education Research Laboratory) der University of Illinois mit den damals neuen CRT-Bildschirmen (CRT = Cathode Ray Tube) Experimente durchzuführen. Er und sein Team entwickelten eine Anwendung, die klassische Notizzettel elektronisch nachbildete. Sie nannten das System „Notes“.

1984, zehn Jahre später, gründeten drei Absolventen (Ray Ozzie, Ken Lawell und Tim Halvorsen) die Firma „Iris Associates“ in Boston. Die Firma war klein und pflegte gute Beziehungen zur zwei Jahre älteren Firma „Lotus“ unter der Leitung von Jim Manzi. Ray Ozzie wirkte als externer Mitarbeiter wesentlich bei der Entwicklung von „Lotus Symphony“ mit. Die drei Gründer von Iris brachten ihre Erfahrungen vom CERL mit. Ihr Ziel war eine Windows-Version von „Notes“. 1984 brachte MicrosoftWindows“ auf den Markt und Notes lief darauf als eine der ersten Windows-Anwendungen. Bis 1991 wurde Notes nur im Rahmen von Projekten eingesetzt und war nicht offiziell erhältlich. Lotus kaufte 1988 Iris. 1996 kaufte IBM die Firma Lotus für rund $4 Mrd., die bis damals größte gezahlte Summe für ein Software-Unternehmen. Hauptgrund für diesen hohen Preis dürfte das mittlerweile zum Hauptprodukt avancierte "Lotus Notes" gewesen sein. Im Jahre 2001 schließlich hat IBM die Firma Iris Associates restlos in die IBM-Organisation intergriert ([1]). Ray Ozzie hat mittlerweile das Produkt Groove ([2]) entwickelt und Microsoft hat sich signifikant an der Firma Groove Networks beteiligt.

Siehe auch: „The history of Notes and Domino“

Funktionen

Grundsätzlich sind umfangreiche Datenbanken mit artikelförmigem Inhalt möglich. Es lassen sich beliebige Dateianhänge mit einlagern. Standardanwendungen im Notes sind eine Mail-Datenbank sowie Kalender und Aufgaben-Verwaltung. In der Kalender-Anwendung können Termine verwaltet und Einladungen an Teilnehmer verschickt werden. Ferner ist es möglich die freien Zeiten der Teilnehmer zu prüfen, sowie Räume und Geräte (zum Beispiel Projektor, Flipchart, Firmenwagen) zu reservieren. Es gibt weitere Datenbankvorlagen (Schablonen) wie zum Beispiel Diskussions- und Teamdatenbanken. Alle Datenbanken können über den Notes-Client und Web-Browser bedient werden. Die Entwicklung von eigenen Anwendungen ist mit dem Domino Designer möglich. Daten und Gestaltung einer Anwendung werden in einer gemeinsamen Datenbank gespeichert. Alle Inhalte dieser Datenbank (Design und Daten) werden in so genannten Dokumenten gespeichert, daher auch der Name „Notes“ für „viele Dokumente“. Diese Eigenschaft ist eine der markantesten, da alles ein Dokument ist.

Lotus-Notes-Datenbanken

Lotus-Notes-Datenbanken sind wie oben beschrieben im Gegensatz zu relationalen Datenbanken Dokumenten-basierte Datenbanken. Das heißt Daten und Gestaltungselemente werden in Form von Dokumenten abgelegt, wobei jedes Dokument eine eindeutige ID trägt. Ein Dokument kann mehrere Felder (items) unterschiedlicher Typen (zum Beispiel Text oder Zahl) haben. Der Inhalt ist von der Anzeige entkoppelt. Zum Anzeigen und Ändern von Dateninhalten der Dokumente werden Masken (forms) verwendet, die frei gestaltet werden können. In so genannten Ansichten (views) können Listen von Dokumenten aus dem Datenbestand gefiltert und tabellarisch angezeigt werden. Mittels selbstgeschriebener Programme (agents) können Aktionen ereignis- oder zeitgesteuert ausgeführt werden. Dateinamen von Lotus-Notes-Datenbanken enden mit dem Suffix .NSF „Notes storage facility“. Datenbankvorlagen (Schablonen) enden mit dem Suffix .NTF „Notes template file“.

Eine Datenbank hat folgende Identifikationsmerkmale:

  • der Datenbanktitel: für den Anwender sichtbar
  • der Dateiname: je nach darunterliegendem Dateisystem
  • die Replik-ID: eine 16 Hex-Zeichen lange Zahl, die beim Erstellen der Datenbank zufällig generiert wird

Unterschiede zu anderen Datenbanksystemen: Notes-Datenbanken sind nicht-relationale Datenbanken. Sie folgen einem Dokument- und nicht einem Datensatzmodell. Dokumente können eine hierarchische Beziehung zueinander haben (Main – Response – ResponseToResponse). Relationen werden in Notes-Datenbanken programmatisch hergestellt, wobei eine übliche Methode die Verwendung der @DocumentUniqueID ist, die auch für die hierarchische Verbindung Verwendung findet. Felder können Mehrfachwerte enthalten, was einer Master-Detail-Tabelle in einem RDBMS entspricht. Andere Systeme mit Mehrfachwerten sind zum Beispiel FileMaker oder Adabas.

Notes speichert auch alle Design-Elemente in Notes-Dokumenten. Während das bei RDBMS für das Datenschema und die Ansichten ebenso üblich ist, speichert Notes auch Masken (forms) und Ressourcen (css, jpg, java etc.). Alle Design-Elemente sind signiert und erlauben so eine feingliedrige Ausführungskontrolle.

Notes-Dokumente sind nicht an Datenbanktabellen gebunden. Somit können Notes-Dokumente beliebige Felder enthalten. Eine Änderung am Masken- oder Ansichtenlayout hat keine Auswirkung auf gespeicherte Daten. IBM QuickPlace verwendet zum Beispiel Notes-Datenbanken ohne Notes-Front-End (das heißt keine Masken).

Notes-Ansichten (views) haben einen physikalischen Index (Views in RDBMS sind normalerweise „nur“ Abfragedefinitionen ohne Index). Dies hat den Vorteil des schnellen Zugriffs und den Nachteil des Ressourcen- (Index task) und Platz-Verbrauches.

Seit Version 7 von Lotus Notes hat IBM die Unterstützung von IBM DB/2 als Speichermedium für Notes-Datenbanken implementiert, das es erlaubt relationale Sichten aus DB/2 wie Notes-Ansichten (und umgekehrt) zu nutzen.

Eine weitere Besonderheit ist die Unterstützung von RichText als Feldtyp. Hier können formatierter Text, Datei-Anhänge oder eingebettete Objekte (Bilder, OLE-Objekte) gespeichert werden.

Notes-Dokumente und Design-Elemente lassen sich mit Bordmitteln von/nach XML konvertieren, welches einem von IBM als DTD-Schema veröffentlichten Standard entspricht (DXL).

Zwischen zwei Rechnern werden ausschließlich Datenbanken repliziert, die dieselbe Replik-ID haben (die anderen Identifikationsmerkmale Datenbanktitel und Dateiname spielen hier keine Rolle) – was zum Beispiel den angenehmen Nebeneffekt hat, dass ein Domino-Server-Administrator die Datenbanken beliebig in Unterverzeichnisse verschieben kann, ohne dass die Replikationsfähigkeit beeinträchtigt wird. Die Pfadangabe für die Datenbank muss in den Verbindungsdokumenten, die für die periodische automatische Replikation eingerichtet werden, nur für den Quellserver geändert werden; die Pfade der Zielserver sind jeweils unerheblich.

Der Domino Server

Der Lotus Domino Server liefert mehrere Dienste. Er ist zunächst ein Datenbank-Server, der Notes-Dokumente an die Notes-Clients liefert. Dann gibt es einen Router-Server-Task (Task „router“), der sowohl das native Domino Routing-Protokoll NRPC (Notes Remote Procedure Call) als auch das Simple Mail Transport Protokoll (SMTP) zum Senden von Mails ins Internet beherrscht. Der dazugehörige SMTP-Servertask (Task „smtp“) dagegen sorgt dafür, daß Internet Mails auf diesem Server empfangen werden können.

Ferner gehört auch ein HTTP-Server zum Lieferumfang (Task „http“) sowie weitere Server wie z. B. IMAP, POP3, LDAP. In den verschiedenen Datenbanken werden die Daten gemeinsam mit der Anwendungslogik und der Benutzeroberfläche abgelegt. Im Lieferumfang sind schon mehrere Anwendungen mit dabei: unter anderem E-Mail, Kalender, Aufgabenliste und Adressverwaltung.

Im Gegensatz zu anderen Datenbankensystemen können die Datenbanken auch ohne Verbindung zum Lotus Domino Server, nur mit dem Lotus Notes Client, genutzt und bearbeitet werden. Sobald wieder eine Verbindung zwischen Client und Server besteht werden die Änderungen an den Daten je nach Konfiguration automatisch – gemäß den definierten Verbindungsintervallen – oder auch manuell abgeglichen.

Dieses Konzept ist aus der Theorie der verteilten Datenbanken bekannt als Replikation (Datenverarbeitung). Wenn ein Notes-Client (oder ein Domino-Server) mit einem Domino-Server Datenbanken repliziert, werden nur neue und geänderte Dokumente übertragen. Bei Bedarf kann auch nur ein Teil der Gesamtdaten repliziert werden, dies kann dann über die Replizierparameter für jede Datenbank eingestellt werden (selektive Replikation).

Bei Organisationen, die nur „dünne“ Kommunikationsleitungen (z. B. analoge Telefon-Modems, 2.4 bis 56 kbit/s) haben, können die Replikationszeitpunkte auf Niedertarifzeiten (vor allem Nachts) gelegt werden und relativ große Datenmengen günstig und ohne die Anwender zu behindern übertragen werden.

Arbeiten „off-line“: Der Einsatz von Lotus Domino lohnt dann, wenn Mitarbeiter auch unterwegs einen gesicherten Zugriff auf wichtige Datenbanken benötigen.

Der Lotus Domino Server ist für eine Reihe von Plattformen wie z. B. Windows, Linux, AIX, Sun Solaris, AS/400, z/OS und zLinux verfügbar.

Domino-Server können in Domino-Clustern betrieben werden. Dabei werden zwei bis maximal sechs Domino-Server einander zugewiesen. Das darunterliegende Betriebssystem spielt dabei keine Rolle, so ist es möglich, dass ein Domino-Server auf Windows mit einem anderen Domino-Server auf AIX einen Domino-Cluster bilden. Ein Domino-Cluster kann aus Servern verschiedener Versionen aufgebaut werden. Domino-Cluster haben nichts mit Clustern auf Betriebssystemebene zu tun. Bei Ausfall des einen Domino-Servers übernimmt der andere Domino-Server seine User Sessions. Cluster werden eingesetzt, um die Verfügbarkeit und Leistungsfähigkeit zu maximieren (bei einem Serverausfall bzw. zur Lastverteilung).

Protokolle

45646161 Ein Lotus Notes-Client kommuniziert mit einem Lotus Domino-Server über NRPC (Notes-RPC, Port 1352), einer Variante von RPC. NRPC kann über TCP/IP, NETBIOS und andere Protokolle geroutet werden. Lotus hat auch ein fehlertolerantes Protokoll für die Kommunikation über analoge Modems entwickelt (X.PC).

Der Notes Client

Für die Arbeit mit dem Domino Server gibt es verschiedene Clients:

  1. Lotus Notes – damit arbeitet der Anwender
  2. Lotus Domino Designer – damit arbeitet der Anwendungsentwickler
  3. Lotus Domino Administrator – damit arbeitet der Administrator.
  4. IBM Lotus Domino Web Access (DWA) (ehemalige Bezeichnung iNotes WebAccess) läuft im Webbrowser und kann (konfigurierbar) Active-X verwenden. JAVA wird in DWA nur verwendet, wenn Instant Messaging (SameTime) verwendet wird.
  5. IBM Lotus Domino WebMail – läuft im Webbrowser und bietet eine geringere Funktionalität als DWA. Webmail verwendet JAVA und ist für jene Anwender gedacht, deren Browser nicht mit DWA arbeiten.
  6. IBM Lotus Domino Access für Microsoft Outlook (DAMO) – ein Zusatzprogram für Microsoft Outlook um auf den Domino Server zuzugreifen.
  7. IBM DOLS (Domino Offlice Services) - stellt einen "Quasi-Notes Client" via Browser bereit.


Der Lotus Notes Client existiert als nativer Client für die Plattformen Windows Mac OS 9/X und . Unter Linux kann die Windows Software mit Wine emuliert werden. Seit dem 24. Juli gibt es auch einen nativen Lotus Notes Client für Linux (Die zunächst unterstützte Plattform ist Red Hat Enterprise Linux 4, Update 3. IBM plant für einen späteren Zeitpunkt einen Support für SUSE Linux for Enterprise Desktops) welcher in Version 7.0.1 bereit gestellt wird.

Der Lotus Domino Administrator Client existiert ausschließlich für Windows. Einen adäquaten Ersatz stellt ab Domino 7 die Webschnittstelle per Browser dar. Hier werden der Internet Explorer sowie Mozilla-basierende Browser unterstützt.

Der Lotus Domino Designer Client existiert ausschließlich für Windows

Die Weiterentwicklung geht in die Richtung eines sowohl im Browser als auch lokal laufenden Rich Client – basierend auf dem Eclipse-Framework – mit dem Namen IBM Workplace.

Der Browser-Client

Ein Lotus Domino-Server offeriert auch einen HTTP-Task, der Notes-Datenbanken über den Browser zur Verfügung stellt.

Viele der im Lieferumfang enthaltenen Anwendungen wie E-Mail, Kalender, Aufgabenliste, E-Diskussion und TeamRoom sind als hybride Anwendungen konzipiert. d. h. sie sind so programmiert, dass sie weitgehend ohne Einschränkungen sowohl mit dem Notes-Client als auch mit dem Web-Browser genutzt werden können.

Eigene Anwendungen können den gleichen Ansatz verfolgen.

Eine reine Notes-Client-Anwendung ist prinzipiell sofort auch für den Einsatz im Web-Browser geeignet. Ohne weitere Anpassungen ist das Ergebnis aber meist unbefriedigend.

Portabilität

Notes-Anwendungen respektive Notes-Datenbanken sind hochgradig portabel (zu über 99.9 %, das heißt der Anpassungsaufwand auf einer weiteren Plattform ist weniger als 1 Promille des Entwicklungsaufwands) solange keine Technologien wie clientseitiges Java bei der Erstellung der Datenbank verwendet wird. Diese sind im Notesclient für den Macintosh nicht verfügbar. So ist beispielsweise beim Übertragen einer Notes-Anwendung von Windows auf Macintosh der Hauptaufwand das Anpassen der Schriftarten und Schriftgrößen (weil TimesRoman 10 auf Mac und Windows nicht gleich viel Platz beansprucht) – sofern der Programmierer nicht schon von Beginn an auf diese Portabilität geachtet hat.

Der Domino Designer

Mit Hilfe des Domino Designer können neue Datenbanken erstellt sowie das Design vorhandener Datenbanken geändert werden, sofern es nicht geschützt ist. Der Domino Designer umfasst neben Funktionen zum Anlegen und Verändern der verschiedenen Gestaltungselemente wie Masken, Ansichten, Seiten, Rahmen usw. auch eine Entwicklungsumgebung, in der mittels Formelsprache (sog. @Befehle und @Funktionen), LotusScript (mit Debugger), Java oder JavaScript programmiert werden kann.

Grundelemente einer jeden Notes-Datenbank sind Masken (forms) zum Erstellen, Ändern und Anzeigen von Dokumenten sowie Ansichten (views) zur tabellarischen Darstellung von Dokumenten. Masken lassen sich vielfältig dynamisch darstellen, das heißt Elemente können je nach Inhalt des Dokumentes angezeigt oder verborgen werden, Daten errechnet oder Skripte mittels Events gestartet werden. Für die Anzeige im Web-Browser ist es ferner möglich, HTML-Quellcode direkt vorzugeben, beziehungsweise kann man HTML-Gestaltungselemente wie Layer grafisch erzeugen und diese zum Beispiel auch dynamisch ein- und ausblenden.

Sicherheit

Das Notes-System kennt mehrere Sicherheitssysteme:

  1. Zugriffssicherheit von Clients auf Server: Hier gibt es nicht nur eine Benutzername-/Passwort-Sicherheit, sondern es muss auch ein gültiges Zertifikat vorliegen und zwar bilateral: Der Server muss beim Verbindungsaufbau dem Client ein gültiges Zertifikat vorlegen und der Client dem Server.
  2. Vertrauliche Daten können in einer Notes-Datenbank verschlüsselt abgelegt werden und zwar auf vier Arten:
    1. auf Feldebene mit den Öffentlichen Schlüsseln der Personen, die zum Lesen vorgesehen sind
    2. auf Feldebene mit einem eigenen (i.d.R. selbst oder von einem Abteilungsleiter und nicht von Informatikern erstellten) symmetrischen Schlüssel
    3. auf Datenbankebene mit dem Öffentlichen Schlüssel des Benutzers (bei lokal gespeicherten Datenbanken)
    4. auf Datenbankebene mit dem Öffentlichen Schlüssel des Servers (bei auf dem Server gespeicherten Datenbanken)

Diese Sicherheitssysteme sind im Lotus-Notes-System integriert und deswegen einfacher zu nutzen und zu administrieren als bei konventionellen Systemen, bei denen diese als separate Softwaresysteme installiert, konfiguriert und administriert werden müssen. Man denke hierbei an das Verteilen von Schlüsseln auf viele Clients oder das Aktualisieren von abgelaufenen Zertifikaten bei vielen Benutzern.

Unsicherheit

Domino XML (DXL)

Beginnend mit der Version 5 unterstützt IBM das Auslesen und Schreiben von Notes-Daten und -Design von/nach XML. Die erste Funktionalität wurde im Rahmen der View-Darstellung durch ein Applet im Browser-Client realisiert und kann durch das Web-Kommando?ReadViewEntries genutzt werden. Diese Funktionalität wird heute unter anderem zur verbesserten Web-Darstellung genutzt: Domino View Navigator by Bob Obringer.

In R5 war weiterführende XML-Verarbeitung in der Java-Dokument-Klasse (.renderXML) und einem externen Toolkit verfügbar. Beginnend mit R6 lieferte IBM diese Funktionalität auch als integrierte Klassen für Lotus Script mit stark erweiterter Funktionalität aus. Mit Hilfe dieser Klassen lassen sich Daten und Design-Elemente extrahieren, manipulieren (via DOM oder XSLT) und in bestehende oder neue Datenbanken zurückschreiben. Auf Sourceforge ist ein Projekt zu finden, das Notes-Dokumente als XML-Dateien im Dateisystem sichtbar macht: Domino Dokumente via webDAV (Pre Alpha von Juni 2005).

Alternativen

Siehe auch

Datenbankmanagementsysteme (DBMS)