Eclipse-based IBM® Lotus® Notes® 8 enhances the familiar Lotus Notes user interface, reinforces its collaboration and messaging strengths, and extends its application development model with state-of-the-art programming constructs. Programmability has always been a strong and important feature in the Lotus Notes product. With Lotus Notes 8, the Notes programmability story has been enhanced to provide some new features and to continue providing features that have always been available to Notes/Domino developers. This page gives you basic information for navigating the programmability changes in the latest Lotus Notes release.
To understand the Notes 8 programmability story, you must first understand the new technology that has been introduced with Lotus Notes 8. The Lotus Notes 8 client takes all the code that is the existing Lotus Notes and puts it in the Eclipse environment. This puts Lotus Notes on an open-source, Java™-based platform.
Eclipse was originally created as an integrated application development environment. Its open, plug-in-based architecture has helped to make Eclipse a smart choice as the foundation for rich client platform development. Lotus Notes 8 is built on IBM Lotus Expeditor, IBM's universal managed-client software. Lotus Expeditor is built on Eclipse and has a place in the IBM family of rich clients as a managed client for Service-Oriented Architecture (SOA) and composite applications. As the successor to IBM WebSphere® Everyplace Deployment, Lotus Expeditor is used to extend Lotus Notes, WebSphere, and Eclipse infrastructures to a managed-client environment on a wide variety of enterprise desktop and mobile devices.
Lotus Notes 8 is, in effect, Eclipse with a new set of plug-ins. As a rich client, Lotus Notes 8 inherits a great deal of its behavior from Lotus Expeditor, created as a generalized rich client with strong manageability features. Lotus Expeditor is also the foundation for IBM Lotus Sametime V7.5.
The next two sections of this document are for experienced Notes developers who want to quickly know what is new in Notes programmability and what remains the same. Each feature is listed with a place to find more information about that feature. Tables are provided to give you pointers to information on new and existing programmability features so that you can take full advantage of them when creating or enhancing your applications.
Support for composite applications and for Web services represents some of the changes to programmability and application development for Lotus Notes 8:
A composite application wires together, without coding and at the user interface level, different types of components from multiple systems. Composite applications work the same way that Portal applications do and use the same development architecture as Web services and Service-Oriented Architectures.
Like applications developed using IBM Lotus Component Designer, existing or new Lotus Notes applications are reusable as components. Eclipse components, such as embedded browsers or productivity editors, can also be used as components in a composite application.
Each component in a Lotus Notes 8 composite application encapsulates its own user interface, business logic, and storage (such as an NSF or a relational data file). You can create components with a variety of tools from the no-coding wizards to scripting tools, such as IBM Lotus Domino® Designer 8 and Lotus Component Designer, to comprehensive tools, such as Java IDEs or IBM Rational® Application Developer with IBM Lotus Expeditor Toolkit.
The development model for Lotus Notes 8 composite applications parallels that of IBM WebSphere Portal applications, but where a Web browser must connect to WebSphere Portal, Lotus Notes 8 with its Lotus Expeditor foundation can consume composite applications and support the interactions between them on a stand-alone basis. A Web browser can consume a composite application only through WebSphere Portal, but Lotus Notes 8 includes all the functionality needed to work with composite applications.
As another parallel, the assembly and wiring of a WebSphere Portal application are done using the Application Template Editor. In Lotus Notes 8, you use the Composite Application Editor, which installs as a Lotus Notes plug-in. The Composite Application Editor can create composite applications for both Lotus Notes and WebSphere Portal that work online, and it can create NSF-based composite applications that work online and offline.
Composite applications depend upon property brokers, which expose properties, or typed exchangeable data items. In a composite application, an action is the logic that consumes a property, and the process of wiring components together connects properties in one component to actions in another to specify the interaction between the components.
Composite applications require some extensions to the Notes programming model. If an NSF component is to participate in causal relationships with other components, an interface of properties and actions must be defined. This information is held in the following design subelements grouped under the new Composite Applications element:
There are also new Composite Settings properties in the Action and Column properties boxes. Finally, property broker support for composite applications also includes new NotesProperty and NotesPropertyBroker classes in LotusScript.
The Web service design element was introduced in Lotus Notes V7.0, which allowed you to create a Web service on a Lotus Domino server using either LotusScript or Java. This was a provider: a Web service that could be called from other computers. Lotus Notes 8 lets you create a Web service consumer that runs on a Lotus Domino server and that calls Web services to obtain the data they serve up, and then inserts it into your Lotus Notes application.
This Web service consumer is instantiated not as a Web service design element, but as a special kind of script library (LotusScript or Java) that is used by an agent or other code. The data used to generate this library is a WSDL document, the description of the Web service in XML format. The WSDL is imported into the library and compiled to a script when it is saved. The script library is referenced by name in the [Declarations] section of the script that calls the Web service.
Web service consumers are created as special script libraries in Lotus Notes 8. New actions in Lotus Domino Designer allow you to inspect or export the WSDL that is the content of the library. The following table summarizes more specific examples of what is new in Notes programmability. Each feature and/or enhancement is listed with a place to find more information.
|New features||Where to find more information|
Lotus Notes 8 supports composite applications, a key element within IBM's Service-Oriented Architecture (SOA) and contextual collaboration strategy. By creating composite applications, you can loosely couple Lotus Notes applications NSF components, Eclipse components, and Lotus Component Designer components in context as part of one user experience.
|For more information, refer to the Lotus Domino Designer help system.|
For additional information, refer to the Lotus Expeditor help system and the Websphere Portal Information Center.
Composite application samples as well as additional information can be found in the developerWorks Lotus Sandbox.
|Property broker support|
A Property Broker Editor is available from Lotus Domino Designer to provide an easy-to-use interface that assists in the creation of WSDL files. These files allow communication between application components in composite applications.
|For more information, refer to the Lotus Domino Designer help system and the context help available from the Property Broker Editor.For additional information on the property broker, refer to the Lotus Expeditor help system and the Websphere Portal Information Center.|
|New Notes classes to obtain access to the property broker and application components|
Two new Notes classes were created to support the property broker and the programmatic coupling of application components: NotesProperty and NotesPropertyBroker. Additionally, the new event OnSelect was added to the NotesUIView class to allow the selection of documents within one component to affect the information displayed within the other components.
|For more information, refer to the Lotus Domino Designer help system.|
|Composite Application Editor|
The Composite Application Editor lets you assemble or edit composite applications. A composite application can be hosted on either a Lotus Domino server or WebSphere Portal. No matter where it resides, you can edit the application using the Composite Application Editor.
|For more information, refer to the Composite Application Editor help that ships with the Lotus Notes 8 client.|
|Web service-enabled script libraries|
Building on the concept of script libraries, new with version 8, Domino Web services can be made available to applications through Web service-enabled script libraries. Each Web service-enabled LotusScript or Java script library contains a proxy to a single Web service hosted on some Web server (Lotus Domino or other). After a Web service-enabled script library is created (using LotusScript or Java), it can be used in many different contexts, such as agents and event handling code, within Domino applications.
Also known as Web service consumers, they let an agent or other code call Web services hosted elsewhere by using the Web service consumer script library. A Web service consumer does not use a Web Service design element, which is still used only for publishing.
|For more information, refer to the Lotus Domino Designer help system. The following documentation is new in the Programming section of this help.|
Programming overview and user interface
Web service-enabled script libraries or Web service consumers
Web services can be made available to applications through Web service-enabled script libraries, known as Web service consumers, each of which calls a single Web service hosted elsewhere. Once created, a Web service-enabled script library can be used in many different contexts within Domino applications.
Programming Domino for Web applications
Web services in Lotus Domino Designer
Web services can be made available to applications through Web service-enabled script libraries. The "Warn if the WSDL interface is modified" option is automatically selected when an Import WSDL action is performed. The option "Include operation name in SOAP action" is enabled by default.
Previewing Web services
Web services can now be previewed locally before they are released in the same way that forms and views can be previewed locally.
|Customize the client installer|
The Lotus Notes 8 client installer can be customized to cover the feature/installation needs of the enterprise Domino 8 administrator.
|For more information, refer to the Lotus Domino 8 Administrator help.|
|Create composite applications within Lotus Notes/Lotus Domino Designer context||For more information, refer to the Lotus Domino Designer help.|
|Use NOTES.JAR in the Notes 8 context|
Many Notes customers who build composite applications with Eclipse components need access to NSFs from the Java code running in Eclipse. In Lotus Notes 8, the Notes backend classes can be called by Eclipse plug-ins you write by using the normal NOTES.JAR APIs.
|For more information, refer to the "Using the Notes Java API from Eclipse components" topic in the Lotus Domino Designer help: Composite Applications - Design and Management section.|
|Create and deploy a traditional third-party installer for custom or third-party Eclipse features and plug-ins||For more information, refer to the Lotus Domino 8 Administrator help. For background information on how this can be done in an Eclipse environment, refer to the Lotus Expeditor documentation.|
Lotus Notes 8 uses the same plug-in architecture as Lotus Sametime. The Lotus Sametime Software Development Kit (SDK) exposes LiveNames APIs, which you can use to add livenames support to Sametime applications. This feature will be available in post-8.0 Lotus Notes releases.
|The Lotus Sametime SDK contains documentation both in the form of PDF guides and javadoc as well as many samples. The SDK has documentation about creating plug-ins and using the LiveNames API service. You can download the Lotus Sametime SDK from developerWorks. For additional information, refer to the IBM RedBooks publication, Extending Sametime 7.5 - Building Plug-Ins for Sametime.|
|Extend PIM (Personal Information Manager) functionality|
To further enhance application development, PIM applications have also been enabled for use in composite applications. These include contacts (personal address book), mail, and calendar. By using the open-standards Lotus Expeditor foundation (Eclipse) upon which Lotus Notes 8 is based, the PIM applications provide some common properties and actions that can be consumed in a composite application. PIM functionality can be extended also to enhance features in the Lotus Notes client (for example, mail).
|For more information on extending PIM functionality in Lotus Notes, refer to the "Using Personal Information Management applications in composite applications" topic in the Lotus Domino Designer help system.|
|Running Notes 8 composite applications in conjunction with WebSphere Portal|
You can install WebSphere Portal composite application support for Lotus Notes on an IBM WebSphere Application Server. This is required for Lotus Notes users who will develop and use composite applications that contain portlet elements. It is available with Lotus Notes and as a Web download. To use some of the functions enabled by WebSphere Portal in Lotus Notes, you must also install the WebSphere Portal composite application support for Lotus Notes on WebSphere Portal.
The WebSphere Portal composite application support for Lotus Notes is required to install portlets onto the server and for Lotus Notes client communication with WebSphere Portal. For example, if you want users to edit a Portal-based composite application using the Composite Application Editor, you must first run the WebSphere Portal composite application support for Lotus Notes on WebSphere Portal. The server/client installation program installs the WAR files that are required by the Composite Applications Editor when it works with WebSphere Portal.
An administrator can also create a Home Portal Account for Lotus Notes users to create, edit, and view composite applications that contain portlets. Users can obtain help on creating or modifying a Home Portal Account using the preferences panel in their Lotus Notes online help system.
|For specific information, refer to the "Installing the WebSphere Portal composite application support for Lotus Notes" topic in the Lotus Domino Administrator help.|
|Add Lotus Sametime plug-ins to the Lotus Notes 8 client user interface side shelf||For more information, refer to the "Sidebar Contribution Design Pattern and Migrating a Sametime 7.5 plug-in over to Notes 8" document in the Lotus Notes/Domino 8 forum. Additional related information is also available in the developerWorks article, "Extending the IBM Lotus Notes V8 sidebar and toolbar." Refer also to the Lotus Sametime documentation for more information on Sametime plug-ins.|
|Add NSF and Eclipse components to the Lotus Notes client side shelf||For more information, refer to the developerWorks article, "Extending the IBM Lotus Notes V8 sidebar and toolbar."|
|Set up and use the Lotus Expeditor IDE||For more information, refer to the Lotus Expeditor Toolkit documentation.|
|Use Lotus Expeditor target definitions to specify runtime environments|
A target definition specifies all aspects of a target, including its location, constituent plug-ins, and environment. Lotus Expeditor Toolkit uses target definitions to provide a convenient method for you to specify the runtime environment, the build-time environment, and the set of components that can run on the Notes 8 platform. For example, when you create a Client Services project, you select a target definition and set of features from a list of available targets, and the toolkit automatically sets up the Java Build Path and runtime for your project. You can then edit, compile, and debug your project. The toolkit provides a default list of target definitions; however, you can create your own definitions.
|For more information, refer to the Lotus Expeditor Toolkit documentation. Specifically, for Lotus Expeditor V6.1, see the topic, "Configuring the Lotus Expeditor Toolkit environment for Sametime."|
|Build your own application plug- in in the context of Lotus Notes||For more information, refer to the Lotus Expeditor Information Center - Developing Applications for Lotus Expeditor section.|
This section describes what remains the same in Notes programmability. These features are listed with places to find information.
|Existing features||Where to find more information|
This section provides a roadmap to additional documentation about Notes programmability and other related subjects. Specific programmability subjects are covered in the previous sections.