Web based legacy system componentization



Similar documents
Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

What Is the Java TM 2 Platform, Enterprise Edition?

Distributed Objects and Components

Java Technology in the Design and Implementation of Web Applications

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

Lightweight Data Integration using the WebComposition Data Grid Service

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

IBM Rational Web Developer for WebSphere Software Version 6.0

Software Engineering: Analysis and Design - CSE3308

Modeling Web Applications Using Java And XML Related Technologies

Component Based Software Engineering: A Broad Based Model is Needed

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

A review and analysis of technologies for developing web applications

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Design Metrics for Web Application Maintainability Measurement

What do you think? Definitions of Quality

zen Platform technical white paper

Explicit Connectors in Component Based Software Engineering for Distributed Embedded Systems. Dietmar Schreiner and Karl M.

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Service Oriented Architectures

Web Cloud Architecture

A Management Tool for Component-Based Real-Time Supervision and Control Systems

Comparison of Software Development Productivity by EJB Versions with Enterprise of Standardization

Common Criteria For Information Technology Security Evaluation

JAVA Technologies QUARTER 1 DESKTOP APPLICATIONS - ESSENTIALS QUARTER 2 NETWORKING AND OPERATING SYSTEMS ESSENTIALS. Module 1 - Office Applications

Software Component Specification Using Design by Contract

PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS

Curl Building RIA Beyond AJAX

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

OpenText Information Hub (ihub) 3.1 and 3.1.1

Distributed systems. Distributed Systems Architectures

Credits: Some of the slides are based on material adapted from

A Software Engineering Process for Operational Space Weather Systems. S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies

Net Developer Role Description Responsibilities Qualifications

SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS

Cache Database: Introduction to a New Generation Database

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

Distributed Systems and Recent Innovations: Challenges and Benefits

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

Percerons: A web-service suite that enhance software development process

Reusability of WSDL Services in Web Applications

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

i-questionnaire A Software Service Tool for Data

Web Application Architectures

Software Development Kit

Object Oriented Design

Business Process Execution Language for Web Services

The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15

Service Component Architecture for Building Cloud Services

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Further we designed a management system on the basis of our proposed architecture that supports basic management functions.

22C:22 (CS:2820) Object-Oriented Software Development

Towards a New Methodology for Developing Web-Based Systems

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

ABSTRACT INTRODUCTION SOFTWARE DEPLOYMENT MODEL. Paper

SOA Myth or Reality??

Software Engineering. So(ware Evolu1on

XFlash A Web Application Design Framework with Model-Driven Methodology

Putting the power of Web 2.0 into practice.

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

The leading platform for Model Driven Architecture (MDA) Content:

An Overview of Challenges of Component Based Software Engineering

Alice. Software as a Service(SaaS) Delivery Platform. innovation is simplicity

However, the marketplace for replaceable components is still not at sight due to many

SOFTWARE ENGINEERING PROGRAM

How to realize software evolution of existing BOSS via ZTE SEEM

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Generating Aspect Code from UML Models

Definition of a Software Component and Its Elements

Oracle Application Development Framework Overview

Integrating SharePoint Sites within WebSphere Portal

Java Project Management: Agenda

JavaFX Session Agenda

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

The Concern-Oriented Software Architecture Analysis Method

Detailed Table of Contents

How To Build A Web App

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

Transcription:

MALARDALEN UNIVERSITY, SCHOOL OF INNOVATION, DESIGN AND ENGINEERING Web based legacy system componentization Research plan Josip Maras 1.10.2009

1. Research Area My research will be performed in the areas of Component Based Software Engineering (CBSE) and Web Engineering. It will deal with component-based system refactoring in order to increase maintainability. Today s software development is characterized by continuous evolution software products are continuously updated during their usage. In most cases systems grow organically by adding new functionalities or by changing the system architecture due to new technologies or business strategies. This organic growth makes the systems more difficult to maintain and improve. Systems often lose their integrity and dependencies between different parts become uncontrollable. This is especially true for Web applications, since their development, contrary to some other domains, is not characterized by rigorous software engineering methods. The consequence is that many Web applications are poorly structured and are not adequately documented, which leads to difficult maintenance. One of the proven ways of increasing system maintainability is by software system componentization [1], i.e. by breaking down the system into smaller, more easily identifiable pieces (components) with well defined interfaces in a specific way (by following a certain component model). Software engineering discipline that deals with components, component models and componentization is called Component based Software Engineering (CBSE). CBSE is concerned with assembling applications from pre-existing components. A component is usually defined as in [2]: A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third party. Since applications are built from pre-existing components, CBSE increases system s modularity which in turn improves maintainability, system behavior predictability and enables reusability. Even dough there are strong benefits of component-based approaches in all domains, so far CBSE was not in the focus of Web Application development. In the last two decades, Web applications have made a tremendous leap forward: from simple static Web pages developed only in HTML to complex dynamic Web applications developed using server-side technologies (e.g. PHP, ASP.NET, Java) that extensively use Web services, databases and client-side technologies (e.g. JavaScript, Flash, Silverlight). Unfortunately, the development of Web applications is often seen as a one-time event and is usually based on the knowledge, experiences, and development practices of individual developers. Because of the ever growing importance of Web applications, a more systematic, rigorous approach is necessary. Traditional software engineering is usually not enough, due to particularities of Web applications. A process performed throughout the whole lifecycle of a Web application is necessary. In [3], Web Engineering is defined as: Web Engineering is the application of systematic and quantifiable approaches (concepts, methods, tools) to cost-effective requirements analysis, design, 2

implementation, testing, operation, and maintenance of high-quality Web applications. Web Engineering is also the scientific discipline concerned with the study of these approaches. 2. Research overview The goal of this research is to study and provide solutions for the transformation of Web based legacy systems to component-based systems, while increasing system maintainability and preserving extra-functional properties characteristical for Web based systems (bandwidth, response time, performance, memory and CPU usage, etc.). In this context a Web based system is a distributed application consisting of at least two separate applications: (i) a Web application used for data access and changing the business state of the system and (ii) a standard, non-web application that performs core system functionalities. This research will be based on a case study application iforestfire [4]. iforestfire is Web based legacy system developed at the University of Split, Croatia, used for forest fire monitoring. It is composed of two important parts: Fire detection application is an application responsible for forest fire detection by image/video analysis. It is a standard multi-threaded C application that gathers data from different embedded devices (cameras, meteorological stations), analyzes that data and decides whether or not there is any sign of fire. Web application acting as a user interface to the system. It enables data access and system configuration. It is developed using php, JavaScript and HTML. In order to be able to componentize a certain Web based legacy system a suitable component model has to be defined. This component model has to capture all the important characteristics of Web based systems and has to model a system on the appropriate level of abstraction. This leads to the first research question: Q1: What is an appropriate component model for distributed Web based systems? After the definition of a component model, the current legacy system (iforestfire) has to be componentized. This is used as a basis for the second research question: Q2: How can we perform componentization of legacy distributed Web based systems according to some component model? The goal of this componentization is to increase maintainability while keeping (or even improving) overall system performance. So in order to validate the results, we have to be able to compare the two systems. This goal leads to the third research question: Q3: How can we compare two functionally equal Web based systems in terms of their maintainability and performance? 3

3. Research methodology This research will be performed in the following phases: 1. Analysis of state-of-the-art and state-of-the-practice of component models (general and Web based). 2. Analysis of state-of-the-art and state-of-the-practice for maintainability and performance metrics. 3. Defining a new or extending an existing component model suitable for component based development of Web based systems. 4. Refactoring the case study application according the component model defined in step 3. 5. Defining the necessary metrics in order to be able to compare the legacy case study application with the refactored one. 4. Related work 4.1. Some of the existing component models Currently, there are many component models, some of them originating in the industry, while others in the scientific community. They can also be divided into component models targeting specific application domains (e.g. web applications, automotive industry, etc.), and general purpose component models. Some of the general purpose component models are the following: Component Object Model (COM) [5] is a platform independent, distributed object-oriented software architecture for creating and connecting binary software components, developed by Microsoft. It was one of the first attempts to increase program independence and allow programming language heterogeneity. It was extended to support distribution (DCOM) and enterprise level features (COM+). COM is superseded by the.net platform. CORBA Component Model (CCM) [6] is a component model developed in order to reduce the effort of developing and deploying CORBA applications. Components in the CCM are programming language and platform independent as long as they use the CORBA middleware. A component package in the CCM consists of compiled program code, and a CORBA component descriptor (a XML file containing information about the interfaces and the services that the component supports). JavaBeans technology [7] is a portable software component model for the Java platform. It is widely accepted and used, mostly in the desktop and Web application domains. A Java bean is a Java class that complies with conditions stated in the JavaBeans specification. The specification defines Java beans as reusable software components that can be manipulated visually in a builder tool. This is especially suitable for building graphical user interfaces (GUIs), where beans are most commonly employed. 4

Enterprise JavaBeans (EJB) [8] is a component model that extends the JavaBeans component model to support server components. EJB is primarily used for a client server model of distributed computing. The model simplifies the development of middleware by providing server support for a set of services, such as transactions, security, persistence, concurrency and interoperability. More information about these and other component models can be found in [9]. So far, Web based systems were not in the focus of CBSE academic community. Some work has been done, but the majority of component based approaches come from the industry. Some of those approaches are: Portlets [10] in Java world are distributed Web components that encapsulate Web applications. Portlets can be viewed as presentation-oriented Web Services which are packed to be delivered through third-party Web applications. ASP.NET Web Controls [11] are Web components that run on the server and that encapsulate user-interface and other related functionality. They can be composed into ASP.NET Web pages. Web Parts [12] in Microsoft SharePoint are similar to portlets, with the difference that Web Parts are built using Microsoft ASP.NET technology. Google gadgets [13] are client side Web components developed in HTML and JavaScript. They can be composed into Web pages. Microsoft Pop Fly [14] is a discontinued Microsoft mashup technology that provided a Web tool for visually combining data sources (usually Web services) and visual Web components that would display that data. It was built using the Microsoft Silverlight technology [15]. There have also been some approaches in the scientific community: WebComposition [16] is the first work trying to introduce component based ideas into Web engineering. WebComposition is based on an object-oriented model in which an application is hierarchically composed of components. Components can be either primitive (single HTML elements) or composite (created from other components). At the highest point in the hierarchy components can be entire pages, while they are usually related to certain reusable parts of the pages. AMACONT [17] allows the development of Web applications by aggregating and linking configurable document components. The components are documents or document fragments that represent adaptable content on different levels of abstraction. Component interfaces are described by metadata specifying their properties and adaptive behavior. AlCoWeb [18] is a hierarchical component model for the presentation tier of Rich Web Applications. The component model includes the following elements: components, interfaces, ports and connectors. Components are Web elements that can be either atomic (basic HTML elements) or hierarchical (composed of multiple 5

atomic components). Interfaces represent public services defined by components. Interfaces are divided into provided, required, checking or event interfaces and are realized as JavaScript functions. Ports represent a set of interfaces of the same kind that are related to the same functionality. Connectors link interfaces of different components and encapsulate interaction protocols. A tool AlCoWeb-Builder, based on Eclipse, was developed in order to support Web application development based on the AlCoWeb component model. 4.2. Application metrics In my research I will be looking for ways of increasing system maintainability while keeping system performance. So, from my point of view, the most important application metrics are: maintainability and performance. 4.2.1. Maintainability IEEE standard for software maintenance [19] defines maintenance as: The modification of a software product after delivery to correct faults, to improve performance or other attributes or to adapt the product to a modified environment. The term maintainability is used to describe the ease with which the software can be corrected, adapted or perfected [20]. So far, there is no clear way of directly measuring maintainability, but it can be evaluated by measuring some other, more tangible system properties like system modularity, system complexity, function points, etc. Maintainability has been quantified by the Maintainability index (M) in [21] as a function of directly measurable attributes. These attributes can be related to management (management practices), operational environment (in terms of hardware and software) and target software system (source code attributes, documentation attributes, software system maturity, stability, and etc.). The Maintainability Index is more related to standard (non Web-based) applications, but there have been attempts of estimating Web application maintainability based on traditional, object-oriented metrics like LOC lines of code, LCOM lack of cohesion in Methods, RFC response for classes, and etc. in [22]. This study showed that OO metrics are not suitable for estimating maintenance effort for Web applications, even dough they should be taken into account when estimating maintainability of OO Web applications. In order for the Maintenance Index to be usable in the context of Web applications, due to their inherent differences from traditional software systems, it was extended in [23] by Di Lucca et al. This extension accounted for the particularities of Web applications by including Web application attributes such as: total number of Web pages, server and client scripts, connections, Web objects and etc. Similar research has been presented in [24], where attributes used for maintainability measurements (coupling, complexity and reusability) are derived from Web application UML diagrams. 6

4.2.2. Performance Web application performance metrics [25] are typically expressed in terms of response time (R), throughput (X) and utilization (U). The response time is typically defined as the time between sending a request to the Web server and receiving a response from that Web server. Throughput states the number of requests that the server can respond to in a time unit, and utilization shows the time percentage in which the system was being used. The goal of performance analysis is aimed at determining the relationship between performance metrics, the work load (number of requests that arrive per time unit) and the performancerelevant system characteristics. Performance analysis is also often used to determine bottlenecks (system component that first reaches 100% utilization as the work load increases). 5. Community 5.1. Conferences A part of my research will be concerned with Web application component based development and Web application metrics so more specific Web Engineering conferences should be targeted. Most important ones are: ICWE (International Conference on Web Engineering) is, in my knowledge, the most important conference in Web Engineering that among other things deals with areas directly concerned with my research, like: Component based Web Engineering, Web architectures and application frameworks, Web quality and Web metrics, Performance modeling, monitoring and evaluation. WISE (International Conference on Web Information Systems Engineering) is another conference whose area is closely related to Web Engineering. From my point of view the most interesting parts are dealing with Web Metrics and Web applications in general. WWW conference, the most prestigious conference on the World Wide Web, contains a track on Web Engineering. Since my research area is in general concerned with CBSE and software metrics (especially maintainability), the following conferences are also of interest: CBSE (Component Based Software Engineering) QoSA(Quality of Software Architecture) ICSM (International Conference on Software Maintenance) CSMR(European Conference on Software Maintenance and Reengineering) WoSQ(Workshop on Software Quality) is a workshop on software quality held as a part of ICSE. 7

Also, more general software engineering and software architecture conferences are also of importance: ICSE (International Conference on Software Engineering) ESEC/FSE (European Software Engineering Conference/Foundations of Software engineering) ICSEA (International Conference on Software Engineering Advances) ASEA (Advanced Software Engineering and its Applications) WICSA (Working IEEE/IFIP Conference on Software Architecture) 5.2. Research groups As far as I was able to find, there is only one research group actively involved in the development of Web application component models, even dough there are several researches that have published articles in that domain. Those are: ONEKIN [26] is a research group on the University of the Basque Country, Spain dealing mainly with portlet engineering issues, but also with Web Application Engineering and Component Based Software Engineering. Kadri R. from the University of Alkante, France that has created a hierarchical component model for the presentation tier of Rich Web Applications (AlCoWeb). Jeewani A. Ginige from the University of Western Sydney has worked on a component model that would enable end users to develop Web applications. Florian Daniel from the University of Trento, Italy focuses on Mashups and lightweight composition on the Web. Research group focused on Web application metrics (with emphasis on maintainability) are: GIDIS group, from the National University of La Pampa, Argentina. They are active in research concerning: Quantitative Evaluation Methods for Web Sites and Applications and Web Metrics and Cataloguing. RCOST group, from the University of Sannio, especially Giuseppe A. Di Lucca. They have performed research in the areas of Web application Reverse Engineering, Maintainability and Metrics. VSR group, from the Chemnitz University of Technology, Germany. They are focused on Web engineering, especially on evolution, federation, and reuse as principles for building distributed systems, in the context of Internet and Web. 8

6. References 1. Maarten Koning. [Online] [Cited: 9 30, 2009.] http://blogs.windriver.com/koning/2006/09/components.html. 2. Szyperski, Clemens. Component Software - Beyond Object-Oriented Programming, Second Edition. s.l. : Addision-Wesley, 2002. 3. Kappel, Gerti, et al. Web Engineering - The Discipline of Systematic Development of Web Applications. s.l. : John Wiley and Sons, 2006. 4. iforestfire. iforestfire. [Online] FESB. [Cited: 9 30, 2009.] http://iforestfire.fesb.hr/. 5. Microsoft. Microsof COM. [Online] [Cited: 9 30, 2009.] http://www.microsoft.com/com/default.mspx. 6. Bolton, Fintan. Pure CORBA. s.l. : Sams Publishing, 2001. 7. Sun. JavaBeans. [Online] [Cited: 9 30, 2009.] http://java.sun.com/javase/technologies/desktop/javabeans/. 8.. Sun Enterprise JavaBeans. [Online] [Cited: 9 30, 2009.] http://java.sun.com/products/ejb/. 9. Feljan, Juraj, et al. Classification and survey of component models. s.l. : IDT Technical Report, 2009. 10. JSE168. [Online] [Cited: 9 27, 2009.] http://www.jcp.org/en/jsr/detail?id=168. 11. ASPWebControls. [Online] [Cited: 9 27, 2009.] http://msdn.microsoft.com/enus/library/aa719973%28vs.71%29.aspx. 12. WebParts Sharepoing. [Online] [Cited: 9 27, 2009.] http://msdn.microsoft.com/enus/library/hhy9ewf1.aspx. 13. Google. Google Gadgets. [Online] [Cited: 9 26, 2009.] http://www.google.com/webmasters/gadgets/guidelines.html. 14. Microsoft. PopFly. [Online] [Cited: 9 30, 2009.] http://www.microsoft.com/express/popfly/. 15.. Silverlight. [Online] [Cited: 9 30, 2009.] http://silverlight.net/. 16. WebComposition: An Object-Oriented Support System for the Web Engineering Lifecycle. Gaedke, Martin, Wicke, Robert and Gellersen, Hans-Werder. s.l. : Sixth international conference on World Wide Web, 1997. 17. Design and implementation of component-based adaptive Web presentations. Fiala, Zoltan, et al. s.l. : Proceedings of the 2004 ACM Symposium on Applied computing, 2004. 18. Building the Presentation-Tier of Rich Web Applications with Herarchical Components. Reda, Kadri and Chouki, Tibermacine. s.l. : Web Information Systems Engineering WISE 2007, Springer, 2007. 19. Std., IEEE. Standard for Software Maintenance. s.l. : IEEE Computer Society Press, 1993. 9

20. Pressman, Roger. Software Engineering A Practitioner's Approach. s.l. : McGraw-Hill International, 2000. 21. Coleman, Don, et al. Using metrics to evaluate software system maintainability. IEE Computer. 2994, Vol. vol 27, 8. 22. Using Metrics for Estimating Maintainability of Web Applications: An Empirical Study. Chae, Heung, et al. s.l. : International Conference on Computer and Information Science, 2007. 23. Towards the definition of a maintainability model for Web applications. Di Lucca, Giuseppe, et al. s.l. : CSMR - European Conference on Software Maintenance and Reengineering, 2004. 24. Design Metrics for Web Application Maintainability Measurement. Ghosheh, Emad, Black, Sue and Jihad, Qaddour. s.l. : International Conference on Computer Systems and Applications, 2008. 25. Kappel, Gerti, et al. Web Engineering: The Discipline of systematic development of Web Applications. s.l. : John Wiley & Sons, 2006. 26. Onekin. [Online] [Cited: 9 25, 2009.] http://www.onekin.org/ekinteam/. 27. Diaz, Oscar and Rodriguez, Juan. Portlets as Web Components: an Introduction. Journal of Universal Computer Science. 10, 2004, Vol. 4. 28. Sharepoint Web Parts. [Online] [Cited: 09 26, 2009.] http://msdn.microsoft.com/enus/library/e0s9t4ck.aspx. 29. Yahoo. My Yahoo. [Online] [Cited: 9 26, 2009.] http://my.yahoo.com/. 30. WCML: Paving the Way for Reuse in Object-Oriented Web Engineering. Gaedke, Martin, Segor, Christian and Hans-Werner, Gellersen. s.l. : ACM Symposium on Applied Computing, 2000. 31. Tagging-Aware Portlets. Díaz, Oscar, Pérez, Díaz and Arellano, Cristóbal. s.l. : International Conference on Web Engineering, 2009. 10