Abstract
To maintain availability and responsiveness, mobile applications sharing data often work on their own copy and transmit local changes to other participants. Existing systems for recording, transmitting and reconciling concurrent changes are usually ad-hoc and specific to particular applications. In contrast, we present Joyce; a general application programming framework for creating highly dynamic mobile, collaborative applications. The framework abstracts application semantics using an action-constraint formal model and provides communication and consistency services based on this model. The framework exposes an interface that allows application programmers to concentrate on core functionality without worrying about these issues. Applications made with the framework can run seamlessly across changing combination of devices, users and synchrony. We discuss the principles behind the framework, its implementation and evaluate its utility by creating a complex, shared application.
The original version of this chapter was revised: The copyright line was incorrect. This has been corrected. The Erratum to this chapter is available at DOI: 10.1007/978-3-540-35127-6_28
Chapter PDF
References
Berlage, T., Genau, A.: A Framework for Shared Applications with a Replicated Architecture. In: Proc. ACM Symposium on User Interface Software and Technology (1993)
Cooper, A., Reimann, R., Reimann, R.M., Dubberly, H.: About Face 2.0: The Essentials of Interaction Design. John Wiley & Sons, Inc., Chichester (2003)
Castro, M., Druschel, P., Kermarrec, A.M., Rowstron, A.: SCRIBE: A large-scale and decentralized application-level multicast infrastructure. IEEE Journal on Selected Areas in communications, JSAC (2002)
Demers, A., Greene, D., Hauser, C., Irish, W., Larson, J., Shenker, S., Sturgis, H.H., Swinehart, D., Terry, D.: Epidemic Algorithms for Replicated Database Management. In: Proc. Sixth Symposium on Principles of Distributed Computing, Vancouver, B.C., Canada (1987)
Edwards, W.K., Mynatt, E.D., Petersen, K., Spreitzer, M.J., Terry, D.B., Theimer, M.M.: Designing and Implementing Asynchronous Collaborative Applications with Bayou. In: Proc. User Interface Systems and Technology, Banff, Canada (1997)
Edwards, W.K., Igarashi, T., LaMarca, A., Mynatt, E.D.: A Temporal Model for Multi-Level Undo and Redo. In: Proc. User Interface Systems and Technology, San Diego, CA (2000)
Ellis, C., Gibbs, S.J., Rein, G.: Design and Use of a Group Editor, MCC Technical Report Number STP-263-88 (September 1988)
Elllis, C.A., Gibbs, S.J.: Concurrency Control in Groupware Systems. In: Proc. SIGCHI Conference on Human Factors in Computing Systems, Portland, OR (1993)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Greif, I., Seliger, R., Weihl, W.: Atomic Data Abstractions in a Distributed Collaborative Editing System. In: Proc. of the Thirteenth Annual Symposium on Principles of Programming Languages. St. Petersburg, Florida (1986)
Kermarrec, A.M., Rowstron, A., Shapiro, M., Druschel, P.: The IceCube approach to the reconciliation of divergent replicas. In: Proc. of Twentieth ACM Symposium on Principles of Distributed Computing PODC, Newport, RI, USA (August 2001)
Krasner, G.E., Pope, S.T.: A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 system. Journal of Object Oriented Programming (1988)
Li, D., Li, R.: Ensuring Content and Intention Consistency in Real-Time Group Editors. In: 24th IEEE International Conference on Distributed Computing Systems (ICDCS 2004) (2004)
McGuffin, L., Olson, G.: ShrEdit: A Shared Electronic Work-space, CSMIL Technical Report, Cognitive Science and Machine Intelligence Laboratory, University of Michigan (1992)
Munson, J., Dewan, P.: A Concurrency Control Framework for Collaborative Systems. In: Proc. ACM Conference on Computer Supported Cooperative Work (1996)
Lamport, L.: The Part-time Parliament. ACM Transactions on Computer Systems (May 1998)
O’Brien, J., Shapiro, M.: Undo for Anyone, Anywhere, Anytime. In: Proc. SIGOPS European Workshop (2004)
Petersen, K., Spreitzer, M.J., Terry, D.B., Theimer, M.M., Demers, A.J.: Flexible Update Propagation for Weakly Consistent Replication. In: Proc. Sixteenth ACM Symposium on Operating System Principles (SOSP), Saint-Malo, Franco (1997)
Prakash, A., Shim, H.S.: DistView: support for building efficient collaborative applications using replicated objects. In: Proc. ACM Conference on Computer Supported Cooperative Work (CSCW 1994). Chapel Hill, North Carolina (1994)
Preguiça, N., Shapiro, M., Matheson, C.: Semantics-based reconciliation for collaborative and mobile environments. In: Meersman, R., Tari, Z., Schmidt, D.C. (eds.) CoopIS 2003, DOA 2003, and ODBASE 2003. LNCS, vol. 2888, pp. 38–55. Springer, Heidelberg (2003)
Roseman, M., Greenberg, S.: Building real-time groupware with Group-Kit, a groupware toolkit. ACM Trans. Comput.-Hum. Interact. (March 1996)
Saito, Y., Shapiro, M.: Optimistic replication. ACM Comput. Surv. 37(1) (2005)
Sarin, S., Greif, I.: Computer based real-time conferencing systems. Computer 18 (October 10, 1985)
Schmidt, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Soft-ware Architecture. Patterns for Concurrent and Networked Objects, vol. 2. Wiley, Chichester (2000)
Schwarz, P.M., Spector, A.Z.: Synchronizing shared abstract types. ACM Transactions on Computer Systems 2(3) (1984)
Sun, C.: Undo as concurrent inverse in group editors. ACM Transactions on Computer-Human Interaction (TOCHI) (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 IFIP International Federation for Information Processing
About this paper
Cite this paper
O’Brien, J., Shapiro, M. (2006). An Application Framework for Nomadic, Collaborative Applications. In: Eliassen, F., Montresor, A. (eds) Distributed Applications and Interoperable Systems. DAIS 2006. Lecture Notes in Computer Science, vol 4025. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11773887_4
Download citation
DOI: https://doi.org/10.1007/11773887_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-35126-9
Online ISBN: 978-3-540-35127-6
eBook Packages: Computer ScienceComputer Science (R0)