HCL Notes (bis Juli 2019 IBM Notes, bis März 2013 Lotus Notes) ist ein dokumentenorientiertes, verteiltes Datenbanksystem mit sehr enger E-Mail-Anbindung. Es wurde ab 1984 von Iris Associates entwickelt, später ein Tochterunternehmen der Lotus Development Corporation respektive von IBM. Im Juli 2019 wurde die Übernahme durch HCL Technologies abgeschlossen. HCL Notes gehört in die Kategorie Groupware.
Das ursprünglich Lotus Notes genannte Produkt wurde auf Serverebene bereits mit Version 4.6 umbenannt in Lotus Domino. Die Client-Software für gewöhnliche Nutzer (nicht jedoch jene für Entwickler und Administratoren) trägt den Namen HCL Notes. Bei den Datenbanken finden sich sowohl die Bezeichnung Notes-Datenbank als auch Domino-Datenbank, wobei im Folgenden, den Gewohnheiten vieler Nutzer entsprechend, weiterhin von Notes-Datenbanken usw. die Rede ist.
HCL Notes stellt neben einem Datenbankmanagementsystem (DBMS) eine entsprechende Plattform für die Entwicklung von Anwendungen bereit. Die Anwendungen E-Mail (inkl. Kalender, Aufgabenliste), E-Diskussion, TeamRoom und mehrere andere Anwendungen sind im Lieferumfang enthalten. Der Quelltext für diese Anwendungen ist offen und in den Datenbank-Templates enthalten.
Geschichte Anfang der 1970er Jahre entwickelten David Woolley und sein Team am CERL (Computer Education Research Laboratory) der University of Illinois eine Message-Board-Anwendung, die klassische Notizzettel nachbildete. Sie nannten das System Notes.
1984 gründeten drei Absolventen des CERL (Ray Ozzie, Len Kawell und Tim Halvorsen) das Unternehmen Iris Associates in Boston. Das Unternehmen war klein und pflegte gute Beziehungen zum zwei Jahre älteren Unternehmen Lotus unter der Leitung von Jim Manzi, wo Ozzie als externer Mitarbeiter wesentlich bei der Entwicklung von Lotus Symphony mitwirkte. Ein Jahr später existierte bereits eine windowsfähige Version von Lotus Notes, und auf dem von Microsoft Ende 1985 auf dem Markt gebrachten Windows lief angeblich Lotus Notes als eine der ersten Windows-Anwendungen. Bis 1991 wurde Lotus Notes ausschließlich im Rahmen von Projekten eingesetzt und war nicht offiziell erhältlich. 1988 wurde Iris von Lotus aufgekauft.
1996 wurde Lotus wiederum durch IBM übernommen; der Kaufpreis von rund 4 Mrd. $ war die größte bis dahin gezahlte Summe für ein Software-Unternehmen. Hauptgrund für den hohen Preis dürfte das mittlerweile zum Hauptprodukt avancierte Lotus Notes gewesen sein. Bis 2001 war Iris Associates restlos in die IBM-Organisation integriert. Im März 2013 wurde das Produkt mit der Version 9 zu IBM Notes umbenannt.
2017 wurde die Entwicklung an HCL Technologies ausgelagert. Im Juli 2019 wurde Notes ganz durch HCL übernommen und in HCL Notes umbenannt.
Merkmale HCL Notes grenzt sich von anderen Groupware-Plattformen wie Microsoft SharePoint durch die nachfolgenden Eigenschaften ab: Dokumentenorientiertes nicht-relationales DBMS mit enger E-Mail-Integration, integrierter Benutzerverwaltung und zahlreichen Services (HTTP, HTTPS, SMTP, LDAP, POP3, IMAP, NNTP, RSS, Webservices, MAPI …) 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 Notes/Domino im LDAP-fähigen Domino Directory bereits enthalten. Rapid Application Development & Deployment (RADD) mittels HCL 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, Ansichten, Agenten etc.) auf alle Server und Clients automatisch verteilt. Diese Fähigkeit senkt Entwicklungs-, Wartungs- und Administrationskosten im Vergleich mit konventionellen Entwicklungsumgebungen. 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. Volle Offline-Funktionalität: Eine Notes-Anwendung, die auf einem Domino-Server betrieben wird, kann in der Regel vollständig identisch auf einem Laptop benutzt werden, der offline betrieben wird, also nicht mit einem Server verbunden ist.
Funktionen Grundsätzlich sind umfangreiche Datenbanken mit artikelförmigem Inhalt möglich. Es lassen sich beliebige Dateianhänge einlagern. Standardanwendungen in 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 Webbrowser 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 sogenannten Dokumenten gespeichert, daher auch der Name Notes für „viele Dokumente“. Diese Eigenschaft ist eine der markantesten, da alles ein „Dokument“ ist.
Verschiedene Sprachen können für die Anwendungsentwicklung eingesetzt werden: Die wichtigsten Sprachen sind die einfache HCL Notes-Formelsprache (sog. @-Funktionen und @-Commands) mit denen auch unerfahrene Anwender einfache Datenbanken erstellen konnten, LotusScript (sehr ähnlich Visual Basic), sowie Java und JavaScript. HCL Notes-Anwendungen sind Client-Server-Anwendungen (Client-Server-System). Dabei werden – vereinfacht dargestellt – die Daten auf dem HCL Domino-Server gespeichert und die Benutzer-Interaktionen auf dem HCL Notes-Client durchgeführt. Daten können vom Client zudem als abgeglichene lokale Replikation der Server-Datenbank oder als eigenständige Datenbank verwaltet werden. Immer häufiger kommt auch der Webbrowser als Client zum Einsatz.
HCL Notes-Datenbanken Notes-Datenbanken sind wie oben beschrieben im Gegensatz zu relationalen Datenbanken dokumentenbasierte 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 sogenannten Ansichten (views) sowie in Ordnern (folders) können Listen von Dokumenten aus dem Datenbestand gefiltert und tabellarisch angezeigt werden. Mittels selbst geschriebener Programme (agents) können Aktionen ereignis- oder zeitgesteuert ausgeführt werden. Sämtliche Inhalte einer Datenbank inklusive Dateianhänge lassen sich über die integrierte Volltextsuche durchsuchen. Dies gilt nicht nur für lokale Datenbanken auf einem HCL Notes Client, sondern auch für Datenbanken, die auf mehrere Dominoserver einer Domino Domain verteilt sind (Domino Domain Search). Dateinamen von HCL Notes-Datenbanken enden mit dem Suffix .NSF: Notes storage facility.Bibliothek und Tools für den Zugriff auf das NSF-Datenbankformat Datenbankvorlagen (Schablonen) enden mit dem Suffix .NTF: Notes template file.
Eine Datenbank hat folgende Identifikationsmerkmale: der Dateiname: je nach darunterliegendem Dateisystem der Datenbanktitel: für den Anwender sichtbar die Replik-ID: eine 16-stellige Zahl in hexadezimaler Schreibweise, die beim Erstellen der Datenbank zufällig generiert wird der Template-Name: Falls die vorliegende Datenbank als Schablone (Template) verwendet werden soll, kann ein Template-Name vergeben werden
Unterschiede zu anderen Datenbanksystemen: Notes-Datenbanken sind nichtrelationale Datenbanken. Sie folgen einem Dokument- und nicht einem Datensatzmodell. Dokumente können (müssen aber nicht) 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 alle Designelemente (also Masken, Ansichten, Agenten etc.) einer Anwendung ebenfalls in Form von Notes-Dokumenten. Während das bei RDBMS für das Datenschema und die Ansichten üblich ist, speichert Notes auch Masken (forms) und Ressourcen (css, jpg, java etc.). Alle Designelemente 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-Frontend (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 Platzverbrauchs.
Eine weitere Besonderheit ist die Unterstützung von RichText als Feldtyp. Hier können formatierter Text, Dateianhänge oder eingebettete Objekte (Bilder, OLE-Objekte) gespeichert werden. RichText-Felder zusammen mit dem HCL Notes-Client erlauben ein besonders benutzerfreundliches „Hochladen“ resp. Abspeichern von nahezu beliebigen Daten unter anderem auch mittels Drag and Drop.
Notes-Dokumente und Designelemente 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 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 HCL Domino Server ist für eine Reihe von Plattformen wie z. B. Windows, Linux, AIX, Solaris, AS/400 (OS/400), z/OS und zLinux verfügbar. Er stellt mehrere Dienste zur Verfügung. Der Server 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, dass Internet Mails auf diesem Server empfangen werden können.