IBM Lotus Expeditor V6.1.1 is your tool for developing powerful managed client applications that run on various platforms: desktops, laptops, tablets, and handheld devices. If you are experienced in developing Java Enterprise Edition (Java EE) applications, portlet applications, Web services, or Eclipse applications, then you are ready to develop applications for Lotus Expeditor.
Lotus Expeditor: IBM's universal managed client
With Lotus Expeditor, you can move key components of your applications from the server to clients by using standard APIs and services. Moving application components to run on a client can have dramatic results for business. Users benefit from improved application response time because applications perform business operations locally on the client.
As a result, there is a reduction in network traffic between clients and servers and in server workload. Furthermore, mobile users can continue to use their applications from their clients productively, even when they are at a location that does not have network connectivity, such as a customer site. You can also use the local graphical user interface (GUI) capabilities of the client devices to deliver a richer user experience than can be supported by a Web browser.
IBM Lotus Expeditor Toolkit provides a complete, integrated set of tools that allows you to develop, debug, test, package, and deploy client applications to Lotus Expeditor V6.1.1, IBM Lotus Sametime V7.5.1, and IBM Lotus Notes V8. You can use the toolkit to develop the following types of client applications:
- Eclipse Rich Client Platform (RCP) applications
- Eclipse embedded Rich Client Platform (eRCP) applications
- Web applications
- Embedded transaction applications
- Portlet applications
- Database applications
- Messaging applications
- Web services applications
- Composite applications
NOTE: You can construct composite applications with components that cooperate through inter-component communication supported by the property broker. For each component, you declare properties and actions, after which you declare wires that allow these components to communicate through these properties and actions. Components may be developed independently of each other and wired together in many different composite applications. Each of the components can also be developed using different technologies. As a result, you can combine components from your applications into new solutions that provide your customers with an integrated view of business data and workflow.
This toolkit is built on Eclipse technology and extends the powerful IBM Rational suite of development tools so you can leverage your existing skills and software components. Eclipse is an award-winning, open-source platform for the construction of powerful software development tools and rich desktop applications.
Leveraging the Eclipse plug-in framework to integrate technology on the desktop saves technology providers time and money by enabling them to focus their efforts on delivering differentiation and value for their offerings.
The combination of IBM Lotus Expeditor Client and IBM Lotus Expeditor Server provides the client and server middleware connectors necessary to deliver and manage end-to-end applications (see figure 1). System administrators use Lotus Expeditor Server to install and configure the server middleware, so client applications can securely perform ensured transactions and database synchronization with enterprise applications and data. For more information on the server platform, refer to the Lotus Expeditor Server documentation.
Figure 1. Lotus Expeditor conceptual view
For desktop clients, WebSphere Portal administrators can use WebSphere Portal to control managed client applications available to users, based on access rights defined by the administrator.
With Lotus Expeditor Client for Desktop, you can develop managed client applications that run on the following operating systems:
- Microsoft Windows Vista
- Microsoft Windows XP Professional with Service Pack 1 and 2
- Microsoft Windows XP Home Edition with Service Pack 1 and 2
- Microsoft Windows XP Tablet PC Edition 2005
- RedHat EL 4.0 WS with GTK support - Update 4
- RedHat EL 5.0 WS with GTK support
- SUSE Linux Enterprise Desktop (SLED) 10
- Microsoft Windows 2000 Service with Pack 4
NOTE: Support has been withdrawn for Novell Linux Desktop 9 (NLD9).
With Lotus Expeditor Client for Devices, you can develop managed client applications that run on the following operating systems:
- Microsoft Windows Mobile 5.0 (PocketPC and Phone Edition)
- Microsoft Windows Mobile 2003 SE (PocketPC and Phone Edition)
- Microsoft Windows CE Professional 5.0
- Nokia E90
NOTE: The support for the Nokia E90 is provided as early release code for internal evaluation and testing. The support for the Nokia E90 may not be used for production purposes.
In summary, the powerful client platforms, toolkit, and server platform enable you to develop compelling managed client applications that run on a variety of clients and securely access e-business on demand applications, services, and data. You can use programming skills you have already acquired to develop these applications.
The core of IBM Lotus rich clients
In addition to being available as a program product, Lotus Expeditor provides the core client technology for Lotus Sametime V7.5.1, Lotus Notes and Domino V8, and follow-on releases to these two products. As a result, the software services in Lotus Expeditor Client for Desktop are available to the Lotus Sametime and Lotus Notes/Domino software developer communities.
Developers can use Lotus Expeditor Toolkit to develop applications for both Lotus Sametime V7.5.1 and Lotus Notes/Domino V8. For Lotus Sametime developers, the toolkit automatically configures the development environment with the real-time collaboration services and Lotus Expeditor services in Lotus Sametime. For Lotus Notes/Domino developers, the toolkit automatically configures the development environment with the business collaboration services and Lotus Expeditor services in Lotus Notes V8.
The Lotus Expeditor client platform
The Lotus Expeditor client platform provides the following set of standards-based client services for the development of your managed client applications (see figure 2):
- Managed client services including a selection of runtime environments, a robust component framework, and additional component services, all of which enable Java applications to run on multiple operating systems and clients.
- Platform management including the Eclipse Update Manager and an Enterprise Management Agent to install and update applications and services on the client platform.
- Access services including data and synchronization services, transactional messaging, Web services, a Web container to run local Web applications, an embedded transaction container to run local embedded Enterprise Java Beans (EJBs), a portlet container to run local portlets, and more.
- Interaction services including integrated browser controls to launch Web applications, Eclipse technology to support GUI applications, a portlet viewer to launch portlets, an embedded Lotus Sametime feature to support real-time collaboration, and a Workbench that enables users to install and launch one or more applications.
Figure 2. Lotus Expeditor client services
Managed Client Services
The client platform provides a choice of runtime environments that enable Java applications to run across multiple operating systems. For Lotus Expeditor Client for Desktop, the default runtime environment is jclDesktop, which is a custom runtime environment with a reduced footprint (for example, jclDesktop does not include AWT). The client desktop can also run on Java 5.0. For Lotus Expeditor Client for Device, the runtime environment is jclDevice, which is a custom runtime environment that runs applications written to the Java ME Foundation Profile 1.1 specification.
The client platform provides a service framework that implements the OSGi R4 framework specification and provides a service-oriented architecture (SOA) on top of the runtime environments. The OSGi framework specification is provided by the OSGi Alliance, whose mission is to specify, create, advance, and promote wide industry adoption of an open service delivery and management platform. Incorporating the OSGi standard into the client platform provides four important capabilities:
- Multiple applications and components share a single virtual machine (VM) that implements the Java specifications. This saves valuable resources on the client when running multiple applications because only one instance of the VM is launched rather than multiple instances.
- Applications share services and packages, which further reduces resource requirements on devices.
- The service framework separates service interface from service implementation and provides publish, find, and bind operations in support of an SOA. This capability enables integration of business applications on the same device.
- The service framework enables dynamic life-cycle management without a VM restart, so components can be updated without impacting other unrelated components that are running at the same time.
The Eclipse framework is built on the service framework, which provides Eclipse with powerful capabilities, such as the ability to dynamically load and unload components without restarting the Eclipse framework and robust life-cycle management of components.
The client platform also provides optional OSGi services, such as UserAdmin, LogService, Configuration Management, and more.
Access services provide a familiar programming model for Java EE developers, so they can reuse their skills and software components to develop applications that run on managed clients. Additionally, access services enable managed client applications to support offline operations and also enable you to move key components of your application to the client platform by using standard APIs.
When using a Web browser on a client to remotely access Web applications and portlets on a server, applications are productive only when the user is connected to the server. When using Lotus Expeditor, Web applications and portlets run locally on the client and therefore, are productive anytime, anywhere. To run Web applications and portlets on the client, Lotus Expeditor provides the following containers:
- Web container. For desktops, the client platform provides an embedded Web container to run Java EE Web applications that support the Servlet 2.3/2.4, JSP 1.2/2.0, JSF 1.1, JSTL, and Struts specifications. For devices, the Web container supports only Servlet 2.3/2.4 and JSP 1.2/2.0 to conserve resources. The Web container enables you to move your Web applications from the server to clients to preserve the existing browser user interface, to leverage your existing Web components, and to provide a richer user experience through support of local and offline operations. Note that SSL support is not provided when running the Web container on jclDesktop and jclDevice profiles.
- Embedded transaction container. The client platform also provides an embedded transaction container to run Java EE EJBs that conform to any of the following specifications: EJB 1.1 and 2.0 Stateless Session Beans, Container Managed Persistence (CMP) Entity Beans, and Bean Managed Persistence (BMP) Entity Beans. This container lets you move your business logic from the server to clients, so you can leverage your existing beans to make business logic available to client applications, including Web applications, and support local and offline operations. These business logic components are referred to as embedded transaction applications.
- Portlet container. The desktop client provides a portlet container to run portlets that support the JSR 168 specification. The portlet container supports the Empty, Basic, and Faces portlet types.
Lotus Expeditor provides services that enable client applications to access enterprise applications, services, and data in the IT data center (see figure 3).
Figure 3. End-to-end connections
The following access services provide the end-to-end connections:
- Database access. You can use the JDBC API with IBM DB2 Everyplace or Apache Derby as a local SQL database when more advanced data manipulations are required than can be supported by placing data in a local file store. These databases protect local data through data encryption. These databases can also periodically synchronize with enterprise databases to capture data on the client for use by the client application when the user is offline. The IBM DB2 Everyplace Sync Server supports synchronizing relational data with the following data sources: IBM DB2, Informix Dynamic Server, Microsoft SQL Server, and Oracle.
DB2 Everyplace is an extremely small-footprint relational database (200-300 KB). It is especially suitable for embedded devices, for which large databases and sophisticated queries are not normally required, but it can also be used on larger devices. DB2 Everyplace provides transaction support covering updates to multiple tables within a single transaction, encrypted tables, and zero client administration.
Apache Derby is a 100%-pure Java relational database, providing SQL-92, partial SQL-99, and SQLJ support, indexes, triggers, transactions, encryption, and the standard features that one expects of a relational database. Because Apache Derby contains a larger number of features, it is approximately 2 MB in size and therefore might not be suitable for smaller, resource-constrained devices.
- Messaging. You can use the Java Message Service (JMS) API with IBM WebSphere MQ Everyplace to send and receive messages, called point-to-point messaging. WebSphere MQ Everyplace provides once-only, ensured messaging and supports offline operations with local message queues that hold messages when the device is offline, and then sends these queued messages to Enterprise applications when the device is back online. Similarly, messages destined for client applications are held in server-side message queues and then sent to the client applications when the device is back online. WebSphere MQ Everyplace encrypts messages to protect content over the network. The WebSphere MQ Everyplace server handles securely sending and receiving messages between client applications and MQ applications connected to the Enterprise Service Bus. As a result, the client platform enables your users to conduct secure e-business On Demand transactions.
You can also use the JMS API with the Lotus Expeditor micro broker, which is suitable for applications that require messaging, notification, and event services. The micro broker supports publish-and-subscribe messaging in which publishers generate messages containing information about a particular subject, subscribers express interest in messages containing information on a particular subject, and a broker receives messages from publishers and delivers messages on a particular subject to the subscribers registered for that subject. In addition, you can now use the JMS API with the micro broker to support point-to-point messaging. You can also support offline operations through defined quality-of-service levels and durable subscriptions.
- Web services. For online operations, the client platform supports Web services, so client applications can consume and provide Web services in a secure manner. As a result, your users have access to a broad range of business data and consumer information. The client platform implements Web services similar to those defined in JSR 172 and provides support for document literal encoded streams that exchange well typed data objects so client applications can consume Web services. You can also develop an OSGi service and, during registration of the service, indicate that it is also available as a Web service. For the desktop client, you can also use Axis Web services, so client applications can consume Web services with full support for JAX-RPC (JSR 101).
- Data synchronization. The SyncML4J (SyncML for Java) toolkit lets you develop data-synchronization and device-management client applications based on the Open Mobile Alliance (OMA) Data Synchronization (DS) and Device Management (DM) standard protocols. As a framework, SyncML4J supports user-defined data sources. Data sources can range from simple resources, such as memos and images, to complex schema-aware data types, such as relational databases or Personal Information Management (PIM) databases.
Lotus Expeditor provides the following access services that support communications among components running in an instance of Lotus Expeditor:
- OSGi Event Admin. Nearly all components must deal with events, either as an event publisher or as an event handler. The Event Admin service provides an inter-bundle communication mechanism. OSGi Event Admin is based on an event publish-and-subscribe model, popular in many message-based systems.
- Property broker. On the desktop client, the property broker allows for declarative properties, actions, and wires to be used among completely decoupled components. The property broker is responsible for taking changed properties and distributing the property values to the appropriate actions as defined by the wires that are registered with the property broker. The property broker in Lotus Expeditor is similar to the property broker in IBM WebSphere Portal, and it lets you develop cooperative, composite applications that consist of Eclipse, portlet, and/or AWT components.
Lotus Expeditor supports the following additional client services:
- Network awareness. For the desktop client, you can use the Network Layer API to determine the status of the network and remote resources when running your applications. You can then execute your application logic accordingly.
- Security services. For the desktop and device clients, security services support a key store, which provides an encrypted local repository for user security information and accounts, which allow access to user account information (for example, user ID and password). The desktop client also supports single sign-on, which minimizes log-on prompts.
- Additional services. These include database life-cycle management, which provides uniform interoperability with different relational databases, and synchronization manager, which allows users and applications to initiate, control, and monitor synchronization of local data stores using one or more synchronization services.
Lotus Expeditor supports two primary types of user interfaces for applications: Web-application-based UI and graphical UI. Lotus Expeditor launches a local Web browser to render Web-application-based user interfaces, and the Web application can run either locally on the client or remotely on a server. On Windows, Lotus Expeditor launches Microsoft Internet Explorer; on Linux, it launches the Mozilla Web browser.
Lotus Expeditor uses an embedded browser to display content from Web applications, and it uses a portlet viewer to display content from portlet applications, including portlets that support the Web Services Remote Portlet (WSRP) specification. Your applications can invoke and configure both the embedded browser and portlet viewer to control the user experience when displaying the output from Web applications and portlets, respectively.
Lotus Expeditor also supports rich client applications, which use widgets to display a GUI with the native look and feel of the client platform. Lotus Expeditor supports the following user interface toolkits so you can develop applications with a GUI on desktop clients and devices:
- Standard Widget Toolkit (SWT). The Eclipse SWT provides a completely platform-independent API that is tightly integrated with the operating system's native windowing environment. SWT widgets actually map to the platform's native widgets. This gives your applications a look and feel that makes them virtually indistinguishable from native applications. In cases where native function is not provided, the SWT emulates it in a manner compatible with the platform's normal look and feel.
- JFace toolkit. The Eclipse JFace toolkit is a platform-independent user interface API that extends and interoperates with the SWT. This library provides a set of components and helper utilities that simplify many of the common tasks in developing SWT user interfaces. For example, it provides the dialog boxes, wizards, and rich text editors used by the Eclipse Integrated Development Environment (IDE). JFace also has tables and trees that use a model view controller (MVC) architecture to separate data access log-in from data display logic. JFace also provides the mechanisms by which plug-ins programmatically contribute to the workbench.
- Custom widgets. Lotus Expeditor provides a mechanism for applying a common style to the user interface of applications. It does so by supporting not only standard SWT controls but also a set of custom widgets for which you can extend the customization. If you use these custom widgets to build the user interface of your application, you get the added capability of reflecting the workbench style or theme in your application to ensure that it looks like a member of the suite of application offerings. You can also apply a static style to the widgets to give your application a look and feel that is different from the other application offerings, if desired.
- Device support. Lotus Expeditor Client for Devices supports subsets of the full SWT and JFace widgets sets. It also provides mobile extensions that are particularly useful on devices. The device client does not support custom widgets.
Lotus Expeditor provides a workbench, which controls the overall operation of the user interface and handles launching applications:
- Desktop workbench. Lotus Expeditor provides an integrated application desktop window, called the desktop workbench, so users can install, manage, and launch one or more applications in a single window. The desktop workbench presents each application individually in its own perspective, only one of which is visible at any given time. When a user selects an application from the workbench, the workbench launches the perspective for that application. You specify an extension point for each of your applications, so the workbench can correctly launch the perspective for your application.
You can also extend and customize the workbench to meet your requirements. The workbench enables your applications to contribute help and preferences so users can understand and configure your applications from the workbench. You can brand certain elements of the workbench, such as the splash screen, and define personalities to customize the operation and appearance of the UI.
The Restricted workbench allows system administrators to restrict the functionality of the user's workstation to a set of applications and operating system services configured by the system administrator. Target deployments include centrally managed clients, such as bank branch teller terminals and retail point-of-sale devices as well as customer-facing kiosks such as ATMs.
- Device workbench. The device client provides a customized embedded workbench. When running in the development environment, this workbench displays just like the embedded workbench specified by Eclipse. When running on a device, though, the embedded workbench is invisible to the user. It runs in the background and does not provide a user interface. Instead, it allows eRCP applications to seamlessly integrate with the native GUI and shows running eRCP applications in the Windows task list. The user clicks the link for an application, and it displays like a normal application on the device.
Lotus Expeditor also enables you to incorporate text editing and spell checking into your applications (desktop client only):
- Rich text editor. The rich text editor enables your users to edit text through standard functions such as typing text, selecting fonts, and underlining. The rich text editor has the advantage of being completely configurable, manageable, and easily modified. It can be embedded in a Java application, provides a default UI (such as a tool bar), supports APIs for application development, and can extend an application's functions, such as handling events and contents.
- Spell checking. Applications can perform spell checking, but to do so, a series of dictionaries must be set. The four ways to check misspelled words are by using:
- The dictionaries supported by the given locale
- The dictionaries supported by the platform default locale
- Given dictionaries
- Given dictionaries and a customized user dictionary
Lotus Expeditor allows you to build applications that combine the real-time collaboration functions in Lotus Sametime with the line-of-business functions in Lotus Expeditor. First, you can embed Lotus Sametime into the sidebar of the Desktop workbench. As a result, your users can chat with other users, and your applications can leverage the APIs provided by the Lotus Sametime Software Development Kit (SDK). Second, Lotus Expeditor provides core client services for Lotus Sametime Connect, so you can develop real-time collaboration applications that use the Lotus Expeditor APIs for these core client services. In both cases, users must install Lotus Sametime Connect on their machines.
Platform management installs, maintains, and configures applications and services on the client. Lotus Expeditor supports three methods to manage the client as shown in figure 4.
Figure 4. Three methods to administer the client
You can administer Lotus Expeditor by using the following:
- Enterprise Management Agent. The Enterprise Management Agent works cooperatively with the Device Management Server provided by Lotus Expeditor Server to perform management operations. The agent and server use the SyncML/DM protocol defined by the Open Mobile Alliance to communicate management requests. An administrator can schedule management jobs for devices that include software installation, update, and configuration. When you install or update software components, the management system determines which components are already on the device, and then installs only the missing components.
- Provisioning. The Update Manager enables users to directly install applications and components from standard Eclipse update sites onto managed clients.
- WebSphere Portal administration. The portal services on the client work cooperatively with WebSphere Portal to allow portal administrators to centrally administer desktop clients. As a result, the client can install, load, and run applications defined by WebSphere Portal, and it receives configuration information from it.
Lotus Expeditor Toolkit
Lotus Expeditor Toolkit provides a complete, integrated set of tools that lets you develop, debug, test, package, and deploy client applications that use client services. The toolkit provides wizards that enable you to create client services projects to develop client applications. The 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 platform.
For example, when you create a client services project, you select a target definition and a 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.
The toolkit also provides Ant (Another neat tool) tasks so you can create Ant scripts to automate the building of your applications. Ant is a popular Java build tool and is a project of the Apache Software Foundation. In addition, the toolkit provides program samples and templates to help jumpstart your application development projects.
You can also use the toolkit to build custom client platforms for the desktop client; however, custom platforms require an OEM license from IBM.
There are two methods for developing Lotus Sametime applications provided in Lotus Expeditor Toolkit. The first method is to target a Lotus Sametime Connect installation on your development machine by selecting the Lotus Sametime Test Environment when opening a new workspace. The second is to select the Lotus Expeditor for Desktop Test Environment when opening a new workspace, and then specifically select the "Default with Embedded Sametime Target" for your projects and Run configurations.
You can also use Lotus Expeditor Toolkit to develop Eclipse and Lotus Expeditor applications that run on Lotus Notes V8. To do so, target a Lotus Notes V8 installation on your development machine by selecting the "Lotus Notes V8 Test Environment" when opening a new workspace.
Note: Lotus Notes V8 and Lotus Sametime V7.5.1 applications run on the desktop client but do not run on the device client.
Developers must install the Lotus Sametime V7.5.1 client or the Lotus Notes V8 client on their development system to develop applications for each of these clients.
You can install Lotus Expeditor Toolkit into any of the following development tools:
- IBM Rational Application Developer V188.8.131.52
- IBM Rational Software Architect V184.108.40.206
- Eclipse 3.2.2 + Web Tools Project (WTP) 1.5.3
- IBM WebSphere Application Server Toolkit V220.127.116.11
Lotus Expeditor and Eclipse
As previously stated, Lotus Expeditor is built on Eclipse. Lotus Expeditor, however, provides many extensions that are not available in the base Eclipse platform. Figure 5 shows the complete software stack for Lotus Expeditor Client for Desktop. All the red, green, and blue components are extensions to the Eclipse RCP that Lotus Expeditor provides for the desktop client. All components are tested and supported by IBM on the client operating systems shown in the figure.
Figure 5. Software stack for Lotus Expeditor Client for Desktop
Figure 6 shows the complete software stack for Lotus Expeditor Client for Devices. All the red, green, and blue components are extensions to the Eclipse embedded RCP that Lotus Expeditor provides for the device client. Again, all components are tested and supported by IBM on the client operating systems shown in the figure.
Figure 6. Software stack for Lotus Expeditor Client for Devices
Lotus Expeditor Toolkit provides corresponding extensions to the Eclipse IDE to support development of applications that use these runtime extensions.
This article introduced you to Lotus Expeditor, IBM's universal managed client that allows you to develop powerful managed-client applications. Lotus Expeditor supports standard programming models, which allow software developers to reuse their skills, tools, and software components to develop and deploy client applications. These applications run across a variety of client platforms, support the user experience that best meets their users' requirements, and securely connect to applications, services, and data in the IT data center. As a result, software developers can deliver client applications that support mobile users, provide their users with a familiar UI to avoid costly retraining, and improve overall application and network performance.
- Read the developerWorks Lotus article, "Getting started with the IBM Lotus Expeditor Toolkit V6.1.1."
- Read the developerWorks Lotus article, "End-to-end integration with pervasive messaging and IBM Lotus Expeditor micro broker."
- Read the developerWorks Lotus article, "Building an offline application in IBM Lotus Expeditor."
- Read the developerWorks Lotus article, "Developing and deploying rich client applications on desktops and mobile devices using IBM Lotus Expeditor V6.1."
- Read the developerWorks Lotus article, "Migrating Eclipse RCP applications to IBM Lotus Expeditor."
- Read the developerWorks Lotus article, "Creating collaborative components for IBM Lotus Expeditor Property Broker."
- Read the developerWorks Lotus article, "Developing an OSGi service as a Web service in IBM Lotus Expeditor."
- Read the developerWorks Lotus article, "Building and deploying a simple Web Services Resource in IBM Lotus Expeditor."
- Read the IBM Redbooks publication, Building Composite Applications in Lotus Expeditor V6.1.
- Read the IBM Redbooks publication, Building Composite Applications.
- Read the developerWorks Lotus Expeditor page.
- Refer to the IBM Lotus Expeditor documentation page.
- Look for additional IBM Lotus Expeditor samples in the developerWorks Lotus Sandbox.
- Refer to the Eclipse Web site.