USSD技术
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脚本,并要求该脚本在服务器端进行,即,即