HyperCuP/Old/Documents/StateOfArt
From Corrib Clan Wiki
sitcaore ronotrva liricdelt
Contents |
HyperCuP - State of Art, implementation analysys
author: Pawel Bugalski, Slawomir Grzonkowski
getorget
Introduction
The aim of this report is to examine current implementation status of HyperCuP and possibilities of extending it with web services. Moreover, information about D-FOAF and JeromeDL use case analysis has been provided.
What is it?
HyperCuP [2] stands for Hyper Cube P2P because it utilizes the concept of a hypercube in a peer to peer networking. Most P2P are based on a full graph structure and inefficient broadcast mechanisms. That is why those networks do not scale well. To solve this problem we have organized peers into a hypercube(a Cayley graph) topology. This topology minimizes broadcast traffic and guarantees minimal distance between the peers. It also scales well. While the number of peers in network doubles a number of dimensions of the hypercube is extended only by 1.
Implementation status
Where we are?
Our current implementation of HyperCuP [1] (not the original one) is written in java and offers features such like: creating new networks, connecting additional peers. When a new peer connects to the network, it has to know only a single address of one of networked hosts. This initial connection does not have any influence on peers location in final topology of network. Moreover, sending messages into any dimension is possible. By 'dimension' in HyperCuP we mean a number of neighbour peers. Every peer is connected to a number of peers equal to the dimension of the hypercube. When using Hyper Cup, programmer can easily box any java object into the message by implementing Content interface. If there is insufficient number of nodes in network(less than it is required by the hypercube size) the so-called cloning operation is performed. A new peer is placed in a just created dimension. It connects through this dimension with one of existing peers and in other dimensions with clones of the rest of peers. Each new peer replaces one of the clones, until there is no clones left and yet another new dimension is opened.
What is the future?
Though the existing implementation is quite complete in theory, it suffers the lack of some features needed in day-to-day work of P2P network in real environment. First of all the network must be able to handle disjoining of peers, both explicit and implicit (ex. as a result of crush or broken connection ) and repair its state afterwords. The network consistency management routine is based on KEEP_ALIVE messages. Current implementation focuses on creating network topology but does not take advantage of it because there is no implementation of generic messages yet. HyperCuP should be extended to provide such messages in a similar way to the discovery messages handling.
To sum up
Features already implemented:
- creating new networks
- connecting additional peers
- communication with any address
- sending messages to neighbors and message routing
- sending objects inside messages
- cloning nodes
Things to be done:
- explicit disjoining of peers
- implicit disjoining of peers
- repairing network state
- generic messages
Possibilities of extending with Web Services
We would like to use web services to inter communication between peers in our HyperCuP implementation rather then other solutions. Generally, web services are slightly slower, but they are more platform independent, well documented and standardized. Another significant positive of this technology is ability to use different transport protocols such like HTTP, SMTP or HTTPS. In order to perform this task, we are going to write a soap wrapper. We should be able to achieve this goal without changing anything in already written lower level code.
Is it secure?
Web services uses SOAP for transactions. Data are passed between client and server as a plain XML, so theoretically anyone who intercepts the message, can read and change it. Web services gives us security mainly through transport level. Actually, developers can use one of three methods:
- BASIC - uses browser authentication
- FORM - uses a user-written HTML form
- CLIENT-CERT - uses certificate
It is possible to secure web services in the SOAP and messaging level. Fortunately, this level was extensively researched by groups like OASIS [8]. At the end of march 2004, they have finished work and have published the final specification. Now, developers can use digital signatures, certificates, trust domains and multiple encryption methods at the XML document level. Using web services, we are aware that a comprehensive security specification have been developed and standardized.
Implementation idea
Two-tier architecture
In order to have better understanding of our future application, our idea will be presented in a two-tier architecture. The first tier is responsible for providing reliable communication between two HyperCuP instances. In fact it is a transport layer. This task will be performed by a special wrapper. We are going to implement the wrapper as a web service on a server tomcat equipped with an axis application [7]. The second tier is our current implementation of the HyperCuP. All features mentioned in section 3 must be implemented .
The wrapper concept
While writing Web-Services wrapper, two tasks should be accomplished. Firstly, the web-service itself must be created. It ought to wrap a Peer interface implementation. Whenever a method offered by web-service will be invoked a proper Hyper Cup Message class should be handed over to Peer implementation through a Peer's socket method. Secondly, the "send" method of Peer implementation should be overridden in order to send HyperCuP messages through the web-services tier. This code should invoke web-service methods offered by other peers.
Use case analysis
D-FOAF use case analysis
In order to effectively use hypercube topology in the foafrealm project [4], following functionality should be implemented:
- Join an existing network
- Find friend in the hypercup
- Find user home-site
- Create collective profile
Moreover, some additional functions may by considered, especially such like:
- Get hypercup statistics
- quantity of connected hosts
- quantity of available resources
- a list of recent queries
- Calculate distance between two users
- Authentication and authorization when connecting to the realm
L2L/W2W use case analysis
Here are some imaginary use cases for JeromeDL [5] which should use HyperCuP functionalities:
- Create new network of libraries
- Join an existing network
- Get hypercup statistics
- quantity of connected hosts
- quantity of available books
- a list of most often searched books
- a list of recent queries
- Send a query to every library in network and collect a combined response
- Authentication and authorization of a library being connected to the network
Final thoughts
First of all, missing features in current HyperCuP implementation must be added, which seems to be numerous and complex, but fortunately quite easy to separate. Secondly, all specific parts for the projects foafrealm and jeromedl will be done. In spite of the fact that we have to implement major parts of the system, we believe that because of modular construction of current code it is rather simple task to do it incrementally.
References
- [1] Source code http://cvs.sourceforge.net/viewcvs.py/foafrealm/hypercup/
- [2] HyperCuP - Mario Schlosser http://www.srdc.metu.edu.tr/webpage/seminars/p2p/HyperCuP.ppt
- [3] HyperCuP - Hypercubes, Ontologies and Efficient Search on P2P Networks - Mario Schlosser, Michael Sintek, Stefan Decker, Wolfgang Nejdl http://projekte.learninglab.uni-hannover.de/pub/bscw.cgi/d7825/HyperCuP%20-%20Hypercubes,%20Ontologies%20and%20Efficient%20Search%20on%20P2P%20Networks
- [4] FOAFRealm Project http://foafrealm.org/
- [5] JeromeDL Project http://jeromedl.org/
- [6] Gopalakrishnan U, Rajesh Kumar Ravi - Web services security, Part I http://www-106.ibm.com/developerworks/webservices/library/ws-sec1.html
- [7] Apache Axis,s an implementation of the SOAP http://ws.apache.org/axis/
- [8] OASIS Standards http://www.oasis-open.org/specs



