As electronic technology advances, people are buying more and more different kinds of electronic devices, such as digital televisions, personal; computers, portable media players, cell phones and stereos.
Devices such as scanners and printers are commonly found coupled to computer systems. Scanners allow a user to generate a digital image of a printed or hand written page that can then be manipulated using a graphics editing program. Printers allow a user to generate a printed version or “hard copy” of a digitized file or image.
Generally, devices can be classified into one of two categories. The first category being network-enabled devices and the second category being non-network enabled devices. Network enabled devices can be communicatively coupled to a network while non-network enabled devices can only communicate with a local computer system directly coupled to the device and can not be shared on a network.
The various capabilities of the different kinds of devices can lead to complications with user interaction with these devices.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
A system and method for enabling sharing of devices on a network is disclosed. The technology includes a method for enabling sharing of non-network enabled devices on a network. The method includes detecting a non-network enabled device locally coupled to a first computer system, the first computer system coupled to the network. The method for enabling sharing of non-network enabled devices on a network also includes enabling a second computer system coupled to the network to access the non-network enabled device by using the first computer system as a communication interface between the non-network enabled device and the second computer system.
In order to facilitate enabling sharing of devices on a network, a device sharing enabler module enables a non-network enabled device to be shared on a network. The device sharing enabler module includes a device identifier module configured to identify the non-network enabled device locally coupled to a first computer system, wherein the first computer system is coupled to the network. The device sharing enabler module also includes a network enabled device emulator module configured to enable a second computer system coupled to the network to share the non-network enabled device by using the first computer system to emulate a network enabled device corresponding to the non-network enabled device wherein the first computer system is utilized as a communication interface between the non-network enabled device and the second computer system.
The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the technology for enabling sharing of devices on a network and, together with the description, serve to explain principles discussed below:
The drawings referred to in this description should be understood as not being drawn to scale except if specifically noted.
Reference will now be made in detail to embodiments of the present technology for enabling sharing of a device on a network, examples of which are illustrated in the accompanying drawings. While the technology for enabling sharing of a device on a network will be described in conjunction with various embodiments, it will be understood that they are not intended to limit the present technology for enabling sharing of a device on a network to these embodiments. On the contrary, the presented technology for enabling sharing of a device on a network is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope the various embodiments as defined by the appended claims.
Furthermore, in the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present technology for enabling sharing of a device on a network. However, the present technology for enabling sharing of a device on a network may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present embodiments.
Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present detailed description, discussions utilizing terms such as “emulating” “detecting”, “exposing”, “converting”, “authenticating”, “communicating”, sharing”, “receiving”, “performing”, “generating”, “displaying”, “enabling”, “scrolling”, “highlighting”, “presenting”, “configuring”, “identifying”, “reporting”, “ensuring”, “suppressing”, “disabling”, “ending”, “providing”, and “accessing” or the like, refer to the actions and processes of a computer system, or similar electronic computing device. The computer system or similar electronic computing device manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission, or display devices. The present technology for enabling sharing of a device on a network is also well suited to the use of other computer systems such as, for example, optical and mechanical computers.
With reference now to
System 100 of
System 100 also includes computer usable non-volatile memory 110, e.g. read only memory (ROM), coupled to bus 104 for storing static information and instructions for processors 106A, 106B, and 106C. Also present in system 100 is a data storage unit 112 (e.g., a magnetic or optical disk and disk drive) coupled to bus 104 for storing information and instructions. System 100 also includes an optional alphanumeric input device 114 including alphanumeric and function keys coupled to bus 104 for communicating information and command selections to processor 106A or processors 106A, 106B, and 106C. System 100 also includes an optional cursor control device 116 coupled to bus 104 for communicating user input information and command selections to processor 106A or processors 106A, 106B, and 106C. System 100 of the present embodiment also includes an optional display device 118 coupled to bus 104 for displaying information.
Referring still to
It is appreciated that the term “non-network enabled device” refers to any device that is not normally capable of being shared on a network. For example, many high end devices are Internet Protocol (IP) enabled, meaning they can be networked and shared and/or directly accessed by a plurality clients on a network. Further descriptions of non-network enabled devices are provided below in conjunction with the description of
System 100 may also include or be coupled with a device sharing enabler module 245. In one embodiment of the present technology for enabling sharing of a device on a network, the device sharing enabler module 245 enables sharing of the non-network enabled device 199 with other systems coupled to a network. In one embodiment, system 100 couples to a network via input/output device 120.
Optional cursor control device 116 allows the computer user to dynamically signal the movement of a visible symbol (cursor) on display device 118. Many implementations of cursor control device 116 are known in the art including a trackball, mouse, touch pad, joystick or special keys on alpha-numeric input device 114 capable of signaling movement of a given direction or manner of displacement. Alternatively, it will be appreciated that a cursor can be directed and/or activated via input from alpha-numeric input device 114 using special keys and key sequence commands.
System 100 is also well suited to having a cursor directed by other means such as, for example, voice commands. System 100 also includes an I/O device 120 for coupling system 100 with external entities. For example, in one embodiment, I/O device 120 is a modem for enabling wired or wireless communications between system 100 and an external network such as, but not limited to, the Internet. In one embodiment, non-network enabled device 199 is shared with another computer system on a network using system 100 as a communication interface. In one embodiment, the device sharing enabler module enables sharing of non-network enabled device 199 with other computer systems on a network. A more detailed discussion of the present technology for enabling sharing of a device on a network is found below.
Referring still to
The computing system 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the present technology. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary computing system 100.
The present technology is operational with numerous other general-purpose or special-purpose computing system environments or configurations. Examples of well known computing systems, environments, and configurations that may be suitable for use with the present technology include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The present technology may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The present technology may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer-storage media including memory-storage devices.
Devices such as scanners, printers and faxes are typically shared in offices for many reasons, including cost. The device market is slowly moving towards IP-enabled high-end devices which are networked and can be shared among many different computer systems on the network. These devices are considered “network enabled devices.” A network enabled device may, for example, communicate via a standard called “Web Services for Devices” (WSD). It is appreciated, however, that any number of communication protocols could be used by a network enabled device to be shared and to communicate on a network. It is also appreciated that the communication protocol used to enable network communication may be operating system specific. The WSD includes sub-protocols specific to a particular functionality such as printing, scanning, faxing and the like. Many operating systems include the software layer that enables a computer system to communicate with network-enabled devices.
The cost of network enabled devices, in most cases, is greater than the cost for non-network enabled devices. For this reason and for other reasons, it may not be feasible to upgrade all non-network enabled devices to network enabled devices that communicate with a standard such as WSD. For example, in the home segment, many users may have non-network enabled devices that they want to share among a plurality of computer systems coupled to a home network. With the increase of networking technology and the decrease in cost of networking equipment, many home users have networks in their homes and are unable to share non-network enabled devices over the network.
Embodiments of the present technology for enabling sharing of non-networked devices on a network enable a user to share legacy devices that may lack the communication standards to be shared over a network to share the device as if it had the functionality of a network enabled device.
In one embodiment, a non-network enabled device is emulated as a network enabled device so that it can be shared and viewed by other computer systems as if it were actually a network enabled device. This enables legacy devices that would not normally be able to be shared on a network to function as if they were network enabled devices.
It should be appreciated that the device sharing enabler module 245 could be a software module or a hardware module. For purposes of brevity and clarity, the components of the device sharing enabler module described as functional blocks and it is appreciated that any number of functional blocks described in conjunction with the device sharing enabler module 245 could implemented in either software or hardware in accordance with the present technology for enabling sharing of devices on a network.
It should be appreciated that the device sharing enabler module 245 could be a software module or a hardware module. For purposes of brevity and clarity, the components of the device sharing enabler module described as functional blocks and it is appreciated that any number of functional blocks described in conjunction with the device sharing enabler module 245 could implemented in either software or hardware in accordance with the present technology for enabling sharing of devices on a network.
In one embodiment, the device sharing enabler module 245 enables an emulated network enabled device 299 to be visible and/or accessible to computer system A 202. The emulated network enabled device 299 functions as if it were actually a network enabled device from the perspective of computer system A 202. It is appreciated that the emulated network enabled device 299 is an emulation of the non-network enabled device 199, as shown by the dotted lines.
In other words, from a user standpoint at computer system A 202, there wouldn't be a perceived difference between using the emulated network enabled device 299 or an actual network enabled device coupled to the network 260. In one embodiment, computer system B 220 serves as a communication interface between the non-network enabled device and computer system A 202.
It is appreciated that any number of computer systems may be coupled to network 260. For brevity and clarity,
In one embodiment, the non-network enabled device 199 communicates via a first communication protocol while the computer system A 202 communicates via a second communication protocol which may be different from the first communication protocol. For example, the computer system A 202 may communicate by a protocol that is associated with communication between network enabled devices such as WSD, as described above. In contrast, the non-network enabled device 199 may communicate via a protocol that is associated with communication between non-network enabled devices, for example, a device driver interface communication protocol which may or may not be specific to the non-network enabled device 199.
To resolve the differences in communication protocols, the device sharing enabler module may convert communication of the first protocol to communication of the second protocol and vice versa. By converting the communications between the two protocols, the computer system A 202 is enabled to share the non-network enabled device 199.
For purposes of brevity and clarity, the device sharing enabler module 245 is illustrated as being part of computer system B 220. It is appreciated that the device sharing enabler module could also be an intermediary device between computer system B 220 and the non-network enabled device 199.
In one embodiment, the device identifier module 310 may access information associated with any identified devices. For example, the device identifier module 310 may access information such as device driver information, communication protocol information, etc. It is appreciated that the device identifier module 310 may access information associated with the identified device(s) directly from the identified device(s), from the computer system the device is locally coupled to or any other source, such as network 260 of
In one embodiment, the device sharing enabler module 245 may also include a network enabled device emulator module. The network enabled device emulator module 320 may be configured to enable sharing of a non-network enabled device to be shared on a network. In one embodiment, the network enabled device emulator module 320 emulates a network enabled device that can be exposed to computer systems on a network such that a non-network enabled device can be shared on the network. In one embodiment, a device exposer module 330 exposes the emulated network enabled version of the non-network enabled device to the network and enables sharing of a non-network enabled device to at least one computer system coupled to the network but is not directly coupled to the non-network enabled device.
As described above, the device sharing enabler module 245 can be utilized as a communication interface between a network and a non-network enabled device such that the non-network enabled device can be shared with other computer systems on the network. In one embodiment, a communication protocol converter 340 is configured to convert a communications between the non-network enabled device and other computer systems that share the device over the network.
In one embodiment, the communication protocol converter 340 converts communication that is associated with network enabled communications to communication that is associated with non-network enabled communications and vice-versa. In other words, the communication protocol converter 340 enables sharing of a non-network enabled device on a network by enabling seamless communication between the non-network enabled device and computer systems on the network communicating with the non-network enabled device even though they may be communicating via different protocols. In short, the communication protocol converter 340 translates between a plurality of communication protocols so that the devices can communicate via different protocols seamlessly which enables sharing of a non-network enabled device on a network.
In one embodiment, a computer system attempting to share a non-network enabled device on a network may need to be authenticated prior to gaining access to the non-network enabled device. In one embodiment, a device authenticator module 350 authenticates a computer system prior to sharing the non-network enabled device on the network. In one embodiment of the invention, the device authenticator module 350 communicates with the device exposer 330 and prevents the device exposer 330 from exposing devices prior to successful authentication.
As stated previously, a non-network enabled device can be shared on a network and be controlled by a computer system on the network that is not locally coupled to the non-network enabled device in accordance with the present technology. In one embodiment, a graphical user interface associated with the computer system on the network that is not locally coupled to the non-network enabled device can be used to generate command instructions for controlling the non-network enabled device shared over the network. A graphical user interface as such is described in conjunction with
In one embodiment, the command instructions are received by a command receiver module 360. The command receiver module 360 may send the command instructions to the communication protocol converter 340 so that the command instructions are converted to a protocol understood by the non-network enabled device.
For purposes of brevity and clarity, the modules (310, 320, 330, 340, 350 and 360) of the device sharing enabler module 245 are presented as being part of the device sharing enabler module 245 as an example. However, it is appreciated that the configuration of the device sharing enabler module 245 could be different, for example, one or more of the modules may reside outside the device sharing enabler module 245.
For example, a user interface 420 associated with computer system A 202 may be configured to control network enabled devices by communicating via protocol A 450. The device sharing enabler module of the present technology enables the computer system A 202 to share a non-network enabled device as if it actually was a network enabled device.
At 502, method 500 includes detecting a non-network enabled device locally coupled to a first computer system wherein the first computer system is coupled to a network. In one embodiment, 502 includes determining device attributes associated with the non-network enabled device and/or device attributes associated with a second computer system coupled to the network that wants to share the non-network enabled device over the network.
At 504, method 500 includes enabling a second computer system coupled to the network to access the non-network enabled device by using the first computer system as a communication interface between the non-network enabled device and the second computer system. In one embodiment, a device sharing enabler module coupled to the first computer system performs 504.
At 506 the present technology exposes the non-network enabled device to the second computer system as a network enabled device by emulating a communication protocol associated with network enabled device communication. In one embodiment, a graphical representation of the non-network enabled device is provided to a user interface associated with the second computer system which can be graphically presented as an emulated network enabled device.
508 includes converting network enabled device communication associated with a first communication protocol to non-network enabled device communication associated with a second protocol. 508 can also include converting non-network enabled device communication to network enabled device communication. In one embodiment, the non-network enabled device communication protocol is associated with a device driver interface local to the first computer system and associated with the non-network enabled device.
At 510, method 500 includes authenticating the second computer system prior to enabling access to the non-network enabled device at 504.
It is appreciated that the various components of method 500 can be executed differently from how it is presented in
Although the subject matter has been described in a language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.