Today I want to describe how to use the Property Broker Editor for NSF components. The PBE is a tool that comes with Domino Designer. The same tool is used as part of Lotus Component Designer for LCD components and will be part of the Expeditor toolkit for Eclipse components. The PBE completely hides the fact that WSDL (web service description language) is used as the IDL for component interfaces. So it is more than just a WSDL editor since it is more convenient to use.
To understand the PBE you need to understand the following concepts:
- An output property is published by a source component.
- A property has a datatype which has a name and namespace.
- An action consumes an input property and is provided by a target component.
- The datatype of an output property and the input property of an action have to match to define a wire.
- A wire connects an output property and an action. Wires are defined in the composite application only which allows loosely coupling of components which define the properties, datatypes and actions.
PBE can be launched from Domino Designer from the view 'Wiring Properties'. Just create a new WSDL design note via 'New Wiring Properties' and then use 'Open File' to launch the PBE.
In the first step you can define your own datatypes if you don't want to use one of the predefined datatypes. Go to the types tab and define a new type by giving it a name, a namespace and a base type. NSF components support at this point only one level of inheritance.
Alternatively you can also import datatypes from other WSDL files. This is for example important if you have already a component that provides an action consuming a property with a certain type and now you want to publish a property with the same type to invoke the action.
After you've defined your datatypes you can define the output properties that you want to publish. Go to the properties tab and give your property a (programmatic) name, title, description and a datatype. In the combobox you can choose one of the out of the box datatypes or datatypes you defined earlier in the other tab. The supported datatypes for NSF components are xsd:string, xsd:dateTime and the four specialized types as described here.
Also make sure the checkbox 'allow publishing' is selected which marks this property to be an output property. The target namespace section can basically be ignored. It is just the default namespace for new datatypes.
In order to define actions you actually have to use two tabs. First you need to define the input property of your action. This needs to be done also in the properties tab. This time the checkbox 'allow publish' doesn't have to be checked. After this go to the actions tab. There you can give your action a programmatic name, title and description. Additionally you need to select the input property you defined in the previous step. Don't get confused by the names 'parameters' vs 'properties'. Some people in our team want this differentiation, but I just use the term properties.
The checkbox 'default action ...' can be ignored. I hope we can remove it from the GA version. The output section should also be a collapsed section or completely removed. Actions can have output properties but that is completely identical to actions without output properties that publish 'normal' output properties.