About Lotus Composite Applications

At last year's Lotusphere, Lotus released Notes and Domino version 8. Notes version 8 marked a significant milestone in Notes client development. Notes 8 morphed from being a native Windows (and OS/X) client, to an Eclipse-based client, capable of being deployed simultaneously atop Windows, Linux, and OS/X. Eclipse is an open-source development platform; see here for more information.

One of the key features of Eclipse is that it allows for the creation of user-resizable screen regions and the binding of these regions to applications. These applications can be in one of three forms:

  • A native OS (rather than Eclipse) application (expressed in native machine code) that employs native OS APIs to paint its screen region
  • A Java application that paints its screen region directly
  • A Java application that paints its screen region indirectly via a different OS-specific Eclipse UI library on each platform, thus giving it more of an OS application look and feel

Being built atop Eclipse, the Notes 8 client can support Notes applications of the first and last form in parallel. An application of the first form, which consists of the core of a pre-version of the Notes 8 client, is employed to host historic Notes applications. A new set of Java applications in the third form is employed to realize a new Notes PIM (Mail, Calendar, ToDo, Contacts, etc.) application. This Notes PIM application was not written directly as a native Eclipse application, but rather was built atop IBM's Composite Application framework.

IBM's Composite Application framework allows otherwise independent Eclipse component applications to communicate (exchange events) without specific knowledge of each other. They do this via a "property broker." The property broker allows component applications to subscribe to, and publish, events; where necessary, it will rewrite event messages from a publication to a subscription format. A collection of component applications are configured using a Composite Application Editor, to form a multiscreen region (composite) Eclipse application.

In the case of Notes version 8, a conventional three-panel PIM user interface is constructed from a set of Eclipse component applications as follows:

  • A scrollable folder/view picker application is employed to display a folder/view hierarchy and publish the identity of the current user-selected (clicked) folder or view.
  • A scrollable message list application is employed, that is able to:
    • Resort messages by column
    • Display only unread messages
    • Display conversations (a hierarchy of replies to an initial message)
    • Publish the identity of a selected message
  • A calendar application is employed that can display a number of different graphical calendar representations (views) and publish the identity of a user-selected calendar entry.
  • A contacts application is employed that is able to display:
    • A scrollable list of contacts which can be resorted by column
    • A scrollable business card array of contacts
    • Publish the identity of a user-selected contact
  • A scrollable to-do list application is employed that is able to:
    • Resort to-dos by column
    • Publish the identity of a selected message
  • A message/calendar entry/to-do/contact application is employed that displays the contents of a selected message/calendar entry/to do/contact, through the medium of a Notes Form, and which allows the contents of a Form to be entered/modified.

In addition to the above, component applications are, by convention, constructed in two halves, which consist of:

  • A data part that maps data between a native data representation (database record, database records, spreadsheet, web service, etc.) and a common data representation (array, list, etc.)
  • A view part that transforms data in a common representation into a visual representation (table, chart, map, etc.)

... Nick Shelness

Post a comment

You must be logged in to post a comment. To comment, first join our community.