The Internet Encyclopedia (Volume 3)

(coco) #1

P1: c-161


SoftwareDesign WL040/Bidgoli-Vol III-Ch-24 June 23, 2003 16:25 Char Count= 0


TECHNOLOGIES FORBUILDINGWEBSITESOFTWARE 289

Another key difference is that, unlike shrink-wrap soft-
ware applications, Web-based applications do not have
to be sold or distributed when updates are made. Con-
sider maintenance updates to a commercial word process-
ing program. Immediately after releasing one version, the
company starts collecting problems and making a list of
needed changes. The first change might be simple and
easy, completed within a week or a few days after the ver-
sion is released. That change is not made available to the
customers immediately, however, but held for months or
years until the company is able to release the next ver-
sion. With Web software, on the other hand, that small
change can be installed live immediately; moreover, cus-
tomers expect it to be. These factors, together with the
rapid evolution of technology, means that maintainability
is crucial for Web software. Instead of an update rate of
months or years, Web software must be able to support
an update rate of days or even hours.
Unlike traditional businesses whose potential cus-
tomer base is typically limited by physical concerns such
as geography and traffic, growth in Web-based businesses
has unlimited potential: There are currently hundreds of
millions of users on the Web, each of whom is only a click
away and therefore “in the neighborhood” of the store.
This means that Web software must be highly scalable
and ready to grow in terms of servers, services, and cus-
tomers very quickly.
Finally, customers expect Web sites to respond quickly
to their requests. Nielsen (2000) claimed that users per-
ceive a response that occurs within 1 second to be imme-
diate, but will lose concentration and thus interest after
five seconds. After thirty seconds without a response, they
will almost certainly give up. Although network speeds
usually dominate response times, a bad software design
can seriously disrupt performance.
These quality requirements are not new, and certain
segments of the software industry have faced some of the-
se problems in various contexts. The novel aspect is that
Web software has all of these quality requirements at once.
Many of the technological innovations of the past 5 years
have been either in response to these requirements or to
support the fundamental distributed nature of Web soft-
ware.

TECHNOLOGIES FOR BUILDING
WEB SITE SOFTWARE
The changes in technology for building Web soft-
ware through the late 1990s and early 2000s have been
continuous, fast-paced, fundamental, and dramatic in
scope. These changes continue, thus this chapter can only
provide a snapshot of the current technologies that are
being used. Several varieties of plug-in enabling technolo-
gies are currently used to support Web software. An en-
abling technology is generally any mechanism that is used
to make Web pages dynamic and respond to user input.
Web browsers use plug-in modules to handle specific en-
abling technologies on the client. Web servers use server-
modules to handle enabling technologies on the server.
Two common varieties of plug-ins to support server-
side processing are compiled modules and scripted pages.
Compiled modules are executable programs that the

server uses to support server-side processing. Compiled
modules currently in common use are Java servlets,
Apache Modules, Microsoft’s Internet server application
program interface (ISAPI), and Netscape’s server API
(NSAPI). Scripted pages are HTML pages that also have
the ability to process business logic. Scripted pages are
executed server-side, not client-side (as JavaScripts are),
but they are HTML pages that can access software on the
server to get and process data. Scripted pages currently in
common use are Java Server Pages (JSP), Macromedia’s
Cold Fusion, Microsoft’s Active Server Pages (ASP), and
the open source PHP platform.
The rest of this section describes some of the technolo-
gies in common use for developing Web software. This is
a rapidly evolving field, thus any such description is auto-
matically out of date. The first discussion is an overview
of some of the client-side software technologies, then a va-
riety of server-side technologies. The original Web server-
side technology, CGI, is discussed first, followed by the rel-
atively established J2EE platform, then the newer .NET
platform. The section closes with some discussions of data
handling, including XML and access to databases.
This chapter does not address Web services, which
are built on top of the technologies described here. Web
services (sometimes called application services) are ser-
vices (usually including some combination of program-
ming and data but possibly including human resources
as well) that are made available from a business’s Web
server for Web users or other Web-connected programs
(TechTarget, 2003). Providers of Web services are gener-
ally known as application service providers. Web services
range from such major services as storage management
and customer relationship management (CRM) down to
much more limited services such as the furnishing of a
stock quote and the checking of bids for an auction item.
The accelerating creation and availability of these services
is a major Web trend.

Client-Side Technologies
There are many plug-ins that Web browsers can con-
tain to support dynamic execution. The browser is the
host that supports the technology, and the plug-ins have
the ability to execute certain languages and support non-
textual media applications such as images, Flash, video,
and sound. This is generally associated with dynamic
HTML. Dynamic HTML allows client-side processing to
be done by using scripting languages. Scripting languages
include JavaScript, VBScript, and Jscript, all of which
have similar functionalities. When used on the client-side,
they can access information about the client’s browser,
operating environment, and hardware configuration, and
access and modify information in the current Web page,
and respond to user events. They cannot access server-side
data when used as a client-side plug-in (although some of
these scripts are also used on the server-side).

Common Gateway Interface (CGI)
One of the first technologies to perform processing on the
Web server was the common gateway interface (CGI) pro-
tocol. CGI allows data to be sent from HTML form fields
on the client to the server and provides a mechanism for
Free download pdf