This document summarizes a survey paper on design patterns for improving web application quality and performance. It discusses how design patterns address common object-oriented design problems and can improve quality attributes like reliability, usability, security, and performance attributes like response time and throughput. The paper reviews related works that used design patterns like MVC, DAO, decorator pattern to improve aspects like maintainability, flexibility, fault tolerance for web applications. It evaluates design patterns based on quality and performance metrics and concludes that appropriate use of creational, structural and behavioral patterns along with MVC can help realize improved quality and performance.
Iaetsd a survey of various design patterns for improving quality and
1. A Survey of Various Design Patterns for Improving Quality and
Performance of Web Applications Design
Md Umar Khan
Associate Professor, Computer Science and Engineering Dept.
Prakasam Engineering College
Kandukur, A.P, India
v.umar2003@gmail.com
Dr T.V. Rao
Professor& HOD in CSE Department
PVP Siddartha Institute of Technology
Kanuru, Vijayawada, AP, India
tv_venkat@yahoo.com
Prof. A. Ananda Rao
Director Industrial Relations & Placements
JNTUA, Ananthapuramu, A.P., India
akepogu@yahoo.co.in
Abstract
The last decade has witnessed an increasing usage of design patterns in web application design for improving quality
and performance. Web application developers have been using creational, behavioral and structural design patterns
since they are based on design principles. Recurring object oriented design problems are addressed by the design
patterns. A design pattern, when used appropriately, is capable of improving quality and performance of a web
application. Providing a coherent study and presentation of such design patterns would certainly help web
application developers in appropriate usage of design patterns. In this paper we survey various design patterns for
developing web applications. Understanding design patterns properly developers can avoid reinventing the wheel by
reusing them. We also provide an evaluation of existing design patterns based on quality and performance metrics.
Index Terms - Design patterns, web application design, web application quality, web application performance
I. INTRODUCTION
Design patterns is a proven solution for frequently
occurring design problems. So design patterns play an
important role in web application design. Such
patterns when used appropriately can improve quality
and performance of web application design. Gamma et
al. [1] and Buschmann et al. [2] observed that design
patterns are reusable software components that can
solve a particular design problem. Design patterns
enable reusability of expert design experiences to stop
reinvent the wheel and solve recurring design
problems [39], [40], [41], [42], [43]. According to
Patil et al. [4] high latency should be the important
characteristic of modern web applications. Towards
achieving high latency they proposed proxy cache to
access large scale web applications. Caching is
generally used when multiple queries have same
payload [5]. Commercial web browsers are making
use of this feature and by becoming cache-friendly [6].
The main architectural design pattern which is widely
used for web application development is MVC (Model
View Controller). Along with MVC other design
patterns are used such as DTO, DAO, and decorator
design pattern. Various categories of patterns are used
in the process of web application development. There
are many attributes that can characterize quality and
performance of web applications. They include
response time, throughput, availability, and cost,
security, reliability, scalability, extensibility.
The remaining other parts of this paper are as follows.
Section II reviews related works that provide insights
into the present state of the art of usage of design
patterns for web application development. Section III
INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN ENGINEERING RESEARCH, ICCTER - 2014
INTERNATIONAL ASSOCIATION OF ENGINEERING & TECHNOLOGY FOR SKILL DEVELOPMENT www.iaetsd.in
249
ISBN: 378-26-138420-01
2. discusses the quality and performance attributes that
can be realized using design patterns while section IV
concludes the paper.
II. RELATED WORKS
David Parsons [3] studied evolving architectural
patterns for web applications such as auto-completion
architecture, delta management architecture, and client
side buffering. Kwon and Bang [7] proposed a design
method for web application that improves scalability
and flexibility. They implemented business logic in
JSP file and reusable Servlet for SQL related search.
They have also implemented a forward servlet which
can prevent restarting web server and prevent
maintenance problems. Mustafa Mamawala [8] studied
on web application performance over a period of time.
They observed the deterioration of performance when
it lacks performance tuning as part of the framework.
QoS requirements such as security, manageability,
scalability, and availability are to be considered in the
design of web application for performance. Schwabe
et al. [9] studied on cohesive web application design
by identifying patterns, and separating concerns. They
proposed a framework known as Object Oriented
Hypermedia Design Model (OOHMD) for web
application design which focuses on conceptual,
navigational and interface design models. They
worked on recommendation patterns, push
communication for personalization. Carreras et al. [10]
proposed bottom-up design patterns that are used for
building energy web with combination of innovative
communication and information technologies. Its main
focus is to have self-organizing components with
continuous evaluation.
Chang and Hon [11] proposed navigational structures
for assessing the quality of web applications. They
applied statistical testing theory to Totavia search
engine web site which proved to be effective. Thung et
al. [12] studied design patterns for improving quality
and performance of web applications. They compared
both architectural and navigational design patterns and
proposed suitable design patterns for a school web
site. The architectural patterns they analyzed include
MVC known as Model View Controller, and PAC
known as Presentation Abstraction Control. They also
studied different navigational patterns such as set-
based navigation, pagination, news, and navigation
strategy and navigation observer. The MVC pattern
makes web application maintainable and scalable [17].
The PAC pattern makes it highly interactive and
modular. Navigation observer records visited links to
help navigation history. Thus it makes navigation
easier, and decouples navigation and recording
processes [13]. Navigation strategy computes link
endpoints while navigating to help algorithms take
best navigation paths. It also reduces memory usage.
News design pattern accommodates new information
to be incorporated into web site with ease [14].
Pagination design pattern improves performance while
viewing search results. Set based navigation groups
related items for convenience and rich user experience
[15].
Rossi et al. [16] proposed architecture for improving
WIS known as Web Information Systems with
navigational patterns. The navigational patterns they
studied for the purpose include node in context, active
reference, shopping basket, landmark, news and set-
based navigation. Landmark pattern helps users to
have consistent cue about important interface.
Shopping basket pattern is similar to providing
bookmarks or it is similar to shopping cart that is used
in shopping malls in the real world. Node in context
pattern customizes object representation as per the
context. Active reference pattern defines and
maintains indexes in the form of active orientation
tools for better navigation. Yi Li and Kevin Lü [19]
proposed architecture for improving web database
access. They suggested connection pooling to improve
performance of web application. Connection pooling
provides a set of pre-established connections to
application which eliminates scarcity of connections
and promotes scalability of web applications.
Lorna Uden [20] studied on design process for web
applications. However, it is essential to capture right
requirements for the success of web application
besides using UI models like RMM (Relationship
Management Methodology) and OOHDM. Srikanth
and Savithri [21] proposed a new architecture for
improving web applications quality using design
patterns. Towards it, they combined many existing
design patterns in an efficient manner. The set of
patterns they combined along with MVC include
template method, dependency injection pattern,
inversion of control pattern, Database Access Objects
(DAO) pattern, and aspect proxy pattern. An Liu et al.
[22] observed that fault – tolerance is very important
in web services composition. Web applications might
interact with web applications in enterprise
applications. They proposed a fault tolerant framework
for transactional web services. The framework
includes high level strategies for exception handling
and transaction techniques. The attributes of the
framework include reusability, portability,
convenience, and economy. Dong et al. [23] studied
the process of identification of design patterns in UML
models. They developed a tool that will visualize
design patterns existed in UML model of a web
application.
INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN ENGINEERING RESEARCH, ICCTER - 2014
INTERNATIONAL ASSOCIATION OF ENGINEERING & TECHNOLOGY FOR SKILL DEVELOPMENT www.iaetsd.in
250
ISBN: 378-26-138420-01
3. Smith [24] emphasized the use of AJAX technology to
be part of web application design to provide rich user
experience. Cane [25] studied the problem of
measuring performance of web applications. His main
focus was on latency as a measure. According to
Garrido et al. [28] a layered approach using design
patterns can improve the usability of web applications.
Such layered approach also makes the applications
maintainable. Taleb et al. [30] presented a patterns
oriented design approach for web application
development. The categories of design patterns they
focused include information architecture design
patterns, page layout and user interface design
patterns, navigation design patterns, interaction design
patterns, information visualization design patterns,
interoperability and system design patterns. They have
identified that developers have no in-depth knowledge
about the type of patterns to be used to solve various
design problems.
Leff and Rayfield [36] proposed a flexible web
application partitioning based on MVC architecture for
improving performance. They also studied various
deployment scenarios that can be supported without
the need for changing source code. As per their design
repartitioning web application also does not incur cost.
Lucca et al. [37] proposed a mechanism to identify the
design patterns implemented in a web application
automatically. They used reverse engineering
techniques to discover patterns in web application.
Their work enabled to know whether typical design
patterns are used in application and take necessary
decisions to redesign it. Tammet et al. [38] proposed a
rule-based approach for systematic application
development with web based interface. They separated
user interface and business logic so as to make the
application maintainable. They implemented a rule
server which manages business rules while the
application’s BL layer adapts to the latest business
rules without the need for modifying source code.
Muñoz-Arteaga et al. [44] studied design patterns for
interactive web application from the perspective of
classification of security feedback. Their effort was to
find equilibrium between security and usability of web
application development. YONG-JUN and LI KE-XI
[45] proposed a framework for web application
development which provides basic building blocks
that make use of best practices such as design patterns
to reuse software components. Their framework is
characterized by DTO (Data Transfer Object) for
parameter passing, Database Access Objects (DAOs),
connection pool, and SQL processor. All the patterns
are used within the confines of MVC architectural
pattern. Kerji [46] proposed the best use of decorator
design pattern to adapt to changing requirements of
end users who need different kinds of information in
the form of XML. Their approach promoted
reusability of code and besides reducing maintenance
costs.
III. QUALITY AND PERFORMANCE
ATTRIBUTES
Jeff Offutt [18] studied on quality of web applications
and observed that reliability, usability and security are
the most important quality attributes for the success of
web applications. Other quality attributes include
availability, scalability, maintainability, and time-to-
market. Design patterns are proven industry best
practices that improve the quality attributes of
applications making them more maintainable [26].
Bernardi et al. [27] observed that pattern based
development of web applications can improve quality
attributes resulting in reusability and maintainability.
Especially they proposed mechanisms for semi-
automatic redesign to improve quality of existing web
applications. To redesign applications they used Java
Server Faces (JSF) framework along with MVC
architectural pattern.
Ricca [29] studied web application development
closely and opined that the web application quality is a
multidimensional attribute which includes
performance, accessibility, usability, maintainability,
reliability, correctness and conformance to standards.
Yand and Chen [31] presented a framework by name
ISPWAD which enables security of web applications
besides improving performance. Design issues with
regard to security are to be considered while
developing web applications. The security issues to be
considered include access control, SQL injection,
Session hijacking, Information disclosure, Hidden
field tampering. Design issues with respect to
performance include time taken for accessing web
page, time taken for making DML (Data Manipulation
Language) operations on database. Menasce and
Almeida [32] define parameters for performance of
web application. They include response time,
throughput, availability, and cost. Response time is the
time taken to respond to queries. Throughput is the
rate of processing requests. Availability refers to the
time in which services of web applications are
available. Cost refers to some kind of performance
such as price performance ratio. Besides these
attributes some other attributes like security,
reliability, scalability, extensibility can characterize
Quality of Service (QoS) of a web application [32],
[33], [34], 35].
CONCLUSIONS
In this paper we provided the usage of design patterns
for improving quality and performance of web
application development. From the survey of literature
INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN ENGINEERING RESEARCH, ICCTER - 2014
INTERNATIONAL ASSOCIATION OF ENGINEERING & TECHNOLOGY FOR SKILL DEVELOPMENT www.iaetsd.in
251
ISBN: 378-26-138420-01
4. it is understood that MVC is the common thread in all
architectures proposed for web application
development. However, many other design patterns
can be used along with MVC. They include decorator
design pattern, DTO, DAO and so on. In fact usage of
many design patterns is based on the application in
hand. Thus it can be said that along with MVC
creational patterns, structural patterns, and behavioral
patterns proposed by GOF can be used appropriately
on demand. A variety of navigational patterns are
widely used in web application development. AJAX is
given paramount importance in modern web
application development and architectural patterns
should have a place for its usage. Patterns dealing with
dynamic web content presentation through XML are
essential. Finally it is to be born in mind that quality
and performance of a web application can be realized
through the use of design patterns.
REFERENCES
[1] Gamma, E., Helm, R., Johnson, R., and Vlissides,
J. Design Patterns: Elements of Reusable Object-
Oriented Software, Addison-Wesley, Reading, Mass.,
1995.
[2] Buschmann, F., Meunier, R., Rohnert, H.,
Sommerlad, P., and Stal, M. Pattern-Oriented
Software Architecture: A System of Patterns, Wiley,
Chichester, 1996.
[3] David Parsons, “Evolving Architectural Patterns
For Web Applications”.
[4]. Prof. S B Patil1, Mr. Sachin Chavan2, Prof. Preeti
Patil3, Prof. Sunita R Patil4. (2012). HIGH QUALITY
DESIGN TO ENHANCE AND IMPROVE
PERFORMANCE OF LARGE SCALE WEB
APPLICATIONS. IEEE. 0 (0), p1-8.
[5] Ngamsuriyaroj, S. ; Rattidham, P. ; Rassameeroj, I.
; Wongbuchasin, P. ; Aramkul, N. ; Rungmano, S.
“Performance Evaluation of Load Balanced Web
Proxies” IEEE, 2011.
[6] S B Patil, Sachin Chavan, Preeti Patil; “High
Quality Design And Methodology Aspects To
Enhance Large Scale Web Services”, International
Journal of Advances in Engineering & Technology,
2012, ISSN : 2231-1963
[7] OhSoo Kwon and HyeJa Bang. (2012). Design
Approaches of Web Application with Efficient
Performance in JAVA. IEEE. 11 (7), p1-7.
[8] Mustafa Mamawala. (n.d). Web Application
Performance Tuning -A systematic approach. IEEE. 0
(0), p1-11.
[9] Daniel Schwabe and Robson Mattos Guimarães.
(n.d). Cohesive Design of Personalized Web
Applications. IEEE. 0 (0), p1-10.
[10] Iacopo Carreras. (2010). Bottom-Up Design
Patterns and the Energy Web. IEEE. 40 (4), p1-10.
[11] Wen-Kui Chang and Shing-Kai Hon. (n.d).
Assessing the Quality of Web-Based Applications via
Navigational Structures. IEEE. 0 (0), p1-9.
[12] Phek Lan Thung, Chu Jian Ng, Swee Jing Thung,
Shahida Sulaiman. (n.d). Improving a Web
Application Using Design Patterns. IEEE. 0 (0), p1-6.
[13] G. Rossi, A. Garrido, and S.Carvalho, “Design
Patterns for Object-Oriented Hypermedia
Applications,” Pattern Languages of Program Design,
vol. 2, chapter 11, pp.177-191, Vlissides, Coplien y
Kerth editors, Addison-Wesley, 1996.
[14] G. Rossi, D. Schwabe, and F. Lyardet,
“Improving Web Information Systems with
Navigational Patterns,” Proc. of the Eighth
International World Wide Web Conference, 1999.
[15] G. Rossi, D. Schwabe, and F. Lyardet, “Patterns
for Designing Navigable Information Spaces,” Proc. of
PloP, 1999.
[16]. Gustavo Rossi b,1,2, Daniel Schwabe, Fernando
Lyardet b,1. (n.d). Improving Web information
systems with navigational patterns. IEEE. 0 (0), p1-12.
[17]. Avraham Leff, James T. Rayfield IBM T. J.
Watson Research Center. (n.d). Web-Application
Development Using the ModelNiewlController Design
Pattern. IEEE. 0 (0), p1-10.
[18]. Jeff Offutt Information & Software Engineering.
(n.d). Web Software Applications Quality Attributes.
IEEE. 0 (0), p1-11.
[19]. Yi Li, Kevin Lü. (n.d). Performance Issues of a
Web Database. IEEE. 0 (0), p1-10.
[20]. Lorna Uden Staffordshire University. (n.d).
Design Process for Web Applications. IEEE. 0 (0), p1-
9.
[21]. J.Srikanth1, R.Savithri2. (n.d). A NEW
APPROACH FOR IMPROVING QUALITY OF
WEB APPLICATIONS USING DESIGN
PATTERNS. IEEE. 3 (0), p1-5.
[22]. An Liu, Qing Li, Senior Member, IEEE,
Liusheng Huang, and Mingjun Xiao. (2010). FACTS:
A Framework for Fault-Tolerant Composition of
Transactional Web Services. IEEE. 3 (1), p1-14.
[23]. ing Dong,Sheng Yang,Kang Zhang. (2007).
Visualizing Design Patterns in Their Applications and
Compositions. IEEE. 33 (7), p1-21.
[24]. Keith Smith. (n.d). Simplifying Ajax-Style Web
Development. IEEE. 0 (0), p1-4.
[25] John W. Cane. (n.d). Measuring Performance of
Web Applications: Empirical Techniques and Results.
IEEE. 0 (0), p1-10.
[26] R. J. E. Gamma, R. Helm and J. Vlissides. Design
Patterns: Elements of Reusable Object-Oriented
Software. Addison-Wesley, 1995.
[27]. Mario Luca Bernardi1, Giuseppe Antonio Di
Lucca2 and Damiano Distante3. (2010). Improving the
Design of ExistingWeb Applications. IEEE. 0 (0), p1-
6.
INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN ENGINEERING RESEARCH, ICCTER - 2014
INTERNATIONAL ASSOCIATION OF ENGINEERING & TECHNOLOGY FOR SKILL DEVELOPMENT www.iaetsd.in
252
ISBN: 378-26-138420-01
5. [28]. Alejandra Garrido', Gustavo Rossi' and Damiano
Distante2. (n.d). Model Refactoring in Web
Applications. IEEE. 0 (0), p1-8.
[29]. Filippo Ricca. (n.d). Analysis, Testing and Re-
structuring of Web Applications. IEEE. 0 (0), p1-5.
[30]. M. Taleb,A. Seffah,A. Abran. (n.d). Patterns-
Oriented Design Applied to Cross-Platform Web-
based Interactive Systems. IEEE. 0 (0), p1-6.
[31] Shin-Jer Yang and Jia-Shin Chen. (n.d). A Study
of Security and Performance Issues in Designing Web-
based Applications. IEEE. 0 (0), p1-6.
[32] Daniel A. Menasce and Virgilio A. F. Almeida.
Capacity Planning for Web Services: metrics, models,
and methods. Prentice Hall PTR, Upper Saddle River,
NJ, USA, 2001.
[33] Daniel A. Menasce. QoS Issues inWeb Services.
IEEE Internet Computing, 6(6):72{75, 2002.
[34] Daniel A. Menasce. Response-Time Analysis of
Composite Web Services. IEEE Internet Computing,
8(1):90{92, 2004.
[35] Daniel A. Menasce, Virgilio A. F. Almeida, and
Lawrence W. Dowdy. Per-formance by Design:
Computer Capacity Planning By Example. Prentice
Hall PTR, Upper Saddle River, NJ, USA, 2004.
[36] Avraham Leff, James T. Rayfield. (n.d). Web-
Application Development Using the
ModelNiewlController Design Pattern. IEEE. 0 (0),
p1-10.
[37]. Giuseppe Antonio Di Lucca*, Anna Rita
Fasolino°, Porfirio Tramontana°. (n.d). Recovering
Interaction Design Patterns in Web Applications.
IEEE. 0 (0), p1-9.
[38] Tanel Tammet, Hele-Mai Haav, Vello Kadarpik,
and Marko Kääramees. (n.d). A Rule-Based Approach
to Web-Based Application Development. IEEE. 0 (0),
p1-7.
[39] F. Buschmann, R. Meunier, H. Rohnert, P.
Sommerlad, and M. Stal, Pattern-Oriented Software
Architecture: A System of Patterns. John Wiley &
Sons, 1996.
[40] J.O. Coplien and D.C. Schmidt, Pattern
Languages of Program Design. Addison-Wesley, 1995
[41] M. Fowler, Analysis Patterns: Reusable Object
Models. Addison-Wesley, 1997.
[42] E. Gamma, R. Helm, R. Johnson, and J. Vlissides,
Design Patterns, Elements of Reusable Object-
Oriented Software. Addison-Wesley, 1995.
[43] W. Pree, Design Patterns for Object-Oriented
Software Development. Addison-Wesley, 1995.
[44] Jaime Muñoz-Arteaga. (n.d). A Classification of
Security Feedback Design Patterns for Interactive Web
Applications. IEEE. 0 (0), p1-6.
[45] LIU YONG-JUN1 ,LI KE-XI 2. (n.d). DESIGN
AND IMPLEMENTATION OF THE NEW WEB
APPLICATION FRAMEWORK--JEMSF. IEEE. 0
(0), p1-4.
[46] Vijay K Kerji. (n.d). Decorator Pattern with XML
in Web Application. IEEE. 0 (0), p1-5.
INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN ENGINEERING RESEARCH, ICCTER - 2014
INTERNATIONAL ASSOCIATION OF ENGINEERING & TECHNOLOGY FOR SKILL DEVELOPMENT www.iaetsd.in
253
ISBN: 378-26-138420-01