Treffer: Towards offline usage of JavaScript web applications
Faculty of Information & Communication Technology. Department of Computer Science
Weitere Informationen
B.SC.(HONS)COMP.SCI. ; The lack of features provided by traditional desktop applications has led to an increase in popularity for web applications. These features are comprised of high accessibility, uncomplicated updating and bug fixing, platform independence and the advantage of being installation-free for the end-users. However, situations often arise whereby Internet connectivity is limited or unavailable and access to the cloud is still required. Consequently, stakeholders have reviewed the possibility of manually developing an offline infrastructure for their web applications, yet this resulted to be time-consuming and required excessive effort. The main challenge of developing an offline web application is to provide a higher level of availability without the exclusion of any properties that are currently present in the web application. However, the CAP theorem states that consistency, availability and partition tolerance may never be achieved simultaneously. Nevertheless, any of the two properties may be provided simultaneously to the exclusion of the third property. The purpose of this Final Year Project is to develop a framework that facilitates the process by which developers incorporate offline capabilities into their web applications, since manual implementation of offline functionality tends to be both time-consuming and complex. Due to the restriction inferred from the CAP theorem, it has been decided that strong consistency should be replaced by eventual consistency in order to achieve higher availability. Additionally, the implemented system provides an “offline-first” working model. This was achieved by utilising client-side storage, where client changes are carried out on the local storage and later pushed to the server with the aim of achieving eventual consistency. The proposed framework was evaluated by the execution of a test suite that involved timing a set of operations that could be carried out on the framework. These timings were used to verify that operations were taking a reasonable ...