Though many variations are possible, a web application is commonly structured as a three-tiered application. In its most common form, a web browser is the first tier, an engine created using some dynamic web content technology (e.g., CGI, PHP, or Java servlets) is the middle tier, and a database is the third tier. The web browser sends requests to the middle tier, which services them by making queries and updates against the database and generating a user interface.
An emerging strategy for application software companies is to provide web-accessible access to software that has heretofore been distributed as local applications. These programs allow the user to pay a monthly or yearly fee for use of a software application without having to install it on a local hard drive. A companies which follows this strategy is known as an application service provider (ASP), and ASPs are currently receiving much attention in the software industry.