Iaetsd a survey of various design patterns for improving quality and

Page 1

ISBN: 378-26-138420-01

INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN ENGINEERING RESEARCH, ICCTER - 2014

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 payload [5]. Commercial web browsers are making use of this feature and by becoming cache-friendly [6].

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

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 ASSOCIATION OF ENGINEERING & TECHNOLOGY FOR SKILL DEVELOPMENT

249

www.iaetsd.in


ISBN: 378-26-138420-01

INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN ENGINEERING RESEARCH, ICCTER - 2014

discusses the quality and performance attributes that can be realized using design patterns while section IV concludes the paper.

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 setbased 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.

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.

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.

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 setbased 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

INTERNATIONAL ASSOCIATION OF ENGINEERING & TECHNOLOGY FOR SKILL DEVELOPMENT

250

www.iaetsd.in


ISBN: 378-26-138420-01

INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN ENGINEERING RESEARCH, ICCTER - 2014

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 ATTRIBUTES

AND

PERFORMANCE

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-tomarket. 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 semiautomatic 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 ASSOCIATION OF ENGINEERING & TECHNOLOGY FOR SKILL DEVELOPMENT

251

www.iaetsd.in


ISBN: 378-26-138420-01

INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN ENGINEERING RESEARCH, ICCTER - 2014

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.

[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), p19. [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), p16.

REFERENCES [1] Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns: Elements of Reusable ObjectOriented 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.

INTERNATIONAL ASSOCIATION OF ENGINEERING & TECHNOLOGY FOR SKILL DEVELOPMENT

252

www.iaetsd.in


ISBN: 378-26-138420-01

INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN ENGINEERING RESEARCH, ICCTER - 2014

[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 Restructuring of Web Applications. IEEE. 0 (0), p1-5. [30]. M. Taleb,A. Seffah,A. Abran. (n.d). PatternsOriented Design Applied to Cross-Platform Webbased 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 Webbased 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). WebApplication 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 ObjectOriented 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 ASSOCIATION OF ENGINEERING & TECHNOLOGY FOR SKILL DEVELOPMENT

253

www.iaetsd.in


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.