CN104537284B - 一种基于远程服务的软件保护系统和方法 - Google Patents

一种基于远程服务的软件保护系统和方法 Download PDF

Info

Publication number
CN104537284B
CN104537284B CN201410804786.2A CN201410804786A CN104537284B CN 104537284 B CN104537284 B CN 104537284B CN 201410804786 A CN201410804786 A CN 201410804786A CN 104537284 B CN104537284 B CN 104537284B
Authority
CN
China
Prior art keywords
computing resource
client
application software
request
bytes
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.)
Active
Application number
CN201410804786.2A
Other languages
English (en)
Other versions
CN104537284A (zh
Inventor
葛胜锦
张汉宁
葛锦环
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
In Parker Engineering Technology Institute Co Ltd
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201410804786.2A priority Critical patent/CN104537284B/zh
Publication of CN104537284A publication Critical patent/CN104537284A/zh
Application granted granted Critical
Publication of CN104537284B publication Critical patent/CN104537284B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1015Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明属于计算机应用技术领域,涉及一种基于远程服务调用的软件保护系统及调用方法,提供了一种基于远程服务的软件保护系统,系统通过将应用软件客户端与应用软件服务端进行分离部署,软件的核心计算与功能实现由服务端完成,可有效防止软件被破解和盗版,通过采用布局远程调用方式,只将部分数据发送至服务器,核心计算功能由服务器端完成,网络数据传输量小,服务器计算负载轻,计算效率高,在不影响程序效率的同时,有效的实现了软件等核心技术的保护。

Description

一种基于远程服务的软件保护系统和方法
技术领域
本发明属于信息安全领域,具体涉及一种基于远程服务调用的软件保护系统及方法。
背景技术
近年来,随着计算机软件技术的广泛使用和计算机网络技术的迅猛发展,各大企业如勘察设计公司都相继研发了一系列优秀的绘图CAD软件和计算CAE软件,但都基于单机版或局域网版,并且这些软件一旦投放市场就会出现大量盗版,严重损害了知识产权拥有者的利益,也进一步制约了新技术的推广应用,阻碍了行业科技进步。因此,人们正在寻求将计算机辅助设计技术与网络技术结合起来,以实现异地、远程和协同地使用软件,同时又可保护企业知识产权的解决方案。
目前,市场上已经有部分软件产品尝试加入远程、协同等理念和技术,但存在着各种各样的不足和缺陷:
1、单机版软件保护方式主要集中在注册码加密、加密锁加密等方式,被破解和复制的可能性大,并且限制了软件的异地、共享使用。
2、网络版软件保护方式在功能设计和模式针对性单一,局限在某单一软件产品内部,不能达到信息与资源共享,适用面窄。
3、虚拟化软件保护方式在功能上由服务器完成,客户端只做终端显示和用户交互。这种方式通过将客户端与服务端隔离,安全性较高,但对服务器负荷大,资源占用率高,可在线使用的客户端数量受限,操作体验受实际网络状况影响较大,可实现的功能受到较大限制。
因此,鉴于上述这些情况,迫切需要一种能够解决上述问题的软件保护系统及方法。
发明内容
为了克服上述现有技术的不足和缺陷,本发明的一个目的在于,提供一种基于远程服务的软件保护系统。
为了实现上述任务,本发明采用的技术方案如下:
一种基于远程服务的软件保护系统,包括客户端和服务端两大部分:
所述客户端包括以下各单元:
应用软件客户端,用于实现用户在本机上对软件进行使用操作,并根据用户在使用操作过程中的软件使用需求,通过应用软件通信模块向客户端大厅发送请求;
应用软件通信模块,加载在应用软件客户端以及客户端大厅上,实现应用软件客户端与客户端大厅之间的通信连接;用于将应用软件客户端的远程调用请求发送到客户端大厅;
通信代理模块,加载在客户端大厅上,用于客户端大厅与客户端代理之间的通信连接,即客户端与服务端之间的通信连接;用于将应用软件通信模块发送的请求发送到服务端的客户端代理,并接收客户端代理发出的请求返回信息,传递客户端与服务端所需数据,屏蔽服务器的异构;
客户端大厅,与应用软件客户端通过应用软件通信模块进行交互,与服务端的客户端代理通过通信代理模块进行交互;用于用户输入或者客户端大厅自动获取用户身份信息以及使用权限信息;用于根据需要下载、安装、启动使用应用软件;用于监听并接收应用软件客户端的请求,并将该请求通过通信代理模块发送至服务端的客户端代理;
所述服务端包括以下各单元:
客户端代理,与计算中心和身份与权限认证模块交互;用于接收客户端大厅发出的请求,并根据接收到的请求类型进行处理操作,并将处理结果通过通信代理模块返回给客户端大厅;所述处理操作包括:将用户身份验证信息和应用软件使用权限信息发送到身份与权限认证模块,并接收身份与权限认证模块返回的验证结果;将计算资源执行请求发送给计算中心,并将计算中心返回的结果发送给客户端;
数据库,用以存储用户的身份信息、使用权限信息、计算节点配置信息、计算资源信息、用户操作日志;其中,计算节点配置信息包括计算节点IP、端口、调用地址;计算资源信息包括计算资源ID、资源名称、最大资源请求数、资源权重;
计算中心,与客户端代理以及计算节点交互,用于接收客户端代理发送的请求,然后根据请求类型进行操作处理:对计算资源进行标记;将计算资源执行请求以及从数据库中提取的计算节点配置信息发送给计算节点,并将计算节点返回的结果返回给客户端代理;
计算节点,与计算中心交互,加载有应用软件服务端;用于接收计算中心发出的计算资源执行请求和计算节点配置信息,并根据计算节点配置信息自动获取应用软件服务端的路径,根据该路径调用应用软件服务端并将其返回给计算中心;
应用软件服务端,是应用软件中的核心功能模块,其加载在计算节点上;其用于实现应用软件的核心分析与计算功能;
身份与权限认证模块,与客户端代理交互,用于接收客户端代理发送的用户身份和软件使用权限信息,并根据数据库中存储的相应信息,对用户身份和软件使用权限进行验证,并将验证结果发送给客户端代理;
用户与服务管理模块,为用户提供用户注册、用户信息维护、应用软件服务购买的功能与界面;为系统管理员提供对用户和软件服务统一管理和配置的功能与界面,包括用户注册、用户信息维护、应用软件服务购买、用户管理、订单管理、支付管理、应用软件服务管理;
服务端的计算中心、身份与权限认证模块、用户与服务管理模块分别与数据库连接,服务端和客户端通过通信代理模块进行连接。
进一步的,所述应用软件通信模块有4个供调用的接口,分别是计算资源申请请求接口、计算资源执行请求接口、计算资源释放请求接口、直接计算接口;
(1)计算资源申请请求接口
用于应用软件客户端发起远程调用前进行计算资源申请请求,格式如下:
601:计算资源ID,标志将要申请的计算资源,计算资源ID是应用软件服务端的唯一标识ID,应用软件客户端的每次计算资源申请请求都必须携带对应的计算资源ID,占用4个字节;
602:线程数,标识将要申请的计算资源线程数,每一个计算资源都配置有供申请调用的线程资源数,只有当计算资源可供申请的线程数大于本次申请的线程数,计算资源申请请求才可成功,线程数占用4个字节;
603:错误代码,用来存储调用时发生的错误代码,占用4个字节;
604:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(2)计算资源执行请求接口
用于应用软件客户端向应用软件服务端发起计算资源执行请求(即远程计算调用),接口格式如下:
701:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用必须携带需要请求调用的计算资源ID,占用4个字节;
702:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节;
703:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
704:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
705:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
706:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
707:错误代码,用来存储调用时发生的错误代码,占用4个字节;
708:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(3)计算资源释放请求接口
用于应用软件客户端释放已经申请的计算资源,接口格式如下:
801:计算资源ID,标志将要释放的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节;
802:错误代码,用来存储调用时发生的错误代码,占用4个字节;
803:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(4)直接计算接口
用于应用软件客户端直接向应用软件服务端的发起远程计算调用,而无需经过计算资源申请请求、计算资源计算请求、计算资源释放请求三个步骤,接口格式如下:
901:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节;
902:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节;
903:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
904:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
905:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
906:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
907:错误代码,用来存储调用时发生的错误代码,占用4个字节;
908:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节。
进一步的,所述应用软件服务端包含一个或多个功能函数,并提供一个接口,接口参数如下:
1001:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
1002:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
1003:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
1004:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
1005:函数ID,用于标示此次调用是针对该应用软件服务端所包含的哪个具体功能函数。
本发明的另一个目的在于,提供一种基于远程服务的软件保护方法,该方法包括步骤1:申请计算资源;步骤2:执行计算资源;步骤3:释放计算资源。
进一步的,所述步骤1申请计算资源的具体步骤如下:
步骤301:在用户操作应用软件时,触发应用软件客户端发起计算资源申请请求;
步骤302:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源申请请求,然后等待结果返回;
步骤303:客户端大厅收到计算资源申请请求后,通过通信代理模块将请求转发给服务端的客户端代理,然后等待结果返回;
步骤304:客户端代理收到计算资源申请请求后,向身份与权限认证模块请求验证该用户的身份与使用权限,如果客户端代理随后接收到该用户拥有使用软件服务端的权限,则执行步骤305,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;在该过程中,身份与权限认证模块将客户端代理提供的用户信息及使用权限信息与数据库中相应信息进行比对判断,并将判断结果返回给客户端代理;
步骤305:客户端代理将计算资源申请请求发至计算中心,然后等待结果返回;
步骤306:计算中心收到客户端代理发来的计算资源申请请求后,如果应用软件客户端发来的线程数未超出最大可用资源数则有足够计算资源可用,返回计算资源申请成功信息,并根据应用软件客户端发来的计算资源ID对相应的计算资源进行标记;否则,向客户端代理返回计算资源申请失败的错误信息,该错误信息被一路返回到应用软件客户端;
步骤307:应用软件客户端接收客户端大厅返回的结果,此时应用软件客户端进行判断,计算资源申请成功继续执行步骤2,否则,提示资源申请失败,计算资源申请调用过程结束。
进一步的,所述步骤2执行计算资源的具体步骤如下:
步骤401:应用软件客户端发起计算资源执行请求;
步骤402:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源执行请求,然后等待结果返回;
步骤403:客户端大厅收到计算资源执行请求后,通过通信代理模块将请求发送给服务端的客户端代理,然后等待结果返回;
步骤404:客户端代理收到计算资源执行请求后,根据缓存的使用权限信息判断,如果该用户有调用该应用软件服务端的权限,则将计算资源执行请求发至计算中心,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;
步骤405:计算中心收到计算资源执行请求后,根据缓存的计算节点配置信息选择计算节点,并将计算节点配置信息发送至计算节点;
步骤406:计算节点接收到计算节点配置信息后,根据计算节点配置信息自动获取应用软件服务端的路径,并将应用软件客户端发来的输入数据利用被标记的应用软件服务端进行处理,并将处理结果作为输出数据返回给计算中心,计算中心将该处理结果返回给客户端代理,客户端代理再将结果返回给客户端大厅,客户端大厅最后将结果返回给应用软件客户端;
步骤407:应用软件客户端接收到处理结果后,应用软件客户端再根据自身流程对接收到的处理结果进一步处理,计算资源执行请求结束。
进一步的,所述步骤405中计算中心根据计算节点配置信息选择计算节点过程中,当有多个计算节点时,计算中心根据配置随机选取或根据优先级选取某一个计算节点。
进一步的,所述步骤3释放计算资源的具体步骤如下:
步骤501:应用软件客户端发起计算资源释放请求;
步骤502:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源释放请求,然后等待结果返回;
步骤503:客户端大厅收到计算资源释放请求后,通过通信代理模块将请求发送给服务端的客户端代理,然后等待结果返回;
步骤504:客户端代理收到计算资源释放请求后,根据缓存的使用权限信息判断,如果该用户拥有调用该应用软件服务端的权限,则将计算资源释放请求发至计算中心,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;
步骤505:计算中心收到计算资源释放请求后,对应用软件服务端的标记取消,返回计算资源释放请求成功;计算中心将该结果返回给客户端代理,客户端代理再返回给客户端大厅,最后返回给应用软件客户端;
步骤506:应用软件客户端接收到返回结果,计算资源释放请求结束。
进一步的,所述应用软件通信模块有4个供调用的接口,分别是计算资源申请请求接口、计算资源执行请求接口、计算资源释放请求接口、直接计算接口;
(1)计算资源申请请求接口
用于应用软件客户端发起远程调用前进行计算资源申请请求,格式如下:
601:计算资源ID,标志将要申请的计算资源,计算资源ID是应用软件服务端的唯一标识ID,应用软件客户端的每次计算资源申请请求都必须携带对应的计算资源ID,占用4个字节;
602:线程数,标识将要申请的计算资源线程数,每一个计算资源都配置有供申请调用的线程资源数,只有当计算资源可供申请的线程数大于本次申请的线程数,计算资源申请请求才可成功,线程数占用4个字节;
603:错误代码,用来存储调用时发生的错误代码,占用4个字节;
604:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(2)计算资源执行请求接口
用于应用软件客户端向应用软件服务端发起计算资源执行请求,接口格式如下:
701:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用必须携带需要请求调用的计算资源ID,占用4个字节;
702:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节;
703:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
704:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
705:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
706:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
707:错误代码,用来存储调用时发生的错误代码,占用4个字节;
708:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(3)计算资源释放请求接口
用于应用软件客户端释放已经申请的计算资源,接口格式如下:
801:计算资源ID,标志将要释放的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节;
802:错误代码,用来存储调用时发生的错误代码,占用4个字节;
803:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(4)直接计算接口
用于应用软件客户端直接向应用软件服务端的发起远程计算调用,而无需经过计算资源申请请求、计算资源计算请求、计算资源释放请求三个步骤,接口格式如下:
901:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节;
902:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节;
903:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
904:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
905:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
906:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
907:错误代码,用来存储调用时发生的错误代码,占用4个字节;
908:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
进一步的,所述应用软件服务端包含一个或多个功能函数,并提供一个接口,接口参数如下:
1001:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
1002:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
1003:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
1004:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
1005:函数ID,用于标示此次调用是针对该应用软件服务端所包含的哪个具体功能函数。
与现有技术相比,本发明的基于远程服务的软件保护系统和方法具有以下优点:
1、资源共享。本发明基于系统与平台方式设计,系统中应用软件共用服务器端资源,不局限于某一款软件产品内部,能够有效实现信息与资源共享,适用面广。
2、应用软件模式多样化。由于本发明采用SOA架构设计,将应用软件客户端与应用软件服务端进行分离,并通过系统提供的标准接口与方法进行远程调用,任何软件均可通过此方式实现。
3、资源利用率高。本发明采用远程调用方式,只将需要进行处理的数据发送至服务端,核心计算功能由服务端完成,网络数据传输量小,服务器计算负载轻,可承载的服务量大,资源利用率高。
4、安全性好。本发明采用远程调用方式,将应用软件客户端与应用软件服务端进行分离部署,应用软件的核心功能模块实现由服务端完成,应用软件远程、异地、协同使用,稳定可靠、资源占用量少,可有效防止应用软件的核心技术被破解和盗版,安全性好。
附图说明
图1为本发明的基于远程服务的软件保护系统的结构图;
图2为本发明的基于远程服务的软件保护方法的流程图;
图3为计算资源申请请求的流程图;
图4为计算资源执行请求的流程图;
图5为计算资源释放申请的流程图。
以下结合附图对本发明作进一步详细说明。
具体实施方式
本发明适用的操作系统有:Microsoft Windows XP,Microsoft Windows2000,Microsoft Windows 2003,Microsoft Windows vista,Microsoft Windows7,MicrosoftWindows8等;硬件环境:Pentium(R)4 CPU,512M内存以上;应用软件指计算机辅助设计软件(Computer Aided Design,CAD)、计算机辅助工程软件(Computer Aided Engineering,CAE)、工程设计类基础应用软件(AutoCAD2002/2004/2006/2008/2009/20010/2011/2012/2013,中望CAD、浩辰CAD等)以及其他类别应用软件(如财务软件、办公软件等)。适用的开发语言:C、C++、C#、Java、PHP、Python等。
参见图1,本发明给出了一种基于远程服务的软件保护系统,包括客户端和服务端两大部分,其中:
客户端包括以下各单元:
应用软件客户端,用于实现用户在本机上对软件进行使用操作,并根据用户在使用操作过程中的软件使用需求,通过应用软件通信模块向客户端大厅发送请求;
本发明中,应用软件被拆分为应用软件客户端和应用软件服务端。应用软件客户端仅包含应用软件中非核心功能模块,而应用软件服务端为应用软件中的核心功能模块。当应用软件客户端使用应用软件中的核心功能模块时,应用软件客户端会向客户端大厅发出请求。
应用软件通信模块,加载在应用软件客户端以及客户端大厅上,实现应用软件客户端与客户端大厅之间的通信连接;用于将应用软件客户端的远程调用请求发送到客户端大厅。
通信代理模块,加载在客户端大厅上,用于客户端大厅与客户端代理之间的通信连接,即客户端与服务端之间的通信连接;用于将应用软件通信模块发送的请求(计算资源申请请求、计算资源执行请求或计算资源释放请求)发送到服务端的客户端代理,并接收客户端代理发出的请求返回信息,传递客户端与服务端所需数据,屏蔽服务器的异构。
客户端大厅,与应用软件客户端通过应用软件通信模块进行交互,与服务端的客户端代理通过通信代理模块进行交互;用于用户输入或者客户端大厅自动获取用户身份信息以及使用权限信息;用于根据需要下载、安装、启动使用应用软件;用于监听并接收应用软件客户端的请求(计算资源申请请求、计算资源执行请求或计算资源释放请求),并将该请求通过通信代理模块发送至服务端的客户端代理。
服务端包括以下各单元:
客户端代理(Client Proxy),与计算中心和身份与权限认证模块交互;用于接收客户端大厅发出的请求(计算资源申请请求(ApplyResource)、计算资源执行请求(Compute)或计算资源释放请求(ReleaseResource),并根据接收到的请求类型进行处理操作,并将处理结果通过通信代理模块返回给客户端大厅;所述处理操作包括:将用户身份验证信息和应用软件使用权限信息发送到身份与权限认证模块,并接收身份与权限认证模块返回的验证结果;将计算资源执行请求发送给计算中心,并将计算中心返回的结果发送给客户端;
数据库,用以存储用户的身份信息、使用权限信息、计算节点配置信息、计算资源信息、用户操作日志。其中,计算节点配置信息包括计算节点IP、端口、调用地址;计算资源信息包括计算资源ID、资源名称、最大资源请求数、资源权重;
计算中心(Compute Center),与客户端代理以及计算节点交互,用于接收客户端代理发送的请求(计算资源申请请求、计算资源执行请求或计算资源释放请求),然后根据请求类型进行操作处理:对计算资源进行标记;将计算资源执行请求以及从数据库中提取的计算节点配置信息发送给计算节点,并将计算节点返回的结果返回给客户端代理。
计算中心提供计算资源申请(ApplyResource)接口、计算资源执行(Compute)接口和计算资源释放(ReleaseResource)接口共三种调用接口。
计算节点(Compute Node),与计算中心交互,加载有应用软件服务端;用于接收计算中心发出的计算资源执行请求和计算节点配置信息,并根据计算节点配置信息自动获取应用软件服务端的路径,根据该路径调用应用软件服务端并将其返回给计算中心。
应用软件服务端,是应用软件中的核心功能模块,其加载在计算节点上;其用于实现应用软件的核心分析与计算功能;应用软件服务端包含一个或多个功能函数,并提供一个固定名称和参数的函数调用接口,用于计算节点在将应用软件服务端加载后,通过该接口发起对应用软件服务端的调用。本发明中,一个可被远程调用的应用软件服务端被称为一个计算资源。
身份与权限认证模块,与客户端代理交互,用于接收客户端代理发送的用户身份和软件使用权限信息,并根据数据库中存储的相应信息,对用户身份和软件使用权限进行验证,并将验证结果发送给客户端代理;
用户与服务管理模块,为用户提供用户注册、用户信息维护、应用软件服务购买的功能与界面;为系统管理员提供对用户和软件服务统一管理和配置的功能与界面,包括用户注册、用户信息维护、应用软件服务购买、用户管理、订单管理、支付管理、应用软件服务管理。
服务端的计算中心、身份与权限认证模块、用户与服务管理模块分别与数据库连接,服务端和客户端通过通信代理模块进行连接。
以上各模块之间的主要接口如下:
应用软件客户端-应用软件通信模块-客户端大厅接口:用于应用软件客户端与向客户端大厅进行通信,实现请求和请求返回结果在应用软件客户端和客户端大厅中的传递。通过命名管道实现。
客户端大厅-通信代理模块-客户端代理:用于客户端大厅向服务器端的客户端代理发起请求并获取服务器端的请求返回结果。通过远程服务接口调用实现。
客户端代理-计算中心:用于客户端代理向计算中心发送应用软件调用信息。通过远程服务接口调用实现。
计算中心-计算节点:用于计算中心向计算节点发送请求和传入数据,并获取计算节点对应用软件服务端处理后的传出数据。通过远程服务接口调用实现。
客户端代理-身份与权限认证模块:用于客户端代理获得用户身份认证信息和应用软件使用权限信息。通过远程服务接口调用实现。
在本发明的基于远程服务的软件保护系统中,通信代理模块与服务端的客户端代理、客户端代理与计算中心、计算中心与计算节点、客户端代理与身份与权限认证模块之间的采用面向服务的体系结构(Service-Oriented Architecture,SOA)架构设计,支持环境异构。
参见图2,本发明给出了一种基于远程服务的软件保护方法,包括以下三个步骤:
步骤1:申请计算资源。具体步骤如下:
步骤301:在用户操作应用软件时,触发应用软件客户端发起计算资源申请请求;
步骤302:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源申请请求,然后等待结果返回;
步骤303:客户端大厅收到计算资源申请请求后,通过通信代理模块将请求转发给服务端的客户端代理,然后等待结果返回;
步骤304:客户端代理收到计算资源申请请求后,向身份与权限认证模块请求验证该用户的身份与使用权限,如果客户端代理随后接收到该用户拥有使用软件服务端的权限,则执行步骤305,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;在该过程中,身份与权限认证模块将客户端代理提供的用户信息及使用权限信息与数据库中相应信息进行比对判断,并将判断结果返回给客户端代理;
步骤305:客户端代理将计算资源申请请求发至计算中心,然后等待结果返回;
步骤306:计算中心收到客户端代理发来的计算资源申请请求后,如果应用软件客户端发来的线程数未超出最大可用资源数则有足够计算资源可用,返回计算资源申请成功信息,并根据应用软件客户端发来的计算资源ID对相应的计算资源进行标记;否则,向客户端代理返回计算资源申请失败的错误信息,该错误信息被一路返回到应用软件客户端;
步骤307:应用软件客户端接收客户端大厅返回的结果,此时应用软件客户端进行判断,计算资源申请成功继续执行步骤2,否则,提示资源申请失败,计算资源申请调用过程结束;
步骤2:执行计算资源。具体步骤如下:
步骤401:应用软件客户端发起计算资源执行请求;
步骤402:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源执行请求,然后等待结果返回;
步骤403:客户端大厅收到计算资源执行请求后,通过通信代理模块将请求发送给服务端的客户端代理,然后等待结果返回;
步骤404:客户端代理收到计算资源执行请求后,根据缓存的使用权限信息判断,如果该用户有调用该应用软件服务端的权限,则将计算资源执行请求发至计算中心,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;
步骤405:计算中心收到计算资源执行请求后,根据缓存的计算节点配置信息选择计算节点,并将计算节点配置信息发送至计算节点;
步骤406:计算节点接收到计算节点配置信息后,根据计算节点配置信息自动获取应用软件服务端(即计算资源)的路径,并将应用软件客户端发来的输入数据利用被标记的应用软件服务端进行处理,并将处理结果作为输出数据返回给计算中心,计算中心将该处理结果返回给客户端代理,客户端代理再将结果返回给客户端大厅,客户端大厅最后将结果返回给应用软件客户端;
步骤407:应用软件客户端接收到处理结果后,应用软件客户端再根据自身流程对接收到的处理结果进一步处理,计算资源执行请求结束。
上述计算中心根据计算节点配置信息选择计算节点的方法包括随机选择法和优先级选择法,当有多个计算节点时,计算中心根据配置随机选取或根据优先级选取某一个计算节点。
步骤3:释放计算资源。具体步骤如下:
步骤501:应用软件客户端发起计算资源释放请求;
步骤502:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源释放请求,然后等待结果返回;
步骤503:客户端大厅收到计算资源释放请求后,通过通信代理模块将请求发送给服务端的客户端代理,然后等待结果返回;
步骤504:客户端代理收到计算资源释放请求后,根据缓存的使用权限信息判断,如果该用户拥有调用该应用软件服务端的权限,则将计算资源释放请求发至计算中心,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;
步骤505:计算中心收到计算资源释放请求后,对应用软件服务端(即计算资源)的标记取消,返回计算资源释放请求成功;计算中心将该结果返回给客户端代理,客户端代理再返回给客户端大厅,最后返回给应用软件客户端;
步骤506:应用软件客户端接收到返回结果,计算资源释放请求结束。
本发明中,应用软件通信模块提供了4个可供调用的接口,分别是计算资源申请请求(ApplyResource)接口、计算资源执行请求(Compute)接口、计算资源释放请求(ReleaseResource)接口、直接计算(DirectCompute)接口。其中,ApplyResource、Compute、ReleaseResource这三个接口必须按照顺序依次使用。而DirectCompute是其独立使用的快速调用接口。
(1)ApplyResource接口
计算资源申请接口,用于应用软件客户端发起远程调用前进行计算资源申请请求(即远程资源调用),格式如下:
STDMETHOD(ApplyResource)(
/*[in]*/const int iGlobalID,
/*[in]*/const int iThreadNum,
/*[out]*/int*pErrorCode,
/*[out]*/char*pErrorInfo
);
601:计算资源ID,标志将要申请的计算资源,计算资源ID是应用软件服务端的唯一标识ID,应用软件客户端的每次计算资源申请请求都必须携带对应的计算资源ID,占用4个字节。
602:线程数,标识将要申请的计算资源线程数,每一个计算资源都配置有供申请调用的线程资源数,只有当计算资源可供申请的线程数大于本次申请的线程数,计算资源申请请求才可成功,线程数占用4个字节。
603:错误代码,用来存储调用时发生的错误代码,占用4个字节。
604:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节。
(2)Compute接口
计算接口,用于应用软件客户端向应用软件服务端发起计算资源执行请求(即远程计算调用),接口格式如下:
701:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用必须携带需要请求调用的计算资源ID,占用4个字节。
702:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节。
703:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节。
704:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节。
705:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节。
706:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节。
707:错误代码,用来存储调用时发生的错误代码,占用4个字节。
708:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节。
(3)ReleaseResource接口
计算资源释放接口,用于应用软件客户端释放已经申请的计算资源,接口格式如下:
801:计算资源ID,标志将要释放的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节。
802:错误代码,用来存储调用时发生的错误代码,占用4个字节。
803:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节。
(4)DirectCompute接口
直接计算接口,用于应用软件客户端直接向应用软件服务端的发起远程计算调用,而无需经过计算资源申请请求、计算资源计算请求、计算资源释放请求三个步骤,接口格式如下:
901:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节。
902:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节。
903:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节。
904:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节。
905:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节。
906:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节。
907:错误代码,用来存储调用时发生的错误代码,占用4个字节。
908:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
本发明中,应用软件服务端包含一个或多个功能函数,并提供一个固定名称和参数的函数调用接口,用于计算节点在将应用软件服务端加载后,通过该固定接口发起对应用软件服务端的调用,接口参数如下:
1001:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节。
1002:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节。
1003:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节。
1004:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节。
1005:函数ID,用于标示此次调用是针对该应用软件服务端所包含的哪个具体功能函数。

Claims (10)

1.一种基于远程服务的软件保护系统,包括客户端和服务端两大部分,其特征在于:
所述客户端包括以下各单元:
应用软件客户端,用于实现用户在本机上对软件进行使用操作,并根据用户在使用操作过程中的软件使用需求,通过应用软件通信模块向客户端大厅发送请求;
应用软件通信模块,加载在应用软件客户端以及客户端大厅上,实现应用软件客户端与客户端大厅之间的通信连接;用于将应用软件客户端的远程调用请求发送到客户端大厅;
通信代理模块,加载在客户端大厅上,用于客户端大厅与客户端代理之间的通信连接,即客户端与服务端之间的通信连接;用于将应用软件通信模块发送的请求发送到服务端的客户端代理,并接收客户端代理发出的请求返回信息,传递客户端与服务端所需数据,屏蔽服务器的异构;
客户端大厅,与应用软件客户端通过应用软件通信模块进行交互,与服务端的客户端代理通过通信代理模块进行交互;用于用户输入或者客户端大厅自动获取用户身份信息以及使用权限信息;用于根据需要下载、安装、启动使用应用软件;用于监听并接收应用软件客户端的请求,并将该请求通过通信代理模块发送至服务端的客户端代理;
所述服务端包括以下各单元:
客户端代理,与计算中心和身份与权限认证模块交互;用于接收客户端大厅发出的请求,并根据接收到的请求类型进行处理操作,并将处理结果通过通信代理模块返回给客户端大厅;所述处理操作包括:将用户身份验证信息和应用软件使用权限信息发送到身份与权限认证模块,并接收身份与权限认证模块返回的验证结果;将计算资源执行请求发送给计算中心,并将计算 中心返回的结果发送给客户端;
数据库,用以存储用户的身份信息、使用权限信息、计算节点配置信息、计算资源信息、用户操作日志;其中,计算节点配置信息包括计算节点IP、端口、调用地址;计算资源信息包括计算资源ID、资源名称、最大资源请求数、资源权重;
计算中心,与客户端代理以及计算节点交互,用于接收客户端代理发送的请求,然后根据请求类型进行操作处理:对计算资源进行标记;将计算资源执行请求以及从数据库中提取的计算节点配置信息发送给计算节点,并将计算节点返回的结果返回给客户端代理;
计算节点,与计算中心交互,加载有应用软件服务端;用于接收计算中心发出的计算资源执行请求和计算节点配置信息,并根据计算节点配置信息自动获取应用软件服务端的路径,根据该路径调用应用软件服务端并将其返回给计算中心;
应用软件服务端,是应用软件中的核心功能模块,其加载在计算节点上;其用于实现应用软件的核心分析与计算功能;
身份与权限认证模块,与客户端代理交互,用于接收客户端代理发送的用户身份和软件使用权限信息,并根据数据库中存储的相应信息,对用户身份和软件使用权限进行验证,并将验证结果发送给客户端代理;
用户与服务管理模块,为用户提供用户注册、用户信息维护、应用软件服务购买的功能与界面;为系统管理员提供对用户和软件服务统一管理和配置的功能与界面,包括用户注册、用户信息维护、应用软件服务购买、用户管理、订单管理、支付管理、应用软件服务管理;
服务端的计算中心、身份与权限认证模块、用户与服务管理模块分别与数据库连接,服务端和客户端通过通信代理模块进行连接。
2.如权利要求1所述的基于远程服务的软件保护系统的软件保护方法, 其特征在于,所述应用软件通信模块有4个供调用的接口,分别是计算资源申请请求接口、计算资源执行请求接口、计算资源释放请求接口、直接计算接口;
(1)计算资源申请请求接口
用于应用软件客户端发起远程调用前进行计算资源申请请求,格式如下:
601:计算资源ID,标志将要申请的计算资源,计算资源ID是应用软件服务端的唯一标识ID,应用软件客户端的每次计算资源申请请求都必须携带对应的计算资源ID,占用4个字节;
602:线程数,标识将要申请的计算资源线程数,每一个计算资源都配置有供申请调用的线程资源数,只有当计算资源可供申请的线程数大于本次申请的线程数,计算资源申请请求才可成功,线程数占用4个字节;
603:错误代码,用来存储调用时发生的错误代码,占用4个字节;
604:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(2)计算资源执行请求接口
用于应用软件客户端向应用软件服务端发起计算资源执行请求(即远程计算调用),接口格式如下:
701:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用必须携带需要请求调用的计算资源ID,占用4个字节;
702:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节;
703:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
704:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度 占用4个字节;
705:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
706:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
707:错误代码,用来存储调用时发生的错误代码,占用4个字节;
708:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(3)计算资源释放请求接口
用于应用软件客户端释放已经申请的计算资源,接口格式如下:
801:计算资源ID,标志将要释放的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节;
802:错误代码,用来存储调用时发生的错误代码,占用4个字节;
803:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(4)直接计算接口
用于应用软件客户端直接向应用软件服务端的发起远程计算调用,而无需经过计算资源申请请求、计算资源执行请求、计算资源释放请求三个步骤,接口格式如下:
901:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节;
902:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节;
903:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
904:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
905:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
906:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
907:错误代码,用来存储调用时发生的错误代码,占用4个字节;
908:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节。
3.如权利要求1所述的基于远程服务的软件保护系统的软件保护方法,其特征在于,所述应用软件服务端包含一个或多个功能函数,并提供一个接口,接口参数如下:
1001:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
1002:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
1003:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
1004:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
1005:函数ID,用于标示此次调用是针对该应用软件服务端所包含的哪个具体功能函数。
4.权利要求1所述的基于远程服务的软件保护系统的软件保护方法,其特征在于,包括步骤1:申请计算资源;步骤2:执行计算资源;步骤3:释放计算资源。
5.如权利要求4所述的基于远程服务的软件保护系统的软件保护方法,其特征在于,所述步骤1申请计算资源的具体步骤如下:
步骤301:在用户操作应用软件时,触发应用软件客户端发起计算资源申请请求;
步骤302:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源申请请求,然后等待结果返回;
步骤303:客户端大厅收到计算资源申请请求后,通过通信代理模块将请求转发给服务端的客户端代理,然后等待结果返回;
步骤304:客户端代理收到计算资源申请请求后,向身份与权限认证模块请求验证该用户的身份与使用权限,如果客户端代理随后接收到该用户拥有使用软件服务端的权限,则执行步骤305,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;在该过程中,身份与权限认证模块将客户端代理提供的用户信息及使用权限信息与数据库中相应信息进行比对判断,并将判断结果返回给客户端代理;
步骤305:客户端代理将计算资源申请请求发至计算中心,然后等待结果返回;
步骤306:计算中心收到客户端代理发来的计算资源申请请求后,如果应用软件客户端发来的线程数未超出最大可用资源数则有足够计算资源可用,返回计算资源申请成功信息,并根据应用软件客户端发来的计算资源ID对相应的计算资源进行标记;否则,向客户端代理返回计算资源申请失败的错误信息,该错误信息被一路返回到应用软件客户端;
步骤307:应用软件客户端接收客户端大厅返回的结果,此时应用软件客户端进行判断,计算资源申请成功继续执行步骤2,否则,提示资源申请失败,计算资源申请调用过程结束。
6.如权利要求4所述的基于远程服务的软件保护系统的软件保护方法, 其特征在于,所述步骤2执行计算资源的具体步骤如下:
步骤401:应用软件客户端发起计算资源执行请求;
步骤402:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源执行请求,然后等待结果返回;
步骤403:客户端大厅收到计算资源执行请求后,通过通信代理模块将请求发送给服务端的客户端代理,然后等待结果返回;
步骤404:客户端代理收到计算资源执行请求后,根据缓存的使用权限信息判断,如果该用户有调用该应用软件服务端的权限,则将计算资源执行请求发至计算中心,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;
步骤405:计算中心收到计算资源执行请求后,根据缓存的计算节点配置信息选择计算节点,并将计算节点配置信息发送至计算节点;
步骤406:计算节点接收到计算节点配置信息后,根据计算节点配置信息自动获取应用软件服务端的路径,并将应用软件客户端发来的输入数据利用被标记的应用软件服务端进行处理,并将处理结果作为输出数据返回给计算中心,计算中心将该处理结果返回给客户端代理,客户端代理再将结果返回给客户端大厅,客户端大厅最后将结果返回给应用软件客户端;
步骤407:应用软件客户端接收到处理结果后,应用软件客户端再根据自身流程对接收到的处理结果进一步处理,计算资源执行请求结束。
7.如权利要求6所述的基于远程服务的软件保护系统的软件保护方法,其特征在于,所述步骤405中计算中心根据计算节点配置信息选择计算节点过程中,当有多个计算节点时,计算中心根据配置随机选取或根据优先级选取某一个计算节点。
8.如权利要求4所述的基于远程服务的软件保护系统的软件保护方法,其特征在于,所述步骤3释放计算资源的具体步骤如下:
步骤501:应用软件客户端发起计算资源释放请求;
步骤502:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源释放请求,然后等待结果返回;
步骤503:客户端大厅收到计算资源释放请求后,通过通信代理模块将请求发送给服务端的客户端代理,然后等待结果返回;
步骤504:客户端代理收到计算资源释放请求后,根据缓存的使用权限信息判断,如果该用户拥有调用该应用软件服务端的权限,则将计算资源释放请求发至计算中心,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;
步骤505:计算中心收到计算资源释放请求后,对应用软件服务端的标记取消,返回计算资源释放请求成功;计算中心将该结果返回给客户端代理,客户端代理再返回给客户端大厅,最后返回给应用软件客户端;
步骤506:应用软件客户端接收到返回结果,计算资源释放请求结束。
9.如权利要求4所述的基于远程服务的软件保护系统的软件保护方法,其特征在于,所述应用软件通信模块有4个供调用的接口,分别是计算资源申请请求接口、计算资源执行请求接口、计算资源释放请求接口、直接计算接口;
(1)计算资源申请请求接口
用于应用软件客户端发起远程调用前进行计算资源申请请求,格式如下:
601:计算资源ID,标志将要申请的计算资源,计算资源ID是应用软件服务端的唯一标识ID,应用软件客户端的每次计算资源申请请求都必须携带对应的计算资源ID,占用4个字节;
602:线程数,标识将要申请的计算资源线程数,每一个计算资源都配置有供申请调用的线程资源数,只有当计算资源可供申请的线程数大于本次 申请的线程数,计算资源申请请求才可成功,线程数占用4个字节;
603:错误代码,用来存储调用时发生的错误代码,占用4个字节;
604:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(2)计算资源执行请求接口
用于应用软件客户端向应用软件服务端发起计算资源执行请求,接口格式如下:
701:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用必须携带需要请求调用的计算资源ID,占用4个字节;
702:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节;
703:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
704:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
705:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
706:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
707:错误代码,用来存储调用时发生的错误代码,占用4个字节;
708:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(3)计算资源释放请求接口
用于应用软件客户端释放已经申请的计算资源,接口格式如下:
801:计算资源ID,标志将要释放的计算资源ID,应用软件客户端的每 一次调用都必须携带需要请求调用的计算资源ID,占用4个字节;
802:错误代码,用来存储调用时发生的错误代码,占用4个字节;
803:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
(4)直接计算接口
用于应用软件客户端直接向应用软件服务端的发起远程计算调用,而无需经过计算资源申请请求、计算资源执行请求、计算资源释放请求三个步骤,接口格式如下:
901:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节;
902:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节;
903:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
904:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
905:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
906:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
907:错误代码,用来存储调用时发生的错误代码,占用4个字节;
908:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节。
10.如权利要求4所述的基于远程服务的软件保护系统的软件保护方法,其特征在于,所述应用软件服务端包含一个或多个功能函数,并提供一 个接口,接口参数如下:
1001:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
1002:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字节;
1003:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
1004:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字节;
1005:函数ID,用于标示此次调用是针对该应用软件服务端所包含的哪个具体功能函数。
CN201410804786.2A 2014-12-19 2014-12-19 一种基于远程服务的软件保护系统和方法 Active CN104537284B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410804786.2A CN104537284B (zh) 2014-12-19 2014-12-19 一种基于远程服务的软件保护系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410804786.2A CN104537284B (zh) 2014-12-19 2014-12-19 一种基于远程服务的软件保护系统和方法

Publications (2)

Publication Number Publication Date
CN104537284A CN104537284A (zh) 2015-04-22
CN104537284B true CN104537284B (zh) 2017-05-03

Family

ID=52852808

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410804786.2A Active CN104537284B (zh) 2014-12-19 2014-12-19 一种基于远程服务的软件保护系统和方法

Country Status (1)

Country Link
CN (1) CN104537284B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105993156B (zh) * 2015-10-23 2020-01-14 深圳市元征科技股份有限公司 服务器访问验证方法以及装置
CN107172113B (zh) * 2016-03-08 2020-06-12 阿里巴巴集团控股有限公司 服务调用异常时的处理方法和装置
CN109684791B (zh) * 2018-12-26 2020-09-15 飞天诚信科技股份有限公司 一种软件保护方法及装置
CN110781135B (zh) * 2019-09-20 2023-05-30 北京三快在线科技有限公司 分布式搜索系统、索引分发方法及存储介质
CN113656764B (zh) * 2021-08-18 2024-05-14 天津津航计算技术研究所 一种集成优化系统下的软件加密方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102497453A (zh) * 2011-12-28 2012-06-13 用友软件股份有限公司 远端程序的调用装置和调用方法
CN102750479A (zh) * 2012-06-12 2012-10-24 北京英华高科科技有限公司 一种分层软件版权保护方法和系统
CN102857537A (zh) * 2011-07-01 2013-01-02 中国移动通信集团辽宁有限公司 一种远程调用方法、装置和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1875653B1 (en) * 2005-04-29 2018-12-12 Oracle International Corporation System and method for fraud monitoring, detection, and tiered user authentication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857537A (zh) * 2011-07-01 2013-01-02 中国移动通信集团辽宁有限公司 一种远程调用方法、装置和系统
CN102497453A (zh) * 2011-12-28 2012-06-13 用友软件股份有限公司 远端程序的调用装置和调用方法
CN102750479A (zh) * 2012-06-12 2012-10-24 北京英华高科科技有限公司 一种分层软件版权保护方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"远程设计技术在工程勘察设计中的应用研究";葛胜锦,等;《公路》;20120331(第3期);第162-165页 *

Also Published As

Publication number Publication date
CN104537284A (zh) 2015-04-22

Similar Documents

Publication Publication Date Title
CN104537284B (zh) 一种基于远程服务的软件保护系统和方法
US10965772B2 (en) Interface invocation method and apparatus for hybrid cloud
CN106101258B (zh) 一种混合云的接口调用方法、装置及系统
KR101821511B1 (ko) 인스턴트 메시징 또는 소셜 애플리케이션들에 기반하는 데이터 프로세싱 방법 및 그의 디바이스
US9641535B2 (en) Apparatus and data processing systems for accessing an object
CN109076024A (zh) 数据控制方法及终端设备
CN106357609B (zh) 一种创建用户的方法和系统、公网服务器及私有云设备
US9946984B2 (en) System and method for transporting a document between a first service provider and a second service provider
US11017387B2 (en) Cryptographically assured zero-knowledge cloud services for elemental transactions
CN110601896B (zh) 一种基于区块链节点的数据处理方法以及设备
CN110049048B (zh) 一种政务公共服务的数据访问方法、设备及可读介质
CN104636678B (zh) 一种云计算环境下对终端设备进行管控的方法和系统
CN107770269A (zh) 一种服务响应方法及其终端
CN106445509A (zh) 一种sdk批量快速接入工具
CN110555079A (zh) 数据处理方法、装置、设备以及存储介质
CN111651121A (zh) 数据逻辑计算方法、装置、电子设备及存储介质
CN112799970B (zh) 测试数据处理方法、装置、电子设备及介质
CN104967515B (zh) 一种身份认证方法及服务器
CN110517061A (zh) 一种优惠券的生成方法、装置及服务器
CN113129002A (zh) 一种数据处理方法以及设备
CN109286688A (zh) 一种数据下载方法及装置
CN105847284B (zh) 一种通信服务处理方法、装置及以及服务器
CN114338051B (zh) 区块链获取随机数的方法、装置、设备和介质
CN114785526A (zh) 基于区块链的多用户多批次权重分配计算及存储处理系统
CN115118471B (zh) 远程连接方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20171211

Address after: 710077 Shaanxi Xi'an hi tech Zone unity South Road No. 32, space science and technology, military and civilian integration innovation center 6 Building

Patentee after: Betiger traffic science and Technology Group Co Ltd

Address before: Room 11511, blue sea building, central square of green space in Xi'an high tech Zone, Shaanxi, Shaanxi

Patentee before: Ge Shengjin

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181016

Address after: 710065 the 6 floor of Aerospace Science and technology, civil and military integration innovation center, 32 Tuen Nan Road, Xi'an, Shaanxi.

Patentee after: In the Parker Engineering Technology Institute Co Ltd

Address before: 710077 the 6 floor of Aerospace Science and technology, civil and military integration innovation center, 32 Tuen Nan Road, Xi'an, Shaanxi.

Patentee before: Betiger traffic science and Technology Group Co Ltd

TR01 Transfer of patent right