Understanding the Domino Web Application Server
HTML has gained a great deal of publicity and popularity over the last several years. All sorts of applications are now Internet-ready, in that the documents they produce can be converted to HTML. Word processors such as Microsoft Word and Lotus WordPro, spreadsheets such as Lotus 1-2-3 and Excel, and presentation packages such as Lotus Freelance Graphics can all produce HTML versions of their documents. As you undoubtedly know, Lotus Notes and Domino have been Internet-ready for several years .
Web servers abound from many companies. All Web servers have at least two components in common: They communicate using the Hypertext Transfer Protocol (HTTP), and they serve up Hypertext Markup Language (HTML) as a common language. The Domino server is unique, in that it is capable of transparently presenting a Domino database to either a Web browser or a Notes client. This chapter shows you how to enhance a Domino application with HTML. Even though the Domino server essentially creates HTML for you, a minimal understanding of the language is still important if you want to develop for Web clients .
Perhaps the hottest feature added to Lotus Notes in all its existence is the Domino Web Server. The Web server has been available in beta form since the summer of 1996 and was finally incorporated into the shipping version of Lotus Notes in Release 4.5. Before this, Lotus had released the InterNotes Server, a cumbersome product that met with limited commercial success. On the other hand, the Domino Web server has met with great success because it transparently presents Domino objects to Web clients. The advantages are obvious: You can write one application and make it available to both Web and Notes clients. There has been a steady stream of improvements from the early release of the Domino server, and today Domino Designer is very tightly integrated with Web design elements.
Because you can easily present a Domino database to a Web client, it is relatively easy to get content into your Web site. This site might be on the Internet itself, or it might be on a corporate intranet. In either case, the advantage of using the Domino Web server is that you no longer depend on installing the Notes client. Sure, you lose some functionality by relying solely on a Web browser, but you don't have the deployment issues, upgrade issues, and so on because most PCs today are shipped with a Web browser. Because security can be extended to the Web by enforcing user logins, you can easily control who can edit, author, and read documents, regardless of how they access the database.
The network protocol Transport Control Protocol/Internet Protocol (TCP/IP) is the "glue" that holds the Internet together. All Web servers and Web clients must use TCP/IP to communicate with each other. Domino servers are no exception to this and must likewise run TCP/IP. Web servers use HTTP to serve documents written in HTML to Web browsers, which then interpret the HTML code and present the documents to the user.
Domino servers run a service called HTTP to present Domino content to Web clients. This service translates Domino content to HTML. The HTTP service can be invoked on a Domino server in one of two ways: by typing load http at the server console or by adding http to the ServerTasks line in Notes.ini. Adding it to the configuration file causes it to launch when the Domino server starts, as in the following:
ServerTasks=Replica,Router,Update,Stats,AMgr,Adminp,Sched,CalConn, Report,http
The only other command available from the server console for the HTTP service is tell http quit , which causes the HTTP service to stop.
NOTE
The Java Virtual Machine (JVM) is an additional service that can be a part of a Domino Web site. The JVM is what runs Java applets and agents for both Web and Notes clients. However, because this is a chapter on HTML, it isn't covered here.
The HTTP server's job is to serve up requests from a Web client. These requests can be for Domino objects such as views, forms, pages, documents, HTML documents, CGI (Common Gateway Interface) scripts, and so forth. When a Web client requests a document from the Domino server, Domino automatically translates it into HTML.
Entire Web sites can ”and do ”consist of individual HTML documents strung together by hypertext links or URLs. This method of building a site means that all the links between documents (URLs) must be maintained by hand. If you remove one document, you must remove all the links to that document. Notes and Domino make it easy to maintain an entire site in a database or a collection of databases. This way, you can avoid manual tasks such as revising and reorganizing a collection of HTML documents or rewriting the pointers to the documents.
Because Domino is a database applications server, the content of a Domino Web site is stored in documents and pages in Notes databases. The links are maintained internally by Notes itself. When a document is deleted, the links to the document are automatically deleted. Of course, a link to a specific Notes document can be hard-coded in other documents, in which case it would have to be removed manually. Content can be added dynamically from either a Web or a Notes client and is instantly available. No links need to be created. Furthermore, Notes views are presented on the Web as HTML documents. This means that the documents on the Web site can be presented in different sort orders by changing views.
If a database has only four views with different sorts and a document is added, the views are updated automatically. In HTML, each view is a separate HTML document. Re-creating what Domino does automatically using HTML would require a tremendous amount of work. For example, you would have to maintain four separate HTML documents containing the code to produce the views. Adding a single document requires the new document to be inserted into each of the four documents at the appropriate position in the sort order with the appropriate text for each view. Sound like fun? It might not be too bad if there were only a few documents added per month and only a few dozen to maintain. What if the number of documents was in the hundreds or more? Domino is so powerful because it has united a database engine with a Web server, creating what some have called the first true Internet applications server.
Because Domino uses HTML to present objects to a Web client, it makes sense to develop a greater understanding of the language. It is also possible to enhance applications using HTML, as you'll soon see.