Patent ID: 8553257

Claim:
A communication device that is driven by an on-demand driver installed in an apparatus that includes an on-demand driver generating program that generates the on-demand driver for the communication device based on device information of the communication device, the communication device comprising: a memory that stores therein the device information of the communication device, the device information including information on functions of the communication device and including fixed non-updatable data and updatable data that is updatable from outside the communication device; a web service (WS) processing unit that receives a request for obtaining the device information from the on-demand driver generating program, sends the request and an instruction to decode content of the request to a processing unit, sends the decoded content received from the processing unit to an information obtaining unit, and receives the device information obtained by the information obtaining unit based on the decoded content, the WS processing unit being configured to process a WS-print protocol, which is a protocol for implementing a printing function of the communication device; a responding unit that receives the device information from the WS processing unit and sends the device information to the apparatus, in response to the request for obtaining the device information from the on-demand driver generating program, the request being sent in response to the apparatus being booted, the apparatus comparing the device information, including the information on the functions of the communication device, the fixed non-updatable data, and the updatable data, with previously obtained device information stored at the apparatus to determine whether an update is needed, the on-demand driver being generated in response to a determination that the update is needed, the apparatus being rebooted after the on-demand driver is generated and the on-demand driver being loaded in the apparatus after the apparatus has been rebooted; and an updating unit that is used in externally updating the device information stored in the memory.