Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 17

1.

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.

1.5 Front End and Back end Tool

Front end tool used is NetBeans IDE 8.2

Back end may have Microsoft SQL Server.

1.6 Technology and Literature Reviews

1.6.1 Introduction of JAVA

Java is a programming language originally developed by James Gosling at Sun Microsystems


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 has a simpler object model and fewer low-
level facilities. 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 a general-
purpose, concurrent, class-based, object-oriented 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 is currently one of the most
popular programming languages in use, particularly for client-server web applications, with a
reported 10 million users. The original and reference implementation Java compilers, virtual
machines, and class libraries were developed by Sun from 1995. Main advantage of java
programming language is platform independence, which means any application written in
java can be operated on any of the platform, instead of having to produce separate versions of
the application for each computer and operating system.
1.6.2 JAVA Virtual Machine

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:

 JDK 1.0 (January 23, 1996)

 JDK 1.1 (February 19, 1997)

 J2SE 1.2 (December 8, 1998)


 J2SE 1.3 (May 8, 2000)

 J2SE 1.4 (February 6, 2002)

 J2SE 5.0 (September 30, 2004)

 Java SE 6 (December 11, 2006)

 Java SE 7 (July 28, 2011)

 Java SE 8 (March 18, 2014)

 Java SE 9 (September 21, 2017)

 Java SE 10 (March 20, 2018)

 Java SE 11 (September 25, 2018)

 Java SE 12 (March 19, 2019)

1.6.4 Features of JAVA

Following are the notable features of Java:

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

With Java's secure feature it enables to develop virus-free, tamper-free systems.


Authentication techniques are based on public-key encryption.

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

Being architecture-neutral and having no implementation dependent aspects of the


specification makes Java portable. The compiler in Java is written in ANSI C with a clean
portability boundary, which is a POSIX subset.

Robust

Java makes an effort to eliminate error-prone situations by emphasizing mainly on compile


time error checking and runtime checking.

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

With the use of Just-In-Time compilers, Java enables high performance.

Distributed

Java is designed for the distributed environment of the internet.


Dynamic

Java is considered to be more dynamic than C or C++ since it is designed to adapt to an


evolving environment. Java programs can carry an extensive amount of run-time information
that can be used to verify and resolve accesses to objects at run-time.

1.7 Functions and Main modules of system

Peer to Peer File Sharing System has three major modules:

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.

Project planning is part of Project Management. It is a well-established approach to


managing and controlling the introduction of new initiatives or organizational changes.
Projects are finite in length, usually one-time pieces of work involving a number of activities
that must be completed within a given time frame, and often on a fixed budget.

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.

2.2 Milestones and Deliverables

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

 When to build the project plan

 Who constructs the project plan

 Step by step guide to constructing a project plan

 Making the project plan visible, getting the project plan used

 Independent project plan reviews

 Getting resource commitments

 Time recording

 Tracking progress against the project plan

 Revising the project plan during the project

2.3 Roles and Responsibilities

Table 2.2 Roles and responsibilities

Task Shivani Jay


Requirement
 
Gathering
System Analysis  
Functionality  
Use-Case Diagram  
Class Diagram  
Activity Diagram  
Sequence Diagram  
E-R Diagram  
Control Flow
 
Diagram
Data Flow Diagram  
VI. Database Schema  
SRS  
Project Report  
Implementation  
Final Project Report  

2.4 Project Scheduling

Table 2.3 Project scheduling

No Activity Aug Sep Oct Nov Dec Ja Feb Ma Apr


n r

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.

3.1 User Characteristics

The intended users can be classified into three categories:

1. Administrator – Administrator will be able to login to the system to decide which


content should be pulled, what categories it should be placed in, and edit the content.
Every connected PC is at once a server and a client. There's no special network
operating system residing on a robust machine that supports special server-side
applications like directory services (specialized databases that control who has access
to what)..

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. Server –If a computer has a resource which is served to another computer, it is a


Server computer. The client establishes a connection to a Server and accesses the
services installed on the Server. A Server is not meant for a network user to browse in
internet or do spreadsheet work. A Server computer is installed with appropriate
Operating System and related Software to serve the network clients with one or more
services, continuously without a break.
3.2 Hardware and Software Requirements

3.2.1 Hardware Requirements

 Intel i3 or higher processor (Minimum).


 2 GB RAM or higher
 80 GB HDD.
 At least two computer system with normal speed.

3.2.2 Software Requirements

 Java Swing and Networking


 NetBeans 8.2 or down
 Java Virtual Machine
 A common network protocol.

3.3 Constraints

3.3.1 Regulatory Policies

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.

3.3.2 Hardware Limitations

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.

3.3.3 Interfaces to Other Applications

This system is a jar application that can be easily integrated into any computer.

3.3.4 Higher Order Language Requirements


We are using Java is a new technology along with NetBeans and there are many extra
features in that. If anyone is having older versions of “jdk” or NetBeans they can show errors
in functions and exceptions many times.

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.

3.3.6 Safety and Security Consideration

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.

3.3.7 Parallel Operation

The system is used by at least two computers, they run in parallel operation as one act as
sender and other act as receiver.

3.3.8 Assumptions and Dependencies

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

4.1 Study of Current System


Our system is a new system and so the study of the current system or the old system is not
applicable.

4.2 Weaknesses of Current System

 Files and folders cannot be centrally backed up...


 Because each computer might be being accessed by others it can slow down the
performance for the user.
 Ensuring that viruses are not introduced to the network is the responsibility of each
individual user.
 There is little or no security besides the permissions.

4.3 Requirement of new system

 Security measures
 Management of files

 Management of different categories


 History of transferred files

4.4 Feasibility Study

Feasibility study is carried out whenever there is a complex problem or opportunity, it is a


fact a preliminary investigation which emphasizes the “Lock undertaken to determine the
possibility or probability of either improving the existing system or developing a completely
new system. It helps to obtain an overview of the problem and to get rough assessment of
whether feasible solutions exist. There is essential to avoid committing large resources to a
project and the repent on it later.
Need for feasibility study:
The feasibility study is needed to
 Answer the question whether a new system is to be installed or not?
 Determine the potential of the existing system.
 Improve the existing system.
 Know what should be embedded in the new system.
 Define the problems and objectives involved in a projects
 Avoid costly repairs at a later larger stage when the system is implemented.
 Avoid the ‘hardware approach’ i.e. getting a computer first and then deciding How
to use it.
Method:
To conduct a detailed feasibility study, firstly an expert committee called “Steering
Committee” is appointed. This committee generally consists of systems analyst,
representatives from the departments which are likely to benefit from the project and a
chairman who is generally a key person in the organization.
The committee will look into:
 Technical feasibility
 Economic feasibility and
 Operational feasibility of the project.

4.4.1 Technical Feasibility

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.

4.4.2 Economic feasibility:


 Firstly identify the alternatives.
 Determine costs and expected savings of the alternatives
 The costs must include both onetime costs and recurring costs.
 Onetime costs may include:
 Feasibility study cost.
The costs for converting from present system to new system.
Construction or remodeling of computer room / facilities.
Cost involved in software packages.

4.4.3 Operational or Behavioral Feasibility:

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

5.1 Design Methodology

 Incremental development slices the system functionality into increments (portions).


In

Each increment, a slice of functionality is delivered through cross discipline work,


from the requirements to the deployment.
 The unified process groups increments/iterations into phases: inception, elaboration,
construction, and transition.
 Each of the phases may be divided into iterations, which are usually time-boxed
rather than feature-boxed. Architects and analysts work on iteration ahead of
developers and testers to keep their work- product backlog full.
 Inception identifies project scope, risks, and requirements (functional and non-
functional) at a high level but in enough detail that work can be estimated.
 Elaboration delivers a working architecture that mitigates the pricks and fulfils the
non- functional requirements.
 Incremental development is particularly useful when staffing is unavailable for a
complete implementation by the business deadline that has been established for the
project.
Fig. 5(a) Design Methodology

You might also like