[发明专利]一种声明式远程服务调用系统及其执行方法有效
| 申请号: | 201811385156.0 | 申请日: | 2018-11-20 |
| 公开(公告)号: | CN109614247B | 公开(公告)日: | 2023-08-18 |
| 发明(设计)人: | 王杨帅;王美林;周毅;王娇;张弩;陈任远 | 申请(专利权)人: | 广东工业大学;广州马努信息技术有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 林丽明 |
| 地址: | 510006 广东省*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 声明 远程 服务 调用 系统 及其 执行 方法 | ||
1.一种声明式远程服务调用系统,其特征在于,包括注解声明模块、扫描信息模块、代理工具类生成模块、代理工具注册模块;
所述注解声明模块用于为创建声明式接口时,提供所需的接口注解和方法注解声明远程服务调用接口;
所述扫描信息模块用于获取并整合每个远程服务请求的所有请求信息,得到远程调用服务的信息列表,请求信息为远程服务的地址信息;
所述代理工具类生成模块用于对所有请求信息进行整合,并动态生成进行远程服务资源调用的工具类;
代理工具注册模块用于将远程服务资源调用的工具类注册到服务程序,供微服务架构模式应用系统使用;
所述的远程服务资源调用的工具类是代理制造工厂根据远程服务资源信息动态生成的;远程服务资源信息是通过扫描标注了标识符I和标识符M的接口获取的;
用于生成进行远程服务资源调用的工具类的代理制造工厂是一个代理工厂接口,具体的实现方式有JDK动态代理和CGLIB动态代理两种方式;服务调用方通过一个配置类实现代理工厂接口,并在实现类中重写JDK动态代理或CGLIB代理方法后,将这个配置类注入到应用程序后,整个代理工厂创建完成;开发者没有实现这个代理工厂接口,将会采用默认的代理工程实现类作为创建远程服务资源调用的工具类的代理制造工厂;
在声明式远程服务调用系统执行时,采用以下步骤:
S1:引入声明式远程服务调用系统;
S2:在微服务架构模式应用系统中的服务消费方,定义由标识符I和标识符M标注的Restful接口,由标识符I和标识符M标注的Restful接口作为声明式远程服务调用系统所需的远程服务信息;
S3:扫描由标识符I和标识符M标注标识的声明式接口,获取具体的远程服务资源信息,并对获取到的信息封装成两个实体对象;其中,将标识符I获取的信息封装成ServerInfo实体,将标识符M获取到的信息封装成MethodInfo实体;
S4:声明式服务框架的代理工具生成模块根据ServerInfo实体和MethodInfo实体动态生成一个代理工具类,如果标识符I和标识符M没有指定具体的远程服务信息,默认将标识符I和标识符M默认的属性值封装成ServerInfo实体和MethodInfo实体,供工具生成模块使用;
动态生成的一个代理工具类具体指:服务消费者提供的代理制造工厂或声明式服务调用框架提供的代理制造工厂实现类,利用ServerInfo实体和MethodInfo实体动态生成进行远程服务资源调用的工具类;
S5:声明式服务框架的代理工具类注册模块将用于远程服务资源调用的工具类注册到服务调用者所在的服务程序中,远程服务资源调用的工具类是由代理制造工厂实现类创建的;注册到服务调用者所在服务程序中的工具类供整个服务程序进行远程服务资源调用;
S6:微服务架构模式应用系统中的服务消费者根据需要,从服务程序中获取用于远程服务资源调用的工具类实例,通过该工具类实例的实例方法进行远程服务资源调用。
2.根据权利要求1所述的一种声明式远程服务调用系统,其特征在于,所述的标识符I仅有@RestApi一种形式,@RestApi的Value属性表示远程服务资源的IP信息的应用上下文根路径;所述的标识符M有4种形式,分别是:@RestMethodGet、@RestMethodPost、@RestMethodDelete、@RestMethodPut,每种形式的标识符M对应不同的请求类型,每种形式的标识符M的Value属性表示远程服务资源的路径信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东工业大学;广州马努信息技术有限公司,未经广东工业大学;广州马努信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811385156.0/1.html,转载请声明来源钻瓜专利网。





