ABSTRACT
This paper demonstrates an implementation strategy for a general real-time remote collaboration framework called Kanto. Kanto is a web-based library that provides screen sharing, voice chat and bi-directional user interaction among participants over the Internet. The generality of Kanto's design makes it straightforward to add its facilities to the programming systems Squeak Etoys, Snap! and GP with little modification to those systems. Because Kanto is web-based, no additional software installation is required on the computers that use it.
Kanto takes advantage of the WebRTC framework, which supports peer-to-peer video, voice and other data transmission. One insight is that if an application uses a single HTML canvas to render all graphics, we can simply stream the contents of the canvas to other hosts to do screen sharing. Luckily, the above-mentioned blocks-based programming languages follow this single-canvas implementation strategy, which is influenced by Smalltalk.
Kanto embodies a particular set of choices within the vast design space of collaboration systems. For example, Kanto maintains its application state by designating one node as the state holder, and streaming just that node's display contents to the other nodes. This simplifies the implementation, but for a remote user introduces a delay between an action and its corresponding display update. In our experience the speed of response is acceptable even at intercontinental distances, but below we discuss alternative designs that would avoid this issue.
- Brian Broll, Akos Lédeczi, Peter Volgyesi, Janos Sallai, Miklos Maroti, Alexia Carrillo, Stephanie L. Weeden-Wright, Chris Vanags, Joshua D. Swartz, and Melvin Lu. 2017. A Visual Programming Environment for Learning Distributed Programming. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE '17). ACM, New York, NY, USA, 81-86. Google ScholarDigital Library
- Douglas C. Engelbart and William K. English. 1968. A Research Center for Augmenting Human Intellect. In Proceedings of the December 9-11, 1968, Fall Joint Computer Conference, Part I (AFIPS '68 (Fall, part I)). ACM, New York, NY, USA, 395-410. Google ScholarDigital Library
- Jens Mönig et al. 2017. Snap! (2017). Retrieved Aug 1, 2017 from http://snap.berkeley.edu.Google Scholar
- Lex Spoon et al. 1999. Nebraska. (1999). http://wiki.squeak.org/squeak/1356.Google Scholar
- Neil Fraser. 2009. Differential Synchronization. In Proceedings of the 9th ACM Symposium on Document Engineering (DocEng '09). ACM, New York, NY, USA, 13-20. Google ScholarDigital Library
- Bert Freudenberg, Dan H.H. Ingalls, Tim Felgentreff, Tobias Pape, and Robert Hirschfeld. 2014. SqueakJS: A Modern and Practical Smalltalk That Runs in Any Browser. SIGPLAN Not.50, 2 (Oct. 2014), 57-66. Google ScholarDigital Library
- Daniel Ingalls, Tim Felgentreff, Robert Hirschfeld, Robert Krahn, Jens Lincke, Marko Röder, Antero Taivalsaari, and Tommi Mikkonen. 2016. A World of Active Objects for Work and Play: The First Ten Years of Lively. In Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2016). ACM, New York, NY, USA, 238-249. Google ScholarDigital Library
- Dan Ingalls, Krzysztof Palacz, Stephen Uhler, Antero Taivalsaari, and Tommi Mikkonen. [n. d.]. The Lively Kernel - A Self-Supporting System on a Web Page. In Proceedings of the Workshop on Self-Sfustaining Systems (LNCS 5146). Springer, 31-50.Google Scholar
- Alan Kay, Kim Rose, Dan Ingalls, Ted Kaehler, John Maloney, and Scott Wallace. 1997. Etoys & SimStories. (February 1997). ImagiLearning Internal Document.Google Scholar
- John Maloney, Jens Mönig, and Yoshiki Ohshima. 2017. GP: A generalpurpose blocks programming language. (2017). Retrieved Aug 1, 2017 from http://gpblocks.org.Google ScholarDigital Library
- The WebRTC Project. [n. d.]. Real time communication with WebRTC. ([n. d.]). Retrieved Aug 1, 2017 from https://codelabs.developers.google.com/codelabs/webrtc-web/.Google Scholar
- Tristan Richardson, Quentin Stafford-Fraser, Kenneth R. Wood, and Andy Hopper. 1998. Virtual Network Computing. IEEE Internet Computing 2, 1 (Jan. 1998), 33-38. Google ScholarDigital Library
- J. Rosenberg. 2010. Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols. RFC 5245. RFC Editor. http://www.rfc-editor.org/rfc/rfc5245.txt http://www.rfc-editor.org/rfc/rfc5245.txt.Google Scholar
- David A. Smith, Alan Kay, Andreas Raab, and David P. Reed. 2003. Croquet - A Collaboration System Architecture. Creating, Connecting and Collaborating through Computing, International Conference on (2003), 2-9.Google Scholar
- Randall B. Smith, Mario Wolczko, and David Ungar. 1997. From Kansas to Oz: Collaborative Debugging when a Shared World Breaks. Commun. ACM 40, 4 (April 1997), 72-78. Google ScholarDigital Library
Index Terms
- Kanto: a multi-participant screen-sharing system for Etoys, Snap!, and GP
Recommendations
A High-Fidelity and Low-Interaction-Delay Screen Sharing System
The pervasive computing environment and wide network bandwidth provide users more opportunities to share screen content among multiple devices. In this article, we introduce a remote display system to enable screen sharing among multiple devices with ...
Comparing multi-touch tabletops and multi-mouse single-display groupware setups
MexIHC '10: Proceedings of the 3rd Mexican Workshop on Human Computer InteractionIn spite of all the attention paid to multi-touch tabletop displays, little is known about the collaborative tasks they are best suited for in comparison to alternatives such as multi-mouse Single-Display Groupware setups. In this paper, we share the ...
The "mighty mouse" multi-screen collaboration tool
UIST '02: Proceedings of the 15th annual ACM symposium on User interface software and technologyMany computer operating systems provide seamless support for multiple display screens, but there are few cross-platform tools for collaborative use of multiple computers in a shared display environment. Mighty Mouse is a novel groupware tool built on ...
Comments