我的雲端生活網 - Life+

Monday, November 3, 2008

SOAP訊息的重用

SOAP是使用XML的通訊協議,傳遞的訊息有相當結構性質。而SOAP一般的缺點是,將程式物件的結構(圖結構或樹結構)拼合為訊息的線狀結構非常耗時。這種特性可以理解,例如 ASP 的 VBScript 字串連接符號 & ,與 Haskell 的字串附加運算符號 ++ ,都是惡名昭彰地拖延效率。

有研究指出, SOAP 所傳輸的訊息經常重複,因此只要將舊訊息多多重用,就能夠加強效率。考慮二則訊息的比對,結果是以下四種情況的其中一種:

  1. 完全符合:內容直接符合。
  2. 良好的符合:結構與長度符合,但資料有些不同。
  3. 部份符合:結構符合,但長度和資料不同。
  4. 不符合:結構不符合。

完全符合的訊息可 100% 重用,而不符合則必須照舊建立新訊息。而前後二訊息有資料和長度的若干不同,則可藉由將長度補足為相同,在將差異的局部加以修改,就能節省若干重建結構的時間。

程式細節上,要將一段 SOAP 訊息作大小幅度修改,有若干技巧如劃塊預存(chunking)、平移(shifting)與偷遞(steeling)等等,進而作聰明的編輯距離(editing distance)規劃,實作者必須多研究、演練並加強。

相關文獻

  1. Suhyun Kim, Daeyoung Kim, Jongwoo Sung and Tomas Sanchez Lopez. Template based high performance ALE-TSOAP message communication. Fifth International Conference on Software Engineering Research, Management and Applications, pp.534-541, 2007.
  2. Nayef Abu-Ghazaleh, Michael J. Lewis, Madhusudhan Govindaraju. Differential serialization for optimized SOAP performance. Proceedings of 13th International Symposium on High Performance Distributed Computing, pp.55-64, 2004.
  3. Nayef Abu-Ghazaleh, Michael J. Lewis, Madhusudhan Govindaraju. Performance of dynamic resizing of message fields for differential serialization of SOAP messages. Proceedings of the International Symposium on Web Services and Applications, pp.783-789, 2004.

No comments:

Blog Archive