> 백엔드 개발 > PHP 튜토리얼 > php学习之道:WSDL详解(二)_PHP教程

php学习之道:WSDL详解(二)_PHP教程

WBOY
풀어 주다: 2016-07-13 10:22:52
원래의
888명이 탐색했습니다.

php学习之道:WSDL详解(二)

3.定义服务使用的逻辑消息

当服务的操作被调用时,服务被定义为消息交换。在wsdl文档中,这些消息被定义message元素。这些消息由称之为part元素的部分组成。

一个服务的操作,通过指定逻辑消息的方式来定义。当操作被调用时,逻辑消息被交换。(也就是说,逻辑消息代表了服务的操作)这些逻辑消息,将在网络上传输的数据定义为xml文档。他包含了所有的参数,这些参数是方法调用的一部分。(也就是说,逻辑消息里的参数,是操作对应方法的参数集合)

消息和参数列表:每一个被服务暴露的操作能且仅能有一个输入消息和一个输出消息。输入消息定义当操作被调用时,服务接受的所有消息。输出消息定义的是,当操作完成时服务返回的所有消息。fault消息定义的是服务返回错误时的数据。

另外,每个操作可以有一定数量的fault消息。这个fault消息定义了当服务发生错误时返回的数据。这些消息通常有一个部分,该部分提供足够的信息来让消费者知道错误是什么。

消息设计用于集成固有系统:如果你将已经存在的应用程序定义为一个服务,你必须确保方法(实现操作的方法)中使用到的每个参数都能够在消息中找到对应。你必须确保返回值也在操作的输出消息中。

定义你的消息的一个方法是:RPC风格。当使用RPC风格时,你使用给每个在参数列表中的参数定义一个part。每个消息part是基于在types中顶一个的type。

你的输入消息为每个输入参数对应一个part,同样输出消息为每个输出参数对应一个part。另外增加个part来对应返回值。如果一个参数既是输入,又是输出,那么它即作为输入又作为输出消息列出来。

RPC风格的消息定义是当服务使能存量系统时有用。它使用类似于TIBCO或者CORBA的模式传输。这些系统围绕着过程和方法来设计。正是由于这样,他们是最容易使用消息来建模。RPC风格也是服务和应用程序之间的映射清晰化。

为SOAP服务设计消息:当RPC风格用于建模存量系统,但是服务协会强烈地喜欢包装文档风格。在包装文档风格中,每个消息有一个part。这个消息的part参考了一个包装元素,该元素定义在types元素中。包装元素有如下特性:

  • 他是一个包含一系列元素的复合类型
  • 如果是一个输入消息的包装器,则:它的每个元素对应一个输入参数;他的名字,他的名字与相关的操作名相同。
  • 如果是一个输出消息的包装器,则:它的每个元素对应输入参数,也对应输出参数。它的第一个元素代表了方法返回值。他的名字将通过增加Response到与之想关联的包装器的操作的名字上。

    消息命名:每个消息都在其命名空间中有唯一名字,建议使用下面的命名规则:

    • 消息应该被单一操作使用
    • 输入消息名是在操作名后增加Request
    • 输出消息名是在操作名后增加Response
    • 错误消息名是在错误原因后加fault

      消息部件:消息部件是逻辑消息最常用的单元。每个part被定义,用part元素。并且通过name属性,用type属性或element属性来指定数据类型。

      消息允许重用part名。对于一个实例来说,如果一个方法有一个参数:foo,他被应用或者通过in/out传递,他能够作为一个Part存在于请求或者应答消息中。如下例:






      例子:假设你有一个服务器存储了个人信息并且提供一个方法,该方法换回雇员的数据,基于雇员ID.。该方法如下:

      personalInfo lookup(long empId)

      被映射到RPC风格的WSDL如下





      映射到包装风格如下:



      ...




















      www.bkjia.comtruehttp://www.bkjia.com/PHPjc/845438.htmlTechArticlephp学习之道:WSDL详解(二) 3.定义服务使用的逻辑消息 当服务的操作被调用时,服务被定义为消息交换。在wsdl文档中,这些消息被定义mess...
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿