Device management device, and recording medium storing a device management program

Updating a database is accelerated. A device management device manages a device having a database, and includes: an acquisition unit configured to acquire database state information from the device; and an updating unit configured to send update data for updating the database to the device, and cause the device to update the database based on the update data. The updating unit selectively executes, based on the database state information, a first updating process of sequentially sending the updated portions of the update data to the device to change the updated portions of the database; or a second updating process of sending all of the update data to the device to refresh the complete database.

BACKGROUND

1. Technical Field

The present invention relates to a device management device, and a recording medium storing a device management program.

2. Related Art

Updating databases stored by devices may be necessary.

As a related technology, JP-A-2010-199671 describes an address book management device that runs an address book manager application configured to extract the fax number of the sender and the name of the addressee from e-mail messages received through an e-mail program, and registers the fax number and addressee in the address book of the fax machine.

Faster updating of the database was required.

The invention is directed to the foregoing problem, and provides a device management device, and a recording medium storing a device management program, that contribute to updating a database more quickly.

SUMMARY

One aspect of the invention is a device management device that manages a device having a database, including: an acquisition unit configured to acquire database state information from the device; and an updating unit configured to send update data for updating the database to the device, and cause the device to update the database based on the update data. The updating unit selectively executes, based on the database state information, a first updating process of sequentially sending the updated portions of the update data to the device to change the updated portions of the database, or a second updating process of sending all of the update data to the device to refresh the complete database.

Thus comprised, when executing the second updating process is selected based on the database state information, the updating unit overwrites the entire database by sending all updated data to the device, and can therefore update the database quickly (in a short time) by the updating method most appropriate to the state of the database.

In another aspect of the invention, the updating unit determines, based on the database state information, if at least one field of the database is locked; executes the first updating process to change fields of the database that are not locked based on the updated portions if at least one field of the database is locked; and executes the second updating process if no field of the database is locked.

When there are no locked fields in the database, this configuration enables quickly updating the database by executing the second updating process.

In another aspect of the invention, the database is an address book containing multiple addresses of data transmission destinations, and the address set as the destination of the data transmission function of the device may be the locked field of the database.

When an address set as the destination to which data is sent by the data transmission function of the device is stored in an address book (database), this configuration avoids disrupting the data transmission function of the device by updating the entire database.

In another aspect of the invention, the updating unit determines if the device is compatible with a specific protocol used for transmission for the second updating process, and if the device is compatible with the specific protocol, selects executing the first updating process or second updating process based on the database state information.

By the updating unit first determining if the device is compatible with a specific protocol used for communication in the second updating process, this configuration prevents unnecessarily selecting the updating process based on database state information.

The updating unit may use SNMP (Simple Network Management Protocol) for communication for the first updating process, and HTTP (Hyper Text Transfer Protocol) for communication for the second updating process, for example.

In another aspect of the invention, the device management device also has an update data generator configured to generate the update data. The acquisition unit acquires the database from the device; and the update data generator displays the acquired database in a specific screen, receives edits of the database, and generates the update data according to the received edits.

This configuration enables easily receiving database edits from the user, and reflecting the received edits in the updated database.

In another aspect of the invention, the update data generator stores, without reflecting in the update data, the content of edits of a locked field, which is the portion of the database determined to be locked based on the database state information; and when a locked field of the database is determined to have been unlocked based on new database state information acquired by the acquisition unit from the device after edited content was stored, externally reports that edited content of the locked field is stored.

This configuration stores edited content that the user input intending to edit the database but which was not reflected in the updated database, and then informing the user when using that edited content in the database becomes possible.

The technical concept of the invention is not limited to the category of a device management device, and may also be expressed as a method (device management method) including the processes and steps executed the device management device, and as a program causing a computer to execute these processes and steps. The invention may also be configured as a system including a device management device and a device, and as a device that is managed by the device management device.

DESCRIPTION OF EMBODIMENTS

A preferred embodiment of the present invention is described below with reference to the accompanying figures. The figures show examples convenient for describing the invention, and the invention is obviously not limited thereby.

1. System Summary

FIG. 1is a block diagram illustrating important configurations in a system1according to this embodiment of the invention. This system1may be referred to as a device management system, or a database management system, for example. The system1includes a device20and a device management device10that manages the device20.

The device20is a device storing a database27that may be updated. The device20may be, for example, a multifunction device including multiple functions such as a printing capability, scanning capability, fax transmission capability, and e-mail communication capability. The device20may therefore also be referred to as a printer, a scanner, a fax machine, or a communication device.

The device management device10may be embodied by, for example, a server, a personal computer (PC), a smartphone, a tablet computer, or a cell phone. The device management device10and device20of the system1are connected to communicate by wire or wirelessly. The device management device10and device20may connect through a network (such as the Internet or a LAN).

In the example inFIG. 1, the device management device10includes a controller11, display13, and operation input unit14.

The controller11is configured with IC devices including a CPU, ROM, RAM, or other type of memory media. In the controller11, the CPU executes operating processes according to a program (such as a management program12) stored in ROM, for example, using RAM or other working memory. The device management device10also has a communication interface15. The communication interface15is compatible with communication standards for communicating with external devices (such as devices20), and is connected to devices20through a LAN or other network, for example.

The controller11embodies the functions of a data acquisition unit12a, update data generator12b, and database updater12cby means of the CPU running the management program12.

The display13is a means for visually presenting information, and may be an LCD panel, OLED display panel, or other. The display13may be a configuration combining a display and a drive circuit for driving the display.

The operation input unit14is a means for receiving user operations, and may be embodied by physical buttons, a touch panel, a mouse, or a keyboard, for example. If a touch panel, the operation input unit14may also embody the function of the display13. The display13and operation input unit14may also be collectively referred to as an operating panel, for example.

The device20has a controller21, storage22, display23, operation input unit24, and processing unit25.

The controller21is configured with IC devices including a CPU, ROM, RAM, or other type of memory media. In the controller21, the CPU executes operating processes according to a program stored in ROM, for example, using RAM or other working memory.

A database27and device management information28are stored in the storage22. The storage22may be part of the controller21.

The display23and operation input unit24may be embodied in the same way as the display13and operation input unit14.

The device20also has a communication interface26compatible with communication standards for communicating with external devices (such as the device management device10).

The processing unit25is the generic term for a configuration that specifically embodies the functions of the device20. For example, the processing unit25may include various mechanisms and configurations (configurations including software applications), such as a print unit25athat prints on print media according to print commands from an external device; a scanner25bthat optically reads a document and generates a read result (image data); a fax communicator25dthat sends and receives facsimiles; and a mail communicator25cthat sends and receives e-mail.

Note that while not shown inFIG. 1, a device that connects to the communication interface15of the device management device10is obviously not limited to the single unit (single device20) shown in the figure. It will also be obvious that the device20may communicatively connect through the communication interface26to external devices other than the device management device10(such as a personal computer or fax machine).

2. Database Acquisition Process

FIG. 2is a flow chart of the database acquisition process executed by the controller11running the management program12.

When the database acquisition process starts, the controller11has already identified the external device for which to acquire the database. For example, the controller11displays a specific user interface on the display13. The controller11then receives the selection of the device for which to acquire the database. The device is selected from among the devices the device management device10can currently recognize through the communication interface15by a user operation through the user interface (an operation using the operation input unit14). In this example, the controller11thereby identifies the device20as the device for which to acquire the database.

In step S100, the controller11(data acquisition unit12a) acquires communication support information from the device (in this example, device20) identified as the device from which to acquire the database. The communication support information includes at least information indicating the communication protocol used by the device20. In this example, when a particular communication protocol is referred to as the first communication protocol, a protocol enabling communicating a large amount of data in a shorter time than the first communication protocol is referred to as a second communication protocol. For example, if the first communication protocol is SNMP (Simple Network Management Protocol), an example of a second communication protocol is HTTP (Hyper Text Transfer Protocol). SNMP is a protocol for managing by an SNMP manager devices (SNMP agents) connected to a TCP/IP (Transmission Control Protocol/Internet Protocol) network.

This embodiment supposes that the device management device10is a communication device that is compatible with both the first communication protocol and second communication protocol. The device20is a communication device that is compatible with at least the first communication protocol. Therefore, the communication support information is information indicating whether or not the device20is compatible with the second communication protocol.

In step S100, the data acquisition unit12arequests communication support information from the device20through the communication interface15by communication using the first communication protocol.

The communication support information is, for example, information contained in a MIB (Management Information Base). An MIB is the device information belonging to an SNMP agent (device20in this example), and is an information group that can be accessed by a unit called an object. The device management information28stored in storage22may be considered such an MIB. In response to the request, the device20sends its communication support information through the communication interface26using the first communication protocol to the SNMP manager (the device management device10in this example) that sent the request. As a result, the data acquisition unit12acan acquire the communication support information of the device20.

The communication support information is, for example, a flag indicating whether or not the device20is compatible with the second communication protocol. Alternatively, the communication support information may include a specific URL (Uniform Resource Locator) written in the MIB. The URL identifies the location of the database27the device management device10can access by HTTP (second communication protocol) to acquire the database27of the device20. Therefore, if such a URL is contained in the communication support information, the device20can be considered compatible with the second communication protocol.

In step S110, the data acquisition unit12a, based on the communication support information acquired in step S100, determines if the device20is compatible with the second communication protocol. If the device20is compatible with the second communication protocol (step S110: Yes), the data acquisition unit12agoes to step S120. If the device20is not compatible with the second communication protocol (step S110: No), the data acquisition unit12agoes to step S130.

In step S120, the data acquisition unit12acommunicates with the device20through the communication interface15using the second communication protocol, and acquires the entire database27stored by the device20. In this event, the data acquisition unit12afunctions as a browser using HTTP, for example, connects to the device20identified by the URL, and sends a command (Get method) for acquiring the database27. In response to the command, the device20sends to the device management device10an HTML file (Hyper Text Markup Language) expressing the database27. As a result, the data acquisition unit12acan acquire the complete database27of the device20.

The database27of the device20is, for example, an address book storing multiple addresses (contacts) to which information may be sent. The address to which information is sent may be, for example, an e-mail address, a fax number, or the path to a folder (directory) reserved on a storage medium of another type of external device. The address book may also be referred to as an address directory or contact list, for example.

FIG. 3shows an example of part of a database27.FIG. 3shows the database27in a text-based format. In the example inFIG. 3, each address entry includes the Name, Address, and other attributes of the addressee (contact). The database27may contain, for example, information about several thousand or more contacts.

In step S130, the device20acquires the database27in segments by the data acquisition unit12acommunicating through the communication interface15using the first communication protocol. For example, if the first communication protocol is SNMP, data is transmitted repeatedly in units of a relatively small size of 255 bytes or less between the device management device10and device20. As a result, the data acquisition unit12areceives part of the information in the database27sequentially in packets from the device20until the entire database27has been received.

In steps S120and S130, the data acquisition unit12aacquires database27state information in addition to the database27. Database27state information is information indicating whether or not a particular block (field) of information (such as the Address) registered in the database27is locked. For example, if the address book database27contains 2000 addresses, the database27state information indicates, for each of the 2000 addresses, whether a particular address is locked. The database27state information is also part of the device management information28(MIB).

When an address is set as the transmission destination of the data transmission function of the device20, that address is said to be locked.

For example, suppose the device20has an automatic fax relay function. When the fax communicator25dreceives a fax signal from an external device and an e-mail address was previously set as the destination, the mail communicator25cuses the automatic fax relay function to automatically send the received content to that e-mail address. When the fax communicator25dreceives a fax signal from an external device and a fax number was previously set as the destination, the mail communicator25cuses the automatic fax relay function to automatically send the received content to that fax number.

In another example, the device20has an automatic scanned document relay function. The automatic scanned document relay function automatically sends image data generated when the scanner25bscans a document to the folder previously set as the destination.

The e-mail address and fax number that may be previously set as the destination to render the automatic fax relay function, and the path to the folder previously set as the destination to render the automatic scanned document relay function, are examples of locked addresses.

In other words, when an address registered in the database27of the device20is set as the destination to which information is sent by the data transmission function of the device20, information indicating that the address changed from the unlocked state to the locked state is written to the device management information28(MIB) as a type of database27state information. When an address registered in the database27of the device20is removed as the destination of the data transmission function of the device20, information indicating that the address changed from the locked state to the unlocked state is written to the device management information28(MIB) as a type of database27state information.

Locked means that the value stored in that field cannot be changed. Acquiring the database27state information in steps S120and S130is done by the data acquisition unit12acommunicating with the device20through the communication interface15using the first communication protocol. Because the database27state information is part of the device management information28(MIB), the data acquisition unit12asequentially acquires required information (the database27state information) from the MIB in segments by communicating with the device20according to the first communication protocol.

After executing step S120or step S130, the data acquisition unit12aends the database acquisition process. The data acquisition unit12astores the data acquired from the device20in step S120or step S130in a specific storage area of the device management device10.

3. Database Editing Process

FIG. 4is a flow chart of the database editing process embodied by the controller11executing the management program12. The database editing process is executed after the database acquisition process (FIG. 2).

In step S200, the controller11(update data generator12b) displays on the display13an editor for editing the database27acquired in step S120or S130of the database acquisition process. The update data generator12bin this example displays an editor presenting the content of the database27in a spreadsheet format. This editor is another type of user interface.

Next, the update data generator12breceives edits of the database27(step S210). More specifically, the user inputs to the editor displayed on the display13by operating the operation input unit14, and edits the content of the current database27as desired. However, the update data generator12bdoes not accept edits of information in the database27that is locked (such as a locked address). Whether a particular address is locked can be determined based on the database27state information acquired as described above. For example, the update data generator12bmay disable input from the user by displaying the field containing a locked address grayed out in the editor on the display13.

The update data generator12bthen generates update data according to the edits received in step S210(step S220). In this example, the device management device10overwrites the database27currently stored with the edited content accepted in step S210. This generates an edited database27, that is, update data. As a result, unlocked addresses (fax numbers or e-mail addresses, for example) may be changed in the database27stored by the device management device10.

4. Database Updating Process

FIG. 5is a flow chart of the database updating process rendered by the controller11executing the management program12. The database updating process is executed after the database editing process (FIG. 4).

In step S300, the controller11(database updater12c), based on the communication support information already acquired in step S100(FIG. 2), determines if the device20is compatible with the second communication protocol. The same operation performed in step S110(FIG. 2) is performed in step S300. If the device20is compatible with the second communication protocol (step S300: Yes), the database updater12cgoes to step S310. If the device20is not compatible with the second communication protocol (step S300: No), the database updater12cgoes to step S330.

In step S310, the database updater12c, based on the database27state information already acquired in step S120or step S130(FIG. 2), determines if there is at least one locked data field (address) in the database27. If there is at least one locked data field (address) in the database27(step S310: Yes), the database updater12cgoes to step S330. If there is not at least one locked data field (address) in the database27(step S310: No), the database updater12cgoes to step S320.

In step S330, the database updater12c, by communicating with the device20through the communication interface15using the first communication protocol, sequentially sends the updated data generated in step S220(FIG. 4) one part at a time, that is sends part of the update data, to the device20. Of the update data (edited database27), the portion that was actually overwritten by the edits in step S210is the part of the update data that is sent. By sequentially sending this part of the data to the device20, the device20can update the database27in segments (update the parts of the database27that changed). Each time a block of data is sent from the device management device10by the first communication protocol is received, the device20updates (overwrites) that part of the database27stored by the device20. Updating the database27by such data blocks is referred to as a first update.

Note that in the database editing process (FIG. 4), information that is locked in the database27cannot be edited. As a result, the updated portion of the edited data is edited data that is not locked in the database27. Therefore, the first update, by sequentially sending parts of the edited data to the device20, results in parts of the database27that are not locked on the device20being updated by the updated parts that are sent.

However, in step S320, the database updater12c, by communicating with the device20through the communication interface15using the second communication protocol, sends all of the updated data generated in step S220(FIG. 4) to the device20in a batch. By sending the updated data in a single batch to the device20, the entire database27can be updated at once on the device20. More specifically, the device20overwrites the database27stored on the device20with the updated data transmitted from the device management device10using the second communication protocol. Updating the entire database27by the updated data in this way is referred to as a second update. Note that even though the entire database27stored by the device20is overwritten, only those parts of the database27on the device20that correspond to the parts that were edited in the database editing process (FIG. 4) are actually changed.

In this embodiment of the invention, a device management device10that manages a device20having a database27comprises a data acquisition unit12athat acquires database27state information from the device20, and a database updater12cthat sends update data for updating the database27to the device20, causing the database27to be updated according to the update data. The database updater12cchooses whether to execute a first update (step S330) or a second update (step S320). In the first update (step S330), the database updater12csequentially sends to the device20the parts of the data that were updated based on the database27state information, causing the device20to update only the parts of the database27that were changed. In the second update (step S320), the database updater12csends the updated data to the device20in a single batch to update the entire database27.

Therefore, when executing the second update is selected based on the state information, the updated data is transmitted in a single batch to refresh the entire database27using a high speed second communication protocol, and the database27, which in many cases contains a large amount of data, can be updated quickly (in a short time).

In this embodiment, the database updater12cdetermines based on the database27state information if one or more parts of the database27are locked (step S310). If at least part of the database27is locked (step S310: Yes), the database updater12cupdates the parts of the database27that are not locked by sending the changed parts of data in the first update process. If no part of the database27is locked (step S310: No), the second update is executed. When no part of the database27is locked, this configuration enables updating the database27quickly by executing the second update process (step S320). More specifically, the database27updating process can be executed quickly appropriately to the state of the database27.

In the example described above, the database27is an address book storing numerous addresses for data transmission, and the address set as the destination to which data is sent by the data transmission function of the device20is the part (field) that is locked. When part of the database27is determined to be locked (step S310: Yes), even if the second update process is executed (step S320), there is the possibility of unexpected changes to addresses that should not be changed (such as the address set as the destination address of the data transmission function of the device20) and the operation of the data transmission function becoming unreliable, but the embodiment described above can avoid destabilizing the operation of the data transmission function.

In the embodiment described above, the database updater12cdetermines if the device20is compatible with a specific protocol (second communication protocol) used for communication in the second update process (step S300), and if the device20is compatible with the second communication protocol (step S300: Yes), selects executing the first update or second update process based on the database27state information (step S310). By determining if the device20is compatible with the second communication protocol before the selection based on the database27state information (step S310), making an unnecessary selection based on the database27state information (step S310) can be prevented.

In this embodiment of the invention the device management device10has an update data generator12bthat generates update data; the data acquisition unit12aacquires a database27from the device20(FIG. 1); and the update data generator12bdisplays the acquired database27in a specific window (editor), receives edits to the database27, and generates update data based on the accepted edits (FIG. 4). Thus comprised, user edits of the database27can be easily accepted, and the accepted edits can be reflected in changes to the database27.

6. Other Embodiments

The invention is not limited to the foregoing embodiments, and can be varied in many ways as described below.

When receiving edits of the database27through the editor (step S210), the update data generator12bdoes not accept edits of areas (locked areas) of the database27that are determined to be locked based on the database27state information. However, the update data generator12bmay store edited content of these locked areas without reflecting the changes in the update data generated in step S220. After the edit is stored, the data acquisition unit12aexecutes the database acquisition process (FIG. 2) again, and acquires new state information from the device20. If a part of the database27that was previously locked is determined to have been unlocked based on the new database27state information acquired from the device20, the update data generator12breports externally (to the user) that edited content for that locked area is stored (the area corresponding to the area previously locked in the database27).

Reporting to the user may be done by displaying a specific message in the editor, or reporting by audio output from a speaker (not shown) of the device management device10, for example. When the user acknowledges the report, the user can view through the editor the edited content that is currently stored by the device management device10and was not accepted during the previous edit of the database27, and input the edited content to the current editor screen. As a result, the user can reflect content that was not reflected in the update data during the previous edit of the database27in the data that is updated during the current database27editing process.

The first communication protocol and second communication protocol are not limited to the specific examples described above (SNMP, HTTP). For example, the second communication protocol may be by HTTPS (Hyper Text Transfer Protocol Secure), or another protocol suitable for high speed transmission of a large amount of data.

If in the database update process (FIG. 5) the database updater12cdetermines Yes in step S300and Yes in step S310, a third option that is not step S320or step S330may be executed. In this third option, the database updater12c, by communicating through the communication interface15using the second communication protocol, sends all of the update data generated in step S220(FIG. 4) to the device20. The device20that receives the updates database may then overwrite, based on the changed parts of the update data, the parts of the database27stored by the device20that were changed (while avoiding changing locked portions). This combination of batch transmission of the update data to the device20, and partially updating the database27stored on the device20based on the changed portions, may be referred to as a third update.

In the embodiment described above a controller11having a CPU, ROM, and RAM embodies functions including the data acquisition unit12a, update data generator12b, and database updater12cin software by running the management program12, but some of these functions may be embodied in hardware.

The entire disclosure of Japanese Patent Application No. 2016-180753, filed Sep. 15, 2016, is expressly incorporated by reference herein.