Building a Web Application

Making software that is used without installation

Software such as Google Doc, which allows for word processing without having the software on his computer, are expected to populate the "cloud".
The lack of installation and compatibility or upgrade problems gives them a definite advantage. How to achieve such a Rich Internet Application, or RIA?

Content

Computers solar-powered and facing a virtual cloud?

Web application for the beginner

Local application and Web application

A desktop application is a program that is not part of the operating system. Unlike script, it must have a user interface. But it depends upon the operating system or the environment, Java or .NET for examples, and it interacts with the hardware through this environment.
At the opposite, a Web application is independent of the environment of the client, it is executed on the server and makes use of the server resources through the browser, including content of databases. The user interface is provided by the browser and is made mainly of HTML forms for now.

Web application, CMS, Web service

Web application must be distinguished of Content Management System, that are limited to put a content online, while a Web application has more various tasks. A CMS may work statically to build a content for a website, or dynamically at net-surfer request, in this case it is a Web application.

Web services are systems built to allow interoperability between computers through a network. They can use the SOAP XML format to send requests, and the WSDL format to build an interface that describes the service.

Possible uses for enterprises and persons

On the Open Directory, a list of web applications is available, as examples of uses. Most of these programs are using database or are groupware. But any kind of desktop application could work remotely. More applications again exist with network games, voice software, etc...
It is also possible to use Web application on local desktop, for example the HTML help system of Windows was a online help system at first...

Choosing a technology

One has to choose between several technologies to build a Web application. A knowledge of the standards in work may be useful for a long-term development.

HTML and forms

Forms are the most common and the simplest mean to use a browser as user interface.
Events and actions are added to HTML with JavaScript code, that could be used for anything: drawing, playing electronic organ, etc...
Using Ajax improves the smoothness of the interface by avoiding to redraw the whole page when it is modified.
Several W3C specifications are in work to develop HTML and forms.

Flash

Not the more commonly used, Flash from Macromedia and its ActionScript programming language is an alternative to Ajax, providing one want to purchase the onerous development tools that are required. But this platform eases to build applications for the Web. However Flash slows down Web pages and don't work on any operating system.

Java and applets

The most common approach by enterprises, and for big projects. The environment is the same one than for desktop applications, and the Java runtime is installed both on the server and the client. This provides a graphical user interface and extended features at the cost of a slower processing.

PHP and LAMP

The complete platform: Linux, Apache (the server), MySQL (the database manager), PHP (the language) is the most largely used after Java. PHP can works under Windows also and with other servers and any database manager.

Web 2.0: Ajax etc...

The Web 2.0 is a set of technologies that replaces classical HTML website made only with a HTML editor, and it is also a collaborative approach.
Ajax is the main technological component to build modern web applications. Dynamic CMS is now the main tool to build a site and it may include collaborative tools as forum and FAQ managers.
However Web 2.0 may include lot of other technologies, see at examples given below.

Building the application

The graphical user interface

The interface is a web page loaded by the browser, JavaScript code is embedded into HTML or XHTML or another markup language. The content of the page is accessed by the DOM.
Data are stored as XML or JSON files. XML is accessed by DOM also while JSON is converted to JavaScript objects.

The comparison of UI languages, will help to choose the best platform..

Accessing databases and generating pages

The application may be written in PHP, ASP or JSP (Java-like), languages that can access databases. PHP has extensions for most of them.
The Java language is used by enterprise but is a part of a global platform.

Communicating with the server

Even if more classical ways exists, Ajax allows to exchange data with the server without delays, and to display them into dedicated fields without redrawing the whole page and that is well-suited for Web applications.

Using a framework

Numerous frameworks, including Ajax frameworks, give to programmers all the functions required to build web applications. These libraries handle security issues and avoid to write the most frequently used functions.

J2EE (Java 2 Enterprise Edition) is a set of components for large Web applications. It includes JSP, an alternative to PHP, servlets that are web services, applets that work client-side, the "Beans", reusable components that can communicate all together, the JDBC database wrapper and various database interfaces.

Conclusion

The number of existing technologies, platforms and frameworks require to define precisely the nature of the application, the public aimed to, the exact functions that the application will perform, to choose the best resources, platform, programming language, etc...

Various examples

ASP (Application Service Providers) now furnish software usable through the Web to replace desktop ones, at the cost of a registration or sometimes freely as does Google with Writely.

The RSS format allows to promote a website, but also to create a summary of the content, for the forum for example. Building an agregator is now longer required as recent browsers are able to manage them.

Mashup is not a technology but the ability to merge several technologies or web services. The most classical example is the combination of Google Map with a list of apartments, that allows realtors to furnish a real, 3D view of their offers to customers.

Collaborative projects or systems as XFN are FOAF are the bases of new applications for the Web.

standards for Web applications

The W3C has defined a specification for HTML and XML and is fully implicated in developping standard for all components and all aspects of Web applications. This concern forms, communicating with server, security and also partially data processing by defining interfaces of APIs and formats of storage.
The WHAT WG (Web Hypertext Application Technology Working Group) is another organization working to turn HTML into a platform for Web applications.

Current standards of the Web

Working drafts of future specifications

Documentation

© 2006-2012 Xul.fr