会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 许可 / 许可确定设备和许可确定方法

许可确定设备和许可确定方法

申请号 CN200910166608.0 申请日 2009-08-20 公开(公告)号 CN101662557B 公开(公告)日 2012-10-24
申请人 株式会社理光; 发明人 南云拓; 杉浦裕子;
摘要 一种图像形成设备和许可确定方法。该图像形成设备用于执行由一个或多个程序模块构成的应用,该图像形成设备包括:许可目标标识信息产生单元,用于产生用于识别哪个程序模块是许可管理的目标的许可目标标识信息,并用于在存储装置中存储许可目标标识信息,其中,基于一个或多个程序模块信息项目来产生许可目标标识信息,所述一个或多个程序模块信息项目的每一个与程序模块中的一个相关联以表示相应的程序模块是否是许可管理的目标;及许可确定单元,用于响应于使用应用的使用请求的输入,确定许可是否存在,其中,仅对基于许可目标标识信息被识别为许可管理的目标的一个或多个程序模块进行该确定。
权利要求

1.一种许可确定设备,用于执行由一个或多个程序模块构成的应用,所述许可确定设备包括:许可目标标识信息产生单元,用于产生用于识别哪个程序模块是许可管理的目标的许可目标标识信息,并用于在存储装置中存储许可目标标识信息,其中,基于一个或多个程序模块信息项目来产生许可目标标识信息,所述一个或多个程序模块信息项目的每一个与程序模块中的一个相关联以表示相应的程序模块是否是许可管理的目标;以及许可确定单元,用于响应于使用应用的使用请求的输入,确定许可是否存在,其中,仅对基于许可目标标识信息被识别为许可管理的目标的一个或多个程序模块进行所述确定。

2.根据权利要求1所述的许可确定设备,其中:

在当输入使用应用的使用请求时在存储装置中没有存储许可目标标识信息的情况下,所述许可目标标识信息产生单元产生许可目标标识信息;以及所述许可确定单元基于响应于使用请求的输入已经产生的许可目标标识信息来确定许可是否存在。

3.根据权利要求1所述的许可确定设备,进一步包括:

真实性确定单元,用于响应于使用应用的使用请求的输入,确定许可目标标识信息是否真实,其中:在真实性确定单元确定许可目标标识信息为不真实的情况下,所述许可目标标识信息产生单元再次产生许可目标标识信息;以及基于已经再次产生的许可目标标识信息,所述许可确定单元确定许可是否存在。

4.根据权利要求1所述的许可确定设备,其中:

许可目标标识信息包括与被识别为许可管理的目标的一个或多个程序模块相对应的一个或多个程序模块信息项目。

5.根据权利要求1所述的许可确定设备,其中:

所述许可目标标识信息产生单元当在存储装置中存储许可目标标识信息时,加密许可目标标识信息。

6.一种许可确定方法,由许可确定设备执行所述许可确定方法,所述许可确定设备用于执行由一个或多个程序模块构成的应用,所述许可确定方法包括:许可目标标识信息产生步骤,产生用于识别哪个程序模块是许可管理的目标的许可目标标识信息,并在存储装置中存储许可目标标识信息,其中,基于一个或多个程序模块信息项目来产生许可目标标识信息,所述一个或多个程序模块信息项目的每一个与程序模块中的一个相关联以表示相应的程序模块是否是许可管理的目标;以及许可确定步骤,响应于使用应用的使用请求的输入,确定许可是否存在,其中,仅对基于许可目标标识信息被识别为许可管理的目标的一个或多个程序模块进行所述确定。

7.根据权利要求6所述的许可确定方法,其中:

在当输入使用应用的使用请求时在存储装置中没有存储许可目标标识信息的情况下,在所述许可目标标识信息产生步骤中产生许可目标标识信息;以及在所述许可确定步骤中,基于响应于使用请求的输入已经产生的许可目标标识信息,来对于许可是否存在进行确定。

8.根据权利要求6所述的许可确定方法,进一步包括:

真实性确定步骤,响应于使用应用的使用请求的输入,确定许可目标标识信息是否真实;以及许可目标标识信息再产生步骤,在所述真实性确定步骤中确定许可目标标识信息为不真实的情况下,所述许可目标标识信息再产生步骤单元再次产生许可目标标识信息,其中:在所述许可确定步骤中,基于已经再次产生的许可目标标识信息,对于许可是否存在进行确定。

9.根据权利要求6所述的许可确定方法,其中:

许可目标标识信息包括与被识别为许可管理的目标的一个或多个程序模块相对应的一个或多个程序模块信息项目。

10.根据权利要求6所述的许可确定方法,其中

在所述许可目标标识信息产生步骤中,当在存储装置中存储许可目标标识信息时,加密许可目标标识信息。

说明书全文

许可确定设备和许可确定方法

技术领域

[0001] 本发明涉及许可确定设备和许可确定方法,更具体地,涉及能够执行由多个程序模块构成的应用的许可确定设备和许可确定方法。
[0002] 背景技术
[0003] 近年来,通常被称为多功能外围设备或复合机的图像形成设备已经变得普遍,在出货之后可以在该图像形成设备中开发并安装新的应用。如果能够根据用户的使用格式来提供该种应用的许可,则用户可以享受到增加的便利,并且该应用的供应商可以期望增加的商业机会。
[0004] 例如,专利文献1公开了一种用于限制能够使用某种应用的图像形成设备许可管理方法。根据在专利文献1中公开的技术,能够根据使用该应用的设备的数量来改变收费。另外,能够有效防止通过非法复制该应用进行的非授权使用。
[0005] 专利文献1:日本公开专利申请No.2008-016013。
[0006] 不必需由单个程序模块来构成每一个应用。可以通过已经根据不同功能被模块化的多个程序模块来构成应用。如果在程序模块的单元中能够提供用于该种应用的许可,则可以限制/允许在单个应用中包括的某些功能的使用。因此,能够构成不同的产品形式。 [0007] 然而,当在程序模块的单元中提供许可时,当激活应用时需要对每一个程序模块检查许可(需要执行许可检查)。因此,在包括大量程序模块的详尽应用的情况下,检查许可将需要相当大量的时间。因此,激活应用所花费的时间可能超过可允许的范围。 [0008] 发明内容
[0009] 本发明提供一种许可确定设备、许可确定方法及记录介质,其中消除了一个或多个上述缺陷。
[0010] 本发明的优选实施例提供一种许可确定设备、许可确定方法及记录介质,当对于构成应用的每一个程序模块检查应用的许可时,该许可确定设备、许可确定方法及记录介质能够适当地减少激活应用所需要的时间。
[0011] 根据本发明的一个方面,提供了一种许可确定设备,用于执行由一个或多个程序模块构成的应用,所述许可确定设备包括:许可目标标识信息产生单元,用于产生用于识别哪个程序模块是许可管理的目标的许可目标标识信息,并用于在存储装置中存储许可目标标识信息,其中,基于一个或多个程序模块信息项目来产生许可目标标识信息,所述一个或多个程序模块信息项目的每一个与程序模块中的一个相关联以表示相应的程序模块是否是许可管理的目标;以及许可确定单元,用于响应于使用应用的使用请求的输入,确定许可是否存在,其中,仅对基于许可目标标识信息被识别为许可管理的目标的一个或多个程序模块进行所述确定。
[0012] 根据本发明的一个方面,提供了一种许可确定方法,由许可确定设备执行所述许可确定方法,所述许可确定设备用于执行由一个或多个程序模块构成的应用,所述许可确定方法包括:许可目标标识信息产生步骤,产生用于识别哪个程序模块是许可管理的目标的许可目标标识信息,并在存储装置中存储许可目标标识信息,其中,基于一个或多个程序模块信息项目来产生许可目标标识信息,所述一个或多个程序模块信息项目的每一个与程序模块中的一个相关联以表示相应的程序模块是否是许可管理的目标;以及许可确定步骤,响应于使用应用的使用请求的输入,确定许可是否存在,其中,仅对基于许可目标标识信息被识别为许可管理的目标的一个或多个程序模块进行所述确定。
[0013] 根据本发明的一个方面,提供了一种计算机可读记录介质,在其中记录指令,所述指令用于使计算机作为许可确定设备以进行用于执行由一个或多个程序模块构成的应用的过程,所述过程包括:许可目标标识信息产生步骤,产生用于识别哪个程序模块是许可管理的目标的许可目标标识信息,并在存储装置中存储许可目标标识信息,其中,基于一个或多个程序模块信息项目来产生许可目标标识信息,所述一个或多个程序模块信息项目的每一个与程序模块中的一个相关联以表示相应的程序模块是否是许可管理的目标;以及许可确定步骤,响应于使用应用的使用请求的输入,确定许可是否存在,其中,仅对基于 许可目标标识信息被识别为许可管理的目标的一个或多个程序模块进行所述确定。 [0014] 根据本发明的一个实施例,提供一种许可确定设备、许可确定方法及记录介质,当对于构成应用的每一个程序模块检查应用的许可时,该许可确定设备、许可确定方法及记录介质能够适当地减少激活应用所需要的时间。
[0015] 附图说明
[0016] 当结合附图阅读时,从下面的具体描述中,本发明的其它目的、特征和优点将更加清楚,其中:
[0017] 图1说明根据本发明实施例的图像形成设备的硬件配置;
[0018] 图2说明根据本发明实施例的图像形成设备的软件配置;
[0019] 图3说明软件开发工具包(SDK)平台和SDK应用的许可管理功能的配置; [0020] 图4说明在图像形成设备中安装许可密钥的过程;
[0021] 图5说明许可密钥的配置;
[0022] 图6是用于产生许可列表的处理的流程图;
[0023] 图7说明许可列表的示例;
[0024] 图8是用于描述根据该实施例的SDK应用的生命周期的状态转移图; [0025] 图9是用于描述当激活SDK应用时的处理过程的流程图;
[0026] 图10是用于描述当不存在许可列表时激活SDK应用时的处理过程的流程图; [0027] 图11A和11B用于描述为什么通过使用许可列表能够加速激活SDK应用的操作。 [0028] 具体实施方式
[0029] 参考附图,给出本发明的实施例的描述。
[0030] 图1说明根据本发明实施例的图像形成设备的硬件配置。如图1所示,图像形成设备10包括例如控制器11、扫描仪12、打印机13、调制解调器14、网络接口15及操作面板16等硬件资源。
[0031] 控制器11包括中央处理单元(CPU)111、随机访问存储器(RAM)112、只读存储器(ROM)113及硬盘驱动(HDD)114。ROM 113记录各种程序及 由这些程序使用的数据。RAM112用作装载程序的存储区和被装载的程序的工作区。CPU 111处理在RAM 112中装载的程序以实施各种功能。HDD 114记录程序和由这些程序使用的各种数据项目。 [0032] 扫描仪12是用于扫描原件以获取图像数据的硬件资源。打印机13是用于在纸张上打印图像数据的硬件资源。调制解调器14是用于将图像形成设备10连接到电话线从而能够通过传真传送并接收图像数据的硬件资源。网络接口15是用于将图像形成设备10连接到例如局域网(LAN)等网络(有线或无线)的硬件资源。操作面板16是包括用于接收来自用户的输入或对用户通知信息的按钮和/或液晶显示面板的硬件资源。 [0033] 图2说明根据本发明实施例的图像形成设备的软件配置。如图2所示,图像形成设备10包括例如操作系统(OS)121、控制服务122及应用123等软件资源。 [0034] 例如,OS 121是在处理单元中并行激活软件资源的UNIX(注册商标)。 [0035] 控制服务122是对用于控制各种硬件资源的上级应用提供公共服务的一组软件模块。例如,控制服务122可以提供用于控制扫描仪12或打印机13的装置,以及经由调制解调器14和网络接口15使用的通信装置。
[0036] 应用123是用于通过使用控制服务122和OS 121来使图像形成设备10执行由用户请求的各种作业的程序。应用123被主要地分为为标准应用130和软件开发工具包(SDK)应用140。
[0037] 在作为标准设备的图像形成设备10中预先安装标准应用130(对图像形成设备10装备标准应用130)。在图2中示出的标准应用130的示例是用于控制复印作业的复印应用131、用于控制扫描作业的扫描应用132、用于控制传真传送作业的传真应用133及用于控制打印作业的打印应用134。
[0038] SDK应用140是通过使用图像形成设备10的专用SDK而开发的应用,SDK应用140在SDK平台150上运行。通过该种配置,能够在出货之后使用专用SDK对图像形成设备10增加新的应用。例如,图2示出三种SDK应用140,即,SDK应用141、142及143。当已经获取了相应的许可密钥时能够激活图像形成设备10中的SDK应用140。通过购买SDK应用140的使用权可以获取许可密钥的数据。在本实施例中,SDK应用140是以Java(注册商标) 语言编写的程序。然而,当实施本发明时,SDK应用140不限于以Java语言描述的程序。
[0039] SDK平台150是用于提供SDK应用140的操作环境的软件资源。例如,SDK平台150可以包括以Java(注册商标)虚拟机或Java(注册商标)宏编辑(ME)中的标准配置提供的一组类,或包装了控制服务122的功能的一组类。此外,SDK平台150管理SDK应用
140的许可。例如,SDK平台150管理SDK应用140的密钥并基于许可密钥控制激活SDK应用140的操作。
[0040] 图3说明SDK平台和SDK应用的许可管理功能的配置。
[0041] 如图3所示,每一个SDK应用140包括一个或多个功能模块(例如,Java(注册商标)Archive(JAR)等程序模块),以及附带于(相应于)每一个功能模块的许可信息文件。可以存在不附带许可信息文件的功能模块。每一个功能模块实施构成由该功能模块所属的SDK应用140执行的作业的功能之一。许可信息文件包括关于相应的功能模块的许可的信息(许可信息)。例如,许可信息包括功能模块的标识符(功能名称)、功能模块的文件名称及功能模块的显示名称(显示字符串)。
[0042] SDK应用140包括功能模块1401A、1401B及1401C(在下文中,还可以被共同地称为“功能模块1401”)。此外,SDK应用140包括许可信息文件1402A和1402B(在下文中,还可以被共同地称为“许可信息文件1402”)。功能模块1401A附带许可信息文件1402A。功能模块1401B附带许可信息文件1402B。功能模块1401C不附带许可信息文件。这意味着功能模块1401C不是许可的目标(不要求许可检查(免许可))。
[0043] SDK平台150包括许可安装单元151、许可管理单元152、激活控制单元153、加密处理单元154及真实性(authenticity)确定单元155。
[0044] 许可安装单元151从经由网络连接的计算机中获取许可密钥,在许可文件160中存储许可密钥,并在HDD 114中保存许可文件160。
[0045] 激活控制单元153控制激活和结束SDK应用140的操作。当激活SDK应用140时,激活控制单元153查询许可管理单元152以询问SDK应用140的许可状态,并基于该许可状态,控制在功能模块1401的单元中激活SDK应用140(将SDK应用140装载到RAM 112中)的操作。
[0046] 许可管理单元152管理许可文件160并产生许可列表170。对每一个SDK应用140提供一个许可列表170。因此,当安装多个SDK应用140时,相应地产生多个许可列表170。每一个许可列表170是在相应的SDK应用140中包括的许可信息文件1402中存储的许可信息项目的列表。此外,许可管理单元152确定是否能够通过在许可文件160中存储的许可密钥激活作为许可目标的功能模块1401(图3中的功能模块1401A和1401B)。基于相应于许可状态已经被激活控制单元153询问的SDK应用140的许可列表170进行该确定。响应于该询问,许可管理单元152将确定结果发送到激活控制单元153。
[0047] 当存储由许可管理单元152产生的许可列表170时,加密处理单元154加密许可列表170。当要使用已加密的许可列表170时,加密处理单元154对已加密的许可列表170进行解密。防止许可列表170被加密处理单元154改变。
[0048] 真实性确定单元155确定许可列表170是否已经被改变。
[0049] 下面描述图像形成设备10的处理过程。
[0050] 图4说明在图像形成设备中安装许可密钥的过程。经由网络将图4中示出的个人计算机(PC)20连接到图像形成设备10。PC 20包括操作单元21和许可传送单元22。 [0051] 操作单元21从用户接收要在图像形成设备10中使用的SDK应用140(对其发出许可密钥的SDK应用140)的产品密钥的输入。
[0052] 产品密钥是对能够由SDK应用140和功能模块1401的组合识别的产品唯一分配的标识信息。例如,对于包括相同SDK应用140的产品,对于仅能够使用一个或某些功能模块1401的产品和能够使用所有功能模块1401的产品提供不同的产品密钥。此外,对于仅能够使用一个或某些功能模块1401的产品,根据能够使用的功能模块1401来提供不同的产品密钥。即,通过输入产品密钥,用户能够选择要使用SDK应用140的哪个功能模块1401。 [0053] 响应于产品密钥的输入,许可传送单元22请求图像形成设备10发送机器码。在工厂出货时,对每一个图像形成设备10唯一地分配机器码。响应于该请求,许可安装单元151从例如ROM 113中获取图像形成设备10的机器码,并对许可传送单元22返回所获取的机器码(步骤S11)。随后,许可传送单元22将许可密钥发送到图像形成设备10(步骤S12)。许可密钥是用于仅在由所 接收到的机器码识别的图像形成设备中,授予通过产品密钥识别的SDK应用140和功能模块1401的使用权。
[0054] 图5说明许可密钥的配置。如图5所示,许可密钥包括应用ID、图像形成设备10的机器码、可以使用的功能(功能模块1401的标识符列表)及截止日期。通过使用许可密钥,允许在许可密钥中指定的截止日期之前,通过机器码识别的图像形成设备10使用在许可密钥中指定的功能。在由许可密钥中的应用ID识别的SDK应用140中包括该功能。以该方式,在功能的单元中(在功能模块1401的单元中)管理用于SDK应用140的许可。应用ID、功能及截止日期是由产品密钥确定的值。在许可密钥中,不仅排列应用ID、图像形成设备10的机器码、可以使用的功能及截止日期的信息项目,而且可以将这些信息项目进行编码或加密。可以在PC 20中产生许可密钥,或响应于来自PC 20的请求,在经由网络连接到PC 20的其它计算机(例如,合并全球环境中的许可信息项目的服务器计算机)中产生许可密钥。参考图4,当接收到许可密钥时,许可安装单元151在许可文件160中存储许可密钥,并在HDD 114中保存许可文件160(步骤S13)。
[0055] 图6是用于产生许可列表的处理的流程图。对每一个SDK应用140执行图6中示出的处理。
[0056] 许可管理单元152在HDD 114中产生与SDK应用140相关的空的许可列表170(文件)。不限制将许可列表170与SDK应用140相关联的方法。例如,可以在许可列表170中包括应用ID,或在具有作为文件夹名称的应用ID的文件夹中产生许可列表170。 [0057] 随后,对每一个功能模块1401执行步骤S102到S105。在步骤S102中,许可管理单元152搜索在作为当前处理目标的SDK应用140中包括的功能模块1401。当搜索-发现的功能模块1401附带许可信息文件1402(步骤S103中为是)时,许可管理单元152将在许可信息文件1402中存储的许可信息增加到许可列表170中(步骤S104)。当已经对所有的功能模块1401执行了搜索时(步骤S105),许可管理单元152使加密处理单元154加密所产生的许可列表170(步骤S106)。加密方法不受限制。
[0058] 通过采用具有图3示出的配置的SDK应用140作为示例来给出该处理的 描述。在步骤S102,许可管理单元152搜索功能模块1401A。功能模块1401A附带许可信息文件
1402A(步骤S103中为是)。在步骤S104,将在功能模块1401A的许可信息文件1402A中存储的许可信息注册到许可列表170中。
[0059] 然后,该处理返回到步骤S102,在步骤S102中许可管理单元152搜索功能模块1401B。功能模块1401B附带许可信息文件1402B(步骤S103中为是)。在步骤S104中,将在功能模块1401B的许可信息文件1402B中存储的许可信息注册到许可列表170中。 [0060] 然后,该处理返回到步骤S102,在步骤S102中许可管理单元152搜索功能模块
1401C。功能模块1401C没有附带许可信息文件1402B(步骤S103中为否),在步骤S105中搜索结束。作为结果,产生图7中示出的许可列表170。
[0061] 图7说明许可列表的示例。如图7所示,在用于每一个功能模块的许可列表170中注册该功能模块的标识符(功能名称)、该功能模块的文件名称、该功能模块的显示名称及时间/日期。该时间/日期表示该功能模块被许可的时间(发出许可密钥的时间)。通过将在已经是处理目标的SDK应用140的许可文件160之中生成包括用于相应功能模块的许可密钥的许可文件160(在步骤S104中生成该文件)的时间/日期传递到许可列表170来注册该日期/时间。在该时间点上,也可以在许可列表170中记录与许可密钥相关的信息(例如,许可文件160的文件名称或许可密钥本身)。
[0062] 图7中示出的功能模块A对应于图3中示出的功能模块1401A。图7中示出的功能模块B对应于图3中示出的功能模块1401B。如上所述,功能模块1401C不附带许可信息文件,因此,不能在许可列表170中注册功能模块1401C。
[0063] 描述产生许可列表170的定时(当执行图6的处理的定时)。SDK应用140具有如图8中所说明的生命周期。图8是用于描述根据本实施例SDK应用的生命周期的状态转移图。
[0064] 在图像形成设备10中安装SDK应用140之前,SDK应用140处于未安装状态,并且当它已被安装时它转变为已安装状态。在已安装状态下,SDK应用140初始处于SDK应用140没有被激活的未激活状态,并且还处于不存在相应许可密钥的未许可状态。在该未许可状态下,不能激活SDK应用140。 当在未许可状态期间从PC 20安装了许可密钥时,SDK应用140转变为被许可状态。在被许可状态下,能够激活SDK应用140。 [0065] 当在被许可状态期间激活SDK应用140时,SDK应用140转变为已激活状态。在已激活状态期间,用户能够使用在SDK应用140中包括的被许可的功能。当SDK应用140被停止时,SDK应用140返回到被许可状态。当在未激活状态期间卸载SDK应用140时,SDK应用140返回到未安装状态。
[0066] 在上述生命周期中,当安装SDK应用140时或当激活SDK应用140时,产生许可列表170。
[0067] 图9是用于描述当激活SDK应用140时的处理过程的流程图。当通过操作面板16从用户接收到激活某个SDK应用140的指令(使用请求)时,激活控制单元153向该应用ID的许可管理单元150报告已经已经进行使用请求的SDK应用140(被请求的SDK应用
140)。此外,激活控制单元153查询许可管理单元152以询问SDK应用140的许可状态。响应于该询问,开始图9中示出的处理。
[0068] 首先,许可管理单元152将相应于被请求的SDK应用140的许可列表170装载到RAM 112中(步骤S201)。许可管理单元152使加密处理单元154解密该许可列表170(步骤S202)。许可管理单元152使真实性确定单元155确定该许可列表170的真实性(步骤S203)。真实性确定单元155通过例如在加密处理单元154已经成功解密许可列表170之后,检查许可列表170的数据格式是否符合预定格式来确定许可列表170的真实性。当还没有成功解密许可列表170时或当许可列表170与预定格式不一致时,真实性确定单元155确定该许可列表170不真实(欺骗性的)。
[0069] 可以使用电子签名来确定许可列表170的真实性。例如,当产生许可列表170时,在加密许可列表170之前也可以对许可列表170产生哈希值,并与许可列表170相关联地保存该哈希值。真实性确定单元155通过将在步骤S202中解密的许可列表170的哈希值和与许可列表170相关联地保存的哈希值相比较来确定许可列表170是否已经改变(确定真实性)。
[0070] 当真实性确定单元155确定许可列表170是不真实的(步骤S203中为否)时,许可管理单元152对被请求的SDK应用140执行图6中示出的处理,以 再次产生许可列表170(步骤S204)。并且也可以当在步骤S201中不存在许可列表170时,在步骤S204中执行产生许可列表170的处理。
[0071] 当真实性确定单元155确定许可列表170是真实的(步骤S203中为是)时,或在步骤S204之后,许可管理单元152基于许可列表170识别出在不能(不能允许)被激活的被请求的SDK应用140中的功能模块1401(步骤S205到S209)。
[0072] 在步骤S206,许可管理单元152从许可列表170中获取一个记录项(entry)(相应于一个功能模块1401的许可信息)(步骤S206)。基于在已获取的许可信息中包括的标识符和在相应于该SDK应用140的许可文件160中存储的许可密钥,许可管理单元152确定相应于该许可信息的功能模块1401是否能够被使用(被激活)(步骤S207)。 [0073] 即,只要许可密钥是有效的并且该标识符被包括在许可密钥中的“功能”项目下,则确定功能模块1401能够被使用。否则(包括不存在相应于SDK应用140的许可文件160的情况),确定功能模块1401不能被使用。当许可密钥有效时,其表示许可密钥中的机器码符合图像形成设备10的机器码,并且许可密钥还没有期满。
[0074] 当许可管理单元152确定功能模块不能被使用(步骤S207中为否)时,许可管理单元152将功能模块1401的标识符增加到激活-禁止列表(不能被激活的功能模块的列表)。
[0075] 当已经对于在许可列表170中包括的所有的记录项(许可信息项目)已经完成了从步骤S206到步骤S208的处理时,许可管理单元152将激活-禁止列表输出到激活控制单元153,作为表示被请求的SDK应用140的许可状态的信息(步骤S209)。 [0076] 然后,激活控制单元153基于激活-禁止列表来控制激活SDK应用140的操作(步骤S210)。特定地,激活控制单元153限制(防止)激活或使用在激活-禁止列表中包括的功能模块1401。因此,将限制使用一个或某些SDK应用140的功能。例如,在SDK应用140与复印作业相关时,不能使用彩色复印作业的功能。
[0077] 基于图3中示出的SDK应用140更具体地说明图9中的处理。参考图3, 例如,假设在许可文件160中包括的许可密钥仅许可了功能模块1401A。在该情况下,当进行激活SDK应用140的请求时,由于在激活-禁止列表中包括功能模块1401B,因此防止功能模块1401B被激活。从而,仅能使用功能模块1401A和功能模块1401C的功能。由于功能模块1401C不是许可管理的目标,因此能够使用功能模块1401C的功能。
[0078] 图9描述通过使用SDK应用140的激活-禁止列表来将许可状态报告给激活控制单元153的示例。然而,许可管理单元152可以通过使用能够被激活的功能模块的列表来将许可状态报告给激活控制单元153。
[0079] 如上所述,根据本实施例的图像形成设备10预先产生要求许可-检查的功能模块1401的许可列表170。因此,当激活SDK应用140时,仅对于在许可列表170中录入的功能模块1401检查许可。因此,能够减少执行许可-检查的次数,从而适当地减少激活全部SDK应用140所需要的时间。
[0080] 图10是用于描述当不存在许可列表时激活SDK应用时的处理过程的流程图。 [0081] 在步骤S301到S305,确定在被请求的SDK应用140中包括的功能模块1401是否是许可目标。对于在被请求的SDK应用140中包括的所有功能模块1401执行确定功能模块1401是否是许可目标的处理(步骤S303)。对于被确定为是许可目标的功能模块1401,确定许可密钥是否被提供并且该许可密钥是否是真实的(步骤S304和步骤S305)。当确定功能模块1401不能被使用时,将相应的功能模块1401增加到功能-禁止列表(步骤S306)。
当已经检查了所有的功能模块1401时(步骤S307),基于检查功能模块1401的结果来控制激活SDK应用140的操作(步骤S308)。
[0082] 在图11A和11B中示意性地说明图10的处理和由根据本实施例的图像形成设备10执行的处理的区别。
[0083] 图11A和11B用于描述为什么通过使用许可列表能够加速激活SDK应用的操作。 [0084] 图11A说明图10的处理。图11A说明当激活SDK应用140时,对SDK应用140的所有功能模块1401执行许可检查。在示例中,每次激活SDK应用140时,执行许可检查九次。
[0085] 同时,图11B说明由根据本实施例的图像形成设备10执行的处理。在本实施例中,当安装了SDK应用140时,对SDK应用140的所有功能模块1401执行许可检查,并产生许可列表170。图11B说明其中确定两个功能模块1401是许可的目标的示例。因此,当激活SDK应用140时,仅对在许可列表170中录入的这两个功能模块1401执行许可检查。 [0086] 如上所述,在SDK应用140中包括的功能模块1401的数量越大,本发明的实施例将越有效。在安装SDK应用140时不用必须产生许可列表170。即使在安装SDK应用140时不产生许可列表170,也可以在初次激活SDK应用140时产生许可列表170。 [0087] 此外,在存储许可列表170时可以对许可列表170进行加密,从而能够在使用许可列表170之前检查许可列表170是否已经被改变。因此,可以恰当地防止未授权用户通过改变许可列表170而欺骗性地获取许可(例如,通过从许可列表170中删除记录项来避免对相应的功能模块1401执行许可检查)。
[0088] 此外,即使当激活SDK应用140时检测出许可列表170已经被改变,也可以再次产生许可列表170,因此,可以在许可范围内顺利激活SDK应用140。
[0089] 在本实施例中,在许可列表170中包括作为许可管理的目标的功能模块1401的许可信息。然而,可以由不是许可管理的目标的功能模块1401的许可信息构成许可列表170。任一方式都是可接受的,只要可以使用许可列表170来识别哪个功能模块1401是许可管理的目标。
[0090] 本发明不限于具体揭示的实施例,在不脱离本发明的范围的情况下可以进行变化和变形。
[0091] 本发明基于在2008年4月29日递交的日本优先权专利申请No.2008-222132,并将其全部内容并入本文作为参考。