The Architecture of Lotus Notes

A comprehensive explanation of what Lotus Notes really is and how it works.
By Hugh Pyle, Lotus Development Corp.

This classic article by Lotus engineer Hugh Pyle comprehensively explains the basic structures and concepts of Lotus Notes. While it was written in the context of Notes 3 with some specifics about 4, it remains relevant as the core of Notes and Domino is essentially the same today. Historians should note that this article was written before IBM purchased Lotus Development Corp.

Figure 1 -- Lotus Notes architecture components

Figure 2 -- Lotus Notes' three models for communication: one-to-one messaging, sharing a common database, and distributed documents in replicated databases throughout the world
Lotus Notes technology is a departure from traditional database or messaging products. Traditional database systems are the backbones of most corporate information systems. They are designed to manage the tabular information generated by business operations, such as order processing, inventory control, and payroll management. These applications are data-centric, organizing information by breaking it into basic elements. Knowledge and information are gained only by sorting and querying these data elements in various ways. They are transaction-oriented, built to reflect the most current state of the data. They are generally not good at reflecting the changing states of information over time. If they are distributed, they require a single-system image so that if a number is debited in one place, it’s debited everywhere in a single transaction. In this sense they can’t easily handle access by disconnected users.

Traditional electronic mail and messaging systems, on the other hand, are designed for efficient transmission of messages from one place to another. They can handle simple and complex information, and they can deliver it to specific individuals or applications. However, they generally have no facility for capturing or tracking the information; they simply provide reliable delivery.

Most organizations need robust and scalable strategies for both databases and messaging, to manage and disseminate knowledge. This is the mission of Lotus Notes.

Because it is unique, fully exploiting Notes requires a new perspective. This article explains the structure of the Notes programs on the client and server and the structure of the Notes database (figure 1). This article bridges the gap between general architectural descriptions and detailed information which can only be found in the API documentation.

For groups of people to work together, it’s important that technology doesn’t obstruct communication. Therefore, Notes software is provided for a wide variety of operating systems, and it’s drivers support all the major network protocols. The result is an any-to-any connection matrix, allowing freedom of choice. Users can communicate anytime, anywhere, irrespective of their particular working environments.

Descriptions in this article relate to Lotus Notes version 3. However, the basic structures have been in place since version 1. layout, Notes still preserves backward compatibility. Future versions will continue to add features without changing the essential design. Documentation of the C data structures is in the Notes API Toolkit and isn’t duplicated here.

Client-server architecture

Lotus Notes is a true client-server system. The Notes server, running on Windows/NT, OS/2, NetWare NLM, Solaris, SCO, IBM AIX, or HP/UX, does more than simply take queries from database users and return result sets. It maintains application-defined indexes, stores and forwards electronic mail, replicates databases with other servers or workstations, performs agent tasks, and is extensible to accommodate user-created agents or third-party add-ins. The Notes client, running on Windows, OS/2, Macintosh, Solaris, SCO, IBM AIX, or HP/UX also contains most of the server functionality. This lets users replicate databases from a server and take those files away from the network; send and receive e-mail; create, modify and index documents locally; and synchronize replica databases over a LAN or WAN connection

In addition to giving you choice, client-server is inherently more secure and efficient than simple file-sharing. Access to the data is controlled by the server at a fine level of granularity, resulting in smaller amounts of data being passed between the user's workstation and the remote server.

Security

From the outset, Lotus Notes was developed as a secure system. Done in a manner that works across vendors’ operating environments, Notes utilizes technology licensed from RSA Data Security, Inc. of Redwood City, California, the industry leader in cryptographic algorithms and services. The RSA public key system enables user authentication, certification, and message signature. The RC2 and RC4 secret key systems enable encryption of documents with named keys, and allows for the creation of secret keys for secure channels of communication over the network.

Notes provides four classes of security:

There are no back-doors into the system. Neither Lotus nor any hacker, foreign or domestic government agency, nor competitor has or will have a super-user capability in your information system.

Electronic messaging

Lotus Notes includes an e-mail system which uses its native objects, Notes documents, and provides store-and-forward. The Notes server network intelligently provides best-path routing analysis and fault tolerance. The Notes kernel and mail transfer agent (MTA, also referred to as ROUTER) implement features, such as blind copies, delivery confirmation, return receipts, encrypted messaging, and sender authentication. Electronic mail is tightly integrated into Notes applications.

For those who wish to retain an existing e-mail system, the Notes workstation software lets users send mail to any VIM-compliant system and (with the forthcoming VIM-to-MAPI converter) to any MAPI-compliant e-mail transport. The coexistence of Notes with alternate mail systems is transparent to the users. To provide back-end integration between different mail systems, Lotus and its business partners have developed a large number of mail gateways, connecting to all the popular LAN- and host-based e-mail products.

E-mail standards are very important to this. The coming Lotus Communications Server (LCS, based on the Notes 4.0 server) provides native X.400 and SMTP/MIME MTAs in addition to the existing Notes and cc:Mail transport protocols. LCS will also provide three standard mail interfaces for programmers: VIM, CMC, and MAPI SPI. This integrated architecture gives a robust and flexible solution to enterprise mail requirements.

Database replication

Store-and-forward e-mail is necessary but insufficient for many applications. When used as a method of database synchronization, a unidirectional message route is not robust. There needs to be a connection-oriented, bi-directional, method of document sharing.

Lotus Notes’ unique replication facility means that databases on different servers are automatically synchronized and change conflicts are resolved. This scales easily from two to thousands of replicas of a database. Replication does not require administrators to configure the individual database connections. Nor does it require a particular server-connection topology. When any two copies of a database are replicated, each exchanges the latest modifications with the other, guaranteeing that they both finish in synchronization. If the network link breaks during this process, there’s no need for commit and rollback types of protection, since replication will continue when any link between replica databases on different servers is re-established.

The combination of true replication with the Notes object store, where documents and application design elements are self-contained note objects, releases workgroups from constraints of time and geography (figure 2).

Notes servers can be configured to communicate with one another in peer-to-peer, hub-and-spoke, and ad hoc topology. Due to the flexible nature of Notes, topology planning can be independent of application or information strategy planning, thus simplifying deployment within a large organization.

Also, because of the peer nature of the Notes architecture, interconnection of servers to other servers or users to servers is treated identically. This is why it’s so easy and natural for mobile users to use a modem to connect their computers into the system. Notes is designed for occasionally-connected communications, whether the entity communicating is a user or another server.

Lotus Development Corp. is committed to making a Notes network manageable. Version 3 includes remote console administration and actively generates alerts that can be sent to network administrators through e-mail. Alerts indicate such things as low disk space, failed network connections, and communication bottlenecks. In early 1995, Lotus will provide notesView, an SNMP-based application to manage all aspects of the messaging system. Lotus messaging management facilities will support industry standard protocols such as SNMP, allowing the Lotus Communications Server to be managed by other vendors’ management systems.

Notes kernel services

The core modules of Notes are shared between client and server code. This kernel is exposed as the Notes C-language API. One function of the kernel is to insulate its clients from the underlying hardware and operating system. This approach is necessary in any architecture that must span existing and future operating-system choices. Insulation of the groupware application developer from the platform’s quirks is the only way to create a truly open system, where choice of software is not constrained by a particular hardware or OS vendor.

Application developers, whether working at the API level or in the Notes user interface, gain three key isolation layers: from the operating system, from the network transport, and from physical location of the object store (via a transparent form of remote procedure call).

Other kernel functions include security, database access, document structures, indexes, and full-text search capabilities.

All these core modules are available to higher layers of Notes, including API programs, in the client and in the server environments, on all the platforms supported by Notes. For example, Notes API code can be written to be completely portable between Windows, OS/2, various flavors of UNIX, and NetWare NLM. Figure 3 shows many of the components.

Figure 3 -- The Notes kernel, the major constituents of the Notes workstation and server, and the integration options available to API developers.

Important modules in the Notes kernel are:

Workstation modules

The Notes client workstation software includes the Notes kernel and four major additional modules:

Server modules

The Notes server consists of one core server program. It manages the server’s other processes and threads, and users’ connections with the server. The server functionality is largely implemented with modules. Some are necessary; others are optional or developed by third parties.
Important modules include This server platform gives powerful, extensible intelligence. It can automatically connect to other servers to exchange mail and replicate databases. It uses the host operating system to exploit its particular features, such as SMP multiprocessor systems to spread the workload. It lets the clients be mobile, so a workstation can use local Notes databases when not connected to a network, and can connect to any server by LAN or dial up for direct server access or to replicate and exchange mail.

Client-server communication

The transport between client and server is implemented in a number of drivers under a common network layer. Selection of the appropriate driver for any named port is controlled by the user. Network port selection is also user-definable if the machine runs multiple network protocols and has a preferred hunting order. Selection of the appropriate serial port for a WAN connection between any two machines is controlled through connection records in the Name & Address Book.

When a connection is established, the client's identity must be verified. The server creates a random number and encrypts it using the alleged client's public key, then asks the client to decrypt. This decryption can only be performed using the client's private key; if the resulting value is returned to the server correctly, the user is authenticated. Then a secret key can be created for secure channel of communication between client and server. The server starts a thread to process this client's requests.

The client-server request protocol lets the client ask the server to perform various bulk actions—create a full text index, open or compact a database, categorize or search a number of documents. This is the first level of delegation of processing by the client.

The second level, a form of remote procedure call, occurs inside the kernel modules. For instance, if the workstation calls NIFOpenCollection to open an index, the internal RPC layer transfers this request to the server, which updates the index if it is out of date. And when retrieving a view, only the necessary portions are transmitted for display on screen. Due to the RPC layer, these processes are independent of whether the database is on the local hard disk or on a server, and of whether the server is connected by LAN or over a telephone line.

Notes database

Users compose, read, manipulate, forward, and interpret Notes documents. At the user interface, there are two main tools for document access. Other tools are available. Macros can run on the workstation and the server, on individual documents and on batches of documents. The full-text-retrieval engine is also an important tool.

Different users have differing perceptions of how this all works. The parable of the elephant in a darkened room seems appropriate. It is sometimes difficult for software professionals to "place" Notes in relation to other development tools, document management and workflow applications, relational databases, and legacy messaging systems.

User model

Here’s a user view of Notes, using terms from object-oriented design:


This is a valid description of Notes as a document-object database. But internally, there’s really little distinction between data documents, form designs, view definitions and other design elements. They are just different Notes Classes. This abstraction means that replicated databases not only distribute the object data, but also the object methods, using one consistent infrastructure. Distribution of applications in this manner is one of Notes’ key strengths.

The simplified diagram in figure 4 illustrates how users interact with these documents, forms and views; and in the database, how the data and design elements are just different-colored instances of a more abstract Note.

Figure 4 -- Notes database, simplified, showing how users interact with major components.

Structure of the note

A note, whether a document, a form definition, or whatever, has a consistent and flexible structure. The reserved structures which are used to create the design notes are described in more detail later. A Note always consists of:

The ORIGINATORID deserves more explanation. It is the structure that identifies all replicas of the same note. Here are its members and what they contain:

Every note in the database can have a different number of items, of different data types. Contrast this self-contained flexible document format to traditional relational database systems, in which the structure of a table is defined for all records. Relationships between documents are provided by some internal structures, such as the relationship between main documents and responses, and by any application-defined structures, such as lookups into Notes views or external databases, to give referential integrity.

The NOTEID is a compact and efficient identifier for a Note. It provides a record relocation vector (RRV), essentially a file position pointer to this note in this database. When you need to store lists of document IDs or to identify collections of documents or lists of unread documents, there’s a structure called IDTABLE, which is a compressed list of NOTEIDs.

Neither the ORIGINATORID nor its subset the UNID is not a file pointer, but is rather a unique identifier constructed from random numbers and timestamps. An internal index in the database gives fast access to a document by knowing its UNID (for example, so that the replicator can identify documents in common between database replicas). In relational database terms, the UNID is the primary key. To the user, the Views provide the important document indexes, each having application-defined keys.

A Notes database contains documents and design elements (Notes) which each contain and define their own structure. This structure can include an enormous variety of data from different sources. Certain internal structures build on this open object store. Notes applications provide the user with tools for more- or less-structured interaction.

Summary and non-summary items

Some data items contain simple data types and are used to contain summary information about documents: author name, creation date, title, e-mail recipients, and so on. Others contain compound information: rich text, embedded objects, graphics, and the like. This distinction is important in any object management system that has to index and sort documents for user accessibility. In Notes, this distinction is made by flagging items as summary or non-summary.

Summary items are available for computation in Notes formulas, for lookup into or from external data sources, and for indexing and presentation in views. Non-summary items cannot be evaluated in formula, nor can they be used for collation. They provide the storage for compound objects.

Object linking and embedding (OLE) is a powerful method of packaging and referring to documents from a server application in such a way that they can be embedded or linked in other client applications. For example, a Freelance presentation or a Paintbrush graphic can be embedded in a wordprocessing document. The embedded object can be edited by clicking on the object, launching the OLE server it is associated with. Various verbs implement the different modes in which an OLE object can be manipulated; for a sound or video object, verbs might be Play and Edit.

This packaging is important because it provides a way for applications to include data types they don’t directly handle. The client software need know nothing about the embedded object except its server name. The Registration Database in Windows gives more information about the server program, such as its location on disk and its verbs. OLE objects are opaque to the container application. A product such as Notes, designed to be a flexible object container, can store many OLE objects in many documents, but this gives little benefit to users unless they know something about the documents. It is not sufficient simply to know "This is a spreadsheet".

For this reason, Lotus developed the Notes/FX protocol. This enables bi-directional field exchange of summary information between the server and client. Using Notes/FX, a Notes application can store OLE objects and can also find important information about their contents, such as the number of pages, the values of spreadsheet ranges, and so on. In the Notes database, this summary information can be indexed and searched by users. So, a database of expense-report spreadsheets can be summarized and totaled by Notes. Field values from Notes documents can be placed into the spreadsheet, word processor, or server. For example, this can avoid duplicate storage or typing of addresses in a customer-service application. This gives true value to embedded objects. Microsoft has recently adopted Notes/FX in their product suite.

Documents

Document structures are usually defined by the forms with which they are edited. Additionally, there are important items for system use. These items include:

Electronic mail


E-mail is simply Notes documents which include particular reserved items and a flag which indicates to mail this document immediately. The reserved item names include: To send a mail, the document is transferred by Notes into a special database named MAIL.BOX on the server. The mail router agent picks up the document, determines routing, and forwards the mail either to another server or to the recipient’s mail database as defined in the user information.

Form definitions

Form definition notes define the layout on a form on screen, including fields (through which the document items are displayed), formulas for field default values, input translation and validation, and form security. Form items include: View definition notes define the selection of documents, and columns specifying calculation or field-retrieval formulas and sorting. Specific items in the view definition are: The view definition note doesn’t contain an index of documents in the database; the index is held as an object in the database, and maintained by the NIF subsystem. Thus, when view definitions replicate to other servers, the index collection is not replicated but rebuilt locally. This reduces connection cost and allows for selective replication and planned differences between replicas of one database.

Design note

The Design note is an internal index of important information about all the forms, views, and other design elements of the database. This provides quick access, for example, such as when forms must be loaded to display documents.

Other classes

Other design elements are classes of note, including:

Many of these note classes are single-instance; they occur once per database. This is marked with a special flag so they can be identified quickly, and so that the replicator can behave accordingly, not storing more than one copy per database.

Item data structures

The Summary items (text, text-list, number, number-range, timedate, timedate-range) are stored in very compact, efficient structures; this enables their contents to be indexed and computed very quickly. This also provide enormous flexibility in multi-value field storage.

The Compound Document (CD) data structure is designed for maximum flexibility and extensibility to incorporate the variety of rich objects which must be included in Notes rich-text. It also includes nesting of paired structures. For example, "hotspot begin" and "hotspot end", between which may be "graphic begin"..."end" and so on. The CD structure’s comprehensive rich-text support means that duplicate information may be stored if required. For example, a single graphic image can be stored in bitmap, metafile and PICT formats, for quick rendering on any Notes workstation on any operating system.

The extensibility of the Compound Document structure makes it possible to incorporate support for future objects in Notes documents. For example, a major part of the Notes 4.0 development is to provide excellent OLE 2 capability. Figure 5 shows the internal structure of these data types.


Figure 5 -- Internal structure of various Notes data types

The common data types include:

These highly flexible and efficient data types give enormous potential to the application developer.

Programmability

The above description shows how Notes makes a distinction between summary (computable, indexable) information and non-summary (compound, relatively opaque) information. These two types of information have different access requirements. Access to summary information about a note must be highly optimized. Notes accomplishes this by physically separating summary items from a note into a summary buffer, which is stored for high-speed access, and objects, which contain non-summary information and may be retrieved at lower speed. Thus, rich-text fields are stored as objects (BLObs) and other fields are held in a summary buffer.

Summary data can be manipulated very efficiently, by the Compute engine and the NIF indexer, for example. The Notes formula language, executed through the Compute module, allows application designers to build intelligence into forms, for computation at the workstation; into views, for selection and collation; and into macros, for agent or rules functionality at the client or scheduled on the server. The formula language is highly optimized and tailored for building group-collaboration and workflow applications.

Notes’ formula language will be supplemented with LotusScript in Notes 4.0. LotusScript is an object-oriented, BASIC-compatible language which is an important part of Lotus’ programmability strategy for the entire suite of desktop and communication products. It interacts with each host product (Notes, for example) by having the hosts publish various classes of object, which can be created and manipulated with LotusScript code. In Notes, developers will be able to write LotusScript programs, executed on forms (in buttons and other form elements) or as server-based agents. These programs will be able to manipulate Notes documents and data items in a very high level.

The combination of the Compute engine for optimized formula evaluation, and the LotusScript compiler for procedural and object-oriented scripting, results in a highly efficient and powerful development environment. The developer’s code is stored in the same Notes databases which it defines and manipulates.

Indexing and searching

The application designer can create multiple views of the data in a Notes database. Users have the ability to create private views where they want to see a particular selection or presentation of the documents.

Views are defined by the selection of documents which match a formula; by the hierarchy of parent and response documents, if this is required; and by columns which structure summary information. A column displays the contents of a field, or the result of a formula (which may involve one or more fields). Columns can be categorized in multiple levels, to group related documents together; they can be sorted, by date or alphabetically or by the results of any formula; and they can be totaled.

Views operate internally by the creation of a view definition note (which replicates with the database) and the maintenance of an index by the NIF subsystem. NIF uses B-tree index algorithms to hold coherent, browsable collections of summary buffers with the column calculation results, collated according to specifications in the view definition note.

If a column is sorted, it must be collated in the index. This is done in three ways.

Unlike TUMBLER, CATEGORY collates list data types exactly the same way as KEY: Each list value is compared; if equal, the next one is compared to break ties; and so on until the list is exhausted.

As an example, if a collating spec consists of CATEGORY "Folder", CATEGORY ""Author", and KEY "Date", the top level of the index only contains as many ghost entries as there are unique Folder names. Below it, the next level contains all unique Author names within the folder, and below each Author, the next level contains all the index entries for each Author sorted by Date. The result is a three-level hierarchical outline where all index entries are always at the Nth level, and all intermediate category levels always contain only ghost entries.

The Topic Full Text Retrieval engine, licensed from Verity Inc., creates associative indexes of the full text of Notes documents. Full text search lets users search for words, phrases, numbers, and dates, as well as perform queries using wildcards, logical and proximity operators, and other advanced features. Search results are ranked for relevance and displayed in the view.

Full text search also allows Query By Form, entering logical queries into specific fields on a form.

Sequential search and replace is also available within a data-base, a view or a single document. This may be performed on the server or the workstation as efficiency dictates.

These flexible methods provide users with many ways to manage and arrange the contents of multiple databases. Their generic nature allows powerful applications to be built utilizing their various features.

Structure of the Notes database

A Notes database is the container for notes: documents, form designs, view definitions, and all the other classes of note previously described (figure 6). The flexible structures and features of the notes are tailored to the need to transport and identify them: unique identifiers, last-modified timestamp, summary information and so on. The container database also reflects its function: the need to quickly retrieve appropriate information, the need for extreme reliability, and the need to support replication.


Figure 6 -- Structure of a Notes database

The Notes database, a file that usually has the extension .NSF, begins with some header information and an allocation map. Important parts of the header include:.

The replicator task and others use this information to efficiently decide whether a database should be replicated, and which database replicas exist on any particular server. The database contents can be scanned extremely quickly for the notes which have been added or modified since a certain time. This again is optimized for the replicator.

The rest of the database contains notes and other objects; summary buffers stored for rapid access, and non-summary items in another area of the file. There is another internal abstraction: Notes themselves are a specialized class of object. Other object classes include file attachments, OLE packages, and packed lists of documents (unread lists, for example). Every object is identified by a Record relocation vector (RRV) which is a file-position pointer; a NOTEID is simply the note’s RRV.

Some objects, such as the collections which constitute an index of the database, are never replicated, since they must be built appropriate to each local copy of the database.

System databases

Certain Notes databases are used by the system for specific tasks. These are no different from other databases, but the system configuration indicates that they have special uses. The major system databases are:

Notes’ inherent flexibility and extensibility ensures that the core databases can accommodate all present and future needs (as mandated in the X.500 specification, for example).

Relationships between documents

Lotus Notes recognizes that an object container only becomes useful when its contents can be indexed and related. The concept of summary fields, used to collate documents in views, is one part of the solution. The other part is to create structured methods of relating documents to one another.

One key relationship is between members of a hierarchy. The parent, response, and response-to-response hierarchy in Notes is used to relate topics in a discussion, to relate documents in a correspondence database, and so on for all the major types of workgroup application.

Other Notes applications can define their own structures for document relationships. To avoid duplication of storage, forms can perform lookups into other views to retrieve a column’s contents, and documents to retrieve individual values from key documents, using the @DbLookup and @DbColumn commands.

Version control is included in Notes through the ability to store prior versions, or the latest version, of a document as a response to the current, or previous, version.

Doclinks are hypertext links between documents and (recently, with the introduction of SmarText 3.0) from outside Notes altogether. They give users some ad-hoc ability to knit related documents together where there is no formal relationship.

If the structure of an application mandates referential integrity or normalized data structures, the design of the application is crucial. This might be the case if the application is to be your single database of all customer contact, or if the database must use key values to lookup into a relational database system. The flexible, diverse structure of Notes databases need not make your data any less structured that the data in a relational system -- everything is a consequence of the design. Notes is as suitable for those applications requiring standardized data structures, such as inter-enterprise workflow and EDI, as it is for those needing little structure.

Relationships outside the database

External linkages are essential to integration with transactional or legacy databases and other data sources. There are a number of these methods included in Notes, and open interfaces for third-party providers.

The highest level of integration is found at the platform-specific compound document format. Notes is the perfect container for OLE embedded objects, allowing live application objects to be embedded seamlessly in documents for sharing with other users.

In addition to its inter-application data exchange facilities, a second level of data integration is achieved through use of Notes’ rich set of import/export filters. By using these filters, users can copy information from application files directly into Notes databases or documents, retaining much of the original application's formatting information, or from Notes documents to application formats, again retaining the original look.

From Notes forms (field formulas, buttons and other elements), smarticons and macros, the @DbLookup and @DbColumn commands allow lookup into Notes databases. They also support the DataLens driver technology, which allows retrieval from external databases including Oracle, Sybase and Microsoft SQL Server, Informix, IBM Database Manager, Paradox, and dBASE. The @DbCommand function allows database queries in SQL and proprietary command languages, and it allows access to stored queries on the database server. DataLens also supports ODBC. These functions can be run from the workstation or, in background macros, on the server for agent-type integration.

The NotesSQL driver provides an ODBC interface to Lotus Notes data. Thus a wide range of third-party applications have access to Notes databases without special APIs.

Using the Notes API, many developers have created specific integration tools for their customers. Powerful tools available include Trinzic’s InfoPump, a scripted database integration utility which can migrate and synchronize data from a wide variety of sources, on an event-driven or scheduled basis.

Front-end development tools which can access data from Notes and integrate with other data sources include Lotus Notes ViP, Powersoft PowerBuilder, Gupta SQLWindows, Revelation OpenInsight, and many others. Lotus Development Corp. also sells a range of companion products, including the image-capable Lotus Notes:Document Imaging product, incoming and outgoing FAX gateways, PhoneNotes for developing interactive voice response applications integrated with the Notes environment, and an optical character recognition (OCR) server for scanning faxes or images into Notes documents.

Using these open tool sets, the application developer and the systems integrator can relate Notes information with other systems for integrity across the enterprise.

Notes applications

The combination of form and view design tools means that Notes applications are developed in much less time than with traditional 3GL and 4GL tools. Design is flexible even after the application has been placed into production because changes roll out through replication, at the same time as the data documents replicate. This unique feature, inherent in the design of Notes, means that applications can be refined continually to conform to user requirements, with no prototype-test-deploy-evaluate cycle; rather, continuous proto-cycling iterations can be used until everyone is happy.

The database templates that ship with Notes can be used to create identical applications or customizable applications. Design inheritance from standard templates and shared field definitions within a database provide data dictionary capabili-ties, enabling leverage and reuse of design elements, maintainability of database design over time, and the ability to set corporate design standards.


Figure 7 -- Overall Notes architecture

Lotus Notes and the Lotus Communications Server

Notes’ robust and scaleable server environment is also the basis of Lotus’ next generation of messaging servers. cc:Mail users will have the option of keeping the shared-file PostOffice environment or of migrating to a client-server system if this is more suited to their long-term needs. The integrated platform is called the Lotus Communications Server. It includes cc:Mail integration (with all the advantages of the cc:Mail system), multiple standards support in APIs, and a single platform for external gateways. It is also the fourth generation of the Lotus Notes server. This gives a uniquely powerful environment for communication.

Lotus Notes is a strategic system. Businesses deploy the Notes product for reasons which dramatically affect their performance. With any strategic software purchase, it is important for IT planners to understand the foundations of that software. The architecture of Lotus Notes is of long-term importance to the way people collaborate and do business. With this information you can make truly informed decisions about the enterprise strategies of Lotus Development Corp. and other software vendors.