Web application
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))”.
Web applications are popular due to the ubiquity of web browsers. One can update and maintain Web applications without distributing and installing software on potentially thousands of client computers. Web applications are used to implement portalware (e.g. learning management systems), rich internet applications, wikis, Webmail, online retail sales, online auctions, Forums, Weblogs, MMORPGs and many other.
See also: web application framework, Internet, World Wide Web.
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).
web client - engine - database (user interface) (logic) (data storage)
With a somewhat nicer picture:
Web clients
There exist different kinds of 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.
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))”
Databases
See database
In education
Web applications are hugely popular in education, in particular to support e-learning through various kinds of portalware, e.g. learning management systems.
Web applications are also used in classroom teaching, e.g. trough wikis, weblogs or web-based microworlds such as WISE. See Technology-enhanced classroom.