As shown in Figure 1, SOA has three main actors: a service provider, a service requester and a service registry. The service provider defines service descriptions of a collection of services, supplies services with functionalities and publishes the descriptions of the services so as to make the services discoverable. The service registry contains service descriptions and references to service providers and provides mechanisms for service publishing and discovery [14], e.g. Universal Description, Discovery and Integration (UDDI). The service requester is a client that calls a service provider. It can be an end-user application or other services. A service requester searches in the service registry for a specific service via
the service interface description. When the service interfaces match with the criteria of the service requester, the service requester will use the service description and make a dynamic binding with the service provider, invoke the service and interact directly with the service.