设为首页 加入收藏
   
     
   
综合•其他
 
短信息网关连接模块的分析与实现
双击自动滚屏 发布者:admin 时间:2010-8-17 10:15:03 阅读:266次 【字体:

赵 空1,袁 华2
(1.苏州托普职业信息技术学院,江苏 苏州 215311;
2.长春工业大学计算机学院,吉林 长春 130011)
【摘 要】文章着重对短信息网关连接模块进行设计分析与实现。该模块由网关通信模块和SGIP协议数据处理模块两个子模块组成。该系统实现了与短信息网关的连接与通信功能,提供了接拆包接口,且支持TCP/IP协议。运行结果表明,此网关连接模块各项功能基本实现,系统比较稳定。
  【关键词】短信息服务;短信息网关连接模块;网关通信模块;SGIP协议数据处理模块
  【中图分类号】 TP33             【文献标识码】 A          【文章编号】 1008-1151(2006)08-0051-02

   短信息服务一般采用SP直接与某一个SMSC(Short Message Service Center)连接,由SMSC直接通过信令网发送短信给用户的方式,但当SP的短信息服务业务量很大时,全部短信都由与SP直连的SMSC负责转发,造成SMSC负荷极大,难以满足业务发展的需要,且GSM网的规范做法是由用户归属地的SMSC负责用户短信业务的转发,如果该SMSC与提供服务的SP没有连接,当用户采用短信点播短信信息服务时,短信无法发送到该SP。 因而随着业务的发展,信息类短信的转发也要求采用GSM网的规范做法,即由用户归属地的SMSC负责用户短信信息服务的发送,为解决这一问题,短信网关应运而生。它为专业化的信息分配及管理者实现SP与SMSC之间的交互。短信网关(Short Message Gateway ,SMG)的建设可以为SP(Service Provider)与短消息中心(SMSC)之间数据交换提供一条安全、快捷的通道,以便手机用户采用短信方式与SP双向通信,接收SP提供的信息服务,同时完成相应计费采集、业务管理、网络管理等功能。本文着重介绍短信息服务系统中网关连接模块的系统架构与实现过程。
  一、网关连接模块系统分析
  (一)连接模块的设计思路
  用户归属的短信中心和提供业务的SP连接在不同的短信网关上,短信网关之间可采用SGIP(Short Message Gateway Interface Protocol )协议或是CMPP协议进行转发。本文系统中网关协议采用联通SGIP协议。
  SGIP有两种具体的实现方式:一种是采用专用SGIP方式,另一种是采用通用HTTP方式。本文中SMG和GNS(Gateway Name Server)、以及SMG和SMG之间采用专用SGIP方式作为承载协议,而SP和SMG的通信同时支持专用SGIP方式和通用HTTP方式两种承载协议。
  网关平台连接模块能够按照SGIP协议的规定,与运营商短信息网关进行平台连接,进行数据的接收和发送。在MO过程中,从网关接收短消息,将接收到的数据信息提供给短信息处理模块,在MT过程中把短消息处理模块处理好的数据发送运营商网关,网关平台连接模块主要采用基于TCP/IP协议的面向连接的流式套接字技术,能够提供数据无差错,无重复发送的可靠的数据传输服务。连接模块主要分两个子模块:利用套接字技术的网关平台通信模块和SGIP协议数据处理模块。通信模块主要负责与网关平台的连接,数据的接收和发送;SGIP协议数据处理模块主要负责对数据信息进行规范化。按照SGIP协议的规定,对数据信息进行规范化后以便短信息网关能够识别。同时,能够将规范化的数据信息解析成短信息处理模块能够识别的数据信息。
图1 TCP/IP协议核心与应用程序及SGIP协议关系
  (二)系统体系结构
  SMG是具有短消息转发功能的短信息网关。全国可以有多个网关,SMG网关之间通过互联网等方式实现网络互联,每一个SMG是时与多个SMSC以及多个SP连接。全网具有唯一有效的GNS,GNS负责全局路由表的维护与更新,为了确保路由表存储的安全性,网络中设置主备用GNS,两个GNS要保持一致性,每一个SMG都和GNS连接。SMG与SP、SMG与GNS以及SMG与SMG之间的通信协议为SGIP协议。SMG与SMSC之间的通信统一采用SMPP3.3协议。  
  本系统中网关连接模块提供接口给短信息处理模块,对接收到的数据,利用数据库共享的方式,通过数据交换表提供给短信息中心模块,中心模块对信息进行处理,返还给数据交换表。短信网关与短信中心之间采用专线方式互联,需对短信中心进行改造,改造的主要内容是:协议上在原来的SMPP3.3的基础上扩充功能,使短消息扩展实体(SME)即短信网关有办法得到短信息发送成功与否的结果,以便短信息网关进行计费记录。以及采用SGIP将发送成功与否的信息传递给SP。
  网关通信模块在与网关通信的过程中,双方互为 Client/Server。在Window平台下,采用“非阻塞”套接字工作模式,异步选择机制,将网关通信模块的客户端与服务器端分别用两个独立的线程实现,能够提高网络应用程序的性能,若采用阻塞套接字,接收函数等待将导致主线程暂停运行。同时,为了保证通信的安全性,采用面向连接的流式套接字编程。
  二、网关连接模块的实现
  SP和SMP的通信同是支持专用SGIP方式和通用HTTP方式两种承载协议,本系统拟采用专用SGIP方式。通信初期使用bind命令进行连接,通信过程中SP与SMG之间发送的任何一条命令都带有一个序列号,序列号由命令源产生,客户端与服务器端通信开始以后,客户端可向服务器端发送相应的命令,服务器端对收到的命令返回应答。命令在SP和SMSC之间的传输采用类似接力的方式,每条命令和对应的应答仅仅表示该次命令发送的结果是否正确。通信结束时,客户端向服务器端发送Unbind命令,服务器端随后返回Unbind_Resp应答,然后双方断开连接。网关平台通信采用的是面向连接的流式套接字编程,利用非阻塞模式下的套接字,事件异步选择机制,实现与网关之间进行平台连接,接收和发送数据的功能。
  本系统中,因为SP既可能是服务器端,也有可能是客户端,为提高系统的性能,将服务器端和客户端分别对应不同的线程,不同的套接字。
  服务器端要求实时的监听网络上发生的事件。实现服务器端功能,创建监听线程,直到指定的网络事件发生,线程才停止挂起,继续运行。注册事件FD_ACCEPT和 FD_CLOSE,一旦这两个事件其中的一个事件发生,事件信号就变成有信号状态。对FD_ACCEPT事件的处理过程是,进行连接,创建接收数据的套接字,如果创建失败,则关闭监听套接字。创建接收套接字成功,即连接建立成功以后,启动接收线程。对FD_CLOSE事件则关闭监听套接字。
  当SP发送数据信息给网关的时候,需要用客户端功能,来向网关建立连接,并能接收和发送数据。注册事件为FD_READ,FD_CONNECT 和FD_CLOSE。对FD_CONNECT事件调用LoginSMG()登录网关。对FD_READ事件将收到的数据放入缓冲区,并调用TakeApartPack()进行拆包。对FD_CLOSE事件则关闭事件句柄,关闭客户端套接字。
  SGIP协议数据处理模块主要实现对数据信息进行解析和整和,并且实现SP向网关发出建立连接请求和向网关发短信息消息的功能。
  下面给出对接收到的数据的处理流程及函数实现。
  图2 处理接收到数据
  三、结论
  短信息网关是无线互联网短信息业务中最为关键的一个设备,它为手机用户和互联网的信息资源架起了一座桥梁。本文中短信息网关的通讯模块设计周全,结构合理,为计费、路由、超时重传等模块提供了良好的扩展性。经实验室测试,在奔4处理器,512兆内存的机器上,收发包速率为每秒5000条,不丢包率达到100%,是一个稳定的系统。
  
【参考文献】
   [1]中国联合通信公司. 中国联合通信公司短消息网关系统接口协议(SGIP)版本1.2[S].
   [2] Douglas E.Comer, David L.Stevens. TCP/IP网络互联技术(卷3):客户-服务器编程与应用(Windows套接字版)[M].北京:清华大学出版社,2004.
   [3]Bruce Eckel,Chuck Allison.C++编程思想 第2卷 实用编程技术[M].北京:机械工业出版社.
   [4]Harvey M.Deitel,Paul J.Deitel. Visual C++.NET高级编程[M].北京:清华大学出版社,2004.
上一篇|下一篇

 相关评论

暂无评论

 发表评论
 昵称:
 评论内容:
 验证码:
  
打印本页 || 关闭窗口
 
 

咨询电话: 13891856539  欢迎投稿:gmlwfbzx@163.com  gmlwfb@163.com
617765117  243223901(发表)  741156950(论文写作指导)63777606     13891856539   (同微信)

All rights reserved 版权所有 光明论文发表中心 公司地址:西安市碑林区南大街169号-6
CopyRight ©  2006-2009  All Rights Reserved.


  制作维护:中联世纪  网站管理
访问 人次
国家信息产业部ICP备案:陕ICP备17019044号-1 网监备案号:XA12993