A P2P service discovery strategy based on content catalogues

Lican Huang (VIRGO project co-ordinator)

Hangzhou e-Brain Information technology Co. Ltd.

Service Discovery is an important issue in Web Servicess and Grid technolgogies. The current strategy for service discovery is based on centrilized register servers such as UDDI. This method has a shortage of crushdown due to single point failure. When there are a large amount of services and a large number of providers, distributed service discovery is required. There are many approaches for distributed service discovery based on P2P technologies. The un-structural P2P technology using flooding way has shortage of heavy traffic and un-guaranteed search. The structural P2P technology using DHT such as Chord loses locality property. This paper presents a framework for distributed service discovery based on VIRGO P2P technologies. It is one module of an open source project – VIRGO ( http://virgo.sourceforge.net). The services are classified as multi-layer hierarchical catalogue domains according to their contents. The providers of services establish a virtual tree according to the same domains of their services. If a provider provides many services which are classified into several different domains, this provider will join these different domains in the virtual tree. VIRGO P2P network hybrides structured and unstructured P2P technologies by merging n-tuple replicated virtual tree structured route nodes and randomly cached un-structured route nodes( LRU and MinD) to solve overload of computation and message existed in tree structure. The location of services is effective and guaranteed. The time complexity, space complexity and message-cost of lookup protocol of VIRGO is O(logN), where N is the total number of nodes in the network. The lookup protocol for VIRGO is based on the strategy that a node in route table, which has the minimum distance from the destination node, is chosen as next hop route. Theoretical hops from a node to destination node is calculated by the node’s location in virtual tree and the equal prefix length between the domain of this node and destination domain.

We implemented primary service discovery. The communication protocol for VIRGO is http. The VIRGO node uses Tomcat as Web Server and Axis as Web service container. Every node implements Lookup protocol and VIRGO structure maintenance, and web service matchmaker and Register. The GUI of VIRGO is in the form of web pages. The interfaces for node's join and leave, service discovery, etc are written by JSP, which send the messages to the VIRGO core program. The VIRGO core program implements all protocols for VIRGO. The route table is stored by mySQL database. The messages are XML-formed. When user inputs request message for a service location, the client will send the message to an entrance node; this entrance node will forward the message to the destination node after intermediate several route nodes. The destination node will respond the result message to the user.

Keywords: P2P, Service discovery, e-Science, Grid, Web Service