Het implementeren van remote access in een browser.

Sarah Polfliet
Persbericht

“Toen ik geen geschikte applicatie vond, ontwierp ik er zelf één”

Ambitieus? Zo kan je Sarah Polfliet wel noemen ja. Voor haar bachelorproef zocht ze een manier om iemands computer volledig over te nemen in de browser. Geen enkele applicatie biedt momenteel die mogelijkheid dus ging ze zelf aan de slag. Mét resultaat.  

Niets nieuws onder de zon, of toch?

Akkoord, een scherm overnemen vanop afstand kan momenteel al. Een scherm overnemen in de browser en dus zonder installatie van een extra applicatie nog niet. Daar wou Sarah graag verandering in brengen. Het is tijdens haar stage dat ze merkte hoe hoog die nood was…

Begin dit jaar ging ze aan de slag bij multimediabedrijf Ocular die interactieve belevingen creëert voor bedrijven en musea. Niet alleen in fysieke ruimtes, maar ook in een virtuele showroom bijvoorbeeld. Die showroom bestaat altijd uit een box met vier wanden, een plafond en een vloer. Elke bezoeker ontdekt al doende meer over het bedrijf in een interactieve 3D-omgeving. Ocular zocht al langer naar een geschikte manier om bezoekers zelf controle te geven over het scherm, maar die bleek er voor de browser niet te zijn. Sarah besloot dan ook om er haar bachelorproef van te maken.

Ze bestudeerde verschillende technologieën en werkte naar een ‘Proof of Concept’ toe. Dat is een specifieke methode die de praktische haalbaarheid van een concept bepaalt. Het onderzoek zelf bestond uit drie grote onderdelen. Eerst zocht ze naar een manier om verschillende gebruikers met elkaar te laten connecteren en daarna onderzocht ze de mogelijkheid om een scherm te delen in de browser. Tot slot dacht ze na over de bediening van de muis.

image-20210913215543-1

Hoe gaat dat technisch in zijn werk?

PeerJS die gebruikmaakt van het WebRTC-protocol maakt het mogelijk om een scherm te delen in de browser. Dit protocol maakt het namelijk mogelijk om webapplicaties voor spraak- en videogesprekken te maken. Hierdoor kunnen mediastreams aangemaakt en ook verstuurd worden. Een mediastream bevat bepaalde media zoals een video bijvoorbeeld. Die video wordt dan in realtime verstuurd naar andere personen waardoor zij de video ook kunnen zien. En dat is precies hoe een scherm gedeeld kan worden in de browser, de media stream bevat dan een video van het gedeelde scherm.

Voor de besturing van de muis gebruikte Sarah RobotJS. Eerst wordt elke beweging van de muis gedetecteerd en wordt RobotJS hiervan op de hoogte gesteld. RobotJS zorgt er dan voor dat deze beweging ook bij andere gebruikers zichtbaar wordt. Telkens wanneer iemand klikt, wordt dit opgevangen en doorgestuurd naar het systeem.

Het eindresultaat: een unieke Proof of Concept waar toekomst in zit

image-20210913215543-2

Het resultaat van Sarah’s onderzoek is een Proof of Concept die aantoont hoe iemand een gedeeld scherm kan beheren en de controle kan overnemen in de browser. Momenteel is het zo dat de persoon in kwestie daarvoor een link en een unieke code nodig heeft, maar bij verdere ontwikkeling zou dat met een enkele link mogelijk zijn. Dat houdt dus in dat iemand met één klik het scherm kan bedienen.

Bibliografie

[1] Synoniemen.net, [Online]. Available: https://synoniemen.net/vertalingen.php?word=remote&source=en&target=nl. [Geopend 25 mei 2021].

[2] Wikipedia, „Codec,” 17 oktober 2016. [Online]. Available: https://nl.wikipedia.org/wiki/Codec. [Geopend 15 april 2021].

[3] J. C. Stephens, „Connection Tracking,” 5 april 2001. [Online]. Available: https://www.rigacci.org/wiki/lib/exe/fetch.php/doc/appunti/linux/sa/ipt….. [Geopend 15 april 2021].

[4] Wikiversity, „Congestion Control Uses,” 3 december 2019. [Online]. Available: https://en.wikiversity.org/wiki/Congestion_control_uses#:~:text=Definit….. [Geopend 15 april 2021].

[5] V. Saini, „Stream Multiplexing,” 15 december 2019. [Online]. Available: https://simpleaswater.com/stream-multiplexing/. [Geopend 15 april 2021].

[6] https://en.wikipedia.org/wiki/Flow_control_(data), „Flow Control (data),” 1 april 2021. [Online]. Available: https://en.wikipedia.org/wiki/Flow_control_(data). [Geopend 15 april 2021].

[7] Wikipedia, „Keepalive,” [Online]. Available: https://en.wikipedia.org/wiki/Keepalive. [Geopend 25 mei 2021].

[8] Wikipedia, „NAT traversal,” [Online]. Available: https://en.wikipedia.org/wiki/NAT_traversal. [Geopend 25 mei 2021].

[9] Wikipedia, „Head-of-line blocking,” [Online]. Available: https://en.wikipedia.org/wiki/Head-of-line_blocking. [Geopend 8 juni 2021].

[10] I. Grigorik, „High Performance Browser Networking,” 2013. [Online]. Available: https://hpbn.co/webrtc/. [Geopend 6 april 2021].

[11] M. Schmidt, „Remote Desktop Sessions,” 14 maart 2019. [Online]. Available: https://www.zumatech.com/wp-content/uploads/2019/03/rdp-blog-post-featu…. [Geopend 24 mei 2021].

[12] W3schools, „HTML <iframe> Tag,” [Online]. Available: https://www.w3schools.com/tags/tag_iframe.ASP. [Geopend 19 mei 2021].

[13] N. Rifki, „The ultimate guide to iframes,” 23 januari 2020. [Online]. Available: https://blog.logrocket.com/the-ultimate-guide-to-iframes/. [Geopend 23 mei 2021].

[14] socket.io, „Socket.IO,” [Online]. Available: socket.io. [Geopend 28 april 2021].

[15] M. Lohr, „PeerChess – Chess with PeerJS,” 20 mei 2013. [Online]. Available: https://mlohr.com/wp-content/uploads/2013/05/peerjs_logo.png. [Geopend 24 mei 2021].

[16] RobotJS, „ROBOTJS,” [Online]. Available: http://robotjs.io/. [Geopend 24 mei 2021].

[17] npmjs, „nodemon,” [Online]. Available: https://www.npmjs.com/package/nodemon. [Geopend 26 mei 2021].

[18] L. Ben-David, „Build a Video Chat App with Socket.io, PeerJS, and Codesphere,” 27 maart 2021. [Online]. Available: https://javascript.plainenglish.io/building-a-video-chat-app-with-socke…. [Geopend 28 april 2021].

[19] Express, „Express - Node.js web application framework,” [Online]. Available: expressjs.com. [Geopend 28 april 2021].

[20] PeerJS, „PeerJS - Simple peer-to-peer with WebRTC,” [Online]. Available: peerjs.com. [Geopend 28 april 2021].

[21] tutorials point, „Node.js - Introduction,” [Online]. Available: https://www.tutorialspoint.com/nodejs/nodejs_introduction.htm#:~:text=i….. [Geopend 12 mei 2021].

[22] Wikipedia, „Node.js,” [Online]. Available: https://nl.wikipedia.org/wiki/Node.js. [Geopend 12 mei 2021].

[23] Soliton, „What is Remote Access Control? (No, it's not a stupid question),” 14 november 2019. [Online]. Available: https://blog.solitonsystems.com/it-security/what-is-remote-access-contr…. [Geopend 16 mei 2021].

[24] Besant Technologies, „What is Express.js?,” [Online]. Available: https://www.besanttechnologies.com/what-is-expressjs. [Geopend 16 mei 2021].

[25] M. Link, „robotjs-browser,” 14 april 2017. [Online]. Available: https://github.com/ml1nk/robotjs-browser. [Geopend 19 mei 2021].

[26] L. M., „What is an iFrame?,” 9 maart 2021. [Online]. Available: https://www.hostinger.com/tutorials/what-is-iframe/. [Geopend 19 mei 2021].

[27] EJS, „EJS,” [Online]. Available: https://ejs.co/. [Geopend 19 mei 2021].

[28] K. Devaliya, „Why use EJS template engine with ExpressJS instead of Handlebars?,” 22 september 2020. [Online]. Available: https://www.codementor.io/@kishandevaliya/why-use-ejs-template-engine-w…. [Geopend 19 mei 2021].

[29] Wikipedia, „Node.js,” [Online]. Available: https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Node.js_logo…. [Geopend 24 mei 2021].

[30] ButterCMS, „Express.js,” [Online]. Available: https://cdn.buttercms.com/2q5r816LTo2uE9j7Ntic. [Geopend 24 mei 2021].

[31] B. Gamble, „What’s new in SocketIO 4?,” 26 maart 2021. [Online]. Available: https://ik.imagekit.io/ably/ghost/prod/2021/03/socket-io-logo.jpeg?tr=w…. [Geopend 24 mei 2021].

[32] Wikipedia, „npm (software),” [Online]. Available: https://nl.wikipedia.org/wiki/Npm_(software). [Geopend 26 mei 2021].

[33] Web Dev Simplified, „How To Create A Video Chat App With WebRTC,” 25 juli 2020. [Online]. Available: https://www.youtube.com/watch?v=DvlyzDZDEq4. [Geopend 10 april 2020].

[34] Codeboard Club, „Develop screen sharing application: Node JS App | Desktop sharing application development | Electron,” 14 december 2020. [Online]. Available: https://www.youtube.com/watch?v=VQcG5LLxhGA. [Geopend 12 april 2020].

[35] Codeboard Club, „Develop remote desktop: Control PC from remote location | Node JS Project | Node JS & Express JS,” 25 december 2020. [Online]. Available: https://www.youtube.com/watch?v=f2oaVXrKyuk. [Geopend 12 april 2020].

Universiteit of Hogeschool
Toegepaste Informatica
Publicatiejaar
2021
Promotor(en)
Davy De Coster
Kernwoorden
Share this on: