Geschichte
Anfang der 70er Jahre begann Prof. Wooley am CERL (Computer Education Research Laboratory) der University of Illinois Experimente durchzuführen mit den damals neuen CRT-Bildschirmen (CRT = Cathode Ray Tube). Er und sein Team entwickelte 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 Microsoft “Windows” 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 frei erhältlich.
Funktionen
Grundsätzlich sind umfangreiche Datenbanken mit artikelförmigen Inhalt möglich. Es lassen sich beliebige Dateianhänge mit einlagern. Standardanwendungen im Notes sind eine Mail-Datenbank, sowie Kalender und ToDo-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 auch Räume zu reservieren. Es gibt weitere Datenbank-Vorlagen wie zum Beispiel Diskussions- und Teamdatenbanken. Alle Datenbanken können über den Notes-Client und Web-Browser bedient werden. Die Entwicklung von eigenen Applikationen ist mit dem Domino-Designer möglich. Daten und Gestaltung einer Applikation werden in einer gemeinsamen Datenbank gespeichert. Alle Inhalte dieser Datenbank (Design und Daten) werden in sogenannten 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 eigene ID trägt. Ein Dokument kann mehrere Felder (items)
unterschiedlicher Typen 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 sog. Ansichten (views) können Listen von Dokumenten aus dem Datenbestand gefiltert und tabellarisch angezeigt werden. Mittels
selbstgeschriebener Programme (agents) können Aktionen Event- oder Zeitgesteuert ausgeführt werden. Dateinamen von Lotus Notes-Datenbank enden auf dem Suffix .NSF “Notes storage facility”. Datenbankvorlagen enden auf 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 Replica-ID: eine 32 Hex-Zeichen lange Zahl die beim Erstellen der Datenbank zufällig generiert wird
Zwischen zwei Rechnern werden ausschließlich Datenbanken repliziert, die dieselbe Replica-ID haben (die anderen Identifikationsmerkmale Datenbanktitel und Dateiname spielen hier keine Rolle – was z. B. den angenehmen Nebeneffekt hat, dass ein Domino-Server-Administrator die Datenbanken beliebig in Unterverzeichnisse verschieben kann, ohne dass die Replikationsfähigkeit beeinträchtigt wird).
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 Notes-Mail-Router (Task “router”) und einen SMTP-Mail-Router (Task “smtp”). 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 Anwendung 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 automatisch – gemäß den definierten Verbindungsintervallen – 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 Organisationen, die nur “dünne” Kommunikationsleitungen (z. B. analoge Telefon-Modems, 2.4 bis 56 kbit/sec) haben, können die Replikationszeitpunkte auf Niedertarifzeiten (v.a. Nachts) gelegt werden und relativ grosse 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 oder AS/400 verfügbar.
Domino-Server können in Domino-Clustern betrieben werden. Dabei werden je zwei 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. 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 zu maximieren.
Protokolle
Ein Lotus Notes-Client kommuniziert mit einem Lotus Domino-Server über NRPC (Notes-RPC) 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:
- Lotus Notes – damit arbeitet der Anwender
- Lotus Domino Designer – damit arbeitet der Anwendungsentwickler
- Lotus Domino Administrator – damit arbeitet der Administrator.
- 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. - 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. - IBM Lotus Domino Access für Microsoft Outlook (DAMO) – ein Zusatzprogram für Microsoft Outlook um auf den Domino Server
zuzugreifen.
Der Lotus Notes Client läuft auf den Plattformen Mac OS 9/X, Windows und mit wine auch unter Unix/Linux (das letzte wird nicht offiziell von IBM unterstützt).
Die Weiterentwicklung geht in die Richtung eines sowohl im Browser als auch lokal laufenden Rich Client – basierend auf dem Eclipse-Framework – mit dem Namen Workplace.
Der Browser-Client
Der Domino-Server offeriert auch eine HTTP-Task, die Notes-Datenbanken für Browser-Clients zur Verfügung stellt.
Viele der im Lieferumfang enthaltenen Anwendungen 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 resp. Notes-Datenbanken sind hochgradig portabel (zu über 99.9% d.h. der Anpassungsaufwand auf einer weiteren Plattform ist weniger als 1 Promille des Entwicklungsaufwands). So ist beispielsweise beim Übertragen einer Notes-Anwendung von Windows auf Macintosh der Hauptaufwand das Anpassen der Schriftarten und Schriftgrössen (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. 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, d.h. 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, bzw. man kann
HTML-Gestaltungselemente wie Layer grafisch erzeugen und diese z.B. auch dynamisch ein- und ausblenden.
Sicherheit
Das Notes-System kennt mehrere Sicherheitssysteme:
1. Zugriffssicherheit von Clients auf Server: Hier gibt es nicht nur eine Username&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 zwei Arten:
a) auf Feldebene mit einem eigenen (i.d.R. von einem Abteilungsleiter und nicht von Informatikern erstellten) Schlüssel.
b) auf Datenbankebene mit dem Public-Key des Users.
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 Usern.
Dieser Beitrag stammt aus Wikipedia