Professional Documents
Culture Documents
Report
Report
Introduction
1.1 Definition
The project is Java Based Peer to Peer (P2P) File Sharing System.Point-to-Point (P2P)
technology enables the sharing of computer resources such as files by a direct exchange
between end-users computers. P2P networking means files are not stored on a central server.
Instead, client software works as a server for shared files on an individual's computer. This
allows each computer with the software to act as a mini-server from which other P2P users
can download files. P2P's popularity stems from its easy-to-use, convenient setup that has
empowered informal networks of file sharers to make files available to each other.
1.2 Purpose
Peer-to-peer computing is the sharing of computer resources and services by direct exchange
between systems. In a peer-to-peer architecture, computers that have traditionally been used
solely as clients communicate directly among themselves and can act as both clients and a
server, assuming whatever role is most efficient for the network. Clients share processing,
applications and content. There is no central point of control within the network.
1.3 Objective
The objective of the Project is to allow users to download media files such as music, movies,
and games using a P2P software client that searches for other connected computers. The
"peers" are computer systems connected to each other through the Internet. Thus, the only
requirements for a computer to join peer-to-peer networks are an Internet connection and P2P
software. File transfers involve two computers, often designated as a client and a server and
most operations are for the copying files from one machine to another. With the use of P2P,
the clients automatically mirror the files they download.
1.4 Scope
You can configure computers in peer to peer workgroups to allow sharing of files, printers
and other resources across all of the devices. Peer networks allow data to be shared easily in
both directions, whether for downloads to your computer or uploads from your computer.P2P
networks both scale better and are more resilient than client-server networks in case of
failures or traffic bottlenecks.
A Java virtual machine (JVM) is a virtual machine capable of executing Java bytecode.A Java
virtual machine is software that is implemented on virtual and non-virtual hardware and on
standard operating systems. A JVM provides an environment in which Java bytecode can be
executed, enabling such features as automated exception handling, which provides "root-
cause" debugging information for every software error (exception), independent of the source
code. A JVM is distributed along with a set of standard class libraries that implement the Java
application programming interface (API). Appropriate APIs bundled together with JVM form
the Java Runtime Environment (JRE).The use of the same bytecode for all JVMs on all
platforms allows Java to be described as a "write once, run anywhere" programming
language, as opposed to "write once, compile anywhere", which describes cross-platform
compiled languages. Thus, the JVM is a crucial component of the Java platform.
1.6.3 Principles
There were five primary goals in the creation of the Java language:
It should be "simple, object-oriented and familiar"
It should be "robust and secure"
It should be "architecture-neutral and portable"
It should execute with "high performance"
It should be "interpreted, threaded, and dynamic"
1.6.4 Versions
As of 20 March 2018, both Java 8 and 11 are officially supported. Major release versions of
Java, along with their release dates:
Object Oriented
In Java, everything is an Object. Java can be easily extended since it is based on the Object
model.
Platform Independent
Unlike many other programming languages including C and C++, when Java is compiled, it
is not compiled into platform specific machine, rather into platform-independent byte code.
This byte code is distributed over the web and interpreted by the Virtual Machine (JVM) on
whichever platform it is being run on.
Simple
Java is designed to be easy to learn. If you understand the basic concept of OOP Java, it
would be easy to master.
Secure
Architecture-neutral
Java compiler generates an architecture-neutral object file format, which makes the compiled
code executable on many processors, with the presence of Java runtime system.
Portable
Robust
Multithreaded
With Java's multithreaded feature it is possible to write programs that can perform many tasks
simultaneously. This design feature allows the developers to construct interactive applications
that can run smoothly.
Interpreted
Java byte code is translated on the fly to native machine instructions and is not stored
anywhere. The development process is more rapid and analytical since the linking is an
incremental and light-weight process.
High Performance
Distributed
1. Admin side:
Admin is higher authority which has all the rights to add any place, event or information.
Admin can delete or modify the contents too. Tourist profiling is done on admin side this data
is invisible to tourist.
2. Sender:
After providing sufficient information user have to register them for purchasing a package.
Then they create a tube and add a section and category and then they den upload the videos
under those categories. It will allow to rate and comment the particular videos.
3. Receiver:
In this they have to register them and them to subscribe the particular tube. They can subscribe more
then one tube. And after that they can watch and comment the video.
4. Normal User:
These users will only be able to view content placed on website by administration.
2. Project Management
2.1 Project Plan
The planning stage establishes a bird’s eye view of the intended software product, and uses
this to establish the basic project structure, evaluate feasibility and risks associated with the
project, and describe appropriate management and technical approaches.
While the very simplest projects can be managed easily by applying common sense and just
getting on with things, projects that are more complex need a great deal of planning, and
benefit from a formal, disciplined management approach. From making sure that activities
will actually meet the specified need, to devising a workable schedule, developing systems
for reporting progress, and managing requests for changes – all of these issues require
thoughtful consideration. Managing projects well requires a great deal of time, skill, and
finesse. There are many sides to project management and this is what makes it so interesting
and demanding.
On particular date the work done and on next date works to be done were given by us as we
set the milestones. At particular interval we have delivered our work to respected faculty
allocated. In 7th semester we had done information gathering, analysis and decided our
layout for the application. In 8th semester we had started our designing and code
implementation. In between we had some presentation which we had delivered to our faculty
members and we had done appropriate changes as per their guidance.
Dividing the project into plannable stages
Making the project plan visible, getting the project plan used
Time recording
1 Requirement
gathering
2 Analysis
3 Design
4 Implementation
5 Testing
3. System Requirements Study
System requirements study involves a clear and thorough understanding of the product to be
developed with the view of removing all ambiguities from customer perception.
2. Client –A computer which is seeking any resource from another computer is a Client
Computer. You can think a client as a computer in your network, where a network user is
performing some network activity. For Example: Downloading a file from a File Server,
Browsing Intranet/Internet etc. The network user normally uses a client computer to perform
his day to day work.
3.3 Constraints
The only rule to use the software is that the system is so user friendly that no other
regulations can be imposed on the client.
The user need to have jdk and JVM installed in their computers. For effective use of the
system they need NetBeans or any other equivalent software.
This system is a jar application that can be easily integrated into any computer.
3.3.5 Reliability
System is a java based application and is used by many computers, all participating peers act
simultaneously as clients and as servers, and the file is not offered at a single server location,
but by multiple sharing peers. Since the load is distributed among all sharing peers, the risk of
overloading servers with requests is reduced, especially in the presence of flash crowd
arrivals.
You can never trust the file you are downloading from a remote user in P2P environment.
Some files may contain malwares. Thus if your users are using P2P application there can be
very high rate of Virus Outbreak in your network that too very frequently.
The system is used by at least two computers, they run in parallel operation as one act as
sender and other act as receiver.
Assumptions
A programmer should have knowledge of Java and Netbeans.
We will provide a friendly interface so that any user can easily navigate through the
system.
The system have no virus.
Dependencies
System users need to have same network protocols.
User need to install jdk to run the system.
System should have enough speed to transfer the files.
4. System Analysis
Security measures
Management of files
Can the work for the project be done with present equipment current procedures, existing
software technology and available personnel? If new technology is needed what alternatives
will be needed in the present structure and work ethos? This will require a close examination
of the present system. The technical feasibility should ask questions related to
Adequacy of available technology
Adequacy of hardware
Availability of computer
Operating time and support facilities etc.
Will the system be used, if it is implemented? Will there be resistance from users? This is
necessary because “equipment’s do not cry but people do cry”. The existing personnel
normally worry about job security, loss of peer group, changes in job context and so on
however new systems are proposed. If their voices are not headrest this stage, the problem
will be magnified at the implementation stage and appear as direct or indirect resistance to
new system.
5. System Design