HCL Notes
Lotus Notes is a client-server collaborative software and e-mail system owned by Lotus Software, of the IBM Software Group.
Features
When Lotus Notes was initially released, the name "Notes" (taken from PLATO Notes, the mainframe-based software that preceded it) referred to both the client and server components. In 1996, Lotus released an add-on for the Notes 4 server called "Domino". This add-on allowed Notes documents to be rendered as web pages in real time. With the release of Notes 4.5, later that year, the Domino web server was integrated into the core Notes server, which was itself renamed to "Domino". The client is still called "Notes", while the server component is now known as "Domino". One may frequently see the terms used interchangeably.
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 Mac OS 9 and Mac OS X. Various versions of the client have been run under Wine on Linux, but with varying degrees of success and no official support. Domino servers can also translate most databases into HTML for browser based users.
The Notes client can be used as a IMAP and POP e-mail client with non-domino mail servers, recipient addresses can be retrieved from any LDAP server, including Active Directory. The client also does web browsing although most people configure it to launch their default browser instead.
In the past Notes had been criticized for being 'clunky'—at one time, the now defunct Interface Hall of Shame web site had an entire section devoted to the Notes 4 client's perceived user interface shortcomings. However, most, if not all, of those problems were addressed in subsequent releases. Notes 6.5, in particular, paid some long needed attention to the e-mail client, which has traditionally been regarded as the product's Achilles heel. Features such as unread counts on folders, drag and drop of folders, follow-up flags, reply and forward indicators and the ability to edit an attachment and save the changes back to an e-mail were all things that product's competitors had enjoyed for years. In terms of usability, this release went a good way towards redressing the balance with arch-rival, the Microsoft Outlook/Microsoft Exchange combination. Unfortunately, subtle irregularities in user interface behaviour and algorithms continue to earn the client disdain from many day-to-day users.
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 e-mail (HTML based e-mail is available to Java developers), NNTP-based news support, and automatic HTML conversion of all documents by the Domino HTTP task. In its latest incarnation (Notes7) it provides a web services interface. Domino can be a web server for HTML files too; authentication of access to Domino databases or HTML files uses Domino's own user direcory and external systems such as Microsoft's Active Directory.
Security is built into the product. Notes was the first widely adopted software product to use public key cryptography for client-server and server-server authentication and for encryption of data, and it remains the product with the largest installed base of PKI users. Until US laws regulating encryption were changed in 2000, Lotus was prohibited from exporting versions of Notes that supported symmetric encryption keys that were longer than 40 bits. At one point, Lotus negotiated an agreement with the NSA that allowed export of a version that supported stronger keys with 64 bits, but 24 of the bits were encrypted with a special key and included in the message to provide a "workload reduction factor" for the NSA. The net effect of this was that users of Notes outside of the US had stronger protection against private sector industrial espionage, but no additional protection against spying by the US government. This implementation was not a secret - in fact it was widely announced - but with some justification many people do consider it to be a backdoor. Some governments objected to being put at a disadvantage to the NSA, and as a result Lotus continued to support the 40 bit version for export to those countries. Under current US export laws, Lotus supports only one version of the Notes PKI with even stronger keys and no workload reduction factor. The Domino server's security tools also include S/MIME, SSL 3.0 support with industry standard key sizes for HTTP and other Internet protocols, X.509 client certificates, and an integrated certificate authority.
A particular strength of Notes and Domino is its replication facilities. Servers and clients can replicate database designs and data seamlessly, across all sorts of networks (including modems). This enables users to take full advantage of Notes databases while being off-line—with the client synchronizing any changes when client and server next connect. Even while off-line full security can be preserved, but only by encrypting each database to a specified Notes ID file. Prior to Notes 6, new local replicas were created without this encryption, which led some security Web sites to claim a major security back door in Notes. With Notes 6, however, new replicas are, by default, encrypted to the Notes ID that is used to create them. Replication can be scheduled, initiated manually, or initiated programmatically. Replication takes place between a client and a server (initiated by the client) or between two servers.
In addition to being a "groupware" system (e-mail, calendaring, shared documents and discussions), Notes/Domino is a platform for developing customized client-server and web applications. Particular strengths of this platform include its security and a wealth of capabilities (design constructs and code) that facilitate the construction of "workflow" type of applications (which may typically have complex approval processes and routing of data).
Programming
Lotus Notes databases are built using the Domino Designer client, available only for MS Windows. 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. Originally, replication in Notes happened at document (i.e. record) level. With release of Notes 4 in 1996, replication was changed so that it now occurs at field level.
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. There is no support for atomic transactions in Notes, and its file locking is rudimentary at best. 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 item, such as read or write security. 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. This means that the design of the database can replicate to users' desktops just like the data itself, making it extremely easy to deploy updated applications.
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 applications development uses several programming languages. Formula and LotusScript are the two main ones. LotusScript is similar to, and may even be considered a specialized implementation of, Visual Basic, but with the addition of many powerful native classes that model the Notes environment, whereas formula is unique to Notes but similar to Lotus 1-2-3 formula language.
Since Release 5, Java and JavaScript are also integrated into Lotus Notes. LotusScript is the primary tool in developing aplications for the Notes client, as well as server-based processing. Java and JavaScript are the primary tools for developing applications for browser access, allowing browsers to emulate the functionality of the Notes client. The Notes client can now natively process Java and Javascript code, although applications development usually requires at least some code specific to only Notes or only a browser.
External to the Lotus Notes application, IBM provides toolkits in C, C++, and Java to connect to the Domino database and perform a wide variety of tasks. The C toolkit is the most mature and the C++ toolkit is an objectized version of the C toolkit, lacking many functions the C toolkit provides. The Java toolkit is the least mature of the three and can be used for basic application needs.
Database
Notes databases are different from RDBMS since they are document centric, allow multi values in items (fields), don't require a schema (they use a meta schema instead), come with built in document level access control and store RichText data. However you can map a Notes database to a relational database by tools like JDBCSql for Domino or NotesSQL. For simplicity this is the mapping without RichText: [1]
RDBMS developers often find it difficult to conceptualise the difference. It may be useful to think of a Notes document (a 'note') as analogous to a BLOB (a binary large object). The benefits of this data structure are: 1. No need to define size of fields, or datatype - although you can if you want to. 2. Attributes (= Notes fields) which are null take up no space in a database 3. Built in full text searching
Version history
Notes was an offshoot of PLATO Notes, which ran under the PLATO system on the CDC 6600 1960.
- Release 1 - 1989 - The Notes client required DOS 3.1 or OS/2. The Notes server required either DOS 3.1, 4.0, or OS/2.
- Release 1.1 - 1990
- Release 2 - 1991
- Release 3 - May 1993
- Release 4 - January 1996
- Release 4.5 - December 1996
- Release 4.6: added IMAP support
- Release 5 - 1999: Added native support for SMTP and POP mail transfer activites
- Release 6.0 - September 2002. added Domino Web Access support
- Release 6.5 - September 2003
- Release 6.5.1 - January 2004
- Release 6.5.2 - July 2004
- Release 6.5.3 - September 2004
- Release 6.5.4 - April 2005
- Release 6.5.5 - December 2005
- Release 7.0 - August 2005. added DB2 support as database storage
Official history of Lotus Notes
See also
External links
- Lotus Developer Domain: Products, E-Zine, Downloads, Discussion Forums, Documentation
- The History of Notes and Domino
- IBM Redbooks - Lotus Books on Lotus Notes and Domino, written by IBM staff, IBM Business partners and customers.
- OpenNTF.org: Open Source Lotus Notes/Domino applications