Application Programs and User Interfaces

9.1 Application Programs and User Interfaces

Although many people interact with databases, very few people use a query language to interact with a database system directly. The most common way in which users interact with databases is through an application program that provides a user interface at the front end, and interfaces with a database at the back end. Such applications take input from users, typically through a forms- based interface, and either enter data into a database or extract information from

a database based on the user input, and generate output, which is displayed to the user. As an example of an application, consider a university registration system. Like other such applications, the registration system first requires you to identify

376 Chapter 9 Application Design and Development

Terminals

Desktop PCs

Web browsers

Propietary Network or dial up phone lines

Local Area Network

Internet

Mainframe Computer Web Application Server

Database (a) Mainframe Era

Database

(b) Personal Computer Era

(c) Web era

Figure 9.1 Application architectures in different eras

and authenticate yourself, typically by a user name and password. The applica- tion then uses your identity to extract information, such as your name and the courses for which you have registered, from the database and displays the infor- mation. The application provides a number of interfaces that let you register for courses and query a variety of other information such as course and instructor information. Organizations use such applications to automate a variety of tasks, such as sales, purchases, accounting and payroll, human-resources management, and inventory management, among many others.

Application programs may be used even when it is not apparent that they are being used. For example, a news site may provide a page that is transparently customized to individual users, even if the user does not explicitly fill any forms when interacting with the site. To do so, it actually runs an application program that generates a customized page for each user; customization can, for example,

be based on the history of articles browsed by the user.

A typical application program includes a front-end component, which deals with the user interface, a back-end component, which communicates with a database, and a middle layer, which contains “business logic,” that is, code that executes specific requests for information or updates, enforcing rules of business such as what actions should be carried out to execute a given task, or who can carry out what task.

Application architectures have evolved over time, as illustrated in Figure 9.1. Applications such as airline reservations have been around since the 1960s. In the early days of computer applications, applications ran on a large “mainframe” computer, and users interacted with the application through terminals, some of which even supported forms.

With the widespread use of personal computers, many organizations used a different architecture for internal applications, with applications running on the user’s computer, and accessing a central database. This architecture, often called

a “client–server” architecture, allowed the creation of powerful graphical user interfaces, which earlier terminal-based applications did not support. However, software had to be installed on each user’s machine to run an application, making tasks such as upgrades harder. Even in the personal computer era, when client– server architectures became popular, mainframe architecture continued to be the

9.2 Web Fundamentals 377

choice for applications such as airline reservations, which are used from a large number of geographically distributed locations.

In the past 15 years, Web browsers have become the universal front end to database applications, connecting to the back end through the Internet. Browsers use a standardized syntax, the HyperText Markup Language ( HTML ) standard, which supports both formatted display of information, and creation of forms- based interfaces. The HTML standard is independent of the operating system or browser, and pretty much every computer today has a Web browser installed. Thus a Web-based application can be accessed from any computer that is con- nected to the Internet.

Unlike client–server architectures, there is no need to install any application- specific software on client machines in order to use Web-based applications. However, sophisticated user interfaces, supporting features well beyond what is possible using plain HTML , are now widely used, and are built with the script- ing language JavaScript, which is supported by most Web browsers. JavaScript programs, unlike programs written in C, can be run in a safe mode, guarantee- ing they cannot cause security problems. JavaScript programs are downloaded transparently to the browser and do not need any explicit software installation on the user’s computer.

While the Web browser provides the front end for user interaction, application programs constitute the back end. Typically, requests from a browser are sent to a Web server, which in turn executes an application program to process the request.

A variety of technologies are available for creating application programs that run at the back end, including Java servlets, Java Server Pages ( JSP ), Active Server Page ( ASP ), or scripting languages such as PHP , Perl, or Python.

In the rest of this chapter, we describe how to build such applications, starting with Web technologies and tools for building Web interfaces, and technologies for building application programs, and then covering application architectures, and performance and security issues in building applications.