php學習之道:WSDL詳解(二)_PHP教程

來源:互聯網
上載者:User

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如下





      映射到封裝風格如下:



      ...




















      http://www.bkjia.com/PHPjc/845438.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/845438.htmlTechArticlephp學習之道:WSDL詳解(二) 3.定義服務使用的邏輯訊息 當服務的操作被調用時,服務被定義為訊息交換。在wsdl文檔中,這些訊息被定義mess...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.