ARCHITECTING LIQUID SOFTWARE
Keywords:
Multi-device programming, multiple device ownership, software architecture, design space, Liquid SoftwareAbstract
The Liquid Software metaphor refers to software that can operate seamlessly across multiple devices owned by one or multiple users. Liquid Software applications can take advantage of the computing, storage and communication resources available on all the devices owned by the user. Liquid Software applications can also dynamically migrate from one device to another, following the user's attention and usage context. The key design goal in Liquid Software development is to minimize the additional eorts arising from multiple device ownership (e.g., installation, synchronization and general maintenance of personal computers, smartphones, tablets, home and car displays, and wearable devices), while keeping the users in full control of their devices, applications and data. In this paper we present the design space for Liquid Software, categorizing and discussing the most important architectural dimensions and technical choices. We also provide an introduction and comparison of two frameworks implementing Liquid Software capabilities in the context of the World Wide Web.
Downloads
References
Di Geronimo, L., Husmann, M., and Norrie, M. C. (2016) Surveying personal device ecosystems
with cross-device applications in mind. Proc. of the 5th ACM International Symposium on Per-
vasive Displays, pp. 220{227, ACM.
Weiser, M. (1991) The computer for the 21st century. Scienti c American, 265, 94{104.
Levin, M. (2014) Designing Multi-device Experiences: An Ecosystem Approach to User Experiences
Across Devices. O'Reilly.
Hartman, J. H., Bigot, P. A., Bridges, P. G., Montz, A. B., Piltz, R., Spatscheck, O., Proebsting,
T. A., Peterson, L. L., and Bavier, A. C. (1999) Joust: A platform for liquid software. IEEE
Computer, 32, 50{56.
Hartman, J., Manber, U., Peterson, L., and Proebsting, T. (1996) Liquid software: A new paradigm
for networked systems. Tech. Rep. 96-11, University of Arizona.
Taivalsaari, A., Mikkonen, T., and Systa, K. (2014) Liquid software manifesto: The era of multiple
device ownership and its implications for software architecture. 38th IEEE Computer Software and
Applications Conference (COMPSAC), pp. 338{343, IEEE.
Mikkonen, T., Systa, K., and Pautasso, C. (2015) Towards liquid web applications. Proc. of the
th International Conference on Web Engineering, pp. 134{143, Springer.
Gallidabino, A., Pautasso, C., Ilvonen, V., Mikkonen, T., Systa, K., Voutilainen, J.-P., and Taivalsaari,
A. (2016) On the architecture of liquid software: Technology alternatives and design space.
Proc. of the 2016 Working IEEE/IFIP Conference on Software Architecture (WICSA 2016), pp.
{127, IEEE.
Gallidabino, A. and Pautasso, C. (2017) Maturity model for liquid web architectures. 17th Inter-
national Conference on Web Engineering (ICWE2017), Rome, Italy, June, pp. 206{224, Springer.
Google (2012), The new multi-screen world: Understanding cross-platform consumer behavior.
http://services.google.com/fh/files/misc/multiscreenworld_final.pdf.
Marcotte, E. (2011) Responsive Web Design. Editions Eyrolles.
Mikkonen, T. and Taivalsaari, A. (2013) Cloud computing and its impact on mobile software
development: Two roads diverged. Journal of Systems and Software, 86, 2318{2320.
Bourges-Waldegg, D., Duponchel, Y., Graf, M., and Moser, M. (2005) The
uid computing middleware:
Bringing application
uidity to the mobile internet. IEEE/IPSJ International Symposium
on Applications and the Internet (SAINT'05), pp. 54{63, IEEE.
Palmer, T. D. and Fields, N. A. (1994) Computer supported cooperative work. Computer, 27,
{17.
Grundy, J., Wang, X., and Hosking, J. (2002) Building multi-device, component-based, thin-client
groupware: Issues and experiences. Australian Computer Science Communications, vol. 24, pp.
{80, Australian Computer Society, Inc.
Turner, M., Budgen, D., and Brereton, P. (2003) Turning software into a service. Computer, 36,
{44.
Bouzid, A. and Rennyson, D. (2015) The Art of SaaS: A Primer on the Fundamentals of Building
and Running a Successful SaaS Business. Xlibris.
Taivalsaari, A. and Systa, K. (2012) Cloudberry: An HTML5 cloud phone platform for mobile
devices. IEEE Software, 29, 40{45.
Picco, G. P., Julien, C., Murphy, A. L., Musolesi, M., and Roman, G.-C. (2014) Software engineering
for mobility: Re
ecting on the past, peering into the future. Proc. of the on Future of
Software Engineering, pp. 13{28, ACM.
Dinh, H. T., Lee, C., Niyato, D., and Wang, P. (2013) A survey of mobile cloud computing:
Architecture, applications, and approaches. Wireless communications and mobile computing, 13,
{1611.
Gruman, G. (2014) Apple's Hando : What works, and what doesn't. InfoWorld.
Bell, K. (2014) Baton promises to be the ultimate Android app switcher. Mashable.com.
Microsoft (2016), Microsoft Continuum. http://www.windowscentral.com/continuum.
Nebeling, M., Mintsi, T., Husmann, M., and Norrie, M. (2014) Interactive development of crossdevice
user interfaces. Proc. of the 32nd annual ACM conference on Human factors in computing
systems, pp. 2793{2802, ACM.
Di Geronimo, L., Husmann, M., Patel, A., Tuerk, C., and Norrie, M. C. (2016) Ctat: Tilt-and-tap
across devices. International Conference on Web Engineering, pp. 96{113, Springer.
Husmann, M. and Norrie, M. C. (2015) XD-MVC: Support for cross-device development. 1st Intl.
Workshop on Interacting with Multi-Device Ecologies in the Wild (Cross-Surface 2015), Zurich,
ETH Zurich, Switzerland.
Husmann, M., Chithambaram, S., and Norrie, M. C. (2016) Combining physical and social proximity
for device pairing. Proc. of Cross Surface 2016 .
Kuuskeri, J. and Mikkonen, T. (2009) Partitioning web applications between the server and the
client. Proc. of the 2009 ACM Symposium on Applied Computing, pp. 647{652, ACM.
Kuuskeri, J. and Mikkonen, T. (2010) Rest inspired code partitioning with a JavaScript middleware.
International Conference on Web Engineering, pp. 244{255, Springer.
Bonetta, D. and Pautasso, C. (2011) An architectural style for liquid web services. Proc. of the 2011
Working IEEE/IFIP Conference on Software Architecture (WICSA 2011), pp. 232{241, IEEE.
Systa, K., Mikkonen, T., and Jarvenpaa, L. (2013) HTML5 agents { mobile agents for the Web.
Proc. of the International Conference on Web Information Systems and Technologies (WEBIST),
pp. 37{44, SciTePress.
Voutilainen, J.-P., Mikkonen, T., and Systa, K. (2016) Synchronizing application state using
virtual DOM trees. Proc. of the 1st International Workshop on Liquid Software, pp. 142{154,
Springer.
Gallidabino, A. and Pautasso, C. (2016) Deploying stateful web components on multiple devices
with Liquid.js for Polymer. Proc. of 19th International ACM SIGSOFT Symposium on
Component-Based Software Engineering (CBSE, pp. 85{90, IEEE.
Gallidabino, A. and Pautasso, C. (2016) The Liquid.js framework for migrating and cloning stateful
web components across multiple devices. Proc. of the 25th International Conference on the World
Wide Web (WWW), Demonstrations, pp. 183{186, International World Wide Web Conferences
Steering Committee.
Babazadeh, M., Gallidabino, A., and Pautasso, C. (2015) Liquid stream processing across web
browsers and web servers. Proc. of the 15th International Conference on Web Engineering
(ICWE2015), Rotterdam, NL, June, pp. 24{33, Springer.
Triglianos, V. and Pautasso, C. (2015) Asqium: A JavaScript plugin framework for extensible
client and server-side components. Engineering the Web in the Big Data Era, pp. 81{98, Springer.
Makitalo, N., Paakko, J., Raatikainen, M., Myllarniemi, V., Aaltonen, T., Leppanen, T., Mannisto,
T., and Mikkonen, T. (2012) Social devices: Collaborative co-located interactions in a mobile cloud.
Proc. of the 11th International Conference on Mobile and Ubiquitous Multimedia, p. 10, ACM.
Fuggetta, A., Picco, G. P., and Vigna, G. (1998) Understanding code mobility. IEEE Trans. Softw.
Eng., 24, 342{361.
Koskimies, O., Wikman, J., Mikola, T., and Taivalsaari, A. (2015) EDB: A multi-master database
for liquid multi-device software. Proc. of the Second ACM International Conference on Mobile
Software Engineering and Systems, pp. 125{128, IEEE.
Meijer, E. (2007) Democratizing the cloud. Proc. of the 22nd ACM SIGPLAN Conference on
Object-oriented Programming Systems and Applications Companion (OOPSLA'07), pp. 858{859,
ACM.
Oracle (2016), Sun Ray products. http://www.oracle.com/technetwork/server-storage/
sunrayproducts/overview/index.html.
Garrett, J. J., Ajax: A new approach to web applications. Archived from the original
(http://www.adaptivepath.com/ideas/essays/archives/000385.php) to https://web.archive.org on
July.
Gronroos, M. (2012) The Book of Vaadin, 4th Edition. Vaadin Ltd.
Taivalsaari, A., Mikkonen, T., and Systa, K. (2013) Cloud browser: Enhancing the web browser
with cloud sessions and downloadable user interface. Grid and Pervasive Computing, pp. 224{233,
Springer.
Kuuskeri, J., Lautamaki, J., and Mikkonen, T. (2010) Peer-to-peer collaboration in the Lively
Kernel. Proc. of the ACM Symposium on Applied Computing, pp. 812{817, ACM.
Kemme, B. and Alonso, G. (2010) Database replication: A tale of research across communities.
Proc. of the VLDB Endowment, 3, 5{12.
Vogt, C., Werner, M. J., and Schmidt, T. C. (2013) Leveraging WebRTC for P2P content distribution
in web browsers. Proc. of the 21st IEEE International Conference on Network Protocols
(ICNP 2013), pp. 1{2, IEEE.
Liu, H., Darabi, H., Banerjee, P., and Liu, J. (2007) Survey of wireless indoor positioning techniques
and systems. Systems, Man, and Cybernetics, Part C: Applications and Reviews, IEEE
Transactions on, 37, 1067{1080.
Kjrgaard, M. B., Blunck, H., Godsk, T., Toftkjr, T., Christensen, D. L., and Grnbk, K.
(2010) Indoor positioning using GPS revisited. Pervasive Computing, pp. 38{56, Springer.
Casteleyn, S., Garrigos, I., and Mazon, J.-N. (2014) Ten years of Rich Internet Applications: A
systematic mapping study, and beyond. ACM Trans. Web, 8, 18:1{18:46.
Le , A. and Ray eld, J. T. (2001) Web-application development using the model/view/controller
design pattern. Enterprise Distributed Object Computing Conference, 2001. EDOC'01. Proceed-
ings. Fifth IEEE International, pp. 118{127, IEEE.
Mikowski, M. S. and Powell, J. C. (2013) Single page web applications. B and W.
w3schools.com (2016), HTML5 Application Cache. https://www.w3schools.com/html/html5_
app_cache.asp.
Brewer, E. (2012) Cap twelve years later: How the "rules" have changed. Computer, 45, 23{29.
Bradford, R., Kotsovinos, E., Feldmann, A., and Schioberg, H. (2007) Live wide-area migration
of virtual machines including local persistent state. Proc. of the 3rd international conference on
Virtual execution environments, pp. 169{179, ACM.
Cully, B., Lefebvre, G., Meyer, D., Feeley, M., Hutchinson, N., andWar eld, A. (2008) Remus: High
availability via asynchronous virtual machine replication. Proc. of the 5th USENIX Symposium
on Networked Systems Design and Implementation, pp. 161{174, San Francisco.
Facebook (2016), React: A JavaScript library for building user interfaces. http://facebook.
github.io/react/.
Savage, T. (2015) Componentizing the Web. Communications of the ACM, 58, 55{61.
Gallidabino, A. (2016) Migrating and pairing recursive stateful components between multiple
devices with Liquid.js for Polymer. Proc. of the 16th International Conference on Web Engineering
(ICWE2016), pp. 555{558, Springer.
Nicolaescu, P., Jahns, K., Derntl, M., and Klamma, R. (2016) Near real-time peer-to-peer shared
editing on extensible data types. Proceedings of the 19th International Conference on Supporting
Group Work, pp. 39{49, ACM.
Guinard, D., Trifa, V., Mattern, F., and Wilde, E. (2011) From the Internet of Things to the Web
of Things: Resource-oriented architecture and best practices. Uckelmann, D., Harrison, M., and
Michahelles, F. (eds.), Architecting the Internet of Things, pp. 97{129, Springer.