上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.1.3 WSDL、XSD与服务契约
我们说过,契约就是双方或多方就某个关注点达成的一种共识,所以契约总是一个“多边”的概念,涉及两个或更多的参与者。对于服务契约来说,它涉及的参与者就是服务的提供者和服务的消费者,服务的提供者通过服务契约的形式将服务公布出来,服务的消费者通过服务契约进行服务的消费。那么,要保证服务的正常消费,有一个根本的前提:服务的消费者能够正确“理解”服务提供者公布出来的服务契约。
在计算机世界里,看似简单的“理解”二字却不是那么容易的。在过去的几十年中,由于没有一个让不同的厂商都遵循的通行标准,不同的厂商、不同的平台往往采用其自身的标准进行数据的表示,导致跨平台的互操作成为不可能的任务。为此,Microsoft、IBM、BEA等厂商与一些标准组织(比如W3C、OASIS……)携手,花了若干年的时间制定了一组标准,这一标准在今后的一段时间内将会不断地完善,它就是我们熟知的WS-*。
说到数据表示的标准,毫无疑问,XML因其简单、表意能力强,已经成为了事实上的标准。如何来表达通过XML表示的数据结构呢?毫无疑问,XSD是最好的选择。而对于Web服务的描述,它有自己专门的标准,最基本的就是WSDL(Web Service Description Language)。所以,如果希望服务契约被基于不同平台的客户端所理解的话,就应以一种平台无关的标准进行描述,而在WCF中服务契约就是最终可以通过WSDL描述的。