All Topics  
Web application

 

   Email Print
   Bookmark   Link






 

Web application



 
 
In software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
, a web application or webapp is an application
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
 that is accessed via web browser
Web browser

A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
 over a network such as the Internet
Internet

The Internet is a global network of interconnected computers, enabling users to share information along multiple channels. Typically, a computer that connects to the Internet can access information from a vast array of available server and other computers by moving information from them to the computer's local memory....
 or an intranet
Intranet

An intranet is a private computer networking that uses Internet technologies to securely share any part of an organization's information or operational systems with its employees....
. It is also a computer software application that is coded in a browser-supported language (such as HTML
HTML

HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '...
, JavaScript
JavaScript

JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
, Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
, etc.) and reliant on a common web browser to render the application executable
Executable

In computing, an executable causes a computer "to perform indicated tasks according to encoded instruction ," as opposed to a file that only contains data ....
.

Web applications are popular due to the ubiquity of web browsers, and the convenience of using a web browser as a client
Client (computing)

A client is an Application software or system that accesses a remote service on another computer system, known as a Server , by way of a Computer network....
, sometimes called a thin client
Thin client

A thin client is a client computer or client software in client-server architecture networks which depends primarily on the central Server for processing activities, and mainly focuses on conveying input and output between the user and the remote server....
.






Discussion
Ask a question about 'Web application'
Start a new discussion about 'Web application'
Answer questions from other users
Full Discussion Forum



Encyclopedia


In software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
, a web application or webapp is an application
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
 that is accessed via web browser
Web browser

A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
 over a network such as the Internet
Internet

The Internet is a global network of interconnected computers, enabling users to share information along multiple channels. Typically, a computer that connects to the Internet can access information from a vast array of available server and other computers by moving information from them to the computer's local memory....
 or an intranet
Intranet

An intranet is a private computer networking that uses Internet technologies to securely share any part of an organization's information or operational systems with its employees....
. It is also a computer software application that is coded in a browser-supported language (such as HTML
HTML

HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '...
, JavaScript
JavaScript

JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
, Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
, etc.) and reliant on a common web browser to render the application executable
Executable

In computing, an executable causes a computer "to perform indicated tasks according to encoded instruction ," as opposed to a file that only contains data ....
.

Web applications are popular due to the ubiquity of web browsers, and the convenience of using a web browser as a client
Client (computing)

A client is an Application software or system that accesses a remote service on another computer system, known as a Server , by way of a Computer network....
, sometimes called a thin client
Thin client

A thin client is a client computer or client software in client-server architecture networks which depends primarily on the central Server for processing activities, and mainly focuses on conveying input and output between the user and the remote server....
. The ability to update and maintain web applications without distributing and installing software on potentially thousands of client computers is a key reason for their popularity. Common web applications include webmail, online retail sales, online auctions, wiki
Wiki

A wiki is a page or collection of Web pages designed to enable anyone who accesses it to contribute or modify content , using a simplified markup language....
s and many other functions.

History

In earlier types of client-server
Client-server

The client-server software architecture model distinguishes client systems from server systems, which communicate over a computer network. A client-server application is a distributed system comprising both client and server software....
 computing, each application had its own client program which served as its user interface
User interface

The user interface is the aggregate of means by which people—the User s—Interaction with the system—a particular machine, device, computer program or other complex tools....
 and had to be separately installed on each user's personal computer
Personal computer

A personal computer is any general-purpose computer whose original sales price, size, and capabilities make it useful for individuals, and which is intended to be operated directly by an end user, with no intervening computer operator....
. An upgrade to the server part of the application would typically require an upgrade to the clients installed on each user workstation, adding to the support
Technical support

Technical support is a range of Customer service providing assistance with technology products such as mobile phones, televisions, computers, or other electronic or mechanical goods....
 cost and decreasing productivity
Productivity

Productivity in economics refers to metrics and measures of output from production processes, per unit of input. Labor productivity, for example, is typically measured as a ratio of output per labor-hour, an input....
.

In contrast, web applications use web document
Web document

Web document is a similar concept to web page, except it is a broader termwith the following distinctions: ...
s written in a standard format such as HTML
HTML

HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '...
 (and more recently XHTML
XHTML

The Extensible Hypertext Markup Language, or XHTML, is a markup language that has the same depth of expression as HTML, but also conforms to XML syntax....
), which are supported by a variety of web browsers.

Generally, each individual web page is delivered to the client as a static document, but the sequence of pages can provide an interactive experience, as user input is returned through web form elements embedded in the page markup. During the session, the web browser interprets and displays the pages, and acts as the universal client for any web application.

In 1995, Netscape introduced a client-side scripting
Client-side scripting

Client-side scripting generally refers to the class of computer programs on the World Wide Web that are Execution client-side, by the user's web browser, instead of server-side ....
 called JavaScript
JavaScript

JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
, which allowed programmers to add some dynamic elements to the user interface that ran on the client side. Until then, all the data had to be sent to the server for processing, and the results were delivered through static HTML pages sent back to the client.

In 1996, Macromedia introduced Flash
Adobe Flash

Adobe Flash is a multimedia Platform created by Macromedia and currently developed and distributed by Adobe Systems. Since its introduction in 1996, Flash has become a popular method for adding animation and interactivity to web pages; Flash is commonly used to create animation, advertisements, and various web page components, to integrate...
, a vector animation player that could be added to browsers as a plugin
Plugin

In computing, a plug-in consists of a computer program that interacts with a host application software to provide a certain, usually very specific, function "on demand"....
 to embed animations on the web pages. It allowed the use of a scripting language to program interactions on the client side with no need to communicate with the server.

In 1999, the "web application" concept was introduced in the Java language in the Servlet Specification version 2.2. [2.1?]. At that time both JavaScript
JavaScript

JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
 and XML had already been developed, but AJAX
Ajax

Ajax may refer to:...
 had still not yet been coined and the XMLHttpRequest object had only been recently introduced on Internet Explorer 5 as an ActiveX object.

In 2005, AJAX was coined, and applications like Gmail
Gmail

Gmail is a free Post Office Protocol and Internet Message Access Protocol webmail service provided by Google. In the United Kingdom and Germany it is officially called Google Mail....
 started to make their client sides more and more interactive.

Interface

The web interface places very few limits on client functionality. Through Java
Java (Sun)

Java refers to a number of computer software products and specifications from Sun Microsystems that together provide a system for developing application software and deploying it in a cross-platform environment....
, JavaScript
JavaScript

JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
, DHTML, Flash
Adobe Flash

Adobe Flash is a multimedia Platform created by Macromedia and currently developed and distributed by Adobe Systems. Since its introduction in 1996, Flash has become a popular method for adding animation and interactivity to web pages; Flash is commonly used to create animation, advertisements, and various web page components, to integrate...
 and other technologies, application-specific methods such as drawing on the screen, playing audio, and access to the keyboard and mouse are all possible. Many services have worked to combine all of these into a more familiar interface that adopts the appearance of an operating system. General purpose techniques such as drag and drop are also supported by these technologies. Web developers often use client-side scripting to add functionality, especially to create an interactive experience that does not require page reloading. Recently, technologies have been developed to coordinate client-side scripting with server-side technologies such as PHP
PHP

PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
. Ajax
Ajax (programming)

Ajax, or AJAX , is a group of interrelated web development techniques used to create interactive web applications or rich Internet applications....
, a web development technique using a combination of various technologies, is an example of technology which creates a more interactive experience.

Technical considerations

A significant advantage of building web applications to support standard browser features is that they should perform as specified regardless of the operating system or OS version installed on a given client. Rather than creating clients for MS Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
, Mac OS X
Mac OS X

Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
, Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
, and other operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s, the application can be written once and deployed almost anywhere. However, inconsistent implementations of the HTML, CSS
Cascading Style Sheets

Cascading Style Sheets is a stylesheet language used to describe the presentation of a document written in a markup language. Its most common application is to style web pages written in HTML and XHTML, but the language can be applied to any kind of XML document, including Scalable Vector Graphics and XUL....
, DOM
Document Object Model

The Document Object Model is a platform- and programming language-independent standard object model for representing HTML or XML documents as well as an Application Programming Interface for querying, traversing and manipulating such documents....
 and other browser specifications can cause problems in web application development and support. Additionally, the ability of users to customize many of the display settings of their browser (such as selecting different font sizes, colors, and typefaces, or disabling scripting support) can interfere with consistent implementation of a web application.

Another approach is to use Adobe Flash
Adobe Flash

Adobe Flash is a multimedia Platform created by Macromedia and currently developed and distributed by Adobe Systems. Since its introduction in 1996, Flash has become a popular method for adding animation and interactivity to web pages; Flash is commonly used to create animation, advertisements, and various web page components, to integrate...
 or Java applet
Java applet

A Java applet is an applet delivered to the users in the form of Java bytecode. Java applets can run in a Web browser using a Java Virtual Machine , or in Sun Microsystems's AppletViewer, a stand-alone tool for testing applets....
s to provide some or all of the user interface. Since most web browsers include support for these technologies (usually through plug-ins), Flash- or Java-based applications can be implemented with much of the same ease of deployment. Because they allow the programmer greater control over the interface, they bypass many browser-configuration issues, although incompatibilities between Java or Flash implementations on the client can introduce different complications. Because of their architectural similarities to traditional client-server applications, with a somewhat "thick" client, there is some dispute over whether to call systems of this sort "web applications"; an alternative term is "Rich Internet Application
Rich Internet application

Rich Internet applications are web applications that have some of the characteristics of Application software, typically delivered by way of an Ajax framework, Proprietary software web browser Plug-in s, advanced javascript compiler technology, or independently via Sandbox es or virtual machines....
" (RIA).

Structure

Applications are usually broken into logical chunks called "tiers", where every tier is assigned a role. Traditional applications consist only of 1 tier, which resides on the client machine, but web applications lend themselves to a n-tiered approach by nature. Though many variations are possible, the most common structure is the three-tiered application. In its most common form, the three tiers are called presentation, application and storage, in this order. A web browser is the first tier (presentation), an engine using some dynamic Web content technology (such as ASP
Active Server Pages

Active Server Pages , also known as Classic ASP, was Microsoft's first server-side scripting Active Scripting for dynamic web page. Initially released as an add-on to Internet Information Services via the Windows_NT_4.0#Option_Pack, it was subsequently included as a free component of Windows Server ....
, ASP.NET
ASP.NET

ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services....
, CGI
Common Gateway Interface

The Common Gateway Interface is a Standardization Protocol for interfacing external application software with an Server , commonly a web server....
, ColdFusion
ColdFusion

ColdFusion is an application server and software language used for Internet application development such as for dynamic web page. In this regard, ColdFusion is a similar product to Microsoft Active Server Pages, JavaServer Pages or PHP....
, JSP/Java
Java Servlet

Servlets are Java programming language objects that dynamically process requests and construct responses. The Java Servlet API allows a software developer to add dynamic content to a Web server using the Java platform....
, PHP
PHP

PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
, Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
, Python
Python (programming language)

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
, Ruby on Rails
Ruby on Rails

Ruby on Rails is an open source web application framework for the Ruby . It is often referred to as "Rails" or "RoR". It is intended to be used with an agile software development, which is often utilized by web developers for its suitability for short, client-driven projects....
 or Struts2
Struts2

IntroductionApache Struts 2 is a brand-new, state-of-the-art web application framework. Struts 2 isn?t just a new release of the older Strutsframework....
) is the middle tier (application logic), and a database is the third tier (storage). 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.

For more complex applications, a 3-tier solution may fall short, and you may need a n-tiered approach, where the greatest benefit is breaking the business logic, which resides on the application tier, into a more fine-grained model. For example, creating a separate business logic tier. Or adding an integration tier that separates the data tier from the rest of tiers by providing an easy-to-use interface to access the data. For example, you would access the client data by calling a "list_clients" function instead of making a SQL query directly against the client table on the database. That allows to replace the underlying database without changing the other tiers.

There are some who view a web application as a two-tier architecture. This can be a "smart" client that performs all the work and queries a "dumb" server, or a "dumb" client that relies on a "smart" server. The client would handle the presentation tier, the server would have the database (storage tier), and the business logic (application tier) would be on one of them or on both. While this increases the scalability of the applications and separates the display and the database, it still doesn't allow for true specialization of layers, so most applications will outgrow this model.

Business use

An emerging strategy for application software companies is to provide web access to software previously distributed as local applications. Depending on the type of application, it may require the development of an entirely different browser-based interface, or merely adapting an existing application to use different presentation technology. 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 company which follows this strategy is known as an application service provider
Application service provider

An application service provider is a business that provides computer-based services to customers over a network. Software offered using an ASP model is also sometimes called On-demand software or software as a service ....
 (ASP), and ASPs are currently receiving much attention in the software industry.

Writing web applications

There are many web application framework
Web application framework

A web application framework is a software framework that is designed to support the web development of Dynamic web page, Web applications and Web services....
s which facilitate rapid application development by allowing the programmer to define a high-level description of the program. In addition, there is potential for the development of applications on Internet operating systems, although currently there are not many viable platforms that fit this model.

The use of web application frameworks can often reduce the number of errors in a program, both by making the code simpler, and by allowing one team to concentrate just on the framework. In applications which are exposed to constant hacking attempts on the Internet, security-related problems caused by errors in the program are a big issue. Frameworks may also promote the use of best practices such as GET after POST
Post/Redirect/Get

Post/Redirect/Get is a common design pattern for web applications, to help avoid duplicate form submissions and allow web applications to behave more intuitively with browser Internet bookmarks and the reload button....
.

Web application security


The Web Application Security Consortium (WASC) and OWASP
OWASP

The Open Web Application Security Project is an open-source application security project. The OWASP community includes corporations, educational organizations, and individuals from around the world....
 are projects developed with the intention of documenting how to avoid security problems in web applications. A web application security scanner
Web Application Security Scanner

A web application security scanner is program which communicates with a web application through the web front-end in order to identify potential security vulnerabilities in the web application and architectural weaknesses....
 is specialized software for detecting security problems in web applications.

Applications

Browser applications typically include simple office software (word processor
Word processor

A word processor is a computer Application software used for the production of any sort of printable material.Word processor may also refer to an obsolete type of stand-alone office machine, popular in the 1970s and 80s, combining the keyboard text-entry and printing functions of an electric typewriter with a dedicated computer for th...
s, online spreadsheets
List of online spreadsheets

This is a list of online spreadsheets. Online spreadsheets are online applications that allow users to create a spreadsheet, have multiple persons edit it and share it with the world....
, and presentation tools
Presentation program

A presentation program is a computer software package used to display information, normally in the form of a slide show. It typically includes three major functions: an editor that allows text to be inserted and formatted, a method for inserting and manipulating graphic images and a slide-show system to display the content....
), with Google Docs being the most notable example, and can also include more advanced applications such as project management, computer-aided design
Computer-aided design

Computer-Aided Design is the use of computer technology to aid in the design and particularly the drafting of a part or product, including entire buildings....
, video editing
FORscene

FORscene is an integrated internet video Platform , covering non-linear editing system and publishing for broadcast, web and mobile.Designed by Forbidden Technologies plc to allow collaborative editing of video, its capabilities extend to video logging, reviewing, publishing and Web hosting service....
 and point-of-sale

Benefits

Browser applications typically require little or no disk space on the client, upgrade automatically with new features, integrate easily into other web procedures, such as email and searching. They also provide cross-platform compatibility (i.e., Windows, Mac, Linux, etc.) because they operate within a web browser window.

Disadvantages

Standards compliance is an issue with any non-typical office document creator, which causes problems when file sharing and collaboration becomes critical. Also, browser applications rely on application files accessed on remote servers through the Internet. Therefore, when connection is interrupted, the application is no longer usable. Google Gears is a platform to ameliorate this issue and improve the usability of browser applications.

See also

  • AJAX
    Ajax

    Ajax may refer to:...
  • ASP.NET
    ASP.NET

    ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services....
  • Cascading style sheets (CSS)
    Cascading Style Sheets

    Cascading Style Sheets is a stylesheet language used to describe the presentation of a document written in a markup language. Its most common application is to style web pages written in HTML and XHTML, but the language can be applied to any kind of XML document, including Scalable Vector Graphics and XUL....
  • CNR
    CNR (software)

    HistoryIn 2002, the legacy CNR, or One-Click & Run, was created as a digital software delivery service created by Linspire The service provide the desktop Linux user with an online software warehouse from which they could click on a product and have it installed on their desktop automatically....
  • ColdFusion
    ColdFusion

    ColdFusion is an application server and software language used for Internet application development such as for dynamic web page. In this regard, ColdFusion is a similar product to Microsoft Active Server Pages, JavaServer Pages or PHP....
  • Scalable Vector Graphics (SVG)
    Scalable Vector Graphics

    Scalable Vector Graphics is a family of specifications of XML-based file format for describing two-dimensional vector graphics, both static and dynamic ....
  • Content management framework
    Content management framework

    A content management framework is an application programming interface for creating a customized content management system.Some such systems are:...
  • Dynamic HTML (DHTML)
    Dynamic HTML

    Dynamic HTML, or DHTML, is a collection of technologies used together to create interactive and animated web sites by using a combination of a static markup language , a client-side scripting language , a presentation definition language , and the Document Object Model....
  • Hypertext Markup Language (HTML)
  • Dynamic web document
    Web document

    Web document is a similar concept to web page, except it is a broader termwith the following distinctions: ...
  • JavaScript
    JavaScript

    JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
  • JavaServer Pages (JSP)
    JavaServer Pages

    JavaServer Pages is a Java technology that allows software developers to create dynamic web page, with HTML, XML, or other document types, in response to a Web client request....
  • Ruby on Rails
    Ruby on Rails

    Ruby on Rails is an open source web application framework for the Ruby . It is often referred to as "Rails" or "RoR". It is intended to be used with an agile software development, which is often utilized by web developers for its suitability for short, client-driven projects....
  • Django (web framework)
  • Perl
    Perl

    In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
  • PHP
    PHP

    PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
  • Procore
  • Python
    Python (programming language)

    Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
  • Rich Internet application
    Rich Internet application

    Rich Internet applications are web applications that have some of the characteristics of Application software, typically delivered by way of an Ajax framework, Proprietary software web browser Plug-in s, advanced javascript compiler technology, or independently via Sandbox es or virtual machines....
  • Software development
    Software development

    Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products....
  • Struts2
    Struts2

    IntroductionApache Struts 2 is a brand-new, state-of-the-art web application framework. Struts 2 isn?t just a new release of the older Strutsframework....
  • Web 2.0
    Web 2.0

    The term "Web 2.0" refers to a perceived second generation of web development and web design, that aims to facilitate communication, secure information sharing, interoperability, and collaboration on the World Wide Web....
  • Software as a service (SaaS)
    Software as a Service

    Software as a Service is a model of software deployment where an application is licensed for use as a service provided to customers on demand. On demand licensing and use alleviates the customer's burden of equipping a device with every application....
  • Web application framework
    Web application framework

    A web application framework is a software framework that is designed to support the web development of Dynamic web page, Web applications and Web services....
  • Web service
    Web service

    A Web service is defined by the W3C as "a software system designed to support interoperability Machine to Machine interaction over a computer network"....
    s
  • List of web application frameworks
    List of web application frameworks

    This is a list of notable web application frameworks, used for creating web applications....
  • World Wide Web Consortium
    World Wide Web Consortium

    The World Wide Web Consortium is the main international standards organization for the World Wide Web . It is arranged as a consortium where member organizations maintain full-time staff for the purpose of working together in the development of standards for the World Wide Web....
     (Web standards)
  • Web based presentation tools
    Web based presentation tools

    Web Based Presentation tools aims to give a web based medium to create, share and present the presentations.Examples include:*Adobe Acrobat Connect...
  •  


    External links

    • , changes to HTML and related APIs to ease authoring of web-based applications.
    • — An article arguing that the future lies on the server, not rich interfaces on the client
    • in the Open Directory Project
      Open Directory Project

      The Open Directory Project , also known as Dmoz , is a multilingual open content Web directory of World Wide Web links owned by Netscape that is constructed and maintained by a virtual community of volunteer editors....