摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第12-15页 |
1.1 研究背景 | 第12-13页 |
1.2 国内外研究现状分析 | 第13页 |
1.3 系统主要特点 | 第13-14页 |
1.4 论文组织结构 | 第14-15页 |
第二章 相关理论与技术基础 | 第15-29页 |
2.1 OCF平台 | 第15页 |
2.2 OCF平台下组件编写方法 | 第15-19页 |
2.2.1 OCF代码组织结构 | 第16页 |
2.2.2 编写组件接口 | 第16-17页 |
2.2.3 编写组件策略 | 第17-18页 |
2.2.4 组装接口和策略 | 第18-19页 |
2.2.5 总结 | 第19页 |
2.3 OCF的事件驱动器 | 第19-20页 |
2.3.1 reactor和proactor模型 | 第19-20页 |
2.3.2 OCF中的IoEngine | 第20页 |
2.4 列集(marshaling)技术 | 第20-24页 |
2.4.1 protocol buffer概述 | 第21页 |
2.4.2 protocol buffer进行数据描述 | 第21-23页 |
2.4.3 protobuf插件技术 | 第23-24页 |
2.4.4 总结 | 第24页 |
2.5 中间件技术 | 第24-28页 |
2.5.1 RPC技术概述 | 第24-27页 |
2.5.2 RPC关键技术 | 第27页 |
2.5.3 OCF中的RPC | 第27-28页 |
2.6 本章小结 | 第28-29页 |
第三章 OCF RPC的需求分析与概要设计 | 第29-44页 |
3.1 RPC需求分析 | 第29-31页 |
3.1.1 功能性需求 | 第29-31页 |
3.1.2 非功能性需求 | 第31页 |
3.2 主要功能流程 | 第31-36页 |
3.2.1 开启RPC服务流程 | 第31-32页 |
3.2.2 请求RPC连接流程 | 第32-33页 |
3.2.3 发送数据流程 | 第33-35页 |
3.2.4 接受数据流程 | 第35-36页 |
3.3 通信组件需求分析 | 第36-38页 |
3.3.1 通信组件接口需求分析 | 第36-37页 |
3.3.2 改造reactor模型到proactor模型 | 第37页 |
3.3.3 通信组件设计思路 | 第37-38页 |
3.4 总体设计分析 | 第38-39页 |
3.5 系统架构设计 | 第39-42页 |
3.5.1 Performer | 第40页 |
3.5.2 Protobuf | 第40-41页 |
3.5.3 Tunnel | 第41页 |
3.5.4 Channel | 第41-42页 |
3.5.5 IoEngine | 第42页 |
3.5.6 LibOcf | 第42页 |
3.6 开发者模型 | 第42-43页 |
3.7 本章小结 | 第43-44页 |
第四章 OCF RPC详细设计与实现 | 第44-69页 |
4.1 数据包及其头部设计 | 第44-45页 |
4.2 Tunnel设计与实现 | 第45-52页 |
4.2.1 Tunnel接口设计 | 第45-46页 |
4.2.2 Tunnel的详细设计与实现 | 第46-52页 |
4.2.2.1 Tunnel状态的转变 | 第48-49页 |
4.2.2.2 Tunnel详细设计 | 第49-52页 |
4.3 Channel的设计与实现 | 第52-59页 |
4.3.1 Channel接口设计 | 第52-54页 |
4.3.2 Channel详细设计与实现 | 第54-59页 |
4.4 组装Tunnel和Channel | 第59-60页 |
4.5 Performer设计与实现 | 第60-62页 |
4.5.1 Performer接口设计 | 第60-61页 |
4.5.2 Performer组件详细设计 | 第61-62页 |
4.6 protobuf的IDL编译器插件 | 第62-68页 |
4.6.1 protobuf插件功能 | 第62-63页 |
4.6.2 protobuf插件设计思路 | 第63页 |
4.6.3 定位cpp模块 | 第63-64页 |
4.6.4 修改生成代码的缩进格式 | 第64-65页 |
4.6.5 添加Generate方法 | 第65-66页 |
4.6.6 设计performer组件代码文件内容 | 第66-68页 |
4.6.6.1 基本代码 | 第66-67页 |
4.6.6.2 生成组件CLSID | 第67-68页 |
4.7 本章小结 | 第68-69页 |
第五章 IoEngine详细设计与实现 | 第69-79页 |
5.1 Reactor和Taskqueue设计与实现 | 第70-72页 |
5.2 ThreadPool设计与实现 | 第72-74页 |
5.2.1 Thread设计与实现 | 第73页 |
5.2.2 ThreadPoolNum设计与实现 | 第73-74页 |
5.2.3 ThreadPool组件结构 | 第74页 |
5.3 IoEngine设计与实现 | 第74-75页 |
5.4 异步IO组件设计与实现 | 第75-78页 |
5.5 本章小结 | 第78-79页 |
第六章 单元测试及应用举例 | 第79-95页 |
6.1 心跳系统 | 第79-84页 |
6.1.1 心跳系统设计 | 第79页 |
6.1.2 心跳包设计 | 第79-80页 |
6.1.3 Heartbeat Performer详细设计 | 第80-83页 |
6.1.4 Tunnel对于心跳信息的优化处理 | 第83-84页 |
6.2 RPC单元测试 | 第84-88页 |
6.2.1 测试环境 | 第84页 |
6.2.2 插件测试 | 第84页 |
6.2.3 功能测试 | 第84-88页 |
6.2.3.1 Dispatch测试 | 第85页 |
6.2.3.2 AddRemove测试 | 第85-86页 |
6.2.3.3 RecvMessageSendMessage测试 | 第86-87页 |
6.2.3.4 RPC服务测试 | 第87-88页 |
6.3 IoEngine组件单元测试 | 第88-94页 |
6.3.1 ThreadPool测试 | 第88-90页 |
6.3.1.1 ThreadPool初始化测试 | 第88页 |
6.3.1.2 ThreadPool线程初始化测试 | 第88-89页 |
6.3.1.3 ThreadPool整体测试 | 第89页 |
6.3.1.4 ThreadPool枚举测试 | 第89-90页 |
6.3.2 Taskqueue测试 | 第90-91页 |
6.3.3 Reactor测试 | 第91-92页 |
6.3.3.1 Reactor初始化测试 | 第91页 |
6.3.3.2 Reactor消息触发测试 | 第91-92页 |
6.3.4 IoEngine测试 | 第92-94页 |
6.3.4.1 IoEngine初始化测试 | 第92-93页 |
6.3.4.2 IoEngine运行测试 | 第93-94页 |
6.4 本章小结 | 第94-95页 |
第七章 结论和展望 | 第95-97页 |
致谢 | 第97-98页 |
参考文献 | 第98-100页 |