Web Application Architecture
Web Application Architecture
Web Application Architecture
Sven Ziemer
November 28, 2002
Abstract
Todays Web Applications are complex distributed applications, that deploy
their functionality to the World Wide Web. In many cases Web Applications have
been developed by using an adhoc and unsystematic development process. As a
conesquence these applications have a high probability of failure during operation.
In order to develop high quality Web Application both the development process
and the architecture used must take into account the features and operational envi-
ronment of Web Applications.
1 Introduction
There has been an enormous success of the World Wide Web. Today many applications
are developed for the web, in such different areas as banking and finance, e-commerce,
education, government and entertainment. Legacy information and database systems
are being migrated to Web environments, in order to deploy their functionality on the
Web. Electronic commerce through the Internet is rapidly growing, cutting across na-
tional boundaries. Many people are effected by the Web.
What development aproach is used for Web applications. According to [7] the
development process for Web applications has been ad hoc and has lacked a rigour
and systematic approach. At the same time the complexity and sophistication of web
applications grows. The development cycles for Web Applications are much shorter
than for more tradional software systems because for time-to-market requirements. As
a consequence Web Applications have a higher probality of failure during operation.
In this essay I will describe how an adoptend development for Web Applications
and an architecture for Web applications can support the development of quality Web
Applications. In section 2 Web Applications are described. Then the emerging field
of Web Engineering will be presented (section 3) and finaly an architecture for Web
Applications will be provided (section 4).
2 Web Applications
The original purpose of the World Wide Web was merely presenting information. To-
day modern Web applications have grown into complex distributed applications. Web
1
applications are applications that use the Internet’s infrastructure to delivere their func-
tionality. Web Applications do not use the more traditional client/server technologies,
but are using web technologies such as web browsers and web servers. Recent reports
indicate that web applications represent more than thirty persent of software applica-
tions across all industry sectors [3].
Web applications are preferred over traditional applications for two reasons:
1. Web applications are more accessible. The HTTP protocal used in web appli-
cations is a standard protocol that can travel across corporate firewalls. The
only client software a user nee is a web browser. Also, Web Applications are
availeable on many platforms. Web browser are packaged with most operating
systems these days.
2. Web applications have a lower maintenace and deployment costs. Since Web
applications are running in web browser, they do not depend on installing client
software on each users computer. Web applications can be maintained by modi-
fying code that resides on a server. This reduces the time and the cost of upgrade
and deployment of web applications compared to tradinal client/server applica-
tions.
Web applications are not limeted to one type of application. They can range from
simple static web pages to sophisticated applications. Different categories of web ap-
plications are grouped togehter according to their data and control complexity [3] as
shown in figur 1:
1. Brochure Web Applications: This are the first generation of Web Applications.
They are composed of static web pages and tend not to have much programming
2
logic in them. When developing them the focus is on content development and
the layout of graphics and text.
Examples are personal web pages wich contains their resume and personal in-
formation or web pages about a company’s product.
2. Service oriented applications: These sites are offering a service to web users.Service
oriented applications contains the programming logic needed to implement the
service. The layout of the data is often a secondary concern. During maintenance
the developers need a good understanding of the control logic.
Examples are webmail services or online word-processing systems.
3. Data intensive applications: These are sites that provide an interface to browse
and query large amount of data. The main emphasis in these applications is on
the data, with minimal amount of programming logic involved. During mainte-
nance the developers need a good understandign of the data flow.
An example of this application type are online library catalogues.
4. Informations system applications: These applications combine the Service Ori-
ented Applications and the Data Intensive Applications. Developers of Infor-
mation system applications are concerned with the data flow (for browsing and
retrieving data) and control flow (for the different phases invovled in the manip-
ulation of the data).
Electronical book stores or online banking are example of this application type.
Developers need a good understanding of the data and control flow in their ap-
plications as needed in traditional applications. In addition, Web Applications have
more dependencies and interesting relations such as the navigation links between the
different pages of Web Application.
3 Web Engineering
Today’s web application are offering many services that are attractive for the users. The
taxonomy of web applications indicates that web applications are growing in complex-
ity and size. This makes developing new Web Applications and maintaining existing
Web Applications a major task.
Many people are using web applications as internet banking, online stores or online
flight reservation systems. A good web application can a competitive advantage for a
company. Many companies are depending on their web applications to stay in business.
Some companies came into business through the possibilities of the World Wide Web
(such as Amazon.com). Also the user’s are depending on the web applications they use
and the services these are offering.
Despite the importance that many Web Applications has gained for both companies
and their customers, the development process of Web Applications remains rather ad-
hoc [2, 7]. This means that there is no formal planning, testing and quality control
and assurance. In addition, the development cycle of Web Applications is shorter than
3
for traditional applications because of time-to-market requirements. This makes it not
easier to apply a systematic and disciplined development process.
Without a disciplined development process for Web-based applications we may
face serious problems in successful development and maintenance of these applica-
tions. These applications have a high probability of failure during operation. This can
cause a Web crisis [7]. This possible future Web crisis is a crisis of trust into the new
web technology. To avoid this crisis there is a need for disciplined approaches and
new methods for development, deployment and evolution of Web Applications. These
approaches should take into account among others
The continous effort to update and refine Web Applications gives rise for the term
Web Gardening. Web Application development can be considerd “continuos, with fine
grained evolution,, without spesific releases as with software”[7].
4 Architecture
An importing thing in a development process is to elaborate a stabil and sound archi-
tecture for the system to be developed. The Rational Unified Process is an architecture
centric development process. One of the evaluation crieteria for the second of four
major milestones is the establishment of an Architecure baseline [4]:
• Does the executeable architectural baseline meet not only the requirements for-
mally captured so far, but also the needs felt by the stakeholders as they view a
working baseline?
• Does the architectural baseline appear to be robust enough to withstand the con-
struction phase and the addition of features that later releases may require?
4
The point her is to show how important a sound architecture is for a software sys-
tem, and that elaborating one is a demanding task. Especially the requirement that an
architecture has to be robust enough to withstand the addition of futere features is dif-
ficult to meet with an evolutional delevelopment process for Web Applications. The
only thing a developer of Web Applications will know for sure is that the application
will change and evolve. An architecture for a Web Application must take this into
consideration.
There has been some work on Web Architecture (see i.e. [1, 2]. How can an archi-
tecture for Web Applications support the development of quality Web Applications?
In my opinion Web Developers should concentrate on some archicetcural styles that
have demonstrated their stability and soundness in practice. And, given the fact that
the development cycle of Web Applications is very short, web developers should start
with a kind of reference architecture and carefully adobt this to their particular needs
and requirements.
This definition have two implications for distributed systems like web systems:
1. It regards the interrelationships between the components, their functional roles
and the patterns of communicaton between them.
2. It regards the placement of the components across a network of computers, seek-
ing to define useful patterns for the distribution of data and workload.
5
Figure 2: Client-Server model
The Client-server modell is historically the most important architectural modell and
remains the most widely employed. A client process interacts with individual
server processes in separate host computers. Servers can be clients of other
servers.
Services provided by multiple servers A client interacts with an server that provide
a service to the client. This server interacts with other servers to provide this
service, because the servers may partion the set of objects on which the service
is based.
• The Logical View This view of the architecture addresses the functional re-
quirements of the system. The model used in this view is the design model, and
identifies design packages, subsystems and classes.
6
Figure 3: A service provided by multiple servers
• The Development View This view describes the organization of static software
modules in the development environment in terms of packaging.
• The Process View This view addresses the concurrent aspects of the system at
run-time – tasks, threads, or processess as well as their interactions.
• The Physical View This view shows how the various executables and other run-
ning components are mapped to the underlying platforms or computing nodes.
• The Use-Case View This view contains a few key use cases, that are used to
drive the discovery and design of the architecture in the early phases. In the later
phases they will be used to validate the different views of the architecture.
7
Figure 4: The 4+1 View Model of Architecture
The goals of the WWW project was to establish a shared information space through
with people and machines could communicate [1]. People intending to use this system
were located around the world. The information to be shared was ranging over many
different types, such as text documents, pictures, etc. The challange was to build a sys-
tem that would provide a universally consistent interface to this structured information.
The Web’s information surces would be distributed across the global internet. Therfore
the architecture needed to minimize the interactions with the network.
The architecture had some main concerns:
• How to deal with the latency that comes the network interactions.
• Scalability, since some resources would be particularly newsworthy and lead to
sudden spikes in access attempts.
• How to introduce a new set of functionality to an architecture htat i already wiely
deployed.
This motived the development of the Representative State Transfer (REST) archi-
tecture [1]. This architecture is an abstration of the architectural elements within a
distributed hyper media system. It has three classes of architectural elements.
Data elements In REST all data i moved to the location where it will be used. The
components communicate by transferring the a representation of the data in a
8
format matching one of an evolving set of standard data types, selected dynam-
ically based on the capabiliteis or desires of the recipient and the nature of the
data.
Processing elements The REST components are typed by their roles in an overalll
application. User agents uses a client to initiate a request and becomes the re-
cipient ofthe response. An orgnin server is the source for representations of its
resources. Other types of components are gateway’s and proxies.
Connecting elements REST uses various connector types to encapsulate the activities
of resources and transferring resource representations. All interactions are state-
less. Primary connector types are client and server. Other types of connectores
are chache, resolver and tunnel.
9
Figure 5: High Level Logical View of a Web Application
Many web pages are linked together to form a Web Application. To avoid death
links all links have to be checked rgularly.
Web Applications use the HTTP protocal as their communication medium. Since
the HTTP protocol is a stateless protocoll, the Web Application have to use tech-
niques such as Cookies or hidden fields in a web page to store the state for a
particular session.
Application pages are a mixture of HTML tags and control code. The control
code is used to personalize web pages and the HTML tags are used to format
the output of the page. When an application page is requested, a web server
is preprocessing all data from various resources and generates the final HTML
page. The developer has two opptions for developing application pages: First,
he can use Code based application pages. With this technique HTML pages are
generated fully by executable programs. Some examples of this technology are:
10
CGI and Java Servlet. Second, the developer can use templated-based applica-
tion pages. These are written with the HTML Language and extended with tags
to embed control code. Examples of this technology are PHP and Java Server
Pages (JSP).
• The Physical View The Physical view presents the mappings of the components
in the Development view to the components in the environment. Web applica-
tions have a rich environment, whicht contains the following components (see
also Figur):
– Web browsers
– Web servers
– Application servers
– Databases
– Distributes objects (i.e. Enterprise Java Beans)
The user of a Web application uses the web browser as the interface to get access
to the Web applications functionality. The browser trnasmits the user’s action to
the web server, sending the requests using the HTTP protocol. The web server
determines if the request can be fullfiled directly. Otherwise the applications
11
server must be invoked. As can be seen from figur, if the user wants to retrieve
some data from the database, the application server must be invoked. Finally, the
web server with the possible returns from the application server generates the
HTML pages that tis returned to the user.
• The Process View The Process view presents the concurrency and distribution
of process in the application.
5 Conclusions
This essay described the field of Web Applications and presented the needs for an
own engineering approach for such systems. This approach, called Web Engineering,
should have an associated architecture, that takes into account the special features and
needs for the development of Web Applications. A architectural framework for Web
Applicaitons using architecural views was presented.
References
[1] Roy T. Fielding and Richard N. Taylor. Principled design of the modern web
architecture. In ICSE 2000 Limerick Ireland, 2000.
[2] Guntram Graef and martin Gaedke. An evolution-oriented architecture for web
applications. In Second Nordic Workshop on Software Architectureb(NOSA 1999),
1999.
[3] Ahmed E. Hassan. Architecture recovery of web applications. Master’s thesis,
University of Waterloo, 2001.
[4] Grady Booch Ivar Jacobsen and James Rumbaugh. The Unified Software Develop-
ment Process. Addison Wesley, 1999.
[5] Philippe Kruchten. The 4+1 view model of architecture. IEEE Software 12(6),
12(6), 1995.
[6] Paul Clements Len Bass and Rick Kazman. Software Architecture in Practice.
Addison Wesley, 1998.
[7] S. Hansen S. Murugesan, Y. Deshpande and A. Ginige. Web engineering: A new
discipline for development of web-based systems. In Proceedings of the First ICSE
Workshop en Web Engineering, 1999.
12