Liquid Web Applications

Total Page:16

File Type:pdf, Size:1020Kb

Liquid Web Applications Liquid Web Applications Design and Implementation of the Decentralized Cross-Device Web Doctoral Dissertation submitted to the Faculty of Informatics of the Università della Svizzera Italiana in partial fulfillment of the requirements for the degree of Doctor of Philosophy presented by Andrea Gallidabino under the supervision of Prof. Cesare Pautasso June 2020 Dissertation Committee Prof. Maristella Matera Politecnico di Milano, Italy Prof. Tommi Mikkonen University of Helsinki, Finland Prof. Marc Langheinrich Università della Svizzera italiana, Lugano, Switzerland Prof. Michele Lanza Università della Svizzera italiana, Lugano, Switzerland Dissertation accepted on 25 June 2020 Research Advisor PhD Program Director Prof. Cesare Pautasso Prof. Dr. Walter Binder, Prof. Dr. Silvia Santini i I certify that except where due acknowledgement has been given, the work presented in this thesis is that of the author alone; the work has not been submit- ted previously, in whole or in part, to qualify for any other academic award; and the content of the thesis is the result of work which has been carried out since the official commencement date of the approved research program. Andrea Gallidabino Lugano, 25 June 2020 ii Learn this lesson, that to be self-contented is to be vile and ignorant, and to aspire is better than to be blindly and impotently happy. Edwin A. Abbott iii iv Abstract Web applications are traditionally designed having in mind a server-centric ar- chitecture, whereby the whole persistent data, dynamic state and logic of the application are stored and running on a Web server. The clients running in the Web browsers traditionally render only pre-computed views fetched from the server. Nowadays this centralized approach does not fit well with the kind of interac- tions that the users perform when they connect to a Web application. The users can access the Web and fetch applications with much faster devices than the ones we owned thirty years ago. Moreover the Web can now be accessed with devices of any shape, size, and capability: ranging from desktop computers, to laptops, tablets, and smartphones. Emerging smart and embedded devices in the Internet of Things are also able to access the Web and interact with each other thanks to new emerging Web standards, such as smart televisions, smart watches, or smart cars. The diversity in the devices increased together with the average number of Web-enabled devices owned by a single user. Today the average connected users access the Web with multiple devices at the same time and expect that their appli- cations, which are now deployed on all the devices they own, can be seamlessly used on each one of them. In this dissertation we discuss liquid Web applications: software that can be deployed in a cross-device environment by exploiting the current HTML5 stan- dards. In particular we design and implement decentralized liquid Web soft- ware able to flow between different platforms. Like liquid adapts its shape to its container, liquid Web applications adapt and can be deployed on all available devices. The Web platform allows devices of different manufactures to commu- nicate, deploy, and distribute liquid applications among them, even when they do not share a common operating system. With liquid Web applications we seek to overcome the current stagnation in the traditional design of solid Web appli- cations in favor of an affordable cross-device solution. We present the history and evolution of liquid applications and discuss why the Web is the best platform for creating them. We show how to design liquid v vi software by discussing how to deploy the state, logic, and User Interface (UI) of any Web application on multiple devices. The design we present allows devel- opers to create liquid Web applications able to seamlessly flow between multiple devices following the attention of the users. We also present the Liquid.js for Polymer framework, whose goal is to simplify the creation of liquid Web appli- cations by helping developers to create their own Liquid User Experience (LUE). Our contribution in the design of liquid software presented in this dissertation is decoupled from the framework implementation and can be re-used to create new liquid frameworks. Acknowledgements Many people have helped me finish this dissertation, to whom I would like to warmly express my sincere gratitude and recognition. I cannot start this section without being grateful to my advisor Prof. Cesare Pautasso. He trusted my abilities and gave me the opportunity to work with him and finish this dissertation in the best environment I could have ever imagined. He taught me so many useful skills, some that go even beyond the scope of soft- ware design. For this reason I recognize in him a great mentor that goes beyond the educational system we live in. I will never thank you enough for helping me throughout these years, for helping me sorting my chaotic ideas, and produce the quality publications we worked on together. I am especially thankful for all the time you committed to helping me writing and present my work. I would like to thank Prof. Marc Langheinrich and Prof. Michele Lanza from USI, Prof. Maristella Matera from Politecnico di Milano, and Prof. Tommi Mikko- nen from University of Helsinki for their support. Their feedback helped me write this dissertation. I met so many competent people during this journey, many of whom I met while travelling around the world. The list is long, and it would be impossible to thank all of them, but I still carry their advices with me. All your inputs helped me shape this dissertation. A big thank-you to my colleagues Masiar Babazadeh, Vincenzo Ferme, Ana Ivanchikj, and Vasileios Triglianos for creating the best environment in our of- fice. We helped each other and we had so much fun. Especially I would like to acknowledge the help of Masiar Babazadeh, who made me discover and love the beauty of distributed Web applications during my master thesis, a love that I still nurture in my heart today. Obviously I will not forget to mention the good time we spent together the past years: drinking coffee and slaying monsters. I would also like to extend my acknowledgements to all the people I met at USI, students included. I learned so much from all of them, and they made me become a better person. I dedicate this dissertation to my family and my beloved, without their sup- vii viii port I would not be the person I am today. Finally, my last acknowledgements go to Antonov, Gigietto, Rinik, Robb, and Sithar, the true heroes of my story. Contents Contents ix List of Figures xv List of Tables xxi I Liquid Software 1 1 Introduction 3 1.1 Motivation . .3 1.2 Research Questions (RQs) . .6 1.2.1 RQ#1 - Liquid Software Design . .6 1.2.2 RQ#2 - Beyond Centralized Deployments . .7 1.2.3 RQ#3 - LUE Adaptation Among Devices . .8 1.2.4 RQ#4 - Sharing Resources Among Devices . .8 1.2.5 RQ#5 - Privacy and Security . .9 1.3 Summary and Outline . .9 1.4 Contributions and Publication Overview . 11 2 State of the Art 15 2.1 Liquid Software Metaphor . 17 2.1.1 Similar Metaphors . 20 2.2 Beyond the Liquid Metaphor . 22 2.3 Computer-Supported Collaborative Work (CSCW) . 22 2.3.1 Cross-Device Interfaces . 22 2.3.2 Human-Computer Interactions (HCI) . 24 2.3.3 Internet of Things (IoT) and Public Displays . 25 2.3.4 Mashups . 26 2.3.5 Distributed State in the Web . 27 ix x Contents 2.3.6 Offload Computations in the Web . 27 2.4 Industry Solutions . 29 2.5 Cloud . 30 3 Liquid Software Design 33 3.1 Design Considerations . 33 3.1.1 User Interface (UI) Adaptation . 33 3.1.2 Data and State Synchronization . 34 3.1.3 Client/Server Partitioning . 35 3.1.4 Security . 36 3.2 Design Space . 36 3.2.1 Topology . 38 3.2.2 Discovery . 41 3.2.3 Layering . 44 3.2.4 Granularity . 45 3.2.5 Client Deployment . 48 3.2.6 Liquid User Experience (LUE) . 49 3.2.7 Data and State . 52 3.2.8 Privacy and Security . 53 3.3 Maturity . 54 3.3.1 Maturity Model Facets . 55 3.3.2 Controller Layer deployment . 59 3.3.3 Communication channel . 60 3.3.4 Maturity Model . 61 3.3.5 Beyond Level 5 Framework . 69 II Liquid Web Architectures 71 4 Liquid Data Layer and State Synchronization 73 4.1 Communication Channels . 73 4.2 Granularity . 75 4.3 Data Flow Direction . 78 4.4 Liquid Storage . 81 5 Liquid Logic Layer and Liquid WebWorkers 85 5.1 APIs . 86 5.1.1 Liquid WebWorker Pool (LWWPool) API . 86 5.1.2 Liquid WebWorker (LWW) API . 88 5.2 Design . 89 xi Contents 5.3 Features . 92 5.3.1 Micro-Benchmark . 92 5.3.2 Failure Handling . 93 5.3.3 Task Offloading Policies . 96 5.4 Scenarios . 98 5.4.1 Single User Scenario - Editors (Image Processing) . 99 5.4.2 Single User Scenario - Public Displays . 100 5.4.3 Multiple Users Scenario - Education/Teaching Programming101 6 Liquid View Layer and Liquid Media Queries 105 6.1 Automatic Component Style Adaptation . 108 6.2 Component Deployment Redistribution . 111 6.2.1 Redistribution step . 112 6.2.2 Cloning step . 116 6.3 Liquid UI Redistribution and Cloning Algorithms . 117 6.3.1 Phase 1: Constraint-Checking and Priority Computation . 118 6.3.2 Phase 2: Migration and Cloning . 120 6.3.3 Phase 3: Component Adaptation . 122 6.3.4 Run-time Complexity .
Recommended publications
  • Detecting and Exploiting Misexposed Components of Android Applications
    POLITECNICO DI TORINO Corso di Laurea in Ingegneria Informatica Tesi di Laurea Magistrale Detecting and exploiting misexposed components of Android applications Relatori prof. Antonio Lioy prof. Ugo Buy Francesco Pinci December 2018 To my parents, my sister, and my relatives, who have been my supporters throughout my entire journey, always believing in me, and providing me with continous encouragement. This accomplishment would not have been possible without them. Thank you. Summary Smartphones and tablets have become an essential element in our everyday lives. Everyone use these devices to send messages, make phone calls, make payments, manage appointments and surf the web. All these use cases imply that they have access to and collect user sensitive information at every moment. This has attracted the attention of attackers, who started targetting them. The attraction is demon- strated by the continuous increase in the sophistication and number of malware that has mobile devices as the target [1][2]. The Android project is an open-source software which can be downloaded and studied by anyone. Its openness has allowed, during the years, an intensive in- spection and testing by developers and researches. This led Google to constantly updating its product with new functionalities as well as with bug fixes. Various types of attacks have targetted the Android software but all of them have been mitigated with the introduction of new security mechanisms and extra prevention methods. Starting from September 2018, 16 major versions of the OS have been realized, reducing incredibly the attack surface exposed by the system. The application ecosystem developed by the Android project is a key factor for the incredible popularity of the mobile devices manufactured and sold with the OS.
    [Show full text]
  • THE FUTURE of SCREENS from James Stanton a Little Bit About Me
    THE FUTURE OF SCREENS From james stanton A little bit about me. Hi I am James (Mckenzie) Stanton Thinker / Designer / Engineer / Director / Executive / Artist / Human / Practitioner / Gardner / Builder / and much more... Born in Essex, United Kingdom and survived a few hair raising moments and learnt digital from the ground up. Ok enough of the pleasantries I have been working in the design field since 1999 from the Falmouth School of Art and onwards to the RCA, and many companies. Ok. less about me and more about what I have seen… Today we are going to cover - SCREENS CONCEPTS - DIGITAL TRANSFORMATION - WHY ASSETS LIBRARIES - CODE LIBRARIES - COST EFFECTIVE SOLUTION FOR IMPLEMENTATION I know, I know, I know. That's all good and well, but what does this all mean to a company like mine? We are about to see a massive change in consumer behavior so let's get ready. DIGITAL TRANSFORMATION AS A USP Getting this correct will change your company forever. DIGITAL TRANSFORMATION USP-01 Digital transformation (DT) – the use of technology to radically improve performance or reach of enterprises – is becoming a hot topic for companies across the globe. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-02 Companies face common pressures from customers, employees and competitors to begin or speed up their digital transformation. However they are transforming at different paces with different results. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-03 Successful digital transformation comes not from implementing new technologies but from transforming your organisation to take advantage of the possibilities that new technologies provide.
    [Show full text]
  • A World of Active Objects for Work and Play: the First Ten Years of Lively
    A World of Active Objects for Work and Play The First Ten Years of Lively Daniel Ingalls Tim Felgentreff Robert Hirschfeld Y Combinator Research Hasso Plattner Institute Hasso Plattner Institute, Potsdam, San Francisco, CA, USA Potsdam, Germany Germany [email protected] [email protected] [email protected] Robert Krahn Jens Lincke Marko Roder¨ Y Combinator Research Hasso Plattner Institute Y Combinator Research San Francisco, CA, USA Potsdam, Germany San Francisco, CA, USA [email protected] [email protected] [email protected] Antero Taivalsaari Tommi Mikkonen Nokia Technologies Tampere University of Technology Tampere, Finland Tampere, Finland [email protected] tommi.mikkonen@tut.fi Abstract Keywords Web programming, Software as a Service, Live The Lively Kernel and the Lively Web represent a continu- Object System, Lively Kernel, Lively Web, Lively, JavaScript, ing effort to realize a creative computing environment in the Morphic context of the World Wide Web. We refer to that evolving system simply as Lively. Lively is a live object computing 1. Live Object Systems environment implemented using JavaScript and other tech- Lively [12] is a live object system which provides a web niques available inside the browser. When first built in 2006, programming and authoring system to its users. By live ob- it was a grand accomplishment to have created such a sys- jects we mean entities that can usually be seen, touched, and tem that would run in any web browser and that could be moved and that will react in a manner prescribed by some set saved and loaded simply as a web page.
    [Show full text]
  • IADIS Conference Template
    www.seipub.org/ie Information Engineering (IE) Volume 3, 2014 Performance and Quality Evaluation of jQuery Javascript Framework Andreas Gizas, Sotiris P. Christodoulou, Tzanetos Pomonis HPCLab, Computer Engineering & Informatics Dept., University of Patras Rion, Patras Received Jun 10, 2013; Revised Jun 21, 2013; Accepted Mar 12, 2014; Published Jun 12, 2014 © 2014 Science and Engineering Publishing Company Abstract devices. Mobile web is the name of this new field of The scope of this work is to provide a thorough web applications and JavaScript is expected to play a methodology for quality and performance evaluation of the major role in its development with the evolution of most popular JavaScript framework, the jQuery Framework, new devices and standards (ex. iPhone, Android) or as by taking into account well established software quality the heart of cross platform applications (like factors and performance tests. The JavaScript programming phonegap.com). There are also proposals for language is widely used for web programming and employing JavaScript in server-side applications increasingly, for general purpose of computing. Since the (Server-Side JavaScript Reference v1.2). growth of its popularity and the beginning of web 2.0 era, many JavaScript frameworks have become available for Due to the plethora of applications that JavaScript programming rich client-side interactions in web serves and the variety of programming needs, applications. The jQuery project and its community serve frameworks have been created in order to help both today as a major part of web programmers. The main programmers and end-users. These frameworks aim to outcome of this work is to highlight the pros and cons of be a useful tool for simplifying JavaScript code jQuery in various areas of interest and signify which and development and repeat blocks of code by using just a where the weak points of its code are.
    [Show full text]
  • Towards Secure and Reusable Web Applications
    Mashups and Modularity: Towards Secure and Reusable Web Applications Antero Taivalsaari Tommi Mikkonen Sun Microsystems Laboratories [email protected] http://research.sun.com/projects/lively 2 Evolution of the Web 1) Simple pages with text and static images only (e.g., http://www.google.com) 2) Animated pages with plug-ins (e.g., http://www.cadillac.com) 3) Rich Internet Applications (e.g., docs.google.com) What's Next? 3 Web Applications – Implications • Web-based software will dramatically change the way people develop, deploy and use software. • No more installations! > Applications will simply run off the Web. • No more upgrades! > Always run the latest application version. • Instant worldwide deployment! > No middlemen or distributors needed. • No CPU dependencies, OS dependencies, ... > The Web is the Platform. 4 Unfortunately... • The web browser was not designed for running real applications. > It was designed in the early 1990s for viewing documents, forms and other page-structured artifacts – not applications. > Programming capabilities on the web were an afterthought, not something inherent in the design of the browser. • Various Rich Internet Application (RIA) technologies have been introduced recently to retrofit application execution capabilities into the web browser. 5 Web Development vs. Conventional Software The Impedance Mismatch Web Development Conventional SW Development - Documents - Applications - Page / form oriented interaction - Direct manipulation - Managed graphics, static layout - Directly drawn, dynamic
    [Show full text]
  • Realizing Elastic Design Principles for User Exploration in Bayesian Analysis
    Realizing Elastic Design Principles for User Exploration in Bayesian Analysis Master’s Thesis submitted to the Media Computing Group Prof. Dr. Jan Borchers Computer Science Department RWTH Aachen University by Devashish Jasani Thesis advisor: Prof. Dr. Jan Borchers Second examiner: Dr. Matthias Kaiser, SAP SE Registration date: 01.07.2016 Submission date: 13.02.2017 Eidesstattliche Versicherung ___________________________ ___________________________ Name, Vorname Matrikelnummer Ich versichere hiermit an Eides Statt, dass ich die vorliegende Arbeit/Bachelorarbeit/ Masterarbeit* mit dem Titel __________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________ selbständig und ohne unzulässige fremde Hilfe erbracht habe. Ich habe keine anderen als die angegebenen Quellen und Hilfsmittel benutzt. Für den Fall, dass die Arbeit zusätzlich auf einem Datenträger eingereicht wird, erkläre ich, dass die schriftliche und die elektronische Form vollständig übereinstimmen. Die Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen. ___________________________ ___________________________ Ort, Datum Unterschrift *Nichtzutreffendes bitte streichen Belehrung: § 156 StGB: Falsche Versicherung an Eides Statt Wer vor einer zur Abnahme einer Versicherung an Eides Statt zuständigen Behörde eine solche Versicherung falsch abgibt oder unter Berufung auf eine solche Versicherung
    [Show full text]
  • Restraining Technical Debt When Developing Large-Scale Ajax Applications
    WEB 2013 : The First International Conference on Building and Exploring Web Based Environments Restraining technical debt when developing large-scale Ajax applications Yoav Rubin, Shmuel Kallner, Nili Guy, Gal Shachor IBM Research - Haifa Haifa University Campus Haifa, Israel {yoav, kallner, ifergan , shachor}@il.ibm.com Abstract - Addressing technical debt during the software automatic refactoring transformations on code written in a development process relies heavily on a refactoring phase, in dynamic language such as Ruby [10] or JavaScript [11]. which automatic code transformations are used as a crucial Each such tool tried to overcome the lack of type mechanism to reduce a system's technical debt. However, information, which is essential for correct refactoring automatic refactoring is not an option when developing Ajax transformations [5], by using other sources of information. applications. Therefore, an approach that restrains the accumulation of a system's technical debt is needed. In this In the refactoring of Smalltalk codebase, the automatic tool paper, we present and evaluate such an approach and its used a combination of test-cases, results of dynamic reification as a framework. We conclude that our proposed analysis, and method wrappers [6]. Another technique is framework enables restraining technical debt in a large-scale static pointer analysis, which was the vehicle that drove Ajax application without the need for automatic code automatic refactoring in JavaScript codebases [9]. Another refactoring tools. strategy was to rely not only on the analysis of a project's codebase, but rather on additional information provided by Keywords: software engineering; dynamic languages; code the developers, as was done in a Ruby codebase refactoring reuse; technical debt; Ajax mechanism [8].
    [Show full text]
  • Building the Polargrid Portal Using Web 2.0 and Opensocial
    Building the PolarGrid Portal Using Web 2.0 and OpenSocial Zhenhua Guo, Raminderjeet Singh, Marlon Pierce Community Grids Laboratory, Pervasive Technology Institute Indiana University, Bloomington 2719 East 10th Street, Bloomington, Indiana 47408 {zhguo, ramifnu, marpierc}@indiana.edu ABSTRACT service gateway are still useful, it is time to revisit some of the Science requires collaboration. In this paper, we investigate the software and standards used to actually build gateways. Two feasibility of coupling current social networking techniques to important candidates are the Google Gadget component model science gateways to provide a scientific collaboration model. We and the REST service development style for building gateways. are particularly interested in the integration of local and third Gadgets are attractive for three reasons. First, they are much party services, since we believe the latter provide more long-term easier to write than portlets and are to some degree framework- sustainability than gateway-provided service instances alone. Our agnostic. Second, they can be integrated into both iGoogle prototype use case for this study is the PolarGrid portal, in which (Google’s Start Page portal) and user-developed containers. we combine typical science portal functionality with widely used Finally, gadgets are actually a subset of the OpenSocial collaboration tools. Our goal is to determine the feasibility of specification [5], which enables developers to provide social rapidly developing a collaborative science gateway that networking capabilities. Standardization is useful but more incorporates third-party collaborative services with more typical importantly one can plug directly into pre-existing social networks science gateway capabilities. We specifically investigate Google with millions of users without trying to establish a new network Gadget, OpenSocial, and related standards.
    [Show full text]
  • On the Security of Single Sign-On
    On the Security of Single Sign-On Vladislav Mladenov (Place of birth: Pleven/Bulgaria) [email protected] 30th June 2017 Ruhr-University Bochum Horst G¨ortz Institute for IT-Security Chair for Network and Data Security Dissertation zur Erlangung des Grades eines Doktor-Ingenieurs der Fakult¨atf¨urElektrotechnik und Informationstechnik an der Ruhr-Universit¨atBochum First Supervisor: Prof. Dr. rer. nat. J¨org Schwenk Second Supervisor: Prof. Dr.-Ing. Felix Freiling www.nds.rub.de Abstract Single Sign-On (SSO) is a concept of delegated authentication, where an End- User authenticates only once at a central entity called Identity Provider (IdP) and afterwards logs in at multiple Service Providers (SPs) without reauthenti- cation. For this purpose, the IdP issues an authentication token, which is sent to the SP and must be verified. There exist different SSO protocols, which are implemented as open source libraries or integrated in commercial products. Google, Facebook, Microsoft and PayPal belong to the most popular SSO IdPs. This thesis provides a comprehensive security evaluation of the most popular and widely deployed SSO protocols: OpenID Connect, OpenID, and SAML. A starting point for this research is the development of a new concept called malicious IdP, where a maliciously acting IdP is used to attack SSO. Generic attack classes are developed and categorized according to the requirements, goals, and impact. These attack classes are adapted to different SSO proto- cols, which lead to the discovery of security critical vulnerabilities in Software- as-a-Service Cloud Providers, eCommerce products, web-based news portals, Content-Management systems, and open source implementations.
    [Show full text]
  • Lively Wiki a Development Environment for Creating and Sharing Active Web Content
    Lively Wiki A Development Environment for Creating and Sharing Active Web Content Robert Krahn Dan Ingalls Robert Hirschfeld Hasso-Plattner-Institut, Sun Microsystems Hasso-Plattner-Institut, University of Potsdam Laboratories University of Potsdam Prof.-Dr.-Helmert-Str. 2-3 16 Network Circle Prof.-Dr.-Helmert-Str. 2-3 Potsdam, Germany Menlo Park Potsdam, Germany [email protected] [email protected] [email protected] potsdam.de potsdam.de Jens Lincke Krzysztof Palacz Hasso-Plattner-Institut, Sun Microsystems University of Potsdam Laboratories Prof.-Dr.-Helmert-Str. 2-3 16 Network Circle Potsdam, Germany Menlo Park [email protected] [email protected] potsdam.de ABSTRACT General Terms Wikis are Web-based collaborative systems designed to help Design, Human Factors people share information. Wikis have become popular due to their openness which gives users complete control over the Keywords organization and the content of wiki pages. Unfortunately existing wiki engines restrict users to enter only passive con- Wikis, Application Wikis, Web Application, Morphic, User tent, such as text, graphics, and videos and do not allow Innovation, Development Environment, End-user Program- users to customize wiki pages. Thus, wikis cannot be used ming to host or author rich dynamic and interactive content. In this paper we present Lively Wiki, a development and 1. INTRODUCTION collaboration environment based on the Lively Kernel which During the last decade the Internet and especially the enables users to create rich and interactive Web pages and World Wide Web have become more and more a platform applications { without leaving the Web. Lively Wiki com- for applications which are replacing traditional desktop soft- bines the wiki metaphor with a direct-manipulation user in- ware.
    [Show full text]
  • Partitioning Web Applications Between the Server and the Client
    Journal of Web Engineering, Vol. 9, No. 3 (2010) 207–226 c Rinton Press PARTITIONING WEB APPLICATIONS BETWEEN THE SERVER AND THE CLIENT JANNE KUUSKERI Department of Software Systems, Tampere University of Technology, P.O. Box 553 Tampere, 33103, Finland janne.kuuskeri@tut.fi TOMMI MIKKONEN Department of Software Systems, Tampere University of Technology, P.O. Box 553 Tampere, 33103, Finland tommi.mikkonen@tut.fi Received June 21, 2009 Revised January 14, 2010 Web 2.0 and rich Internet application technologies are offering more and more sophis- ticated means for building compelling applications. At the same time the development of applications is becoming increasingly complex. While web applications are commonly relying on server side processing, we aim at implementing a “fat client” and running applications mostly on the client. With this in mind we derive a set of guidelines on how the applications should be partitioned between the server and the client. By following these directives and leaning on the traditional principles of good software development, we address the issues of complexity that have lately emerged in web development. Keywords: Web Application, AJAX, JavaScript, Comet 1 Introduction Web application development is in the middle of a paradigm shift. Users are getting used to web applications with dynamic content and enhanced user experience. User interfaces are no longer updated the whole screen at a time, and servers are able to feed data to them spontaneously. From the users’ point of view, web applications are thus becoming more and more like traditional desktop applications. While the user interfaces of web applications are becoming more usable, the underlying standards and protocols are not evolving at the same pace.
    [Show full text]
  • Improving Student Engagement with Educational Material
    HONOURS PROJECT LITERATURE SYNTHESIS Improving student engagement with educational material Deon Takpuie Supervised by: Professor Sonia Berman Category Min Max Chosen 1 Requirement Analysis and Design 0 20 20 2 Theoretical Analysis 0 25 0 3 Experiment Design and Execution 0 20 15 4 System Development and Implementation 0 15 5 5 Results, Findings and Conclusion 10 20 10 6 Aim Formulation and Background Work 10 15 10 7 Quality of Report Writing and Presentation 10 10 8 Adherence to Project Proposal and Quality of Deliverables 10 10 9 Overall General Project Evaluation 0 10 0 Total marks 80 DEPARTMENT OF COMPUTER SCIENCE UNIVERISTY OF CAPE TOWN 2012 NRF FUNDED RESEARCH The financial assistance of the National Research Foundation (NRF) towards this research is hereby acknowledged. Opinions expressed and conclusions arrived at, are those of the author and are not necessarily to be attributed to the NRF. Abstract The Vula wiki tool is under-utilized in the computer science department at UCT, and in some other departments has been replaced by alternative wiki tools that are easier to use. Since the wiki can be a valuable educational tool, it was decided thatgamificiation should be used to increase the usability of the Vula wiki on mobile phones. This led to the development of a system for computer science undergraduate students which used an iterative user-centered design approach; consisting of a design, implementation and evaluation of a prototype in each stage. Initially, two low-fidelity then two high-fidelity prototypes are developed whilst incorporating user feedback from the previous iteration. At the same time, gamification rules, which are influenced largely by the GameFlow criteria for player enjoyment in games, are refined continually.
    [Show full text]