Only four or five years, the World Wide Web has
changed from a static collection of HTML web pages to a dynamic engine that
powers e-commerce, collaborative work, and distribution of information and
entertainment. These exciting changes have been fueled by many changes in
software technology, the software development process, and how software is
deployed. Although the word "heterogeneous'' is commonly used to describe
web software, we might easily forget to notice in how many ways it can be
applied. In fact, the synonymous term ``diverse'' is more general and familiar,
and may be more appropriate. Web software applications use diverse types of
hardware, they include a diverse collection of types of implementation
languages (including traditional programs, HTML, interpreted scripts, and
databases), they are composed of software written in diverse languages, and
they are built by collections of people with very diverse sets of skills.
Although these changes in how web applications
are built are interesting and fascinating, one of the most unique aspects of
web software applications is in terms of the needs they must satisfy. Web
applications have very high requirements for a number of quality attributes.
Some of these quality attributes have been important in other (mostly
relatively small) segments of the industry, but some of them are relatively
new. This paper discusses some of the unique technological aspects of building
web software applications, the unique requirements of quality attributes, and
how they can be achieved.