Over-the-web Screen Sharing
A few months ago, I had an exchange with Rick Cowan of the Organizers’ Collaborative and some other folks on a national non-profit technology email list list (I think NOSI). The discussion was about using screen-sharing services like WebEx for training and meeting over the ‘net. Concurrent with this discussion was a discussion of the general need for a training/event registration system. Out of this discussion, I thought it’d be nice to create a sort of WebEx-lite open source package based on VNC.
VNC is a free technology that allows you to share your desktop with other computers over the network. Multiple people can connect to the same desktop, and the host can limit whether the visitors can control the mouse and keyboard. It works surprisingly well and runs on Windows, Linux and Mac. One very cool feature of VNC is it includes a functional Java client, that can be downloaded and installed from the host over http. This means, you only must give a desired visitor a url to
VNC on your machine, the password you set, and they just plug the URL to their Java-capable browser and they’re viewing your desktop.
Given this feature, it seems like it’d be pretty straightforward to write a web application that could be installed where a “host” could schedule meetings/training events, registrants could “sign up,” and the system would manage sending around the links and passwords. This would be a nice, simple event registration system and also streamline the organizing of screen-sharing meeetings. Cool!
I hit one wall in conceiving this otherwise cool application, which demonstrates how the Internet is broken because of a limited number of IP addresses. VNC requires the “host” to run VNC as a network service on a dedicated network port (usually 5900). If every computer had its own unique IP address, the way the Internet is intended, this would only require appropriate firewall settings which in most cases are possible to work around. However, many computers “share” IP addresses using a technology call Network Address Translation (”NAT”), because there are too few IP addresses to go around. This means, to act as “host,” not only do you need to open up your firewall (you do have a firewall, right?), but you also need to use “port forwarding” to get traffic from your router to the computer it is intended for — which is not obvious since incoming traffic could be for any computer sharing the IP address. And I really don’t want to be in the business of helping people set this up, because every vendor implements a different interface (they don’t all call it “port forwarding” for example).
If I ever get the coding bug, I might jump into this project anyway, and hope a community emerges to handle port-forwarding questions and the like.

August 4th, 2005 at 12:39 pm
Have a look at the copilot.com website… it seems to be very related
August 4th, 2005 at 1:34 pm
It does sound somewhat similar. There are many commercial projects that do similar things. logmein.com offers a free service. PCAnywhere. GoToMyPC. PCAnywhere. WebEx and other web conferencing services. Basically, I’m thinking about how I might string together some open source tools to make this happen. The real work around would be to use a VNC proxy running on a dedicated server to eliminate the many firewall/NAT issues.
August 4th, 2005 at 1:36 pm
Looking at the FAQ, it looks like at least some of the Copilot code is GPL. May be worth a look…
November 15th, 2005 at 6:07 am
Try having a look at www.webhuddle.com.
This is a J2EE based web conferencing software. It offers whiteboard, VOIP, PowerPoint or OOo Impress Presentations, and applications sharing.
The application sharing at present is restricted to either a 800*600 desktop size or any application you place in a window.
The application sharing doesn’t require you to open any ports in your firewall or bother about NAT etc, since it essentially uses screen scraping methods. The only restriciton at the moment is that you can’t interact with the other desktop, but at least you can see what the presenter is talking about.
Considering its only at version 0.4 I believe it can only get much better.
You can try a demo on the website and if you like it the software can be downloaded from sourceforge and setup on JBoss.