So far, this chapter has described some of the strengths behind Notes and Domino. Now you'll read about how Notes clients interact with Domino servers, Domino databases, replication, and security. You'll also learn about how Notes and Domino integrate email, calendaring and scheduling, and remote access.
Notes Clients and Domino Servers
Notes and Domino represent a true distributed client/server application. A lot of discussion over the last several years has centered on client/server applications. Some IT departments have successfully replaced mainframes with PC-based client/server applications. A client/server system has two basic pieces: the client, which requests services, and the server, which supplies those services. Typical client/server systems exist on LANs or WANs and take advantage of the available network protocols to transfer information.
Domino applications are ”or can be ”distributed; more than one copy of a database or application can be distributed to more than one client or server.
A Domino database is a container for data and application code within Notes and Domino that is also referred to as an Object Store. Data is represented by fields contained within documents, so a general definition of a Domino database is a collection of related documents. This is quite different from a relational database, which can be defined as a collection of related tables and reflects Domino's origins as a document-driven database. This is an important distinction, especially if you are familiar with relational databases. A database table contains records, which loosely correspond to documents in Domino. Chapter 2, "The Release 6 Object Store," discusses Domino databases in detail. Records in a relational database such as Oracle or Sybase are structured and defined by tables and have fixed field definitions. Documents in Domino are unstructured because they do not have fixed field definitions. Similarly, fields themselves are unstructured; for example, a text field has no property to set its width. A Domino database is also unique because it can store and link many different types of objects.
The extension applied to a Domino database is .nsf, which stands for Notes Storage Facility. In this storage facility are special fields called rich-text fields. These fields can contain entire files, bitmaps, OLE objects, and different fonts and formatting. In effect, Domino databases are bit buckets that can contain just about any data structure or pointer. The document links described previously are examples of how to link a database document in another database store to an email message. Such links are similar to hypertext links on the Web.
One of the key features of a Domino database is that you can distribute copies of it to Notes clients and other servers. Through a process called replication, Notes clients and servers keep the information synchronized. A replica copy of a database is a special type of copy. Every Domino database has a replica ID that identifies it to Notes clients and Domino servers. When two databases have the same replica ID, they are replica copies. Servers and clients can then replicate the two copies, which synchronize the databases so that, when complete, they contain essentially the same information. This process compares all elements of the database, including design elements, and checks for modifications, deletions, and additions.
Replication can occur between Domino servers or between Domino servers and Notes clients. Replication can be controlled by formulas, which limit the data exchanged between the replica copies of the database. For example, a salesperson might want to see only documents that relate to his sales territory; a replication formula can be created to limit the documents replicated to the Notes client. This permits the user to work more efficiently . Similarly, you can limit the documents sent between replica copies on servers.
It is important to note that not all copies of the database are in synch at the same time. Over time, however, all the replicas will be synchronized. This has an impact on the type of applications that are suitable for Notes. If you depended on and absolutely had to know the precise number of items in stock, you could not use a distributed database with multiple replicas and expect that level of precision. The scenario shown in Table 1.1 should help you better understand this; for the purposes of this illustration, assume that each user is working on a local replica of the database and that the database resides on only one server.
Table 1.1. The Effects of Replication on a Database
|User||Action||Server||User A||User B||User C|
|A||Creates document A1||None||A1||None||None|
|B||Creates document B1||None||A1||B1||None|
|B||Replicates with the server||B1||A1||B1||None|
|C||Creates Doc C1; replicates||B1, C1||A1||B1||B1, C1|
|A||Replicates with the server||B1, C1, A1||A1, B1, C1||B1||B1, C1|
|B||Replicates with the server||B1, C1, A1||A1, B1, C1||B1, C1 A1||B1, C1|
|C||Replicates with the server||B1, C1, A1||A1, B1, C1||B1, C1 A1||B1, C1, A1|
Only when user C performs the last replication are all the replicas of the database finally in synch. Typically, this is not a real problem (and the illustration is a little contrived), but you must understand this concept not only to design effective applications, but also to avoid using Notes inappropriately.
With the power of this database access technology at a user's fingertips, some security must be associated with it. Notes uses RSA encryption, arguably the most secure and advanced encryption scheme available today. RSA uses the initials of the three founders of RSA Data Security ”Rivest, Shamir, and Adelman. Developed in 1977, RSA encryption is based on a dual-key system of public and private keys. It is rumored that it would take a roomful of mathematicians and a supercomputer thousands of years to break the encryption.
The public and private keys used for encryption are mathematically related. These keys are issued whenever an ID is generated for users and servers. For a user to connect with a server or for a server to connect to another server, a test called authentication must be passed. After a user or server's identity is verified as authentic , then and only then is any information exchanged.
When access to the server is granted, access to databases is limited by the Access Control List (ACL). This list can contain servers, individuals, groups of servers, groups of individuals, and mixed groups of both servers and individuals. Security, as it pertains to application development, is further discussed in Chapter 23, "Security and Domino Applications."
Email has gone through several phases of growth, starting with simple text messages on mainframes and online services. Next came file attachments and embedded graphics, and finally pointers to objects in other data stores and on the Internet. In Notes and Domino, this is embodied in a document link. Release 4 introduced three levels of links: database, view, and document. Clicking the doclink (short for document link) icon opens the link.
Because you can easily attach files and embed images, Notes email is perfect for communicating with clients and co-workers . On a systems level, it is one of the most reliable and complete transport mechanisms for messaging available today. Notes mail can be connected to email from different systems, such as Internet mail and Microsoft Exchange. Domino servers support Notes mail, POP3, SMTP, and IMAP mail. Today you can seamlessly receive Internet mail, faxes, and even voice-mail messages directly in your Notes mailbox.
Calendaring and Scheduling
Release 4.5 introduced Calendaring and Scheduling to Notes. R5 added many new enhancements, including calendaring and scheduling for groups. The Release 6 calendar has a new look and feel, plus many new features for developers.
Because Calendaring and Scheduling is a part of your email database, it can be replicated and you can take it wherever you go. Calendaring and Scheduling is convenient to use and is truly powerful, especially with the addition of group calendars. It is awfully convenient to have access to your calendar and schedule meetings right from within Notes and Domino. The meeting scheduler is quite powerful and is seamlessly integrated with Notes and Domino. Members of a workgroup can share calendars with each other so that they can see where the other team members are and can easily schedule meetings at a convenient time.
A natural extension of the replication strategy and email is remote access. Notes supports dial-up connections via modems from both servers and clients. It is also possible to connect to servers across the Internet.
This is a powerful tool for most organizations, particularly if their staffs and offices are geographically dispersed. It is ideal for multinational corporations because Domino can schedule connections between servers at times when the telephone rates are inexpensive. It is ideal for users who travel. A salesperson might dial a Domino server in the morning for the latest prices and retrieve email, and later in the day when all the sales calls are complete, replicate with the server to transfer all those big-dollar orders taken because information was delivered in a timely fashion.
Although Notes and Domino provides outstanding mobile support, using the same technology, it also provides support for remotely connected users. For example, by using remote access, you can work directly on a client's server from your office or from your home office. You can also work at home on projects.
Of course, if your Domino server is on the Internet, you can access it using a Web browser and interact with databases and even your Notes mail.
The Domino HTTP Server
Because Domino servers support the HTTP protocol, they can be used on corporate intranets and the Internet itself. By extending Domino databases to the Web, it is very easy to provide dynamic content for your Web site. Web sites that don't change much don't get visited much. Many people can collaborate on a database published on the Web using both Notes clients and Web clients, and a user doesn't have to be a programmer or understand Hypertext Markup Language (HTML). Documents created are available as soon as they are saved, whether it comes from the Web or from Notes. For those of you who are familiar with Notes and its full-text search capability, you'll be happy to know that this is also available to Web clients. You can also set up site searches such as those provided on some Web pages. Domino servers provide this capability through a server task called HTTP, which enables browser access to Domino databases through the HTTP protocol.
Part I. Introduction to Release 6
Whats New in Release 6?
The Release 6 Object Store
The Integrated Development Environment
Part II. Foundations of Application Design
Advanced Form Design
Using Shared Resources in Domino Applications
Using the Page Designer
Adding Framesets to Domino Applications
Automating Your Application with Agents
Part III. Programming Domino Applications
Using the Formula Language
Real-World Examples Using the Formula Language
Writing LotusScript for Domino Applications
Real-World LotusScript Examples
Writing Java for Domino Applications
Real-World Java Examples
Enhancing Domino Applications for the Web
Part IV. Advanced Design Topics
Accessing Data with XML
Accessing Data with DECS and DCRs
Security and Domino Applications
Creating Workflow Applications
Analyzing Domino Applications
Part V. Appendices
Appendix A. HTML Reference
Appendix B. Domino URL Reference