CN110633074A - 一种软件开发工具包的使用控制方法及装置 - Google Patents
一种软件开发工具包的使用控制方法及装置 Download PDFInfo
- Publication number
- CN110633074A CN110633074A CN201910885778.8A CN201910885778A CN110633074A CN 110633074 A CN110633074 A CN 110633074A CN 201910885778 A CN201910885778 A CN 201910885778A CN 110633074 A CN110633074 A CN 110633074A
- Authority
- CN
- China
- Prior art keywords
- api
- sdk
- license file
- used times
- service request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000008569 process Effects 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 22
- 230000007547 defect Effects 0.000 claims description 21
- 238000001514 detection method Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000002372 labelling Methods 0.000 claims description 5
- 230000002950 deficient Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 229910000831 Steel Inorganic materials 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 239000011521 glass Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 239000010959 steel Substances 0.000 description 4
- 238000012015 optical character recognition Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000005507 spraying Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007921 spray Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开一种软件开发工具包的使用控制方法及装置,属于计算机技术领域,该方法包括:接收调用SDK中的API的业务请求,查找SDK的许可证文件,该许可证文件中记录有API的使用信息如API的已使用次数、API的最大使用次数息,若确定API的已使用次数小于API的最大使用次数,则允许调用API对业务请求进行处理,这样,在SDK的许可证文件中保存API的最大使用次数和已使用次数,借助于API的使用次数来限制用户对SDK的试用,只有API的已使用次数小于API的最大使用次数,用户才可使用SDK,即可方便用户试用SDK,也可降低SDK被盗用的概率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种软件开发工具包的使用控制方法及装置。
背景技术
目前,软件公司为了防止自己研发的软件开发工具包(Software DevelopmentKit,SDK)被盗用会给SDK配置加密狗,只有将SDK和加密狗安装在同一台设备上才可以正常使用SDK中的应用程序编程接口(Application Programming Interface,API)。
为了销售SDK,软件公司一般会给用户提供一个短暂的SDK试用期,为了使用户能正常试用SDK,软件公司还需要将SDK的加密狗邮寄给用户,而邮寄加密狗比较费时,难以满足用户立即试用SDK的诉求。
发明内容
本申请实施例提供一种软件开发工具包的使用控制方法及装置,用以解决现有技术中存在的SDK试用不方便的问题。
第一方面,本申请实施例提供的一种软件开发工具包的使用控制方法,包括:
接收调用软件开发工具包SDK中的应用程序编程接口API的业务请求;
查找所述SDK的许可证文件,所述许可证文件中保存有所述API的使用信息,所述使用信息至少包括所述API的已使用次数和所述API的最大使用次数;
若确定所述API的已使用次数小于所述API的最大使用次数,则允许调用所述API对所述业务请求进行处理。
本申请实施例中,接收到需调用SDK中的API进行处理的业务请求时,查找SDK的许可证文件,该许可证文件中保存有API的使用信息,如API的已使用次数和API的最大使用次数,若确定API的已使用次数小于API的最大使用次数,则允许调用API对业务请求进行处理,这样,在SDK的许可证文件中记录API的最大使用次数和已使用次数,借助于API的使用次数来限制用户对SDK的试用,当API的已使用次数小于API的最大使用次数时,用户才可使用SDK,即可方便用户试用SDK,又可降低SDK被盗用的概率。
第二方面,本申请实施例提供的一种软件开发工具包的使用控制装置,包括:
接收模块,用于接收调用软件开发工具包SDK中的应用程序编程接口API的业务请求;
查找模块,用于查找所述SDK的许可证文件,所述许可证文件中保存有所述API的使用信息,所述使用信息至少包括所述API的已使用次数和所述API的最大使用次数;
处理模块,用于若确定所述API的已使用次数小于所述API的最大使用次数,则允许调用所述API对所述业务请求进行处理。
第三方面,本申请实施例提供的一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
存储器存储有可被至少一个处理器执行的指令,该指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述软件开发工具包的使用控制方法。
第四方面,本申请实施例提供的一种计算机可读介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述软件开发工具包的使用控制方法。
另外,第二方面至第四方面中任一种设计方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
本申请的这些方面或其它方面在以下实施例的描述中会更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种电子设备的结构示意图;
图2为本申请实施例提供的一种软件开发工具包的使用控制方法的流程图;
图3为本申请实施例提供的又一种软件开发工具包的使用控制方法的流程图;
图4为本申请实施例提供的再一种软件开发工具包的使用控制方法的流程图;
图5为本申请实施例提供的又再一种软件开发工具包的使用控制方法的流程图;
图6为本申请实施例提供的另一种软件开发工具包的使用控制方法的流程图;
图7为本申请实施例提供的一种软件开发工具包的使用控制装置的结构示意图。
具体实施方式
为了解决现有技术中存在的SDK试用不方便的问题,本申请实施例提供了一种软件开发工具包的使用控制方法及装置。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请提供的软件开发工具包的使用控制方法可以应用到多种电子设备中,图1给出了一种电子设备的结构示意图,这里,图1所示的电子设备10仅仅是一个示例,并不对本申请实施例的功能和使用范围带来任何限制。
如图1所示,电子设备10以通用计算设备的形式表现,电子设备10的组件可以包括但不限于:至少一个处理单元101、至少一个存储单元102、连接不同系统组件(包括存储单元102和处理单元101)的总线103。
总线103表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元102可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1021和/或高速缓存存储器1022,还可以进一步包括只读存储器(ROM)1023。
存储单元102还可以包括具有一组(至少一个)程序模块1024的程序/实用工具1025,这样的程序模块1024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备10也可以与一个或多个外部设备104(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备10交互的设备通信,和/或与使得该电子设备10能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口105进行。并且,电子设备10还可以通过网络适配器106与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图1所示,网络适配器106通过总线103与用于电子设备10的其它模块通信。应当理解,尽管图1中未示出,可以结合电子设备10使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
本领域技术人员应当理解,图1仅仅是电子设备的举例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
在工业视觉场景下,经常会有需要利用产品的图像检查产品是否有缺陷的情况,比如利用采集的包装袋上生产日期的图像检查生产日期是否清楚、完全,利用玻璃的图像检查玻璃是否有裂痕,利用钢板的图像检查钢板是否有缺角等,在此情况下,软件公司可以开发用于实现某项服务的SDK,比如利用包含生产日期的图像检查图像中的字符是否有缺陷的SDK,利用玻璃的图像检查玻璃是否有裂痕的SDK,利用钢板的图像检查钢板是否有缺角的SDK,后续,软件公司可将自己开发的SDK提供给潜在用户试用。另外,软件公司也可以开发用于实现某类服务的SDK,比如开发一个利用产品的图像来检查产品是否有缺陷的缺陷检测模型,将缺陷检测模型的SDK提供给潜在用户试用,此时,用户可利用自己的产品图像训练自己的缺陷检测模型,如玻璃厂商用户训练得到的就是玻璃缺陷检测模型,钢板厂商用户训练得到的就是钢板缺陷检测模型。
一般地,一个SDK提供多种API,每种API用于处理一种业务请求,具体实施时,可对SDK提供的部分API如主要API的使用次数进行限制,也可对SDK提供所有API的使用次数进行限制,由开发人员根据实际需要进行选择,在此不再赘述。
本申请实施例的执行主体可以是终端也可以是服务器等电子设备,其中,当执行主体为终端时,SDK和SDK的许可证文件安装于终端中,由终端根据许可证文件控制用户对SDK的使用;当执行主体为服务器时,SDK和SDK的许可证文件安装于用户的服务器中,此时,可为用户提供相应的客户端,用户通过客户端来使用服务器上安装的SDK,由服务器根据许可证文件控制用户对SDK的使用。
如图2所示,为本申请实施例提供的一种软件开发工具包的使用控制方法的流程图,包括以下步骤:
S201:接收调用SDK中的API的业务请求。
这里,业务请求可用于请求判断获取到的图像中的字符否有缺陷,也用于请求根据获取到的产品图像和产品图像的缺陷标注信息建立产品的缺陷检测模型。
S202:查找SDK的许可证文件,其中,许可证文件中保存有API的使用信息,该使用信息至少包括API的已使用次数和API的最大使用次数。
初始时,API的已使用次数可为零,安装SDK时可将SDK的许可证文件存储到指定路径中,因此,可从指定路径中查找SDK的许可证文件。
S203:判断是否查找到SDK的许可证文件,若是,则进入S204;若否,则进入S206。
S204:判断API的已使用次数是否小于API的最大使用次数,若是,则进入S205;若否,则进入S206。
S205:允许调用API对业务请求进行处理。
具体实施时,若业务请求用于请求判断获取到的图像中的字符否有缺陷,则允许调用API来判断获取到的图像中的字符否有缺陷;若业务请求用于请求根据获取到的产品图像和产品图像的缺陷标注信息建立产品的缺陷检测模型,则允许调用API以根据获取到的产品图像和产品图像的缺陷标注信息建立产品的缺陷检测模型。
S206:拒绝业务请求。
具体实施时,拒绝业务请求之后,可控制终端或客户端显示许可证文件已过期的信息如“您的许可证文件已过期,若要继续使用请重新购买许可证文件”,并可提供购买许可证文件的入口。
上述方案,在SDK的许可证文件中保存API的已使用次数和最大使用次数,如果将SDK提供给用户试用,用户调用一次API,许可证文件中保存的API的已使用次数就增1,随着试用次数的增多,许可证文件中保存的API的已使用次数一定会达到API的最大使用次数,后续就不再允许用户试用,即可方便用户试用SDK,又可有效降低SDK被盗用的概率。
进一步的,还可以在SDK的许可证文件中设置过期时间,具体地,在每次使用SDK中的API时,读取当前的系统时间,若系统时间早于许可证文件中的过期时间,则允许使用API;否则,不允许使用API。
为了进一步降低SDK被盗用的概率,本申请实施例中,API的使用信息还可以包括API的最近一次使用时间,后续,终端调用API时,先判断当前的系统时间是否晚于API的最近一次使用时间,若是,则说明系统时间未被篡改,允许调用API;否则,说明系统时间被篡改,不允许调用API。
具体地,参见图3,为本申请实施例提供的又一种软件开发工具包的使用控制方法的流程图,包括以下步骤:
S301:接收调用SDK中的API的业务请求。
S302:查找SDK的许可证文件,其中,许可证文件中保存有API的使用信息,该使用信息至少包括API的已使用次数、API的最大使用次数和API的最近一次使用时间。
S303:判断是否查找到SDK的许可证文件,若是,则进入S304;若否,则进入S307。
S304:判断当前的系统时间是否晚于API的最近一次使用时间,若是,则进入S305;若否,则进入S307。
S305:判断API的已使用次数是否小于API的最大使用次数,若是,则进入S306;若否,则进入S307。
S306:允许调用API对业务请求进行处理。
S307:拒绝业务请求。
可选地,API的使用信息还可以包括API的过期时间,具体实施时,终端在调用API时,可先判断当前的系统时间是否早于API的过期时间,若是,则允许调用API;否则,不允许调用API,这样,利用API的最大调用次数和过期时间同时来限制对API的调用,可进一步降低SDK被盗用的概率。
具体实施时,可以将上述S304替换为:判断当前的系统时间是否早于API的过期时间,若是,则进入S305;若否,则进入S307。也可以将该流程附加在图3所示的流程中,具体的,参见图4,为本申请实施例提供的再一种软件开发工具包的使用控制方法的流程图,包括以下步骤:
S401:接收调用SDK中的API的业务请求。
S402:查找SDK的许可证文件,其中,许可证文件中保存有API的使用信息,该使用信息至少包括API的已使用次数、API的最大使用次数、API的最近一次使用时间和API的过期时间。
S403:判断是否查找到SDK的许可证文件,若是,则进入S404;若否,则进入S408。
S404:判断当前的系统时间是否晚于API的最近一次使用时间,若是,则进入S405;若否,则进入S408。
S405:判断当前的系统时间是否早于API的过期时间,若是,则进入S406;若否,则进入S408。
S406:判断API的已使用次数是否小于API的最大使用次数,若是,则进入S407;若否,则进入S408。
S407:允许调用API对业务请求进行处理。
S408:拒绝业务请求。
上述流程中,S404和S405之间没有严格的执行顺序关系。
具体实施时,在允许调用API之前,还可判断SDK的许可证文件是否被篡改,若是,则不允许调用API;若否,则允许调用API,这样,可应对许可证文件被篡改后仍然可使用的情况,进一步降低SDK被盗用的概率。
具体的,参见图5,为本申请实施例提供的又再一种软件开发工具包的使用控制方法的流程图,包括以下步骤:
S501:接收调用SDK中的API的业务请求。
S502:查找SDK的许可证文件,其中,许可证文件中保存有API的使用信息,该使用信息至少包括API的已使用次数、API的最大使用次数、API的最近一次使用时间和API的过期时间。
S503:判断是否查找到SDK的许可证文件,若是,则进入S504;若否,则进入S509。
S504:判断许可证文件是否被篡改,若否,则进入S505;若是,则进入S509。
具体实施时,每次调用API时,许可证文件中保存的API的使用信息都会更新,为了防止在下次调用API时,许可证文件中保存的API的使用信息被篡改,可以对最新保存的API的使用信息进行哈希计算,得到第一哈希值,将第一哈希值保存在许可证文件中。在下次使用SDK时,先对许可证文件中保存的API的使用信息进行哈希计算,得到第二哈希值,判断第二哈希值是否与许可证文件中的第一哈希值相同,若是,则确定许可证文件未被篡改;否则,确定许可证文件被篡改。
S505:判断当前的系统时间是否晚于API的最近一次使用时间,若是,则进入S506;若否,则进入S509。
S506:判断当前的系统时间是否早于API的过期时间,若是,则进入S507;若否,则进入S509。
S507:判断API的已使用次数是否小于API的最大使用次数,若是,则进入S508;若否,则进入S509。
S508:允许调用API对业务请求进行处理。
S509:拒绝业务请求。
本申请实施例中,在SDK的许可证文件中保存API的使用信息如API的最近一次使用时间、已使用次数、最大使用次数和过期时间,若接收到业务请求,同时满足许可证文件未被篡改,当前的系统时间晚于API的最近一次使用时间、早于API的过期时间,且API的已使用次数小于API的最大使用次数,才可响应业务请求,这样,可较好地防止用户通过篡改许可证文件或系统时间来绕过许可证,因此,可SDK被盗用的概率比较低。
下面结合具体的实施例对本申请实施例进行介绍。
实际应用中,一般都需要使用喷码机在包装袋上喷上生产日期,光学字符识别(Optical Character Recognition,OCR)技术可用于识别包装袋上的字符,此时,可对每个包装袋上的生产日期进行图像采集,进而根据采集的图像判断包装袋上的生产日期字符是否有缺陷。
一般地,软件公司会使用加密狗等方式对OCR检测使用的SDK进行加密,防止用户无限制的使用SDK,但在新用户试用阶段,需要将加密狗寄给用户,费事费力,非常不方便。为此,发明人想到在许可证文件中设置一个规则,限制SDK提供的API的最大使用次数和API的过期时间,如果系统时间超过API的过期时间或API的使用次数达到API的最大使用次数,用户将无法继续使用SDK,以此来防止用户通过修改系统时间而绕过许可证文件。
具体实施时,许可证(license)的格式可以为:
md5值;API的已使用次数:API的最大使用次数;API的最近一次使用时间:API的过期时间;
其中:
API的已使用次数:初始化时为0,API每被调用一次增加1;
API的最大使用次数:API的使用次数超过该数值后API将无法使用;
API的最近一次使用时间:每次使用API时更新为当前时间;
API的过期时间:当前时间超过该过期时间时API无法使用。
md5值:“;API的已使用次数:API的最大使用次数;API的最近一次使用时间:API的过期时间;”这一字符串经过消息摘要算法(Message-Digest Algorithm,MD5)处理后的值。
每次在更新API的已使用次数和最近一次使用时间后使用对称密钥算法对整体字符串进行加密,写入license文件中。
后续,可按照图6所示的流程控制SDK的使用,该流程包括以下步骤:
S601:获取图像,其中,图像中包含有喷码字体。
一般地,生产日期都喷码在包装袋的固定区域,只要对该固定区域进行图像采集即可。
S602:接收用于判断图像中的喷码字体是否有缺陷的请求。
S603:检查license文件是否存在,若不存在,则校验失败;若存在,则进入S604。
S604:对license文件的内容进行解密,得到字符串“md5值;API的已使用次数:API的最大使用次数;API的最近一次使用时间:API的过期时间;”。
S605:对比字符串第一个“;”前的md5值和第一个“;”之后内容的md5值是否相同,若否,则表示license文件被篡改,校验失败;若是,则进入S606。
S606:对比当前系统时间是否晚于字符串中API的最近一次使用时间,如果当前时间比API的最近一次使用时间早,则说明系统时间被篡改过,校验失败;否则进入S607。
S607:对比当前系统时间和API的过期时间,如果当前时间不早于过期时间晚,校验失败;否则进入S608。
S608:对比API的已使用次数和API的最大使用次数,如果API的已使用次数不小于API的最大使用次数,则校验失败;否则进入S609。
S609:校验成功,将API的已使用次数+1,API的最近一次使用时间更新为当前时间,按规则重写license文件。
S610:调用API判断图像中的喷码字体是否有缺陷,并输出判断结果。
当本申请实施例中提供的方法以应用或硬件或软硬件结合实现的时候,电子设备中可以包括多个功能模块,每个功能模块可以包括应用、硬件或其结合。具体的,参见图7所示,为本申请实施例提供的一种软件开发工具包的使用控制装置的结构示意图,包括接收模块701、查找模块702、处理模块703。
接收模块701,用于接收调用软件开发工具包SDK中的应用程序编程接口API的业务请求;
查找模块702,用于查找所述SDK的许可证文件,所述许可证文件中保存有所述API的使用信息,所述使用信息至少包括所述API的已使用次数和所述API的最大使用次数;
处理模块703,用于若确定所述API的已使用次数小于所述API的最大使用次数,则允许调用所述API对所述业务请求进行处理。
可选地,所述处理模块703还用于:
若确定所述API的已使用次数不小于所述API的最大使用次数,则拒绝所述业务请求。
可选地,所述业务请求用于请求判断获取到的图像中的字符否有缺陷,或者,所述业务请求用于请求根据获取到的产品图像和所述产品图像的缺陷标注信息建立产品的缺陷检测模型。
可选地,若所述使用信息还包括所述API的最近一次使用时间,则所述处理模块703还用于:
在查找所述SDK的许可证文件之后,确定当前的系统时间晚于所述API的最近一次使用时间。
可选地,若所述使用信息还包括所述API的过期时间,则所述处理模块703还用于:
在查找所述SDK的许可证文件之后,确定当前的系统时间早于所述API的过期时间。
可选地,所述处理模块703还用于:
在查找所述SDK的许可证文件之后,确定所述许可证文件未被篡改。
可选地,若所述许可证文件中还保存有对所述使用信息进行哈希计算得到的第一哈希值,则所述处理模块703具体用于:
对所述使用信息进行哈希计算,得到第二哈希值;
若确定所述第二哈希值与所述第一哈希值相同,则确定所述许可证文件未被篡改。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块既可以采用硬件的形式实现,也可以采用应用功能模块的形式实现。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本申请提供的软件开发工具包的使用控制方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的软件开发工具包的使用控制方法中的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于软件开发工具包的使用控制的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的应用包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种软件开发工具包的使用控制方法,其特征在于,包括:
接收调用软件开发工具包SDK中的应用程序编程接口API的业务请求;
查找所述SDK的许可证文件,所述许可证文件中保存有所述API的使用信息,所述使用信息至少包括所述API的已使用次数和所述API的最大使用次数;
若确定所述API的已使用次数小于所述API的最大使用次数,则允许调用所述API对所述业务请求进行处理。
2.如权利要求1所述的方法,其特征在于,还包括:
若确定所述API的已使用次数不小于所述API的最大使用次数,则拒绝所述业务请求。
3.如权利要求1所述的方法,其特征在于,所述业务请求用于请求判断获取到的图像中的字符否有缺陷,或者,所述业务请求用于请求根据获取到的产品图像和所述产品图像的缺陷标注信息建立产品的缺陷检测模型。
4.如权利要求1所述的方法,其特征在于,若所述使用信息还包括所述API的最近一次使用时间,则在查找所述SDK的许可证文件之后,还包括:
确定当前的系统时间晚于所述API的最近一次使用时间。
5.如权利要求1所述的方法,其特征在于,若所述使用信息还包括所述API的过期时间,则在查找所述SDK的许可证文件之后,还包括:
确定当前的系统时间早于所述API的过期时间。
6.如权利要求1~5任一所述的方法,其特征在于,在查找所述SDK的许可证文件之后,还包括:
确定所述许可证文件未被篡改。
7.如权利要求6所述的方法,其特征在于,若所述许可证文件中还保存有对所述使用信息进行哈希计算得到的第一哈希值,则确定所述许可证文件未被篡改,包括:
对所述使用信息进行哈希计算,得到第二哈希值;
若确定所述第二哈希值与所述第一哈希值相同,则确定所述许可证文件未被篡改。
8.一种软件开发工具包的使用控制装置,其特征在于,包括:
接收模块,用于接收调用软件开发工具包SDK中的应用程序编程接口API的业务请求;
查找模块,用于查找所述SDK的许可证文件,所述许可证文件中保存有所述API的使用信息,所述使用信息至少包括所述API的已使用次数和所述API的最大使用次数;
处理模块,用于若确定所述API的已使用次数小于所述API的最大使用次数,则允许调用所述API对所述业务请求进行处理。
9.一种电子设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7任一权利要求所述的方法。
10.一种计算机可读介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1至7任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910885778.8A CN110633074A (zh) | 2019-09-19 | 2019-09-19 | 一种软件开发工具包的使用控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910885778.8A CN110633074A (zh) | 2019-09-19 | 2019-09-19 | 一种软件开发工具包的使用控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110633074A true CN110633074A (zh) | 2019-12-31 |
Family
ID=68971650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910885778.8A Pending CN110633074A (zh) | 2019-09-19 | 2019-09-19 | 一种软件开发工具包的使用控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110633074A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460393A (zh) * | 2020-03-18 | 2020-07-28 | 紫光云技术有限公司 | 一种防止系统绕过软件license时间管控的方法 |
CN112632476A (zh) * | 2020-12-31 | 2021-04-09 | 四川虹微技术有限公司 | 算法授权保护方法、装置、集成电路芯片及电子设备 |
CN113037836A (zh) * | 2021-03-05 | 2021-06-25 | 北京金山云网络技术有限公司 | 云服务的试用方法、api网关、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101156166A (zh) * | 2005-03-24 | 2008-04-02 | 微软公司 | 使用机器属性来制止企业环境中的软件盗版的系统和方法 |
CN102999711A (zh) * | 2011-09-19 | 2013-03-27 | 中国电信股份有限公司 | 应用版权保护方法、网络平台及系统 |
CN105554025A (zh) * | 2016-01-19 | 2016-05-04 | 四川长虹电器股份有限公司 | 利用开放平台统一用户的管理方法及其管理系统 |
CN105630684A (zh) * | 2016-01-26 | 2016-06-01 | 百度在线网络技术(北京)有限公司 | 软件开发工具包识别方法和装置 |
US20160255139A1 (en) * | 2016-03-12 | 2016-09-01 | Yogesh Chunilal Rathod | Structured updated status, requests, user data & programming based presenting & accessing of connections or connectable users or entities and/or link(s) |
CN106709280A (zh) * | 2016-12-08 | 2017-05-24 | 北京旷视科技有限公司 | 信息处理方法和用于信息处理的客户端、服务器端 |
-
2019
- 2019-09-19 CN CN201910885778.8A patent/CN110633074A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101156166A (zh) * | 2005-03-24 | 2008-04-02 | 微软公司 | 使用机器属性来制止企业环境中的软件盗版的系统和方法 |
CN102999711A (zh) * | 2011-09-19 | 2013-03-27 | 中国电信股份有限公司 | 应用版权保护方法、网络平台及系统 |
CN105554025A (zh) * | 2016-01-19 | 2016-05-04 | 四川长虹电器股份有限公司 | 利用开放平台统一用户的管理方法及其管理系统 |
CN105630684A (zh) * | 2016-01-26 | 2016-06-01 | 百度在线网络技术(北京)有限公司 | 软件开发工具包识别方法和装置 |
US20160255139A1 (en) * | 2016-03-12 | 2016-09-01 | Yogesh Chunilal Rathod | Structured updated status, requests, user data & programming based presenting & accessing of connections or connectable users or entities and/or link(s) |
CN106709280A (zh) * | 2016-12-08 | 2017-05-24 | 北京旷视科技有限公司 | 信息处理方法和用于信息处理的客户端、服务器端 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460393A (zh) * | 2020-03-18 | 2020-07-28 | 紫光云技术有限公司 | 一种防止系统绕过软件license时间管控的方法 |
CN112632476A (zh) * | 2020-12-31 | 2021-04-09 | 四川虹微技术有限公司 | 算法授权保护方法、装置、集成电路芯片及电子设备 |
CN113037836A (zh) * | 2021-03-05 | 2021-06-25 | 北京金山云网络技术有限公司 | 云服务的试用方法、api网关、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810006B (zh) | 资源访问方法、装置、设备及存储介质 | |
CN110414268B (zh) | 访问控制方法、装置、设备及存储介质 | |
CN108960830B (zh) | 智能合约的部署方法、装置、设备及存储介质 | |
CN111258725A (zh) | 一种基于区块链的数据处理方法、装置、设备和介质 | |
US9665465B1 (en) | Automated determination of application permissions | |
CN110633074A (zh) | 一种软件开发工具包的使用控制方法及装置 | |
US20130283397A1 (en) | Method and apparatus for provisioning a mobile application | |
US10389685B2 (en) | Systems and methods for securely transferring selective datasets between terminals | |
US11227341B2 (en) | Expense compliance checking based on trajectory detection | |
US11500904B2 (en) | Local data classification based on a remote service interface | |
CN110597662B (zh) | 备份数据自动验证方法、装置、用户设备及存储介质 | |
US10931790B2 (en) | Systems and methods for securely transferring selective datasets between terminals with multi-applications support | |
CN110070360B (zh) | 一种事务请求处理方法、装置、设备及存储介质 | |
CN113448545B (zh) | 机器学习模型服务化的方法、设备、存储介质及程序产品 | |
CN109088872B (zh) | 带使用期限的云平台的使用方法、装置、电子设备及介质 | |
CN113434254A (zh) | 客户端部署方法、装置、计算机设备及存储介质 | |
CN111783119A (zh) | 表单数据安全控制方法、装置、电子设备及存储介质 | |
US11443058B2 (en) | Processing requests at a remote service to implement local data classification | |
US11496304B2 (en) | Information processing device, information processing method, and storage medium | |
CN110943982B (zh) | 单据数据加密的方法、装置、电子设备和存储介质 | |
WO2020228564A1 (zh) | 一种应用服务方法与装置 | |
CN106294411B (zh) | 软件类别的识别方法及识别系统 | |
CN113641966B (zh) | 一种应用集成方法、系统、设备及介质 | |
US20220051092A1 (en) | System and methods for translating error messages | |
CN113762871B (zh) | 一种生产数据控制方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191231 |
|
RJ01 | Rejection of invention patent application after publication |