• 沒有找到結果。

Nowadays, with the computing power of PC and network bandwidth increasing, people are willing to dispense their computing power and share information with each others. In pure P2P network, each participant shares their resources in order to gain benefits from other peers. By the natural of sharing in P2P networks, the more users joining the network, the more capacity this P2P network obtained. The scalability is based on the performance of P2P protocols, not determined by the server capacity in traditional centralized architecture. The P2P networks are proved to be an alternative technique in distributed information processing [14]. In addition, the ownership of shared resources and the right to distribute are possessed by the user in the P2P network as opposed to typical central server system where the user grant the service provider the rights of using and distributing resources.

In order to construct an efficient and scalable P2P network, many structured P2P network have been proposed these days and have been verified as efficient and fault-tolerated in large distributed environment. Most of them, e.g. Chord [33], Pastry [31], Viceroy [16], etc., are able to route message between two peers in O(log N) hops where there are N peers within the network. With the feature of self-organize and failover, structured P2P networks have been widely used in file sharing [13][25], network data storage [6], and distributed indexing [32]. There are several research works on deploying distributed personal information portal [20]

and online auction systems [10] onto the P2P networks.

Publish/Subscribe paradigm is effective in disseminating information to peers who are interested in. In order to apply this mechanism on the P2P network,

P2P pub/sub algorithms are designed with the consideration of both time efficiency and transmission overhead. Efficient pub/sub algorithms are able to alleviate the communication burden when dealing with the burst of information on a large scale P2P network.

As investigated the research topic of structured P2P networks, however, each P2P network was implemented under different approaches, providing various application interfaces. A standardized development and deployment framework can reduce the overheads of implementing P2P protocols and applications. Therefore, developers can focus on the applications’ unique functionalities.

1.1. Motivation

In the application domain of content management system, e.g., personal blog system, large amount of information are created and requested over the entire user community. With the search capability, users can retrieve information which has particular contents according to given query. As the P2P community keeps advancing, however, the number of updating events will soon overwhelm the size of events that human can handle. By introducing pub/sub mechanism, applications can automatically disseminate information to the interested peers in P2P network.

Like the RSS supported on many website, the pub/sub paradigm provides the functionality for users focusing on only the interested events. Therefore, pub/sub mechanism is an essential feature while designing a platform for developing P2P applications.

There are three aspects of developing a P2P Pub/Sub-related program:

application developers, P2P protocol developers, and P2P pub/sub protocol developers. From the aspect of developing pub/sub applications, programmers

The difference of semantics can reside in peer initialization, network construction, and even communication mechanism; that is, implementing the same functionality on different P2P APIs could cause code rewriting. The same situation happens in changing pub/sub APIs. This means application would be strong coupled with P2P and pub/sub implementations. Application developers have no chance to compare the performance of their systems on different overlays.

 Issue 1a: Application developer need to learn different semantics from numerous P2P APIs.

 Issue 1b: The cost of rewriting code is huge for testing performance of particular application on different P2P network.

For p2p pub/sub algorithm developers, the lack of a common platform for evaluating performance makes it hard to compare between algorithms. First, preparing identical test case on two different p2p pub/sub systems is cumbersome.

Second, the delay of event dissemination needs to normalize due to the different implementation of internet communication.

 Issue 2: P2P pub/sub algorithm developers need a common platform to compare with other algorithms.

While developing a P2P algorithm, developers writing their own code communicating with other peer through physical network connection. Each P2P API introduces redundant code on network programming. Developers take additional time on debugging network-related code. Without network-related code reusing, the effort for extending deployment environment is huge.

 Issue 3a: P2P network developer write redundant code for network communication, make it hard to deploy P2P on different physical network environment.

 Issue 3b: A common process is needed for overlay network initialization.

Our goal is to solve these issues mentioned above. Thus, a standardized API and communication mechanism for P2P application development is need to be defined.

1.2. Contributions of this thesis

In this thesis, a generic development framework for P2P applications is proposed. With the design of multi-layers abstraction, P2P application developers can deploy their application to different kinds of P2P overlays and physical network environments. In additional, this framework can help developers realizing the P2P protocols and creating value added pub/sub services. We define a general pub/sub service SPIs which focused on deploying pub/sub mechanism over entire P2P network. The layered design of this framework encourages that developers create reusable components. Moreover, an execution configuration module is provided which can externalize parameters to customize for different environment constraints without recompiling programs.

1.3. Thesis Outline

Chapter two introduces the background knowledge and shows the previous researches in defining common API for P2P programming and pub/sub application. In Chapter three, a layered architecture and primary interfaces are described in detail. The interaction between modules and the usage of components are further described in chapter four. Chapter five demonstrates the usability of this framework and shows the pros and cons by comparing with existing solutions. In

相關文件