协议平台是一个统一服务于通信业务实现的组件框架,包括协议栈所依赖的系统组件和通信业务所需的各种协议栈组件。架构图如下:
ZOS 系统组件
UTAL 通用传输组件
ABNF, ASN.1, XML 等语法组件
SIP 协议组件
HTTP 协议组件
Media Engine 管理组件
采用协议平台方式的产品开发相比一般意义上的产品有如下图的区别:
基于菊风的协议平台可以在不同产品上采用同样的协议组件,具有以下优势和好处:
降低新产品的研发成本
降低新产品的维护开销
缩短新产品的上市周期
降低团队学习新组件的复杂度
提高团队的业务开发效率
ZOS 是 Zero Operating System 的简称,是菊风公司的软件开发基础平台,所有协议栈和业务组件都是基于 ZOS 开发而成。
通过 ZOS 对多种操作系统和处理器的支持,使得基于 ZOS 的软件产品能够独立于操作系统和处理器环境。同时, ZOS 抽象了协议栈和业务组件需要的通用操作能力,通过功能丰富的接口使得上层软件的开发能够提高效率、增强软件设计的一致性和实现代码复用率。
ZOS 不仅仅是提供了操作系统接口适配的功能,还提供了大量了针对通信协议栈和业务组件开发的功能接口。ZOS 的大部分功能(80%以上)都不是简单对操作系统相关的接口封装,很多功能接口在大多数操作系统中都是不存在的,是菊风公司的多年软件设计的经验总结。ZOS 提供了以下功能:
操作系统的兼容接口(包括 Mutex, Semaphore, Task, Time, Socket,File 等)
内存池管理(包括 Bucket Pool、Power Pool 等)
缓冲区管理(包括 Data Buffer, Pipe Buffer, Encode Buffer, Aggregation Buffer 等)
计时器管理(包括 Queue Timer, Ring-Matrix Timer)
任务管理(包括 Task, Module)
消息队列
状态机管理
资源跟踪管理(Memory Dump, Buffer Dump, Fsm Dump等)
其他常用接口(包括List, Hash, String 等)
网络通信协议栈基本上采用以下语法格式描述的协议栈:
TLV (Tag Length Value)
比如 TCP/IP, Q.931 等协议栈,好处是数据紧凑,简洁,坏处就是不够直观易懂。
ABNF / BNF
比如 MGCP, SIP, H.248, HTTP 等协议栈,好处是直观易懂,坏处就是数据体积相比比较大,处理开销相对交大
ASN.1
比如 H225, H245 等协议栈,好处是数据体积很小,紧凑而且有压缩率,坏处就是需要特定工具才能分析数据内容,直观性很差
XML
一般作为某种协议的承载内容或者独立的业务数据,
比如 SOAP, XDMS, TR069 等协议或业务采用大量的 XML 数据。
好处是直观而且有结构层次,同时也是现在很多业务互通的标准,坏处就是处理效率不高,内存开销比较大。
菊风公司提供丰富的协议基础组件,提供广泛用于协议栈的编解码、网络传输、事务处理、安全、资源管理、实时监督等组件和手段。
ABNF / ASN.1 / XML 语法引擎
通用网络传输层 (UTAL)
媒体(语音和视频)引擎
压缩、加密等库
Shell 命令控制台