Data synchronization in web-based liquid software solutions
Välimäki, Mika Veikko
Permanent address of the item is
When a computer application is designed with a liquid software approach it means that the application can be used on multiple devices and on multiple environments. In addition the user can move from one device to another and the state of the application seamlessly transfers when switching between devices. It also means that the persistent data used by the program is synchronized between the devices. Using the program on multiple devices can either be sequential or simultaneous and there can be more than one user using the same application. In this thesis the liquid software approach was tested in a web application to see what kind of challenges the browser environment would have. The focus of the application was on synchronizing persistent data between devices. The web application approach was chosen because it can be run on all platforms that have support for a modern browser. In order to test it a proof of concept application was made. The requirements for the application were that it would not require third party add-ons and that the core design would not be tied to any third party system. Different technologies were tested and according to the tests the three most important technologies were Push API, service workers and IndexedDB. They all are new web technologies and their standardization is not yet finished. The standards are being developed by W3C, WHATWG and IETF. Persistent data synchronization that satisfies the requirements of a liquid software is possible to develop for the browser environment. Web browsers still face challenges such as that the browser does not have access to low level services of the underlying operating system which for some applications would be mandatory. Also if the liquid software approach is to be combined with an Internet of things application then the web-runtime might not be possible to be used with all of the devices.