webservice wsdl和soap

转载路径:http://hi.baidu.com/data2009/blog/item/48557b888d8a21af0e2444f4.html

Web Services 框架的核心技术包括SOAP ,WSDL 和UDDI ,它们都是以标准的XML 文档的形式表的。SOAP 是Web services 的通信协议。SOAP是一种简单的、轻量级的基于XML 的机制,用于在网络应用程序之间进行结构化数据交换。SOAP包括三部分:一个定义描述消息内容的框架的信封,一组表示应用程序定义的数据类型实例的编码规则,以及表示远程过程调用和响应的约定。

  WSDL表示WEB服务说明语言。WSDL文件是一个XML 文档,用于说明一组SOAP消息以及如何交换这些消息。
  UDDI(统一描述发现和集成) 提供一种发布和查找服务描述的方法。UDDI 数据实体提供对定义业务和服务信息的支持。WSDL 中定义的服务描述信息是UDDI注册中心信息的补充。
  Web Services 的体系架构如图1 所示


SOAP ,WSDL 和UDDI
  Web Services 服务提供方通过WSDL(Web Services Description Language) 描述所提供的服务,并将这一描述告知Web Services 注册服务器。注册服务器依据WSDL 的描述,依照UDDI (Universal Description Discovery and Integration) 的协定更新服务目录并在Internet 上发布。用户在使用Web Services 前先向注册服务器发出请求,获得Web Services 提供者的地址和服务接口信息,之后使用SOAP 协议(Simple Object Access Protocol) 与Web Services 提供者建立连接,进行通信。Web Services 的技术主要建立在XML 的规范之上,这保证了这一体系结构的平台无关性、语言无关性和人机交互性能。


webservice 的调用有3种方式
1. httpget  
2. httppost
3. httpsoap

 

SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。RPC的描叙可能不大准确,因为SOAP一开始构思就是要实现平台与环境的无关性和独立性,每一个通过网络的远程调用都可以通过SOAP封装起来,包括DCE(Distributed Computing Environment ) RPC CALLS,COM/DCOM CALLS, CORBA CALLS, JAVA CALLS,etc。

SOAP 使用 HTTP 传送 XML,尽管HTTP 不是有效率的通讯协议,而且 XML 还需要额外的文件解析(parse),两者使得交易的速度大大低于其它方案。但是XML 是一个开放、健全、有语义的讯息机制,而 HTTP 是一个广泛又能避免许多关于防火墙的问题,从而使SOAP得到了广泛的应用。但是如果效率对你来说很重要,那么你应该多考虑其它的方式,而不要用 SOAP。

 

soap 的优点是 可以传递结构化的 数据,而前两种不行。
btw, soap 最终也是使用 HTTP 传送 XML


Web Service、WSDL、SOAP、HTTP的关系
Web Service、WSDL、SOAP、HTTP的概念存在诸多联系,在不同的产品中体现的概念也不一样。本文旨在描述一下其联系 和区别。
WebService 和 WSDL的关系?
Web Service提供一种可被调用的服务,该服务必须通过WSDL定义接口,接口描述了WEB SERVICE 的逻辑定义(types,messages,portTypes)和传输协议(bindings,services)。客户端通过WSDL定义的访问方式和逻辑结构调用该服务。

Web Service和SOAP以及HTTP的关系?

SOAP是简单对象访问协议,定义了一种跨平台的分布式系统通信协议。SOAP需要绑定到更低层次的传输协议(比如, HTTP,RMI,JMS)等。最常用的是HTTP绑定,所以也经常把SOAP的概念和HTTP混在一起说。
比如:W3C定义 ”A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages......"
    
理论上通过WSDL描述的Web Service可以有很多种不同的绑定,但是实际上经常使用SOAP HTTP绑定 (就是采用“SOAP通信协议的HTTP绑定格式”来绑定)。

小结一下,感觉狭义的Web Service肯定是用WSDL/SOAP/HTTP,泛义的Web Service只要用了WSDL就算。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章