The original Web sites used hyperlinks to connect text documents. Modern Web applications run large-scale software applications that support e-business, information distribution, entertainment, collaborative working, surveys, and numerous other activities. They run on distributed hardware platforms and heterogeneous computer systems. The software is distributed, is implemented in multiple languages and styles, incorporates reuse and third-party components, is built with cutting edge technologies, and must interface with users, other Web sites, and databases.
First-generation web sites
The original Web sites were static HTML files, so-called soft brochures, usually created by a single webmaster who used technologies such as HTML and simple CGI scripts to present information to visitors and occasionally obtain information from them with forms. A client was a Web browser that people used to visit Web sites. The Web sites were on separate computers, the servers, which delivered HTML files to the client. HTML forms generated data that were sent back to the server to be processed by CGI programs. This is a simple execution model that supports relatively small Web sites.
Second-, third-, and fourth-generation web sites
This situation drastically changed through the late 1990s, with strong impact on and motivation from engineering principles and processes. Second-generation Web sites featured significantly more layout and presentation abilities, graphics, and more robust backend software support, including session management with cookies.
Web software engineering quality factors
Although software engineering researchers, educators, and practitioners have spent years focusing on developing processes and technologies to improve software quality attributes, much of the software industry has had little motivation to improve the quality of their software. Software is often sold with relatively low-quality requirements; the combination of user expectations and market realities has been such that increasing quality usually has not increased profits. A combination of time-to-market and marketing strategies has almost always determined whether traditional software products succeed competitively
Technologies for building web site software
The changes in technology for building Web software 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 technologies are currently used to support Web software. An enabling 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 enabling technologies on the client.
A natural desire for Web software designers is to store data in general database engines. This offers a general solution to the problem of storing data and allows developers to rely on the many advantages offered by a database, including general access, efficiency of storage and retrieval, and security. Both the J2EE and .NET platforms provide general cross-vendor connectivity and data access across relational databases from different vendors.
Many of the definitions in this glossary are derived in whole or part from Tech Target’s definitions, including “whatis.com”. More details can be found on their Web site for some of these terms.