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