WebLicht is a service orchestration and execution environment built upon Service Oriented Architecture principles. Although it is currently mostly used for incremental automatic annotation of text corpora, other uses such as audio data processing are under development. The main components of WebLicht are:
- A set of distributed webservices (with metadata)
- A harvester for aggregating metadata about the distributed webservices
- An orchestration engine for building valid webservice workflows
- A user-friendly web application for construction and invocation of workflows, which relies on the harvester and the orchestration engine
A Typical User Session
One of the 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 to be processed. On the server, the WebLicht system analyzes the input and creates a data profile for the file.
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 by dragging it into the processing chain box.
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. The user may then add one of those tools to the chain. 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.