Advertisement

Awakening Decentralised Real-Time Collaboration: Re-engineering Apache Wave into a General-Purpose Federated and Collaborative Platform

  • Pablo Ojanguren-MenendezEmail author
  • Antonio Tenorio-Fornés
  • Samer Hassan
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 373)

Abstract

Real-time collaboration is being offered by plenty of libraries and APIs (Google Drive Real-time API, Microsoft Real-Time Communications API, TogetherJS, ShareJS), rapidly becoming a mainstream option for web-services developers. However, they are offered as centralised services running in a single server, regardless if they are free/open source or proprietary software. After re-engineering Apache Wave (former Google Wave), we can now provide the first decentralised and federated free/open source alternative. The new API allows to develop new real-time collaborative web applications in both JavaScript and Java environments.

Keywords

Apache Wave API Collaborative Edition Federation Operational Transformation Real-time 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    West, J.A., West, M.L.: Using Wikis for Online Collaboration: The Power of the Read-Write Web. John Wiley & Sons (2008)Google Scholar
  2. 2.
    Berliner, B.: CVS II: Parallelizing software development. In: USENIX Winter 1990 Technical Conference, pp. 341–352. USENIX, Berkeley (1990)Google Scholar
  3. 3.
    Sun, C., Ellis, C.: Operational transformation in real-time group editors: Issues, algorithms, and achievements. In: Proceedings of the 1998 ACM Conference on Computer Supported Cooperative Work, pp. 59–68. ACM, New York (1998)Google Scholar
  4. 4.
    Yeung, C., Liccardi, I., Lu, K., Seneviratne, O., Berners-Lee, T.: Decentralization: The future of online social networking. In: W3C Workshop on the Future of Social Networking Position Papers, W3C (2009)Google Scholar
  5. 5.
    Ellis, C.A., Gibbs, S.J.: Concurrency control in groupware systems. In: Proceedings of the 1989 ACM SIGMOD International Conference on Management of Data, SIGMOD 1989, pp. 399–407. ACM, New York (1989)Google Scholar
  6. 6.
    Bigler, M., Raess, S., Zbinden, L.: ACE - a collaborative editor, http://sourceforge.net/projects/ace/
  7. 7.
    Ferrate, A.: Google Wave: Up and Running. O’Reilly Media, Inc. (2010)Google Scholar
  8. 8.
    Nichols, D.A., Curtis, P., Dixon, M., Lamping, J.: High-latency, low-bandwidth windowing in the jupiter collaboration system. In: Proceedings of 8th ACM Symposium on User Interface and Software Technology, pp. 111–120. ACM, New York (1995)Google Scholar
  9. 9.
    Baxter, A., Bekmann, J., Berlin, D., Gregorio, J., Lassen, S., Thorogood, S.: Google Wave Federation Protocol Over XMPP (2009), http://wave-protocol.googlecode.com/hg/spec/federation/wavespec.html
  10. 10.
    Mozilla Labs: Togetherjs, https://togetherjs.com/
  11. 11.
    Joseph, G.: ShareJS, http://sharejs.org/
  12. 12.
    Chuanwu, T.: Google docs–style collaboration via the use of operational transforms, https://github.com/goodow
  13. 13.
    Google Inc.: Google Drive SDK: Realtime API, https://developers.google.com/drive/realtime/
  14. 14.
    North, A.: Google Wave Developer Blog: Wave open source next steps: Wave in a Box, http://googlewavedev.blogspot.com.es/2010/09/wave-open-source-next-steps-wave-in-box.html (2010)
  15. 15.
    Google Inc.: Google Wave Protocol, http://www.waveprotocol.org/
  16. 16.
    Cooper, R., Collins, C.: GWT in Practice. Manning Publications (2008)Google Scholar
  17. 17.
    Pivotal Labs: Jasmine, Behavior-Driven JavaScript, http://jasmine.github.io/
  18. 18.
    Ojanguren-Menendez, P.: Real-time collaboration API for Wave, https://github.com/P2Pvalue/incubator-wave
  19. 19.
  20. 20.
    Gregorio, J., North, A.: Google Wave Conversation Model (2009), http://wave-protocol.googlecode.com/hg/spec/conversation/convspec.html
  21. 21.
    Lassen, S., Mah, A., Wang, D.: Google Wave Operational Transformation (2010), http://wave-protocol.googlecode.com/hg/whitepapers/operational-transform/operational-transform.html
  22. 22.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education (1994)Google Scholar
  23. 23.
    The Jetty Project: Jetty, http://www.eclipse.org/jetty/
  24. 24.
    Roth, G.: Architecture of a highly scalable nio-based server (2007), https://today.java.net/pub/a/today/2007/02/13/architecture-of-highly-scalable-nio-server.html

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Pablo Ojanguren-Menendez
    • 1
    Email author
  • Antonio Tenorio-Fornés
    • 1
  • Samer Hassan
    • 1
  1. 1.GRASIA: Grupo de Agentes Software, Ingeniería y Aplicaciones, Departamento de Ingeniería del Software e Inteligencia ArtificialUniversidad Complutense de MadridMadridSpain

Personalised recommendations