Contents

1 Definition

“In software engineering, a Web application or webapp is an application that is accessed via web over a network such as the Internet or an intranet. (Wikipedia, retrieved 16:24, 15 September 2007 (MEST))”.

2 Software

“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 using some dynamic Web content technology (such as ASP, ASP.NET, CGI, ColdFusion, JSP/Java, PHP, Python, or Ruby On Rails) 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 generates a user interface.” (Wikipedia, retrieved 16:24, 15 September 2007 (MEST).

2.1 Web clients

Most often, web clients are web browsers and contents are displayed with HTML or XHTML and styled with CSS. Dynamic elements are added trough the use of HTML forms and JavaScript.

Web browsers support many plugins who often also can directly communicate with a server, e.g. Flash or Java Applets

More recent software evolution allows to create web applications that have a look and feel that is almost indistinguishable from traditional applications. They are known as rich internet applications or web 2.0 applications.

Note: Other software also can connect to the Internet, e.g. Mail clients, 3D interactive environments or computer games, but we wouldn't call these web applications since they usually rely on other communication protocols than the web's HTTP.

2.2 Engines, software bundles and web application frameworks

Engines are programmed either directly with scripting languages such as PHP, Python or ASP or by using web application framework that facilitate development and integrate tools (e.g. high-level description languages) for all tiers involved.

In the open source community, the most popular low-level software bundle for the engine and database tier is LAMP / WAMP / MAMP, i.e. an operating system like Linux or Windows, the Apache web server and it integrated scripting engine PHP and finally the MySQL database.

A new trend (2008) may be to develop/run a web application on an infrastructure like Google's [appengine]. “Google App Engine lets you run your web applications on Google's infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your application, and it's ready to serve your users ([1], retrieved 10:08, 15 April 2008 (UTC))”