This documentation is archived and is not being maintained.
Field Notes Sharing a Split Screen
Kentaro Toyama is the Assistant Managing Director of Microsoft Research India (research.microsoft.com/india) and Principal Researcher of the Technology for Emerging Markets group (research.microsoft.com/research/tem), which develops technologies for economically poor communities worldwide.
© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; reproduction in part or in whole without permission is prohibited.
Extending PC access to as many people as possible is the laudable goal of Microsoft Research India, which has seen success with MultiPoint (discussed in the May 2008 issue of TechNet Magazine), a program that allows many users to interact with one PC using multiple mice.
Split Screen is another form of simultaneous shared access computing conceived by Microsoft Research India. The program sets up a single PC with two keyboards and two mice, and then adapts Terminal Services to split the monitor down the middle. Two people can then share the monitor, running separate instances of the OS and their choice of software independently on each side (research.microsoft.com/users/udaip/splitscreen.htm). For example, one person could be doing word processing while the other works on a spreadsheet.
To enable Split Screen, we use three separate instances of Terminal Server running within Windows Server® 2003 (we are currently upgrading to Windows Server 2008). The first one is a container, and it captures and redistributes all mice and keyboard events. This layer uses the same trick we used for MultiPoint, where all mouse and keyboard events are captured, together with their device IDs (Windows® automatically assigns unique IDs to USB devices as they're plugged in; these are not unique to the hardware device, but they're unique within the current instance of operation—just what's required to realize whether two mouse clicks are coming from the same mouse or from different mice). The container also draws the mouse cursors.
Within it, we open two additional instances of Terminal Server that each receive only the events relevant for one screen. In default mode, all the mouse events from the mouse with ID x, for instance, will end up in the left-hand split screen while those from ID y will end up in the right-hand split screen.
Split Screen uses Terminal Services to split a PC monitor down the middle (Click the image for a larger view)
It's important to have the container instance of Terminal Server so that we have total control of what events go where and to enable more advanced features. For instance, we can allow the right-hand cursor to cross over to the left-hand screen and simply point (perhaps for tutorial usage), or even to interact with the other window.
In this case, some portion of the right-hand mouse events would also feed into the left screen. We had also considered using virtualization technology in Windows to perform similar functions; it can be done, but we found it consumed greater resources.
Researchers were concerned people might become frustrated having only half a screen. We conducted studies in Bangalore, India, with the Hope Foundation that teaches low-income urban youth the basics of computers. Students seemed to learn just as much with Split Screen as they did when they had a single PC to themselves, at least for a limited array of IT training tasks. We also looked for ergonomic problems, but they didn't arise, even on 14" screens. Most importantly, the IT-training center was happy to be able to accommodate twice as many students with the same number of PCs.
Microsoft Research India is in discussions with Terminal Services and other Microsoft groups to determine whether Split Screen is a technology worth bringing to market. If Split Screen sounds like something you'd want to employ, please let us know what scenarios you'd like to use it in. Send e-mail to email@example.com.