第一章 Web Services和 Web Clients简介
IRIS
数据平台支持 SOAP 1.1
和 1.2
(简单对象访问协议)。这种支持易于使用、高效且与 SOAP
规范完全兼容。此支持内置于 IRIS
中,并且可在 IRIS
支持的每个平台上使用。
Web Services简介
创建 Web
服务
在 IRIS
中,可以通过以下任一方式创建 Web
服务:
- 通过一些小的更改将现有类转换为
Web
服务。还需要修改用作参数的任何对象类,以便%XML.Adaptor
可以打包在SOAP
消息中。 - 通过从头开始创建一个新的
Web
服务类。 - 通过使用
SOAP
向导读取现有WSDL
文档并生成Web
服务类和所有支持类型类。
如果已经设计了 WSDL
并且现在需要创建符合它的 Web
服务,则适用此技术(WSDL
优先开发)。
作为 Web
应用程序一部分的 Web
服务
Web
服务必须在您在管理门户中配置的 Web
应用程序中运行。具体来说,在使用 Web
服务类之前,必须定义一个使用包含该类的命名空间的 Web
应用程序。
WSDL
当类编译器编译 Web
服务时,它会为该服务生成 WSDL
,并通过配置的 Web
服务器发布该服务,以方便使用。此 WSDL
符合 WS-I
(Web 服务互操作性组织)建立的基本配置文件 1.0
。在 IRIS 中,WSDL 文档通过特定 URL
动态提供,并自动反映您所做的任何更改Web
服务类的接口(除了运行时添加的标头元素)。在大多数情况下,可以使用此文档生成与 Web
服务互操作的 Web
客户端。
Web Service 架构
要了解 IRIS
Web 服务在默认情况下如何工作,跟踪 Web
服务收到它可以理解的消息(包含 SOAP
消息的HTTP
请求)时发生的事件非常有用。
首先考虑此 HTTP
请求的内容,该请求定向到特定 URL
:
-
HTTP
标头指示HTTP
版本、字符集和其他此类信息。
HTTP
标头必须包含 SOAP
操作,它是指示 SOAP HTTP
请求意图的 URI
。
对于 SOAP 1.1
,SOAP
操作作为 SOAPAction HTTP
标头包含在内。对于 SOAP 1.2
,它包含在 Content-Type HTTP
标头中。
SOAP
操作通常用于路由入站 SOAP
消息。例如,防火墙可以使用此标头来适当过滤 HTTP
中的 SOAP
请求消息。 SOAP
对 URI
的格式或特殊性或其可解析性没有任何限制。
- 请求行,包括
HTTP
方法,例如GET
、POST
或HEAD
。该行指示要采取的操作。 - 消息正文,在本例中是包含方法调用的
SOAP
消息。更具体地说,此SOAP
消息指示要调用的方法的名称以及要用于其参数的值。该消息还可以包含SOAP
标头。
现在让我们检查一下发送此请求时会发生什么:
- 该请求由第三方
Web
服务器接收。 - 由于请求定向到以
.cls
结尾的URL
,因此Web
服务器会将请求转发到Web
网关。 -
Web
网关检查URL
。它将部分URL
解释为Web
应用程序的逻辑名称。网关将请求转发到该Web
应用程序内的适当物理位置(Web
服务的页面)。 - 当
Web
服务页面收到请求时,它会调用其OnPage()
方法。 -
Web
服务检查请求是否包含SOAP
会话标头,如果包含,则恢复适当的SOAP
会话或启动新会话。
注意:此步骤指的是 SOAP
支持所支持的 SOAP
会话。 SOAP
规范没有定义会话标准。但是,SOAP
支持提供了专有的SOAP
会话标头,您可以使用它来维护 Web 客户端和 Web 服务之间的会话,如此处所述。
-
Web
服务解包消息,验证它,并将所有输入参数转换为其适当的IRIS
表示形式。对于每个复杂类型,转换都会创建一个表示复杂类型的对象实例,并使用该对象作为Web
方法的输入。
此处使用 HTTP
标头中的 SOAP
操作来确定方法,从而确定请求对象。
当 Web
服务解包消息时,它会创建一个新的请求对象并将 SOAP
消息导入到该对象中。在此过程中,Web
服务使用编译 Web
服务时创建的生成类(Web
方法处理程序类)。
-
Web
服务执行请求的IRIS
方法、打包回复并构造SOAP
响应,包括SOAP
标头(如果适用)。 -
Web
服务将SOAP
响应(XML
文档)写入当前输出设备。
下图显示了该流程的外部部分:
image.png
网友评论