A specification for writing programs that enables transactions between a Web server and other programs on a server
PHP
Scripting language that runs in the Linux operating system; used to extract and present data from a database
Servlet
Small application that runs on an Internet server, typically written in Java or Perl
ASP
Microsoft's version of dynamic Web page generation; uses VBScript as the default scripting language
JSP
Sun's implementation for creating Web pages that display dynamically-generated content
Client-server applications are groups of distributed programs running on networked computers, and interacting over known communication protocols. Rather than performing all the processing on a single system and transmitting formatted results to VT-100 terminals, client-server applications distribute processing between dedicated server and client machines. This architecture was facilitated by the proliferation of personal computers, whose additional processing power allowed some of the complex processing to be offloaded from servers down to the clients.
Over time, some proprietary client-server application platforms (e.g. PowerBuilder) grew to be very complex, and their configuration and maintenance became a nightmare. With each new version, the size and complexity of the client platform base seemed to increase by another order of magnitude, resulting in what were referred to as fat clients. This application bloat became a serious problem, especially as the number of fat clients installed on a single PC grew as well, as shown in Figure 6.7.