具体实施方式
下面,根据附图,详细说明本发明涉及的许可证管理程序、软件利用控制方法以及许可证管理装置的实施例。另外,在实施例1中,说明针对具有多个功能的软件产品的许可证,按照每个功能分别进行管理的许可证管理系统;在实施例2中,说明对多个开发供应商分别开发的多个软件产品的许可证进行管理的许可证管理系统。并且,在实施例2中,还说明除许可证管理外,还提供补丁服务等用户支持功能的许可证管理系统。
【实施例1】
首先,说明本实施例1涉及的许可证管理系统的概念。图1是用于说明本实施例1涉及的许可证管理系统的概念的说明图。如该图所示,在该许可证管理系统中,用户从CD将业务应用程序安装到运行业务应用程序的业务Web服务器中(1)。在该阶段,业务应用程序可以作为评价版使用。
并且,用户将业务Web服务器的MAC地址(A)通知给业务应用程序的许可证管理目的地(2),收到通知的许可证管理目的地将用户信息、MAC地址、以及业务应用程序的按功能划分许可信息登记到对许可证进行管理的许可证管理Web服务器中(3)。在此,按功能划分许可信息是表示应用程序的每个功能的可否使用的信息。
而且,许可证管理Web服务器制作包括MAC地址和按功能划分许可信息的许可证文件(4),发送到用户(5)。用户若接收到许可证文件,则将许可证文件安装到业务Web服务器中(6)。
此外,业务Web服务器若从用户处接收到业务应用程序所提供的功能之中的例如功能X的启动指示,则根据功能X是否被许可证文件中包含的按功能划分许可信息(C)所许可、业务Web服务器的MAC地址(A)是否与许可证文件中包含的MAC地址(B)一致,启动功能X,或通知许可证错误。
像这样,在本实施例1涉及的许可证管理系统中,将包括按功能划分许可信息的许可证文件安装到业务Web服务器中,业务Web服务器根据许可证文件中的按功能划分许可信息对每个功能判断可否启动,从而能够对每个功能分别进行许可证管理。
并且,在此说明了许可证文件包括与一个业务应用程序有关的按功能划分许可信息的情况,但许可证文件中还可以包括与其他业务应用程序等多个软件产品有关的按功能划分许可信息。像这样,许可证文件中包括与多个软件产品有关的按功能划分许可信息,从而能够利用一个许可证文件对多个软件产品进行管理,能够减少用户管理许可证的负担。
接着,说明本实施例1涉及的许可证管理系统的结构。图2是示出本实施例1涉及的许可证管理系统的结构的功能框图。如该图所示,该许可证管理系统由用于管理许可证的许可证管理Web服务器10和运行业务应用程序的业务Web服务器20构成。另外,在此为了便于说明,仅示出1台业务Web服务器,但许可证管理Web服务器10可以将多个业务Web服务器作为对象,进行许可证管理。
在许可证管理Web服务器10中运行用于管理许可证的许可证管理程序100,许可证管理程序100具有许可证信息存储部110、产品信息登记部120、产品信息核对部130、产品密钥生成部140、按功能划分许可信息码制作部150、许可证文件制作部160。
许可证信息存储部110是用于存储许可证信息的存储部,存储与被给予许可证的用户有关的信息、被许可安装业务应用程序的业务Web服务器的MAC地址、按功能划分许可信息等。
在此,说明按功能划分许可信息的详细内容。图3是用于说明按功能划分许可信息的说明图。该图示出与三个软件产品有关的按功能划分许可信息,对每个功能、即提供功能的每个程序分配区域。
例如,软件产品“1”由称为“Web AS Framework”这样的程序构成,软件产品“2”由称为“license protector massman”和“许可证保护管理者功能”的程序构成,软件产品“3”由称为“销售管理”、“就业管理”、“信息共享”以及“billman”这样的程序构成。另外,“Framework预备项目n”用于定制软件产品而追加了新功能的情况。
在图3中,标记为“1”的情况下,许可执行对应的程序;标记为“0”的情况下,不许可执行对应的程序。例如,软件产品“3”中,许可执行“销售管理”,但不许可执行“就业管理”、“信息共享”以及“billman”。
返回到图2,产品信息登记部120是用于进行许可证信息的登记处理的处理部,其从许可证管理者处接受与被给予了许可证的用户有关的信息、被许可安装业务应用程序的业务Web服务器的MAC地址、按功能划分许可信息等,存储到许可证信息存储部110中。
产品信息核对部130是用于显示存储于许可证信息存储部110的许可证信息的处理部,其检索与许可证管理者进行核对的许可证有关的信息,进行显示。
产品密钥生成部140是用于对每个用户生成产品密钥,并存储到许可证信息存储部110的处理部,即使在用户利用多个软件产品的情况下,也仍生成一个产品密钥。该产品密钥生成部140针对多个软件产品生成一个产品密钥,从而能够将用户从对每个软件产品分别管理产品密钥的繁琐中解脱出来。
按功能划分许可信息码制作部150是对存储于许可证信息存储部110的按功能划分许可信息的标记值进行编码或加密等,以制作用于许可证文件的按功能划分许可信息码的处理部,其将制作出的按功能划分许可信息码存储于许可证信息存储部110。
许可证文件制作部160是使用存储于许可证信息存储部110的产品密钥、MAC地址以及按功能划分许可信息码,对每个用户制作许可证文件31,进行加密,存储到CD 30的处理部。
图4是示出许可证文件的一例的图。如该图所示,在该许可证文件中,使用XML来表述产品密钥、MAC地址以及按功能划分许可信息码。在该图中,产品密钥使用<PRODUCT_KEY>标签表述,MAC地址使用<MAC_ADDRESS>标签表述,按功能划分许可信息码使用<FUNCTION_AREA>标签表述。并且,<FUNCTION_AREA>标签的值、即按功能划分许可信息码从2进制转换为16进制,进行DES加密。
在业务Web服务器20中运行应用程序21和许可证检查程序200,许可证检查程序200具有许可证文件210和许可证检查处理部220。另外,应用程序21是业务应用程序,在此为了便于说明,仅示出1个业务应用程序,但在业务Web服务器20中运行其他业务应用程序等多个应用程序。
许可证文件210是由许可证管理Web服务器10制作的许可证文件31,从CD 30读出,复制到业务Web服务器20上。
许可证检查处理部220是在应用程序21启动时,从应用程序21接受启动请求对象功能的区域,使用许可证文件210检查与区域对应的标记是否为“1”,即检查是否许可使用启动请求对象功能的处理部,许可的情况下,启动应用程序21,不许可的情况下,输出警告消息。
该许可证检查处理部220使用许可证文件210来检查是否许可使用启动请求对象功能,从而可以对每个功能赋予许可证。
另外,许可证检查程序200从CD 30安装到业务Web服务器20上。即,在CD 30中,除了许可证文件31之外,还存储有许可证检查安装程序32和安装程序33,若CD 30被插入到业务Web服务器20的CD驱动器,则安装程序33被读出,在业务Web服务器20上作为安装程序23运行,读出许可证检查安装程序32,作为许可证检查安装程序22执行。
而且,许可证检查安装程序22使用许可证文件31,将许可证检查程序200安装到业务Web服务器20上。
接着,说明由许可证检查安装程序22进行的许可证检查程序200的安装处理的处理步骤。图5是示出由许可证检查安装程序22进行的许可证检查程序200的安装处理的处理步骤的流程图。另外,事先向用户通知许可证文件名和产品密钥。
如该图5所示,该许可证检查安装程序22接受用户对许可证文件和产品密钥的指定(步骤S101)。并且,从CD 30读出许可证文件31,进行解码(步骤S102)。
然后,比较由用户输入的产品密钥和进行了解码的许可证文件31中的产品密钥(步骤S103),判断两者是否一致(步骤S104)。
其结果,在两者一致的情况下,比较业务Web服务器20的MAC地址和进行了解码的许可证文件31中的MAC地址(步骤S105),判断两者是否一致(步骤S106)。
其结果,当两者一致的情况下,在业务Web服务器20中安装许可证检查程序200来运行(步骤S107)。另一方面,在两者不一致的情况下,或者,由用户输入的产品密钥与进行了解码的许可证文件31中的产品密钥不一致的情况下,输出警告消息。(步骤S108)。
像这样,许可证检查安装程序22根据许可证文件31安装许可证检查程序200,从而能够防止许可证检查程序200被非法安装。
接着,说明由许可证检查程序200进行的应用程序启动检查处理的处理步骤。图6示出由许可证检查程序200进行的应用程序启动检查处理的处理步骤的流程图。
如该图6所示,许可证检查程序200判断接受了启动请求的应用程序是否在试用期限内(步骤S201),在试用期间内的情况下,进入到步骤S212,启动应用程序(步骤S212)。
另一方面,不在试用期间内的情况下,检查许可证文件210是否存在(步骤S202)。其结果,存在许可证文件210的情况下(步骤S203:是),进行许可证文件210的解码(步骤S204),判断许可证文件210内的MAC地址与业务Web服务器20的MAC地址是否一致(步骤S205)。
其结果,两者一致的情况下,从应用程序21取得启动请求对象的地址(步骤S206)。并且,取得许可证文件210的FUNCTION_AREA标签的值、即按功能划分许可信息码(步骤S207),进行DES解码(步骤S208)。
而且,将FUNCTION_AREA标签的值从16进制转换成2进制(步骤S209),判断从应用程序21取得的区域值是否为“1”(步骤S210)。
其结果,区域值为“1”的情况下(步骤S211:是),启动应用程序21(步骤S212);区域值为“0”的情况下(步骤S211:否),不启动应用程序21,而输出警告消息(步骤S213)。
并且,在许可证文件210内的MAC地址与业务Web服务器20的MAC地址不一致的情况下(步骤S205:不一致)或不存在许可证文件210的情况下(步骤S203:否),也不启动应用程序21,而输出警告消息(步骤S213)。
图7是示出应用程序启动时的由许可证检查程序200进行的检查例的图。如该图所示,若用户分别进行了“销售管理”、“就业管理”、“信息共享”的启动请求((1)~(3)),则许可证检查程序200参照许可证文件,检查可否启动((4)~(5))。在此,若按功能划分许可信息以图3所示方式定义,则“销售管理”许可启动,但“就业管理”、“信息共享”不许可启动。
像这样,许可证检查程序200根据许可证文件210内的MAC地址和按功能划分许可信息码,检查应用程序21可否启动,从而防止非法利用。
接着,说明执行许可证管理程序100的计算机、即许可证管理Web服务器10的硬件结构。另外,执行许可证检查程序200和许可证检查安装程序22的计算机、即业务Web服务器20的硬件结构也相同。
图8是示出执行许可证管理程序100的计算机的结构的功能框图。如该图所示,该计算机300具有RAM 310、CPU 320、HDD 330、LAN接口340、输入输出接口350、以及CD驱动器360。
RAM310是用于存储程序或程序执行途中结果等的存储器,CPU 320是用于从RAM 310读出程序并执行的中央处理装置。
HDD 330是用于存储程序或数据的磁盘装置,LAN接口340是用于经由LAN将计算机300连接到其他计算机的接口。
输入输出接口350是用于将鼠标或键盘等的输入装置和显示装置连接的接口,CD驱动器360是用于对CD进行读写的装置。
而且,在该计算机300中执行的许可证管理程序100被CD驱动器360从CD读出,安装到计算机300中。
或者,该许可证管理程序100被存储到经由LAN接口340连接的其他计算机系统的数据库等中,从这些数据库读出,安装到计算机300上。
而且,所安装的许可证管理程序100被存储于HDD 330,读出到RAM310,作为许可证管理处理321由CPU 320执行。
如上所述,在本实施例1中,许可证管理程序100的按功能划分许可信息码制作部150,使用分别以按功能划分对多个软件产品定义可否执行的按功能划分许可信息,制作按功能划分许可信息码,存储到许可证信息存储部110中;许可证文件制作部160使用存储于许可证信息存储部110的产品密钥、MAC地址以及按功能划分许可信息码,制作许可证文件;许可证检查程序200的许可证检查处理部220根据许可证文件的按功能划分许可信息码,对应用程序21的每个功能检查可否启动,所以可对应用程序21的每个功能进行许可证管理,并且能够利用一个产品密钥对多个软件产品进行管理。
并且,在本实施例1中,许可证检查安装程序32根据许可证文件的产品密钥和MAC地址,判断许可证检查程序200可否安装,所以能够防止许可证检查程序200被非法安装。
而且,在本实施例1中,以对Web数据库的业务应用软件的许可证进行管理的情况为中心进行了说明,但本发明不限于此,也能够同样适用于按每个功能对其他软件产品进行许可证管理的情况。
【实施例2】
然而,在上述实施例1中,说明了对由一个开发供应商开发的多个软件产品的许可证进行管理的情况。但是,对于用户来说,若按照每个开发供应商进行由多个开发供应商分别开发出的软件产品的许可证的管理和补丁信息的收集等,则随着开发供应商的数量增多,负担加大。并且,对于开发供应商来说,尽可能减少许可证的管理和用户支持的负担,以便能够专注于软件开发尤为重要。因而,在本实施例2中,说明对用户和开发供应商双方均能够减轻许可证管理等的负担的许可证管理系统。
首先,说明本实施例2涉及的许可证管理的概念。图9是用于说明本实施例2涉及的许可证管理的概念的说明图。如该图所示,在本实施例2涉及的许可证管理中,替代由软件产品的各开发供应商管理许可证的方式,由与各开发供应商签订了代理销售合同的许可证管理公司销售软件产品,并对每个用户进行汇总,管理多个软件产品的许可证。
并且,许可证管理公司从开发供应商处取得补丁信息和补丁,提供给用户,并且,代替各开发供应商发布其他软件产品的体验版、提供商品信息、进行促销等。此外,许可证管理公司还向开发供应商提供用户信息、统计信息等。
像这样,由许可证管理公司代替各开发供应商,进行软件产品的销售、许可证管理、补丁服务、促销等,从而各开发供应商能够专注于软件开发。并且,替代对每个开发供应商分别管理软件产品的许可证的方式,用户只要管理许可证管理公司提供的一个许可证即可,能够减轻用户的管理负担。
接着,说明本实施例2涉及的许可证管理系统的结构。图10是示出本实施例2涉及的许可证管理系统的结构的功能框图。如该图所示,该许可证管理系统经由互联网50来连接了许可证管理Web服务器10、业务Web服务器20、以及供应商服务器40。
另外,在此为了便于说明,对于与图2所示的各部起到相同作用的功能部,赋予同一符号,并省略其详细说明。并且,在此为了便于说明,示出各1台业务Web服务器和供应商服务器,但该许可证管理系统可以由任意台数的业务Web服务器和供应商服务器构成。
许可证管理Web服务器10执行的许可证管理程序400包括许可证信息存储部410、产品信息登记部120、产品信息核对部130、产品密钥生成部140、按功能划分许可信息码制作部150、许可证文件制作部160、补丁管理部470、补丁信息存储部471、运行条件存储部472、以及服务处理部480。
与图2所示的许可证信息存储部110相同,许可证信息存储部410用于存储许可证信息,但不存储与特定开发供应商的软件产品有关的许可证信息,而存储由多个开发供应商分别开发出的多个软件产品的许可证信息。
并且,该许可证信息存储部410除了存储与被赋予许可证的用户有关的信息、被许可安装业务应用程序的业务Web服务器的MAC地址、按功能划分许可信息之外,还存储各开发供应商的信息、从各开发供应商处取得的软件产品体验版、商品信息、促销信息等。
补丁管理部470是使用许可证信息存储部410、补丁信息存储部471以及运行条件存储部472来进行与补丁有关的处理的处理部。即,该补丁管理部470从供应商服务器40接受补丁信息、补丁以及运行条件,将补丁信息和补丁存储到补丁信息存储部471中,将运行条件存储到运行条件存储部472中。
而且,该补丁管理部470响应来自业务Web服务器20的请求,将被赋予了许可证的软件产品的补丁信息、补丁的运行条件以及补丁发送到业务Web服务器20,并且,从业务Web服务器20取得与补丁的应用状况有关的信息,存储到补丁信息存储部471中。
补丁信息存储部471是用于存储补丁信息和补丁的存储部。并且,该补丁信息存储部471对每个用户存储由补丁管理部470从业务Web服务器20取得的与补丁的应用状况有关的信息。
运行条件存储部472是用于存储各补丁的运行条件的存储部。服务处理部480经由互联网50从供应商服务器40接受软件产品的体验版、商品信息、促销信息,存储到许可证信息存储部410中。并且,该服务处理部480经由互联网50,将软件产品的体验版、商品信息、促销信息发送到业务Web服务器20。
业务Web服务器20执行的许可证检查程序500不仅仅进行许可证的检查,还对接受了许可证的软件产品应用补丁。为此,许可证检查程序500除了许可证文件210和许可证检查处理部220之外,还具有补丁处理部530、补丁管理文件531、以及运行条件管理文件532。
补丁处理部530是使用许可证文件210、补丁管理文件531以及运行条件管理文件532来应用补丁的处理部。图11是用于说明在补丁处理部530的补丁应用中使用的许可证文件210、补丁管理文件531以及运行条件管理文件532的关系的说明图。如该图所示,补丁处理部530对许可证文件210中存储有产品密钥和按功能划分许可信息码的每个软件产品(“数据包A”、“数据包B”等),使用补丁管理文件531来管理补丁信息,使用运行条件管理文件532来管理各补丁的运行条件。
补丁管理文件531是存储每个软件产品的补丁信息的文件,运行条件管理文件532是存储每个软件产品的各补丁的运行条件的文件。
图12是示出补丁管理文件531和运行条件管理文件532的一例的图。如该图所示,补丁管理文件531对每个补丁存储补丁的发布日、补丁名称以及补丁的应用日,运行条件管理文件532对每个补丁存储补丁名称和补丁应用范围。在此,补丁应用范围表示应用补丁的OS、DB的版本、成为补丁应用前提的补丁名称等的运行条件。
另外,在此,许可证检查程序500中包括许可证检查处理部220和补丁处理部530,但也可以将许可证检查处理部220和补丁处理部530设为独立程序。
供应商服务器40是在开发供应商将补丁信息或商品信息等加载到许可证管理Web服务器10上的情况下使用的服务器,用于运行进行各种信息的加载处理的加载程序41。
接着,说明由本实施例2涉及的许可证管理系统进行的补丁应用处理的处理步骤。图13是示出由本实施例2涉及的许可证管理系统进行的补丁应用处理的处理步骤的流程图。
如该图13所示,在该补丁应用处理中,许可证管理程序400的补丁管理部470进行加载处理(步骤S301)。即,补丁管理部470从供应商服务器40接收补丁、补丁信息以及运行条件,将补丁和补丁信息存储到补丁信息存储部471中,将运行条件存储到运行条件存储部472中。另外,开发供应商在专用的Web画面中进行补丁加载的登记,登记时指定补丁信息和补丁应用范围。
另一方面,许可证检查程序500的补丁处理部530以安装时记载于注册表的频度启动,检查业务Web服务器20的运行环境(步骤S302),仅在运行环境满足预定条件的情况下,向许可证管理Web服务器10请求与补丁有关的信息(步骤S303)。在此,运行环境应满足的条件是指,基于资源的应用状况、是否为业务的运用时间、工作量等的条件。
而且,若从业务Web服务器20接收到与补丁有关的信息的请求,则补丁管理部470将被赋予了许可证的软件产品的补丁信息和运行条件,作为与补丁有关的信息,发送到业务Web服务器20(步骤S304)。另外,与补丁有关的信息的发送被Web服务化,对来自外部的访问,进行密码认证。
此外,若从许可证管理Web服务器10接收到与补丁有关的信息,则补丁处理部530针对每个软件产品,将补丁信息存储到补丁管理文件531中,将运行条件存储到运行条件管理文件532中。而且,补丁处理部530根据运行条件来确定要应用的补丁(步骤S305),请求许可证管理Web服务器10发送所确定的补丁(步骤S306)。
并且,若从业务Web服务器20接收到补丁发送请求,则补丁管理部470将被请求的补丁发送到业务Web服务器20(步骤S307)。而且,若从许可证管理Web服务器10接收到补丁,则补丁处理部530应用补丁(步骤S308),更新补丁管理文件531的应用日(步骤S309)。此外,补丁处理部530将补丁应用信息发送到许可证管理Web服务器10(步骤S310)。
而且,若从业务Web服务器20接收到补丁应用信息,则补丁管理部470更新按照每个用户进行管理的补丁信息存储部471的信息(步骤S311)。另一方面,补丁处理部530进行DB再启动、服务器再启动等补丁应用后处理(步骤S312),完成处理时,输出补丁应用结果的对话框(步骤S313)。
如上所述,在本实施例2中,许可证管理程序400集中管理由多个开发供应商分别开发出的多个软件产品的补丁信息,所以各开发供应商仅将补丁和与补丁相关的信息加载到许可证管理Web服务器10上,就能够提供补丁服务,能够减轻提供补丁服务的开发供应商的负担。
并且,在本实施例2中,补丁处理部530从许可证管理Web服务器10取得与补丁相关的信息,应用补丁,因此,用户无需对每个开发供应商分别收集补丁信息,能够减轻用户的补丁管理负担。
而且,在本实施例2中,补丁处理部530从许可证管理Web服务器10取得与补丁相关的信息时,检查运行环境,所以能够应用补丁,而不会给在业务Web服务器20中运行的应用程序21带来坏影响。
另外,在本实施例2中,说明了在业务Web服务器20中运行的补丁处理部530确定要应用的补丁的情况,但本发明不限于此,同样能够适用于许可证管理程序400对每个用户管理补丁应用状况,确定必要补丁的情况。许可证管理程序400确定各用户所需的补丁,从而能够减轻业务Web服务器20的补丁管理负担。