Service-oriented computing is emerging as a promising approach for building highly distributed computer systems. In these systems, software applications dynamically discover and invoke the services of others, in order to complete their own workflows. However, current work typically assumes service providers to be cooperative and reliable. This is unrealistic in open distributed systems, where participants are autonomous agents that may fail without warning or take longer than expected.
In this talk, we address provider uncertainty by focussing on the process of service provisioning, i.e., deciding which providers to rely on for the constituent tasks of a workflow. In particular, we discuss a novel algorithm that deals with failures and uncertainty both reactively (by re-provisioning services at run-time) and proactively (by provisioning multiple services redundantly). We show how the algorithm can be applied in different scenarios where services are invoked on demand or where explicit service contracts are negotiated in advance. Finally, we outline empirical results to demonstrate that our algorithm performs well even in environments where providers are highly unreliable.
Sebastian Stein is currently in the final stages of his PhD at the University of Southampton. He is interested in using techniques from agent-based computing and AI to deal with the uncertainty and dynamism of large-scale distributed systems (including Grids, Web services and peer-to-peer systems). In 2004, Sebastian received an MEng in Computer Science from the University of Warwick, and after completing his PhD, he will continue to work in Southampton as a research fellow on the Aladdin project.