利用ASP实现气象短信USSD接口访问
2010-11-16
作者:任广治 黄善斌 郝东敏 石振彬
来源:电子产品世界
引言
多年来,气象短信业务已成为重要的气象公共服务形式,实用、便捷、权威是其在竞争激烈的信息服务业站稳脚跟的重要因素,它在指导人们生产生活及社会防灾减灾中已经发挥重要作用。因受国家对信息业管理多重限制,用户获取气象短信的方式目前主要靠上行指令的方式,用户需要记住繁琐的指令以及SP特服号码,不方便用户操作,尤其是定制业务,需要二次确认过程,大大增加了用户操作的复杂度。USSD(非结构化补充数据业务)是一种新兴的交互式短信平台技术,通过USSD方式进行操作,直观便捷,用户轻松即可完成相关需求。笔者根据山东移动气象短信平台现状,利用ASP脚本程序与USSD网关进行链接,可以实现数据传输,完成相关业务操作,并根据相关协议要求,将信息内容进行BASE64编码,保证信息下发的安全性。经实际工作测试,系统负载小、运行稳定,同时也是利用成熟的网络技术为气象服务拓宽服务方式和服务领域一种探索和创新。
USSD是一种新兴的交互式短信平台技术[1],它是一种基于全球移动通信系统(GSM)网络的新型交互式数据业务。USSD系统采用面向连接的交互式会话方式 , 可以提供综合性、交互式信息服务的数据业务。USSD、SMS都属于电路承载型的业务,但USSD在会话过程中一直保持无线连接,提供透明管道,不进行存储转发,因此,USSD每次消息发送不需要重新建立信道,就响应时间而言,USSD比短消息的响应速度快,从而提高用户参与交互的积极性。USSD具有如下特点。
功能强。能以对话方式和信息业务菜单方式提供服务。
操作简便。用户无需输入繁琐指令,根据菜单进行操作。直观便利。
高效。在交互式应用中,由于只需建立一次连接,减少了多次建立信令连接的时延,提高了响应速度。
适用范围广。USSD可在目前所有GSM手机上运行并支持漫游功能。
USSD可以开展多种特色业务,利用其交互菜单的功能可以建立多种信息门户服务例如移动银行、金融股票交易、手机话费查询、气象信息查询、收发电子邮件等等。USSD技术单独使用或与目前的SMS、GPRS技术相结合,市场前景十分广阔。
USSD业务流程
USSD业务目前是以山东气象移动短信平台为基础设计实现的。用户进入USSD门户后,根据菜单选择具体业务,USSD门户将向移动96159平台发送请求(96159是山东移动的自有业务平台),96159根据具体请求向SP方[2](气象局就是SP之一)转发,气象短信平台收到请求后,将业务结果生成XML报文,返回给96159平台,再由96159平台打包封装后,提交给USSD门户,最终展示在用户终端上[3](见图1)。其中,传输过程报文采用XML格式,96159平台与SP平台之间采用http短连接方式,而接口模式采取同步请求/响应模式。简而言之,USSD门户负责业务菜单的设计以及用户的交互显示,96159平台在整个USSD处理流程中起到鉴权指令、计费判断的作用,SP平台则负责具体的业务响应和信息处理。
对于用户使用来说,只需要记住USSD业务服务号码(可以保存在手机通讯录里),例如:目前山东移动手机用户通过直接拨打表1所列号码即可获取信息服务。对比传统方式,这样的操作无疑大大提高了执行效率,平均响应时间缩短80%。
ASP脚本程序设计接口
由于气象短信平台后台数据库是SQL SERVER,而ASP程序具有与SQL SERVER数据库良好的访问模式,本身又是脚本程序,精炼灵活,同时ASP在读取、构建XML报文时的技术应用又很成熟[4],综合考虑,选择ASP作为接口程序语言。下面通过代码简要说明asp脚本编写过程。
第一步:首先解析96159平台传递过来的SPServiceAccessReq 请求数据包。
Set ReceivedDoc = server.CreateObject("Msxml2.DOMDocument") ReceivedDoc.load Request
TransactionID=ReceivedDoc.selectSingleNode("//Head/TransactionID").text
……
feemsisdn=ReceivedDoc.selectSingleNode("//Body/Request/FeeMSISDN").text
linkid=ReceivedDoc.selectSingleNode("//Body/Request/LinkID").text
第二步:调用函数,进行数据库查询,此处利用了ASP中的ADO[5]组件。
第三步:将查询结果生成XML包,返回给96159平台。
第四步:USSD门户接收到96159透传的信息包后,进行解析,并将结果响应在用户终端上,最终完成整个交互操作。
BASE64编码实现
Base64[6]是网络上用于传输8Bit字节代码的编码方式,为了将信息进行加密,根据协议要求,需要将返回包XML中的Property字段内容进行BASE64编码。考虑到ASP与Javascript有良好的结合能力,故选择在ASP程序里嵌套Javascript脚本,并要求该脚本在服务器端进行,即,即