原文:http://blog.sina.com.cn/s/blog_56f9e40c0100069v.html
无线应用协议(Wireless Application
Protocol,WAP)是WAP论坛经过不断努力得到的成果,它提供了一个业界技术规范,以便开发出适用于各种无线通信网络的应用和业务。WAP论坛
的工作范围就是为各种业务和应用制定一系列的技术规范。无线市场正在快速增长,新的用户不断增多,新的业务不断涌现。为了给运营商和生产商提供一个面对先
进业务、多种类业务和快速灵活业务生成的商机,WAP定义了一系列用于传输层、安全层、事务处理层、会话层和应用层的协议。有关WAP体系结构更多的信
息,请参阅“无线应用协议体系结构规范(wreless
Application Protocol Architecture
Specification[WAPARCH])。
作为WAP体系结构组成部分之一的会话层协议叫作无线会话协议(WSP)。WSP为上层的WAP应用层提供了两种会话服务的统一接口,其中一种会话服务是
运行在事务处理层协议WTP之上的基于连接模式的服务,另一种是运行在安全或非安全数据报传输服务之上的无连接服务。有关事务处理和传输服务的更多信息,
请参阅“无线应用协议:无线事务处理协议规范(Wireless
Application Protocol: Wireless Transaction Protocol
Speclrlcation[WAPWTPI])和“无线应用协议:无线数据报协议规范”(Wireless
Application Protocol: Wireless DatagramProtocol
Speclhcation[WAPWDP])。
目前,无线会话协议(WSP/B)提供最适合浏览应用的服务。WSP/B除具有HTTP1.l的功能之外,还增加了新的特性,如长生存期
(Long-Lived)会话、支持对数据的推(PUSH)操作、能力协商机制以及会话的挂起和恢复等等。通过优化,无线会话协议更适用于具有较长延迟的
窄带承载网络。
WSP体系结构概述
无线会话协议WSP是一个在客户端和代理或服务器之间进行远程操作的会话层协议族。
1.参考模型
WAP的分层模型如图1所示。WAP协议和它的各种功能是按照[ISO7498]的样式进行分层的,其中[ISO7498]是国际标准化组织的OSI参考
模型。分层管理实体负责处理协议的初始化、配置和错误状态(例如,由于移动台漫游出服务区而导致的连接失败)等协议自身无法控制的操作。
无线会话协议工作在事务处理和数据报提供的服务之上。安全层是传输层之上的一个可选层,它保留传输服务接口。事务处理、会话和应用管理实体用于提供附加支
持,以便建立安全的上下文和安全连接。但是,WSP协议并不直接提供这些支持。从这个意义上讲,安全层是独立的模块,WSP自身并不需要安全层,而是在
WSP的某些应用中可能需要安全层。
2.WSP/B的功能
在交互工作的客户端和服务器应用程序之间,WSP提供了一种有组织的内容交换方法,特别是提供了以下应用方法:
·建立从客户端到服务器的可靠会话,并按顺序释放会话。
·通过能力协商,对协议功能的共同级别达成一致。
·使用紧凑的编码方法,在客户端和服务器之间交换内容。
·挂起和恢复会话。
目前所定义的服务与协议(WSP/B)最适合
浏览型应用。WSP/B实际上定义了两个协议:一个在事务处理服务之上提供连接模式的会话服务,另一个在数据报报传输服务之上提供不带确认的无连接服务。当不需要可靠的数据传输且不需要确认时,无连接服务是最适合的,它可以在事实上没有建立一个会话的情况下使用。
除基本功能之外,WSP/B还提供以下功能:
·提供了与HTTP1.l相同的功能。
·可扩展的请求-应答方法
·合成对象
·内容类型协商
·交换客户端和服务器的会话报头。
·中断进程中的事务处理。
·用非同步方式把内容从服务器推到用户。
·为同时发生的多个异步事务处理提供协商。
(1)基本功能
WSPI/B的设计核心是二进制格式的HTTP,因此,发送到服务器的请求和传给用户的响应可能包含头(元信息)和数据,它支持由
HTTP1.l定义的所有方法。除此之外,能力协商可以用来支持一系列的扩展请求方法,以便保持对HTTP1.l应用程序的完全兼容。
WSP/B向应用展提供分类的数据传输。HTTP1.l的内容报头用于定义内容类型、字符集编码、语言等,这些定义是可扩展的。然而,对于知名的内容报
头,用紧凑的二进制编码格式定义,可以减少协议的额外开销。WSP/B还规定了一种紧缩的复合数据格式,供复合数据对象各部分的内容报头使用,在语义上它
与HTTP1.l中使用的MIME“多部分/混合”形式的二进制格式是一致的。
WSP/B本身并不解释请求与应答中的头信息。作为会话生成过程的一部分,请求和应答头在整个会话的生存期中保持不变,可以在客户端的服务用户与服务器之
间进行交换。这些报头包括可以接受的内容类型、字符集类型、语言种类。设备容量以及其他的一些静态参数。WSP/B不作修改地传输客户端和服务器的会话报
头以及请求和响应头。
一个WSP/B会话的生存周期与下层传输无关。当一个会话处于空闲状态(Idle)时,为了释放网络资源或节省电池,这个会话可以被挂起。恢复会话可以使用轻量级会话重建协议,这样可以节省结束会话而再重建会话的开销。恢复会话可以在不同的承载网络中完成。
(2)扩展功能
WSP/B允许在同层之间协商扩展能力,这样既可实现高性能、全功能的应用,又可以实现小而简单的基本应用。
为了把头信息(元数据)附着在事务的确认信息上,WSP/B提供了一种可选机制,它允许客户端应用程序把关于整个事务处理的特定信息传回服务器。
WSP/B提供推(PUSH)和拉(PULL)数据传输。PULL源于HTTP1.l的请求/响应机制。同时,WSP/B还为数据传输提供了三种PUSH机制:
·在会话上下文已经存在的情况下,进行确认的数据推操作。
·在会话上下文已经存在的情况下,进行非确认的数据推操作。
·在会话不存在的情况下,进行非确认的数据推操作。
在会话的任何时刻,确认的数据推操作机制允许服务器向客户端推数据,并等待所推出数据已被传输的确认信息。
在会话存在的情况下,非确认的数据推操作可以提供一种类似于可靠数据推进的功能,只是没有确认过程。同时它还可以在无会话
(out-of-session)时产生,在这种情况下,假定有一个默认的会话上下文存在,在不可靠传输的情况下,无会话非确认的数据推操作可以用来发送
单向消息。
WSP/B支持异步请求,这样一个客户端能够同时向服务器发出多个请求,并可以把这多个请求与应答连接合并,变成数目较少的消息,从而提高了空中传输时间利用率。同时,这样做还可以减小客户端对请求的响应时延。
WSP/B把知名报头字段的命名空间划分成报头代码页,每个代码页只能为知名字段命名。定义数量非常有限的编码,这使得他们的表达更加紧凑。对于一个给定
的代码贞,不必担心知名字段的命名标识会被耗尽,因为WSP/B已经规定了从一个报头代码页迁移到另一个报头代码页的机制。