1. Field of the Invention
The present invention relates to a system for searching a device on a network.
2. Related Background Art
Directly service has been provided so far as a method for efficiently finding various resources (including a printer and a scanner) on a network to use them. The directory service is, so to speak, a telephone directory for a network, which is used to store various pieces of information. LDAP (Lightweight Directory Access Protocol) is a specific example of a directory system. LDAP rules is described in RFC 1777 issued by IETF. By using the directory service and thereby searching a device connected to a network, it is possible to obtain a list of network addresses of devices usable on the network.
In the case of the above conventional art, however, when designating various attributes to search a device or when designating various attributes such as presence or absence of a staple function or presence or absence of double-sided screen print and searching a device by using a network printer, only a device completely matching with search conditions including these attributes is searched and shown to a user.
Therefore, when a device completely matching with input search conditions is not present on a network, a problem occurs that re-search must be performed by re-inputting search conditions in which designation of attributes is moderated. Moreover, when a device completely matching with search conditions is not present in re-search, a problem occurs that it is necessary to perform search again by re-inputting search conditions in which designation of attributes is further moderated.
The present invention is made to solve the above problems and it is an object of the present invention to make it possible that when searching a device by designating various attributes as search conditions, a user can save the time for re-searching a desired device by re-inputting search conditions not only when a device completely matching with the search conditions is present on a network but also when the device is not present on the network.
Moreover, it is another object of the present invention to make it possible for a user to easily understand whether a displayed device meets any attribute when the search result is displayed.
To achieve the above objects, an embodiment of the present invention extracts an object-class attribute out of search conditions designated by an operator and searches a device meeting the attribute and performs a process on whether the device obtained through the search has attributes of search conditions first designated by the operator.
Other objects and features of the present invention will become more apparent from the following specification and drawings.
Embodiments of the present invention are described below by referring to the accompanying drawings.
<First Embodiment>
Among the above devices, 101, 102, 103, 111, 112, and 120 are set on the second floor and 104 and 105 are set on the first floor. Because the client 113 is a notebook PC, it is connected to LAN 100 from the first floor at present. However, the client 113 may be removed because of its portability. Moreover, the network 100 for connecting these devices to each other is connected to Internet 130 through a fire wall 120 and moreover connected with other network 140 through Internet 130.
Then, a configuration and operations of a device search server are described below.
In the table in
In this case, an object class shows a functional type of a device. For example, when a device is a printer, it is registered as a printer class (printer). Moreover, when a device has a print function, it can be registered as a printer-class device even if the device is an MFP. Furthermore, a device type shows the general function of a device. In this case, a single printer is distinguished from an MFP. In symbols from 305 up to 307, symbol 1 denotes supporting and 0 denotes not supporting. Moreover, symbol NA denotes that information for the attribute is not stored.
The data shown in
In this case, it is assumed that attributes to be controlled by database 300 for each device include an indispensable attribute that must be registered without fail and an optional attribute that does not need to be always registered.
As for this embodiment, in the database shown in
Then, operations of the device search server 112 are described below by referring to flow charts in
Then, the step S504 is started to judge whether the database 300 for the network device described for
Hereafter, for this embodiment, a case is described in which a client requests a device whose object class is a printer as a search condition.
Then, operations of a device search client are described below.
Because a printer is selected in the area 603 for designating a search attribute as an object class by the COMBO box 601 in the case of the example in
In the case of the example shown in
Symbol 602 denotes a search start button. When a user presses the button by using a keyboard 209 in
A device having an object-class printer (first line) as a first attribute, a color print function (second line) as a second attribute, a double-sided print function (third line) as a third attribute, and a stable function (fourth line) as a fourth attribute is designated.
Then, a method for extracting a second search condition to be inquired of a search server from a first search condition designated by an operator is described below.
As already described, attributes to be controlled by the database 300 for each device include an indispensable attribute which must be registered without fail and an optional attribute which does not need to be always registered. As for this embodiment, the object class 303 is an indispensable attribute and the color print 305, double-sided print 306, and staple 307 are optional attributes.
Therefore, only an indispensable attribute is extracted from the first search condition designated by an operator to generate a second search condition to be inquired of a search server.
In the example in
When a search client is started, the client first waits in step S901 until an event occurs. When an event occurs, the client obtains the event and starts step S902. In step S902, it is judged whether the event obtained in step S901 is an event generated because a user issues a system-ending command by using the keyboard 209 or a not-illustrated pointing device. If it is judged that the user issues the ending command, the program ends. However, when it is judged in step S902 that the event is not an ending-command issuing event, step S903 is started. In step S903, it is judged whether the event obtained in step S901 is generated because the user issues a device searching command by selecting a search menu 701. When the event is an event generated because a device search command is issued, step S904 is started to transmit a device search request to the device search server 112. However, when it is judged in step S903 that the event is not an event generated because the device search command is issued, step S905 is started. In step S905, it is judged whether the event obtained in step S901 is an event due to reception of an answer of a search result from the device search server 112 to the device search request transmitted in step S904. When it is judged that the event is an event due to reception of the answer, step S906 is started to display the received search result on a window 700. When the process in step S906 ends, step S901 is restarted to wait for the next event.
However, when it is judged in step S905 that the event is not an event due to reception of the answer, step S907 is started to perform other process. The other process includes, for example, re-drawing a screen when a program is started or a user moves a window on a screen. When step S907 ends, step S901 is restarted to wait for the next event.
It is assumed that an address of a device search server is previously known by writing a value input by a user through the keyboard 209 in the hard disk 211 and reading the value. However, the address is not restricted to the above case. As other method, it is also permitted to obtain the address from a network by using a technique such as a double space in a programming language Linda.
A loop returning to step S116 from step S1106 through the NO judgment is a loop for processing all pieces of device information included in a received search result (search result 801 shown in
Then, the process when fExit is FALSE In step S1108 is described below. When fExit is FALSE in S1108, step S1111 is started. In this case, various pieces of information from information not completely matching the search condition 801 except that an object class matches the condition 801 up to information one step before complete matching are included in a received search result. It is preferable to select only information as important as possible out of these pieces of information and display the information for a user. The judgment for that is performed in step S1111. In this case, “matching in a certain criterion or more” is judged when information matches two conditions or more among three designate conditions (presence of color, presence of both sides, and presence of staple), that is N-1 conditions among N conditions. Moreover, it is needless to say that it is permitted to properly set a matching-condition criterion such as N-2 or N-3 conditions.
In step S1111, it is judged whether the device information obtained in step S1107 meets two attributes or more out of three attributes (presence of color, presence of both sides, and presence of staple) of the search condition 801. If it is judged that the information meets two attributes or more, step S1112 is started. In step S1112, attributes not met by the information are checked. In the next step S1113, the CRTC 206 is controlled to update the screen and display a printer name and a network address out of the information obtained in step S1107 and conditions (attributes) unmatched in step S1112. When the process in step S1113 is completed, step S1106 is restarted to continue the next information process. However, when it is judged in step S1111 that the information does not meet two attributes or more, step S1106 is restarted.
Therefore, in this case, it is displayed in the device-name displaying area 604a that there are four devices each of whose object classes is a printer and their names are “Mr. Color”, “Second-floor high-speed machine”, “Development room printer”, and “First-floor printer”.
Moreover, presence or absence of attributes designated as search conditions for each device displayed as a search result are displayed in attribute presence/absence displaying areas 604c, 604d, and 604e. In the attribute presence/absence displaying areas 604c to 604e, symbol “◯” denotes supporting the function and symbol “—” denotes not supporting the function.
In this case, the example in
Thus, according to the first embodiment, it is possible to make a user easily understand that a searched device meets which attribute or does not meet any attribute even if the device does not completely match a search condition and save the time for the user to search a desired device again by moderating a search condition.
<Second Embodiment>
In the case of the above first embodiment, the second search condition to be inquired of a search server is extracted from the first search condition designated by an operator at the search client side.
In the case of the second embodiment, a second search condition to be inquired of a search server is extracted from a first search condition designated by an operator at the search server side.
That is, when a device matching the first search condition is not present as a result of executing search in accordance with the first search condition, the search server extracts the second search condition, executes re-search, and return the result to a search client.
When the search server PC 112 is started, it first opens a receiving port in order to receive a device search request from a search client PC 111 or 113 in step S1301. According to the above operation, when receiving a device search request from, for example, the search client PC 111, the operating system of the search server PC 112 issues a reception event and it is communicated to a device search program that the device search request is received.
Then, step S1302 is started to wait for any event to be communicated from the operating system. When any even is communicated, the server PC 112 obtains the event and starts the next step S1303. In step S1303, the server PC 112 judges whether the obtained event is an end command, that is, a system shutdown event by a user. When the obtained event is a shutdown event as a result of the above judgment, the server PC 112 closes the receiving port in step S1309 and thereafter, ends the process of the device search program.
When the server PC 112 judges in step S1303 that the obtained event is not a shutdown event, it starts step S1304 to judge whether the obtained event is an inquiry reception event sent from a search client PC. In this case, when the obtained event is an inquiry reception event, the server PC 112 starts step S1305, retrieves a search condition from a receiving packet, and stores the packet in a memory such as the RAM 203 shown in
Moreover, the server PC 112 stars step S1306, collates the database 300 in
Moreover, in step S1304, the server PC 112 judges that the obtained event is not an inquiry reception event, it starts step S1308 to perform processes other than processes of a shutdown event and inquiry reception event such as a process for updating a screen and a process for registering network address information and attribute information received from network devices 101 to 105 in the database 300 shown in
Then, the device search process performed by the search server PC 112 in step S1306 in
In the case of the device search process of this embodiment, it is first judged in step S1401 whether all search conditions stored in a memory such as the RAM 203 are already processed in step S1401. As a result, when it is judged that all search conditions in the memory are already processed, step S1402 is started to execute a re-search process. The re-search process is described later.
However, it is judged in step S1401 that not all search conditions in the memory are processed yet, step S1403 is started to retrieve one unprocessed search condition from all search conditions stored in the memory. Then, step S1404 is started to judge whether all pieces of registered device information in the data base 300 are already searched. When all pieces of registered device information are already searched as a result of the above judgment, step S1401 is restarted to process the next search condition.
Moreover, in step S1304, when it is judged that not all pieces of registered device information in the database 300 in
When the retrieved registered device information does not match the search condition as a result of the above judgment, step S1404 is restarted (in this case, the value of n is incremented), the next device information registered in the database 300 is continuously searched. However, when the retrieved registered device information matches the search condition as a result of the judgment in step S1406, step S1407 is started.
In step S1407, pieces of information for the device name 301, network address 302, device type 304 and moreover, color print function attribute 305, double-sided print function attribute 306, and staple function attribute 307 are obtained out of the registered device information which is judged as matching the search condition in step S1406. Then, in the next step S1408, the obtained pieces of information are added to search result information. When the process in step S1408 is done, step S1404 is restarted to continuously search the next device information registered in the database 300.
Thus, when searching all pieces of device information registered in the database 300 shown in
Then, operations when the search server PC 112 performs re-search are described below by referring to the flow chart in
In
In this case, when it is judged that the device completely matching the search condition received from the search client PC 111 is found, the process ends without doing anything because the device matching the search condition is already communicated to the search client PC 111 in step S1307 in
Then, step S1503 is started to execute the database search process shown in
Thus, according to the second embodiment, it is possible to make a user easily understand that a searched device meets which attribute or does not meet any attribute even if the device does not completely match a search condition and a user can save the time for performing re-search by moderating a search condition in order to search a desired device.
Moreover, because re-search is executed by extracting a second search condition from a first search condition designated by an operator at the search-server side, it is possible to univocally control the extraction process at the server side.
<Third Embodiment>
For the first embodiment, a case is described in which search results are displayed in the form of a list. A case of understandably displaying search results with icons is described as the third embodiment.
First, in step S1601, the number of attributes to be searched is obtained from a search condition temporarily stored in the RAM 203.
An example of this embodiment uses three attributes to be search (color function, staple function, and double-sided function).
In step S1602, it is judged whether all search results are processed. When all search results are processed, step S1611 is started. In step S1611, the final display process is performed so as to be understandable for a user. For example, the final process is a process for reconfiguring indications on the display screen 1704 so that devices are arranged starting with a device having the most matched attributes.
When an unprocessed search result is present in step S1602, step S1603 is started to obtain the information for one device from a search result. In step S1604, the device name 704a and IP address 704b are displayed in accordance with the information. In step S1605, it is judged whether all attributes of a search condition stored in the RAM 203 are already processed. When all attributes are already processed, step S1602 is restarted to process the next device information. An attribute is obtained from the search condition in step S1606 and it is judged in step S1607 whether the attribute matches an attribute of a device obtained from a search result. When the former matches the latter, an attribute icon corresponding to the matched attribute is displayed in the area 1704c of a device currently processed as the display process when matched in step S1608.
In step S1609, a counter for counting the number of matched attributes set to the RAM 203 for each device is incremented. The counter is used to display devices so that the devices are arranged starting with a device having the most matched attributes in the final display process in step S1611. When the attributes are not matched each other in step S1607, attribute icons corresponding to the attributes are not displayed. According to the above operations, it is possible to display which attribute matches an attribute of a search condition and which attribute does not match it as a list and make a user easily understand a search result.
Moreover, because the two attributes are the whole of the search condition, the icon 1901 showing that the attributes are completely matched each other is displayed in the area 1704a. In the case of “second-floor high-speed machine” and “development room printer”, only the staple icon 1903 is displayed in the area 1704c. Moreover, the machine and the printer are not provided with the color print function of the search condition. Therefore, the icon showing that attributes are locally matched is displayed in the area 1704a. The device “first-floor printer” is a search condition because no icon is displayed in the area 1704c. Because neither color print function nor staple function are provided and only a condition that an object class is a printer is matched, the icon 1908 showing that attributes are locally matched is displayed in the area 1704a.
Thus, according to the third embodiment, because a result for each attribute data of a search condition designated by a user is displayed in the form of an icon, an operator can intuitively understand matched attribute data and unmatched attribute data.
It is also permitted that a network device control program of the present invention is executed by the PC 200 in accordance with an externally installed program. Moreover, the present invention an be applied to a case in which the program is supplied to the PC 200 by loading an information group including a program on the PC 200 from an external storage medium by a storage medium such as a CR-ROM, flash memory, or floppy disk or through a network for electronic mail or personal-computer communication.
It is permitted to apply the present invention to a system comprising a plurality of units (such as host computer, interface unit, and reader), an integrated apparatus, or an apparatus comprising one unit.
Moreover, it is needless to say that an object of the present invention can be achieved when a storage medium storing a program code of the software for realizing functions of the above embodiments is supplied to a system or apparatus and the computer (or CPU or MPU) of the system or apparatus reads the program code from the storage medium.
In this case, the program code read out of the storage medium realizes a new function of the present invention and the storage medium storing the program code constitutes the present invention. A storage medium for supplying a program code can use any one of a floppy disk, hard disk, optical disk, photomagnetic disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, and ROM.
Moreover, by executing a program code read by a computer, functions of the above embodiments can be realized and moreover, realized when an OS working on the computer performs a part or the whole of an actual process in accordance with the program code.
Furthermore, functions of the above embodiments can be realized when a program code read out of a storage medium is written in a memory provided for a function extending board inserted into a computer or a function extending unit connected to the computer and then, a CPU provided for the function extending board or function extending unit performs a part or the whole of an actual process.
Furthermore, it is needless to say that the present invention can be applied to a case of allotting a program from a storage medium storing a program code of the software for realizing functions of the above embodiments to a requester through a communication line for personal-computer communication.
Number | Date | Country | Kind |
---|---|---|---|
11-119624 | Apr 1999 | JP | national |
11-151901 | May 1999 | JP | national |
11-264450 | Sep 1999 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
4727487 | Masui et al. | Feb 1988 | A |
5129639 | DeHority | Jul 1992 | A |
5201047 | Maki et al. | Apr 1993 | A |
5261044 | Dev et al. | Nov 1993 | A |
5511208 | Boyles et al. | Apr 1996 | A |
5559933 | Boswell | Sep 1996 | A |
5625757 | Kageyama et al. | Apr 1997 | A |
5659795 | Duvall et al. | Aug 1997 | A |
5715444 | Danish et al. | Feb 1998 | A |
5765154 | Horikiri et al. | Jun 1998 | A |
5778185 | Gregerson et al. | Jul 1998 | A |
5870741 | Kawabe et al. | Feb 1999 | A |
5872569 | Salgado et al. | Feb 1999 | A |
6026403 | Siefert | Feb 2000 | A |
6073130 | Jacobson et al. | Jun 2000 | A |
6076106 | Hamner et al. | Jun 2000 | A |
6088120 | Shibusawa et al. | Jul 2000 | A |
6101498 | Scaer et al. | Aug 2000 | A |
6166826 | Yokoyama | Dec 2000 | A |
6182083 | Scheifler et al. | Jan 2001 | B1 |
6198542 | Tabata | Mar 2001 | B1 |
6272500 | Sugita | Aug 2001 | B1 |
6292829 | Huang et al. | Sep 2001 | B1 |
6295527 | McCormack et al. | Sep 2001 | B1 |
6330565 | Nesbitt | Dec 2001 | B1 |
6332142 | LeBlanc | Dec 2001 | B1 |
6335795 | Neuhard et al. | Jan 2002 | B1 |
6348971 | Owa et al. | Feb 2002 | B1 |
6366904 | BenHadda et al. | Apr 2002 | B1 |
6470332 | Weschler | Oct 2002 | B1 |
6553368 | Martin et al. | Apr 2003 | B1 |
Number | Date | Country |
---|---|---|
05028088 | Feb 1993 | JP |
06-161685 | Jun 1994 | JP |
07-021193 | Jan 1995 | JP |
07-302267 | Nov 1995 | JP |
07302267 | Nov 1995 | JP |
09-114615 | May 1997 | JP |
09-128174 | May 1997 | JP |
09-198206 | Jul 1997 | JP |
11346216 | Dec 1999 | JP |
Number | Date | Country | |
---|---|---|---|
20030115199 A1 | Jun 2003 | US |