An Application Framework for Nomadic, Collaborative Applications

  • James O’Brien
  • Marc Shapiro
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4025)


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.


Concurrency Control Storage Node Operational Transform Local View Computer Support Cooperative Work 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Berlage, T., Genau, A.: A Framework for Shared Applications with a Replicated Architecture. In: Proc. ACM Symposium on User Interface Software and Technology (1993)Google Scholar
  2. 2.
  3. 3.
    Cooper, A., Reimann, R., Reimann, R.M., Dubberly, H.: About Face 2.0: The Essentials of Interaction Design. John Wiley & Sons, Inc., Chichester (2003)Google Scholar
  4. 4.
    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)Google Scholar
  5. 5.
    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)Google Scholar
  6. 6.
    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)Google Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    Ellis, C., Gibbs, S.J., Rein, G.: Design and Use of a Group Editor, MCC Technical Report Number STP-263-88 (September 1988) Google Scholar
  9. 9.
    Elllis, C.A., Gibbs, S.J.: Concurrency Control in Groupware Systems. In: Proc. SIGCHI Conference on Human Factors in Computing Systems, Portland, OR (1993)Google Scholar
  10. 10.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)zbMATHGoogle Scholar
  11. 11.
    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)Google Scholar
  12. 12.
  13. 13.
    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)Google Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    McGuffin, L., Olson, G.: ShrEdit: A Shared Electronic Work-space, CSMIL Technical Report, Cognitive Science and Machine Intelligence Laboratory, University of Michigan (1992)Google Scholar
  17. 17.
    Munson, J., Dewan, P.: A Concurrency Control Framework for Collaborative Systems. In: Proc. ACM Conference on Computer Supported Cooperative Work (1996)Google Scholar
  18. 18.
    Lamport, L.: The Part-time Parliament. ACM Transactions on Computer Systems (May 1998) Google Scholar
  19. 19.
    O’Brien, J., Shapiro, M.: Undo for Anyone, Anywhere, Anytime. In: Proc. SIGOPS European Workshop (2004)Google Scholar
  20. 20.
    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)Google Scholar
  21. 21.
    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)Google Scholar
  22. 22.
    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)Google Scholar
  23. 23.
    Roseman, M., Greenberg, S.: Building real-time groupware with Group-Kit, a groupware toolkit. ACM Trans. Comput.-Hum. Interact. (March 1996)Google Scholar
  24. 24.
    Saito, Y., Shapiro, M.: Optimistic replication. ACM Comput. Surv. 37(1) (2005)Google Scholar
  25. 25.
    Sarin, S., Greif, I.: Computer based real-time conferencing systems. Computer 18 (October 10, 1985)Google Scholar
  26. 26.
    Schmidt, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Soft-ware Architecture. Patterns for Concurrent and Networked Objects, vol. 2. Wiley, Chichester (2000)zbMATHGoogle Scholar
  27. 27.
    Schwarz, P.M., Spector, A.Z.: Synchronizing shared abstract types. ACM Transactions on Computer Systems 2(3) (1984)Google Scholar
  28. 28.
  29. 29.
    Sun, C.: Undo as concurrent inverse in group editors. ACM Transactions on Computer-Human Interaction (TOCHI) (2002)Google Scholar
  30. 30.

Copyright information

© IFIP International Federation for Information Processing 2006

Authors and Affiliations

  • James O’Brien
    • 1
  • Marc Shapiro
    • 1
  1. 1.INRIA Rocquencourt, France and LIP6ParisFrance

Personalised recommendations