May 5th, 2024, 9:12pm
Welcome, Guest. Please Login or Register.
Pages: 1  Reply Reply  Notify of replies Notify of replies  Print Print
   Author  Topic: Enhancement Request  (Read 4362 times)
Oman
FabulaTech Forum Newbie
*



View Profile         
Posts: 2
Enhancement Request
« on: Dec 11th, 2006, 11:19am »
Quote Quote  Modify Modify

It would be nice if the server had the optional ability to reserve the USB device only if a client connects to the device.  Right now sharing the device disconnects the device from the local system.
 
Then the device would remain on the host system unless a client connected to it and removed it from the server system.
 
I'm not actually trying to real-time share the device but rather give the host the ability to use the device when not in use by the client.  It seems that losing the device entirely is not always desired.
 
Thanks
Jon
 
IP Logged
Andrew
FabulaTech Forum Moderator
Moderator
FabulaTech Forum Senior Member
*****



View Profile   WWW         
Gender: male Posts: 427
Re: Enhancement Request
« Reply #1 on: Dec 12th, 2006, 7:51am »
Quote Quote  Modify Modify

Thank you for your suggestion. Yes, you a right, we would like to implement something like this. But there are some issues we can come across.
 
You suggest us to share device only by request from a client, right? As I understand it's very useful, because the device can be used on server during that time. But as soon as request from client is received, device will be disconnected from Server and redirected to client. Right?
 
But in some cases it can be dangerous (e.g. printing can be aborted, data copying to flash drive can be aborted, etc).  That's why we allow only exclusive access to device. So, as soon as user decide he doesn't need the device, he can share it on server (or disconnect on client) for other users.
 
In any case, we are interested in your feedback and we are open for discussion. Maybe together we can think it out.
« Last Edit: Dec 12th, 2006, 7:52am by Andrew » IP Logged

Andrew Scott

FabulaTech
===================
http://www.fabulatech.com
Oman
FabulaTech Forum Newbie
*



View Profile         
Posts: 2
Re: Enhancement Request
« Reply #2 on: Dec 12th, 2006, 1:19pm »
Quote Quote  Modify Modify

Sure, I understand that.  With USB there is virtually no way to know if someone is actually "using" the device or it is just sitting there connected.   Making the server machine "auto disconnect" could potentially be dangerous if the device was in use while it was disconnected.  That's why it should only be an option that defaults to off.
 
Here is one scenario where we would use something like this:
 
We have a multi-function printer that normally is setup to be a network printer.  We sometimes need to scan with it.  The print server does not support remote scanning of course, so we go to the machine that is acting as the server and scan there.  The machine is an old machine with little memory so sometimes we have to move the printer/scanner to another machine to scan.  If we could remotely connect to the USB then we could just check the print queue (from the client machine) and if empty reassign the printer to the client for scanning then put it back to the server.
 
It was just a thought.
 
Jon
IP Logged
helpme
FabulaTech Forum Newbie
*



View Profile         
Posts: 2
Re: Enhancement Request
« Reply #3 on: Jan 19th, 2007, 3:14pm »
Quote Quote  Modify Modify

An alternative that is easier to implement (maybe it works already)
would be to allow the server and client to run on the same machine.
In this case the USB device would always be routed over the
network but the serving machine could see and use the device
through the network via loopback. This would allow you to use the
existing locking mechanism and insure that device operations are
not interrupted.
 
In fact, once this were implemented, the thing to do would be to
integrate the client functionality into the server as well. That way
anyone running the server would get this functionality without
having to install two drivers.
IP Logged
gwarble
FabulaTech Forum Newbie
*



View Profile   Email       
Posts: 1
Re: Enhancement Request
« Reply #4 on: Jan 20th, 2007, 11:09pm »
Quote Quote  Modify Modify

I agree, this an essential feature.  While potentially dangerous, it is not in all cases, so default off but the ability to turn on would be perfect.
 
My case...
 
A software-enabling usb dongle is in use at my company during the day, allowing one workstation to be used to run a specific CAM software package.  In order for some of us programmers to be able to work from home, usually for a quick change one evening, we used to have to plan ahead and bring the USB dongle...
 
Along came USB over network...
 
Now we can work from home without bring the dongle, great... BUT we still have to plan ahead by activating the USBoverNetwork Server on the machine at the end of the day, thereby disabling it for the local machine. Work from home, great, the next morning someone else (who may not know how the software works) tries to used the machine and has to know to Stop Sharing the device...
 
If the server was running, awaiting connection from a client, but not deactivating the device on the local machine until requested from a client, it could run completely in the background on the local machine, not affecting those using the software with usb dongle, until someone connected remotely...
 
 
One step further would be to have the ability to "Force" control of the remote device, or to "Ask" for control (prompting a dialog box for the server machine asking permission to take device
 
If it had both a Force and an Ask option, one could start by asking for permission... if someone is at the local machine using the device, they could deny it... but if the ask is never answered, forced control could still be taken
 
 
 
The only way now we can avoid the planning ahead while still at the server location is to Remote Desktop or VNC to the server machine and activate the software... a waste of time and too complicated for the others trying to use USBoverNetwork
 
Thanks for listening, I'd be interested in helping solve this missing feature.
Joel
gwarble@gmail.com
IP Logged
Andrew
FabulaTech Forum Moderator
Moderator
FabulaTech Forum Senior Member
*****



View Profile   WWW         
Gender: male Posts: 427
Re: Enhancement Request
« Reply #5 on: Jan 22nd, 2007, 3:44am »
Quote Quote  Modify Modify

Hi everybody,
I agree too, this is essential feature. We are going to implement some kind of "remote server control on the client side" (of course password protected). Well, it will allow the following:
- share USB device,
- stop USB device sharing,
- forced disconnect of other client
All these features will be implemented in the GUI of client program.
« Last Edit: Jan 22nd, 2007, 5:55am by Andrew » IP Logged

Andrew Scott

FabulaTech
===================
http://www.fabulatech.com
Felix
FabulaTech Forum Newbie
*



View Profile         
Gender: male Posts: 3
Re: Enhancement Request
« Reply #6 on: Feb 5th, 2007, 9:34pm »
Quote Quote  Modify Modify

Hi !
IMHO good to make check box «Allow multiple connection » in USB device properties on the server side, if check box enabled, that device is accessible in «read only mode» to multiple clients simultaneously. And implement queue manager for clients read requests to server.  
It will allow users to be connected simultaneously to «read only» devices, such as USB CD-ROM
 
And if to think, it is possible to finish up to a « read-write mode» for USB HD Drive  Smiley
 
P.S. Network share USB Drive not always the good decision
« Last Edit: Feb 5th, 2007, 10:09pm by Felix » IP Logged
Felix
FabulaTech Forum Newbie
*



View Profile         
Gender: male Posts: 3
Re: Enhancement Request
« Reply #7 on: Feb 5th, 2007, 10:13pm »
Quote Quote  Modify Modify

And position number two:
Password protected access to connect for some devices !!!
Add password string and "Use password to connect" check box in server side device properties, and clients, that known password, will connect to this device.
 
P.S. Ideal variant - add choice, password or NT security protection.
« Last Edit: Feb 5th, 2007, 11:42pm by Felix » IP Logged
Andrew
FabulaTech Forum Moderator
Moderator
FabulaTech Forum Senior Member
*****



View Profile   WWW         
Gender: male Posts: 427
Re: Enhancement Request
« Reply #8 on: Feb 6th, 2007, 7:19am »
Quote Quote  Modify Modify

Hi, Felix!
> Hi !
> IMHO good to make check box «Allow multiple
> connection » in USB device properties on the
> server side, if check box enabled, that device
> is accessible in «read only mode» to multiple
> clients simultaneously. And implement queue
> manager for clients read requests to server.  
> It will allow users to be connected simultaneously
> to «read only» devices, such as USB CD-ROM
 
Felix, great idea. But the problem is that a USB device is complex device. It is not so simple as serial port. And there is no "read-only mode" because you need to write some data to be allowed to read then.
 
Second problem that some devices may not allow to manage several sessions. I mean if some request to device form user-2 appears between of requests of user-1, it may lead to incorrect device work.
 
Felix, we are working on it for a several months, and we do not have really working solution yet... In any case, thank you.
 
> And if to think, it is possible to finish up to a
> « read-write mode» for USB HD Drive  
 
>  And position number two:
> Password protected access to connect for some
> devices !!!
> Add password string and "Use password to
> connect" check box in server side device properties,
> and clients, that known password, will connect to
> this device.
 
> P.S. Ideal variant - add choice, password or NT
> security protection.
 
Yes, thank you. It's very useful feature and we are definitely will add it to the next releases. Thank you once again!
IP Logged

Andrew Scott

FabulaTech
===================
http://www.fabulatech.com
Felix
FabulaTech Forum Newbie
*



View Profile         
Gender: male Posts: 3
Re: Enhancement Request
« Reply #9 on: Feb 7th, 2007, 1:30am »
Quote Quote  Modify Modify

Hi, Andrew!
Sorry, my English may be not good.
Thank you too, for good work. In addition to protection – add choice on client side to store or no  connection password.
 
  For 1-st idea:
How it work now: (simple example Smiley)
First client connect to USB CD-ROM or HD and go to “connected” (green) status.
Other clients in “wait” (yellow) status. User on first client copy some files from CD/HD.
 
In first case :
If operation on first client not completed, and other user logon to the server for force disconnect first client, this cause an error on first client.  
 
In other case:
Operation on first client full completed, but user from first client, go to take lunch, to bathroom (problem with diarrhea after lunch Smiley), etc. Other clients will be long time in “wait” status. Who may know  (other then admin Smiley) completed or uncompleted operation on first client, may force disconnect or no?  
 
I had little bit other idea. Not real multiple connections to physical device. Look this:
 
Server, create own single connection to physical device and redirect USB traffic between device and connected clients.
 
If check box «Allow multiple connection» selected, and this feature is enabled.
In this case queue manager must be created and server may work in two modes :
 
1-st mode – “Auto-switch”. What this?
System will work such as it work now, but with little changes.
Queue manager, implemented in server, work as an arbiter. It will create queue from clients connection requests (a stack) , change status of first client to “connect” (green), and analyze USB traffic between server  and currently connected client, and if client exceed some idle time, server automatically change client status to “wait” (yellow) and connect another client from queue. Etc.  
 
2-nd mode – “QoS–switch”
Queue manager, implemented in server, will create queue from clients connection requests, but change status of clients depending on “Connection time to live” and\or “Maximum transfer length of data block” properties.  
 
In any of two multiple connection modes, server transfer USB Device parameters to all clients (clients must know device attached to the server for install device drivers), but data transfer is switched, and server change status of currently disconnected clients to “device busy” (blinking yellow) status. If no request to connection at this time, server change status of all clients to “ready to connect” (blinking green). Client send request to connect if an application send request to device, in this case, queue manager put request to the end of queue. That is clients remain always virtual-connected to the device that OS did not lose the device, but real client-server  connection is switched with selected mode.
 
In other words, server work the same way as multitasking OS on single processor - user see two simultaneously working tasks, but really, processor use tasks switching.
 
All of this:
check box «Allow multiple connection»
mode select
idle time (h:m:s:ms)
Connection time to live (h:m:s:ms)
Maximum transfer length (byte)
may be placed to “advanced” tab of server side device properties, and only administrator can change this parameters manually, for him own risk.
« Last Edit: Feb 7th, 2007, 10:55am by Felix » IP Logged
Andrew
FabulaTech Forum Moderator
Moderator
FabulaTech Forum Senior Member
*****



View Profile   WWW         
Gender: male Posts: 427
Re: Enhancement Request
« Reply #10 on: Feb 9th, 2007, 1:10am »
Quote Quote  Modify Modify

Hi Felix,
Thank you for you very detailed report.
It's very interesting. The main problem is the following:
1) 1st client connects device, so device appears as virtual USB device on 1st client side.
2) 1st client reads some data. After some idle time,  there is no any requests from 1st client to device anymore.
 
3) Now, 2nd client wants to connect this device. OK, no problem, because the device is not used currently by 1st client.
4) So, 2nd client connects device, and the device appears as virtual USB device on 2nd client side.
 
5) Now application on 1st client side need some data from USB device. It sends request to virtual device, this request is redirected over network BUT 2nd client works with the device currently... How should we process this isuue?
 
a) return error to 2nd client, something like "cannot process request".. as result, Windows on 2nd client "thinks" that device is unplugged, so it will unload device drivers and device will disappear... Then user need to connect it manually again... or we can try to connect device automatically after some time.
 
b) we could not return error and try to send request to USB device.... I even can't imagine results... I suppose it will lead to error condition on both sides..
 
In any case, Felix, thank you once again for your non-standard ideas.
IP Logged

Andrew Scott

FabulaTech
===================
http://www.fabulatech.com
Pages: 1  Reply Reply  Notify of replies Notify of replies  Print Print

« Previous topic | Next topic »
Online Talk to our
support team or
sales department.