• 沒有找到結果。

Introduction

在文檔中 多功能個人/團體通訊系統 (頁 10-16)

1.1 Overview

In a traditional communication system, each endpoint has a specific identifier, such as telephone number, Skype [1] account, or SIP [2] URI. The specific identifier is unique so that a communication session can be built accurately without ambiguity.

However, the specific ID is usually meaningless or contains insufficient information that it is difficult to know that who is the owner of the specific ID. On the other hand, a caller is unable to communicate with a callee if he does not know the specific ID even though he knows more details about the callee. There are more attributes that can specify an endpoint, such as the owner’s personal information or the location of this endpoint. These attributes are unspecific, and they are unable to substitute the specific ID. However, applying the unspecific attributes in a communication system to specify an endpoint or a group of endpoints could make the communication more flexible.

The following examples show the usage of unspecific attributes.

John wants to make contact with his elementary school classmate, Kevin. John knows the name and nickname of his classmate, the name of the elementary school, and the years they studied. In a communication system with unspecific attributes, John can send messages or make voice communication with one or more callees matching Kevin’s specification.

Fig. 1 An example of one-to-one voice communication

Linda and her orchestra members set the name of the orchestra as an attribute of their communication device, so that Linda can send message to all the members without knowing all the members’ phone numbers.

Fig. 2 An example of one-to-many communication

Such a communication system utilizing unspecific attributes to help specifying an endpoint can support both one-to-one, and one-to-many communications. The members of a group have some common attributes that match the caller’s (or the

message sender’s) contacting target settings. In this thesis, the caller and the message sender are denoted as content publishers (CP); the callee and the message receiver are denoted as content receivers (CR) for abbreviation. The size of a group depends on how general or specific the attributes are. If the CP uses only few general attributes to describe the CR, the CR group will be large; if the CP uses many special attributes to describe the CR, the CR group could be very small, even with just one or zero member.

To compose such a communication system, each user has to register his/her attributes in a database. One simple solution of such a system is a client/server architecture: users register their attributes to a central database server, and the CP queries this server to find the matched CRs. However, the heavy load of storage and bandwidth of the server could be a bottleneck of the system, and client/server architecture has single point failure problem. We choose peer-to-peer (P2P) network architecture to compose our communication system so that this system could be more robust and scalable.

In this thesis, we propose and implement a communication system that supports both specific ID and unspecific attributes communication. This system supports voice communication and message communication, and the communication target could be a person or a group. This system will be referred to a multi-function personal/group communication system (MFPGC system).

1.2 Related Work

P2P (peer to peer) is an architecture where each peer serves as a server and a client. P2P network distributes storage and network loads to every peers, so that a

central server is eliminated. There are two categories of P2P network architectures:

unstructured P2P and structured P2P. Gnutella [8] is a famous file sharing application that applies unstructured P2P. Each peer in Gnutella searches by flooding message and limits the flooding scope by time-to-live (TTL). However, flooding is still bandwidth costly and it doesn’t ensure that all the correct targets could be found.

Structured P2P makes use of distributed hashing table (DHT) to publish or query a data. DHT provides a function to map a key to a hash value. Current proposed DHT systems include Tapestry [9], Pastry [10], Chord [4], CAN [6] and Koorde [11]. We give more detail for Chord. Chord is a DHT based structured P2P. Each peer in Chord records at most log(N) other peers information in its finger table. Through looking up the finger table, Chord can provide O(log(N)) routing efficiency. The structure of Chord is a ring type structure. The dynamic joining/leaving behavior of peers may disrupt the complete ring. Chord uses notification and stabilization protocol to keep the ring complete so that it can answer queries even though the system is continuously changing. SHA-1 is adopted as hashing function of a string type keys to an m-bit hash value. SHA-1 is a uniform hashing function that can help balancing the load of storage and bandwidth. Chord can support single string type attribute lookup applications, but MFPGC system requires multiple string type and numerical type attributes lookup.

There have been many researches discussing P2P multiple attributes look-up [3]

[5] [7]. Most of them use inverted indexing for information distribution. An indexing maps an object to a list of words, as inverted indexing maps a word to a list of objects.

Each attribute (a word) of an object is hashed and then published to the P2P system together with the source node information. To find a target source, the query is propagated from peer to peer, and intersects the results. Several algorithms, such as

cache or bloom filter [14], were proposed to improve the query efficiency.

Query of numerical type attributes is also known as range query, and there have been several proposed solutions [3] [12]. A range query is a query that asks the peers with a numerical attribute falling in a range such as “18 < age < 20”. SHA-1 hash cannot support range query because it doesn’t keep numbers with near value in nearby peers. A locality preserving hashing function is required to take use of the numerical feature to improve search efficiency. MAAN [3] propose a locality preserving hash function that normalizes the numerical value and than multiply it with the maximum hash value so it can map to an m-bit system. However, this system still takes O(N) worst case range query.

However, there is no single research that could be directly applied to compose MFPGC system because the attributes set by users have privacy issue, and the attributes types are variant, “string type”, “numerical type”, and “hybrid type”. To the best of our knowledge a total solution for such a system with above features has not been presented.

1.3 Objective

This thesis proposes the concept of a new communication system and focus on implementing an efficient and reliable system that well supports voice and message communication and unspecific attributes lookup. There are four points that we concern when designing this system. 1. User information is private data, so the whole text can’t be directly published to or stored in the network. 2. Support multiple attributes query. 3. Support range query. 4. Optimize the storage and bandwidth efficiency of our system.

We apply Chord as base architecture of MFPGC system. However, Chord can not directly support multi-attributes query nor range query which MFPGC system require. We adopt inverted indexing to implement multi-attributes query functionality, and adopt range guard [13] for range query. We also propose necessary attributes hashing and local data storage strategy to improve system efficiency and to protect user privacy.

1.4 Summary

The remaining of thesis is organized as follows. Chapter 2 describes the essential knowledge background of P2P networking mechanism and desired functionalities of our system. Chapter 3 shows the details of our system design. Chapter 4 presents the implementation issues. Conclusion is given in Chapter 5.

在文檔中 多功能個人/團體通訊系統 (頁 10-16)

相關文件