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

文档序号:8223804阅读:来源:国知局
13,中望CAD、浩辰CAD等)以及其他类别应用软件(如财务软件、办公软件等)。适用的开发语言:C、C++、C#、Java、PHP, Python等。
[0138]参见图1,本发明给出了一种基于远程服务的软件保护系统,包括客户端和服务端两大部分,其中:
[0139]客户端包括以下各单元:
[0140]应用软件客户端,用于实现用户在本机上对软件进行使用操作,并根据用户在使用操作过程中的软件使用需求,通过应用软件通信模块向客户端大厅发送请求;
[0141]本发明中,应用软件被拆分为应用软件客户端和应用软件服务端。应用软件客户端仅包含应用软件中非核心功能模块,而应用软件服务端为应用软件中的核心功能模块。当应用软件客户端使用应用软件中的核心功能模块时,应用软件客户端会向客户端大厅发出请求。
[0142]应用软件通信模块,加载在应用软件客户端以及客户端大厅上,实现应用软件客户端与客户端大厅之间的通信连接;用于将应用软件客户端的远程调用请求发送到客户端大厅。
[0143]通信代理模块,加载在客户端大厅上,用于客户端大厅与客户端代理之间的通信连接,即客户端与服务端之间的通信连接;用于将应用软件通信模块发送的请求(计算资源申请请求、计算资源执行请求或计算资源释放请求)发送到服务端的客户端代理,并接收客户端代理发出的请求返回信息,传递客户端与服务端所需数据,屏蔽服务器的异构。
[0144]客户端大厅,与应用软件客户端通过应用软件通信模块进行交互,与服务端的客户端代理通过通信代理模块进行交互;用于用户输入或者客户端大厅自动获取用户身份信息以及使用权限信息;用于根据需要下载、安装、启动使用应用软件;用于监听并接收应用软件客户端的请求(计算资源申请请求、计算资源执行请求或计算资源释放请求),并将该请求通过通信代理模块发送至服务端的客户端代理。
[0145]服务端包括以下各单元:
[0146]客户端代理(Client Proxy),与计算中心和身份与权限认证模块交互;用于接收客户端大厅发出的请求(计算资源申请请求(ApplyResource)、计算资源执行请求(Compute)或计算资源释放请求(ReleaseResource),并根据接收到的请求类型进行处理操作,并将处理结果通过通信代理模块返回给客户端大厅;所述处理操作包括:将用户身份验证信息和应用软件使用权限信息发送到身份与权限认证模块,并接收身份与权限认证模块返回的验证结果;将计算资源执行请求发送给计算中心,并将计算中心返回的结果发送给客户端;
[0147]数据库,用以存储用户的身份信息、使用权限信息、计算节点配置信息、计算资源信息、用户操作日志。其中,计算节点配置信息包括计算节点IP、端口、调用地址;计算资源信息包括计算资源ID、资源名称、最大资源请求数、资源权重;
[0148]计算中心(Compute Center),与客户端代理以及计算节点交互,用于接收客户端代理发送的请求(计算资源申请请求、计算资源执行请求或计算资源释放请求),然后根据请求类型进行操作处理:对计算资源进行标记;将计算资源执行请求以及从数据库中提取的计算节点配置信息发送给计算节点,并将计算节点返回的结果返回给客户端代理。
[0149]计算中心提供计算资源申请(ApplyResource)接口、计算资源执行(Compute)接口和计算资源释放(ReleaseResource)接口共三种调用接口。
[0150]计算节点(Compute Node),与计算中心交互,加载有应用软件服务端;用于接收计算中心发出的计算资源执行请求和计算节点配置信息,并根据计算节点配置信息自动获取应用软件服务端的路径,根据该路径调用应用软件服务端并将其返回给计算中心。
[0151]应用软件服务端,是应用软件中的核心功能模块,其加载在计算节点上;其用于实现应用软件的核心分析与计算功能;应用软件服务端包含一个或多个功能函数,并提供一个固定名称和参数的函数调用接口,用于计算节点在将应用软件服务端加载后,通过该接口发起对应用软件服务端的调用。本发明中,一个可被远程调用的应用软件服务端被称为一个计算资源。
[0152]身份与权限认证模块,与客户端代理交互,用于接收客户端代理发送的用户身份和软件使用权限信息,并根据数据库中存储的相应信息,对用户身份和软件使用权限进行验证,并将验证结果发送给客户端代理;
[0153]用户与服务管理模块,为用户提供用户注册、用户信息维护、应用软件服务购买的功能与界面;为系统管理员提供对用户和软件服务统一管理和配置的功能与界面,包括用户注册、用户信息维护、应用软件服务购买、用户管理、订单管理、支付管理、应用软件服务管理。
[0154]服务端的计算中心、身份与权限认证模块、用户与服务管理模块分别与数据库连接,服务端和客户端通过通信代理模块进行连接。
[0155]以上各模块之间的主要接口如下:
[0156]应用软件客户端-应用软件通信模块-客户端大厅接口:用于应用软件客户端与向客户端大厅进行通信,实现请求和请求返回结果在应用软件客户端和客户端大厅中的传递。通过命名管道实现。
[0157]客户端大厅-通信代理模块-客户端代理:用于客户端大厅向服务器端的客户端代理发起请求并获取服务器端的请求返回结果。通过远程服务接口调用实现。
[0158]客户端代理-计算中心:用于客户端代理向计算中心发送应用软件调用信息。通过远程服务接口调用实现。
[0159]计算中心-计算节点:用于计算中心向计算节点发送请求和传入数据,并获取计算节点对应用软件服务端处理后的传出数据。通过远程服务接口调用实现。
[0160]客户端代理-身份与权限认证模块:用于客户端代理获得用户身份认证信息和应用软件使用权限信息。通过远程服务接口调用实现。
[0161]在本发明的基于远程服务的软件保护系统中,通信代理模块与服务端的客户端代理、客户端代理与计算中心、计算中心与计算节点、客户端代理与身份与权限认证模块之间的采用面向服务的体系结构(Service-Oriented Architecture, SOA)架构设计,支持环境异构。
[0162]参见图2,本发明给出了一种基于远程服务的软件保护方法,包括以下三个步骤:
[0163]步骤1:申请计算资源。具体步骤如下:
[0164]步骤301:在用户操作应用软件时,触发应用软件客户端发起计算资源申请请求;
[0165]步骤302:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源申请请求,然后等待结果返回;
[0166]步骤303:客户端大厅收到计算资源申请请求后,通过通信代理模块将请求转发给服务端的客户端代理,然后等待结果返回;
[0167]步骤304:客户端代理收到计算资源申请请求后,向身份与权限认证模块请求验证该用户的身份与使用权限,如果客户端代理随后接收到该用户拥有使用软件服务端的权限,则执行步骤305,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;在该过程中,身份与权限认证模块将客户端代理提供的用户信息及使用权限信息与数据库中相应信息进行比对判断,并将判断结果返回给客户端代理;
[0168]步骤305:客户端代理将计算资源申请请求发至计算中心,然后等待结果返回;
[0169]步骤306:计算中心收到客户端代理发来的计算资源申请请求后,如果应用软件客户端发来的线程数未超出最大可用资源数则有足够计算资源可用,返回计算资源申请成功信息,并根据应用软件客户端发来的计算资源ID对相应的计算资源进行标记;否则,向客户端代理返回计算资源申请失败的错误信息,该错误信息被一路返回到应用软件客户端;
[0170]步骤307:应用软件客户端接收客户端大厅返回的结果,此时应用软件客户端进行判断,计算资源申请成功继续执行步骤2,否则,提示资源申请失败,计算资源申请调用过程结束;
[0171]步骤2:执行计算资源。具体步骤如下:
[0172]步骤401:应用软件客户端发起计算资源执行请求;
[0173]步骤402:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源执行请求,然后等待结果返回;
[0174]步骤403:客户端大厅收到计算资源执行请求后,通过通信代理模块将请求发送给服务端的客户端代理,然后等待结果返回;
[0175]步骤404:客户端代理收到计算资源执行请求后,根据缓存的使用权限信息判断,如果该用户有调用该应用软件服务端的权限,则将计算资源执行请求发至计算中心,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;
[0176]步骤405:计算中心收到计算资源执行请求后,根据缓存的计算节点配置信息选择计算节点,并将计算节点配置信息发送至计算节点;
[0177]步骤406:计算节点接收到计算节点配置信息后,根据计算节点配置信息自动获取应用软件服务端(即计算资源)的路径,并将应用软件客户端发来的输入数据利用被标记的应用软件服务端进行处理,并将处理结果作为输出数据返回给计算中心,计算中心将该处理结果返回给客户端代理,客户端代理再将结果返回给客户端大厅,客户端大厅最后将结果返回给应用软件客户端;
[0178]步骤407:应用软件客户端接收到处理结果后,应用软件客户端再根据自身流程对接收到的处理结果进一步处理,计算资源执行请求结束。
[0179]上述计算中心根据计算节点配置信息选择计算节点的方法包括随机选择法和优先级选择法,当有多个计算节点时,计算中心根据配置随机选取或根据优先级选取某一个计算节点。
[0180]步骤3:释放计算资源。具体步骤如下:
[0181]步骤501:应用软件客户端发起计算资源释放请求;
[0182]步骤502:应用软件客户端通过应用软件通信模块向客户端大厅发送计算资源释放请求,然后等待结果返回;
[0183]步骤503:客户端大厅收到计算资源释放请求后,通过通信代理模块将请求发送给服务端的客户端代理,然后等待结果返回;
[0184]步骤504:客户端代理收到计算资源释放请求后,根据缓存的使用权限信息判断,如果该用户拥有调用该应用软件服务端的权限,则将计算资源释放请求发至计算中心,然后等待结果返回;否则,直接向客户端大厅返回该用户无权调用该软件服务端的错误信息;
[0185]步骤505:计算中心收到计算资源释放请求后,对应用软件服务端(即计算资源)的标记取消,返回计算资源释放请求成功;计算中心将该结果返回给客户端代理,客户端代理再返回给客户端大厅,最后返回给应用软件客户端;
[0186]步骤506:应用软件客户端接收到返回结果,计算资源释放请求结束。
[0187]本发明中,应用软件通信模块提供了 4个可供调用的接口,分别是计算资源申请请求(ApplyResource)接口、计算资源执行请求(Compute)接口、计算资源释放请求(ReleaseResource)接口、直接计算(DirectCompute)接口。其中,ApplyResource、Compute>ReleaseResource这三个接口必须按照顺序依次使用。而DirectCompute是其独
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1