1 定位
Xebo是一个C++开发的通信服务器框架,用于开发应用插件实现网络业务。
它由多个模块化的组件构成,以扩展接口的方式,提供应用逻辑的嵌入以适配具体应用。
利用框架提供的基础能力,可简化应用的开发,包括:
l 通信:主动/被动连接器,是构建分布式系统的通信基础;协议支持(TCP/UDP,UMX/UMXT);异步通信上的同步调用
l 数据库访问:通过数据库扩展支持跨数据库应用
l 消息调度:请求消息被分派到响应的协议处理函数
l 事件机制:同步/异步事件提供插件之间松耦合的协同能力
l 后台任务调度:内置任务调度策略,统一管理运行后台任务.应用可扩展调度策略
l 消息缓存:可配置服务端缓存消息
l 通道认证接口:由应用决定需限制访问的协议,在验证客户端后置信通道
l 调试日志:可配置的全局/插件私有/SQL日志为调试提供便利
2 特点
Xebo特性如下:
l 跨操作系统平台
l 支持多种数据库
l 插件化开发
l 主动/被动连接器,支持UDP,TCP协议,支持SOCK5,HTTP/1.1代理,异步通信上的同步调用
l 支持UMX/UMXT,JSON,RESTful调用接口
l 支持消息分级
l 支持控制台,服务启动方式
l 具有服务揭示能力
l 提供路由扩展接口
l 可管理:通过管理接口控制,查看运行状态
l 可配置:框架配置和插件私有配置
3 体系结构
Xebo体系结构如下图所示:
Xebo运行在操作系统之上。
支持多种主流关系数据库。
ACE作为通信框架,Windows采用IOCP,Linux采用epoll模式。
OpenSSL作为通信安全库,用于敏感信息加密,通信端点身份验证。
Hoard作为内存优化器使用。
Xerces用于XML格式配置文件的解析。
CppCMS作为Web框架,为Xebo的管理,配置,监控提供服务。
Xebo的服务有2种:请求-响应式的交互式服务,后台计划任务。服务由插件实现。
通信模块提供客户连接接入,主动连接器构建,数据接收/发送处理。接收的消息进入内存消息队列,由消息调度线程调用插件的协议处理函数进行处理。
事件Reactor用于框架,插件之间的事件方式的通信。
日志模块负责记录Xebo服务运行日志,用于问题诊断,可选择异步或同步方式,同步仅用于调试问题使用。
框架管理为管理客户端提供访问接口,用于对服务的配置,运行监控。
资源容器提供框架,插件之间共享对象的机制。
UMX/UMXT是二进制通信协议。
l UMX是通信应用层协议,规定了消息的格式.
l 支持分布式通信环境
l 每种消息用域,消息类型,消息编号来区分
l 单个消息可以用命令字标记
l 消息在端到端之间传输,消息头中包含了版本,源端地址,目标段地址,字符集,优先级,扩展属性等信息
l UMXT是指定消息传输属性的协议
传输属性指定存储转发属性,是否送达确认,时序控制键,加密属性等信息。
跨数据库支持采用数据库扩展技术实现,定义非标准的SQL接口,每种支持的数据各自实现一个动态库。