Design And Implementation Of A Peer To Peer Network For File Sharing

The Design And Implementation Of A Peer To Peer Network For File Sharing (PDF/DOC)

Abstract

Peer-to-Peer programming (P2P) has in recent years become a widely explored research area. With the evolution of wireless technology such as mobile phones, the idea to bring these two technologies together gives a new dimension to P2P communication, collaboration and resource sharing. This project explores the domain of Mobile Peer-to-Peer networking and proposes a Peer-to-Peer System with Wireless Devices that can share files among themselves. The system is based on an open, protocol-based P2P platform called JXTA. It allows any connected device on the network ranging from sensors and cell phones to personal computers and servers to communicate and collaborate in a Peer-to-Peer manner. It is platform and network independent and designed to be implemented on any networking device.

JXTA for J2ME (JXME) is a lightweight version of JXTA that gives P2P functionality to constrained wireless devices. The technology, which is open source, is under development by the JXTA community, and this thesis focuses on the development of JXME for the Connected Limited Device Configuration (CLDC). The system proposed uses the JXME API, but suggests a more specific approach to implement different Peer operations such as Peer discovery, resource advertising and file transfer. Because of the limitations of wireless devices, one or more powerful Peers need to participate in the network as Proxy Services. This gives both the advantages of a fixed P2P network and the mobility of a wireless device. The prototype developed demonstrates the P2P system with simple collaboration and file sharing. The application has been successfully tested on phone emulators, and network tests show that the system works in a controlled environment. Large file transfer is stable, but highly limited by memory constraints of the device.

Chapter One

Introduction

1.1 Background of the Study

File sharing is the practice of distributing or providing access to digitally stored information, such as computer programs, multimedia (audio, images and video), documents, or electronic books. It may be implemented through a variety of ways. Peer-to-peer file sharing systems have become more popular for sharing, exchanging, and transferring files among many users over the internet. In the peer-to-peer network, a central point is not necessary. In addition, a peer-to-peer sharing system is getting more attention in computing. Many peer-to-peer file sharing systems are available between computers, such as Napster, Gnutella, and Freenet over the internet. Most of the internet traffic is due to file sharing systems. Napster uses a server to communicate between the users, and each user should contact the server in order to get the data. Gnutella, however, depends on the client/server approach where the peer sends a query to all peers in the network. The main issue in peer-to-peer file sharing is deciding which protocol to use for finding and indexing information that generates the least amount of internet traffic.
Peer-to-peer system forms have been used for many years for file sharing, recently implemented for services such as Skype. These services reduce load on their servers by passing data directly from user to user. Java is a general-purpose, concurrent, class-based, object-oriented computer programming language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers “write once, run anywhere” (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another.

Java applications are typically compiled to byte code (class file) that can run on any Java virtual machine (JVM) regardless of computer architecture. Java is, as of 2021, one of the most popular programming languages in use, particularly for client-server web applications, with a reported 3 billion users. Java was originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems’ Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them. The aim of this project is to design and implement a file sharing application for networked devices. This project will allow multiple users to share files to multiple devices. This project would provide a stable platform.

1.2 Statement of the Problem

P2P programming paradigm is increasingly becoming a dominant mode of resource sharing and cooperative problem solving. Traditionally, a peer is a computing device with substantial amount of computing power and resources. However, it will be an interesting idea if small wireless devices (such as mobile phones and wireless sensors) are also made peers. In this context, programming wireless devices has many challenges.

Currently some implementation of peer to peer networks does not consider device limitations such as total power remaining in the battery, losing communication with other peers at anytime, small displays, and Peer-to-Peer Programming on Wireless Devices limited CPU power and memory). These specifications affect the solutions to a problem and the program logic.

Also in existing peer to peer file sharing, in dynamic emergency situations, like power failure or disruption in communications, the peers loses file been shared and transfer has to start from the beginning.

We propose to create a mobile P2P scenario and build a prototype in Java for android phones. The developed system is designed to curb the identified problems with the existing system by making the system as light weight as possible, use little device resources. Static transfers are made in the sense that at any interruption of service, the transferred files still remains with the receiver and when connection is restored, the system can continue interrupted transfers.

1.3 Aim and Objectives of the Study

The main aim of this thesis is to build a Peer-to-Peer system for wireless devices to share files. The system design will be based on an open, protocol-based P2P platform called JXTA, which enables the developer to focus on the end-system instead of the extensive task of creating the P2P network. The prototype will be developed in Java for the Android platform. To achieve the stated aim, the following specific objectives were laid:

Firstly, J2ME, P2P networking and the JXTA technology will be investigated. Based on this a Mobile Peer-to-Peer system will be designed and simple a prototype will be implemented using phone emulators or real android phones.

Design an emergency reporting system to test the developed system where users share image and video files

Next, the application will be tested to see how it performs in a scalable network and how it performs when transferring large files.

 

1.4 Scope and Limitation of the Study

As already stated, the system is built on jxta technology and runs on android phones. The system showed to be successful as files were sent from one device to another. The p2p system will not be tested in a large scale due to resource and time constraints. Non-functional testing, such as stability, security and usability are not prioritized, but should be explained and considered if time and resources allow it.

1.5 Significance of the Study

This study has contributed to the development Peer-to-Peer (P2P) distributed file sharing system to Android. This feature comes in handy when we talk about services that enables file sharing. As peer by its nature can join or leave network at any moment then accessing files that client is interested in becomes critical as file to be downloaded would be offered only by one provider as in regular client-server architecture.

P2P distributed file sharing capability for Android provides users more reliable file sharing environment in distributed manner as files are downloaded as pieces from all the online peers who have pieces of desired file. What is more, small metadata torrent files are hosted by Mobile Hosts and published as a service. This setup assures the independency from other platforms and hosts.

This project can also serve as a source of knowledge to scholars researching the field of wireless communication as it can serve as a reference point to them or a beginning point for further references.

1.6 Organization of the Study

This study is developed under five chapters. The first chapter introduces the research topic, stating the background of the intended project, statement of the problems, project objectives, its significance to the society and overall scope. The second chapter reviews related literature on P2P networks. It analyses their architecture, their limitations and their interoperability with jxta architecture. The third chapter discusses the methodology used for the project development, the limitations of the currently used system and reasons the intended system should be chosen over the current system. It also showcases the design processes of the new system. Chapter four showcases the actual running of the developed system. Here proper tests are done to check the strength of the developed system. The developed system is analyzed to determine its conformation with the stated objectives. Chapter five gives the summary of the project, gives the conclusion and recommends approaches for better system.

1.7 Definition of Terms

Android:

Android is a mobile operating system based on a modified version of the Linux kernel and other open source software, designed primarily for touch screen devices.

Android SDK:

The Android software development kit (SDK) includes a comprehensive set of development tools for the development and running of android applications

JXTA (Juxtapose):

Is an open-source peer-to-peer protocol specification begun by Sun Microsystems in 2001. The JXTA protocols are defined as a set of XML messages which allow any device connected to a network to exchange messages and collaborate independently of the underlying network topology.

Chapter Two

Click the button below to INSTANTLY subscribe and download the COMPLETE MATERIAL (PDF/DOC)!

Related Field(s):

This Study On The “Design And Implementation Of A Peer To Peer Network For File Sharing” Is Relevant To Students And Researchers In Computer Engineering
Computer Science And Related Fields.