Lotus Notes

November 13th, 2012
Tagged:

Lotus Notes is the client side of a client–server, collaborative application developed and sold by IBM Software Group. IBM describes the software as an “integrated desktop client option for accessing business e-mail, calendars and applications on [an] IBM Lotus Domino server.” Prior to release 4.5, the term Lotus Notes referred to both the client and server applications.

Concept

Lotus Notes is not a typical email application like Microsoft Outlook and Mozilla Thunderbird. Lotus Notes is a multi-user client-server application runtime environment which is often used for email and calendaring but these are essentially examples of applications that can be run within Lotus Notes.

The Lotus Notes product consists of several components

  • Lotus Notes client application (since version 8, this is based on Eclipse)
  • Lotus Notes legacy client; (still available in version 8 onwards – nlNotes.exe)
  • Lotus Domino server
  • Lotus Domino Designer (Eclipse based integrated development environment).

Whereas typical email applications such as Microsoft Outlook are programmed to be an email client, Lotus Notes is more analogous to a web-browser displaying an email service. Microsoft Outlook is only capable of performing a small number of tasks; emailing & calendaring where as a web-browser may be used to access a document management system, an encyclopedia, video library, online shopping.

Lotus Notes is similar to a web-browser in that it may run any application that has been developed for it with Domino Designer, published on the Domino server, and that the user has permission to use.

The Lotus Notes framework provides applications with functionality to access, store & present information through a user-interface, enforce security and replicate (that is allow many different servers to contain the same information and have many users work with that data). Although Lotus Notes may access relational databases (usually through an additional server called a Lotus Enterprise Integration server) Notes’ standard storage mechanism is a document database format, the Notes Storage Format or nsf.

As Lotus Notes is an application runtime environment email and calendering is an application within Lotus Notes, albeit one that IBM provides with the product but one that can be changed or completely replaced by a Domino application developer.

Applications for Lotus Notes are developed in a variety of development languages including a Visual Basic like language called LotusScript and Java. Applications may be developed to run within the Lotus Notes application runtime environment and/or through a web-server for use in a web-browser although the application interface will need to be developed separately for each. IBM is attempting to resolve this with a new development solution called xPages, where the application is consistently displayed using web-technologies but this is still an immature technology.

Related Software

Lotus Notes can be used for many applications as well as for internal communication collaborative applications, including e-mails, calendaring, PIM, instant messaging, Web browsing, and a variety of feature-rich custom applications. It can be used to access both local- and server-based applications and data. The current version of Lotus Notes is 8.5.2. (See http://www-01.ibm.com/software/lotus/products/notes/ for more details).

In early days of the product, the most common applications were threaded discussions and simple contact management databases. Today, Notes also provide blogs, wikis, RSS aggregators, CRM and Help Desk systems, and organizations can build a variety of custom applications for Notes using Domino Designer.

Lotus Notes can be used as an 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 it can be configured to launch the default browser instead.

Features include group calendaring and scheduling, SMTP/MIME-based e-mail, NNTP-based news support, and automatic HTML conversion of all documents by the Domino HTTP task.

Notes integration with IBM’s Sametime instant messaging allows users to see other users online and chat with one or more of them at the same time. Beginning with Release 6.5 this functionality is built into Notes and presence awareness is available in email and other Notes applications for users in organizations that use both Notes and Sametime.

Since version 7, Notes has provided 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 directory and external systems such as Microsoft’s Active Directory.

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.

In addition to being a groupware system (e-mail, calendaring, shared documents and discussions), Notes/Domino is also a platform for developing customized client–server and web applications. Its use of design constructs and code allows easier construction of “workflow”-type applications, which typically have complex approval processes and routing of data.

Since Release 5, Lotus server clustering has been able to provide geographic redundancy for servers.

Later in its product lifecycle, Lotus Notes adopted leading design techniques and prevailing user interface and navigation paradigms first popularized by Microsoft, Apple, Mozilla and others. Features Lotus Notes may have first included were GUI tabs for multiple pages, searches and functions, and squared-off workspace chiclets which are now used on the iPhone.

Lotus 8.5 is the newest release, providing more advancements in building custom software applications.

Client/Server

Lotus Notes and Lotus Domino is a true client/server database environment and the servers themselves can be virtually independent of the hardware and software. The server software is called Lotus Domino and the client software is Lotus Notes. The Domino software can run on Windows, Unix, Linux, AIX, AS/400 and even IBM mainframes such as the iSeries, and can scale to tens of thousands of users per server. There are different supported versions of the Domino server that are supported on the various levels of server operating systems, mostly corresponding to the latest server operating systems only being officially supported by a version of Domino that is released at about the same time as that OS.

Domino has security capabilities on a variety of levels. The authorizations can be granular, down to the field level in specific records all the way up to 10 different parameters that can be set up at a database level, with intermediate options in between. Users can also assign access for other users to their personal calendar and email on a more generic reader, editor, edit with delete and manage my calendar levels. All of the security in Domino/Notes is independent of the server OS or Active Directory, another flexibility not available with Exchange. Optionally, the Notes client can be configured to have the user use their Active Directory identity, but after starting the client the standard Notes security protocols are enforced. This was added to Notes to address the complaint of having to enter a password for every different system the user might access at work.

Domino servers can support virtually all SMTP standards of mail communications, whitelists, blacklists, encryption, certificates and SSL connections. A Domino server can also be used as an HTTP server and databases can include HTML, XML, cascading style sheets and Java applets to allow for a web interface only limited by the programmer’s abilities to use these tools.

Notes has the ability to easily copy individual records (called documents in Notes) between databases (called Applications in Notes 8.0 and later.) This includes individual memos from a mail file. Databases/Applications can be designed to handle virtually any kind of data with extremely flexible security parameters including workflow features within the standard Notes client application environment without having to write actual code. Dozens of application templates are included at no charge with the software and there are numerous forums and other resources with custom databases available.

Data replication

The first release of Notes included a generalized replication facility. The generalized nature of this feature set it apart from predecessors like Usenet and continues to differentiate Notes from many other systems that now offer some form of synchronization or replication. The facility in Notes and Domino is not limited to email, calendar, and contacts. It works for any data in any application that uses Notes Storage Facility (.nsf) files, which are the standard container for data in the Notes architecture, for its storage. No special programming, tagging, or other configuration is required to enable replication.

Domino servers and Notes clients identify NSF files by their Replica IDs, and keep replicate files synchronized by bidirectionally exchanging data, metadata, and application logic and design. Replication between two servers, or between a client and a server, can occur over a network or a point-to-point modem connection. Replication between servers may occur at intervals according to a defined schedule, in near-real-time when triggered by data changes in server clusters, or when triggered by an administrator or program.

Creation of a local replica of an NSF file on the hard disk of a Notes client enables the user to fully use Notes databases while working off-line; the client synchronizes any changes when client and server next connect. Local replicas are also sometimes maintained for use while connected to the network in order to reduce network latency. Replication between a Notes client and Domino server can run automatically according to a schedule, or manually in response to a user or programmatic request. Since Notes 6, local replicas maintain all security features programmed into the applications. Earlier releases of Notes did not always do so. Early releases also did not offer a way to encrypt NSF files, raising concerns that local replicas might expose too much confidential data on laptops or insecure home office computers. But more recent releases offer encryption, and as of Notes 6 it is the default setting for newly created local replicas.

Security

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; it remains the product with the largest installed base of PKI users.

Under current US export laws, Lotus Notes supports only one version of the Notes PKI with 128-bit symmetric keys, 1024-bit public keys, and no workload reduction factor. The Domino server includes security tools support S/MIME, SSL 3.0 with industry standard key much sizes for HTTP and other Internet protocols, X.509 client certificates, and an integrated certificate authority.

Notes and Domino also uses a code-signature framework that controls the security context, runtime, and rights of custom code developed and introduced into the environment. Notes 5 introduced execution control lists (ECLs) at the client level. Notes/Domino 6 allowed ECLs to be managed centrally by server administrators through the implementation of Policies. Since release 4.5, the code signatures listed in properly configured ECLs prevent code from being executed by external sources, to avoid virus propagation through Notes/Domino environments. Administrators can centrally control whether each mailbox user can add exceptions to, and thus override, the ECL.

Database security

Every database has an access control list (ACL) that specifies the level of access a user or a server can have to that database. A user’s access level determines what tasks he or she can perform in the database; A server’s access level determines what information the user can replicate. (The names of access levels are the same for users and servers.) Only a user or administrator with Manager access can create or modify the ACL. To set an ACL, the Manager selects the access level, user type, and access level privileges for each user or group in a database. Default entries in the ACL can be set when the Manager creates the database. The manager can also assign roles if the database designer determines this level of access refinement is needed by the application.

Programming

Notes/Domino is a cross-platform, secure, distributed document-oriented database and messaging framework and rapid application development environment that includes pre-built applications like email, calendar, etc. This sets it apart from its major commercial competitors, such as Microsoft Exchange or Novell GroupWise, which are generally purpose-built applications for mail and calendaring that offer APIs for extensibility.

Lotus Domino databases are built using the Domino Designer client, available only for Microsoft Windows; standard user clients are available for Windows, Linux, and Mac OS.5 A key feature of Notes is that many replicas of the same database can exist at the same time on different servers and clients, across dissimilar platforms; 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.

A database is a Notes Storage Facility (.nsf) file, containing basic units of storage known as a “note”. Every note has a UniqueID that is shared by all its replicas. Every replica also has a UniqueID that uniquely identifies it within any cluster of servers, a domain of servers, or even across domains belonging to many organizations that are all hosting replicas of the same database. Each note also stores its creation and modification dates, and one or more Items.

There are several classes of notes, including design notes and document notes. Design notes are created and modified with the Domino Designer client, and represent programmable elements, such as the GUI layout of forms for displaying and editing data, or formulas and scripts for manipulating data. Document notes represent user data, and are created and modified with the Lotus Notes client, via a web browser, via mail routing and delivery, or via programmed code.

Document notes can have parent-child relationships, but Notes should not be considered a hierarchical database in the classic sense of information management systems. 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 does not support atomic transactions, and its file locking is rudimentary. Notes is a document-oriented database (document-based, schema-less, loosely structured) with support for rich content and powerful indexing facilities. This structure closely mimics paper-based work flows that Notes is typically used to automate.

Items represent the content of a note. Every item has a name, a type, and may have some flags set. A note can have more than one item with the same name. Item 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 similar to Lotus 1-2-3 formula language but is unique to Notes.

Java was integrated into Lotus Notes beginning with Release 4.5. With Release 5, Java support was greatly enhanced and expanded, and JavaScript was added. LotusScript is the primary tool in developing applications 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.

As of version 6, Lotus established an XML programming interface in addition to the options already available. The Domino XML Language (DXL) provides XML representations of all data and design resources in the Notes model, allowing any XML processing tool to create and modify Notes/Domino data.

Since Release 8.5, XPages were also integrated into Lotus Notes.

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 includes a database management system but Notes files are different from relational or object databases because they are document-centric. Document-oriented databases such as Notes allow multiple values in items (fields), do not require a schema, come with built-in document-level access control, and store RichText data. Some object-relational features are being developed, and Domino 7 to 8.5.x supports the use of IBM’s DB2 database as an alternative store for Notes databases. (According to IBM, this NSFDB2 feature, however, is now in maintenance mode with no further development planned.) A Notes database can be mapped to a relational database using tools like DECS, [LEI], JDBCSql for Domino or NotesSQL.

It could be argued that Notes is a multi-value database system like PICK, or that it is an object system like Zope, but it is in fact unique. Whereas the temptation for relational database programmers is to normalize databases, Notes databases must be denormalized. RDBMS developers often find it difficult to conceptualize the difference. It may be useful to think of a Notes document (a ‘note’) as analogous to an XML document natively stored in a database (although with limitations on the data types and structures available).

Since Lotus Notes 8.5 IBM started to change the term Database to Application, because of the reason that these files aren´t really object databases as mentioned above.

The benefits of this data structure are:

  • No need to define size of fields, or datatype;
  • Attributes (Notes fields) that are null take up no space in a database;
  • Built-in full text searching.
  • Configuration

The IBM Lotus Domino server or the IBM Lotus Notes client store their configuration in their own databases / application files (*.nsf). No relevant configuration settings are saved in the Windows Registry if the operation system is Windows. Some other configuration options (primary the start configuration) is stored in the notes.ini (there are currently over 2000 known options available ).

Use as an Email Client

Lotus Notes is commonly deployed as an end-user email client in larger organizations, with IBM claiming a cumulative 145 million licenses sold to date.

When an organization employs a Lotus Domino server, it usually also deploys the supplied Lotus Notes client for accessing the IBM supplied Lotus Notes application for email and calendaring but also to use document management and workflow applications. As Lotus Notes is a run-time environment, and the email and calendaring functions in Lotus Notes are simply an application provided by IBM the administrators are free to develop alternate email and calendaring applications. It is also possible to alter, amend or extend the IBM supplied email and calendaring application.

The Domino server also supports POP3 and IMAP mail clients, and through an extension product (Domino Access for Microsoft Outlook) supports native access for Microsoft Outlook clients (now with limited support).

Lotus also provides iNotes (in Notes 6.5 renamed to “Domino Web Access” but in version 8.0 reverted back to iNotes), to allow the use of email and calendaring features through Internet Explorer and Firefox web browsers on Windows, Mac and Linux. There are several spam filtering programs available, and a rules engine allowing user-defined mail processing to be performed by the server.