CSIP是通用服务接口平台的英文简称(Commons Service Interface Platform),作用是与外围系统(智能网SCP,VC,97系统等)进行通信互连从而提供给用户一个完整的业务支撑系统。CSIP凭借着高吞吐量,高稳定性和快速开发部署的特色在OCS的产品中扮演着极其重要的角色。
CSIP作为CCB各子系统与其他设备通信的统一对外接口,主要具备以下特点:
扩展性:使用插件和模块化技术,支持多接入多协议。
CSIP作为对外统一接口平台要求有很好的扩展性以便于增加新的接口和接入方式,因此在框架上我们使用了插件技术,各模块之间松耦合。在主框架程序不改变的情况下可以通过修改配置文件增减接入点来调整CSIP的功能。运用插件技术的CSIP是一个伸缩性良好便于维护的系统。
能实现多种接入方式和多种协议,能很方便的加载业务模块。目前支持的接入方式有:Socket接入、短信接入、表接入;支持的协议有:MML协议、贝尔VC、中兴VC、华为VC、SMPP、短信接收表、通知表、泉州MML订单表。
稳定性:可以在任何情况下稳定的运行,使用流量和队列长度等各类参数来加强系统的自我保护能力。
主要考虑了流量和队列长度的限制,SOCKET和COM+资源的释放以及各类参数的范围控制。
流量控制:主要是在入口处堵住请求,如果每秒请求量RPS超过阀值,则接入线程不会进行请求分发直接返回应答给接入方。
队列控制:由于业务线程的处理能力不同以及业务请求差异,对接收队列长度会造成影响。接入线程向各个业务线程分发请求时,判断接收队列的长度有没有超过阀值,如果过载则直接返回应答给接入方。
可靠性:系统处理请求的成功率可达到99.99%以上。有专门的容错线程对并发包和错误包做处理。
并发包处理:由于客户端的请求在经过网络传输时有可能被拼接成一个大的包进行发送;服务端在接收请求时有一个缓冲区。如果客户端发送频率非常高,这个缓冲区可能会缓存多个数据包。为解决此问题由协议解析对象对数据包进行循环解析。
错误包处理:当消息发送频率非常高,非常密集的情况下,CSIP的接收线程有一个缓冲区,大小是8192个字节会读取到多个数据包。这样有可能会导致最后一个读取到的不是一个完整的包,而这个包的后半部分会被下一次读取到。解决办法是:协议解析对象判断出错误的数据包并不丢弃而是放入纠错线程的队列中,由纠错线程对错误的数据包进行拼接判断和处理。
高性能:使用了多线程处理、队列通知、异步操作、内存缓冲、批量操作等技术;有单机和集群两种部署模式,使用集群可以大幅度提高整体的处理性能。多线程处理、队列通知、异步操作、内存缓冲、批量操作等技术;(这句与前面衔接不上)另外CSIP还提供了集群功能,可以大幅度提高整体的处理性能。
在线更新:修改了配置参数后不用重新启动CSIP即可以使用参数的实时更新。从接入方式到协议格式到各类性能参数都支持动态加载和更新。
运行状态监控和分析功能:包括线程监控、队列监控、流量信息统计以及业务信息统计等。