In its most generic sense, the term application applies to a task. For
example, a widget maker needs to take orders and transmit these orders to a
warehouse where the widgets are shipped to customers. The widget factory and
warehouse must exchange inventory information. This whole procedure might be
called an order entry and inventory control application. In this sense, other
applications include list management, accounting, design, marketing, and sales -
the tasks of any enterprise.
More specifically, the term application refers to the computer software used
to get a job done. Thus, database management packages such as dBase IV, Paradox,
and Oracle are called application software, as are other types of software such
as WordPerfect, Co/Session, and 1-2-3. In this sense, application software is
distinguished from system software, which is the software that makes computers
and networks operate. Think of the application software running on top and
taking advantage of the system software and hardware.
Finally, application refers to programs written to perform a specific task.
For example, many users have written applications in the dBase language. These
customized applications are written by and for end users, not by software
vendors. This can get tricky, because some value-added resellers and system
integrators write such customized programs to sell. The difference is they are
not selling generic applications software as Microsoft, Borland and Lotus do.
They, like the end-users themselves, are creating customized programs using the
software of developers such as Borland and Microsoft.
Network operating system software, such as NetWare, LAN Manager, and VINES,
provide some applications. This presents some complications and indicates some
changing directions for the PC network industry.
Networks exist for applications. That is, users install networks to get a job
done. Users can have computers, cable, interface cards, file servers, and
protocols, but without applications software users can't do much but copy files
from disk to disk. Network application software is what people use. The network
is just the substrate upon which they use it.
APPLICATION TYPES
There are three types of applications -
network-ignorant, network-aware, and network-intrinsic.
Network-ignorant applications are written for use on one computer by one
person. These programs can run on a network in the sense that they may be stored
on a file server and network users may run them at their workstations. Most of
the time there are severe limitations on what these applications can do.
Moreover, if two people try to use the program at the same time, data can be
lost or corrupted.
For example, if two people try to work on the same 1-2-3 spreadsheet, the
person making the last change to the spreadsheet will write over all the changes
made by the user who first saved his work. The program has no way of keeping the
users from destroying each other's work. It lacks concurrency control. On the
other hand, 1-2-3 can be used safely by several people at the same time, as long
as they are using different spreadsheets (and if they have a license to do so).
But the standalone version of 1-2-3 does not provide functions to take advantage
of the network.
Network-aware applications are a step above network-ignorant applications.
Usually, they are network-ignorant programs modified to run on a network. These
programs recognize they will be used by several users at a time. They have
concurrency control features such as file and record locking to coordinate usage
by multiple users. For example, when a Paradox user begins to modify an address
in a mailing list database, other users who are also looking at the same
database table are prevented from changing that particular address record. This
is called record locking. When the change is complete, the change is displayed
on the screen of every other user looking at the table.
Another network-aware feature is file locking. This is a less sophisticated
and less used form of concurrency control. Instead of keeping users out of a
particular record, they are kept out of the entire file altogether while another
user has it open. Word processing programs are the primary users of this type of
concurrency control. Communications software and electronic mail are also
network-aware applications. They use the network to extend the abilities of a PC
and share network resources.
At the same time, even these network-aware applications use the network as
little more than a peripheral sharing device. The file server holds the data and
the program but does not do any processing. Users access the program as if it
were local, but all the work is being done by their PC, including all
concurrency control. This is changing.
Network-aware programs make up the vast majority of programs written for
networks. They are a big improvement over network-ignorant applications and have
gone a long way to spur the growth of networking. As they become more
sophisticated, the distinction between network-aware and network-intrinsic is
blurring.
NETWORK-INTRINSIC APPLICATIONS
Network-intrinsic applications
actually share the processing power of several computers. Usually, although not
always, this is done by dividing the application program into pieces. One piece
is the server, which does data processing; the other piece is the client, which
talks to the user. A database server is a good example of this application type.
Its principles can be generalized for other network-intrinsic applications.
A database server is composed of front and back ends. The front end is
responsible for formulating requests and displaying formatted data to the user.
At the front end, users make queries, write reports, create new databases - all
the tasks they do with any other database management program. The back end is
responsible for managing and searching for data, concurrency control, and
security. When a user asks for all the employees in the company database that
make more than $50,000, this request is transmitted to the database server or
back end. The database server then looks for all the employees making over
$50,000 and sends these records to the front end.
In the network-aware method, one program, not two, runs in the user's
machine. When the request for middle-income employees is made, the server
downloads the entire file over the network to the user program. The user's PC
then searches through the file to find the employees with the requested
salaries. This takes up much more network bandwidth because the whole file is
transferred, instead of just a few records. Other traffic includes concurrency
control commands to lock various files and records as needed.
With a database server, concurrency control traffic is eliminated because the
server takes care of it. Even more important, only the requested records are
sent over the network. The result is a more efficient, safer, and better
performing program and network. The two programs are working together to create
one application - a true network-intrinsic application.