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?
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
- HTML 4 and forms.
- DOM
The Document Object Model defines an interface to access the content of a HTML or XML document. It is used by JavaScript and is also a component of Ajax. - Windows Object 1.0 Standardization of the windows DOM object, used by JavaScript.
- XML 1.1
XML is a universal storage and exchange data format - XHTML 1.1
XHTML is intended to replace HTML. It is rewritten to be an XML application. The "transitional" doctype supports both XHTML and HTML, but the 1.1 version is strict XHTML. - XForms 1.0 - Recommendation of an XML form language for the Web or other applications, that mobile devices can use.
Working drafts of future specifications
- HTML
5. Working draft of a specification by the WHAT WG, that adds to HTML
and DOM features to make them suitable for building Web application.
It will replace HTML4, XHTML 1.x, and DOM2 HTML but will be still compatible.
It should also supplant Web Forms 2.0, even if this one is in work, and it will be an alternative to XHTML 2 from the W3C. - Widgets 1.0. Related to small web applications as the ones that come with Windows Vista. Specifies mainly the manifest file that indicates how to display the widget.
- File Upload Define a class and members for a dialog that loads a file, and is a component of a Web application.
- Web API. Definition of interfaces and events, the API required to program the Web.
Documentation
- How Microsoft lost the API war According to this article, Web applications are replacing the ones of Windows.
- Web Application Security Consortium (WASC) Project for security of Web applications.