IDM
In this
project a tool called Download Manager is developed that manages Internet
downloads for you and makes simple work of resuming interrupted downloads. It
also lets you pause and then resume a download, and manage multiple downloads,
simultaneously.
At the core
of the Download Manager’s usefulness is its ability to take advantage of
downloading
only specific portions of a file. In a classic download scenario, a whole file
is
downloaded from beginning to end. If the transmission of the file is
interrupted for
any reason,
the progress made toward completing the downloading of the file is lost. The Download
Manager, however, can pick up from where an interruption occurs and then download only
the file’s remaining fragment. Not all downloads are created equal, though, and
there are some that simply cannot be restarted.
Understanding Internet Downloads
To understand and
appreciate the Download Manager, it’s necessary to shed some light on how Internet
downloads really work. Internet downloads in their simplest form are merely client/server
transactions. The client, your browser, requests to download a file from a
server on the Internet. The server then responds by sending the requested file
to your browser. In order for clients to communicate with servers, they must
have an established protocol for doing so. The most common protocols for
downloading files are File Transfer Protocol (FTP) and Hypertext Transfer
Protocol (HTTP).
FTP is usually
associated generically with exchanging files between computers, whereas HTTP is
usually associated specifically with transferring web pages and their related
files (that is, graphics, sounds, and so on). Over time, as the World Wide Web
has grown in popularity, HTTP has become the dominant protocol for downloading
files from the Internet. FTP is definitely not extinct, though. The Download Manager
developed in this project will only support HTTP downloads. HTTP downloads come in two forms: resumable
(HTTP 1.1) and non resumable (HTTP 1.0). The difference between these two forms
lies in the way files can be requested from servers. With the antiquated HTTP
1.0, a client can only request that a server send it a file, whereas with HTTP
1.1, a client can request that a server send it a complete file or only a
specific portion of a file. This is the feature the Download Manager is
built on.
An Overview of the Download Manager
The Download Manager uses a simple
yet effective GUI interface built with Java’s Swing libraries. The use of Swing
gives the interface a crisp, modern look and feel.
The GUI maintains a list of
downloads that are currently being managed. Each download in the list reports
its URL, size of the file in bytes, progress as a percentage toward completion,
and current status. The downloads can each be in one of the following different
states:
Downloading, Paused, Complete,
Error, or Cancelled. The GUI also has controls for adding downloads to the list
and for changing the state of each download in the list. When a download in the
list is selected, depending on its current state, it can be paused, resumed,
cancelled, or removed from the list altogether.
The Download Manager is broken into
a few classes for natural separation of functional
components. These are the Download, DownloadsTableModel, ProgressRenderer, and DownloadManager classes, respectively.
The DownloadManager class is responsible
for the GUI interface and makes use of the DownloadsTableModel and ProgressRenderer classes for displaying
the current list of downloads. The Download class represents a “managed” download and is responsible for performing
the actual downloading of a file.
No comments:
Post a Comment