EZSearch
About
Download
Requirement
How to run
Contact
1. About
This is the first implementation of a hierarchical multidimensional
search system based on Zigzag -- a P2P overlay architecture known for
its scalability and robustness under network growth and dynamics. The
indexing architecture of EZSearch is built on top of the Zigzag
hierarchy, that allows both k-nearest-neighbor and range queries to be
answered with low search overhead and worst-case search time
logarithmic with the network size.
Detail about Zigzag techniques for building a P2P multimedia streaming system can be found here
- Duc A. Tran, K. A. Hua,
and T. T. Do. A Peer-to-Peer Architecture for Media Streaming. IEEE
Journal on Selected Areas in Communications, Volume 22,
Number 1, January 2004
- Duc A. Tran, K. A. Hua, and Tai T. Do. ZIGZAG: An Efficient
Peer-to-Peer Scheme for Media Streaming. In Proceedings of IEEE INFOCOM
2003, March 30-April 3, San Francisco, CA, USA.
Detail about EZSearch implementation can be found here:
- Duc A. Tran and T. Nguyen. Hierarchical Multidimensional Search
in P2P Networks. Journal of Computer Communications, Elsevier 31(2):
346-357, Feb 2008
- Duc A. Tran and K. Nguyen.
Multidimensional Information Retrieval in P2P Networks. 2008 NSF
Workshop on Next Generation Software - IEEE International Parallel and
Distributed Processing Symposium – IPDPS 2008, Miami, Florida,
USA, April 13-14, 2008
2. Download source codes.
3. Requirement
- Java 1.5
- MINA Framework
- Linux.
4. How to run
Syntax Usage:
java EZClient [isServer] [listening port] [server ip] [display interface or not]
For example, to run a server whose IP is 123.345.789 and listens to port 12345 with a GUI, use
java EZClient 1 12345 123.345.789:12345 visible
and to run a client that listens to port 6789, use
java EZClient 0 6789 123.345.789:12345 visible
A server's interface
- Dimension = the dimensionality of the index space
- Start Services: Start a search application, initialize index zones to hosts in the network
- Remove Services: Stop the on-going search application, clear all zone assignments
- Search Button: send a query to the system
- Refresh Button: Due to Java's event handler, sometimes GUI is not updated as new data
(cluster information, peer information, parent information) arrives.
This button forces the GUI to redraw

A client's interface
- Connect Button: Connect to the Zigzag network
- Search Button: send a query to the system
- Refresh Button: Due to Java's event handler, sometimes GUI is not updated as new data
(cluster information, peer information, parent information) arrives.
This button forces the GUI to redraw
The Zone information is formatted as follows
NumberOfBoxes_Box[1]_Box[2]_..._Box[n]
where in each box is seperated by a '_'
A n-dimension box is represented by n intervals seperated by a ';'. A
query is also represented as a box. An interval is represented by two
end points seperated by a ','.
For example
Zone: 2_0.5,1.0;0.0,1.0;_0.0,0.5;0.0,1.0;
means this zone consists of 2 boxes. The first box is [0.5,1.0]x[0.0,1.0] and the second box is [0.0,0.5]x[0.0,1.0]
5. Contact
- Dr. Duc Tran (duc@cs.umb.edu)
- Khanh Nguyen (knguyen@cs.umb.edu)