AOP.NET有很多值得学习的地方,这里我们主要介绍AOP.NET SOAP,包括介绍XML Web服务连接格式、HTTP-GET和HTTP-POST等方面。SOAP是一个简单的、重量轻的基于XML的协议,用于交换Web上的结构化的和模式化的信息。SOAP的总体设计目标是使它保持尽可能的简单,并且提供最少的功能。这个协议定义了一个不包含应用程序或传输语义的消息框架。因此,这个协议是模块化的并且非常利于扩展。
#T#通过越过标准传输协议,AOP.NET SOAP能利用因特网现有的开放体系结构,并且能够被任何支持最基本的因特网标准的系统所接受。通过越过标准传输协议,SOAP能利用因特网现有的开放体系结构,并且能够被任何支持最基本的因特网标准的系统所接受。你可以看到,基础结构要求支持一个虽然简单但是功能强大的遵从SOAP 的XML Web服务,因为它基本不向现有的因特网基础结构中添加新的内容,然而却有助于访问SOAP构造的服务。
SOAP协议规范由四个主要的部分组成。第一部分定义了一个强制的可扩展信封(envelope)用于封装数据。SOAP信封定义了一条SOAP消息和在SOAP信息处理器之间交换的基本单元。这是这个规格唯一的强制性的部分。AOP.NET SOAP协议规范的第二部分定义了可选数据编码规则用于表示应用程序定义的数据类型和直接图表,以及一个用于序列化非语法数据模型的统一模型。
第三部分定义了一个远程过程调用风格(请求/响应)信息交换的模式。每个SOAP消息都是单向传输。虽然SOAP的根源于RPC,但是它不局限于请求/响应机制。XML Web服务经常联合SOAP消息来实现这样的模式,但是SOAP并不必须使用信息交换模式,并且规格的这个部分是可选的。这个规格的第四部分定义了SOAP和HTTP之间的绑定。然而,这个部分还是可选的。你可以让SOAP和任何转送协议或机制一起协同使用,这些传送协议能够传送SOAP信封,包括SMTP、FTP甚至一个软盘。
XML Web服务连接格式
象DCOM那样的二进制协议由一个去掉专有的通信协议的顶部的方法请求层组成。这样的协议对创建普遍可用的XML Web服务没有帮助。这么说并不是说阻止你们在XML Web服务方案中使用这样的协议,但是使用它们的缺点在于这样的协议依靠它们的底层系统的特定结构,因此限制了潜在客户的增加。
取而代之,你可以构造XML Web服务来协同一个或多个开放协议一起工作,就象HTTP和AOP.NET SOAP的综合使用一样。象你所料想的那样,基础结构要求支持不同的协议。XML Web服务不局限于提供远程过程调用访问。它们还可以被构造来交换结构化的信息,例如采购订单和发货单,并且还可用于自动化和连接内部与外部的业务处理。
HTTP-GET和HTTP-POST
HTTP-GET和HTTP-POST是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语义。每个HTTP-GET和HTTP-POST都由一系列HTTP请求头组成,这些请求头定义了客户端从服务器请求了什么,而响应则是由一系列HTTP应答头和应答数据组成,如果请求成功则返回应答。HTTP-GET以使用MIME类型application/x-www-form-urlencoded的urlencoded文本的格式传递参数。Urlencoding是一种字符编码,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是"%20"。附加参数还能被认为是一个查询字符串。与HTTP-GET类似,HTTP-POST参数也是被URL编码的。然而,变量名/变量值不作为URL的一部分被传送,而是放在实际的HTTP请求消息内部被传送。