In composite applications, Web Services Description Language (WSDL) files (XML files) containing datatypes, properties, and actions are used by components for component interaction in a composite application.
Components within a composite application can be wired to together so a user-initiated action in one component can trigger a programmed action in another component. This functionality is supported by the use of properties, actions, types, and the property broker. The composite application components use a model for declaring, publishing, and sharing this information with each other via the IBM Lotus Notes/Expeditor property broker.
Components subscribe to the broker by publishing typed data items - properties and actions - that they can share to communicate with each other. Components can act either as a provider or as a recipient of these properties and actions.
These components may be developed and deployed separately or together and can exchange information and react in a coordinated manner, thus improving the end-user experience. Conversely, as components are removed, the remaining components will still be able to function correctly and in a coordinated manner. The property broker is used to facilitate development of components that may be dynamically integrated, without requiring previous coordination at development time.
You may already be familiar with WSDL files in the context of Web Services Definition Language used in Web Services. The WSDL files used with composite applications are not quite the same as those used with Web Services. WSDL was created to define the interface to Web Services whereas in composite applications it is used to declare and define properties, actions, and types. This use is very close to the requirements for defining Web Services so the Web Services Definition Language is used. This method is also used by WebSphere Portal and is the same one that is used with composite applications.
In IBM Lotus Domino Designer, the creation of the WSDL parts is made easy by using the included Property Broker Editor feature. Refer to the section on using the Property Broker Editor in this documentation for more information.
Notes applications need WSDL parts in order to use the property broker. The property broker facts (relative to WSDL) are as follows:
- Properties -- A property is a typed exchangeable data item which components can produce. All the components in a Composite Application use a single property broker which passes messages between the components. Notes applications NSF components can publish and consume properties. Publishing involves sending a value to the property broker, for it to pass on to other components. Consuming a property means receiving information that another component published, and doing something with that information. Properties can be published at any time by LotusScript code, or automatically when a view row is selected by associating a column with a publishable property; when the row selection changes, the data from that column is published.
- Actions -- An action is the logic to consume a property. Only LotusScript actions can consume a property.
The term "action" is used in general to talk about the "plug" (rather than a service or user interface service) in a component that consumes a property value. Do not confuse the term "action" used in this sense, with the action buttons used in Notes views and forms. All components can have actions, whether or not they are Notes applications.
Although they are not the same thing, there is a relationship between Notes actions that can be invoked via the property broker and strict "Notes actions." A Notes action is the mechanism used to consume a property associated with an action that can be invoked via the property broker. Using Domino Designer, you can associate a Notes action with an action invoked via the property broker, so that the Notes client knows which Notes action to execute when information is received on a wire that is hooked to the action invoked via the property broker.
- Components -- Each component defines its properties and actions, which may be different from those in other components.
An external wire connects a property in a component with an action in other components, so that publication of that property triggers the action. This helps in reusing components across different applications if needed.
This is not defined on a component level but only at the composite application level to ensure loose coupling of components.
Properties and actions are defined with a WSDL file. For a Notes component this is imported into the new design element Composite Applications - Wiring Properties
in Domino Designer. For an Eclipse component this is included in the plugin and referenced via an extension point in the plugin.xml file. In both cases the supplied Property Broker Editor feature may be used to create the WSDL file. If you are already familiar with the required WSDL syntax, you may also create the file manually without the tool.
Elements of composite applications
Composite application creation process