小灵通短信SP接入技术在电信业务支撑系统中的应用

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:yywachself
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:短信技术除了在人们日常的信息交流外,还可以在企业生产管理中得到广泛的应用。本文就SMGP协议、SP接入技术以及它们在电信业务支撑系统中的实现方法做详细说明。
  关键词:短信技术;SP;SPMS;SMGP协议
  中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)17-31277-03
  The Application of PHS SMS SP Access Technology in the Telecommunications Business Support System
  DING Jian
  (The Second Northwest University of Minorities, Yinchuan 750021, China)
  Abstract:SMS technology also can be widely applied in the Enterprise Production Management in addition to using in the daily exchange of information. This paper will elaborate SMGP Agreement, SP Access Technology and their Implementation methods in the Telecommunications Business Support System.
  Key words:SMS Technology; SP; SPMS; SMGP Agreement
  
  0 引言
  
  自从1998年移动运营商引入了短信技术以来,短信业务从诞生之日起就显现出了强劲的发展势头,成为所有增值业务中的瑰宝。短信业务已经经历了以用户间信息为主,和以信息提供为主的两个阶段。笔者认为下个阶段的短信应用将是最为理想的阶段,短信必将在人们导购,信息查询,旅游,工作等方面得到更为广泛的应用。
  随着2000年底"移动梦网"计划的推出,互联网迅速与短信、移动互联结合起来,短信市场呈现无限商机。由于短信业务发展迅速,业务需求变化快,产品更新快,而且业务量规模难以预测,对于运营商,如何快速开发和部署短信应用,以及很好地适应业务的变化发展,对应用开发平台提出了严格要求。
  但是,SP的大量涌现也出现了很多不法SP,他们采用信息诈骗信息干扰等手段侵害了用户利益,为此引入了SPMS(SP管理平台),对SP行为、内容和风险进行监管,使短消息信息服务逐步走向成熟。为了加强电信管理及业务支撑水平,向全网用户提供更好的服务,电信运营商建立了一种多方受益的赢利机制,需要对内容/应用服务商提供开放的小灵通短信增值服务运营平台;另一方面作为一个SP加入到无线互联业务内,其自身还是需要有一套短信平台能与PHS短信网关协议相联通,同步推出自己的具有特色的移动短信应用平台。SP需要开发一套基于SMGP协议的应用系统与SPMS(或SMGW,后面均以SPMS为例)连接才可以给用户提供服务。
  
  1 SMGP协议及SP接入技术
  
  1.1 短消息网关(SMGW)和短消息网关协议(SMGP)
  在短信信息服务业务发展的初期,一般采用SP(业务提供商)直接与某一个SMC(短消息中心)连接,由SMC直接通过信令网发送短信给用户的方式。但当SP的短信信息服务业务量很大时,全部短信都由与SP直连的SMC负责转发,造成该SMC负荷极大,难以满足业务发展的需要。而且无法保证上行短信的准确性。
  信息类短信的转发如何将大量SP接入到各地的SMC上,如何保证接入的一致性及安全性,如何为用户提供优质的服务,是这一阶段业务发展需要解决的主要问题。为了解决这一问题,SMGW(Short Message Gate Way,短消息网关)应运而生。SMGW是处于SMC和SP之间的设备,它为这两个实体的数据交换提供安全、快捷的通道。网关与短消息中心之间使用SMPP协议(Short Message Peer to Peer,短消息点对点协议), 与SP之间使用SMGP协议(Short Message Gateway Protocol,短消息网关协议),因此短消息网关需要完成协议的转换、计费、路由、安全和网络管理等功能。在短信网关参与的模式下,短信网关作为专业化的信息分配及管理者实现SP与SMC之间的交互。
  本文基于SMGP版本3.0协议,实现与短信网关的连接。实现SMGP协议有两种途径,一是利用UTStarcom公司提供的API,可以方便实现SMGP协议;二是依据中国电信集团公司企业标准(SMGP协议V3.0)标准,开发可以实现。如果有足够的时间和开发能力当然采用第二种,如果方便实现建议采用第一种方法。开发前首先要准备UTStarcom SMGP3.0 API,申请SP接入号、账号以及SPMS地址(SMGP协议端口为8890)。SMGP协议主要提供以下两类业务操作:
  (1)短信发送(Short Message Mobile Originate,SM MO)
  (2)短信接收(Short Message Mobile Terminated,SM MT)
  1.2 短信SP平台接入方法
  短信SP平台接入结构图如下。从图1可以看出,SP接入方法可以有4种,通常都是采用第①种,所有SP都应纳入SPMS管理。
  图1
  通讯方式各网元之间共有两种连接方式:长连接和短连接。长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对SMGP消息的发送。现阶段,要求SPMS之间必须采用长连接的通信方式,建议SP与SPMS之间采用长连接的通信方式。
  通信双方之间的消息发送后等待T秒后未收到响应或返回发送失败消息,应立即重发,再连续发送N-1次后仍未得到响应则停发。现阶段建议取值为:T=60秒,N=3。在API提供的配置文件中可以配置,设置该项:smgpapi.net.SubmitRetry = 3即可。
  
  2 电信业务支撑系统中应用实现方法
  
  2.1 以短信SP为核心的电信业务支撑系统组成
  由图2可以看出,一个以SP为中心的系统架构形成了,为用户提供了更好更优质的服务。
  图2
  每个员工在办公过程中往往不能时时刻刻的在办公室中,这样在部门间协作时需要配合的工作便不能及时处理,造成工作效率低下,如在OA系统中,我们需要领导的审批单,财务报账,部门电子传真等都需要及时响应,短信通知可以方便快捷的解决这个问题。在综合网管系统中当出现网络故障或服务器当机时短信通知业务人员迅速处理故障,这样不至于用户申告障碍后才处理问题。在综合营业系统中用户可以通过短信申请某新业务,新业务开通后通知用户业务开通成功。用户可以通过短信查询话费,当预存话费余额不足一定门限(如低于10元)时发送余额不足通知等等。短信SP在这些方面优势都被发挥的淋漓尽致。故短信SP的接入给我们系统带来无限生机,减少了很多工作量,而且提高了服务质量。
  2.2 SP使用MO操作消息发送消息
  根据前面提到了SMGP协议主要MO和MT操作,SP使用MO操作消息发送消息,消息接收则需要MT操作。根据SMGP协议,MO消息需要以下操作才可以进行整个消息发送过程:
  第一步:SP登录与SPMS建立连接(LOGIN):Login操作的目的是客户端向服务器端注册作为一个合法客户端身份,若注册成功后即建立了应用层的连接,此后客户端可以与此服务器端进行消息的接收和发送。
  第二步:链路检测操作(Active_Test):本操作仅适用于通信双方采用长连接通信方式时用于保持连接,如果短连接则不需要。
  第三步:SP向SPMS提交短信(SUBMIT)操作:SP在合法登录后通过SUBMIT操作可以向用户下发消息,消息有单条短消息发送和群发短消息两种。
  第四步:请求关闭连接的操作(Exit)。
  2.3 利用UTStarcom公司提供的类和方法实现一个简单的SP
  根据UTStarcom公司提供的API可以方便开发SP消息发送。首先我们解读API提供部分的类及方法:
  SmgpAPI类主要提供SMGP协议包的封装,主要方法如下:
  API初始化(InitSMGPAPI):初始化SMGP API,应用程序只需要调用一次此函数就可以实现MO消息的第一步操作即SP与SPMS建立连接,该方法返回0表示连接成功,如果返回1则失败,检查smgpc.ini位置及参数是否配置是否正确。
  CMMPActiveTest:检查短消息网关是否能够提供服务,如果连接中断则重连,始终与SPMS建立长连接。
  SMGPSendSingle:发送单条短消息,向短消息网关发送1条短消息到1个终端用户。短消息长度最长为200。
  SMGPSendBatch:群发短消息,向短消息网关发送1条短消息到多个终端用户。短消息长度最长为200,此函数使用文件传递短消息内容。
  SMGPDeliver:连接短消息网关,等待接收属于本SP的短消息。
  SendSingleParam类主要提供了发送单条短消息方法,主要方法如下:
  setSSrcTermID:终端显示的号码。
  setSChargeTermID:目标号码。
  setSDestTermID:设置目标号码。
  setSMsgContent:设置消息体。
  setLinkID:该字段由SPMS生成,并由网关传递给SP。
  setSubmitMsgType:设置消息类型,普通短消息。
  setNMsgFormat:设置消息字符类型,如果包含汉字则要设置为15,否则只有字符则设置为0可以增加发送字符个数。
  SMGPSendSingle:发送单条短消息。
  SendBatchParam类同SendSingleParam,其它均暂略。
  有以上类和方法我们就很容易实现一个简单的SP,之后就是如何将此SP同我们业务系统结合起来应用了。
  为了便于扩展,定义了接口类Service,定义了两个抽象方法,为了处理两个动作,一是业务系统主动发布消息,二是处理短信请求。如图3所示,每个业务系统都有其特殊性,所有根据每种业务不同定义了不同的类,每个类都实现我们公共的接口。
  图3
  ChargeService综合计费系统处理类,BusiService综合营业系统处理类,这些系统和我们SP平台采用SOCKET接口,所以在我们的系统中只要定义一个SMSListener类。所有业务再做一下封装,这样引入一个类工厂CategoryFactory,通过getBusiness方法实例化我们业务对象。类及方法如下:
  public class CategoryFactory{
   static Service service=null;
   public static Service getBusiness(){
  try{
  service=(Service)Class.forName(className).newInstance();
  }catch(Exception e){}}}
  
  SMSManage类功能:消息处理,实例化业务类及发送消息。SMSService类实现与SPMS连接及发送消息、接收消息,即SP类。
  消息下发工作时序图如下:
  图4
  SP消息接收工作时序图如图5:
  图5
  短信发送的示意过程:
  下面给出在Red Hat Enterprise Linux AS release 3版本的操作系统下,用JAVA语言实现的发送单条短消息类的主要代码。
  public class sendSingle {
  private static Log logger = LogFactory.getLog(sendSingle.class);
  public sendSingle() {}
  public static boolean send(String destNumber,String msgContent,String spnumber) {
   SendSingleParam ssp;
  try{
   ssp = new SendSingleParam();//定义SP对象
   ssp.setNNeedReport(1); //需要SMGW返回状态报告
   ssp.setSSrcTermID(spnumber);//终端要显示的号码,可以和付费号码不一致
   ssp.setSChargeTermID(spnumber);// 指定付费号码
   ssp.setSDestTermID(destNumber);//指定目标号码
   ssp.setNMsgLen msgContent.getBytes().length);
   ssp.setSMsgContent(msgContent.getBytes());
   ssp.setSubmitMsgType(new Integer(6));//普通短消息
   ssp.setSPDealResult(new Integer(0));
   ssp.setNMsgFormat(15); //文字方式,这个比较重要,除非发送的内容不包
  //含汉字,否则接收不到或者会出现乱码
   ssp.setNMsgLevel(3);//优先级:紧急
   int sedsr = SmgpAPI.SMGPSendSingle(ssp);
   logger.debug("发送返回结果:" + sedsr);
   int ierror = ssp.getNErrorCode();
   debug.println("短信网关返回结果:" + ssp.getNErrorCode());
  if (ierror != 0)
   debug.println("短信发送失败,稍后重试。");
  else
   debug.println("短信发送成功!");
   }catch(Exception e){
   e.printStackTrace();
   }
  return true;
  }
  SP消息接收为SP向SPMS发送Deliver操作,等待SPMS返回属于本SP的消息。消息接收主要使用API中DeliverResp和SmgpAPI类SMGPDeliver方法,此处暂略。
  
  3 结束语
  
  短信是拇指的革命,又是一项新奇沟通方式。在"拇指信息时代",短信业务的繁荣显示无线互联的光明未来,手机购物、娱乐、收发E-Mail、获取实时信息等功能在按动拇指之间就可以实现。短信日渐改变着人们的工作,生活。并已经深刻地影响了人们的日常生活,工作和学习。它已经成为了人们生活中不可或缺的一部分了,短信的发展便进入了快车道,必将在各行各业发挥其无穷的魅力。
  
  参考文献:
  [1]中国电信集团公司企业标准(SMGP协议)(v3.0).
  [2]周学泳,石丹.短信息(SMS)与WAP的开发及应用[M].电子工业出版社.
  [3] (美) Bruce Eckel著,侯捷 /译.Java编程思想(第2版)[M].清华大学出版社出版.
  [4]SMGP 3.0 API UTStarcom Extend.doc. ut工程师.
  [5][美]David Tansley著, 徐焱/译.LINUX与UNIX Shell编程指南[M].机械工业出版社.
  [6]朱刚.Linux网络编程[M].科学出版社.
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:相对于代码的保护而言,保护移动Agent所携带的数据就比较复杂。因为数据不仅包括一些不变的常量(如Agent的路由计划),还包括移动Agent在执行任务过程中添加的一些与应用有关的数据,所以本文采用三重加密协议,从理论分析对其进行保护的有效性,并用实验加以验证,并得到理想结果。  关键词:移动Agent;三重加密协议;安全  中图分类号:TP311文献标识码:A 文章编号:1009-3044
期刊
摘要:Excel是广泛应用的电子数据表格程序,如在Excel中使用VBA(Visual Basic for Application)编程将有很多机会开发出有价值的应用程序,本文介绍一种基于Excel的VBA编程方法,来扩展Excel的功能,以实现学生评优和奖学金评选的数据统计的计算功能。   关键词:Excel;奖学金评选;宏  中图分类号:TP311文献标识码:A 文章编号:1009-3044(
期刊
摘要:当移动节点发生切换时,其切换时延和丢包率问题将严重影响实时业务的应用。针对这一问题,该文进行了理论分析并提出了一种基于地址池的层次型移动IPv6 切换算法(APHMIPv6)。该算法与层次型模型相结合,采用基于地址池的有状态地址配置策略以及域间切换时利用隧道机制来提高切换性能。仿真结果表明,该算法能有效地减少移动节点切换时延和丢包率,尤其在域间切换时,性能更加显著。  关键词:移动IPv6;
期刊
摘要:P2P技术是随着互联网发展而迅速崛起的技术。该文描述了P2P技术出现的原因,分析比较了P2P技术与C/S技术,介绍了P2P技术的特点、P2P技术研究的现状,说明了P2P技术的典型应用,客观的交待了P2P技术存在的问题,最后,对P2P未来发展前景进行了展望。  关键词:P2P;网络模型;分布式;流量  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)17-31255
期刊
摘要:为了提高嵌入式系统对于语音信号处理的速度及稳定性,提出了一种由CPLD芯片来完成串行协议和并行协议之间的协议转换系统,给出了硬件框图,并详细介绍了verilog代码,分模块介绍了CPLD的功能结构。并对于设计过程中的问题给出了合理的解决方案。  关键词:CPLD;Verilo;串行协议  中图分类号:TP336文献标识码:A 文章编号:1009-3044(2007)17-31318-02  
期刊
摘要:以结构化的DHT P2P网络作为分布式平台,探讨一种P2P数据库的数据索引和定位机制。我们主要使用数据复制和分层索引机制来保证高效的实现资源定位,并且避免了Hash对数据语义的破坏,使系统有效的保持数据语义间的联系。  关键字: P2P数据库,资源定位,数据复制  中图分类号:TP311.133.1文献标识码:A文章编号:1009-3044(2007)17-31329-01  A Resou
期刊
摘要:本文介绍了基于MSP430F1111a 单片机的一种低功耗主动式RFID标签的设计,对如何解决主动式RFID标签功耗高,使用时间短,性能不稳定的问题进行探讨,详细阐述了主动式RFID标签的低功耗的设计思想、硬件结构和软件的设计方法。  关键词:射频识别,MSP430单片机,低功耗  中图分类号:TN925+.91文献标识码:A 文章编号:1009-3044(2007)17-31336-01 
期刊
摘要:在软件开发过程中,少不了要使用数据库。Access 2000与SQL Server 2000是目前用得比较多的。由于Access 2000使用简单方便,但安全性差,而SQL Server 2000安全可靠,所以在使用数据库开发或升级软件时必须注意到他们存在的区别。  关键词:Access 2000;SQL Server 2000;区别;升级  中图分类号:TP311文献标识码:A 文章编号:
期刊
摘要:随着Internet的迅速增长以及IPv4地址空间的逐渐耗尽,IPv6作为Internet协议的下一版本,对IPv4的取代将不可避免的成为必然。但是,由于IPv6引入了一些新的特性以及IPv4向IPv6过渡期的存在,也带来了一些安全上的新的风险和威胁,同时和传统的IPv4网络相比,一些固有的安全问题仍然没有得到很好地解决,因此,研究基于IPv6的下一代网络安全关键技术将具有重要的现实意义。本
期刊
摘要:多态性是面向对象的重要特性之一,Java中的多态体现在类的继承和实现接口等方面。本文就JAVA语言支持的多态性作了深入全面的探讨,在此基础上,结合例子说明了多态性在程序设计中的应用。  关键词:Java语言;多态性; 类;接口  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)17-31349-01  An Study on Java’s Dynamic Pol
期刊