Service oriented computing is crucial to a large and growing number of computational
undertakings. Central to its approach are the open and network-accessible services
provided by many different organisations, and which in turn enable the easy creation
of composite workflows. This leads to an environment containing many thousands of
services, in which a programmer or automated composition system must discover and
select services appropriate for the task at hand. This discovery and selection process is
known as matchmaking.
Prior work in the field has conceived the problem as one of sufficiently describing
individual services using formal, symbolic knowledge representation languages. We
review the prior work, and present arguments for why it is optimistic to assume that
this approach will be adequate by itself. With these issues in mind, we examine
how, by reformulating the task and giving the matchmaker a record of prior service
performance, we can alleviate some of the problems. Using two formalisms—the
incidence calculus and the lightweight coordination calculus—along with algorithms
inspired by information retrieval techniques, we evolve a series of simple matchmaking
agents that learn from experience how to select those services which performed well in
the past, while making minimal demands on the service users. We extend this mechanism
to the overlooked case of matchmaking in workflows using multiple services, selecting
groups of services known to inter-operate well. We examine the performance of such
matchmakers in possible future services environments, and discuss issues in applying
such techniques in large-scale deployments