概念
WebService可以被定义为一个程序:
WebService 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。
WebService可以被定义为一种技术:
WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
WebService可以被定义为一种标准:
WebService平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写WebService,只要我们可以通过WebService标准对这些服务进行查询和访问。
WebService实现的应用程序便是服务端,而调用API的应用程序是客户端,无论服务端和客户端用哪种语言实现,运行在何种操作系统,都可以成功进行数据交互。
其定义从下至上,我个人倾向于把WebService理解为一种标准,它定义了web上的数据交互方式,无所谓语言,无所谓操作系统平台。
要实现语言平台无关性,WebService需要一种信息表示方式,一种接口调用的方式和一种传输协议,它们都应该是无关于操作系统,无关于开发语言,无关于厂商的。
核心
WebService三要素:
SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询WebService。
SOAP
SOAP协议,也叫简单对象访问协议(Simple Object AccessProtocol),是一种规范,用来定义消息的XML 格式 ,是WebService能够跨语言和操作系统平台的关键。
SOAP协议在RPC上不限于HTTP协议,SOAP 规范的最后一个可选部分定义了包含SOAP 消息 的 HTTP 消息的样式。 HTTP 绑定虽然是可选的,但几乎所有 SOAP 实现方案都支持HTTP 绑定,因为它是SOAP 的唯一标准协议。其实,有些实现方案也支持 MSMQ、MQ 系列、SMTP 或 TCP/IP 传输。
SOAP协议到如今已有二十多年的历史,使用基于XML的数据结构和HTTP(超文本传输协议)的组合定义了一个标准实现。但是XML并没有标准的数据类型,W3C推出了XML Schema(XSD)来解决这个问题。
XML和XSD
可扩展的标记语言是Web service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。
XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,还是64位?这些细节对实现互操作性都是很重要的。W3C制定的XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web service平台就是用XSD来作为其数据类型系统的。当你用某种语言来构造一个Web service时,为了符合Web service标准,所有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。
WSDL
WebService描述语言(WSDL)是一个基于XML(标准通用标记语言下的一个子集)的语言,用于描述WebService及其函数、参数和返回值。
因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。形象地说,它是一张说明书,用以说明WebService提供了哪些接口,接口的定义,比如参数,返回值,还有接口的使用方式。
UUDI
UDDI,Universal Description Discovery and Integration,是统一描述、发现和集成协议。
UDDI计划的核心组件是UDDI商业注册,它使用XML文档来描述企业及其提供的Web Service。
UDDI商业注册提供三种信息:
White Page包含地址、联系方法、已知的企业标识。
Yellow Page包含基于标准分类法的行业类别。
Green Page包含关于该企业所提供的Web Service的技术信息,其形式可能是指向文件或URL的指针,而这些文件或URL是为服务发现机制服务的。
UDDI是一个分布式的互联网服务注册机制,其本质是分布式下服务的注册中心,它的出现是为了加速WebService的推广和互操作能力,只要厂商注册了该服务,需要使用该服务的客户端便可以通过WSDL来调用该服务,同时这是一个行业计划,企业发布其服务接口可以扩大其市场规模与影响力,任何规模的行业或企业都能得益于 UDDI。
原理
未完待续:)

1124





