WSDL繫結樣式各種組合優劣勢比較

2021-04-18 07:42:09 字數 2739 閱讀 2467

目前web服務的相關標準是wsdl【web服務描述語言】,一種標準的類似xml

schema的語言,用它來詳細說明web服務和soap【簡單物件訪問協議】,web服務使用的實際的溝通協議就是soap。wsdl 繫結樣式由兩個屬性組合而成:style、use;style可以是rpc/document,use可以是encoded/literal;下面解釋下這4個名詞的意思:

rpc樣式

rpc樣式指定

document樣式

元素之下。沒有任何soap格式化規則規定元素下能包含什麼;它包含的是乙個傳送者和接收者都達成一致的xml文件。

encoded 編碼

如果use的值是」

encoded

」,則每個訊息片段將使用型別屬性來引用抽象型別。通過應用由encodingstyle屬性所指定的編碼樣式,可使用這些抽象型別生成具體的訊息。最常用到的soap編碼樣式是在soap1.1中定義的一組序列化規則,它說明了物件、結構、陣列和圖形物件應該如何序列化。通常,在應用程式中使用soap編碼著重於遠端程序呼叫和以後適合使用rpc訊息樣式。

literal 文字?

如果use

的值是」

literal

」, 則每個片段使用element屬性(對於簡單片段)或type屬性(對於復合片段)來引用具體架構,例如,資料根據指定的架構來序列化,這架構通常使用w3c xml架構來表述。

根據不同的組合,形成了四種繫結模型;另外,還有一種用document模擬rpc樣式的包裝組合也很常見;

rpc/encoded

rpc/literal

document/encoded

document/literal

對於以上5種組合方式,由於document/encoded不被現有平台所支援,在實際中應用很少,所以這裡就暫時不討論該種組合;對於剩下的4種組合,我們結合乙個**和例項來對比下各自的優劣情況;

binding type

advantage/disadvantage

rpc/

encoded

優點:

wsdl檔案的定義遵循直觀和眾所周知的遠端程序呼叫的溝通模式。

操作名顯示在訊息中,因此接收者很容易就把訊息分派給它的實現。

如果你正在你的服務中使用資料圖形或者多型,這是惟一能使用的樣式。

缺點:soap訊息包含的型別編碼資訊就如xsi:type="xsd:int",這些就是一種開銷。

通常驗證soap訊息是很困難的,因為在wsdl shcema中沒有描述。

rpc樣式引起了一種在服務提供者和客戶之間的緊密耦合,任何對介面的更改都會導致服務和客戶間聯絡的中斷。

不被wsi一致性標準所支援。

rpc/

literal

優點:wsdl定義仍然像rpc/encoded樣式一樣簡單直接。

操作名仍然出現在soap訊息中。

把型別編碼從訊息中排除了,因此提公升了吞吐效能。

缺點:服務和客戶之間仍然有緊密耦合。

仍然難以用soap訊息來驗證傳輸的資料。

它也不被wsi一致性標準所支援。 

document/

litaral

優點:在soap訊息中沒有型別編碼資訊。

你總能用任何xml驗證器來驗證訊息,在soap體中任何東西都在schema中有定義。

使用document樣式,規則不是那麼嚴格,還有對xml schema進行增強和更改時不會破壞介面。

如果使用某特殊序列進行多程序呼叫,document 樣式可以保持應用程式的狀態。

document樣式更加適合非同步處理。

許多document-messaging服務能夠選擇文件的dom和sax 兩種處理方式的其中一種,結果就是能最小化在記憶體中的處理。

缺點:wsdl定義變得更加複雜。

在soap訊息中的操作名沒有了,沒有了名稱,把訊息分派給它的實現方法就變得困難或不可能了。 

document/

literal

優點:包含了所有document/literal樣式的優點。

操作名出現在soap訊息中。

缺點:即使wsdl定義變得更加複雜,但仍然有不少缺點。

如果你在web服務中過載了操作,你就不能使用該樣式。 

假設我們需要呼叫的ws的method為:public void mymethod(int x); 各種繫結樣式生成的wsdl/soap片段如下:

binding type

wsdl

soap

rpc/ encoded

5

rpc/ literal

5

document/ litaral

5

5

Vue 屬性繫結 樣式繫結

一 vue如何動態處理屬性?1.v bind指令用法 跳轉2.縮寫形式 跳轉二 v model的底層實現原理分析 三個都是一樣的 一 class樣式處理 1.物件語法 active是class類名,isactive控制樣式動態處理,顯示隱藏,如果還需加類的話,只要在isactive後加,例如 即可....

vue 樣式繫結

vue 樣式的繫結 可以通過 class 或者 style 屬性的繫結來設定。繫結值可以是物件,也可以是陣列 class 的物件繫結 通過繫結class 屬性即 class 然後使用js物件賦給該屬性乙個資料。class 繫結的資料叫 activated,它的值為isactivated.當isact...

vue 樣式繫結

對於樣式大家是不是很熟悉呢?沒有錯就是css 在vue中class也是可以繫結的,是不是很神奇 一 class樣式繫結 1 class物件繫結 class hello world 解析 就是 class 物件 這樣就是物件繫結 2 class陣列繫結 class activated hello wo...