State Maintenance and Database Integration
Scaling the challenge to solve two major problems that directly affect Web application development:
1. State maintenance
Creating Web sites with interesting and interactive features such as user-customized pages and visitor activity tracking requires "state maintenance." The Web is a "stateless" environment composed of static Web pages. The developer must employ some type of trick to be able to identify clicks on two different pages as belonging to the same user.
The common approach to achieving state maintenance requires the use of "cookies." A cookie is a file that contains information about the user's actions or profile and which is stored on the user's computer. In addition to the fact that many users are not comfortable with allowing a server to write information to their hard drives, cookies have many technical limitations.
2. Database integration
Dynamically-generated Web pages, product catalogs, and visitor registration applications require some type of database support.
First, there is the cost of a typical general-purpose database package. Second, most commonly-used database programs were not specifically designed for the Web. Instead, they have been modified to be "Web-enabled", implying certain limitations over a solution that is designed specifically for operation over the Internet.
Web development teams are now challenged to build large complex Web sites with quick development turn-around. These teams need:
- A Rapid Application Development system in which to quickly prototype, debug and test Web site functionality.
- A platform that provides these teams with a collaborative environment along with a development and maintenance work-flow system.
- The "mortar" as well as the "bricks" -- the code that provides the structure and the glue for constructing the site that houses the applications.
- A migration path to allow developers to gradually move from the simplistic, state-less environment of the Web page to the full and complex programming environment of languages such as Java.
The chart to the below depicts the gap developers must cross when they move from HTML to either CGI or Java programming.