The term "client-server computing" currently avoids precise definition.
In general, client-server systems divide the computational work of a
process among clients, usually networked desktop-based microcomputers,
and servers, centrally-located high-powered micro- or more powerful
computers. This arrangement differs from centralized computing in that
the clients are fairly intelligent, not simply dumb terminals used to
interact with a mainframe computer.
Achieving client-server distribution can take several forms. A
client-server database may require the client to perform common tasks
such as data entry and sorting, while the server performs other
functions for all the clients, such as searches, storage, and backups.
Therefore, in theory, a relatively low-cost server which shares the
computational responsibilities of a process can improve a task
performed by all the clients.
Because of the high computational requirements dictated by digital
audio synthesis and/or the large size of digital audio files, those
using audio on a mid- to large-scale network may find the distribution
of labor in a client-server configuration a more efficient model of
processing. For example, a group at the Massachusetts Institute of
Technology's Media Lab has devised a system which distributes
descriptions of sound using a World Wide Web server. As these
descriptions are downloaded, they are synthesized by the client.
Specifically:
A possible disadvantage to the NetSound approach rises when
non-synthesized, recorded sounds are to be reproduced. The group at MIT
proposes transcribing digital samples into a "description-based
representation" so that they too can embody the advantages of the synthesis
method. Video and graphics professionals know how difficult non-literal
digital descriptions can be to develop (the only viable solution thus far
has been FITS technology - Functional Interpolating Transformation System
- implemented successfully in the Live Picture image manipulation program,
and this has only worked for still images thus far). It remains to be
seen how well the NetSound project will work in this respect.
By far the most ambitious approach to client-server distribution on the
Internet is Sun Microsystems' HotJava Browser
and the companion Java language. HotJava aspires to bring a new level of dynamism and
scalability to content on the Internet. Although HotJava's uses are many,
only those relevant to audio will be explored here.
The Java language resembles the object-oriented C++, but is simpler,
safer, and more portable. The use of a robust programming language, as
opposed to a markup language such as HTML, in conjunction with the
HotJava browser provides for greater functionality in content
distribution and a higher level of interaction. There are three main ways
in which HotJava accomplishes this:
The prospect of downloading runtime code from the Internet has raised
security concerns. Sun implemented four levels of defense against
malicious code: the source code cannot violate the safety rules; the
bytecodes are verified to check the fidelity of the compiler; the classes
of this object-oriented language cannot be used for functions other than
which they are specified, and the HotJava interface allows the user to
make some decisions about which applets should be accessed and what
access the applets have to other resources on the network.
For more information consult the
HotJava FAQ.
Also see Telephony, Broadcasting,and Teleconferencing.
Last Section:
The NetSound Project
NetSound is a
new multi-media data type for World Wide Web audio distribution that is
being developed by the Machine Listening Group. NetSound comprises a
MIME type and a viewer that synthesizes sound in real-time on the local
host. We are currently working on implementing NetSound on Silicon
Graphics, PowerMac and 486-based machines.
Several advantages arrive with the NetSound approach. First, synthesizing
sound on the client takes advantage of the end user's
computing power while not overtaxing the relatively slow Internet
connection. Second, because a description language is being
transferred rather than a sample-by-sample representation, the quality of
the sound is scaleable, that is, the description language can be used to
synthesize audio of varying sampling rates, word length, etc., dependent
only upon the client's processing power.
Java
References