2023年7月31日发(作者:)

谈谈SP短信接口网关开发中国电信股份有限公司汕头市分公司网络维护中心 蔡奕群摘 要:介绍SP短信接口网关开发过程中值得重点关注的方法。全文由三部分组成:提高短信接口网关处理能力、提高短信接口网关稳定性以及其他控制措施。提高短信接口网关处理能力部分着重阐述了多线程编程、事务分割、内存缓冲以及滑动窗口等方法;提高短信接口网关稳定性部分着重阐述了守护程序、监控模块、预警机制、专用通道以及现场保护与恢复机制等方法;其他控制措施部分阐述了关键字过滤、发送优先级控制、发送流量控制等方法。关键词:多线程编程 内存缓冲 滑动窗口0 . 引言SP短信接口网关在运营商和SP企业之间起着重要的桥梁作用,SP短信接口网关性能的好坏将直接影响整个SP业务的性能,因此,如何开发出一个稳定、高性能的短信接口网关就显得至关重要。本文以笔者个人亲身的开发经历,谈谈SP短信接口网关开发经验。成为系统的瓶颈而导致部分短信息的丢失。考虑到计算机内存读写得速度远远高于I/O的读写速度,为了提高接收效率,确保不会因为接受效率而影响短信的正常接收,在内存开辟一定数量的缓冲池(根据实际短信息的吞吐量而定,如1万条),如此一来,即使碰到话务高峰的时候,也能够把接收到的短消息及时地写入到内存中,不至于短消息丢失。1.1.4 滑动窗口很显然,在接收、写日志、解码、信息处理、入库五个子事务之间的处理速度不可能一致,那么,为了确保整个事务能够顺畅的进行,那么,我们还应该在每两个需要通信的子事务之间开辟对应的滑动窗口,用于适配两个子事务的处理速度,滑动窗口的大小应根据接口的吞吐量及峰值进行适当的调整。1.2 提高短信接口网关稳定性作为底层通信接口,其稳定性也不容忽视,提高接口网关稳定性的方法大致如下。

1.2.1 守护程序作为不间断的底层通信程序,其服务可用性的要求相当的高,为此,必须引入守护程序其进行监管,一旦发现服务异常,马上对接口网关程序做相应的处理,如关闭异常进程并重新启动新的进程及时确保接口程序的服务可用。1.2.2 监控模块为了确保网关的高效运行,还必须考虑系统监控问题,通过监控模块实时监控网关的运行情况,并及时的调整发送策略,如发送速率、是否应急关闭关键字过滤功能等。1.2.3 预警机制考虑到大多数机房都是无人值守或巡查周期较长,因此,短信接口网关开发的时候还需要考虑接口的预警机制,如短信接口网关长时间无收发记录或者待发送队列积压过多的时候,能够触发预警流程,及时地告知维护人员进行处理。1.2.4专用通道在上述预警机制的部署中,如果由于发送功能异常(如发送线程异常、SP通道受限等),则预警短信也将无法通过接口进行发送,必须有另外的通道把该预警短信及时的送达维护人员,建议采用专用通道(如GSM、CDMA工业Modem)进行预警短信的发送。1.2.5 现场保护与恢复机制由于采用了内存缓冲机制,为了确保短信息不丢失,在守1. SP短信接口网关的开发通用SP短信业务平台,逻辑可分为用户层、系统层、接口层。短信接口网关处于SP业务平台的最底层,是整个SP业务平台的基础,因此,我们在进行短信接口网关开发的时候,必须严格按照底层通信模块的标准(即高效、稳定)来进行。下面将围绕提高短信接口网关处理能力、提高短信接口网关得稳定性以及其他控制措施三个方面展开阐述。1.1 提高短信接口网关处理能力作为底层通信接口,其处理能力当然是最受关注的,提高短信接口网关处理能力所用到的方法包括多线程编程、事务分割、内存缓冲以及滑动窗口机制。1.1.1 多线程编程如果仅仅采用单线程编程的话,则接口网关无论如何都只能工作在半双工的模式下。为了提高通信效率,短信接口网关采用了多线程的编程模式,接口网关启动后,由一个主线程分别启动两个主要线程,即:发送线程和接收线程,分别处理短信的发送和接收事务,使短信接口网关真正做到全双工。1.1.2 事务分割由于接收短信的时候要做的事务比较多,包括接收短信息、记录日志、解码、处理短信息、把处理结果入库五个动作。如果在一个事务中一次性完成这些动作的话,那么,将会影响短信接收的效率,因此,把整个接收事务细化成五个子事务:接收、写日志、解码、信息处理、入库,这五个事务彼此相对独立,仅仅通过各个子事务之间的缓冲池进行交互。这样一来,就能够确保前面的事务不会因为后续事务处理速度跟不上而影响短信的接收。1.1.3 内存缓冲短信入库的速度受到I/O性能的影响,如果频繁跟I/O交互的话,将会严重影响短信的接收效率。结合考虑到目前所有的运营商短信网关/SP短信管理平台,都仅仅能够为SP等ESME提供相对数量较少的缓冲池,当处于某一个话务高峰的时候,I/O操作就会河南科技2010.7下65电子信息技术护进程进行异常处理的时候,还需要考虑内存的现场保护,把没有完成处理的任务保存期来,以便在重新启动新的网关进程的时候,能够把这些任务不遗漏的进行继续处理,即现场恢复。1.2.6 程序异常捕获虽然有守护进程和监控模块能解决服务可用性的问题,不过,那是比较被动的解决途径,为了能够更加积极地解决这个问题,我们在网关开发的时候,还需要多采用“try…catch…”语句,能够更加有效地捕获到程序各个地方所可能产生的异常,并积极地作相应处理。1.3 其他控制措施作为SP短信接口网关,除了考虑处理能力与稳定性之外,关键字过滤、发送优先级控制、发送流量控制这三种机制也是必不可少的。1.3.1 关键字过滤作为一个成熟的SP短信接口网关,在规划过程中,也必须考虑短信内容安全的问题。在功能模块分析中还必须增加关键字过滤模块。由于关键字过滤的算法相当复杂,且对系统资源的开销相当大,作为通用的SP短信接口网关,仅仅考虑的是简单的关键字过滤而已。1.3.2 发送优先级控制值得一提的还有,在SP短信应用中,还有一类业务(如获取校验码等),这类业务的实时性要求比较严格的,所以,不可能全部机械地扔到短信接口中进行排队发送。因此,短信接口网关还必须引入一个重要的参数,即发送优先级,通过对发送优先级进行控制,我们可以针对整个SP短信应用提交的发送请求,按照既定的优先级由高至低有序的进行发送。1.3.3 发送流量控制在运营商的SPMS(SP管理系统)或者SMGW(短信网关)上都有对每一个ESME(扩展短消息实体)都有一定的流量限制,对于超过流量限制的短信息,执行丢弃的动作。为了确保SP短信接口网关所提交到运营商的短信息不被丢弃,那么,在提交的速度上也必须有一个控制,最快不能够超过运营商提供给该ESME的最快发送速度。2. 结束语本文设计的SP短信接口网关,目前已开始应用于各类SP,有着比较广阔的应用市场前景。本短信接口网关存在许多优点的同时,也存在一些不足之处,如目前版本仅支持SMGP协议等,这些还需进一步的完善。参考文献:[1]郝文化. Windows多线程编程技术与实例[M].中国水利水电出版社,2005-10[2]候俊杰. 深入浅出MFC(第2版) [M].华东科技大学出版社,2001-1[3]葛亮. VisualC++从入门到实践[M].清华大学出版社,2009-7[4]中国电信集团公司. 短消息网关(SMGP)协议 V3.0[S].

2005-4作者简介:蔡奕群(1976-),男,广东汕头人,工程师,工科学士,研究方向为增值业务应用与开发、数据分析。(上接第58页)(3)采取铺砾石+土工格栅预压,这种处理效果是明显的,但投资较大,资金短缺时采用较为困难。软土地基加固施工过程中,工序控制的原则是“四快”,即排水快、清淤快、回填快、碾压快。采用加铺土工织物时,铺设要求做到绷拉无皱折。2.2 路基施工的处理路基基底施工时若遇到地表湿软,应及时向设计单位提出变更意见,可考虑换土或掺水泥(石灰)以及铺设土工布等有利于填前压实的措施。换土、掺水泥(石灰)的施工工序为:路基开挖→排水→清淤→换土→掺水泥(石灰)→碾压。地质条件是影响路基工程质量和产生病害的基本前提,水是造成路基病害的主要原因。因此,地下水位高除需完善排水设施外,还应设隔水层等,其目的是减少土路堤结构的压缩变形。按设计要求先开挖排水沟,再清表,做好填前压实,并在分层时最好做出一定的横坡。施工前应进行补充调查,取土坑沿深度方向的土层分布,土性、含水量情况列表说明,避免混填。2.2.1 控制填料填筑速率与时间基底处理完后,应及时进行路堤填筑以及争取预压时间,对排水处理地基完成后,即可填筑。软土路段施工速度应放慢,其填筑速度应控制好,并应开放交通,对填筑路堤,有一个预压和沉降期,对填筑宽度,应按设计施工坡率超宽碾压要求控制,一般按30~50cm超宽控制。2.2.2 控制填料的含水量填料的含水量对压实效果影响最大,一般在施工中应控制在最佳含水量±2%之内。施工前应根据标准击实试验取得的数据,按照施工气候和试压结果作出适当调整,减少压缩沉降。2.2.3 控制压实厚度,正确选用碾压机械在路基施工过程中针对不同性质的填料及碾压工具选用不同的压实度,采用机械压实时,分层的最大松铺厚度不超过30cm,且摊铺厚度要通过标桩控制,碾压时要严格控制纵、横坡度,并及时检查,不同碾压机械其性能差别较大,适用情况不异;如重型轮胎压路机适用于各类土,轻型钢轮压路机适用于各种填料顶面压实整平,重型钢轮压路机适用于细粒土、砂类土和砾石土等,双驱重型轮胎压路机最适用于风积沙等,施工时应正确选用。以上是本人在公路路基施工中遇到的的几种常见病害,分析了成因,并提出施工中应注意的问题和处理方法。在今后的路基病害的处理方法还需要进一步探讨和改进,只有在设计和施工过程中对路基的病害有充分的了解,合理设计、精心施工,才可能减少路基病害的发生,才能保证公路工程施工质量。66河南科技2010.7下

2023年7月31日发(作者:)

谈谈SP短信接口网关开发中国电信股份有限公司汕头市分公司网络维护中心 蔡奕群摘 要:介绍SP短信接口网关开发过程中值得重点关注的方法。全文由三部分组成:提高短信接口网关处理能力、提高短信接口网关稳定性以及其他控制措施。提高短信接口网关处理能力部分着重阐述了多线程编程、事务分割、内存缓冲以及滑动窗口等方法;提高短信接口网关稳定性部分着重阐述了守护程序、监控模块、预警机制、专用通道以及现场保护与恢复机制等方法;其他控制措施部分阐述了关键字过滤、发送优先级控制、发送流量控制等方法。关键词:多线程编程 内存缓冲 滑动窗口0 . 引言SP短信接口网关在运营商和SP企业之间起着重要的桥梁作用,SP短信接口网关性能的好坏将直接影响整个SP业务的性能,因此,如何开发出一个稳定、高性能的短信接口网关就显得至关重要。本文以笔者个人亲身的开发经历,谈谈SP短信接口网关开发经验。成为系统的瓶颈而导致部分短信息的丢失。考虑到计算机内存读写得速度远远高于I/O的读写速度,为了提高接收效率,确保不会因为接受效率而影响短信的正常接收,在内存开辟一定数量的缓冲池(根据实际短信息的吞吐量而定,如1万条),如此一来,即使碰到话务高峰的时候,也能够把接收到的短消息及时地写入到内存中,不至于短消息丢失。1.1.4 滑动窗口很显然,在接收、写日志、解码、信息处理、入库五个子事务之间的处理速度不可能一致,那么,为了确保整个事务能够顺畅的进行,那么,我们还应该在每两个需要通信的子事务之间开辟对应的滑动窗口,用于适配两个子事务的处理速度,滑动窗口的大小应根据接口的吞吐量及峰值进行适当的调整。1.2 提高短信接口网关稳定性作为底层通信接口,其稳定性也不容忽视,提高接口网关稳定性的方法大致如下。

1.2.1 守护程序作为不间断的底层通信程序,其服务可用性的要求相当的高,为此,必须引入守护程序其进行监管,一旦发现服务异常,马上对接口网关程序做相应的处理,如关闭异常进程并重新启动新的进程及时确保接口程序的服务可用。1.2.2 监控模块为了确保网关的高效运行,还必须考虑系统监控问题,通过监控模块实时监控网关的运行情况,并及时的调整发送策略,如发送速率、是否应急关闭关键字过滤功能等。1.2.3 预警机制考虑到大多数机房都是无人值守或巡查周期较长,因此,短信接口网关开发的时候还需要考虑接口的预警机制,如短信接口网关长时间无收发记录或者待发送队列积压过多的时候,能够触发预警流程,及时地告知维护人员进行处理。1.2.4专用通道在上述预警机制的部署中,如果由于发送功能异常(如发送线程异常、SP通道受限等),则预警短信也将无法通过接口进行发送,必须有另外的通道把该预警短信及时的送达维护人员,建议采用专用通道(如GSM、CDMA工业Modem)进行预警短信的发送。1.2.5 现场保护与恢复机制由于采用了内存缓冲机制,为了确保短信息不丢失,在守1. SP短信接口网关的开发通用SP短信业务平台,逻辑可分为用户层、系统层、接口层。短信接口网关处于SP业务平台的最底层,是整个SP业务平台的基础,因此,我们在进行短信接口网关开发的时候,必须严格按照底层通信模块的标准(即高效、稳定)来进行。下面将围绕提高短信接口网关处理能力、提高短信接口网关得稳定性以及其他控制措施三个方面展开阐述。1.1 提高短信接口网关处理能力作为底层通信接口,其处理能力当然是最受关注的,提高短信接口网关处理能力所用到的方法包括多线程编程、事务分割、内存缓冲以及滑动窗口机制。1.1.1 多线程编程如果仅仅采用单线程编程的话,则接口网关无论如何都只能工作在半双工的模式下。为了提高通信效率,短信接口网关采用了多线程的编程模式,接口网关启动后,由一个主线程分别启动两个主要线程,即:发送线程和接收线程,分别处理短信的发送和接收事务,使短信接口网关真正做到全双工。1.1.2 事务分割由于接收短信的时候要做的事务比较多,包括接收短信息、记录日志、解码、处理短信息、把处理结果入库五个动作。如果在一个事务中一次性完成这些动作的话,那么,将会影响短信接收的效率,因此,把整个接收事务细化成五个子事务:接收、写日志、解码、信息处理、入库,这五个事务彼此相对独立,仅仅通过各个子事务之间的缓冲池进行交互。这样一来,就能够确保前面的事务不会因为后续事务处理速度跟不上而影响短信的接收。1.1.3 内存缓冲短信入库的速度受到I/O性能的影响,如果频繁跟I/O交互的话,将会严重影响短信的接收效率。结合考虑到目前所有的运营商短信网关/SP短信管理平台,都仅仅能够为SP等ESME提供相对数量较少的缓冲池,当处于某一个话务高峰的时候,I/O操作就会河南科技2010.7下65电子信息技术护进程进行异常处理的时候,还需要考虑内存的现场保护,把没有完成处理的任务保存期来,以便在重新启动新的网关进程的时候,能够把这些任务不遗漏的进行继续处理,即现场恢复。1.2.6 程序异常捕获虽然有守护进程和监控模块能解决服务可用性的问题,不过,那是比较被动的解决途径,为了能够更加积极地解决这个问题,我们在网关开发的时候,还需要多采用“try…catch…”语句,能够更加有效地捕获到程序各个地方所可能产生的异常,并积极地作相应处理。1.3 其他控制措施作为SP短信接口网关,除了考虑处理能力与稳定性之外,关键字过滤、发送优先级控制、发送流量控制这三种机制也是必不可少的。1.3.1 关键字过滤作为一个成熟的SP短信接口网关,在规划过程中,也必须考虑短信内容安全的问题。在功能模块分析中还必须增加关键字过滤模块。由于关键字过滤的算法相当复杂,且对系统资源的开销相当大,作为通用的SP短信接口网关,仅仅考虑的是简单的关键字过滤而已。1.3.2 发送优先级控制值得一提的还有,在SP短信应用中,还有一类业务(如获取校验码等),这类业务的实时性要求比较严格的,所以,不可能全部机械地扔到短信接口中进行排队发送。因此,短信接口网关还必须引入一个重要的参数,即发送优先级,通过对发送优先级进行控制,我们可以针对整个SP短信应用提交的发送请求,按照既定的优先级由高至低有序的进行发送。1.3.3 发送流量控制在运营商的SPMS(SP管理系统)或者SMGW(短信网关)上都有对每一个ESME(扩展短消息实体)都有一定的流量限制,对于超过流量限制的短信息,执行丢弃的动作。为了确保SP短信接口网关所提交到运营商的短信息不被丢弃,那么,在提交的速度上也必须有一个控制,最快不能够超过运营商提供给该ESME的最快发送速度。2. 结束语本文设计的SP短信接口网关,目前已开始应用于各类SP,有着比较广阔的应用市场前景。本短信接口网关存在许多优点的同时,也存在一些不足之处,如目前版本仅支持SMGP协议等,这些还需进一步的完善。参考文献:[1]郝文化. Windows多线程编程技术与实例[M].中国水利水电出版社,2005-10[2]候俊杰. 深入浅出MFC(第2版) [M].华东科技大学出版社,2001-1[3]葛亮. VisualC++从入门到实践[M].清华大学出版社,2009-7[4]中国电信集团公司. 短消息网关(SMGP)协议 V3.0[S].

2005-4作者简介:蔡奕群(1976-),男,广东汕头人,工程师,工科学士,研究方向为增值业务应用与开发、数据分析。(上接第58页)(3)采取铺砾石+土工格栅预压,这种处理效果是明显的,但投资较大,资金短缺时采用较为困难。软土地基加固施工过程中,工序控制的原则是“四快”,即排水快、清淤快、回填快、碾压快。采用加铺土工织物时,铺设要求做到绷拉无皱折。2.2 路基施工的处理路基基底施工时若遇到地表湿软,应及时向设计单位提出变更意见,可考虑换土或掺水泥(石灰)以及铺设土工布等有利于填前压实的措施。换土、掺水泥(石灰)的施工工序为:路基开挖→排水→清淤→换土→掺水泥(石灰)→碾压。地质条件是影响路基工程质量和产生病害的基本前提,水是造成路基病害的主要原因。因此,地下水位高除需完善排水设施外,还应设隔水层等,其目的是减少土路堤结构的压缩变形。按设计要求先开挖排水沟,再清表,做好填前压实,并在分层时最好做出一定的横坡。施工前应进行补充调查,取土坑沿深度方向的土层分布,土性、含水量情况列表说明,避免混填。2.2.1 控制填料填筑速率与时间基底处理完后,应及时进行路堤填筑以及争取预压时间,对排水处理地基完成后,即可填筑。软土路段施工速度应放慢,其填筑速度应控制好,并应开放交通,对填筑路堤,有一个预压和沉降期,对填筑宽度,应按设计施工坡率超宽碾压要求控制,一般按30~50cm超宽控制。2.2.2 控制填料的含水量填料的含水量对压实效果影响最大,一般在施工中应控制在最佳含水量±2%之内。施工前应根据标准击实试验取得的数据,按照施工气候和试压结果作出适当调整,减少压缩沉降。2.2.3 控制压实厚度,正确选用碾压机械在路基施工过程中针对不同性质的填料及碾压工具选用不同的压实度,采用机械压实时,分层的最大松铺厚度不超过30cm,且摊铺厚度要通过标桩控制,碾压时要严格控制纵、横坡度,并及时检查,不同碾压机械其性能差别较大,适用情况不异;如重型轮胎压路机适用于各类土,轻型钢轮压路机适用于各种填料顶面压实整平,重型钢轮压路机适用于细粒土、砂类土和砾石土等,双驱重型轮胎压路机最适用于风积沙等,施工时应正确选用。以上是本人在公路路基施工中遇到的的几种常见病害,分析了成因,并提出施工中应注意的问题和处理方法。在今后的路基病害的处理方法还需要进一步探讨和改进,只有在设计和施工过程中对路基的病害有充分的了解,合理设计、精心施工,才可能减少路基病害的发生,才能保证公路工程施工质量。66河南科技2010.7下