| Abstract: |
Existing Peer-to-Peer (P2P) systems are scalable and robust, but geared towards specific applications. Service-Oriented Architectures (SOAs) support the loose coupling of services, but the
centralized and static nature of servers which provide services makes these servers a bottleneck. Therefore, this thesis combines the advantages of both approaches and leverages their drawbacks,
by developing a Service-Oriented Peer-to-Peer System (SOPPS). Hence, SOPPS is decentralized, scalable and robust, while supporting the loose coupling of services. These properties are used to
derive a complete set of requirements, which SOPPS has to fulfil, covering service and charging support, as well as implementation, protocol and security features. Based on these requirements,
the architecture of SOPPS is specified, which describes the building blocks of the system, as well as their structure, features and relations. The architecture consists of five different
architectural models, each of them focusing on a specific aspect of the system. The SOPPS middleware is specified as a means to instantiate the architecture on top of the Internet, in an open and
distributed manner. The middleware features a modular and layered design, which ensures its extensibility. The design is based on the different roles of service user and service supplier, that
peers have to fulfil, and the tasks they have to carry out, in order to fulfil these roles. A prototype of the middleware is implemented and successfully used in various application scenarios. It
is shown that the middleware fulfils those previously defined requirements. Especially, security features of the middleware are evaluated successfully, based on attack trees. The middleware
contains mechanisms for negotiating and charging services. The use of these mechanisms enables peers to receive compensation for service delivery, in turn giving them incentives to deploy and
deliver services. Thus, the middleware enables a service market on top of SOPPS. This distributed service market makes it possible to compose existing services into new, value-added services.
Therefore, the role of service composer is defined, which describes a peer which carries out the complex task of service composition. A mapping of this task onto the SOPPS modules, as well as a
generic service composition algorithm, is specified. The algorithm enables service composers to integrate new service composition techniques into a well-defined process. Different heuristic
strategies for applying the service composition algorithm are developed and evaluated in simulations. As a result, guidelines for developing new successful service composition strategies are
derived. While service composition strategies aim to maximize the welfare of individual service composers, this alone does not ensure the maximization of the overall social welfare of all
composed service markets of SOPPS. Service composers form an oligopoly, which requires a special pricing mechanisms to maximize social welfare. Hence, the Vickrey Welfare Procurement Auction VETO
is developed, which prices composed services. It is proven that VETO gives incentives to price composed services in a way which ensures the maximization of social welfare. In order to remove the
need for a central auctioneer, the corresponding VETO protocol is developed, which allows to carry out the auction with only service consumer and service composers as participants. It is shown
that this protocol is secure against collusion between the participants, since it enables participants to detect and to proof if other participants attempt to cheat. It is shown that using VETO
produces higher welfare and higher fairness than the use of bilateral negotiations. Furthermore, VETO causes less effort than bilateral negotiations. While the current state of art in service
matching and service composition does not fully support generic services of any kind, SOPPS, service composition and VETO are already applicable to certain scenarios today. Such scenarios are all
scenarios with a well-known service space, for instance computing grids. |