Modern computing systems, such as those found in offices, schools, and homes, often consist of a number of discreet computers logically connected by a network. Modern discrete computers are often based on a popular operating systems such as Microsoft Windows or Linux. Unlike operating systems of previous generations, modern operating systems strive to be consumer friendly and attempt to allow computer novices to successfully perform essential computer related tasks. In particular, most modern operating systems include a plug-and-play installer that allows consumers, computer novices as well as the computer literate, to easily install new hardware devices. In older computers, new hardware was frequently installed by removing the cover of the computer inserting an electronics card into the backplane of the motherboard of the computer. The newest trend involves the implementation of the universal serial bus (USB) where multiple devices can be plugged into the computer with a simple connector, obviating the need to remove the cover of the computer and handle electronic computer cards. Whether devices are installed directly into the backplane of the motherboard or whether they are plugged into a USB port, operating system software corresponding to the hardware device generally called a device driver needs to be installed on the host computer and essential serves as an interface between the hardware device and the operating system. For example, when a printer is added to a computer system, the presence of the appropriate software driver causes the name of the printer to appear in printer selection menus in application programs, and performs necessary data transformations, converting print data from an application program to whatever format is required by the particular printer. In order to automate the process, in a plug-and-play system there is some kind of hardware bus driver (backplane bus driver or USB bus driver in the example previously described), that can recognize when a new device is present and trigger the plug-and-play installer of the computer to locate and load the appropriate software driver. Typically the newly attached device will communicate to the associated bus a device identifier that the play-and-play installer then can use to locate the needed corresponding driver.
Plug-and-play systems are well established for single discrete computers and for installing hardware devices on single discrete computers. However, many modern computers are on networks, and it is often very desirable to install hardware devices on the network in some fashion for general shared usage amongst the participating computers on the network. Traditional plug-and-play installers do not work for these network devices because the prior art systems depend on the devices being physically installed on the particular computer to trigger the plug-and-play installer logic. In a network scenario, devices plugged in elsewhere on the network are connected indirectly to each computer only through the network rather than through any kind of direct bus connection.
To address the problem of universally connecting hardware devices through a network rather than directly connected such devices to a particular computer, a new specification known as “universal plug-and-play” has been proposed and has been implemented by some manufacturers. Unfortunately, universal plug-and-play is a new and relatively complex specification, not backwards compatible with the well known traditional local play-and-play installers. Special coding in both new hardware devices and the operating systems is required before universal plug-and-play will be widely adopted. While such a system may eventually predominate the computer marketplace if and when the specification is universally adopted and implemented by all manufacturers, it is overkill for many simple network devices and is not present of in many of the popular, older versions of operating systems.
What is needed is a simple network friendly plug-and-play systems that can provide for consumer friendly hardware device installation in both older computing environments as well as in newer systems the state-of-the-art operating systems.
The present invention overcomes the limitations of the prior art by introducing the novelty of a network-aware virtual bus driver that both interfaces with older single computer plug-and play installers and a computer network having attached network devices. The virtual bus driver is aware of network hardware devices, but presents such devices to the local plug-and-play installer by making them appear that distance devices on the network are actually local. In the preferred embodiment, a network access point device is taught, providing a place for hardware devices to be connected to the network without being connected to a particular computer. In the preferred embodiment, web browser and web server technology is utilized to both locate and configure network devices of interest.
As a practical matter, in a general network, there are multiple computers having single computer operating systems 10, and it generally not desirable to have drivers installed on each and every computer on the network automatically when a new hardware device is installed somewhere on the network. To address the need to manage the connection between new devices on the network and the various computers, the preferred embodiment refrains from automatically firing when the hardware device 30′ detects a new device and instead teaches the addition of a web client and web server to assist in an orderly connection of new devices. Referring to
The present invention is not limited to any particular operating system, any particular network topology, or any specific plug-and-play system. As one skilled in the art will appreciate, variations in the details do not detract from the many applications of the invention. The descriptions above are provided to illustrate two embodiments, but the present invention may be manifest in many embodiments not shown. Accordingly, the illustrations above are provided for description and illustration, but not for limitation. The invention should be limited only by the claims as set forth below.