An Algorithm for Two Phase Rating of Dynamically Composed Services
9th Institutes of Technology Science & Computing Research Colloquium (ITSCRC 2005)
Many computer science researchers are pursuing the vision of service-oriented software architectures through which end-users can seamlessly access customised, potentially disposable services to aid them carry out a myriad of everyday tasks. Full realisation of this vision requires deployment of facilities for the dynamic discovery, composition, interoperation and execution monitoring of preexisting networked software services, possibly administered by different organisations or originated by multiple developers. Significant research efforts are addressing the development of frameworks and process-oriented techniques for service composition, much of it focussing on specification of services in terms of formal process semantics. Although increasingly powerful methodologies, languages and algorithms supporting the construction, execution and adaptation of dynamically composed services have emerged, little attention has been paid to the supporting infrastructure necessary for their widespread deployment. In particular, accounting systems target charging of services on a one-by-one basis; they do not consider the possibility that services can be collectively orchestrated in an arbitrary manner to fulfil changing requirements. Existing accounting systems, including their rating engines, typically are manually configured to account for specific services at the time those services are initially deployed. However, in environments where services can be dynamically composed this approach is no longer possible: service compositions are created and executed within a short time span, so there is no time for manual configuration of appropriate accounting operations. Accounting operations must be automatically configured when service compositions are initially constructed, or subsequently modified. In this paper we present a two-phase rating process incorporating an algorithm that generation of charge for dynamically composed services. The algorithm treats composed services as a tree structure in which groups of services comprise a composed service which can itself be part of a group of services comprising a composed service at the next level upwards of the tree. The tree is traversed in a depth first fashion, in order to attribute charges to all composed services. To do so the algorithm calculates changes in charges for those services based on the presence or lack of presence of named services in the group of service comprising that composed service. Application of this algorithm enables the rating engine to generate charges for services that are dynamically composed and for which the rating engine can have no prior knowledge. This method also provides a means to closely map real-world business relationships between service providers to the charges applied when their services are used together.