We propose social inter- networks, where essential functions of social networks are implemented on top of peer-to-peer networks. Participants and communities ...
Proposal of Social Internetworking Yukio Okada
Kenji Masui
Youki Kadobayashi
The 3rd International Human.Society@Internet Conference (HSI 2005), July 2005 Abstract Social networks that are built on top of the web, e.g., orkut [9], have been proliferating among online communities. We propose social internetworks, where essential functions of social networks are implemented on top of peer-to-peer networks. Participants and communities are connected through attribute queries and reputation queries; reputation queries are applied to attributes with Secure EigenTrust algorithm [1].
1
Introduction
Since the beginning of 2004, several social networking services (SNSs) have been launched on the web. Participants in SNS can invite their acquaintances as a new user to foster the social network. They can also register their personal information such as real names, living places, and hobbies to show to others. Besides, friends list and communities are essential features of SNS. The list of one’s acquaintances is managed and published by friends list. Community is a group of participants with common interest. Today, every time we participate in a new social network, we have to register similar information repeatedly, and this task often makes us tired. Here, we propose social internetworks that solve the above problem and interconnect social networks. Social internetworking is implemented in P2P network with distributed hash table (DHT). It consolidates and optimizes information in each social network and provides two search methods based on these information. One is attributesearch, the search method by the attributes attached to users and communities. The other is reputation-search, which considers attributes’ reputations from users. The computation of total reputation is based on Secure EigenTrust algorithm [1] proposed by Kamver. In this paper, we first introduce social network services, P2P applications, and Secure EigenTrust algorithm. Then we propose social internetworking, which includes the integration of information, attribute-search and reputationsearch. Finally we evaluate its effectiveness.
2
Social Network Services
Social network services (SNSs) provide the management of person-to-person links. In order to participate in a SNS, one has to be invited by anyone else who 1
has already been its member. Once you participate in a SNS, you can register your profile to show to others. Thanks to the real-world communication and the responsibility caused by invitations, the atmosphere of SNSs is relatively peaceful. These elements also contribute to increase the degree of reliability of information in SNSs. Some major SNSs have unique features. For example, orkut [9] allows its users to rate their acquaintances. In mixi [10], a user can track other users in the access log of one’s personal page. In GREE [11] and many other services, a user can write introductory essays of one’s friends. As the foundation of these features, two common features are implemented in SNSs: friends list and communities.
2.1
Friends List
One of the common features is “friends list,” which lists the users who are registered as one’s friends. Since it is visible to everyone, users can use it to trace friend links. In many cases, one’s acquaintances are also their acquaintances. So a new participant can find and register one’s acquaintances via their friends lists. In order to judge whether the found one is really my acquaintance, one’s friends list can be used because it should show my acquaintances. Moreover, users can search their acquaintances by name and add them into the friends lists. In short, friends list plays roles in the clear indication of relations among participants and the promotion of expansion of the social network.
2.2
Communities
The other common feature is “communities.” Participants can express themselves by joining in communities, such as “dog-lovers” community and “foo-bar university” community, because the communities to which one belongs can define one’s identity. Since everyone can see who belongs to one community, one can find other participants who have similar preferences. Furthermore, communities provide the places for discussions to their participants. They can exchange their opinions and knowledge there. Communities define one’s identity, promote the communication and help to share knowledge among their participants.
2.3
Problems of Current SNSs
SNSs have the above features, but these are not perfect. We will explain the problems of these features here. Convenience Every SNS has its information on users and communities in its own style. So we have to register similar information when we participate in a new SNS. This repetitive work may demotivate participants and lead to the uneven distribution of information. For instance, one will actively register and update one’s information in one’s favorite SNS, but neglect other SNSs.
2
Broken Friend Links In case that one participates in SNS A but does not in SNS B, friend links existing in SNS A may not appear in SNS B. This problem can be solved by inviting this person to SNS B. As described above, however, they may not willingly invite their acquaintances because these tasks will be a burden on an introducer. In such a manner, SNSs have the possibilities of losing its own original function. Explosion of Communities Communities are categorized by some properties, and participants can use them to search communities. Typically users search communities by following methods: • Specify certain category. • Specify some words contained in communities’ names. • Choose from the list of communities to which someone (one’s friend in many cases) belongs. There are over 400,000 communities in active SNS, however, so it is definitely difficult to find all preferable communities by above methods. In order to solve this problem, SNS providers must find out the effective method for sharing and searching information. Though it could be implemented in the centralized system, we think P2P distributed system is more preferable from the viewpoint of the reduction of initial and maintenance cost.
3
P2P Applications
Originally, the whole Internet was formed in P2P network. However, the lack of resources of hosts and networks has commonized the centralized client-server model in the growth history of the Internet. In recent years, even end nodes have enough resources (e.g., fast CPU, massive storage, and always-on broadband network), so we can easily form global P2P network. As a result, P2P applications such as file sharing and P2P multicast have become common. In such context, researchers have been studying on distributed hash table (DHT), which is a data distribution method. Meanwhile, Secure EigenTrust algorithm, which is a reputation algorithm powered by DHT, is also proposed.
3.1
Data Storage with DHT
DHT is the method of resource distribution in P2P networks. In this method, data is stored in the host allocated by the key calculated from the hash function. Partition of storage area achieves data distribution. DHT have been studied on and several implementations exist: Pastry [2], Chord [3], CAN [4], Kademlia [5], Tapestry [6] and Viceroy [7]. They have regarded propagation latency, search latency, update latency and delete latency as a problem on DHT. However, some improved models including
3
ZFM (zoned federation model) [8] are introduced. Consequently, these contributions close the performance gap of centralized client-server model and distributed P2P model. Now P2P applications have more opportunities to spread than ever before.
3.2
Secure EigenTrust Algorithm
Secure EigenTrust algorithm [1] manages reputation in P2P networks by using DHT. This algorithm is intended for use in P2P file sharing networks. It computes reputation of each shared file from files’ ratings by peers. Secure EigenTrust algorithm is designed with these considerations: • The system should be self-policing. • The system should maintain anonymity. • The system should not assign any profit to newcomers. • The system should have minimal overhead in terms of computation, infrastructure, storage, and message complexity. • The system should be robust to malicious collectives of peers who know one another and attempt to collectively subvert the system. Additionally, Secure EigenTrust algorithm doesn’t need the centralized information about how one peer evaluates one object. With the objective of anonymity and robustness, this property is important. Instead, ScoreManagers, who are selected by the hash function of DHT, collect and store evaluated values. Oneway hash function ensures anonymity, and the distribution of ScoreManagers improves the robustness of a system. Using these two mechanisms, we can solve the problems of sharing the social network information in P2P networks.
4
Social Internetworks
As a solution to the problems described in section 2.3, we propose social internetworking. The basic concept of social internetworking is to share the information of users and communities by using DHT as shown in figure 1. In addition, some shared attributes are attached to enhance search functions. Figure 2 shows the comparison between existing IP network and our overlay network.
4.1
Advantages of Using DHT
In DHT, each peer backs up its allocated data to the neighbor peers to prevent data loss by an accidental disconnection. This will keep data as long as peers needing it exist. So, by storing the information of friends list and communities with DHT, users need not do the repetitive work even if a certain SNS is closed. On the other hand, one can implement unique features of each SNS such as access logs.
4
other data for SNS A
other data for SNS B
other data for SNS C
Social Network Service A
Social Network Service B
Social Network Service C
DHT space Communities
Users Attributes
Figure 1: Social internetworks. SNSs share the information of users, communities and attributes. They can also have their own data.
4.2
Scalability of Social Internetworking
Social internetworks will produce new opportunities to existing SNSs. In social internetworks, we can choose authoritative users by consolidating reputations. These authoritative users who are allocated some roles will activate communities. For example, their opinions will be of some help to make a proper decision in a system. We can also use XOOPS [12] to interact with social internetworks. XOOPS is a tool for developing small to large community websites. It provides the features of user management and forums. A Forum is equal to a community in SNSs. We can add more features to XOOPS websites by adding modules. So we can make XOOPS websites join in social internetworks by installing the voting module which is compatible with social internetworking. Besides, social internetworks can be adopted in MMORPGs (massive multiplayer online role playing games) such as Final Fantasy 11 [13]. MMORPG is the network game in which strangers all around the world play collaboratively. As a result of adopting social internetworks, MMORPG players will be able to find their companions in the game from their friends lists, communities and reputations — for example, whether he is a skillful sniper or not.
5
Name-independent Search Method
In social internetworks, users can use name-independent search methods like attribute-search and reputation-search. Attribute-search uses attributes at-
5
DHT space Overlay connection
Users database
Node
Communities database Attributes database
Overlay network IP network
Node
Database
IP connection
IP subnet
Figure 2: Comparison between IP network and overlay network. Nodes in IP network have their own databases, but they look like large consolidated databases in overlay network.
tached to users and communities, and reputation-search uses reputations calculated from each reputation attached to an attribute. The combination of these two methods enables a user to find other users and communities associated with his preferences.
5.1
Attribute-search
Attributes define the characteristics of users and communities. “Humorous,” “cheerful,” “serious” and “energetic” are the examples of user attributes. These attributes can also be applied to communities. User attributes and community attributes are managed separately as shown in figure 3. Attribute-search uses these attributes as search keys. Figure 4 shows the search using an attribute as a key. In case that you want to search “cool” people (user attribute is Pa ) and “cool” communities (community attribute is Ca ), if you specify “cool” people (Pa ) as a search key, you will get the list of users with the attribute “cool.” In the same way, if you specify Ca as a search key, you will get the list of communities with the attribute “cool.” These attributes may look like categories, but attributes differ in that they can be attached to multiple categories. For example, “Acid Jazz” and “Contemporary Jazz” are 6
Communities Community Attributes
Users
User X
Comm. A
Ca-1
User Attributes
Pa-1 Comm. B
User Y
Ca-2
Pa-2 Comm. C
User Z
Examples:
X
A
User X belongs to Community A.
X
Y
User Y is an acquaintance of User X (vice versa).
X
a
Attribute a is attached to User (or Community) X.
Figure 3: Attributes attached to users and communities.
the subcategories in the “JAZZ” category and never exist in other categories. On the other hand, “cool” can be applied to multiple categories, like “cool” acid jazz and “cool” contemporary jazz. So attribute-search can be a unique search method of social internetworks.
5.2
Reputation-search
In orkut, a user can make an evaluation of the degree of closeness to his friends like “haven’t met,” “acquaintance,” “friend,” “good friend” and “best friend.” In social internetworks, the scope of reputation includes attributes. We use Secure EigenTrust algorithm to compute the reputations of attributes. Total reputation of an attribute is computed by its evaluations from each user. Thus we can decide a ranking of users or communities within an attribute, as shown in figure 5. The targets of reputation are the attributes of users and communities, and attributes themselves. Below is the list of the kinds of reputation. Now we define that RCa is the communities authorized by the members of Ca -communities. In the same way, RPa is the users authorized by Pa users. On the other hand, reputation to attributes helps to find proper attributes and prevent a flooding of attributes.
7
User
Query=Ca-3
Answer=Comm. C
Ca-1
Ca-2
Comm. A
Ca-3
Comm. B
Ca-4
Comm. C
Example:
X
a
Attribute a is attached to Community X.
Figure 4: Attribute-search.
5.3
Query for Name-independent Search
Name-independent search enables a user to search new objects (users and communities) which have a high reputation and similar attributes to his ones. This search method is implemented in the combination of attribute-search and reputation-search. We show some examples of the search queries to find “energetic” sport combatives by name-independent search. Q1 Find the communities with the attribute “energetic”. (Query=Ca ) Q2 Find the communities with the authoritative attribute “energetic”. (Query=RCa ) Q3 Find the RCa -communities to which the Pa -users belong. (Query=RCa and Pa ) Q4 Find the RCa -communities to which the RPa users belong. (Query=RCa and RPa ) In general, the authoritative attributes increase the probability of query’s providing a proper result. The combination of two search methods also refines a search result. So its order in this example is: Q4 > Q3 > Q2 > Q1.
8
User
Answer=Comm. A
Query=RCa and RPa
Ca
Reputation
Pa
high
User A RPa
Comm. A RCa
User Y
Comm. B
Comm. C
User C
Communities with attribute Ca
Users with attribute Pa low
Figure 5: Combination of attribute-search and reputation-search to find authorized communities.
We summarize the sequential processes of search in social internetworks in the pseudo-code of Figure 6. By using Secure EigenTrust algorithm, name-independent search is achieved with five features of this algorithm.
6
Conclusion
In this paper, we have proposed social internetworking, which expands the capability of social networks. First, we summarize the value of social internetworking. Social internetworks enable the integrated management of friends list information and communities information over multiple SNSs. Additionally, name-independent search provides a search by friends list, attributes of communities, and their reputation. This method can make troublesome searching compact. Thus, a user can naturally get to know communities which meet his preferences. Our system can be applied to existing SNSs and personal social networks like XOOPS. However, some problems should be solved before the public use of social internetworking: • Authentication method for users. • Authentication method for data exchange. • User-side control of the usage of his information. 9
// Looking up communities with attribute-search and reputation-search. // Reputation routine in peer. 1. Specify a community attribute Ca . 2. Evaluate the community from the viewpoint of Ca . // Automated computation. 1. Computation in SecureEigenTrust.AutomataComp(Ca ). // Search routine. 1. Specify a community attribute Ca . 2. Find authorized communities by the function C = SecureEigenTrust.Lookup(Ca ) 3. Find authorized peers P in C by the function P = SecureEigenTrust.Lookup(C). 4. Find peers P joining to the community C = Community.LookupMembers(P ).
Figure 6: Pseudo-code for search processes in social internetworks.
• Incentives for users’ information registration. • A flooding of similar attributes. • Guess of reputation by repetitive searches. Along with the implementation of our proposed social internetworking, we will continue to tackle these problems.
7
Acknowledgments
We thank our labmates Takuji IIMURA and Hiroaki HAZEYAMA for helpful discussions about various topics on social internetworks.
References [1] Sepandar D. Kamvar, Mario T. Schlosser, and Hector Garcia-Molina, “The EigenTrust Algorithm for Reputation Management in P2P Networks”, In 12th International World Wide Web Conference (WWW2003), May 2003. [2] Antony Rowstron and Peter Druschel, “Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems”, Proc of the 18th IFIP/ACM Intl Conf. on Distributed Systems Platforms, 2001. [3] Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek and Hari Balakrishnan, “Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications”, Proceedings of the 2001 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication, 2001. [4] Sylvia Ratnasamy, Paul Francis, Mark Handley and Richard Karp, “A Scalable Content-Addressable Network”, Proceedings of ACM SIGCOMM, 2001.
10
[5] Petar Maymounkov and David Mazi` eres, “Kademlia: A Peer-to-peer Information System Based on the XOR Metric”, Proceedings of the 1st International Workshop on Peer-to-Peer Systems, 2002. [6] Kirsten Hildrum, John D. Kubiatowicz, Satish Rao and Ben Y. Zhao, “Distributed Object Location in a Dynamic Network”, Proceedings of 14th ACM Symp. on Parallel Algorithms and Architectures (SPAA), 2002. [7] Dahlia Malkhi, Moni Naor and David Ratajczak, “Viceroy: A scalable and dynamic emulation of the butterfly”, Proceedings of ACM Principles of Distributed Computing (PODC), 2002. [8] Takuji Iimura, Hiroaki Hazeyama and Youki Kadobayashi, “Zoned Federation of Game Servers: a Peer-to-Peer Approach to Scalable Multi-player Online games”, Proc. of ACM SIGCOMM Workshop Network and System Support for Games (NetGames-04), 2004. [9] orkut, Website: http://www.orkut.com/ [10] mixi, Website: http://mixi.jp/ [11] GREE, Website: http://www.gree.jp/ [12] XOOPS, Website: http://www.xoops.org/ [13] FINAL FANTASY, Website: http://www.square-enix.co.jp/finalfantasy/
11