HCL Notes
# HCL Notes

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 Quellcode 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. 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.

Ferner gehört auch ein Webserver 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, Adressverwaltung sowie Reservierungen von Räumen bzw. Ressourcen.

Im Gegensatz zu anderen Datenbankensystemen können die Datenbanken auch ohne Verbindung zum HCL Domino Server, nur mit dem HCL 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äß der definierten Verbindungsintervalle – oder auch manuell abgeglichen.

Dieses Konzept ist aus der Theorie der verteilten Datenbanken bekannt als Replikation. 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 Replizier-Parameter für jede Datenbank eingestellt werden (selektive Replikation). Der Replikationsmechanismus kann Änderungen an Dokumenten auf Feldebene erkennen und bei umfangreichen Dokumenten nur die geänderten Feldinhalte übertragen. Dadurch wird die zur Verfügung stehende Netzwerk-Übertragungskapazität effizient genutzt.

Domino-Server können in Domino-Clustern betrieben werden. Dabei werden zwei oder mehr 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 Dominoversionen aufgebaut werden. Domino-Cluster haben nichts mit Clustern auf Betriebssystem-Ebene zu tun. Bei Ausfall eines Domino-Servers übernimmt der Client den Wechsel auf einen anderen Domino-Server des Clusters. Cluster werden eingesetzt, um die Verfügbarkeit bei einem Serverausfall und die Leistungsfähigkeit durch Lastverteilung zu maximieren.

## Die Notes-Clients

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

* HCL Notes: Damit arbeitet der Anwender am PC. Verfügbar für Windows und Mac und der umfangreichste Zugriff auf Mail, Kalender, Applikationen (Workflows), Chat und Videokonferenzen (HCL Sametime) sowie HCL Connections (unternehmensinternes Social Network).
* HCL Verse läuft im Webbrowser und umfasst die Basisfunktionen wie Mail, Kalender, Chat und Awareness.
* HCL Nomad: App für den Zugriff über Smartphones und Tablets (Apple iOS/iPadOS und Android) auf alle Arten von Anwendungen ohne deren (zwingende) Modifikation.
* HCL Domino Access für Microsoft Outlook (DAMO) ist ein Zusatzprogramm für Microsoft Outlook, um auf den Domino Server zuzugreifen.
* HCL Domino Administrator: Damit arbeitet der Administrator für die Konfiguration, das Usermanagement sowie das Monitoring.
* HCL Domino Designer: Damit arbeitet der Anwendungsentwickler.
* HCL Domino Volt: Damit kann der Endanwender einfach webbasiert Domino-basierte Webanwendungen entwickeln.

### HCL Domino Admin

Für die Verwaltung des Domino-Servers hat HCL einen speziellen Administrations-Client eingeführt. Dieser Client bietet Funktionen, die eine Administration der HCL Notes-Domäne wesentlich erleichtern und nicht über den normalen Notes-Client möglich sind.

Der Administrations-Client kann auf der Workstation des zuständigen Administrators und sollte nach Möglichkeit nicht direkt auf dem Server installiert werden.

Mit Hilfe des Administrations-Clients lassen sich die meisten Aufgaben bei der Konfiguration und Administration von Domino-Servern bewältigen. Zusätzlich wird dieser zur vollständigen Benutzerverwaltung und zur kompletten Überwachung und Überprüfung der Funktionsweise des Servers eingesetzt.

### HCL Verse (browser-basierter Mail-Client) und HCL Nomad

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

Zum Zugriff auf Mail, Kalender und Aufgaben bietet HCL Domino einen eigenen, webbasierten Client names HCL Verse an. Mit Hilfe der Integration von HCL Sametime für Chat und Meetings und HCL Nomad für den Webzugriff auf Notes-Anwendungen, ist so ein rein browserbasierter Zugriff für User möglich.

### HCL 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) und Ordner (folders) 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 Webbrowser 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.

Der Lotus-Notes-8-Client ist eine weiterentwickelte Version auf der Basis von Eclipse Rich Client Platform (Eclipse RCP). Diese integrative Schnittstelle heißt bei IBM Lotus Expeditor und wird u. a. bereits als Basis für den IBM Lotus Sametime Connect Client (ab Version 7.5) genutzt. IBM bietet den Expeditor auch als separate Entwicklungs- und Runtimeumgebung an. Diese Schnittstelle ist sehr flexibel und ermöglicht die Integration und Verkettung (composite application) von Anwendungen unterschiedlicher Programmsprachen und Hersteller (SOA). Die Anfänge dieser Entwicklung gehen auf die Produktlinie IBM Workplace zurück. Da Eclipse auf verschiedenen Plattformen angeboten wird, ist auch die Portierung des Lotus-Notes-8-Client gewährleistet.

### Weitere Clients

Auf HCL Notes E-Mail kann auch mit weiteren Clients, wie z. B. Mozilla Thunderbird, zugegriffen werden, die die Standards POP3 und IMAP unterstützen. Auch Microsoft Outlook ab Version 2002 kann vom Endanwender benutzt werden, um über den Domino Access for Microsoft Outlook (DAMO) Mail- und Kalenderfunktionen von HCL Notes zu nutzen.

## 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 ein Promille des Entwicklungsaufwands). Dieser außerordentlich hohe Grad an Portabilität wird jedoch nur erreicht, solange die Notes-Formelsprache verwendet wird. Bereits der Einsatz von LotusScript kann die Portabilität verringern, wenn betriebssystemspezifische Funktionen genutzt werden. So ist beispielsweise die Pfadangabe für eine Datei unter Windows und unter Unix unterschiedlich. Weiter reduziert wird die Portabilität durch Technologien wie clientseitiges Java, da dieses im Notesclient für den Macintosh nicht verfügbar ist.

Verwendet man jedoch lediglich die Formelsprache und portables LotusScript, so entsteht beispielsweise beim Übertragen einer Notes-Anwendung von Windows auf Macintosh der Hauptaufwand beim Anpassen der Schriftarten und Schriftgrößen (weil bspw. die Times Roman in Schriftgröße 10 auf Mac OS und Windows nicht gleich viel Platz beansprucht). Dies verdeutlicht, dass beim Portieren von klassischen Notes-Anwendungen in der Regel Aufwand nur bei der Darstellung anfällt und dass die Kernfunktionen identisch funktionieren.

Aber auch dies kann der Programmierer schon von Beginn beachten; so werden etwa im Original-HCL-Mail-Template sowohl für Windows als auch für Macintosh brauchbare Schriftarten verwendet.

## Sicherheit

Das Notes-System kennt mehrere Sicherheitssysteme:

* 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. Die Authentifikation des Benutzers mit einem Passwort geschieht nicht direkt am Server, sondern über eine ID-Datei, die den privaten Schlüssel des Benutzers enthält. Diese ID-Datei kann nur anhand einer speziell geschützten Certifier-ID erstellt werden. Weitergehend werden Zugriffe auf den Server über Zugriffsgruppen innerhalb des Domino Adressbuchs geregelt.
* Vertrauliche Daten können in einer Notes-Datenbank verschlüsselt abgelegt werden und zwar auf vier Arten:
   * auf Datenbankebene mit dem öffentlichen Schlüssel des Benutzers (bei lokal gespeicherten Datenbanken)
   * auf Datenbankebene mit dem öffentlichen Schlüssel des Servers (bei auf dem Server gespeicherten Datenbanken)
   * auf Feldebene mit den öffentlichen Schlüsseln der Personen, die zum Lesen vorgesehen sind
   * auf Feldebene mit einem eigenen (i. d. R. selbst oder von einem Abteilungsleiter und nicht von Informatikern erstellten) symmetrischen Schlüssel
* Execution Control. Code ist grundsätzlich signiert, ob der Code ausgeführt werden darf, wird über eine Freigabe-Liste gesteuert. Die Liste kann über Policies gesteuert werden dadurch kann sichergestellt werden, dass kein beliebiger Code untergeschoben wird.
* Seit Version 12 wird die HTTPS/TLS-Transportverschlüsselung durch die Integration mit Let’s Encrypt entscheidend vereinfacht.
* Ebenfalls wird seit Version 12 eine Zwei-Faktor-Authentifizierung angeboten. Hierüber kann, unabhängig vom Client, der Zugriff auf Mail und Anwendungen mithilfe einer Einmalpasswortes aus einem Passwortgenerator zusätzlich zum Passwort abgesichert werden. Die Anwendungen müssen dafür nicht angepasst werden.

Diese Sicherheitssysteme sind im HCL Notes-System integriert. Sie sind 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.

### Protokolle

Ein Notes-Client kommuniziert mit einem Domino-Server über NRPC (Notes-RPC, Port 1352), einer Variante von RPC. NRPC kann über TCP/IP, NETBIOS und andere Protokolle geroutet werden.

HCL Domino unterstützt das von IBM entwickelte Protokoll Lightweight Third-Party Authentication für Single Sign-on im Webbrowser sowie beginnend mit Version 8.5.1 (2009) SPNEGO für den Single Sign On mit Microsoft Active Directory im Notes Client. Ferner steht für Windows ein Password-Synchronisations-Dienst zur Verfügung. Ab der Version 9.0 unterstützen sowohl der Notes Client als auch der Domino Server SAML.

## Datenformat

### Domino XML (DXL)

Beginnend mit der Version 5.0 unterstützt Notes 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.

In Version 5 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.

### Notes Data Link (NDL)

Notes-Data-Link-Dateien sind Verknüpfungen zu Datenbanken, Ansichten oder Dokumenten. Sie werden strukturiert als plain-text in einer NDL-Datei abgelegt. Das Aussehen ähnelt einer XML-Datei. Die .NDL-Dateierweiterung wird bei der Installation des Notes Clients in der Windows-Registry eingetragen (Pfad: HKEY_CLASSES_ROOT).

Sobald eine .NDL-Datei erstellt wurde, kann sie beim Aufruf der NOTES.EXE als Parameter übergeben werden.

Beispiel: NOTES.EXE C:\TEMP\TESTDATALINK.NDL

Wird die Verknüpfung über den Internet Explorer ausgewählt, wird HCL Notes geöffnet. Dies ist unabhängig vom content-type, den der Server übergibt. Der Microsoft Internet Explorer prüft erst im System, ob die Dateierweiterung bereits bekannt ist. Alternative Browser wie z. B. Firefox oder Opera können nicht im System prüfen, ob die Dateierweiterung .NDL bekannt ist. Stattdessen kommt es auf den vom Webserver übergebenen content-type an. Um Notes DataLinks über einen alternativen Browser aufzurufen, sollte als content-type: application/ndl übergeben werden. Dies erreicht man bspw. unter dem Apache HTTP Server durch Hinzufügen der Zeile „AddType .ndl application/vnd.lotus-notes binary 1.0 # Notes Data Link“ in die Konfigurationsdatei.

## OSGi

Der IBM Workplace Client war ein wichtiger Technologielieferant für die Weiterentwicklung von Lotus Notes. Durch die Integration der IBM Workplace Client Technologie setzte Lotus Notes in der Version 8 erstmals auf das Open-Source-Framework Equinox auf, welches die serviceorientierte OSGi-Architektur umsetzt und auch der IDE Eclipse zugrunde liegt. Equinox wurde ursprünglich ebenfalls von IBM entwickelt.

## API

Der Zugriff auf Domino-Daten und Funktionen kann über verschiedene APIs erfolgen. Dabei können die Programmiersprachen C/C++ und Java zum Einsatz kommen. Ab Version 7 unterstützt Domino die Entwicklung von Webservices. Ein Webservice kann in Lotus Script oder Java umgesetzt werden.

Der generische Zugriff über SOAP auf Domino-Dokumente lässt sich über das Open-Source-Werkzeug SOAPGATE erheblich vereinfachen.

## Kritik

Ein häufig genannter Kritikpunkt von HCL Notes ist die wenig intuitive Benutzeroberfläche und die damit einhergehende Unzufriedenheit mit der allgemeinen Benutzerfreundlichkeit der Software.

Vor allem frühere Versionen von HCL Notes wurden dafür kritisiert, dass sie bewährte Bedienkonzepte anderer Software änderten, was eine inkonsistente und für Benutzer teils verwirrende Oberfläche zur Folge hatte. Ein Beispiel für diese Vorgehensweise findet sich im Tastatur-Kurzbefehl F5, der insbesondere innerhalb von Windows zum Aktualisieren des aktuellen Fensters genutzt wird. In Notes führte dieser Befehl jedoch dazu, den Bildschirm zu sperren. Ein weiterer Kritikpunkt war die Nichtunterstützung proportionaler Bildlaufleisten, die dem Nutzer normalerweise veranschaulichen, wie lang ein Dokument proportional zum aktuellen Bildausschnitt ist. Nach Kritik an diesen Designentscheidungen wurden sie mit Erscheinen von Notes 8 korrigiert.

Ältere Notes-Versionen litten unter ähnlichen Problemen, wovon viele jedoch in späteren Versionen der Software korrigiert wurden. Ein Beispiel hierfür ist der Abwesenheitsagent, der vor Version 8.5 manuell de- und aktiviert werden musste, selbst wenn Start- und Enddatum vorher festgelegt wurden. Erst nach Notes 8.5 wird der Abwesenheitsagent automatisch beim Erreichen des Enddatums auch wieder deaktiviert.

Im Gegensatz zu anderen E-Mail-Programmen können Nutzer von HCL Notes nicht feststellen, ob eine Lesebestätigung gesendet wird, wenn sie eine E-Mail öffnen, da diese Option auf Serverebene konfiguriert wird. Die IBM-Entwickler waren der Meinung, dass „das Zulassen einer individuellen Stornierung von Lesebestätigungen die Absicht einer Lesebestätigung innerhalb einer Organisation verletzt“. Abhängig von den Einstellungen des Servers haben Benutzer also nicht die Möglichkeit, auf das Senden einer Lesebestätigung zu verzichten, was insbesondere bei unerwünschten E-Mails wie etwa Spam problematisch sein kann. Mit IBM Notes Version 9.0 wurde eine Möglichkeit eingefügt, diese Funktion von Notes zu umgehen, indem der .INI-Datei des IBM Domino-Servers ein entsprechender Eintrag hinzugefügt wird.

Weitere Kritik betrifft die allgemeine Leistung und Stabilität von HCL Notes. Stürzt die Software ab, werden einige Prozesse im Hintergrund weiter ausgeführt, die das erneute Öffnen der Anwendung verhindern, bis sie manuell beendet werden.

## Versionsgeschichte

| Version | Veröffentlichung | Info |
| - | - | - |
| 1.0 | Dez. 1989 | |
| 1.1 | Aug. 1990 | unterstützt Client mit Windows 3.0 |
| 2 | 1991 | |
| 3 | Mai 1993 | |
| 3.1 | 23. Feb. 1994 | Unterstützung für Sun Solaris 1.1 |
| 3.2 | 4. Okt. 1994 | Unterstützung für UNIX-Plattformen: SCO Open Desktop, HP-UX, IBM AIX |
| 3.3 | 23. Feb. 1995 | Lotus Notes Desktop |
| 4 | 22. Jan. 1996 | Netware-Server-Unterstützung entfernt |
| 4.5 | 1996 | Einführung der Marke "Domino" für den Server. |
| 4.6 | 1997 | |
| 5 | 1999 | |
| 6.0 | Sep. 2002 | |
| 7.0 | Aug. 2005 | DB2-Unterstützung wird hinzugefügt |
| 7.0.1 | Jul. 2006 | Die erste Linuxversion wird veröffentlicht, zertifiziert für Red Hat Enterprise Linux. |
| 7.0.2 | Sep. 2006 | Ein Blogtemplate sowie Unterstützung für RSS-Feeds und iCal werden hinzugefügt, außerdem SAP-ERP-Integration. Zusätzlich das Feature Nomad, welches erlaubt, den Notes-Client auf einem USB-Stick mitzunehmen. |
| 8.0 | Aug. 2007 | Einführung des auf Expeditor basierenden Standard-Clients; parallel wird der bisherige Notes-Client als „Basic“-Client weitergeführt |
| 8.5 | Dez. 2008 | ID Vault, neue Roamingfunktionen, xPages, DAOS (Speicherplatzersparnisse zwischen 40 % und 60 %) sowie eine Vielzahl anderer Erweiterungen. Der Domino Designer wird nach Eclipse portiert. Windows-Server-2008-Unterstützung wird hinzugefügt |
| 9.0.0 | 21. Mär. 2013 | |
| 9.0.1 FP8 | 7. Mär. 2017 | Ab diesem Release werden statt „Fix Packs“ nun „Feature Packs“ ausgeliefert. Domino-Server 32-Bit-Linux und -AIX werden nicht mehr ausgeliefert (Umstieg auf 64 Bit), Clients für Windows XP und Linux wurde eingestellt. |
| 10 | 10. Okt. 2018 | Domino Query Language (DQL), Unterstützung von Datenbanken mit mehr als 64 GB etc. |
| 11 | 20. Dez. 2019 | Überarbeitung des Clients, DAOS Tier 2 Storage, Verzeichnissynchronisation mit externen LDAP Directory, Aktualisierung der Java-Laufzeitumgebung auf OpenJ9. |
| 12 | Q2 2021 | Die erste von HCL Software komplett überarbeitete Version von IBM Domino seit der Übernahme im Jahr 2019. Änderungen: Offene Schnittstellen zu SAP, Microsoft Teams, SharePoint und Salesforce. Anpassung der Sicherheitssysteme auf Let’s Encrypt, Zwei-Faktor-Authentifizierung, Fail2ban, TOTP 2FA, FaceID und biometrisches Login. Technisch neues C_API-Toolkit, Domino OSGI Tasklet Service und Bootstrap 4. Geplant neues Lizenzmodell rein benutzerbasierend und nicht mehr PVU. |
