使用WSDL发布WebService(部分)简单对象访问协议学习SOAP语法和使用SOAP发布WSDL

上传人:ji****72 文档编号:39676076 上传时间:2018-05-18 格式:DOCX 页数:16 大小:41.93KB
返回 下载 相关 举报
使用WSDL发布WebService(部分)简单对象访问协议学习SOAP语法和使用SOAP发布WSDL_第1页
第1页 / 共16页
使用WSDL发布WebService(部分)简单对象访问协议学习SOAP语法和使用SOAP发布WSDL_第2页
第2页 / 共16页
使用WSDL发布WebService(部分)简单对象访问协议学习SOAP语法和使用SOAP发布WSDL_第3页
第3页 / 共16页
使用WSDL发布WebService(部分)简单对象访问协议学习SOAP语法和使用SOAP发布WSDL_第4页
第4页 / 共16页
使用WSDL发布WebService(部分)简单对象访问协议学习SOAP语法和使用SOAP发布WSDL_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《使用WSDL发布WebService(部分)简单对象访问协议学习SOAP语法和使用SOAP发布WSDL》由会员分享,可在线阅读,更多相关《使用WSDL发布WebService(部分)简单对象访问协议学习SOAP语法和使用SOAP发布WSDL(16页珍藏版)》请在金锄头文库上搜索。

1、使用使用 WSDLWSDL 发布发布 WebServiceWebService(第二部分)简单对象访问协议(第二部分)简单对象访问协议学习学习 SOAPSOAP 语法和使用语法和使用 SOAPSOAP 发布发布 WSDLWSDL简 单对象访问协议(SOAP)提供了访问远程对象的方法。这样的对象有 JavaBean,EJB 组件,COM 和COM+对象等等。这些对象使用不同的公司, 可能在互联网上随处可见。因此 SOAP 是一种在互联网上交换企业信息的机制。在本文中,笔者将讨论 SOAP 通信的细节,对象如何使用 SOAP 显示其功能, 如何调用SOAP 对象以及如何在 SOAP 感知软件中交换

2、信息。他将演示如何将第一部分中的 WSDL 程序发布为 SOAP 服务,及其远程调用。一SOAP 和 WSDL我 在这个系列的第一部分介绍了 WSDL。WSDL 描述 Web Service 的接口。 Web Service 的拥有者将使用 SOAP 实现这些的接口。因此 WSDL 服务就以 SOAP 服务的形式存在。一旦 Web Service 的用户拥有了 WSDL 文件,他就知道了接口 的详细资料,就可以使用 SOAP 同 Web Service 通信。可以将你通过 WSDL 接口发布的 Web Service 看作对象,它可以通过 SOAP 从互联网上远程访问。既然服务都是对象,必然就

3、会有一些属性跟每个服务及 其行为相关。SOAP 消息是可能工作在 HTTP 上的 XML 文件。 二使用 SOAP 的原因B2B(business- to-business)和 A2A(application-to-application)需要 通信的企业双方的指示以交换其信息。工作流的概念用于 B2B,并贯穿于企业 集成。例如,某个企业调用供应商的服务以满足客户的需求,这就形成了一条垂 直的供应链。有的供应商也会拓展供应联调用其他企业的服 务。显然这类应用软件的交互性极其重要。任一企业都只是实现 SOAP 通信的一 端,而另一端由互联网上的其他人实现。在未来的几年里,企业集成和交互能力将成为

4、软件工程师和企业极具挑战 性的任务。平台依赖性也将是集成和交互能力达成的一大难题。SOAP 是至今为 止最简单的实现企业集成和交互能力的机制。 三SOAP 架构在初步了解了 SOAP 及其作用后,下面我将讨论它的架构以了解其内部的情 况。在图 Figure 1 中,你可以看见下面的组件运用于典型的 SOAP 通信机制中:1 SOAP Client 2 SOAP Service 3 Actual ServiceFigure 1. Components of a typical SOAP communication architecture 下面讨论上面提及的各个实体在架构中的角色。 SOAPSO

5、AP ClientClient SOAP Client 是一个 SOAP 感知机器,它可以产生 SOAP 请求并通过 HTTP 将 SOAP 请求发送给 SOAP Server。SOAP Client 是一种 SOAP 消息。一般来说有两 种 SOAP 消息:SOAP Client 发送给 SOAP Service 的 SOAP 请求消息和 SOAP Service 发送给 SOAP Client 的 SOAP 响应消息。Listing 1 是一个典型 SOAP 请 求消息,而 Listing 2 则是一个典型 SOAP 响应消息。SOAPSOAP ServerServerSOAP Serve

6、r 也是一个 SOAP 感知机器,它可以接受 SOAP Client 发来的请 求并创建合适的响应。加密的响应会发给发出请求的 SOAP Client。在 SOAP Server 内部有三个实体: 1 Service manager 2 Deployed service list 3 XML translatorService manager 管理响应请求的服务。在 Listing 1 中的 SOAP 请求中, 节点包含了服务 的名称。Service manager 会读出 Service Client 向要调用的服务的名称并向 包含 SOAP Service 中所有服务列表的 Deploye

7、d service list 查询是否有该项 服务。如果有 Service manager 就将 SOAP 请求发给 XML translator。XML translator 将 SOAP 请求的 XML 结构转换成程序员用来实现 Actual Service 的 程序语言。XML translator 还将 Actual Service 返回的响应转回 XML 结构的 SOAP 响应。Listing 2 就是一个 SOAP 响应的例子。M1M2M3ActualActual ServiceService在 Figure 1 中标为 Actual Service 的方框显示了 Actual S

8、rrvice 的位置。 服务的实现可能是一个 COM 组件或是一个 JavaBean 组件。XML translator 会 把 XML 结构转换成合适的方法调用。当 XML translator 调用 Actual Srrvice 的方法时,这些方法会执行其功能并返回结果给 XML translator。Figure 1 中连接 XML translator 和 Actual Service 的箭头的两端都在一 个企业里,这意味着同一个组织控制着通信两端的接口。与此相反的是 SOAP Client 和 SOAP Service 穿越了企业的边界。这就是 SOAP 的用途。SOAPSOAP 请

9、求响应机制请求响应机制SOAP Client 传输 SOAP 消息给 SOAP Service 时使用 HTTP 协议传输。 这称为 SOAP 绑定 HTTP.当 SOAP Service 收到消息时,他将消息传给 Service Maneger. SOAP Service 检查 Deployed service list 中是否有 SOAP 消息请求 的服务。如果没有该项服务,他将请求失败的响应发回给 SOAP Client。但如 果有该项服务,就由 XML translator 进行适合的语言转换,访问 actual service 的实现。服务的实现会处理请求并返回结果给 XML tra

10、nslator. XML translator 再将结果转换为 SOAP Client 理解的 SOAP 响应。同样,HTTP 绑定 也用在 SOAP 响应的传输上。SOAPSOAP 绑定绑定 HTTPHTTP当 你将 HTTP 同 SOAP 帮定绑定或是在 HTTP 上操作 SOAP 时,你实际上在 SOAP 请求和响应上添加了 HTTP 头。Listing 1 是典型的 SOAP 请求,而 Listing 3,4,5,6 演示了在 Listing 1 上添加了 HTTP 头的 SOAP 请求。与此类 似的是 Listing 7 演示了在 Listing 2 上添加了 HTTP 头的 SOA

11、P 响应。 当你在 HTTP 上使用 SOAP 时,Content-Type 字段必须为 text/html. 在 Listing 7 中可以看到 Listing 3 的细节。一个使用一个使用 HTTPHTTP 的的 SOAPSOAP 请求请求你可以将 SOAP 联合在 HTTP 的请求方法 POST 上。要发送一个 SOAP HTTP 请求, 你必须在 HTTP 头上提供一个 SOAPAction 字段。 SOAPAction 定义了 SOAP 请求的目的。服务器(例如过滤 HTTP 上 SOAP 请求 消息的防火墙)可以使用 SOAPAction 的值做决定。 HTTP 客户端在发出 SO

12、AP 请求时必须使用 HTTP 头的这个字段。SOAPAction 可以取的值如下所示: SOAPAction:”URI-Reference” SOAPAction:”filename” SOAPAction:” SOAPActionPOST /Vendors HTTP/1.1Host: Content-Type:“text/xml“;Charset=“utf-8“Content-Length: nnnnSOAPACtion:“ Listing 3 在 SOAPAction 中包含了下面的 URI 引用 这个 SOAPAction 说明了两件事:一是 SOAP 发布的详细地址 的方法的名称(

13、#getListOfModels).POST /Vendors HTTP/1.1Host: Content-Type:“text/xml“;Charset=“utf-8“Content-Length: nnnnSOAPAction:“MobilePhoneservice#getListOfModels“图 Listing 4 在 SOAPAction 中包含了一个文件名(MobilePhoneservice#getListOfModels)。MobilePhoneservice 文件必须放 在主机 URI 下(www. M URI 是由 HTTP 头的 host 字段加文件夹名(/Vendor

14、s)组成的。POST /Vendors HTTP/1.1Host: Content-Type:“text/xml“;Charset=“utf-8“Content-Length: nnnnSOAPAction:“图 Listing 5 的 SOAPAction 中包含了一个控字符串(”)。空字符串说明 SOAP 的目标跟主机 URI 相同(www. M /Vendors HTTP/1.1Host: Content-Type:“text/xml“;Charset=“utf-8“Content-Length: nnnnSOAPAction:图 Listing 6 的 SOAPAction 没有值。这

15、表明没有消息的目标的信息。使用使用 HTTPHTTP 的的 SOAPSOAP 响应响应SOAP 响应有两种类型: 成功的 SOAP 操作产生的 SOAP 结果。 不成功的 SOAP 操作产生的 SOAP 错误消息。HTTP/1.1 Content-Type:“text/xml“; Charset=“utf-8“Content-Length: nnnnm1m2图 Listing 7 就是一个从 SOAP 服务返回的有意义的结果。 图 Listing 8 则是一个典型的 SOAP 错误消息。SOAP HTTP 响应在 HTTP 中添加 了通信状态信息的 HTTP 状态码的语义。当处理请求失败时,SOAP HTTP 服务器 必须发出一个包含带有 SOAP 错误元素的 SOAP 消息的 HTTP 500 内部服务错误的 响应。HTTP/1.1 500 I

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号