论文部分内容阅读
摘要:USSD是在GSM短消息系统基础上开发的数据交互技术,采用面向连接,提供透明通道的交互式会话方式,具有比短消息服务更高的传输速率和更强的交互性。文章首先介绍了中国移动通讯USSD应用接口协议的基本原理;为了更好地解决企业级消息交互中的问题,依据功能分层思想,提出了一种USSD应用接口协议的分层解决方案,根据该方案给出了各层的具体实现;并以发送USSD Submit包的流程为例,对协议的核心实现一数据包处理逻辑进行了详细阐述。
关键词:USSD;SP;USSD中心;应用接口协议
0 引言
近年来,短消息业务得到了飞速发展,但是由于采用“存储转发(store-forward)”机制,其应用受到了一定的限制。USSD(Unstructured Supplementary Service Data,非结构化补充数据业务)是在GSM短消息系统基础上开发的数据交互技术,采用面向连接、提供透明通道的交互式会话方式,具有比短消息服务更高的传输速率和更强的交互性。USSD的诸多优点使其成为了一种能够适应大多数普通移动用户大部分日常需求的有效客户服务接入方式。
1 USSD应用接口协议
1.1 网络结构
如图1所示,USSD业务中心可以通过USSD网关为手机用户提供使用梦网业务、访问sP资源的接入手段。USSD业务网关是外部服务提供商(SP)与移动网内USSD中心之间的中介实体,其中,USSD网关与SP交互采用了USSD接口协议。通过USSD服务,手机用户可以使用SP提供的手机支付、股票信息、交通信息(航班时刻、火车时刻、公交行车路线查询等)、话费查询、车主服务(交通违章通知、车牌年检通知、驾驶证年审通知等)、考试成绩查询(中考、高考等)和游戏等服务。
1.2 USSD应用接口协议原理
USSD接口协议与HTTP(Hyper Text Transfer Protocol),FFP(File Transfer Protocol),SMTP(Simple Message Transfer Protocol)等协议一样同处于TCP/IP网络模型的应用层。USSD服务在TCP层必须有惟一对应的端口号,以保证TCP层向应用层的正确提交。协议采用的长连接方式,是指SP与USSDC以C/S方式建立TCP连接,用于双方信息的相互提交。TCP/IP连接建立后,由Client端(SP)发起建立应用层连接,然后进行数据传输。当信道上没有数据传输时,客户端应发送链路检测包以维持此连接,服务端如果在一定时间内未收到客户端的数据则断开此连接。
2 USSD接口协议的分析和设计
对于处于应用层的这样一个协议,为了减少程序编写的复杂性,采用了分层的方式来组织,如图2所示,每一层都建立在下层之上,目的都是向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层屏蔽。从移动运营商USSD服务器送来的信息,经过USSD代理层,USSD扩展层的解析和处理,最后交给USSD应用逻辑层;从USSD应用逻辑层发出的内容,经过USSD扩展层和USSD代理层的处理和封装,最后由移动运营商的USSD服务器发送到用户手机。
3 协议的分层实现
3.1 USSD代理层
最底层是USSD代理层,主要功能包括封装数据包、建立TCP/IP连接、登录服务器、启动接收线程、启动链路检测线程、网络自动监测及连接。这一层可以分为四个功能模块:Socket_Api、USSD_PDU、USSD_Session和USSDProxy_Api。其中前三个模块为第四个模块服务。Socket_API完成具体的网络通信,利用Java中已有的Socket类即可达到设计目的,即完成传输层及底层协议的工作。
关键词:USSD;SP;USSD中心;应用接口协议
0 引言
近年来,短消息业务得到了飞速发展,但是由于采用“存储转发(store-forward)”机制,其应用受到了一定的限制。USSD(Unstructured Supplementary Service Data,非结构化补充数据业务)是在GSM短消息系统基础上开发的数据交互技术,采用面向连接、提供透明通道的交互式会话方式,具有比短消息服务更高的传输速率和更强的交互性。USSD的诸多优点使其成为了一种能够适应大多数普通移动用户大部分日常需求的有效客户服务接入方式。
1 USSD应用接口协议
1.1 网络结构
如图1所示,USSD业务中心可以通过USSD网关为手机用户提供使用梦网业务、访问sP资源的接入手段。USSD业务网关是外部服务提供商(SP)与移动网内USSD中心之间的中介实体,其中,USSD网关与SP交互采用了USSD接口协议。通过USSD服务,手机用户可以使用SP提供的手机支付、股票信息、交通信息(航班时刻、火车时刻、公交行车路线查询等)、话费查询、车主服务(交通违章通知、车牌年检通知、驾驶证年审通知等)、考试成绩查询(中考、高考等)和游戏等服务。
1.2 USSD应用接口协议原理
USSD接口协议与HTTP(Hyper Text Transfer Protocol),FFP(File Transfer Protocol),SMTP(Simple Message Transfer Protocol)等协议一样同处于TCP/IP网络模型的应用层。USSD服务在TCP层必须有惟一对应的端口号,以保证TCP层向应用层的正确提交。协议采用的长连接方式,是指SP与USSDC以C/S方式建立TCP连接,用于双方信息的相互提交。TCP/IP连接建立后,由Client端(SP)发起建立应用层连接,然后进行数据传输。当信道上没有数据传输时,客户端应发送链路检测包以维持此连接,服务端如果在一定时间内未收到客户端的数据则断开此连接。
2 USSD接口协议的分析和设计
对于处于应用层的这样一个协议,为了减少程序编写的复杂性,采用了分层的方式来组织,如图2所示,每一层都建立在下层之上,目的都是向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层屏蔽。从移动运营商USSD服务器送来的信息,经过USSD代理层,USSD扩展层的解析和处理,最后交给USSD应用逻辑层;从USSD应用逻辑层发出的内容,经过USSD扩展层和USSD代理层的处理和封装,最后由移动运营商的USSD服务器发送到用户手机。
3 协议的分层实现
3.1 USSD代理层
最底层是USSD代理层,主要功能包括封装数据包、建立TCP/IP连接、登录服务器、启动接收线程、启动链路检测线程、网络自动监测及连接。这一层可以分为四个功能模块:Socket_Api、USSD_PDU、USSD_Session和USSDProxy_Api。其中前三个模块为第四个模块服务。Socket_API完成具体的网络通信,利用Java中已有的Socket类即可达到设计目的,即完成传输层及底层协议的工作。