0% found this document useful (0 votes)
37 views74 pages

Manager: A Project Report On

This document provides a project report on developing a Download Manager application. The report includes an introduction that describes the motivation and objectives of creating a Download Manager to address limitations in traditional downloading models. It discusses how the Download Manager will allow nodes in a network to communicate and share data in a distributed manner without relying on a single centralized server. The report also includes sections on requirements, system analysis, technologies used, screenshots, testing, implementation, limitations and conclusions. It aims to develop a system for downloading relevant documents from distributed servers in a more efficient and reliable way compared to existing client-server approaches.

Uploaded by

lovesingh33
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views74 pages

Manager: A Project Report On

This document provides a project report on developing a Download Manager application. The report includes an introduction that describes the motivation and objectives of creating a Download Manager to address limitations in traditional downloading models. It discusses how the Download Manager will allow nodes in a network to communicate and share data in a distributed manner without relying on a single centralized server. The report also includes sections on requirements, system analysis, technologies used, screenshots, testing, implementation, limitations and conclusions. It aims to develop a system for downloading relevant documents from distributed servers in a more efficient and reliable way compared to existing client-server approaches.

Uploaded by

lovesingh33
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 74

A

Project Report
On
DOWNLOAD MANAGER



In
Partial fulfillment of the Requirement for the award of the degree of
Bachelor of Technology
In
Information Technology
Of
Gautam Buddh Technical University, Lucknow



Under The Guidance of: Submitted By:
Mr. Sudarshan Goswami Chandan Rastogi (0712713026)
(Department of Information Technology) Himanshu Goel (0712713040)
Lav Kr. Singh (0712713048)






I.I.M.T. ENGINEERING COLLEGE, MEERUT (U.P.)


I.I.M.T. ENGINEERING COLLEGE, MEERUT
(Affiliated to Gautam Buddh Technical University, Lucknow, India)




Certificate


This is Certified that
has carried out the Project work presented in this report entitled
DOWNLOAD MANAGER for the award of Bachelor of Technology
(Information Technology) from G.B.T.U. Lucknow. The report embodies
result of original work and studies carried by student himself.







Mr. PAWAN SINGH Mr. Sudarshan Goswami
(H.O.D. Information Technology) (Department of Information Technology)




















Declaration



I hereby declare that...student of
IIMT Engineering College, Meerut. I have done my IT final semester project
at IIMT Engineering College, Meerut under the guidance of Mr. Sudarshan
Goswami, Project title is Download Manager. It is the project made in
JAVA language.
All the information as furnished above is true to the best of my knowledge.






Chandan Rastogi Mr. Sudarshan Goswami
Himanshu Goel
Lav Kr. Singh


















ACKNOWLEGDEMENT



We would like to express our deep sense of gratitude to our project
guide Mr. Sudarshan Goswami department of Information Technology
who came first to all in this reference owing to their noble guidance,
suggestions and a critical reading of the manuscript during the entire
work.

We are also thankful to Mr. Pawan Singh, H.O.D. Information
Technology for giving us the opportunity to work on the project &
providing us invaluable support & guidance.

We also like to express our heartiest gratitude to all the faculty members
of Information Technology department, we have greatly benefited from
their suggestions and comments of all the members during the project
work.





Chandan Rastogi
Himanshu Goel
Lav Kr. Singh




ABSTRACT

The project described in this document was about the Download Manager. It is
believed that such an application could eventually greatly assist the downloading
of relevant documents from distributed servers. As such approach is very
promising, it is also very demanding. Such a system would be very complex and
would require the combined knowledge deriving from different disciplines in
Computing Science. In such a Distributed server environment, many problems
exist, which are still unsolved. A couple of immediate ones include the
combination of results from different information sources as well as the effective
handling of the results list.

The promises inherent in users coming together to form data downloading from
network communities, bring to the foreground new problems formulated over such
dynamic, ever growing, computing, storage, and networking infrastructures. A
Download Manager is a model of application where every node in the network
communicates to the servers. From a technical viewpoint, any acceptable solution
must fully exploit all available resources dictating the removal of any centralized
points of control, which can also readily lead to performance bottlenecks and
reliability/availability problems. Its efficiency in maintenance and failure-recovery
is particularly attractive to the deployment of Download Manager.





Table of Contents
1. Introduction.............
1.1Overview
1.2Future Scope...
1.3The Problem with Current System..
1.4Objective
2. SRS..
3. System Analysis.
3.1 Context Diagram
3.2 Detailed DFD
3.3 Use Case Diagram.
3.4 Module Specification..
4. Technologies Used..
5. Screen Shots
6. Testing...
7. Implementation and Maintenance
8. Limitations.
9. Conclusion..
10. References..











INTRODUCTION





Introduction

The basic idea behind the formation of our project Download Manager is
because of the growing need of the users interaction to web. Today as the
needs and demands of the users are increasing in the field of computer
communication the Download Manager provides a system with greater
reliability and performance.
Also a Download Manager is very adequate in its type. Basically the main
function of the Download Manager is to download the data from one node
(server) to all other systems which are connected in the network.
A Download Manager deals with the concept of requesting the data into the
network from server. Various numbers of nodes are connected to each other
with the help of a switch or with the use of router. Then the node in this
transfers its data to all other nodes and the other nodes accept the data packet
if it needs it.
In this sharing of data packet occurs and also a node can search for any
particular data or file. Also the most important advantage of using a
Download manager is that in this system one node can work as a client and
other like a server. Means that a system installs a Download Manager is able
to act as client to other systems and also it can use services provided by
other systems in the network.





1.1 Overview:-
The general concept behind the development of a Download Manager is to
remove or discard the use of traditional windows downloading Architecture.
As in that concept the systems are connected through the network. So
because of the server the time complexity for the data transfer is very high
and also if the connection of any system is broken with the server then that
node will not be able to receive the data and if the connection is again
established, data transfer again starts. In the Client server Architecture all the
responsibility is held by the server and if server fails then the whole system
will fail.
In the Download Manager the nodes are connected to each other like
network connection with the help of a switch or router. All the nodes in the
network can act as a server or as a client. In this when the program is started
the systems act like clients. The system which will make a request for the
data sharing or data transfer will become a client and all other systems will
act as servers.
1.2 Future Scope:-
In future we have to extend our Download Manager to work accurately and
fast using concept of multi file transfer from the server. First we have to
implement multi file transfer on system and. We have to make splitting
faster and over a large bulk of data. We intended to extend our Download
Manager network to be capable of downloading of audio, video, graph data
etc. Our main concern is to make downloading fast and able to deal with
large volume of data. We intend to make our Download Manager fit over
large Network using multiple routers also and be able to deal with it in same
manner as with small networks.



1.3 The Problem with Current System
Traditional downloading model faces many limitations which are describes
below.
Scalability: - In windows downloading model as the number of
download goes on increasing there Is a high demand for storage space
and bandwidth associated with client side. And thus burden on the
client goes on increasing with increase in number of downloads which
lead to degradation in performance of system.

Reliability: - As in the traditional model entire computation is based
on the highly loaded server for the function properly. Therefore entire
System is based on single server for functioning and failure of single
node (server) Cause the connection to crash. So the traditional model
is very poorly reliable as entire processing is highly dependent on
single loaded server and its failure cause the system to fail without
performing its task.

Robustness: - With the change of conditions the efficiency of the
system decreases.
1.4 Objective
Download Manager is aimed at sorting out the inherent Limitations of
traditional windows model, where the limitation occurs in terms of
scalability and reliability. As number of downloads in system or highly
loaded server fail in traditional model then download prone to be fails.
Download Manager Model is needed to develop to solve the problem of
traditional model. As in Download Manager system performance is not
depend upon single Loaded server and also system performance is not
degraded as number of downloads goes on increasing in system .








SRS










SRS



Software Requirements Specification
For
DOWNLOAD MANAGER
Application


Table of Contents
1 Introduction
1.1 Product Overview..
1.2 Purpose.
1.3 Intended Audience and Reading Suggestions
1.4 Scope..
1.5 References.
2 Overall Description
2.1 Product Perspective.
2.1 Product Functions..
2.3 User Characteristics..
2.4 Operating Environment.
2.5 General Constraints..
3 Specific Requirements.
3.1 External Interface Requirements
3.1.1 User Interface..
3.1.2 Hardware Interfaces..
3.1.3 Software Interfaces.
3.1.4 Communications Protocols
3.1.5 Memory Constraints
3.1.6 Operation
3.1.7 Product Function
3.1.8 Assumption and Dependency.
3.2 Software Product Features..
3.3 Software System Attributes.
3.3.1 Reliability..
3.3.2 Availability
3.3.3 Security
3.3.4 Maintainability..
3.3.5 Portability.
3.3.6 Performance
3.4 Other Requirements.
3.4.1 Storage requirement
4 Additional Materials.

Introduction
1.1 Overview
The general concept behind the development of a Download Manager
is to remove or discard the use of windows Architecture. As in that
concept the systems are connected through the internet with a single
client only. So because of the single client the time complexity for the
data transfer is very high and also if the connection of any system is
broken with the server then that node will not be able to receive the
data. In the windows Architecture all the responsibility is held by the
window and if downloading fails then the whole download will fail.
In the Download Manager system the node is connected to each other
servers like a connection with the help of a switch or router. All the
nodes in the network can act as a client. In this when the program is
started all the systems act like clients. The system which will make a
request for the data sharing or data transfer will become a client and
all other systems will act as servers.

1.2 Purpose:-
This document will give a detailed description of the file downloading
through the connected servers. The software will be used to download
multiple files and return these files to the user. This document will
cover the features of the software and include specifics on what the
system will do and any constraints and external factors that might
affect the system. Maximum people are using Download Manager
because it provides maximum speed; due to this feature in the near
future each and every people will use it.




1.3 Intended Audience and Reading Suggestions
This document is intended for the developers of the system and
project mentors as guide to building the software. It will also be used
by the potential users of the product to get their opinions, this will
help to revise and improve the product.
In second section, the Overall Description will give an overview of
the product functionality and features. Also mentioned are the
constraints that will affect the system and the interface. This section
will be used by the rest of the document and will give a better
understanding of the system.
The third section, the System Features, gives a full description of the
actions preformed by the system and gives details on the functions
that are executed. All the major services that will be provided by the
product are documented here.
The fourth section, the External Interface Requirements, will give
details on the interaction between the user and the software through
external interfaces. This section will give a description on hardware
and software interfaces that DOWNLOAD MANAGER software
requires to perform an action. Other requirements of the software will
be described in the fifth section, Other Nonfunctional Requirements.
This will give the requirements for the software when dealing with
external entities and restrictions.
1.4 Project Scope:-
Maximum people are using Download Manager because It provide
maximum speed due to this feature in the near future each and every
organization will use it. The software aims to help the user by
providing a simple interface and a more efficient way of downloading
the files they require. It will also provide the user with various options
and tools to help make their download more relevant to the content
that they need.
1.5 References:-
http://download.oracle.com/javase/tutorial/
http://www.roseindia.net/java/
http://www.adobe.com/support/security/bulletins/apsb10-
08.html
http://en.wikipedia.org/wiki/Features_of_Firefox
http://ntrg.cs.tcd.ie/undergrad/4ba2.02-03/p8.html
http://www.internetdownloadmanager.com/news.html
http://ntrg.cs.tcd.ie/undergrad/4ba2.02-03/p9.html
William Stallings(Data and Computer Communications )














Overall Description
2.1 Product Perspective
The program is a new self-contained product. It has come about due to
the demand for such a product being identified in a series of download
studies. From these studies we saw that the main activity people used
files for was the use content found online. These people would
regularly spend periods of time searching files and try to download
the files or data they wanted to access.

2.2 Product Features:-
The main feature of the software will be a downloader for
downloading the files from servers through connection. The user can
specify which of the files they want to download. The results will be
divided into the types that were specified using different tabs, and the
downloads will be ordered by different categories, such as name, size,
etc. The user will have the option to filter out files containing certain
content. In addition the user will have the option to filter out or only
download within certain systems and certain files. They will have the
facility for users to store their favorite files, so that they can come
back to the files at another time.
2.3 User Classes and Characteristics:-
There will be two levels of user for our software. The first will be the
general user that will be using our software to download their files.
They will only see the front end of the system. The second level will
be the software developers. They will be able to edit search,
depending on whether they think the system is safe and compatible,
compatible with our software, the speed at which the files can be
downloaded, and how useful the systems is to us, i.e. how many
downloads have come back from the connected systems.

2.4 Operating Environment:-
The software will be portable; this means it will work across
following operating systems Microsoft XP and Vista, windows7,
Linux and etc. platforms. The hardware needed for our system will be
a reasonably up to date computer which is connected through the
internet.
2.5 General Constraints:-
The General Constraint of our project is:
Hardware or software environment
End-user environment
Availability or volatility of resources
Standards compliance
Interface/protocol requirements
Data repository and distribution requirements
Security requirements (or other such regulations)
Memory and other capacity limitations
Performance requirements
Network communications
Verification and validation requirements (testing)
Specific Requirements

3.1 External User Interface:
3.1.1 User Interface:-
The user Interface will consist of one main screen, allowing all
the functionally to come from this one screen. This allows the
user to use the software with ease by not flicking through a
number of different screens. In addition to this the user can
always see the data they are looking for. We decided on this
type of interface because we felt that it would be very simple
for the user to navigate. From our reports we found that the
simpler the interface was, the more people liked it. With all
these features complied into one screen it will give the software
more flexibility and allows for easy and simple usage. This will
appeal to both nave computer users and experienced computer
users with a higher selling market.
3.1.2 Hardware Interface:-
Processor: - Pentium 4 or above
RAM: - 512MB or more
Hard Disk: - 10GB or more
As in the Download Manager all individual systems acts like client so
there is no different requirement for other computers. Same hardware
interface is needed for every node in the network.




3.1.3 Software Interface
The software interface provides a way to use software
requirements in such a way that it can be easily be used in an
effective manner to produce desired Operations. Software that
is required for implementation of Download Manager includes
OS such as Linux for enhancing security requirement to overall
system. Development of the system is constrained by
availability of required software such as operating environment
development tool, databases. Most recent version of all the
Software must be present in order to avoid any conflicts or
hindrance in Proper working of the system. Software interface
ensures the desired efficiency of the system. Software interface
include the various softwares that is needed to implement the
system.
3.1.4 Communication Interface
Communication standards that will be used through the
software will be java or other such languages. These will be
used to make the request to various ends in the network and
carry out response from them in an efficient manner. As in the
Download Manager all nodes acts like as client.
Communication between any pair of nodes is done through
implementing one of various routing algorithm for request
exchange between the nodes. Selection of routing algorithm is
decide on the basis of various factors such as shortest path,
minimum cost, efficiency, delay etc.
Communication interface has to deal with various issues such
as scalability. That is as the no. of nodes in the goes on
increasing there should be no degrading in the performance of
routing and communication between the nodes. In the network
must be in an effective manner and there must be no loss to the
performance of the system.

3.1.5 Memory Constraints:-
In a large professional, political, or social gathering, mobile
databases are useful to automatically facilitate a face-to-face
meeting based on matching profiles. For example, in a
professional gathering, mobile databases enable attendees to
specify queries (interest profiles) and resource descriptions
(expertise) to facilitate conversations, when mutual interest is
detected. This opportunistic matchmaking can greatly enhance
the value of networking events allowing users to connect with
targeted, interested parties without a priori knowledge of their
name, title, phone number, or other personal information. A
face-to-face meeting can be setup by including in the resource
description the identification information of the resource
(person), such as cell-phone number, name, screen name,
picture, physical description, etc. This information may be used
together with the (possibly imprecise) location to help set up
the face-to-face meeting. Thus, the individual's profile that is
stored in mobile databases will serve as a wearable web-site.
Similarly, mobile databases can facilitate face-to-face meetings
in singles matchmaking. Mobile databases provide mobile
users a downloader for transient and highly dynamic
information in a local geospatial environment. Mobile
databases employ a unified model for both the cellular
infrastructure and the mobile ad hoc environments. When the
infrastructure is available, it can be augmented by the mobile
database approach. Consider a mobile database platform, i.e. a
set of software services for data management in a mobile
environment; it is similar to a regular database management
system, but geared to mobile interactions. Such a platform will
enable quick building of matchmaking or resource download
services in many application domains, including social
networks, emergency response, homeland security, military,
airport applications, mobile e-commerce, and transportation.
There are many challenges and directions for the future
research in mobile databases and Download Manager:
Prolong network lifetime How to maximize the network life?
is a common but difficult problem in mobile databases.
Currently, some approaches as discussed above, e. g., ranking
and cluster-based-methods, are proposed to address this
problem and prolong the lifetime of sensor networks, mobile ad
hoc networks, and mobile databases. The future research
question is how to employ the redundancy of networks and the
density of peers in order to maximally extend the network
lifetime.
Rapid topology changes another challenge for designing and
developing mobile databases is high mobility of peers. This
poses problems to centralized databases, e. g., how to
efficiently download files and data, and how to reconfigure
rapidly when the topology of networks changes frequently.
Stateless approaches seem most suitable to address these
problems.
Emergent global behavior from local knowledge of Mobile
database can be treated as a special type of distributed system.
Each peer maintains a local database and all the local databases
form the virtual mobile database. Therefore, peers can only use
the downloader to download the data from the server. The
future research direction will be how to employ the local
knowledge and propose the adaptive local algorithms to direct
or affect the global behavior of data downloader.
(Self-) localization techniques Location-based approaches are
more and more popular and necessary, and location information
of peers is useful for efficiently storing and managing
information. However, self localization techniques are still not
efficient and effective enough due to the limitation of peers or
localization techniques. For example, GPS is not available
indoors and the accuracy of GPS is not enough for some mobile
databases. Therefore, creating efficient and effective self
localization technique for mobile databases is an important
research direction. However, in many application classes one
may be interested in more sophisticated queries. For example, if
a user wants to download the data quickly for the efficient
access of the data and the maximum utilization of the
bandwidth.
Mathematical modeling of data dissemination many query
processing and data dissemination algorithms may benefit from
a mathematical model of data propagation. For example, a
formula giving the number n of mobile peers having a report
that was generated at time t at location l would be very useful in
ranking of such a report. The number n is a function of the
density of mobile peers, motion speed, bandwidth and memory
availability at the peers, memory management, etc. Related
work done in epidemiology about the spread of infectious
diseases would be a good starting point for this research.
Results in random graphs may also be applicable to overall
system.

3.1.6 Operations:-
Download Manager Systems often implement an
abstract overlay network, built at Application Layer, on top of
the native or physical network topology. Such overlays are used
for downloading files and make the system independent from
the server topology. Content is typically exchanged directly
over the underlying Internet Protocol (IP) network. Anonymous
downloader systems are an exception, and implement extra
routing layers to obscure the identity of the source or
destination of queries.




3.1.7 Product Function:-

Networking:-
Domain Name System, for Internet information retrieval.
See Comparison of DNS server software
Cloud computing


3.1.8 Assumptions and Dependencies:-
Files identification
Routing protocols
Network topologies
Peer discovery
Communication/coordination protocols
Quality of service
Security
Fine-grained resource management









3.2 Software Product Features:-
Harness local resources for power search engine
Rich model for content extraction, annotation, summarization and
indexing of text, image, audio, video, feeds and portal
Customization and personalization
Collaboration & recommendation networks with others servers
Naturally fits with mobile client and context awareness
Naturally gears up for rich cognitive model of user behavior
No monopoly, no central profiling or bias
Great benefit for economy and science
Business application in intranet, communities, and search embedded
mobile application.














3.3 Software System Attributes:-

3.3.1 Reliability
The reliability of the Download Manager system is increased in
comparison to centralised system due to no central point of failure.
The System also downloads in the condition, after any node of the
network stops working.
The reliability also increases due to absence of heavily loaded sever
and the load is most probably distributed equally on every node of the
whole network.


3.3.2 Availability:-
The availability of data depends upon the server, so there are no any
issues of data found from the application side.

3.3.3 Security:-
Download Manager System lack the tools available to a Centralized
Administration, so it can be much more difficult to implement
security protections on a deployed System. Moreover, the absence of a
defensible border of a system means that it is hard to know friend
from mallacious users can actively play the role of insiders i.e. they
can run peer themselves, and often a great number of them. Several
solutions are discussed below. As such, many systems are designed
with strong security considerations in mind, depending upon their
function, from cover traffic to prevent monitoring of file transfer to a
reputation system that can discourage single actors from controlling
too many trusted nodes. As above, the wide range of security issues
makes optimizing for all not a feasible option. This will become
evident in our discussion of actual downloader system below. But first
we present some of common security demands. One way to think
about downloader is whether it applies at network Level, the
application level or user level. At network level, an Adversary may try
to break routing system or block accessing to information by
impending queries, or partitioning network. At application level, an
adversary can attempt to corrupt or delete data stored in system or in
transit. Finally the users themselves can be the subject of attack if an
adversary goes after anonymity and privacy protections.

3.3.4 Maintainability:-
Download manager is easily maintainable. It can easily adopt the
changes Due to new technology, environment, and situations in a very
efficient manner. Download Manager can easily recover from any
break down, failure. Download Manager is divided into various
modules with limited complexity which makes the maintenance of
system easier. Interface between the modules is responsible for easy
maintenance of system.

3.3.5 Portability:-
Download Manager promises to be portable as it is platform
independent as it is implemented using java language which is itself
platform independent. Portability means its working is not dependent
upon the type of operating system of the system. Download manager
works well at various versions of windows (XP, Vista, 7). Moreover it
is well suited to open source operating system. Portability of
download manager makes it more usable as it can be used across
various platform with change in its performance, thus it make the
system more efficient.


3.3.6 Performance:-
The main aspect of performance is speed. The greatest challenge for a
download manager in matching the capabilities of a centralized server
is performance. Centralized server consists of large server farms,
efficient distributed file systems, load balancers to an array of
strategically located data centres and huge caches. All a centralized
server needs to worry about to deliver fast search results are packet
roundtrip time, retrieval from local disk/ computation and browser
render time. These times have been reduced to less than half a second.
It is very hard to match this level of infrastructure with a decentralized
architecture. But we aim to address this by using an efficient design
and reducing the round trip time required to compute search results.
This is ensured by reducing the number of messages and lookup
involved in a certain query.



3.4 Other Requirements:-
Other requirements of download manager compromises of its
extension to a large network and high downloading speed. In order to
make download manager compatible over large network we have to
use indirect discovery mechanism with support of websites. In order
to make searching faster in network we have to rely upon website
searching techniques.
3.4.1 Storage Requirement:-
There is also a requirement to maintain and store the information of
downloaded files so that when the peer disconnected in a network
wants to use a file then it is easily available for it. So for maintaining
the database some specific requirements are needed such as file name,
path name etc. So for this, the database maintains in local disks are
beneficial because the accessing of data is easily handled in it. And
there is no requirement of connection to internet.










System Analysis







3.1 Context Diagram










3.2 Detailed DFD:-








3.3 Use Case Diagram:-




3.4 Module Specification
Basically our Project is divided in three modules .These are-
Download Module
DownloadManager Module
Progress Renderer Module
DownloadsTable Module

Download Module-
In this module we define the graphical user interface of the
downloading system. This module helps the user to use and
interact with the software easily. In this module there is window
which has five buttons and all of them have a specific functions
.They all make the working of software linear. The buttons are-
Add Download
Pause
Resume
Cancel
Clear

The Add Download button provides the appropriate information
for the user so that he will not suffer any problem on using the
software. It has all significant information about the software. This
button use to add the download link from the web.
The Pause button provides the facility to pause the current files
which are downloading.
The Resume button is used to start the download again.
The cancel button is used to cancel the download which is not
required.
The Clear button is used to clear the downloaded files which are
completed.
DownloadManager Module:
This module basically involved in the downloading the files using
the connection through the web with the help of URL.
Progress Renderer Module:-
This module helps the user see the current progress of the files
which is currently in the queue and maintaining the downloading
queue.
DownloadsTable Module:-
In this table the fields like URL, file size, progress, status etc are
mentioned. It also includes the designing phase of GUI.














Technologies Used









Technologies Used

Core java:-
Java is great programming language for the development of enterprise
grade applications. This programming Language is evolved from a
language named Oak. Oak was developed in the early nineties at Sun
Microsystems as a platform-independent language aimed at allowing
entertainment appliances such as video game consoles and VCRs to
communicate. Oak was first slated to appear in television set-top boxes
designed to provide video-on-demand services. Oak was unsuccessful so
in 1995 Sun changed the name to Java and modified the language to take
advantage of the burgeoning World Wide Web.
Java is an object-oriented language, and this is very similar to C++. Java
Programming Language is simplified to eliminate language features that
cause common programming errors. Java source code files are compiled
into a format called byte code, which can then be executed by a Java
interpreter.
Java technology is a high-level programming and a platform independent
language. Java is designed to work in the distributed environment on the
Internet. Java has a GUI features that provides you better "look and feel"
over the C++ language, moreover it is easier to use than C++ and works
on the concept of object-oriented programming model. Java enables us to
play online games, video, audio, chat with people around the world,
Banking Application, view 3D image and Shopping Cart. Java finds its
extensive use in the intranet applications and other e-business solutions
that are the grassroots of corporate computing. Java, Regarded as the
most well described and planned language to develop an application for
the Web.
Java is a well known technology which allows you for software designed
and written only once for a "virtual machine" to run on a different
computer, supports various Operating Systems like Windows PCs,
Macintoshes, and UNIX computer. On the web aspect, Java is popular on
web servers, used by many of the largest interactive websites. Java
is used to create standalone applications which may run on a single
computer or in distributed network. It is also be used to create a small
application program based on applet, which is further used for Web page.
Applets make easy and possible to interact with the Web page.
Java Preferred Over Other Languages:-
The Java is a high-level programming language that can be supported
by all of the following features:

Java has advantages over other languages and environments that make
it suitable for just about any programming task.










Simple
Architecture
neutral
Object
oriented
Portable
Distributed
High
performance
Multithreaded Robust
Dynamic Secure

The Advantages of Java are as follows:
Java is simple, easy to design, easy to write, and therefore easy to
compile, debug, and learn than any other programming languages.
Java is object-oriented, that is used to build modular programs and
reusable code in other application.
Java is platform-independent and flexible in nature. The most
significant feature of Java is to run a program easily from one
computer system to another.
Java works on distributed environment. It is designed to work on
distributed computing, any network programs in Java is same as
sending and receiving data to and from a file.
Java is secure. The Java language, compiler, interpreter and
runtime environment are securable.
Java is robust. Robust means reliability. Java emphasis
on checking for possible error, as Java compilers able to detect
many error problems in program during the execution of respective
program code.
Java supports multithreaded. Multithreaded is the path of execution
for a program to perform several tasks simultaneously within a
program. The Java comes with the concept of Multithreaded
Program. In other languages, operating system-specific procedures
have to be called in order to work on multithreading.
J ava Technology Works:-
Java is a high-level programming language and powerful software
platform. On full implementation of the Java platform gives you the
following features:
J DK Tools: The JDK tools provide compiling, Interpreter, running,
monitoring, debugging, and documenting your applications.
The main tools used are the Java compiler, the java launcher, and
the java doc documentation tool.
Application Programming I nterface (API ): The API provides the
core functionality of the Java programming language. It gives a
wide collection of useful classes, which is further used in your own
applications. It provides basic objects and interface to networking
and security, to XML generation and database access, and much
more.
Deployment Technologies: The JDK software provides two type
of deployment technology such as the Java Web Start software and
Java Plug-In software for deploying your applications to end
users.
Graphical User I nterface Toolkits: The Swing and Java 2D
toolkits provide us the feature of Graphical User Interfaces (GUIs).
I ntegrated Libraries: Integrated with various libraries such as the
Java IDL API, JDBC API, Java Naming and Directory Interface
TM ("J.N.D.I.") API, Java RMI, and Java Remote Method
Invocation over Internet Inter-ORB Protocol Technology (Java
RMI-IIOP Technology) enable database to access and changes of
remote objects.









AWT:-
The Java programming language class library provides a user
interface toolkit called the Abstract Windowing Toolkit, or the AWT.
The AWT is both powerful and flexible. Newcomers, however, often
find that its power is veiled. The class and method descriptions found
in the distributed documentation provide little guidance for the new
programmer. Furthermore, the available examples often leave many
important questions unanswered. Of course, newcomers should expect
some difficulty. Effective graphical user interfaces are inherently
challenging to design and implement, and the sometimes complicated
interactions between classes in the AWT only make this task more
complex. However, with proper guidance, the creation of a graphical
user interface using the AWT is not only possible, but relatively
straightforward.
This article covers some of the philosophy behind the AWT and
addresses the practical concern of how to create a simple user
interface for an Applet or application.
What is a user Interface:
The user interface is that part of a program that interacts with the user
of the program. User interfaces take many forms. These forms range
in complexity from simple command-line interfaces to the point-and-
click graphical user interfaces provided by many modern applications.
At the lowest level, the operating system transmits information from
the mouse and keyboard to the program as input, and provides pixels
for program output. The AWT was designed so that programmers
don't have worry about the details of tracking the mouse or reading the
keyboard, nor attend to the details of writing to the screen. The AWT
provides a well-designed object-oriented interface to these low-level
services and resources.
Because the Java programming language is platform-independent, the
AWT must also be platform-independent. The AWT was designed to
provide a common set of tools for graphical user interface design that
work on a variety of platforms. The user interface elements provided
by the AWT are implemented using each platform's native GUI
toolkit, thereby preserving the look and feel of each platform. This is
one of the AWT's strongest points. The disadvantage of such an
approach is the fact that a graphical user interface designed on one
platform may look different when displayed on another platform.
Components and containers:-
A graphical user interface is built of graphical elements called
components. Typical components include such items as buttons,
scrollbars, and text fields. Components allow the user to interact with
the program and provide the user with visual feedback about the state
of the program. In the AWT, all user interface components are
instances of class Component or one of its subtypes.
Components do not stand alone, but rather are found within
containers. Containers contain and control the layout of components.
Containers are themselves components, and can thus be placed inside
other containers. In the AWT, all containers are instances of class
Container or one of its subtypes.
















Swing:-
Swing is the primary Java GUI widget toolkit. It is part of Sun
Microsystems' Java Foundation Classes (JFC)
A API for providing a Graphical User Interface (GUI) for Java
programs.
Swing was developed to provide a more sophisticated set of
GUI components than the earlier Abstract Window Toolkit. Swing
provides a native look and feel that emulates the look and feel of
several platforms, and also supports a pluggable look and feel that
allows applications to have a look and feel unrelated to the underlying
platform. It is more powerful and flexible components than AWT. In
addition to familiar components such as buttons, check box and labels,
swings provide several advanced components such as tabbed panel,
scroll panes, trees, tables and lists.
Unlike AWT components, Swing components are not implemented by
platform-specific code. Instead they are written entirely in Java and
therefore are platform-independent. The term "lightweight" is used to
describe such an element.
Swing is a platform-independent, Model-View-Controller GUI
framework for Java. It follows a single-threaded programming model,
and possesses the following traits:
Foundations:-
Swing is platform independent both in terms of expression (Java) and
implementation (Look-and-Feel).
Extensible:-
Swing is a highly partitioned architecture, which allows for the
"plugging" of various custom implementations of specified framework
interfaces: Users can provide their own custom implementation(s) of
these components to override the default implementations. In general,
Swing users can extend the framework by extending existing
(framework) classes and/or providing alternative implementations of
core components.
Swing is a component-based framework. The distinction and
components is a fairly subtle point: concisely, a component is a well-
behaved object with a known/specified characteristic pattern of
behavior. Swing objects asynchronously fire events, have "bound"
properties, and respond to a well-known set of commands (specific to
the component.) Specifically, Swing components are Java
Beans components, compliant with the Java Beans Component
Architecture specifications.
Customizable:-
Given the programmatic rendering model of the Swing
framework, fine control over the details of rendering of a
component is possible in Swing. As a general pattern, the visual
representation of a Swing component is a composition of a
standard set of elements, such as a "border", "inset", decorations,
etc. Typically, users will programmatically customize a standard
Swing component (such as a JTable) by assigning specific Borders,
Colors, Backgrounds, opacities, etc., as the properties of that
component. The core component will then use these properties
(settings) to determine the appropriate renderers to use in
painting its various aspects. However, it is also completely
possible to create unique GUI controls with highly customized
visual representation.
Configurable:-
Swing's heavy reliance on runtime mechanisms and indirect
composition patterns allows it to respond at runtime to fundamental
changes in its settings. For example, a Swing-based application can
change its look and feel at runtime. Further, users can provide their
own look and feel implementation, which allows for uniform changes
in the look and feel of existing Swing applications without any
programmatic change to the application code.

Lightweight UI:-
Swing's configurability is a result of a choice not to use the native host
OS's GUI controls for displaying itself. Swing "paints" its controls
programmatically through the use of Java 2D APIs, rather than calling
into a native user interface toolkit. Thus, a Swing component does not
have a corresponding native OS GUI component, and is free to render
itself in any way that is possible with the underlying graphics APIs.
However, at its core every Swing component relies on
an AWT container, since (Swing's) JComponent extends (AWT's)
Container. This allows Swing to plug into the host OS's GUI
management framework, including the crucial device/screen
mappings and user interactions, such as key presses or mouse
movements. Swing simply "transposes" its own (OS agnostic)
semantics over the underlying (OS specific) components. So, for
example, every Swing component paints its rendition on the graphic
device in response to a call to component. paint() which is defined in
(AWT) Container. But unlike AWT components, which delegated the
painting to their OS-native "heavyweight" widget, Swing components
are responsible for their own rendering.
This transposition and decoupling is not merely visual, and extends to
Swing's management and application of its own OS-independent
semantics for events fired within its component containment
hierarchies. Generally speaking, the Swing Architecture delegates the
task of mapping the various flavors of OS GUI semantics onto a
simple, but generalized, pattern to the AWT container. Building on
that generalized platform, it establishes its own rich and complex GUI
semantics in the form of the JComponent model.
Loosely-Coupled and MVC:-
The Swing library makes heavy use of the Model-View-Controller
software design pattern, which conceptually decouples the data being
viewed from the user interface controls through which it is viewed.
Because of this most Swing components have associated models
(which are specified in terms of Java interfaces) and the programmer
can use various default implementations or provide their own. The
framework provides default implementations of model interfaces for
all of its concrete components. The typical use of the Swing
framework does not require the creation of custom models, as the
framework provides a set of default implementations that are
transparently, by default, associated with the corresponding
JComponent child class in the Swing library. In general, only complex
components, such as tables, trees and sometimes lists, may require the
custom model implementations around the application-specific data
structures. To get a good sense of the potential that the Swing
architecture makes possible, consider the hypothetical situation where
custom models for tables and lists are wrappers over
DAO and/or EJB services.
Typically, Swing component model objects are responsible for
providing a concise interface defining events fired, and accessible
properties for the (conceptual) data model for use by the associated
JComponent. Given that the overall MVC pattern is a loosely-coupled
collaborative object relationship pattern, the model provides the
programmatic means for attaching event listeners to the data model
object. Typically, these events are model centric (ex: a "row inserted"
event in a table model) and are mapped by the JComponent
specialization into a meaningful event for the GUI component.
For example, the JTable has a model called TableModel that describes
an interface for how a table would access tabular data. A default
implementation of this operates on a two-dimensional array.
The view component of a Swing JComponent is the object used to
graphically "represent" the conceptual GUI control. A distinction of
Swing, as a GUI framework, is in its reliance on programmatically-
rendered GUI controls (as opposed to the use of the native host OS's
GUI controls). Prior to Java 6 Update 10, this distinction was a source
of complications when mixing AWT controls, which use native
controls, with Swing controls in a GUI (see Mixing AWT and Swing
components).
Finally, in terms of visual composition and management, Swing
favors relative layouts (which specify the positional relationships
between components) as opposed to absolute layouts (which specify
the exact location and size of components). This bias towards "fluid"
visual ordering is due to its origins in the applet operating
environment that framed the design and development of the original
Java GUI toolkit. (Conceptually, this view of the layout management
is quite similar to that which informs the rendering of HTML content
in browsers, and addresses the same set of concerns that motivated the
former.)
Relationship to AWT:-


AWT and Swing class hierarchy
Since early versions of Java, a portion of the Abstract Window
Toolkit (AWT) has provided platform-independent APIs for user
interface components. In AWT, each component is rendered and
controlled by a native peer component specific to the underlying
windowing system.
By contrast, Swing components are often described as lightweight
because they do not require allocation of native resources in the
operating system's windowing toolkit. The AWT components are
referred to as heavyweight components.
Much of the Swing API is generally a complementary extension of the
AWT rather than a direct replacement. In fact, every Swing
lightweight interface ultimately exists within an AWT heavyweight
component because all of the top-level components in Swing
(JApplet, JDialog,JFrame, and JWindow) extend an AWT top-level
container. Prior to Java 6 Update 10, the use of both lightweight and
heavyweight components within the same window was generally
discouraged due to Z-order incompatibilities. However, later versions
of Java have fixed these issues, and both Swing and AWT
components can now be used in one GUI without Z-order issues.
The core rendering functionality used by Swing to draw its
lightweight components is provided by Java 2D, another part of JFC.


File handling:-
One of the most frequently used tasks in programming is writing to
and Reading from a file. To do this in java there are more
possibilities. At This time only most frequently used text file handling
solutions will be presented. You are probably aware that java is one of
the most popular programming Languages that people use. It is so
popular because it can be used so widely from application software to
web applications. You will find it being used by people everywhere
such as those who work for big companies like O2.co.uk. As a
language it is class based concurrent and object oriented. This allows
it to have as few implementation dependencies as possible.
Filename handling:-
To write anything to a file first of all we need a file name we want to
use. The file name is simple string as:
String filename = test.txt;
If you want to write in a file which is located elsewhere you need to
define The Complement file name and path in your filename variable:
String filename=c:\\filedemo\\test.txt;
However if you define a path in your file name then you have to take
care The path separator.on windows system the \is used and you
need toBackslash it so you need to write\\,in Unix, Linux systems
the separator is simpleSlash\.To make code OS independent you can
get the separator character as follows:
String separator = File.separator;
Open a file
To open a file for writing use the FileWriter class and create an
instance from it. The file name is passed into constructor like this:
FileWriter writer = new FileWriter(file name);
This code opens the file in overwrite mode. If you want to append to
file then you need to use another constructor like this:
FileWriter writer = new FileWriter(filename,true);
Besides this the constructor can throws an IOException so we put All
of the code inside try-catch block.
Write to file
At this point we have a writer object and we can send real content to
the file. You can do this using the Write () method, which has more
variant but the most commonly used requires a String as input
parameter. Calling the Write () method doesnt mean that it
immediately writes the data into the file. The output is maybe cached
so if you want to spend your Data immediately to the file with the
close () method and you are done.
The basic write method looks like this:
Code:
file.write(buffer, 0, read);
downloaded += read;
stateChanged();
}

Networking:-
The java platform is extremely preferable to write an application
program require to communicate with the resources on network.
Overview of Networking through Java-:
The java platform is extremely preferable to write an application
program require to communicate with the resources on network. Java
mainly focuses on the networking relating the description of the
networking capabilities of the java platform and second one is
describes A brief summary of networking that how to use URLs,
sockets and datagram. In java there is java.net package provides
network support. All the classes for making a network program are
defined in java.net package. Through TCP we can communicate over
network.

Java networking:-

Computing Networking:-
Here we are going to unfold the concepts of networking in day to day
scenarios. Let Us consider that you started a commercial activity
where you were using a computer along with a printer, modem and a
CD-ROM.
Network Architecture:-
Peer to Peer architecture can be considered as a network environment
that exchanges information between a server machine and a client
machine where server has some resources that can be shared by
different Clients.



Sockets and ports:-
In common languages we can say that the socket is one of the most
primal technologies of computer networking. Sockets are Just like an
end point of two way communication which allows Applications to
communicate using network hardware and operating systems.
Server Sockets:-
In common language we can say that the sockets are just like an End
point of two way communication link over network between two
programs. Socket classes are used to establish a connection between
client program and server program.
Datagrams in network environment:-
In a network environment the client and server communicate with
each other by reliable channel like TCP socket which have dedicated
point to point Channel between client and server. All data sent over
channel is received And sent in same order.
Networking in java:-
In this section we are exploring the java.net package which provides
support for Networking in java with a generic style. All the java
classes for developing a network program are defined in the java.net
package.





Getting Hands-on Networking Example

Find your host name/IP Address:-
In this section you will learn about the getLocalHost () method to
print the host name as well as the IP address of the local system. For
do for the same we have to call InetAddress class then we need to
create an object, in which we store the local information.

Find your Host name:-
Here we are going to explore a method to retrieve the host name of the
local System in a very simple example. Here we are just call the
InetAddress class and after made a object of that class we call a
getlocalHost () method and pass it in object.

Getting the local port:-
In this section you will learn that how a user can access the local port.
Here we are going to make it easier to understand the step by step
processes by complete example on this topic.
Find the host name in reverse of given IP address:-
In this section you will learn to retrieve the information about the
local host Using the getHostName () method. Here is an example that
provides the usage of the getHostName () method in more detail.

To retrieve the IP address from Host name, vice versa:-
Here we are going to explain the method to find out the IP Address
from host name and vice versa. Here are give a complete exampled
named HostLookup java in which we call an InetAddress and make an
object and pass input value in it.






Construct a Datagram Packet to receive data:-
In this section we provide a complete code of an example based on the
method Datagram Packet (buffer, buffer.length) for construct a
Datagram Packet for receiving packets of length in more generic way.

Construct a Datagram Socket on an unspecified port
In this section we are going to explain the process to construct a
Datagram Packet object in more generic way. Here we provide a
complete example based on the method for creating Datagram Socket
object via Datagram Socket ().


























SCREEN SHOTS












Cancel

The snapshot shown below presents the mode of the application when the
downloading process is cancelled.





Download







Error

If there is any interruption between the downloading then itll show an error status.






Multiple Downloading

The snapshot shown below presents the mode of application when multiple
download are in progress.





Paused

The snapshot shown below presents the mode of the application when the
downloading process is PAUSED.






Resume

The snapshot shown below presents the mode of the application when the
downloading process is resuming the same download that has been paused earlier.













TESTING










Testing:
Testing is the process of detecting errors. Testing performs a very critical role for
quality assurance and for ensuring the reliability of software. The results of testing
are used later on during maintenance also.
Psychology of Testing:
The aim of testing is often to demonstrate that a program works by showing that it
has no errors. The basic purpose of testing phase is to detect the errors that may be
present in the program. Hence one should not start testing with the intent of
showing that a program works, but the intent should be to show that a program
doesnt work.
Testing is the process of executing a program with the intent of finding errors.
Testing Objectives:
The main objective of testing is to uncover a host of errors, systematically and with
minimum effort and time. Starting formally, we can say,
Testing is a process of executing a program with the intent of finding an
error.
A successful test is one that uncovers an as yet undiscovered error.
A good test case is one that has a high probability of finding error, if it
exists.
The tests are inadequate to detect possibly present errors.
The software more or less confirms to the quality and reliable standards.





Levels of Testing:

In order to uncover the errors present in different phases we have the concept of
levels of testing. The basic levels of testing are


Client needs Acceptance

Testing
Requirements System

Testing

Design Integration Testing



Code Unit Testing





Unit testing:
In computer programming, unit testing is a method by which individual units of
source code are tested to determine if they are fit for use. A unit is the smallest
testable part of an application. In procedural programming a unit may be an
individual function or procedure. In object-oriented programming a unit is usually
a method. Unit tests are created by programmers or occasionally by white box
testers during the development process.
Ideally, each test case is independent from the others: substitutes like method
stubs, mock objects, fakes and test harnesses can be used to assist testing a module
in isolation. Unit tests are typically written and run by software developers to
ensure that code meets its design and behaves as intended. Its implementation can
vary from being very manual (pencil and paper) to being formalized as part of
build automation.

Integration Testing:
Integration testing (sometimes called Integration and Testing, abbreviated "I&T")
is the phase in software testing in which individual software modules are combined
and tested as a group. It occurs after unit testing and before system testing.
Integration testing takes as its input modules that have been unit tested, groups
them in larger aggregates, applies tests defined in an integration test plan to those
aggregates, and delivers as its output the integrated system ready for system
testing.
The purpose of integration testing is to verify functional, performance, and
reliability requirements placed on major design items. These "design items", i.e.
assemblages (or groups of units), are exercised through their interfaces using Black
box testing, success and error cases being simulated via appropriate parameter and
data inputs. Simulated usage of shared data areas and inter-process communication
is tested and individual subsystems are exercised through their input interface. Test
cases are constructed to test that all components within assemblages interact
correctly, for example across procedure calls or process activations, and this is
done after testing individual modules, i.e. unit testing. The overall idea is a
"building block" approach, in which verified assemblages are added to a verified
base which is then used to support the integration testing of further assemblages.

System Testing:
System testing of software or hardware is testing conducted on a complete,
integrated system to evaluate the system's compliance with its specified
requirements. System testing falls within the scope of black box testing, and as
such, should require no knowledge of the inner design of the code or logic.
As a rule, system testing takes, as its input, all of the "integrated" software
components that have successfully passed integration testing and also the software
system itself integrated with any applicable hardware system(s). The purpose of
integration testing is to detect any inconsistencies between the software units that
are integrated together (called assemblages) or between any of the assemblages
and the hardware. System testing is a more limited type of testing; it seeks to detect
defects both within the "inter-assemblages" and also within the system as a whole.

Acceptance Testing:
Acceptance testing generally involves running a suite of tests on the completed
system. Each individual test, known as a case, exercises a particular operating
condition of the user's environment or feature of the system, and will result in a
pass or fail, or Boolean, outcome. There is generally no degree of success or
failure. The test environment is usually designed to be identical, or as close as
possible, to the anticipated user's environment, including extremes of such. These
test cases must each be accompanied by test case input data or a formal description
of the operational activities (or both) to be performedintended to thoroughly
exercise the specific caseand a formal description of the expected results.



White Testing:
White-box testing (a.k.a. clear box testing, glass box testing, transparent box
testing, or structural testing) is a method of testing software that tests internal
structures or workings of an application, as opposed to its functionality (i.e. black-
box testing). In white-box testing an internal perspective of the system, as well as
programming skills, are required and used to design test cases. The tester chooses
inputs to exercise paths through the code and determine the appropriate outputs.
This is analogous to testing nodes in a circuit, e.g. in-circuit testing (ICT).
While white-box testing can be applied at the unit, integration and system levels of
the software testing process, it is usually done at the unit level. It can test paths
within a unit, paths between units during integration, and between subsystems
during a system level test. Though this method of test design can uncover many
errors or problems, it might not detect unimplemented parts of the specification or
missing requirements.

Black Box Testing:
Black-box testing is a method of software testing that tests the functionality of an
application as opposed to its internal structures or workings (see white-box
testing). Specific knowledge of the application's code/internal structure and
programming knowledge in general is not required. Test cases are built around
specifications and requirements, i.e., what the application is supposed to do. It uses
external descriptions of the software, including specifications, requirements, and
designs to derive test cases. These tests can be functional or non-functional, though
usually functional. The test designer selects valid and invalid inputs and
determines the correct output. There is no knowledge of the test object's internal
structure.
This method of test can be applied to all levels of software testing: unit,
integration, functional, system and acceptance. It typically comprises most if not
all testing at higher levels, but can also dominate unit testing as well.










IMPLEMENTATION
&
MAINTENANCE







Implementation:
The goal of implementation phase is to install the working system as the user site
and it is the responsibility of the developer is to provide user training.
Implementation simply means converting a new system design into operation. In
system implementation, user training is crucial for minimizing resistance to change
and giving the new system to prove its worth. Training aids that communicate
information about the new system and help screens provide the user with a good
start on the new system.

Maintenance:
Maintenance is the enigma of system development. Analyst and programmers
spend for more time maintaining program than writing them. Maintenance
accounts for 50 to 80 percent of total system development.
Maintenance activities begin where conversion leaves off.
Maintenance is handled by the same planning and control used in formal system
project. Documentation is as much a part of maintenance as that of system
development. Program changes are then tested and submitted to the user for
approval. Once approved a project completion notice send to the user, signaling the
termination of the project.
















LIMITATIONS












Limitations:

In our project Download Manager the main limitations are stated as
follow:
The data is downloaded not feasible for low bandwidth connection.
The model is defined for a small network only.
At this time our project works for only text files, images, videos,
audios and document files.
Users have to give file name with extension.




















Conclusion











Conclusion
Download manager systems are incredibly flexible and can be used for a wide
range of functions, often more effectively than their client-server Analogs. They
can be used to anonymously or robustly route through a network of servers, protect
content from censorship, enhance and protect collaborative processes and
coordinate use of diverse services. Security could be a concern to any of these
functions, and should be treated accordingly. In the system discussed, the security
is always on: no administrator can accidentally or maliciously turn it off. This
constant presence and absence of centralized support means that good security
practices must be built into the system. Each system has different design goals, and
just as the security should reflect the purposes of the system.












References










References:-
http://download.oracle.com/javase/tutorial/
http://www.roseindia.net/java/
http://www.adobe.com/support/security/bulletins/apsb10-
08.html
http://en.wikipedia.org/wiki/Features_of_Firefox
http://ntrg.cs.tcd.ie/undergrad/4ba2.02-03/p8.html
http://www.internetdownloadmanager.com/news.html
http://ntrg.cs.tcd.ie/undergrad/4ba2.02-03/p9.html
William Stallings(Data and Computer Communications )

You might also like