Abstract: |
In this thesis, we present Omnix, a Peer-to-Peer (P2P) middleware framework. P2P middleware provides an abstraction between the application and the underlying network by providing higher-level functionality such as distributed P2P searches and direct communication among peers. P2P networks build an overlay network, a network on the network. The central idea of this dissertation is to apply the well-established ISO OSI layered model on P2P middleware systems. A layered P2P architecture helps to identify separate parts of a complex system, allows changes to the system without affecting other layers and makes maintenance easier due to modularization. The main advantages of having such a layered P2P middleware are: independence from the underlying network and the P2P topology. This dissertation proposes a P2P middleware architecture consisting of three layers: the Transport Layer, the Processing Layer and the P2P Network Layer. The Transport Layer (which can be compared to the Physical Layer of the OSI model) is responsible for providing an abstraction to the network primitives provided by operating systems or libraries. This makes Omnix independent from the underlying network protocols and the devices and allows Omnix to run on heterogeneous devices. The Processing Layer (an analogy to the Data Link layer) provides an error free connection to remote peers and allows additional services to be plugged in. The P2P Network Layer comprises the routing algorithm, thus describes the topology (or structure) of the P2P network. Omnix has a pluggable architecture that allows different components to be plugged in based on the requirements of an application, the capabilities of the device the application is running on, the number of peers involved, etc. Custom-tailored P2P middleware systems can be constructed, thus, increasing the flexibility of communication architectures that are built upon it. Applications that use Omnix are provided an API that is not affected whenever the underlying topology has to be changed or adapted. Since testing P2P networks is hard to accomplish due to the large amount of peers required to get significant results, Omnix provides a way of testing P2P applications using this middleware framework. By replacing the communication layer by a virtual network, it is possible to simulate a network of virtual peers on a single computer without the necessity of changing the application on top of it. Along with Omnix, several plugins are provided to demonstrate the versatility of the framework. They provide the functionality to run Omnix on normal PCs, on handheld computers (e.g., Compaq iPAQ) and on Java-enabled mobile phones. |