Lotus Notes

From Example Problems
Jump to navigation Jump to search
File:Notes65Welcome.png
IBM Lotus Notes 6.5 default Welcome Page.

Lotus Notes is a client-server collaborative software and email 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.

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

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 (HTML based email 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.

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, and in fact was widely announced, but with some justification many people do consider it to be a backdoor, although it was never a secret. 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 happen: client to client, client to server, server to server.

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

File:Lotus Notes Release 5 Workspace.gif
Lotus Notes Release 5 client workspace


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

You can develop Notes applications using several programming languages. Formula and LotusScript are the two main ones. LotusScript is similar to, and broadly compatible with, 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 or Excel formula language. Nowadays Java is also integrated in Lotus Notes, as is JavaScript.

Java, JavaScript, and LotusScript are the primary tools for developing Domino based applications (those developed solely for browser access).

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. 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
  • Release 6.0 - September 2002
  • 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 7.0 - August 2005.

Official history of Lotus Notes

See also

External links

de:Lotus Notes fr:Lotus Notes ko:로터스 노츠 nl:Lotus Notes pt:Lotus Notes