Casual Resource Sharing with Shared Virtual Folders
Total Page:16
File Type:pdf, Size:1020Kb
MASTER THESIS IN COMPUTER SCIENCE Casual Resource Sharing with Shared Virtual Folders Siri Birgitte Uldal June 15th, 2007 FACULTY OF SCIENCE Department of Computer Science University of Tromsø, N-9037 Tromsø Casual Resource Sharing with Shared Virtual Folders Siri Birgitte Uldal June 15th, 2007 ___________________ University of Tromsø 2007 Abstract Proliferation of wireless networks has been a major trigger behind increased mobility of computing devices. Along with increased mobility come requests for ad-hoc exchange of resources between computing devices as an extension of humans interacting. We termed it casual resource sharing where resources in this thesis have been narrowed down to files only. We have named our casual resource sharing model for shared virtual folders (SVF). SVFs can be looked upon as a common repository much in the same way as the tuplespace model. The SVF members perceive the repository similarly to a common file directory on a server, while in reality all participating devices stores their own contribution of files. All types of files could be added to the repository and shared. To become a SVF member one needs to be invited by another member or initiate a SVF oneself. All members are free to withdraw their SVF membership whenever they wish. They are also free to log on to the SVF and log out as they please. The SVF cease to exist when the last member has drawn his membership. The SVF implements a simple versioning detection system to alert members when a file has been modified by another member. Feasibility of the model is demonstrated in a prototype implementation based on Java and the JXTA middleware, a peer-to-peer (P2P) infrastructure middleware supporting the Internet protocol. The implementation functions with any underlying network supporting the IP protocol, both LAN or WAN. The interacting devices could be running on any operating system. The SVF itself is created with focus on simplicity and requires no more than software installation before use. The model and implementation is discussed and contrasted with other existing approaches to casual resource sharing. Keywords: Peer-to-peer, JXTA, ad-hoc i ii Preface The master thesis was carried out during 10 ½ month in 2006 and 2007 and is a collaboration project between the Department of computer science at the University of Tromsø and Norut IT. The master thesis started out as a supplement to Njål Borch’s PhD thesis at Norut IT which focused on socialized ad-hoc networks based on peer-to-peer technologies. I would like to thank my advisors Randi Karlsen at the Department of computer science, University of Tromsø together with Njål Borch for their help and efforts through the process of finishing my thesis. I am also grateful to the Norwegian Polar Institute, especially head of Environmental Data Section Stein Tronstad, for allowing me to finish my master thesis. Also thank to the people at Norut IT for allowing me to stay there during work with the thesis. Finally I would like to thank friends and family for their support and bearing with my absence. iii iv Table of contents ABSTRACT...................................................................................................................................................I PREFACE...................................................................................................................................................III TABLE OF CONTENTS.............................................................................................................................V 1. INTRODUCTION................................................................................................................................1 1.1 PROBLEM DESCRIPTION .............................................................................................................. 1 1.2 GOAL AND OBJECTIVES ............................................................................................................... 2 1.3 LIMITATIONS AND ASSUMPTIONS ................................................................................................. 3 1.4 METHOD ...................................................................................................................................... 4 1.5 RESEARCH CONTRIBUTION.......................................................................................................... 5 1.6 OUTLINE ...................................................................................................................................... 5 2 BACKGROUND ................................................................................................................................. 7 2.1 PEER-TO-PEER NETWORKS......................................................................................................... 7 2.1.1 Definition of a peer-to-peer network............................................................................. 8 2.1.2 An overview of P2P networks......................................................................................... 9 2.1.3 Decentralized versus centralized P2P networks ..................................................... 13 2.2 RESOURCE SHARING CONCEPTS .............................................................................................. 14 2.2.1 Remote procedure call (RPC)....................................................................................... 15 2.2.2 Message oriented middleware (MOM) ........................................................................ 16 2.2.3 The publish-subscribe model....................................................................................... 17 2.2.4 Tuple spaces..................................................................................................................... 19 2.3 PROPERTIES OF RESOURCE SHARING MODELS ........................................................................ 22 2.3.1 Interruption handling during data transfer ............................................................... 23 2.3.2 Data push versus pull..................................................................................................... 26 2.3.3 Configuration.................................................................................................................... 26 2.3.4 Incentive mechanisms and accountability................................................................ 27 2.3.5 Persistence and search guarantees ........................................................................... 29 2.4 VERSIONING DETECTION AND CONTROL ................................................................................... 31 2.4.1 Versioning models .......................................................................................................... 32 2.4.2 Versioning detection....................................................................................................... 33 v 2.4.3 Software configuration management (SCM) ............................................................ 34 2.5 MIDDLEWARE FOR P2P NETWORKS ......................................................................................... 37 2.5.1 Why middleware............................................................................................................... 37 2.5.2 Types of middleware....................................................................................................... 38 2.5.3 Characteristics of decentralized P2P middleware .................................................. 40 2.5.4 Bonjour............................................................................................................................... 42 2.5.5 Universal Plug and Play (UPnP)................................................................................... 44 2.5.6 JXTA.................................................................................................................................... 48 2.5.7 The Socialized.Net........................................................................................................... 51 2.6 RELATED WORKS....................................................................................................................... 53 2.6.1 Bluetooth/OBEX/FTP ...................................................................................................... 54 2.6.2 Microsoft Shared Folders/SAMBA .............................................................................. 54 2.6.3 Microsoft Office Groove................................................................................................. 55 2.6.4 iFolder................................................................................................................................. 56 2.6.5 Google Docs & Spreadsheets ...................................................................................... 57 2.6.6 myJXTA .............................................................................................................................. 58 2.6.7 GRAM.................................................................................................................................. 60 2.6.8 Gnutella .............................................................................................................................. 61 3 CASUAL RESOURCE SHARING WITH SHARED VIRTUAL FOLDERS............................. 65 3.1 SCENARIOS................................................................................................................................65 3.2 CASUAL RESOURCE SHARING ..................................................................................................