Main Page | See live article | Alphabetical index

Lotus Notes

Lotus Notes is a proprietary, client/server groupware and email system owned by Lotus Software, of the IBM Software Group.

The server runs on several platforms, including Windows NT, Windows 2000, Linux, HP-UX, Sun Solaris, IBM iSeries, pSeries, and zSeries. The native client runs on all versions of Windows and MacOS 9.0 and X, while the web interface is usable by most web browsers.

A design client is available to allow rapid development of databases consisting of forms, which allow users to create documents; and views, which display selected document fields in columns.

Features include group Calendaring and Scheduling, SMTP-based email, NNTP-based news support, and automatic HTML conversion of all documents by the Domino HTTP task.

Extremely robust security is built into the product via public key cryptography in client-server and server-server communication, and SSL 3.0 support on the web.

Table of contents
1 Programming
2 History
3 External Links
4 References


Lotus Notes databases are built using the Domino Designer client, which is available for Windows and Macintosh. A key feature of Notes is that many replicas of the same database can exist at the same time on different servers and clients, and the same storage architecture is used for both client and server replicas. The basic unit of storage in a database is known as a note. Every note has a Unid and a NoteId. The Unid uniquely identifies the note across all replicas within a cluster of servers, a domain of servers, or even across domains belonging to many organizations that are all hosting replicas of the same database. The NoteId, on the other hand, is unique to the note only within the context of one given replica. Each note also stores its creation and modification dates, and one or more Items.

There are several classes of note, including design notes and document notes. Design notes, which are created and modified with the Domino Designer client, represent programmable elements, such as the GUI layout of forms for displaying and editing data, or formulas and scripts for manipulating data. Document notes, which are created and modified with the Lotus Notes client, via a web browser, via mail routing and delivery, or via programmed code, represent user data. Document notes can have parent-child relationships, but Notes should not be considered a hierarchical database in the classic sense of IMS. Notes databases are also not relational, although there is a SQL driver that can be used with Notes, and it does have some features that can be used to develop applications that mimic relational features. Notes is essentially a document-based, schemaless, loosely structured database with support for rich content and powerful indexing facilities. This structure closely mimics paper-based workflows that Lotus Notes is typically used to automate.

Items represent the content of a note. Every item has a name, a type, and may optionally have some flags set. A note can have more than one item with the same name. Types include Number, Number List, Text, Text List, Date-Time, Date-Time List, and Rich Text. Flags are used for managing attributes associated with the note, such as special read or write security, or exclusion from indexing. Items in design notes represent the programmed elements of a database. For example, the layout of an entry form is stored in the rich text Body item within a form design note. Items in document notes represent user-entered or computed data. An item named "Form" in a document note can be used to bind a document to a form design note, which directs the Lotus Notes client to merge the content of the document note items with the GUI information and code represented in the given form design note for display and editing purposes. The resulting loose binding of documents to design information is one of the cornerstones of the power of Lotus Notes. Traditional database developers used to working with rigidly enforced schemas, on the other hand, may consider the power of this feature to be a double-edged sword.

Notes works with several programming languages. Formula and LotusScript are the two main ones. LotusScript is similar to, and broadly compatible with, Visual Basic, whereas formula is unique to Notes. Nowadays Java is also integrated in Lotus Notes, as is Javascript.


Official history of Lotus Notes

External Links


Lotus Notes and Domino 6 Programming Bible, by Brian Benz and Rocky Oliver, John Wiley & Sons, 2003, ISBN 0-7645-2611-1