[发明专利]一种基于C++实现控制反转的方法及服务端在审
| 申请号: | 201910703365.3 | 申请日: | 2019-07-31 |
| 公开(公告)号: | CN110471651A | 公开(公告)日: | 2019-11-19 |
| 发明(设计)人: | 黄凯;张翔;谭梦迪;华龙宇;徐鑫;刘爱娣;张巍 | 申请(专利权)人: | 北京速通科技有限公司 |
| 主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
| 代理公司: | 11572 北京卓特专利代理事务所(普通合伙) | 代理人: | 陈变花<国际申请>=<国际公布>=<进入 |
| 地址: | 100073 北京市丰台区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 服务端 反转 访问请求 动态库 客户端 子模块 计算机技术领域 服务 参数实例化 通讯管理层 工作处理 可扩展性 平台框架 业务逻辑 管理层 实例化 耦合性 加载 可控 主控 封装 申请 编译 发送 返回 灵活 | ||
本申请公开一种基于C++实现控制反转的方法及服务端,涉及计算机技术领域,所述控制反转方法包括通过C++将业务逻辑根据不同功能拆分为不同的子模块;将各个子模块封装为相互独立的动态库;当接收到客户端发送的访问请求时,依靠C++实现的平台框架使用访问请求参数实例化动态库中的服务,将实例化后的服务返回给客户端,实现依赖注入控制反转。所述服务端包括主控管理层、通讯管理层和工作处理层。采用本申请的服务端框架,能够使后期服务变动无需依赖编译平台,使得平台之间互不影响,不仅能够使加载灵活可控,而且极大地降低平台和服务的耦合性,提高平台的可扩展性。
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于C++实现控制反转的方法及服务端。
背景技术
随着网络中各种应用程序服务器的逐渐增多,以及性能的不断提升,服务和系统的设计也越来越庞杂。传统的应用程序服务器在实现服务所需的业务逻辑时,大多都是由两个或更多的类,通过彼此之间的合作来达成。这使得每个对象都需要获取它所依赖的对象的引用,如此势必导致代码的高度耦合,使得服务模块难以独立工作,进而影响后续业务的扩展和维护。
另外,在现有的Java/.Net中可以依靠IoC/DI容器,通过配置文件中的类名实例化进行依赖注入控制反转,但目前基于C++实现的服务器平台框架,还未有用依赖注入来实现控制反转,以达到降低系统模块耦合性的目的。
发明内容
本申请提供了一种基于C++实现控制反转的方法,包括如下步骤:
通过C++将业务逻辑根据不同功能拆分为不同的子模块;
将各个子模块封装为相互独立的动态库;
当接收到客户端发送的访问请求时,依靠C++实现的平台框架使用访问请求参数实例化动态库中的服务,将实例化后的服务返回给客户端,实现依赖注入控制反转。
如上所述的基于C++实现控制反转的方法,其中将各子模块封装为相互独立的动态库具体包括如下子步骤;
对各个子模块的源代码文件进行预编译;
将各个子模块预编译完成的文件进行编译,生成相应的汇编代码文件;
将汇编代码文件链接成一个可执行命令,并在工程目录下生成动态链接库和静态库。
如上所述的基于C++实现控制反转的方法,其中将各个子模块封装成独立的动态库后,还包括为每个动态库分配唯一的索引,预先设定根据接收到的外部设备访问请求参数能够确定唯一的动态库,即能够查找到对应的唯一的业务。
如上所述的基于C++实现控制反转的方法,其中依靠C++实现的平台框架使用访问请求参数实例化动态库中的服务,具体为根据访问请求的参数查找对应的动态库,将动态库中的服务实例化。
本申请还提供一种服务端,包括主控管理层、通讯管理层和工作处理层;
通讯管理层作为服务端与客户端的通信媒介,负责客户端访问请求的接入/接出;
主控管理层用于管理与之连接的通讯管理层和工作处理层,监控通讯进程和工作进程存活状态;
工作处理层执行上述基于C++实现控制反转的方法,将处理结果返回通讯管理层。
如上所述的服务端,其中主控管理层监控通讯进程和工作进程存活状态,当通讯进程或工作进程中存在意外挂掉的进程时,重新启动该进程。
如上所述的服务端,其中主控管理层还用于监控服务的启动,当接收到客户端访问请求时,主控管理层负责监控与该访问请求对应的服务的处理时长,并根据该服务的特定服务类型和预设超时阈值,确定超时后的处理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京速通科技有限公司,未经北京速通科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910703365.3/2.html,转载请声明来源钻瓜专利网。





