On the Architecture of Liquid Software: Technology Alternatives and Design Space

The liquid metaphor refers to software that operates seamlessly across multiple devices owned by one or multiple users. Liquid software architectures can dynamically deploy and redeploy stateful software components and transparently adapt them to the capabilities of heterogeneous target devices. The key design goal in liquid software development is to minimize the efforts that are related to multiple device ownership (e.g., installation, synchronization and general maintenance of personal computers, smartphones, tablets, home displays, cars and wear-able devices), while keeping the users in full control of their devices, applications and data. In this paper we present a design space for liquid software, categorizing and discussing the most important architectural issues and alternatives. These alternatives represent relevant capabilities offered by emerging technologies and deployment platforms that are then positioned and compared within the design space presented in the paper.

[1]  Ethan Marcotte Responsive Web Design , 2011 .

[2]  John H. Hartman,et al.  Joust: A Platform for Liquid Software , 1999, Computer.

[3]  Xing Wang,et al.  Building Multi-Device, Component-based, Thin-client Groupware: Issues and Experiences , 2002, AUIC.

[4]  Cesare Pautasso,et al.  Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer , 2016, 2016 19th International ACM SIGSOFT Symposium on Component-Based Software Engineering (CBSE).

[5]  Cesare Pautasso,et al.  Towards Liquid Web Applications , 2015, ICWE.

[6]  John H. Hartman,et al.  Liquid Software: A New Paradigm for Networked Systems , 1996 .

[7]  Tommi Mikkonen,et al.  Cloud Browser: Enhancing the Web Browser with Cloud Sessions and Downloadable User Interface , 2013, GPC.

[8]  Amy L. Murphy,et al.  Software engineering for mobility: reflecting on the past, peering into the future , 2014, FOSE.

[9]  Yann Duponchel,et al.  The fluid computing middleware: bringing application fluidity to the mobile Internet , 2005, The 2005 Symposium on Applications and the Internet.

[10]  Gian Pietro Picco,et al.  Understanding code mobility , 1998, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[11]  Tommi Mikkonen,et al.  Peer-to-peer collaboration in the lively kernel , 2010, SAC '10.

[12]  Tommi Mikkonen,et al.  Liquid Software Manifesto: The Era of Multiple Device Ownership and Its Implications for Software Architecture , 2014, 2014 IEEE 38th Annual Computer Software and Applications Conference.

[13]  Cesare Pautasso,et al.  An Architectural Style for Liquid Web Services , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[14]  Antero Taivalsaari,et al.  EDB: A Multi-master Database for Liquid Multi-device Software , 2015, 2015 2nd ACM International Conference on Mobile Software Engineering and Systems.

[15]  E. Brewer,et al.  CAP twelve years later: How the "rules" have changed , 2012, Computer.

[16]  Antero Taivalsaari,et al.  Cloudberry: An HTML5 Cloud Phone Platform for Mobile Devices , 2012, IEEE Software.