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

Computer Science Project Material with Source Code Included

Computer Science Project Material with Source Code Included


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


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:

  1. 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.
  2. Design an emergency reporting system to test the developed system where users share image and video files
  3. 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 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 Five

Summary, Conclusion and Recommendation

5.1 Summary

Peer-to-Peer programming on wireless devices is an innovative domain with great potential, and commercial implementations will probably be growing similar to the popularity of conventional Peer-to-Peer we have seen in the last few years. The system I have proposed uses a Proxy Service on a fixed network to ease the workload on constrained mobile phones. With the increasing power of mobile phones, a Proxyless version of JXME would be possible, giving developers the freedom to avoid the fixed JXTA network, enabling pure mobile P2P networks. Large file sharing is mostly constrained by a mobiles heap memory; my testing of file segmentation shows that the images are segmented and re-assembled correctly as long as the phone has enough available memory.

5.2 Conclusion

Developing Peer-to-Peer networks for wireless devices is a new and promising research area, rising with the new mobile technology. With this thesis, I have proposed a way to implement a mobile Peer-to-Peer system based on the common protocols of the JXTA technology, an effort to define a common framework for P2P applications. JXTA is a highly complex P2P framework with many protocols and concepts to keep track of. . The JXME API is a lightweight version of JXTA, which lets the developer create mobile P2P solutions fast without extensive knowledge of JXTA.
Because of a mobile device’s technological constraints, the best wireless P2P solution should involve more powerful peers acting as a proxy and relays on a fixed network. This gives both the advantages of a fixed P2P network and the mobility of a wireless device. Since the JXTA for J2ME technology is under development, the documentation and tutorials available are very limited. With this thesis, further development based on this domain should have a solid foundation for understanding the technology and implementing a P2P system.

The system designed can be used to develop virtually any mobile P2P application; mobile multiplayer games, monitoring systems, instant messaging or file sharing to name a few. Such systems are very likely to grow rapidly with the introduction of third generation mobile networks and the ever improving memory and computing power on a mobile phone. I believe mobile P2P technology will be the next big thing in the technology industry; not only does it enable direct search and sharing of multimedia content such as images, mobile games, music and video, but mobile devices has the extra dimension of being a personal device that is with us all the time, and in many ways defines us as individuals. The challenge will be to take advantage of this fact and find new areas to utilize the technology.

5.3 Recommendation

To improve the mobile P2P system, one should look more closely at the JXME Proxy Service to cope with the problems I have encountered. This would improve the system functionality and utilize the Proxy Service much more than the proposed system does. The prototype has made a lot of simplifications, and it would be interesting to see how it performs on real mobile devices. It would be especially interesting to implement the camera-function to share images taken with the mobile’s camera and the Location-function to distribute geographical data automatically when the Peer is moving.

Even though the system proposed is working, I believe a Proxyless solution would be more successful in smaller P2P solution and is the right way to go for further research and development of pure wireless Peer-to-Peer programming. I propose developers who want to continue this research to join the JXTA community effort to port the JXME Proxyless implementation from the CDC environment to the CLDC environment.

Get Complete Project Material

5,000 5000

The Complete Material Will Be Sent to You in Just 2 Steps

Quick & Simple…

Step One Purchase

Make Payment (Through Transfer) of ₦5,000 to Any of the Account Below

Access Bank PlcAcc No: 0811003731
Samphina Academy
Current Account
Zenith BankAcc No: 1225513212
Samphina Academy
Current Account

Or CLICK HERE To Pay With Debit Card

CLICK HERE To Purchase Material ($15)
Make Payment of 120 GHS to 0553978005 | Douglas Cloud Osabutey | MTN MoMo

Step Two Purchase

Send the Following Details on WhatsApp ( 08143831497) After Payment

  1. Payment Details

  2. TOPIC: Design And Implementation Of A Peer To Peer Network For File Sharing

The Complete Material Will Be Sent To You On WhatsApp After Receiving Your Details
T & C Apply

  Contact Our Help Desk

Need a Different Topic? Perform a Quick Search

List of Related Works

Click on Any Topic to Preview the Content

Samphina Academy

Samphina Academy is an Online Educational Resource Center that is aimed at providing students with quality information and materials to aid them in succeeding in their academic pursuit.