Exploring more advanced functionality of composite applicationsAdded by IBM on October 5, 2011 | Version 1 (Original)
|After you have gained a basic understanding of composite applications, you can explore more advanced functionality of the composite application infrastructure.
After you have gained a basic understanding of composite applications, you can explore more advanced functionality of the composite application infrastructure.
Some composite applications are considered Portal-managed applications in that they are described and deployed on WebSphere
® Portal and can be centrally managed from WebSphere
Portal. They are supported on the Lotus
® Expeditor client by the composite application infrastructure, which provides the following services:
Parent topic: Developing composite applications
- APIs that are common between Lotus Expeditor and WebSphere Portal, such as:
- Property broker – In WebSphere Portal, the property broker allows two portlets to communicate with each other through the use of a Property and Action registry and a wiring mechanism. This functionality has been ported to the client to support Property to Action model communication. The architecture built into the client supports additional action-based communication systems, such as Standard Widget Toolkit (SWT), Abstract Window Toolkit (AWT), and OSGI events. You can extend the property broker API to support different Action-based targets through the Action Handler Extension Point.
- Synchronization – Composite applications whose components implement the synchronizable interface are able to synchronize their data so that the application can be available for use while the client is offline or when a connection to the WebSphere Portal server is not available. When an application's components implement this interface, users of the application have the ability to register the application for synchronization. After an application is registered, when a synchronization job runs on the client, the synchronization code for the application is called. The code that synchronizes the data must be provided by the application components, using SyncML or another synchronization service registered with the Synchronization Manager.
- Managed settings – A framework that retrieves policy and preference settings, or any other name and value pairs defined by you on a back-end system, and stores them in the Eclipse preference store implemented on the client. For composite applications, which are managed by WebSphere Portal, this means that the framework manages portal policies on the client. A portal policy is a collection of settings that influences the behavior of a portal resource and the experience that users have when working with it. Using policy, you can limit or extend the functionality provided by a resource based on the role and associated permissions defined for a given user. The portal policy settings you define for a resource in WebSphere Portal are likewise applied to that resource on the client. Policies are kept up-to-date through scheduled synchronization jobs. The client implements a federated policy architecture in which policy providers identify a precedence order for policy retrieval.
- Serialization service – On Websphere Portal, components that contain custom code call the Serialization SPI to serialize their data and generate a custom application definition in the form of an XML fragment. The server exposes Web Services and Representational State Transfer (REST)-based services that provide application-specific information to the XML-based application definition. When the application is provisioned to the client, WebSphere Portal passes the XML fragment to the client. The client reads the XML fragment and calls the components that implement the com.ibm.portal.app.component.Serializable SPI to create instances of the custom domain objects defined by the components.
- Application definition – The client uses a standard composite XML document structure referred to as the composite application instance to define the application. You can use the application instance to specify application-specific information to create an importable CAI XML file for the client. The basic construction of this XML package is a high level container hosting embedded XML fragments called domain objects. These domain objects are the definitions for the various components within a composite application and can be reconstructed on the client using the com.ibm.portal.app.component.Serializable interface.
- CAI URL format – Each composite application hosted on the Portal and opened on the client is defined by a CAI URL with the following format (square brackets [ ] denote optional parts)
cai:///appInstanceID [/pageID]? [hint] [&clnk=t]
- cai:// is the start of the CAI URL format
- appInstanceID is the unique identifier for the application
- [/pageID] is an optional unique identifier for a page in the application
- [hint] is the URL for retrieving the application if it is not already available in the client. Although this piece is options, if it is not used and the applications is not already installed in the client, then the application will fail to open.
- [&clnk=t] is an option that indicates that the application was not opened from a bookmark. Currently this option is only used by Lotus Notes® 8.
Opening a connection to a CAI URL will cause the corresponding application to be projected to the client or updated if already on the client, and then opened in the user interface to the specified page. If no page is specified, the first page in the application is opened.
Advanced folder options for composite application components
Composite application developers and assemblers may wish to provide support for additional views to be opened within their application either through a user action or programmatically.
Adding a component to a Composite Application Editor palette
The com.ibm.rcp.aaf.paletteEntries extension point allows you to specify the palette and category where components should appear in the Composite Application Editor (CAE) Palette.
Making components configurable
To help composite application developers easily view and set component preferences in the Composite Application Editor, you can define editable properties with extension points, add tabs to the Edit Component Properties dialog box, and add property controls that appear directly in your component user interface while it is being edited.