[发明专利]一种用于分布式处理的高性能通用网络框架的设计方法有效

专利信息
申请号: 201310474365.3 申请日: 2013-10-11
公开(公告)号: CN103513990B 公开(公告)日: 2017-01-25
发明(设计)人: 杨溥;吴维昊;史峰 申请(专利权)人: 科大讯飞股份有限公司
主分类号: G06F9/44 分类号: G06F9/44
代理公司: 北京科迪生专利代理有限责任公司11251 代理人: 杨学明,李新华
地址: 230088 安徽省*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种用于分布式处理的高性能通用网络框架的设计方法,主要实现了以下功能A、采用“多Reactor+线程池”机制有效的解决了密集型IO和计算的问题;B、良好的接口设计简化了TCP网络编程开发;C、采用智能指针以及其它多线程安全措施,对系统资源进行合理有效的管理,增加了程序的鲁棒性;D、采用第三方中间语言来描述消息格式,解决了升级与跨语言的问题。本发明利用C++语言的高效、稳定和灵活性,创建了一个通用的网络框架,极大的减少了网络应用开发,让企业可以更专注于业务的开发而不必考虑数据传输、通讯和管理等方面的技术细节。
搜索关键词: 一种 用于 分布式 处理 性能 通用 网络 框架 设计 方法
【主权项】:
一种用于分布式处理的高性能通用网络框架的设计方法,其特征在于,该方法包括如下步骤:1、网络服务设计:网络设计方案采用了“多Reactor+线程池”的策略,主Reactor负责accept客户端的连接,收到连接请求后,将连接分配给某个子Reactor,这样该连接的收发操作都在这个子Reactor中完成,多个连接就被分发至多个子线程中,同时,具体的运算任务也分配给了运算线程池来处理,从而充分的利用了CPU;2、接口设计:事件回调采用了boost::function+boost::bind的做法,这种做法不必担心对象的生命周期,对用户代码的class类型、成员函数名没有限制,只对函数的参数和返回值类型有部分限制,传给网络库的都是值语义的boost::function对象,没有指针和引用的概念,从而解决了对象生命周期和空悬指针的问题;3、资源管理:采用了智能指针来管理资源,智能指针使用RAII的方法来对资源进行管理,RAII的基本原理是利用对象封装资源,采用对象引用计数记录对象的引用次数:对象初始创建的时候引用次数为1,在对象被使用时引用计数加1,对象释放时引用计数减1,直至引用次数为0时对资源进行释放,故而能够自动管理内存的释放,避免了空悬指针bug的产生,同时降低了资源的维护成本,缩短了程序的开发周期;4、消息格式设计:采用Google Protobuf(即第三方中间语言)来描述消息格式,Protobuf是用于结构化数据串行化的方法,能够定义自己的数据结构,然后使用代码生成器生成代码来读写这个数据结构,每个Protobuf信息是一小段逻辑记录,包含一系列的键值对,每个消息类型拥有一个或多个特定的数字字段,每个字段拥有一个名字和一个值类型,值类型可以是数字、布尔型、字符串、原始字节或者其他Protobuf类型,还允许数据结构的分级;可以运行Protobuf编译器,将定义的.proto文件编译成特定语言的类;可以在不影响向后兼容的情况下随意给数据结构增加字段,旧有的数据会忽略新的字段,所以使用Protobuf作为通信协议,可以无需担心破坏现有代码的情况下扩展协议,至此完成用于分布式处理的高性能通用网络框架的设计。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于科大讯飞股份有限公司,未经科大讯飞股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310474365.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top