Proposal: Shared network-enabled virtual desktop for KDE 4.0

Janne Ojaniemi janne.ojaniemi at nbl.fi
Wed Aug 10 17:00:21 BST 2005


PROPOSAL

KDE 4.0 should have network-enabled shared virtual desktop that could be 
shared with other users on the network. The proposal is tentatively called 
“Foresight”.

RATIONALE

Network-awareness seems to be the order of the day these days. And while KDE 
3.x is network-enabled by default (different IO-slaves for example) that is 
really just baby-steps when compared to things that KDE could and should be 
able to do. With Foresight, KDE would take a huge step forward when it comes 
to true collaborative working between individuals over the network. And as 
networked KDE is, there’s currently no way to substitute physical meetings 
and on-location brainstorming. Foresight would make those possible, using 
nothing but the internet and KDE.

DETAILS

KDE (as do other desktops in Linux/UNIX) offers virtual desktops by default. 
What if one (or more, if the users so wishes) of those desktops were 
network-enabled and shared? Meaning, all the people who are sharing that 
desktop would see the exact same thing. If one of the users launches an app 
on that desktop, it would appear on everyone’s shared desktop. Every user 
could use the apps on that desktop, and everyone could see the others working 
on it. Each user could also have a mouse-cursor of their own. The desktop 
would clearly state “Shared with: Linus Torvalds (torvalds at osdl.org), Bill 
Gates (billg at microsoft.com) and Janne Ojaniemi (janne.ojaniemi at nbl.fi)” (for 
example). Or it could simply say: “Shared with: The IT-department”, where 
“IT-department would be a group of people. Foresight could tie in to 
Kaddressbook for providing the user with names of groups and users.

The shared desktop would look different from the other desktops. This is done 
in order to differentiate it from the private desktops, so users won’t use 
the shared desktop for personal work. Also, moving a running app from a 
private desktop to shared desktop would pop up a dialog-box warning the user 
that he’s about to share the application with others.

By default, the shared desktop could offer an area for “doodling” and typing 
text. This way the people using the shared desktop could quickly type text 
and/or make doodles demonstrating an idea they have. This way there would be 
no need to launch a separate IM-client or send emails.

A small-scale variant of Foresight could be a shared plasmoid on the desktop. 
That plasmoid would be shared with other users. Users could drop files on to 
the plasmoid and it would appear on everyone’s desktop. They could write 
texts in the plasmoids and it would appear on everyone’s desktop as well. 
They could also share output of apps there (presentations etc.). While this 
functionality could be replicated with IM, shared folders and the like, this 
would allow central place to handle this, and it would make ad hoc 
collaboration easier. This would allow users and developers to quickly share 
something they have been working on.

TECHNICAL IMPLEMENTATION: ROUGH DETAILS

Sharing could be done through peer-to-peer networking using NX-compression. 
This way there would be no disruption to others if one user loses 
network-connectivity. Also, by using peer-to-peer, the bandwidth-strain on 
one particular machine will be lessened. 

The actual networking could be done through Zeroconf, where the user could 
simply pick and choose the users with whom he would like to share the desktop 
with. Or the user could pick people up from Kaddressbook. Shared desktops 
could also announce themselves to the network using Zeroconf, and other could 
join them with a click of a mouse, if the desktop is “open” for joining. 
“closed” shared desktops would require authorization/password in order to 
join. Authorization could either be handled by anyone sharing the desktop, by 
voting, or by decision by the master user. Master user would be the user who 
created the shared desktop. Should the Master User lose network-connection 
while sharing a closed desktop, the approval procedure would automatically 
default to popular vote. Annd since the networking would be done through 
peer-to-peer, there would be no disruption in the shared desktop evn if 
master users loses connection.

INTENDED USES

This system could be used in following environments:

- Education & training. Students could share a desktop with the teacher, and 
the teacher could actually show the users what he’s talking about on the 
screen (code for example). Also, training users to use some app (or KDE 
itself) would be easier when the instructor could actually show to the users 
how to do something.

- Distributed projects & teamwork: All members of a distributed team could see 
the same desktop. Working would be smooth when each team-member could 
actually see in real-time what the other person is doing. It would enable the 
“why not change this thing here?”-communication with instant feedback. Also, 
one person could write code, while others read what he’s writing. One person 
could create artwork, while others provide instant feedback as he’s creating 
the artwork. Instead of waiting for the user to finish working and 
mail/upload his work, others could see it as it is being created.

WHY NOT?

What problems could there be in creating this technology? The technology might 
not be there yet. NX might not work with peer-to-peer. Hopefully people with 
needed technological expertise will provide feedback on possible issues.

SUMMARY

This proposal, if implemented, could turn KDE in to de facto standard when it 
comes to distributed teamworking at this level. Not only would this be an 
immense help to open-source developers (who are often physically separated 
and work over the internet), it would really help companies with offices and 
teams around the world. And my proposal presents a paradigm that simply does 
not exist in competing products, open or proprietary. With Foresight, KDE 
would take “network-awareness” to a whole new level. This could become a 
“must have” feature in the future.

GLOSSARY

Closed Desktop: Shared desktop that requires authorization from the Master 
User or from the other users of the desktop for new users to join the 
desktop.

Foresight: Set of technologies that enables user to share a desktop and 
associated applications with other users in the network

Master User: User who creates the shared desktop and shares it with others. 
This user can decide who can connect to the desktop, or whether such 
decisions will be made by popular vote.

NX: Compression-algorithm created by NoMachine that allows remote-X even over 
dial-up links. Core libraries are licensed under the GPL, and free 
implementations exist (FreeNX)

Open Desktop: A shared desktop anyone on the network can join freely.
___________________________________________________
This message is from the kde mailing list.
Account management:  https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.


More information about the kde mailing list