We describe a model of matchmaking suitable for the implementation of services, rather than their for their discovery and composition. In the model, processing requirements are modelled by client requests and computational resources are software processors that compete for request processing as the covariant implementations of an open service interface. Matchmaking then relies on type analysis to rank processors against requests in support of a wide range of dispatch strategies. We relate the model to the autonomicity of service provision and briefly report on its deployment within a production-level infrastructure for scientific computing.
Categories and Subject Descriptors
MOTIVATIONThe dynamic resolution of processing requirements against pools of computational resources is a key requirement for distributed computing infrastructures. Such matchmaking supports the automatic composition of service resources that * This author is partly funded by the European Commission in the context of the D4Science project, infra-2007-1.2.2 of the FP7 IST priority. † This author is supported by a grant from the Science Foundation Ireland.Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. align with structural, semantic, and non-functional requirements [2]. Grid-based infrastructures use it to allocate clusters of storage and processors for the execution of highperformance and high-throughput applications [4]. In our experience with the design and operation of gCube 1 , a production-level European-funded infrastructure for scientific research collaborations, matchmaking is routinely employed against software and hardware resources alike.It is in the context of this work that we have come to consider a less conventional application of matchmaking within the local boundaries of service implementations. Here, we take processing requirements to be implicitly modelled by service requests, and interpret computational resources as software processors that implement the service interface and compete for request processing. We assume that the interface is open to covariant specialisation of input and output domains, and that the processors mirror the specialisation along one or more inheritance hierarchies. We then rely on a matchmaker to analyse the runtime types that annotate the graph structure of requests, and to infer from them a ranking of processors based on how specifically they can process the requests. Finally, we assume the application of servicespecific dispatch policies over the ranking, from those that select the most specific processor to those that broadcast requests to all processors (cf. Figure 1).We believe that the approach has non-trivial implications f...