This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2013-010065 filed Jan. 23, 2013.
(i) Technical Field
The present invention relates to a plug-in distribution system, an image processing apparatus, and a plug-in distribution control method.
(ii) Related Art
In a system in which single or plural multifunction devices and a server are connected to a network, it may be possible to distribute plug-ins used for extending features of the multifunction devices from the server to the multifunction devices. In this case, it is desirable to manage redistribution of plug-ins and a degree of the usage of plug-ins in an appropriate manner.
According to an aspect of the invention, there is provided a plug-in distribution system including a distribution server and an image processing apparatus. The distribution server distributes a plug-in. The image processing apparatus is connected to the distribution server via a network and receives a plug-in from the distribution server or another image processing apparatus and uses the received plug-in. The plug-in includes usage settings data that defines at least one of the number of usage times and transfer permissions concerning the plug-in, which are conditions to be imposed when the plug-in is used in the image processing apparatus. The image processing apparatus controls at least one of the usage and the transfer of the plug-in by using the usage settings data.
An exemplary embodiment of the present invention will be described in detail based on the following figures, wherein:
An exemplary embodiment of the present invention will be described below with reference to the drawings. The term “plug-in” discussed in this exemplary embodiment refers to a program which is executed in cooperation with a certain program in order to extend features of this certain program.
In
The multifunction device 10 has various basic functions (features), such as a function of scanning documents, a function of transferring image data obtained by scanning documents to the distribution server 100 via the network 16, a function of downloading image data from the distribution server 100, and a function of viewing/printing image data. The multifunction device 10 also has a function of requesting the distribution server 100 to distribute a plug-in for extending the functions (features) of the multifunction device 10, a function of downloading a plug-in returned from the distribution server 100 in response to a request made by the multifunction device 10, a function of installing and using a downloaded plug-in, and a function of transferring a downloaded plug-in to the multifunction device 12 or 14 if necessary. The other multifunction devices 12 and 14 have functions similar to those of the multifunction device 10.
The scanner 20 scans a document 36 and forms an image of the document 36 into image data, and stores the image data in the RAM 26. The format of the image data is not particularly restricted, and may be, for example, Portable Document Format (PDF).
The operation panel 22 sets various parameters used when a user scans the document 36 by using the scanner 20. The operation panel 22 also sets various settings used when a user transfers (uploads) image data obtained by scanning the document 36 to the distribution server 100 and sets various settings used when a user views/prints a document stored in the distribution server 100. The operation panel 22 also sets various settings used when a user requests the distribution server 100 to distribute a required plug-in or when a user transfers a plug-in to the multifunction device 12 or 14.
The storage device 28 stores a processing program and plug-ins downloaded from the distribution server 100, and also stores various items of image data downloaded from the distribution server 100.
The CPU 24 reads and executes the processing program and plug-ins stored in the storage device 28 so as to control operations of the elements of the multifunction device 10 in accordance with the processing program and the plug-ins. More specifically, the CPU 24 transfers image data to the distribution server 100 via the communication I/F 30 in accordance with a request set by the operation panel 22. The CPU 24 also downloads image data stored in the distribution server 100 in response to a request set by the operation panel 22, and displays the downloaded image data on the operation panel 22 so as to allow a user to view the image data. At the same time, the CPU 24 outputs the downloaded image data to the printer 32 and causes the printer 32 to print the image data. Additionally, the CPU 24 controls the usage of a plug-in in accordance with usage settings appended to the plug-in. The usage settings will be discussed later.
Plug-ins 50 are stored in a memory of the distribution server 100, and upon receiving a plug-in request command from the CPU 24 of the multifunction device 10, a CPU of the distribution server 100 reads a requested plug-in 50 from the memory in response to the plug-in request command, and distributes the plug-in 50 to the multifunction device 10 via the network 16.
Distribution settings data (or a distribution settings file) 52 and usage settings data (or a usage settings file) 54 are appended to a plug-in 50 in advance. The distribution settings data 52 indicates conditions to be imposed when the distribution server 100 distributes the plug-in 50 to the multifunction device 10 or another multifunction device. The usage settings data 54 indicates conditions to be imposed when the plug-in 50 is used in the multifunction device 10 or another multifunction device. The distribution settings data 52 and the usage settings data 54 are appended to each plug-in 50. The content of the distribution settings data 52 and that of the usage settings data 54 are different according to the type of plug-in 50. Accordingly, the distribution settings data 52 and the usage settings data 54 may be considered as metadata of the plug-in 50.
Upon receiving a request command for a plug-in 50 from the multifunction device 10, the distribution server 100 accesses the distribution settings data 52 of the plug-in 50, analyzes the content of the distribution settings data 52, and then determines whether or not it is possible to distribute the plug-in 50 to the multifunction device 10. If the distribution server 100 determines that it is possible to distribute the plug-in 50, it distributes the plug-in 50 to the multifunction device 10.
Meanwhile, the CPU 24 of the multifunction device 10 analyzes the usage settings data 54 appended to the plug-in 50 distributed from the distribution server 100 and controls the usage of the plug-in 50. For example, if the usage settings data 54 contains data concerning a restriction on the number of usage times of the plug-in 50, the multifunction device 10 uses the plug-in 50 in accordance with the restricted number of uses indicated in the data. If the usage settings data 54 contains data concerning a restriction on the transfer of the plug-in 50 to the other multifunction devices 12 and 14, the multifunction device 10 transfers the plug-in 50 in accordance with transfer conditions indicated in the data.
The distribution of a plug-in 50 is controlled in the distribution server 100 in accordance with the distribution settings data 52, and the usage of a plug-in 50 is controlled in the multifunction device 10 in accordance with the usage settings data 54. In other words, the distribution of the plug-in 50 is controlled by using the distribution settings data 52 appended to the plug-in 50, and the usage of the distributed plug-in 50 is controlled by using the usage settings data 54 appended to the plug-in 50.
The distribution settings data 52 defines an IP address, which serves as an ID for specifying a distribution destination multifunction device, and the number of distribution times. The usage settings data 54 defines the number of usage times and transfer permissions, and more specifically, COPY/MOVE permission settings, concerning a certain plug-in. In this case, the number of usage times refers to the total number of usage times, COPY means that a copy of a certain plug-in is transferred to another multifunction device while keeping an original plug-in, and MOVE means that an original plug-in is transferred to another multifunction device. That is, COPY and MOVE are distinguished from each other, depending on whether or not an original plug-in is kept.
In
In
In
In
In
In
In
In
The CPU 24 of the multifunction device 10 stores the plug-in 50 downloaded from the distribution server 100 in the storage device 28. Upon receiving a COPY request command from the multifunction device 12, the CPU 24 accesses the usage settings data 54 appended to the plug-in 50 stored in the storage device 28, analyzes the content of the usage settings data 54, and then determines whether or not COPY is permitted. If it is found that COPY is permitted, the CPU 24 copies the plug-in 50, the distribution settings data 52, and the usage settings data 54, and transfers the copied plug-in 50 together with the copied distribution settings data 52 and usage settings data 54 to the multifunction device 12. If COPY is not permitted, the CPU 24 transfers a message indicating the rejection of the request to the multifunction device 12.
Upon receiving a MOVE request command from the multifunction device 12, the CPU 24 accesses the usage settings data 54 appended to the plug-in 50 stored in the storage device 28, analyzes the content of the usage settings data 54, and then determines whether or not MOVE is permitted. If it is found that MOVE is permitted, the CPU 24 copies the plug-in 50, the distribution settings data 52, and the usage settings data 54, and transfers the copied plug-in 50 together with the copied distribution settings data 52 and usage settings data 54 to the multifunction device 12. The CPU 24 also deletes the original plug-in 50 stored in the storage device 28 and the distribution settings data 52 and the usage settings data 54 appended to the plug-in 50. If MOVE is not permitted, the CPU 24 transfers a message indicating the rejection of the request to the multifunction device 12.
The above-described processing will be described by referring to
In this manner, the distribution settings data 52 and the usage settings data 54 are appended to each plug-in, and a distribution destination and the number of distribution times are controlled by using the distribution settings data 52, while the number of usage times and transfer permissions (COPY/MOVE) are controlled by using the usage settings data 54. Accordingly, even if there are plural multifunction devices, the load on the distribution server 100 is not increased. Additionally, since the total number of usage times is controlled by using the usage settings data 54, even if a certain user uses a plug-in by using plural multifunction devices, it is possible to easily control the number of times the user uses the plug-in. The function of transferring a plug-in may also be controlled by using the usage settings data 54, and thus, it is possible to perform control such that the usage of a plug-in is permitted only in a specific multifunction device.
In this exemplary embodiment, by a combination of the number of usage times and transfer permissions, i.e., COPY/MOVE permission settings, indicated in the usage settings data 54, a variety of control types concerning the usage of a plug-in 50 may be implemented without increasing the load on the distribution server 100. Specific examples of the control types concerning the usage of the plug-in 50 are as follows.
(1) If it is desired that the plug-in 50 be used only in a specific multifunction device, COPY/MOVE is set to be “not permitted”.
(2) If it is desired that the plug-in 50 be used only once though it is usable in any multifunction device, the number of usage times is set to be “one”, and COPY/MOVE is set to be “MOVE only”.
(3) If it is desired that the plug-in 50 be used as many times as needed in any multifunction device without any restriction, the number of usage times is set to be “unlimited”, and COPY/MOVE is set to be “COPY permitted”.
In step S101, the CPU 24 of the multifunction device 10 receives a plug-in download request from another multifunction device, for example, the multifunction device 12.
Then, in step S102, the CPU 24 accesses the usage settings data 54 of the plug-in 50 stored in the storage device 28 and determines whether or not the number of usage times is one or more. If it is determined in step S102 that the number of usage times is not one or more, that is, it is already 0, it is no longer possible to use the plug-in 50 and there is no point in transferring the plug-in 50 to the multifunction device 12. Accordingly, the CPU 24 proceeds to step S103 to transfer a rejection notification to the multifunction device 12. In this case, the CPU 24 may transfer a message indicating that it is not possible to transfer the plug-in 50 since the number of usage times has already reached 0.
If it is found in step S102 that the number of usage times is one or more, the CPU 24 proceeds to step S104 to determine whether or not COPY/MOVE settings of the usage settings data 54 of the plug-in 50 indicate “permitted”. If COPY/MOVE settings indicate “not permitted”, the CPU 24 proceeds to step S103 to transfer a rejection notification to the multifunction device 12 in a manner similar to a case in which the result of step S102 is NO. If COPY/MOVE settings indicate that either COPY or MOVE is permitted, the CPU 24 proceeds to step S105 to create a copy of the plug-in 50 and temporarily stores it in the RAM 26. Then, in step S106, the CPU 24 transfers and distributes the copied plug-in 50 to the multifunction device 12. As stated above, when copying the plug-in 50, the CPU 24 also copies the distribution settings data 52 and the usage settings data 54 and distributes them to the multifunction device 12. Then, in step S107, the CPU 24 deletes the copied plug-in 50 stored in the RAM 26. At this point, the original plug-in 50 stored in the storage device 28 is still kept therein.
The CPU 24 then determines in step S108 whether or not COPY/MOVE settings indicate MOVE only. If the result of step S108 is YES, the CPU 24 proceeds to step S109 to delete the original plug-in 50 stored in the storage device 28.
In step S201, the CPU 24 of the multifunction device 12 sends a request command to download the plug-in 50 to another multifunction device, for example, the multifunction device 10.
Then, in step S202, the CPU 24 of the multifunction device 12 determines whether or not the download request has been accepted. As stated above, if the number of usage times has already reached 0, or if COPY/MOVE settings indicate “not permitted”, the multifunction device 10, which has received the download request, transfers a rejection notification to the multifunction device 12. Accordingly, the CPU 24 of the multifunction device 12, which has received this rejection notification, determines in step S202 that the download request has not been accepted, and proceeds to step S203 to execute predetermined rejection notification processing. More specifically, the CPU 24 queries the multifunction device 10 about a reason why the download request has been rejected, and displays a rejection reason on the operation panel 22 of the multifunction device 12, or stores information that the download request has been rejected in the storage device 28 as a log.
If it is found in step S202 that the download request has been accepted, the CPU 24 proceeds to step S204 to download the plug-in 50 transferred from the multifunction device 10. Then, in step S205, the CPU 24 stores and installs the downloaded plug-in 50 in the storage device 28. The distribution settings data 52 and the usage settings data 54 are appended to the downloaded plug-in 50, and when the plug-in 50 is used in the multifunction device 12, the CPU 24 updates the number of usage times indicated in the usage settings data 54 by decrementing it.
The present invention has been discussed through the above-described exemplary embodiment. However, the present invention is not restricted to this exemplary embodiment, and various modifications may be made.
For example, in the above-described exemplary embodiment, the distribution server 100 and the multifunction devices 10, 12, and 14 are connected to one another via the network 16, as shown in
In this exemplary embodiment, when distributing a plug-in 50 from the distribution server 100 to the multifunction device 10, the distribution settings data 52 and the usage settings data 54 are also distributed together with the plug-in 50. Additionally, when transferring (COPY/MOVE) a plug-in 50 from the multifunction device 10 to the multifunction device 12, the distribution settings data 52 and the usage settings data 54 are also distributed together with the plug-in 50. In this exemplary embodiment, however, after distributing a plug-in 50 from the distribution server 100, the distribution server 100 is basically no longer concerned with the management of the distributed plug-in 50. Thus, when distributing the plug-in 50 from the distribution server 100 to the multifunction device 10, the distribution settings data 52 may be deleted from the plug-in 50. In this case, only the usage settings data 54 is appended to the plug-in 50, and the multifunction device 10 or 12 may perform control of the usage or the transfer of the plug-in 50 by utilizing the usage settings data 54.
In this exemplary embodiment, as shown in
(a) as the distribution settings data 52, the distribution destination only, and as the usage settings data 54, the number of usage times only;
(b) as the distribution settings data 52, the number of distribution times only, and as the usage settings data 54, the number of usage times only;
(c) as the distribution settings data 52, the distribution destination only, and as the usage settings data 54, the transfer permission settings only;
(d) as the distribution settings data 52, the number of distribution times only, and as the usage settings data 54, the transfer permission settings only;
(e) as the distribution settings data 52, the distribution destination and the number of distribution times, and as the usage settings data 54, the number of usage times only;
(f) as the distribution settings data 52, the distribution destination and the number of distribution times, and as the usage settings data 54, the transfer permission settings only;
(g) as the distribution settings data 52, the distribution destination only, and as the usage settings data 54, the number of usage times and the transfer permission settings;
(h) as the distribution settings data 52, the number of distribution times only, and as the usage settings data 54, the number of usage times and the transfer permission settings; and
(i) as the distribution settings data 52, the distribution destination and the number of distribution times, and as the usage settings data 54, the number of usage times and the transfer permission settings.
In this exemplary embodiment, when a plug-in 50 is distributed from the distribution server 100, the number of distribution times is decremented, and when a plug-in 50 is used in a multifunction device, such as the multifunction device 10, the number of usage times is decremented. Alternatively, the number of distribution times or the number of usage times may be managed by using another variable, and the variable may be verified against a preset number of distribution times in the distribution settings data 52 or a preset number of usage times in the usage settings data 54. For example, the usage settings data 54 may include a variable C indicating the number of actual usage times, as well as the preset number of usage times, and every time the plug-in 50 is used, the variable C is incremented by one. When the value of the variable C reaches the preset number of usage times, it is assumed that the number of actual usage times has reached the maximum number of usage times, and the usage of the plug-in 50 is no longer permitted.
In this exemplary embodiment, the distribution settings data 52 may include the user ID of a distribution destination, in addition to a distribution destination and the number of distribution times. Normally, before utilizing the multifunction device 10, a user conducts user authentication by inputting a user ID and a password. Accordingly, when a request to download a plug-in 50 is sent from the multifunction device 10 to the distribution server 100, the user ID may also be sent together with the request, and the distribution server 100 may verify the received user ID against the user ID of a distribution destination contained in the distribution settings data 52, and may then determine whether or not the plug-in 50 will be distributed. The user ID included in the distribution settings data 52 is also set for each plug-in 50.
In this exemplary embodiment, the distribution settings data 52 and the usage settings data 54 are appended to a plug-in 50. In this case, the distribution settings data 52 and the usage settings data 54 may be embedded in program data of a plug-in 50, or may be related to a plug-in 50 as a different file.
In this exemplary embodiment, a case in which a plug-in 50 is distributed from the distribution server 100 has been discussed. However, a plug-in 50 may be replaced by another data or program. For example, instead of the plug-in 50, image data may be distributed and used, in which case, a distribution destination and the number of usage times for this image data may be controlled. This exemplary embodiment is also applicable to such a case.
The foregoing description of the exemplary embodiment of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiment was chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2013-010065 | Jan 2013 | JP | national |