2007年工作总结之-xx省UNICOM dxt互通短信网关系统SMSC
08年了,我也把07年所做的工作总结一下。望各位朋友不吝指教。
?
一、名词解释
SMPP:短消息点对点协议,SMPP协议是一个国际标准,有SMS论坛制定,官方网址为smsforum.net,截至2006年7月2日,最新版本是5.0。曾经流行的版本是3.3、3.4。SMPP协议向后兼容的。
SMC:短消息服务中心
ECME:扩展短消息实体
?
二、简要介绍
基于SMPP协议研发的互通短信网关,所有unicom发向中国移动和中国电信的短信都通过此系统提交给unicom互通短信网关,系统角色为SMC,unicom充当ECME,由SMSC主动下发短消息(DeliverSM)给unicom短信中心,设计速度为250条/秒(运营商规定)。
系统采用spring进行ioc配置,h2内存数据库,数据库访问采用spring jdbc,基于多线程和Socket编程。
主要程序介绍:
?
三、主体程序介绍
SMSCService:系统启动的主程序,实现启动、暂停监听服务,启动暂停消息下发服务功能。
?
SMSCSession:实现ECME连接上来的消息解码,调度相应的服务(接受消息或发送消息)。count = saveQueue.drainTo(list, batchSize);if (logger.isDebugEnabled()) {logger.debug("get element count["+count+"] from saveQeueue.");}if (count > 0) {int total = batchSave.batachSave(list);if (logger.isDebugEnabled()) {logger.debug("Save ["+total+"] records.");}} if (count < batchSize) {if (logger.isDebugEnabled()) {logger.debug("sleep "+sleepTime);}//小于0, 休眠Thread.sleep(sleepTime);} else {Thread.yield(); //让其他程序有机会运行}
其它若干辅助类,就不一一介绍了。?
因为时间比较紧,系统是在logica smsc的基础修改完成的,本人1周完成。主是加入了业务所需要的东西。因涉及非技术问题,此处只取了一部份代码。
?
ps:
做这个项目的时候,主要是为适应xx省smsc经过huiway改造之后的话单分检,大家开始都没有注意有可能出现这种情况,时间紧(大约只有1周时间),压力大(自己以前还没有smsc角色的程序,对smpp中的DeliverSM消息不太熟,后来果然在上面载了跟头,测试时总发现下发出去的消息是乱码,反复测试,编码格式也换了9种,后来才发现有个DeliverSM中的setDataCoding没有设置,郁闷),经过自己的努力和同事的帮助。基本上在一周内完成,包括测试用例。
现在这个系统已上线,到目前为止已正常运行2个月,从未出现过大问题。运行平台为redhat enterprise 4。
?
?