Functionality-Based Service Matchmaking for Service-Oriented Architecture Stephen S. Yau and Junwei Liu Arizona State University Tempe, AZ 85287-8809, USA {yau, junwei.liu}@asu.edu Abstract Service matchmaking is a basic feature of Service- Oriented Architecture (SOA). In this paper, a semantic-based flexible service matchmaking approach is presented to efficiently identifying functionality- compatible services. This approach utilizes SAW- OWL-S to specify the service advertisements and service discovery requests. The functionality- compatibility of a service to a request is defined on their parameters and conditions. This approach uses functionality filtering to prune out incompatible services, and then select services based on the aggregated similarities of input/output parameters, precondition/result situations and other service attributes. Experimental results are given to illustrate that this approach can efficiently generate precise service matchmaking results. Keyword: Service-oriented architecture, service matchmaking, context and situation, service functionality, functionality-compatibility. 1. Introduction Service-Oriented Architecture (SOA) [1] enables rapid composition of distributed applications from services in a flexible and agile manner, and has become the new-generation computing architecture for many large- scale distributed systems in various application areas, such as scientific collaboration, e-business, health care, military, and homeland security. A service is a well- defined and self-contained software entity with a discoverable and invocable interface to provide certain functionality over networks using standard protocols. Various services can interoperate with each other, regardless of the programming languages and platforms used. The independency and interoperability of services make SOA a suitable architecture for Autonomous Decentralized Systems. Various service providers, service requestors and service directories collaborate in SOA. Service providers publish service advertisements in the service directories; service directories handle service discovery requests by identifying suitable services matching the requests. Precise and efficient service matchmaking is a basic and important feature of SOA. A good service matchmaking approach must find the service best matching the service request. There are two important issues involved in this approach: How to specify the functionality of the services semantically; and how to understand such semantic specifications and match services semantically. Traditional service matchmaking approaches are based on syntactical matching on the textual description of service names and properties, and hence they lack semantic considerations for supporting semantic-based service matchmaking. Although there are no available ways of interpreting the full semantics of services, there have been great improvements in semantic service specification languages, such as WSDL [2], OWL-S [3], and SAW-OWL-S [4]. With such improvements, there have been approaches for matching services based on the semantics of input and output parameters of the services. However, considering only the semantics of the input/output parameters is not sufficient to generate precise matching results due to the following reasons: First, for many services, the input and output parameters do not clearly represent the functionality provided by the service. For example, many services will return a Boolean value to indicate whether the service is executed successfully. In such a case, the output parameter cannot differentiate services with different functionalities. The semantics of services’ results can help the differentiation in such a case. Secondly, the match of the input and output parameters does not guarantee the service can be successfully used by the requestor. In dynamic SOA- based systems, the execution of a service that meets the service requestor’s expectation must also satisfy certain preconditions and provide the expected results. To solve these two problems, a service matchmaking approach based on service functionalities, called F-Match, will be presented in this paper. F-