A generic user session
One of the current functionalities of the WebLicht web application is to build and execute chains of web services. Interacting with a HTML-based graphical interface, the user uploads a file that she wants processed. On the server, the WebLicht system analyzes the input and creates its data profile. WebLicht next invokes the repository component, providing it with the profile and asking for all the tools (web services) that can process the data described in the profile. On a successful answer (meaning that the repository found at least one such service) WebLicht updates the graphical user interface to display the matching web services, and the user is asked to choose one.
Once the user selects a web service, the repository component computes the profile of the output data that will result from invoking the selected tool on the original input data. The resulting data profile can again be used to query the repository for a new list of tools. This process can be repeated until the repository service reports that there are no tools that are able to process the final data. The resulting list of selected web services is called a tool chain.
The chain is constructed in a static fashion, using the web services' orchestration metadata and the data profiles, without any service being actually called. Once a chain is constructed, the user can initiate its execution causing the server to sequentially call each web service using the output data of each service as input to the next. The user has the option to visualize or download the results of each tool as they become available.