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

文档序号:8223804阅读:415来源:国知局
一种基于远程服务的软件保护系统和方法
【技术领域】
[0001]本发明属于信息安全领域,具体涉及一种基于远程服务调用的软件保护系统及方法。
【背景技术】
[0002]近年来,随着计算机软件技术的广泛使用和计算机网络技术的迅猛发展,各大企业如勘察设计公司都相继研发了一系列优秀的绘图CAD软件和计算CAE软件,但都基于单机版或局域网版,并且这些软件一旦投放市场就会出现大量盗版,严重损害了知识产权拥有者的利益,也进一步制约了新技术的推广应用,阻碍了行业科技进步。因此,人们正在寻求将计算机辅助设计技术与网络技术结合起来,以实现异地、远程和协同地使用软件,同时又可保护企业知识产权的解决方案。
[0003]目前,市场上已经有部分软件产品尝试加入远程、协同等理念和技术,但存在着各种各样的不足和缺陷:
[0004]1、单机版软件保护方式主要集中在注册码加密、加密锁加密等方式,被破解和复制的可能性大,并且限制了软件的异地、共享使用。
[0005]2、网络版软件保护方式在功能设计和模式针对性单一,局限在某单一软件产品内部,不能达到信息与资源共享,适用面窄。
[0006]3、虚拟化软件保护方式在功能上由服务器完成,客户端只做终端显示和用户交互。这种方式通过将客户端与服务端隔离,安全性较高,但对服务器负荷大,资源占用率高,可在线使用的客户端数量受限,操作体验受实际网络状况影响较大,可实现的功能受到较大限制。
[0007]因此,鉴于上述这些情况,迫切需要一种能够解决上述问题的软件保护系统及方法。

【发明内容】

[0008]为了克服上述现有技术的不足和缺陷,本发明的一个目的在于,提供一种基于远程服务的软件保护系统。
[0009]为了实现上述任务,本发明采用的技术方案如下:
[0010]一种基于远程服务的软件保护系统,包括客户端和服务端两大部分:
[0011]所述客户端包括以下各单元:
[0012]应用软件客户端,用于实现用户在本机上对软件进行使用操作,并根据用户在使用操作过程中的软件使用需求,通过应用软件通信模块向客户端大厅发送请求;
[0013]应用软件通信模块,加载在应用软件客户端以及客户端大厅上,实现应用软件客户端与客户端大厅之间的通信连接;用于将应用软件客户端的远程调用请求发送到客户端大厅;
[0014]通信代理模块,加载在客户端大厅上,用于客户端大厅与客户端代理之间的通信连接,即客户端与服务端之间的通信连接;用于将应用软件通信模块发送的请求发送到服务端的客户端代理,并接收客户端代理发出的请求返回信息,传递客户端与服务端所需数据,屏蔽服务器的异构;
[0015]客户端大厅,与应用软件客户端通过应用软件通信模块进行交互,与服务端的客户端代理通过通信代理模块进行交互;用于用户输入或者客户端大厅自动获取用户身份信息以及使用权限信息;用于根据需要下载、安装、启动使用应用软件;用于监听并接收应用软件客户端的请求,并将该请求通过通信代理模块发送至服务端的客户端代理;
[0016]所述服务端包括以下各单元:
[0017]客户端代理,与计算中心和身份与权限认证模块交互;用于接收客户端大厅发出的请求,并根据接收到的请求类型进行处理操作,并将处理结果通过通信代理模块返回给客户端大厅;所述处理操作包括:将用户身份验证信息和应用软件使用权限信息发送到身份与权限认证模块,并接收身份与权限认证模块返回的验证结果;将计算资源执行请求发送给计算中心,并将计算中心返回的结果发送给客户端;
[0018]数据库,用以存储用户的身份信息、使用权限信息、计算节点配置信息、计算资源信息、用户操作日志;其中,计算节点配置信息包括计算节点IP、端口、调用地址;计算资源信息包括计算资源ID、资源名称、最大资源请求数、资源权重;
[0019]计算中心,与客户端代理以及计算节点交互,用于接收客户端代理发送的请求,然后根据请求类型进行操作处理:对计算资源进行标记;将计算资源执行请求以及从数据库中提取的计算节点配置信息发送给计算节点,并将计算节点返回的结果返回给客户端代理;
[0020]计算节点,与计算中心交互,加载有应用软件服务端;用于接收计算中心发出的计算资源执行请求和计算节点配置信息,并根据计算节点配置信息自动获取应用软件服务端的路径,根据该路径调用应用软件服务端并将其返回给计算中心;
[0021]应用软件服务端,是应用软件中的核心功能模块,其加载在计算节点上;其用于实现应用软件的核心分析与计算功能;
[0022]身份与权限认证模块,与客户端代理交互,用于接收客户端代理发送的用户身份和软件使用权限信息,并根据数据库中存储的相应信息,对用户身份和软件使用权限进行验证,并将验证结果发送给客户端代理;
[0023]用户与服务管理模块,为用户提供用户注册、用户信息维护、应用软件服务购买的功能与界面;为系统管理员提供对用户和软件服务统一管理和配置的功能与界面,包括用户注册、用户信息维护、应用软件服务购买、用户管理、订单管理、支付管理、应用软件服务管理;
[0024]服务端的计算中心、身份与权限认证模块、用户与服务管理模块分别与数据库连接,服务端和客户端通过通信代理模块进行连接。
[0025]进一步的,所述应用软件通信模块有4个供调用的接口,分别是计算资源申请请求接口、计算资源执行请求接口、计算资源释放请求接口、直接计算接口 ;
[0026](I)计算资源申请请求接口
[0027]用于应用软件客户端发起远程调用前进行计算资源申请请求,格式如下:
[0028]601:计算资源ID,标志将要申请的计算资源,计算资源ID是应用软件服务端的唯一标识ID,应用软件客户端的每次计算资源申请请求都必须携带对应的计算资源ID,占用4个字节;
[0029]602:线程数,标识将要申请的计算资源线程数,每一个计算资源都配置有供申请调用的线程资源数,只有当计算资源可供申请的线程数大于本次申请的线程数,计算资源申请请求才可成功,线程数占用4个字节;
[0030]603:错误代码,用来存储调用时发生的错误代码,占用4个字节;
[0031]604:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
[0032](2)计算资源执行请求接口
[0033]用于应用软件客户端向应用软件服务端发起计算资源执行请求(即远程计算调用),接口格式如下:
[0034]701:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用必须携带需要请求调用的计算资源ID,占用4个字节;
[0035]702:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节;
[0036]703:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
[0037]704:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字
-K-
T ;
[0038]705:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
[0039]706:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字
-K-
T ;
[0040]707:错误代码,用来存储调用时发生的错误代码,占用4个字节;
[0041]708:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
[0042](3)计算资源释放请求接口
[0043]用于应用软件客户端释放已经申请的计算资源,接口格式如下:
[0044]801:计算资源ID,标志将要释放的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节;
[0045]802:错误代码,用来存储调用时发生的错误代码,占用4个字节;
[0046]803:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节;
[0047](4)直接计算接口
[0048]用于应用软件客户端直接向应用软件服务端的发起远程计算调用,而无需经过计算资源申请请求、计算资源计算请求、计算资源释放请求三个步骤,接口格式如下:
[0049]901:计算资源ID,标志计算调用的计算资源ID,应用软件客户端的每一次调用都必须携带需要请求调用的计算资源ID,占用4个字节;
[0050]902:函数ID,标识将要调用的计算资源中的函数ID,每一个计算资源中可包括多个函数ID,函数ID占用4个字节;
[0051]903:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
[0052]904:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字
-K-
T ;
[0053]905:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
[0054]906:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字
-K-
T ;
[0055]907:错误代码,用来存储调用时发生的错误代码,占用4个字节;
[0056]908:错误信息,用来存储调用时发生错误时,返回的错误信息,占用256个字节。
[0057]进一步的,所述应用软件服务端包含一个或多个功能函数,并提供一个接口,接口参数如下:
[0058]1001:输入缓冲区,用于存储调用时需要的传入的输入数据,输入缓冲区最大为64*1024个字节;
[0059]1002:输入缓冲区长度,标识输入缓冲区实际的长度,输入缓冲区长度占用4个字
-K-
T ;
[0060]1003:输出缓冲区,用于存储调用返回时传出的输出数据,输出缓冲区最大为64*1024个字节;
[0061]1004:输出缓冲区长度,标识输出缓冲区实际的长度,输出缓冲区长度占用4个字
-K-
T ;
[0062]1005:函数ID,用于标示此次调用是针对该应用软件服务端所包含的哪个具体功能函数。
[0063]本发明的另一个目的在于,提供一种基于远程服务的软件保护方法,该方法包括步骤1:申请计算资源;步骤2:执行计算资源;步骤3:释放计算资源。
[0064]进一步的,所述步骤I申请计算资源的具体步骤如下:
[0065]步骤301:在用户操作应用软件时,触发应用软件客户端发起计算资源申请请求;
[0066]步骤302:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源申请请求,然后等待结果返回;
[0067]步骤303:客户端大厅收到计算资源申请请求后,通过通信代理模块将请求转发给服务端的客户端代理,然后等待结果返回;
[0068]步骤304:客户端代理收到计算资源申请请求后,向身份与权限认证模块请求验证该用户的身份与使用权限,如果客户端代理随后接收到该用户
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1