I have an arbitrary application (perhaps several) running on a server, and I want a remote client to be able to connect to the server and use a specific application (and only that application). In the case of multiple clients, each client should get their own copy of the running program.. not a shared screen with the other people.
As far as I can tell, VNC only lets you broadcast the entire screen (e.g. the whole desktop). Is the above requirements something VNC can do, or is another protocol more suited for such a task?
Another constraint is that the server may be Windows, Linux, Mac, and the clients can be any of those three as well.
PS. if you don't have a complete answer, stating your opinion or providing useful links would be greatly appreciated.
This is a function of the VNC server itself. The client doesn't have to support it, as the server doesn't have to pass through clicks or keystrokes to the entire screen-area. Something smart enough to take a screen-title list and only pass through clicks to those windows. However, this WILL be on a single screen for all users.
What you're looking for sounds like 'application virtualization', which is a fairly new concept and under quite a bit of marketing-buzz pressure. Citrix has quite a big presence in this marketplace.
I am aware that some VNC server applications allow you to enter the title of an applications to share only that windows, i have not tried this sadly as i haven't had the need as of yet
I believe (dont kill me if im wrong) ultraVNC has this feature www.uvnc.com
VNC can't do that, you're right. However lots of other systems do such as Citrix's products but you will really struggle to find an app that will do that from an OSX 'server', fine as a client though.
I am surprised that no one has mentioned X11 forwarding over SSH, yet. I believe this would meet your needs.
Amusingly enough, VNC on Linux does something pretty close to this by default, infuriating a lot of people who are used to how VNC on Windows works. On Linux, rather than sharing the actual desktop of whoever is logged in, Linux VNC creates a virtual desktop that is only visible to the VNC client, and only applications run in that virtual desktop are available to the client.
Webex claims that their system can be used in Windows, Mac, or Linux, but I haven't used it myself. We use Citrix's gotomeeting at work, which has Mac and Windows clients and the ability to share a specific window (not application... if we're sharing a website and it opens a popup window, gotomeeting usually pauses until we close the popup or have it switch to sharing the popup window).
Neither webex nor gotomeeting are free though.
If you're able to go Windows only at the server end, then modern Windows servers can do this natively with Terminal Services Remote App (or wiki link) but this is pretty much Windows clients only too. Alternatively there's Citrix running on a Windows server that does this similarly but much better and can use pretty much any modern device (even down to iPhone/iPad) as a client.