In the VPH-Share project GIMIAS is used as a server of Web Services. The GIMIAS Web Services Plugin, part of GIMIAS Extensions, can expose any processor of loaded GIMIAS Plugins and Command Line Plugins to be used as Web Services. In the context of the VPH-Share project those services are used to compose workflows in different biomedical fields. Their composition and execution is done using the Workflow Management System "Taverna Workbench".
In order to make the services available to several users at a time, the GIMIAS server is installed in Virtual Machine (VM) templates that can be instantiated (as often as needed, even at the same time) and killed on demand. The VPH-Share-Plugin is a plugin for "Taverna Workbench" to make this process transparent to the users. It manages the handling of VM instances in the cloud, so the user can use the available Web Services like any other Web Service, without worrying about instantiation/shut-down of the VMs. It also handles the access control of the user in all steps of the workflow composition and execution.
In the background, the VPH-Share-Plugin instantiates the needed Atomic Services, waits for them to start up, redirects the Web Service calls to the correct Virtual Machine of the Atomic Service, shuts down the Atomic Services when no longer needed, manages the authentication and handles errors in the whole process. Several workflows of the same or a different user and several Web Services of the same Virtual Machine can be launched in parallel without conflicts.
When a user wants to use the provided services within his workflow, he imports a set of service definitions in WSDL format into Taverna, entering a security token that proves his permission to use the service. Whereas in other cases those entries of the WSDL would contain references to a running Web Service server (endpoint), in our case the VMs are not yet running. So instead the files contain an identifier that tells the Taverna Plugin, which VM to instantiate and which service to execute on that machine. Once the user executes the workflow, this instantiation is performed for all the VMs needed to execute the Workflow. The execution of the workflow steps is delayed until the Taverna Plugin has made sure that the VM needed for this service is launched successfully. Then it replaces the template identifier from the WSDL by the address of the VM and allows Taverna to execute it. As the workflow is executed, the Taverna Plugin also keeps track of services that finished their execution and are not needed any longer and shuts the corresponding VMs down.