10.1: WSDL Import Wizard
The WSDL Import Wizard gives the user the possibility to customize the generated OML file. This section will explain in depth the different options and what they generate. It also explain what are the limitation of the importer as not every WSDL file can be imported successfully.
10.1.1: The WSDL File and import Options
Figure 10.1: Basic parameters and import options
The first page of the Import Wizard is used to define the basic parameters needed to import a WSDL File. The different input parameters are:
-
Container
The Container is the destination project to store the generated OML file. The Project can also be selected with the "Browse" Button situated to the right of the entry field.
-
URL or File
This is where the input WSDL file path has to be entered. The Format of the path has to be a complete URL (meaning with protocol). If the WSDL file is stored offline on the Computer, it can also be entered directly or through the "Browse" Button situated to the right of the entry field.
-
Target OML File
This is where the generated OML file will be saved to. Every time the URL changes, a default destination will be generated by the wizard. It can be changed afterwards to accomodate the needs of the user.
Furthermore, there are some options that have to be selected.
-
Connection Type
The Connection Type defines what kind of operations should be extracted from the WSDL file. Depending on the type, different JOpera adapters will be added to the program. At least one connection type has to be selected (or there will be no operations to import).
-
Input Format
If a program that is generated from an operation needs complex input parameters, two different input scheme can be used. The Leaves Only
mode will generated an input field for every parameters that can contain a value, indipendent on the structure of the input message. It is then the responsability of the different adapters to handle the recreation of the complex type.
The With Packer
Mode on the other hand will generate one input field for every input parameter in the message indipendent on the type of the input (simple or complex). The adapters have to create packers that will create the complex type given the underlying input parameters. The packer structure can, of course, be recursive if the underlying parameters are themselves complex types.
-
Output Format
If a program that is generated from an operation needs complex output parameters, two different output scheme can be used. The Leaves Only
mode will generated an output field for every parameters that can contain a value, indipendent on the structure of the output message. It is then the responsability of the different adapters to handle the extraction of the complex type.
The With Unpacker
Mode on the other hand will generate one output field for every output parameter in the message indipendent on the type of the output (simple or complex). The adapters have to create unpackers that will extract the the underlying output parameters given the complex type. The unpacker structure can, of course, be recursive if the underlying parameters are themselves complex types.
10.1.2: Selecting the Operations
Figure 10.2: Selecting the different operations
If the user wants to select which operations should be imported and which should not, he can use the
next
button instead of the
finish
button. The wizard will then show a list of the different operations found in the WSDL file preceded by the connection type to differentiate operations with the same name but different access modes.
Using the different buttons between the two lists, the User can then select the operations to import. The
Selected Operations
will be imported and the
Available Operations
have been found in the WSDL but won't be imported in the JOpera OML project.
- the < button will add the selected chosen methods to the available ones
- the << button will add all chosen methods to the available ones
- the > button will add the selected available methods to the chosen ones
- the >> button will add all available methods to the chosen ones
10.1.3: Warnings, Errors and Interpretations
A lot can go wrong when importing a WSDL file and the different operations. Some errors may result in the OML file being empty (e.g. not finding the WSDL file), other may result in the OML file having less programs then the number of chosen operations (e.g. the message format of an operation could not be imported).
To understand what went wrong, the user can select next
instead of finish
and see the different warnings and errors that happened on importing the WSDL file.
Figure 10.3: Viewing the Warnings and Errors
The Panel is separated into two categories.
The first part is a list of all errors and warnings that happened during the import.
The second part is a more detailed explanation of the message if one was found and where the message occured.
10.1.4: Known Limitations
The WSDL Import Wizard has limitations as the numbers of different WSDL files are theoreticaly endless and we could not cover every eventuality. The importer can only be made more powerful with feedback from user with WSDLs that crashed or were not satisfactorily imported. Some of them have already been found and known limitations are listed here.
-
Schema import chain
There is a problem when more than one schemes are defined in a WSDL file and one (or more) is referencing another one. The referenced message part will not be found and will be defined as a string. The responsability will then fall onto the programmer to find the right format for the parameter.
-
'Leaves only' output format
The Leaves Only
output format changes the way the output parameters are mapped to the output fields. This can only be done by upgrading the JOpera runtime. Until the runtime has been updated, this option will be set to disabled.
-
Optional Input/Output Parameters
Some WSDL files create choices by declaring two or more optional message parts. This can be done by setting the MinOccurs to 0. However creating optional message parts in JOpera is as yet not possible because it would need the runtime to be changed. Until the runtime has been updated, all optional fields will be inserted as if they were mandatory and the user must edit the input/output messages himself.
-
Unbounded Input/Output Parameters
Some WSDL files create arrays by declaring an element to have a maxOccurs of unbounded (or greater than 2 for that matter). The importer cannot as yet handle such fields and will only add one parameter for each declaration instead of an array declaration.
-
Cycles in the definitions
Some WSDL files creates definitions with elements referencing each others (e.g. an articles has n citations which are themselves articles with citations etc). The importer cannot handle Cycles in the Leaves Only
mode.
-
Input Element Attributes
Some WSDL files creates elements with attributes instead of sub elements. In the Packer
mode, those attributes cannot be properly processed and will be added to the parent Packer
or to the Program if the element is defined there.
-
Output Element Attributes
Some WSDL files creates elements with attributes instead of sub elements. In the Unpacker
mode, there is no way to extract the attributes from the element so an Unpacker will not be created for elements with attributes.
-
HTTPS
WSDL files found at HTTPS URLs may not be successfully imported unless your Java/Eclipse environment is correctly configured for SSL.
10.2: Autoconnection
JOpera takes an existing data flow graph and attempts to add data flow bindings
between matching parameters.
The user can access the feature by double-clicking on a parameter or by selecting
some tasks and/or parameters and then right-clicking and choosing
'Auto Complete', Automatically Connect Parameters
.
Figure 10.4: Context Menu Selection
On an empty selection every possible connection is added to the process displayed.
If the user has selected a parameter, this parameter is auto-connected and if the
user has selected a task the parameters of this tasks are auto-connected.
It is possible to configure in the preference dialog if hidden parameters should be
connected too and if already connected parameters should be ignored. Depending on if
type information are visible or not this feature matches parameters only by name or
by name and type information.
Figure 10.5: Preferences Dialog
Figure 10.6: Preferences Dialog
Figure 10.7: Autoconnect Example before
Figure 10.8: Autoconnect Example after
10.3: Refactoring
10.3.1: Upgrade/replacement of programs and processes
JOpera supports the replacement of service interfaces (e.g., when a service is
upgraded to a new version with small modifications). The feature is accessible
through the context refactor submenu (Figure Figure 10.9).
Figure 10.9: Context Menu Selection
The Program/Process Browser (Figure
Figure 10.10)
assists the user in choosing the new program/process (interface). The user may
choose in the wizard (Figure
Figure 10.11) if only the
selected occurences or all matching ones are switched to the new interface.
Figure 10.10: Program Browser
Figure 10.11: Refactoring Wizard
10.3.2: Extract sub-process
The user may select a set of services in any of the views including the control
flow of a process and choose to apply the process extraction refactoring
(Figure Figure 10.12). The user's selection is reduced
to tasks and constants. This implies that the user can select tasks and constants
by drawing rectangles. Selected parameters are then ignored.
The user may choose the new Process' name in the Wizard
(Figure Figure 10.14: left).
A new process is created with the selected content, which is replaced by a
SubProcess referencing it in the original process (Figure
Figure 10.15: middle and right).
Figure 10.12: task and constant selection
Figure 10.13: Context Menu Selection
Figure 10.14: Refactoring Wizard
Figure 10.15: Dataflow of parent process after
Figure 10.16: Dataflow of extracted SubProcess
10.3.3: Inline sub-process
Inlining is the inverse to extracting, whereby a SubProcess is replaced by the
content of the referenced Process. The user may select a subprocess and select the
inline refactoring in the context refactor submenu (Figure
Figure 10.17).
Figure 10.17: Context Menu Selection
The user may decide on the scope of the refactoring which can be either selection,
file, project or workspace. Choosing the workspace scope the user can decide
if the inlined process should be deleted automatically afterwards.
Figure 10.18: Refactoring Wizard
Figure 10.19: Dataflow of parent process after
10.4: JOpera Kernel Command Line Reference
By opening the JOpera Kernel Console view, you can access the low-level, command line interface of the JOpera process execution kernel. From it, you can bypass some of the GUI to directly access some of the internals of the kernel.
Figure 10.20: The JOpera Kernel Console view
This is recommended only for expert users that are trying to debug the system, develop additional functionality (and have not exposed the new features through a more user friendly UI).
In this section we document some of the command lines that are currently supported by the JOpera Kernel Console view.
10.4.1: Starting processes
start 'processName' ['inputParameterValues'] |
This command starts the execution of a new process
|
processName |
This is the name of the process to be started |
inputParameterValues |
Input Parameters are passed using a URL/CGI encoding |
On the command line, the
inputParameterValues
are listed using a URL/CGI encoding. That is, the input parameters are passed as a list of
name=value
pairs, separated by the
&
character.
Once a process has been started, it is assigned a unique ID by the system, which can be used throughout its lifetime to refer to it. This ID is printed out in the console view.
Examples
-
start demo
This will start a process called demo
and use the default values for its input parameters
-
start demo a=123&b=Test
This will start a process called demo
and pass the value 123
into its a
input parameter and assigns the value Test
to the b
input parameter
10.4.2: Deleting process instances
delete data 'processID' |
This command deletes the execution state of the given process instance
|
processID |
This parameter identifies the process instance to be deleted |
The
processID
identifies the process instance to be deleted. This is the value printed out after a process has been started using the
start
command.
Examples
-
delete data demo.0.0
This will start instance 0 of a process called demo
10.4.3: Listing deployed process templates
show templates |
This command lists the names of the currently deployed processes
|
Examples
-
show templates
This will list all processes that are currently deployed in the kernel
10.4.4: Undeploying process templates
delete template 'processName' |
This command undeploys a process template from the kernel
|
processName |
Process templates are identified by name |
The
processName
identifies the process template to be undeployed.
Note:
Processes should only be undeployed if there are no active (running) instances, otherwise the kernel may be left in an inconsistent state
Examples
-
delete template demo
This will undeploy the process template called demo
.