{'fraction_non_alphanumeric': 0.014963503649635036, 'fraction_numerical': 0.0, 'mean_word_length': 5.091111111111111, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
An Architecture for the Dynamic Deployment of Web Services on a Grid or the Internet

This paper describes an architecture for dynamically deploying Web Services over a grid or the Internet. Distributed job scheduling systems are found at the heart of most grid computing infrastructures. They allow jobs (a combination of the code to be executed and (in many cases) the data on which it is to operate) to be created by clients and dynamically routed to available, remote computing resources for execution. In recent years, there has been a trend towards utilising Web Services to build grid and other distributed applications. An application is represented as a set of services that communicate through the exchange of messages. However, if the computational requirements of a service cannot be met by its hosting environment then a job must be created and sent to a distributed job scheduling system for execution on a suitable host. Therefore, application writers must deal with the complexity of managing two different types of computational entities: services and jobs. The Dynasoar project is investigating an alternative approach in which there are no jobs, but only services. A service can be dynamically deployed on an available host in order to utilise its computational power, if no existing deployments can meet the computational requirements. This is analogous to remote job scheduling, but offers the opportunity for improved performance as the cost of moving and deploying the service can be shared over the processing of many messages sent to it. This is achieved in a way that is completely invisible to the consumer of the service. A key architectural feature is a clear separation between Web Service Providers, who offer services to consumers by advertising endpoints for them, and Host Providers, who offer computational resources. Separating these two components and defining their interactions makes it possible for them to be distributed over a grid or the Internet, and managed by different organisations. This opens up the opportunity for interesting new organisational/business models for Web Service and Host Providers. These include allowing the author of a service to make it available to consumers without providing the computational capability to process requests sent to it. It also creates the possibility for market-places in which Host Providers offer capabilities at a particular cost, and the Web Service Provider makes a dynamic choice between them. The paper describes the architecture, outlines a set of usage scenarios and discusses some of the design issues, including the need to express and enforce trust policies for the three main parties (Consumers, Web Service Providers and Host Providers).