Managing Volatile Functionality in Web Applications
Explore the challenges of incorporating and removing volatile functionalities in web applications post-deployment. Learn about the impact on code quality, performance, and project costs, and discover methods and techniques for efficient management. Case studies like Black Friday promotions illustrate the need for dynamic features in response to changing business requirements, emphasizing the importance of adapting to evolving web application landscapes.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Volatile Functionality in Action: Methods, Techniques and Assessment Darian Frajberg, Politecnico di Milano - Italy Mat as Urbieta, University of La Plata - Argentina Gustavo Rossi, University of La Plata - Argentina Wieland Schwinger, Johannes Kepler University - Austria 1
Introduction and motivation Continuous evolution and dynamism of current Web Applications Emergence of new requirements after deployment within maintenance stage Emergent functionalities Permanent functionalities Volatile functionalities (VFs) Impact of incorporation and removal of VFs during maintenance phase Code quality Times Costs 2
That is to say, they are repeatedly introduced and removed from an application. This type of functionalities, which arise as a response to unexpected requirements of the business layer, have the peculiarity that they eventually need to be removed due to the expiration of their commercial value. The continuous incorporation and removal of these functionalities, which we will call volatile functionalities (VFs), usually has a negative impact on some important aspects of the Web application. This occurs because usually the task is carried out manually and is quite prone to errors. Therefore, both the quality of the application code as well as its performance are harmed, requiring extra work for the developers during the maintenance stage, and probably a project cost overrun. It is well worth mentioning that VFs can be extremely complex and involve changes in all the appli- cation layers (business layer, navigation layer and presentation layer). A clear example can be seen in the Web applications of companies engaged in online commercialization of products and services. The Black Friday launched by Amazon.com case is a marketing term employed to refer to the day following Thanksgiving in the United States, but has been adopted worldwide. Big companies created this event in order to encourage online shopping by applying great discounts and the same marketing strategy has been adopted for other promotion such as Cyber Monday case. Figure 1 shows the Black Friday promotions. On top of the image you can see several Black Friday banners notifying the availability of promotions. In the middle, there is a carousel showing products that have big discounts. Finally, there Example - Black Friday in Amazon is another banner with the remaining time for the promotion, and one of the adver- tised products with its corresponding discount. Fig. 1. Black Friday in Amazon.co.uk. 3 These components allow the navigation towards specific products on sale. Ama- zon s customization for Black Friday not only required the modification of Web pages through the introduction of images and links. Some other things also needed to be considered, such as the addition of new specific business rules in order to make the
Objectives Alternative implementation for Web Applications with VFs Efficient support for the management of VFs Analysis of possible methods and techniques for the implementation with different technologies Development of prototypes Assessment 4
VF Framework Conceptual and technological Framework Permits to improve the lifespan of VFs in Web Applications Automates the processes of activation and deactivation of VFs Based on two main principles Decoupling of VFs from the original application Possibility to schedule the activation and deactivation of VFs 5
Features required for supporting VF approach Weaving approach Business model enhancement Navigation model enhancement Presentation model enhancement Lifespan management 7
Weaving approach Transparent seamless integration between Core Application and VFs Weaving mechanism 8
Weaving approach Alternatives Strategy Applicability conditions Implementation example Static Static type binding Maven Dynamic Dynamic type binding Reflection 9
Business model enhancement Injection of variables and relationships Object-Relational Mapping (ORM of variables and relationships) Injection of methods Modification of methods 10
Navigation model enhancement Injection of dependencies Injection of methods Modification of methods 11
Business & Navigation model enhancement Alternatives Strategy Applicability conditions Implementation example Aspect-Oriented Programming (AOP) Methods interception AspectJ, PHANtom Regex modifications Interpreted code execution Pharo native support 12
Presentation model enhancement Visualization of modifications dependent on VF s state SALE VF ACTIVATED 13
Presentation model enhancement Visualization of modifications dependent on VF s state SALE VF DEACTIVATED 14
Presentation model enhancement Alternatives Strategy Applicability conditions Implementation example Documents transformation Document-based UI XSLT Aspect-Oriented Programming (AOP) Methods interception AspectJ, PHANtom Regex modifications Interpreted code execution Pharo native support 15
Lifespan management Event scheduler Events scheduling Temporal events Business events Temporal business events 16
Lifespan management Event scheduler Events scheduling Temporal events Business events Temporal business events Activate on 10/06/2016 12:00 AM 17
Lifespan management Event scheduler Events scheduling Temporal events Business events Temporal business events Deactivate when productA.stock = 0 18
Lifespan management Event scheduler Events scheduling Temporal events Business events Temporal business events Activate on 10/06/2016 12:00 AM when productB.stock < 100 19
Lifespan management Alternatives Strategy Applicability conditions Implementation example Rules-engine based Mature enterprise solutions Drools Scheduler and AOP based Restricted development kit Quartz 20
Smalltalk prototype Sushi store Web Application sample with two VFs: Discount 3x2 promotion Implementation: Weaving approach: Dynamic weaving with Reflection Business & Navigation model enhancement: AOP with PHANtom & Regex modifications Presentation model enhancement: Regex modifications Lifespan management: Scheduler and AOP based White box Framework for VFs management 21
Java Prototype Hotel booking Web Application sample with two VFs: Long weekend promotion Notification Implementation: Weaving approach: Static weaving with Maven Business & Navigation model enhancement: AOP with AspectJ Presentation model enhancement: Documents transformation with XSLT Lifespan management: Drools rules engine 22
Assessment experiment Assess software quality and developers perception of the development process for VFs removal VF approach vs. Ad-hoc approach Independent groups of participants Ad-hoc approach: 17 VF approach: 14 23
Assessment results a) Is Ad-hoc approach more prone to have application external quality issues? Users that left perceivable changes 76% 0% Ad-hoc approach VF approach 24
Assessment results b) Is application s internal quality more negatively affected by Ad-hoc approach than VF approach? Users that left unnatended changes at model and controller layers 94.1% 0% Ad-hoc approach VF approach 25
Assessment results c) Does VF approach requires less time than Ad-hoc approach? Average time 5h 12min 54 min Ad-hoc approach VF approach 26
Assessment results d) Is the developers confidence affected by VF approach? VF approach is than Ad-hoc approach (*) Less stable Equally stable More stable 14% 29% 57% (*) Answered just by VF approach group 27
Assessment results d) Is the developers confidence affected by VF approach? Average testing cycles required 10 or more 1 Ad-hoc approach VF approach 28
Conclusions Clear need to count with an alternative to deal with the emergence of VFs within Web Applications The proposed approach provides solutions to cover the whole life-cycle of VFs in Web applications VF approach can be useful and applied in a wide range of applications VF Framework has been taken into practice and has been satisfactorily proved with the implementation of prototypes The use of VF Framework during the experiment showed to: Avoid introducing errors Save time and effort Improve the developers experience Be accepted by impartial developers 29
Future work Development of more prototypes with different technologies Deeper analysis on the impact of VFs on persistence layer and database Consolidation of a solid and mature Framework that can be positioned and used by the community Implementation of tools for users to create their own activation and deactivation rules easily 30
Q & A 31