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就算。

 

 

web services :是一种基于组件的软件平台,是面向服务的Internet 应用。Web Services 是应用于Internet 的,而不是限于局域网或试验环境。这要求提出的Web Services 框架必须适用于现有的Internet 软件和硬件环境,即服务的提供者所提供的服务必须具有跨平台、跨语言的特性。其次,Web Services 所提供的服务不仅是向人,更需服务于其它应用系统。现有的Web网站也可以认为是面向服务的,但这种服务仅仅可以提供给人使用(只有人类才可以读懂浏览器下载的页面) 。而新一代的Web Services 所提供的服务应能被机器所读懂,例如其它应用程序及移动设备中的软件系统。这样,我们可以看出,Web Services 的发展方向实际上是构造一个在现有Internet 技术上的分布计算系统。

Web Services 框架的核心技术包括SOAP ,WSDL 和UDDI ,它们都是以标准的XML 文档的形式表的。

SOAP:SOAP(simple object access protocal) 是Web services 的通信协议。SOAP是一种简单的、轻量级的基于XML 的机制,用于在网络应用程序之间进行结构化数据交换。SOAP包括三部分:一个定义描述消息内容的框架的信封,一组表示应用程序定义的数据类型实例的编码规则,以及表示远程过程调用和响应的约定。

WSDL:(web services desciption language) WEB服务说明语言。

UDDI:(universal description discovery and integration) 统一描述发现和集成。

提供一种发布和查找服务描述的方法。UDDI 数据实体提供对定义业务和服务信息的支持。WSDL 中定义的服务描述信息是UDDI注册中心信息的补充。

 

 

 

Web Services 的体系架构如图1 所示

  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 的规范之上,这保证了这一体系结构的平台无关性、语言无关性和人机交互性能。

  电子商务和ERP的集成框架。传统的应用系统大都不太灵活,它们都建立在点到点的解决方案的基础上,需要程序员大量的工作和一个比较长的开发周期。造成大量昂贵硬编码的单独应用,这些应用不能很好的集成也不能灵活的适应业务流程的改变。通过第2部分的分析,可以知道,功能组件化并具有良好集成性的Web services可解决这些问题。通过对Web服务平台的研究并结合电子商务和ERP的具体特点,本文提出的框架整体结构如图2所示:


  在该模式中我们不使用传统点到点的集成,而是在原有集成模式的基础上结合Web服务新技术,提出的一种新模式。该集成框架将企业后台的ERP系统和前台的电子商务系统集成到框架中。

  SOAP消息代理是整个框架的信息处理中心,它根据预先定义好的应用消息转换机制将消息转换成目标应用需要的数据并存储到应用消息仓库中。除了保存和转发应用消息之外,消息代理还负责将不同的企业应用所保存的应用数据通过企业模型转化为一致的企业数据,保存到数据库中。

  客户端通过UDDI的标准和机制来搜寻需要的web服务,绑定找到的web服务并使用它提供的服务。另外,框架为企业进一步发展电子商务提供了接口,建立在UDDI基础上的Web services可以完成这一功能。

SOAP:
SOAP协议初级指南 :http://kb.csdn.net/java/Articles/200310/96246973-2b5c-4fd6-aafa-8cb79d780381.html
SOAP协议规范:http://dotnet.chinaitlab.com/XMLWebService/378796_4.html
http://www.microsoft.com/china/msdn/Archives/xml/general/soapinteropbkgnd.asp

UDDI
http://www.microsoft.com/china/windowsserver2003/technologies/webapp/uddi/default.mspx

WSDL
http://www.microsoft.com/China/msdn/Archives/msdnonline/features/articles/wsdl.asp

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用JAX-WS API为CXF Web服务设置SOAP操作的值。 在CXF中,您可以使用javax.jws.soap.SOAPBinding注释来指定SOAP操作的值。例如: ```java @WebService @SOAPBinding(style = Style.DOCUMENT, use=Use.LITERAL, parameterStyle=ParameterStyle.WRAPPED) public interface MyService { @WebMethod(operationName="MyOperation") @WebResult(name="MyResult") public String myMethod(@WebParam(name="MyParam") String param); } ``` 在这个例子中,我们为MyService接口的myMethod方法设置了SOAP操作的名称为"MyOperation",并且为返回值设置了SOAP元素的名称"MyResult"。我们还为方法参数设置了SOAP元素的名称"MyParam"。 如果您想要更直接地控制SOAP操作的值,您可以使用javax.xml.ws.soap.SOAPBinding类的soapAction属性。例如: ```java @WebService @SOAPBinding(style = Style.DOCUMENT, use=Use.LITERAL, parameterStyle=ParameterStyle.WRAPPED, soapAction="urn:myMethod") public interface MyService { @WebMethod(operationName="MyOperation") @WebResult(name="MyResult") public String myMethod(@WebParam(name="MyParam") String param); } ``` 在这个例子中,我们为MyService接口设置了SOAP操作的值为"urn:myMethod"。这个值将出现在生成的WSDL文件中,用于指定SOAP操作的名称。 当您使用CXF来发布Web服务时,您可以使用CXF的配置文件来设置SOAP操作的值。例如,在您的CXF配置文件中,您可以添加以下配置: ```xml <jaxws:endpoint xmlns:tns="http://example.com/myservice" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" name="MyServicePort" implementor="com.example.MyServiceImpl" wsdlLocation="classpath:/META-INF/wsdl/MyService.wsdl" serviceName="tns:MyService" endpointName="tns:MyServicePort" > <jaxws:properties> <entry key="soapAction" value="urn:myMethod"/> </jaxws:properties> </jaxws:endpoint> ``` 在这个例子中,我们将SOAP操作的值设置为"urn:myMethod",并将其作为JAX-WS属性传递给CXF。CXF将在生成的WSDL文件中使用这个值来指定SOAP操作的名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值