2. 主流消息推送机制的研究2.1 Web Service
Web Service是部署在Web服务器上的软件组件,这种组件拓展了Web的能力。随着Web Service由技术概念到实践应用的不断发展,表明Web服务将是未来应用架构的一个极为重要的模式。尤其是其松耦合性及语言和平台无关性的特点在网格技术、电子商务等领域中的表现最为突出。从传统意义上讲,Web的功能是为人类的信息和功能提供平台,而Web Service作为一种软件组件,提供了一种可以在Web上共享的功能,从而使Web成为一种分布式计算的平台。
Web服务所有的规范都基于XML,继承了XML良好的数据互操作性和可扩展性,与任何平台或编程语言相关的私有数据格式都用标准的、文本格式的XML文档来表示,从而实现了跨平台性和变成语言无关性。
Web服务的所有规范都是开放的,客户与Web服务之间的通信不依赖于任何特定厂家,它基于WSDL(Web Services Description Language)提供对通信接口的描述,因此是松耦合的。
在这种松耦合的组件架构中,服务的实现即业务方法的实现,是可以任意变更的,对客户没有任何影响,因此,客户基于什么样的协议,与Web Service进行可靠的通信就是一个至关重要的环节。
2.1.1 SOAP消息模型
Web服务通过UDDI注册到服务注册中心,Web服务客户端可以到这里发现业务逻辑需要调用的服务,同时,客户端能够获得WSDL文件,WSDL文件是服务的发布者用于对服务进行描述,描述的相关信息包括服务接口、接口地址、访问方式。然后,客户端可以利用相关工具将WSDL文件生成SOAP存根程序,以便使用Web服务。
Web服务客户端根据获得的Web服务信息,使用编程语言编写SOAP客户端程序。客户端利用HTTP、SMTP、FTP、JMS等传输机制将SOAP请求发送到SOAP服务器,SOAP服务器对SOAP请求消息进行解析,调用相应的方法。SOAP服务器接收应用程序返回的结果,并把它包装成一个SOAP响应消息返回给Web服务客户机。
2.1.2 SOAP消息结构
SOAP为在一个松散的、分布的环境中使用XML对等地交换结构化和类型化信息提供了一个简单且轻量级的机制,以独立于各种编程语言或平台的方式来构造消息、处理消息,从而使用不同编程语言编写的程序之间具有互操作性,并能够在不同的操作系统上运行。SOAP不依赖于任何分布式对象体系结构,不提供对象功能的实现。SOAP消息可以在Internet上从一个对象发送到另一个对象,而不必关心对象的类型。尽管SOAP具有这些优势,但是SOAP标准本身正在发展,如果要成为得到普遍支持的工业级标准,SOAP在性能、安全性、可靠性等方面都有待完善。SOAP是基于XML的协议,由4部分组成。
(1) 信封
SOAP信封(Envelope)是SOAP消息的根元素。SOAP信封包含两个子元素:一个是可选择的消息头,另一个是必须的消息体。在Envelope元素中,可以通过XML命名空间定义SOAP消息的版本信息,同样也可以通过命名空间定义编码风格。
(2) 消息头
SOAP消息头是可选的。如果SOAP信封中包含Header元素,那么它必须作为根元素Envelope的第一个子元素出现。SOAP消息头是可扩展的,用户可以自行添加一些用于描述安全性和事务管理的数据。
(3) 消息体
SOAP消息体中包含了SOAP消息的消息内容,因此是必须的元素,不能够省略。SOAP消息体由SOAP消息的最终接收方接收并处理。
SOAP消息体中可以包含任意内容,但SOAP规范定义了两种消息供消息的发送者和接收者使用。
2.1.3 SOAP和传输协议的绑定 基于WCF的消息推送服务研究与实现(3):http://www.youerw.com/jisuanji/lunwen_5903.html