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:
Composite applications. As a new programming construct, composite applications leverage the Eclipse platform's support for an open, standard way to connect application components, not in a portal, but in the Lotus Notes 8 client.
Web services. There is support for client-side automatic generation of and use of Web services proxies (LotusScript or Java).
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 Eclipse/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:
Wiring properties. Saved in WSDL XML format to define property and action definitions.
Applications. When an NSF-based composite application is defined, the NSF has this subelement. Applications define layout and navigation between the component's pages and intercomponent communication.
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.
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.
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.
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.
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.
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
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
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
Formula, LotusScript, Java, and JavaScript programming
LotusScript and Java @functions and simple action agents
LSX (LotusScript Extensions)
Extension Manager (Lotus C API)
Server add-ins and other C API programs
Web service provider
Formula, LotusScript, Java, and JavaScript code provide an integral programming interface to Lotus Domino Designer, which provides a programming interface to development environments that support COM and OLE and a programming interface for Java applications and applets. Java applications and applets can operate locally by accessing installed Domino software or remotely by connecting to a Lotus Domino server using CORBA with IIOP protocols. For complete information, refer to the Lotus Domino Designer help.
This section provides a roadmap to additional documentation about Notes programmability and other related subjects. Specific programmability subjects are covered in the previous sections.
For Lotus Domino server installation and setup, see the Lotus Domino Administrator help. The Lotus Domino Administrator documentation contains information regarding setting up and using Lotus Domino and IBM DB2®. Information about the DB2 server is located in the DB2 Information Center.
For Lotus Domino Designer and LotusScript requirements, especially relative to composite applications, see the Lotus Domino Designer help. In addition, see the following information on developing application components on supported platforms:
Lotus Notes component and application development. See the "Application Design" section of the Lotus Domino Designer help.
Eclipse component and application development. See the Eclipse Integrated Developer Environment (IDE) help system as well as documentation supplied with WebSphere Portal and Lotus Expeditor Toolkit.
Composite applications developed and used with WebSphere Portal. See the "Composite applications" section of the documentation supplied with WebSphere Portal.
Composite applications developed with Lotus Component Designer. See the "Composite applications" section in the Lotus Component Designer User Guide available in the product help.
Composite Application Editor. See the help supplied with the Composite Application Editor. The Composite Applications Editor can be installed during Lotus Notes installation.
Portal Application Template Editor. See the documentation supplied with WebSphere Portal.
Wiring Properties Editor. This composite applications WSDL editor is installed with Lotus Domino Designer and is documented in the Lotus Domino Designer help. It is also available in Lotus Component Designer.
For information about the Lotus Expeditor runtime environment, as well as feature installation and upgrade, see the Lotus Expeditor Information Center. Look for updates to this content as future Lotus Expeditor Information Centers become available.
For WebSphere Portal and WebSphere Application Server installation and setup, see the WebSphere Portal Information Center. Look for updates to this content as future WebSphere Portal Information Centers become available.
For information about installing the WebSphere Portal composite application support for Lotus Notes in support of composite application that contain portlets, and other Portal-based elements, see "Installing the WebSphere Portal composite application support for Lotus Notes" in the Lotus Domino Administrator help. Also see "Specifying the home portal account using a policy" and "Specifying the home portal account using preferences" in the Lotus Domino Administrator help.
For overview information about installing and upgrading Lotus Notes clients, see "Lotus Notes pre-installation checklist" in the Lotus Domino Administrator help.
For information about installing or upgrading to Lotus Notes, see "Setting up client installation and installation methods" in the Lotus Domino Administrator help.
For enabling and using third-party features, including customizing the installation, see "Enabling and using third-party feature installation and update in Notes" in the Lotus Domino Administrator help.
For deployment information about HTTP and NRPC provisioning of Eclipse components and composite applications, see "Configuring component update for composite applications" and "Enabling user-initiated update for Notes" in the Lotus Domino Administrator help.