Software

Data-Intensive Web Services Proxy (WSProxy)

As the number of services and the size of data involved in workflows increases, centralised orchestration techniques are reaching the limits of scalability. When relying on web services without third-party data transfer, a standard orchestration model needs to pass all data through a centralised engine, which results in unnecessary data transfer and the engine to become a bottleneck to the execution of a workflow.

As a solution University of St Andrew’s student Metodi Metodiew has developed a Workflow Proxy (WSProxy). Proxies invoke Web services on behalf of the workflow engine and modify the message traffic in such a way that only small messages containing pointers to data will be returned to the workflow engine; the actual data will stay on a proxy and will be forwarded to other proxies or used as input to the participating Web services. Proxies can be arbitrarily sprinkled across a network and can manage a single Web service or a large set of services, perhaps co-located. In order to see substantial benefit a Web service needs to be managed by a proxy that is considered close, in terms of network distance, latency etc.

WSProxy speeds up the end-to-end execution time of workflows by reducing intermediate data transfer, sharing the workload between distributed proxies and removing the single point of failure, the workflow engine. 

  • Easy to deploy: WSProxy is very easy to install: a single WAR file needs to be deployed into Tomcat’s Webapp folder.

  • Easy to configure: Web-based HTML interface, including functionality to add services, remove services, view data, delete data, view message logs and view geographic distance between proxies and services.

  • Easy to run: WSProxy mirrors the interface of third party services automatically, the only change you need to make to your workflows is changing the end point from the service to the proxy, everything else is handled automatically.

Related publications: