ARCHITECTING LIQUID SOFTWARE

Authors

  • ANDREA GALLIDABINO Faculty of Informatics, Universita della Svizzera Italiana Via Bu 13, Lugano, 6900 Switzerland
  • CESARE PAUTASSO Faculty of Informatics, Universita della Svizzera Italiana Via Bu 13, Lugano, 6900 Switzerland
  • TOMMI MIKKONEN Department of Computer Science, University of Helsinki Gustav Hallstromin katu 2b, FI-00560 Helsinki, Finland
  • KARI SYSTA Department of Pervasive Computing, Tampere University of Technology Korkeakoulunkatu 1, FI-33720 Tampere, Finland
  • JARI-PEKKA VOUTILAINEN Department of Pervasive Computing, Tampere University of Technology Korkeakoulunkatu 1, FI-33720 Tampere, Finland
  • ANTERO TAIVALSAARI Nokia Technologies Hatanpaan valtatie 30, FI-33100 Tampere, Finland

Keywords:

Multi-device programming, multiple device ownership, software architecture, design space, Liquid Software

Abstract

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

Download data is not yet available.

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.

Downloads

Published

2017-03-01

Issue

Section

Articles