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