A method, comprising the steps of: providing a plurality of virtual device interfaces for a target device, wherein each virtual device interface enables client control of a discrete function of the target device; providing a single shared I/O connection; and controlling concurrent communication between the target device and two or more virtual device interfaces to operate on the single shared I/O connection using a device input/output (I/O) interface to access the target device using a shared I/O module that arbitrates and coordinates I/O activity between the target device and the two or more virtual device interfaces; further comprising the steps of: assigning equal priority to virtual device interfaces executing tasks; and prioritizing messages from the virtual device interfaces based on assigned message-level priority; further comprising the steps of: placing messages in separate client queues associated with each client operating a virtual device interface; and moving messages from the client queues and placing the messages into a timeline queue in order of time and priority; further comprising the steps of: periodically determining a priority of messages in the timeline queue; detecting if potential timing collisions exist for message transmission; and providing collision notification to the virtual device interfaces. providing a plurality of virtual device interfaces for a target device, wherein each virtual device interface enables client control of a discrete function of the target device; providing a single shared I/O connection; and controlling concurrent communication between the target device and two or more virtual device interfaces to operate on the single shared I/O connection using a device input/output (I/O) interface to access the target device using a shared I/O module that arbitrates and coordinates I/O activity between the target device and the two or more virtual device interfaces; further comprising the steps of: assigning equal priority to virtual device interfaces executing tasks; and prioritizing messages from the virtual device interfaces based on assigned message-level priority; assigning equal priority to virtual device interfaces executing tasks; and prioritizing messages from the virtual device interfaces based on assigned message-level priority; further comprising the steps of: placing messages in separate client queues associated with each client operating a virtual device interface; and moving messages from the client queues and placing the messages into a timeline queue in order of time and priority; placing messages in separate client queues associated with each client operating a virtual device interface; and moving messages from the client queues and placing the messages into a timeline queue in order of time and priority; further comprising the steps of: periodically determining a priority of messages in the timeline queue; detecting if potential timing collisions exist for message transmission; and providing collision notification to the virtual device interfaces. periodically determining a priority of messages in the timeline queue; detecting if potential timing collisions exist for message transmission; and providing collision notification to the virtual device interfaces.