In this chapter we will look into the history of Notes and Domino. Readers who have the Upgrading to Lotus Notes and Domino 7 book from Packt publishing can skip Chapters 1 and 2 as they are similar to the introductory chapters from that book.
The genesis of Notes and Domino has achieved a near legendary status within the history of software development. Three middle-American college boys in the late 1970s wanted a way to share information. So they utilized a bug-reporting software program called PLATO Group Notes, which ran on their mainframe-based college computer system. This program would be considered archaic compared to modern day business programs, but it was an improvement upon the traditional swapping of handwritten notes hastily scribbled during classroom lectures. And it provided just enough communication and collaboration functionality to offer a hint as to what more could be done, given the right software and technology.
After graduation, these three students, whose names need no introduction to long-time members of the Lotus Notes community (but we'll mention them anyway, in case you're a newcomer: Ray Ozzie, Tim Halvorsen, and Len Kawell), went their separate ways. But none forgot the potential he saw in PLATO Group Notes. Halvorsen and Kawell took jobs at Digital Equipment Corporation, where they eventually created an in-house communication tool that resembled PLATO. Meanwhile, Ozzie took programming positions with other corporations, but never lost sight of his vision to form his own company and develop a more advanced, PC-based collaboration program. Eventually (1984 to be exact), with funding provided by Lotus Development Corporation (makers of the famous Lotus 1-2-3), Ozzie founded Iris Associates Inc. to develop the first release of Lotus Notes. Ozzie was soon joined by former classmates Halvorsen and Kawell, followed shortly by Steve Beckhardt.
When describing the software they created, the focus is usually on the end-user features provided by Lotus Notes, with a secondary nod to the server/administration component. Indeed, Lotus Notes has always been described as a client/server application, indicative of its "dual citizenship," with some of its functions performed locally on the user's PC and other functions done on the server. But from the beginning, the creators of Lotus Notes showed great foresight in recognizing that their product would not be an out‑of‑the‑box application, a radical approach back in the early 1980s. Instead, they realized that Lotus Notes needed to be extremely customizable and flexible, and from its inception built these capabilities into Lotus Notes. (The fact that they did would eventually result in a large array of Notes custom applications, a growing demand for Notes application developers, and ultimately…this book!)
This first version of Lotus Notes was modelled on PLATO Group Notes, but was far more advanced, sporting powerful features such as on-line discussion, email, phone books, and document databases. This functionality presented some serious challenges to the hardware and supporting infrastructure upon which Notes ran at the time. To meet these challenges, Notes was built upon the previously mentioned client/server architecture that featured PCs connected to a local area network (LAN). Groups set up a dedicated server PC that communicated with other servers. These servers exchanged information through replicated data, a concept familiar to us today, but extremely revolutionary at that time. This allowed users to exchange information with co-workers (however remote), while maintaining high performance.
And as we mentioned, Notes, from the outset, was designed to be highly customizable, with a state-of-the-art multi-faceted programmatic interface that allowed developers to create powerful applications specifically suited to the needs of their workgroups. These programmatic features allowed developers with virtually any level of experience to put together applications. For example, Notes shipped with application templates (for example, address book, document library, and discussion database) that, with a little modification, could be used by most sites. (Many of us first got our "feet wet" with Notes development this way.) More experienced developers could use the development interface to build their own applications from scratch, creating their own fields, forms, and other components, and laying them out as they saw fit. And advanced programmers could take advantage of @functions to do really cool stuff, using Notes to solve business problems that advanced the scope and vision of the product. All these features helped Notes to become adopted as an essential tool for many businesses (and not incidentally, soon led to the growth of a large and lively business‑partner community).
The first release of Notes shipped in 1989. (A five-year development cycle may seem like a long time by today's standards, but bear in mind, the Iris folks were basically creating an entirely new genre of software.)
Release 1.0 features included:
Advanced security features, which included the now-familiar Access Control Lists (ACLs). Other security-related features included encryption, signing, and authentication using the RSA public-key technology. All these features gave application developers a variety of tools to help ensure their applications were secure yet readily accessible to the right users
Import/export capability, including Lotus Freelance Graphics metafile import, structured ASCII export, and Lotus 1-2-3/Symphony export
Online help (a novel idea at the time!)
Formula language for programming Notes applications
DocLinks that allowed users to navigate from one Notes document to another, via technology that resembled an early form of today's URLs
Notes 2.0 shipped in 1991. By now, it became apparent that much of Notes' early customer base consisted of large companies that employed thousands of users. These companies were particularly intrigued by Notes' ability to bring large numbers of users together, and allow them to collaborate and share information with the speed and efficiency of a small, tightly-focused team. And they loved the built-in ability to adapt Notes templates to their specific needs, and/or build their own applications from scratch. To accommodate these customers, the Notes development team paid special attention to scalability enhancements, taking advantage of recent hardware and networking advances that could support large, geographically dispersed environments. These scalability features included support for multiple Name and Address books.
For developers, the addition of a Notes C Applications Programming Interface (API) enhanced Notes' extensibility, allowing experienced programmers to create more advanced custom applications. The formula language was also extended. And on the user side, Notes now supported rich text.
Notes 3.0 shipped in mid-1993. At this point, the installed customer base for the product had grown to approximately half a million users worldwide substantial, but still orders of magnitude smaller than today's global Notes/Domino community. To help broaden its appeal to new markets, Notes 3.0 offered client support for the Apple Macintosh and server support for Microsoft Windows. Notes 3.0 also introduced many now-familiar features, including:
Enhanced replication that allowed users to perform selective replication, and run replication in the background
It was around this time that the Internet began drawing attention as a serious business tool, rather than merely the domain of students and socially inept "geeks". This led to the release of InterNotes News, a product that provided a gateway between the Internet news sources and Notes. Although largely forgotten today, this was the first project that reflected the increasing need for Notes to work together with the Internet.
In January 1996, Lotus released Notes 4.0, offering a radically redesigned user interface that simplified many Notes features, making it easier to use, program, and administer. This interface quickly became popular among users and developers. The product continued to become faster and more scalable. In addition, Notes began to integrate with the Web, and many new features reflected emerging web technology. For instance, the new Server Web Navigator allowed the Notes servers to retrieve pages off the Web, allowing users to view the pages in a Notes client.
Release 4.0 included something for everybody, especially application developers. As we mentioned, the user interface was completely re-engineered, offering the familiar three-paned UI (with preview capability) for mail and other applications. This UI is still available today in the Notes workspace. Users also took advantage of the enhanced search features, which included the ability to search non-indexed databases. Programmers welcomed the introduction of LotusScript, a programming language built into Notes, as well as new view, folder, and design features.
Administrators also had a lot to cheer about. For example, the introduction of "pass-thru" servers made it much easier to build network topologies that ensured quick SOCKS support, HTTP proxy support, and Notes RPC proxy support.
In July 1995, IBM purchased Lotus. This gave the Notes developer team access to world‑class technology, including the HTTP server now known as Domino (which eventually led to the Notes product being known by the current name Notes/Domino). This helped transform the Notes 4.0 server into an interactive web‑application server, combining the open networking environment of Internet standards and protocols with the powerful application development facilities of Notes. These features made Notes an important web‑application development platform. And the Domino server allowed customers to dynamically publish Notes documents to the Web. This was a major development in the life of the product.
Among the major enhancements offered in release 4.5 was Calendar and Scheduling (hard to believe it hasn't been in the product all along). And to further the theme of web integration (which began with Notes 4.0), release 4.5 also included:
Personal Web Navigator, along with seamless web access from the Notes client
Improved scalability and manageability with Domino server clusters and directory assistance
Security enhancements, such as Execution Control Lists, and password expiration and reuse. This helped give users more control over who could access their PCs and what could be performed on them
And for the programming community, Notes/Domino 4.5 introduced script libraries
Notes and Domino release 5.0 shipped in early 1999. "R5" (as it was widely known) continued the theme of Notes/Domino integration with the Web to the point where the two technologies were inseparable. This was reflected in the R5 interface, which bore a more browser-like feel. This release also supported more Internet standards and protocols. And the new Domino Administrator made Domino network administration easier.
But what many in the Notes/Domino application development community remember most about R5 was the introduction of Domino Designer, the third member of the Notes/Domino triumvirate of products. Although (as we've shown) development features and capabilities have always been an integral part of Notes, the elevation of these features to separate product status was an important demonstration of just how versatile and valuable Notes/Domino had become as an application development platform, especially for web users.
Notes/Domino 5.0 featured:
Internet messaging and directories
Expanded web‑application services (including CORBA)
Database improvements, such as transaction logging
The Notes 5.0 client included a new browser-like user interface with a customizable welcome page for tracking daily information. It also included improvements to applications such as mail, calendar and scheduling, web browsing, and discussions.
By the time Notes 6.0 and Domino 6.0 were introduced in late 2002, industry talk focused on concepts such as lower total cost of ownership (TCO for the buzzword‑inclined), increased productivity, and quicker deployment; in other words, doing more with less, and faster.
In response, Domino 6.0 offered enhanced installation, scalability, and performance. Domino Designer 6.0 allowed developers to create complex applications more easily and to reuse code. And IBM improved the Notes 6.0 client, with an eye towards increasing each user's personal productivity. The overarching theme was to help customers work more efficiently. For example, installation and setup offered more options and an improved interface. Domino 6.0 made central management of multiple remote servers easier through features such as policy-based management. And it improved server scalability and performance, with new features such as network compression and Domino Server Monitor. These themes were carried through Notes/Domino 6.5, which offered enhanced collaboration with tighter integration with Sametime, QuickPlace, and Domino Web Access.
For programmers, release 6.5 included the Lotus Domino Toolkit for WebSphere Studio, a set of Eclipse plug-ins you can use to create JavaServer Pages (JSPs) using the Domino Custom Tags.
That brings us to Notes/Domino 7. This latest release continues the tradition of cutting edge technology and functionality built into that first release of Lotus Notes. This is especially true for Domino Designer, which, as we discussed, has grown from a set of developer features in release 1 to a full-fledged application development product and platform. We discuss all the new features in Domino Designer 7 (and the upgrade issues they raise) later in this book. But before we do, let's take a quick look at the new client and administration features in Notes/Domino 7 to help us better understand all the facets of this release and how they work together.