I have an USB scanner I bought a while ago. It is attached to my computer and it is working fine. Occasionally my wife has to scan pictures for herself. She works on her computer but when she has to do some scanning I have to do the scanning for her even though she could scan the pictures by herself - if the scanner was attached to her computer. This sort of scanner doesn't know client-server mode, they work directly on the computer where they are attached. I don't mind scanning, but when you have work to do and 50 pages to scan it is an annoying process: feed the page, go through Acquire Image menu, save the result, etc.
One solution to the problem would be to manually switching scanner between the two computers. It isn't very pleasant to crawl under the desks, pinpointing the right cable (among tenths of others), detaching it from one computer and attaching it to the other. And the reverse when the other person requires the scanner. Not an option for me since I am not a hardware specialist, I am a software developer after all and I refuse to solve the problems with hardware manipulation :-)
Perhaps I could use an USB switch of some sort, but then again, this solution would increase the amount of (USB) cables and the switch would have to be in the reach to operate and it will consume a bit of power.
So I went with USB over Network solution that enables the client-server scenario for USB devices. And not only scanners, the work with all sort of USB devices. Their solution is actually a redirection of USB data flow to network computers and the other way round. A server application has to be installed on the machine (Windows and Linux are supported) where the USB device is attached. Once this server application runs you can decide which USB device to share. In my case I'll share the scanner:
(it states the name of the device before sharing: ScanJet bla bla)
Once the device is shared it isn't available anymore to the host computer - USB over Network Server takes command of it. On the host computer you can still use a shared device in two ways: either you un-share it or you do it like you'd do it on client computers - install USB over Network Client. Once client is installed you have to add server's address to the list of available servers. The thing communicates over port 33000 by default, so make sure your firewall lets the traffic through (you do have a firewall, right?). Once the connection with the server is established you are given the list of shared USB devices on that server. Just find the scanner, right click and select Attach.
Server application shows that scanner is in now use:
That's it. The client computer now sees the scanner as attached to it and you can use it as such. Note: you'll need the device drivers installed on the client computer - remember, the client sees the device as attached to it. Actually, you need drivers installed only on computers where device is used, i.e. you won't need drivers on the server if you don't use the device there.
The drawback of this approach is the ownership of the device - only one client can own it at same time (you can specify whether new client can take possession of shared device even though somebody else is already using it).
Does it really work? With the version 3.4.6 I installed initially it didn't work when the host computer was running Vista. However it worked if I run VMWare Workstation with Windows XP as guest OS and routing scanner from host to guest OS and from there through USB over Network. It was a temporary hack and an experiment. I notified the Fabulatech support, they acknowledge the problem and fixed it in the current version 3.5.1. Now it works just fine. While this way of sharing USB devices isn't perfect it does elegantly solve issues when you want to share an USB device amongst many clients. It isn't free, the server part is licensed based on the amount of the device you want to share while the client is free.