For the uninformed, there's some software out there to create Virtual Network Computing sessions. We've all seen PCAnywhere, right? VNC is like a lite version of PCAnywhere: You can control the mouse and keyboard of another computer, over a network connection. On one hand, there's a "that's it?" reaction, but it's still an enormously powerful function.
Here's why I'm using it right now. I've got a handheld scanner, small enough to do paperback-sized pages without having to squish the book on a flatbed scanner. Problem is, my handheld uses an ISA interface card. My computer? It doesn't have this old standard.
So, I throw together older computer parts, and create a P133, 32MB, Win98se computer with the handscanner installed.
Now, it's one thing to have to go back and forth from one computer to another, but with VNC I don't have to.
The 'scanner computer' has no mouse, keyboard, or monitor -- all that is sent to a little window on my main computer. The scanner's still attached, and I use it like normal. However, when my mouse is in the VNC window, my regular computer takes over for the scanner's computer. I can open the graphics software, tell it to scan, and do everything as though I were sitting in front of it running everything directly. Once it's scanned, I hit 'save' -- saving it to a networked drive both computers can see. Open the file on my main computer, and viola! Start up the OCR software. While that's running, I can be scanning something else.
Now, geeksters, get this: my main computer is also running an XWindows server. In another window is a system load graph for my webserver, located several miles away in a secure location. It churns away, giving a realtime display of how much webtraffic you're giving me.
If I don't want to run Photoshop locally, I could start up GIMP on my home server and do image editing there.
This gets to a point that the web can't quite achieve. The internet transfers static information all at once, making distant documents appear as local ones. "Distance" online really doesn't have anything to do with reality. It's something we've been trained on. You 'go' to a file, but there's no real departure experienced. A local file and a distant file are indistinguishable from a user standpoint. We laugh at the people who say that they've got eBay on their computer, but it's only because they haven't been trained to understand what's non-local.
The kind of software I'm running is a bit beyond this. The location of the running program is irrelevant -- it could be on this computer, on another computer, inside this house, somewhere on the internet. The concept of 'this computer' blurs, because the keyboard/mouse/monitor system isn't a closed one anymore. As I run my mouse from one end of my screen to the other, it goes from a white pointer of this local system to the gold custom mouse of the VNC computer to the standard "Big X" of the XWindows server.
The computer is now visualized as a set of independent parts. The keyboard enters data into any place the cursor blinks, local or remote. The mouse can only work in one window at a time, but it seamlessly moves from one to the other without worrying about which computer is which. The monitor recognizes all graphical data as a separate window; it doesn't care where the data comes from, as long as it understands the size, shape, and color of what's being displayed.
I recently installed PCAnywhere for a client, and showed her how she can control the computer at work from her laptop, from any location with a network connection. She was impressed -- now she could fill and print invoices from anywhere! I almost agreed, before I realized...the printer it'll print to is the local one, attached to the remotely-controlled system itself. Printers can be shared; with a little tweaking (and a VPN), it would certainly be possible to remotely control the computer, and instruct it to print to a network device attached to the controlling computer. The Network Printer is probably the first experience people have had with a shared network resource. Most office employees have become quite adept at being able to send a file to this printer or that one, depending on if they want color, speed, letterhead, etc. Networked filesystems have taught people that if they save a file to the right place, anyone else can open it like it were saved on their own computers. VNC and XWindows Allow a program to run anywhere and be displayed anywhere, regardless of where the user is sitting. It doesn't eliminate the need for a computer, but it doesn't limit a user to the resources of one computer alone. It's possible that, in the future, that icon on your desktop may or may not be a local program. Just as you can have many browser windows open, each containing data from a different place, your computer could have many windows open, each holding the display for a different place.
I can tell I'm tired, because I didn't make a real point. However, this is too cool of a concept for me to delete this post...maybe I'll think on it a bit and write more later!)