Proposal: Shared network-enabled virtual desktop for KDE 4.0

Janne Ojaniemi janne.ojaniemi at nbl.fi
Wed Aug 10 17:58:13 BST 2005


If I still can't get it look right, then you may proceed to stone me to death 
with old floppies.

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. hey 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. 
And since the networking would be done through peer-to-peer, there would be 
no disruption in the shared desktop even 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 shareddesktop 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