skip to main content
10.1145/3167106acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Kanto: a multi-participant screen-sharing system for Etoys, Snap!, and GP

Published:22 October 2017Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. Jens Mönig et al. 2017. Snap! (2017). Retrieved Aug 1, 2017 from http://snap.berkeley.edu.Google ScholarGoogle Scholar
  4. Lex Spoon et al. 1999. Nebraska. (1999). http://wiki.squeak.org/squeak/1356.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. Alan Kay, Kim Rose, Dan Ingalls, Ted Kaehler, John Maloney, and Scott Wallace. 1997. Etoys & SimStories. (February 1997). ImagiLearning Internal Document.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Kanto: a multi-participant screen-sharing system for Etoys, Snap!, and GP

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          PX/17.2: Proceedings of the 3rd ACM SIGPLAN International Workshop on Programming Experience
          October 2017
          45 pages
          ISBN:9781450355223
          DOI:10.1145/3176645

          Copyright © 2017 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 22 October 2017

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Upcoming Conference

        • Article Metrics

          • Downloads (Last 12 months)3
          • Downloads (Last 6 weeks)1

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader