你有沒有看到有一個很好的理由來創建一個自定義的二進制休息協議,而不是使用基本的http rest實現?自定義休息協議是基於二進制的而不是基於Http的文本是一件好事嗎?
我目前致力於.Net中面向服務的體系結構框架,負責託管和使用服務。我不希望基於Remoting或WCF等現有框架,因爲我希望完全靈活性和控制來執行自定義優化。
所以我在這裏試圖找到處理這個SOA框架的最佳協議。我喜歡REST和URI的請求/響應無狀態連接性質來定義資源,但我不喜歡HTTP的基於文本的本質。
這裏是我的不喜歡HTTP參數,糾正我,如果我錯了:
首先一個證據,解析文本比分析二進制效率較低。 我更喜歡一個包含內容長度和二進制內容的固定長度的二進制頭文件。
其次,http請求沒有序列號的概念,因此將響應與其請求關聯的唯一方法是用於發送請求和接收響應的套接字連接。 這意味着一次只能有一個待處理的請求用於指定的套接字,因此如果服務使用者想要將多個請求並行發送到服務,則需要向服務器打開多個套接字。 自定義休息協議可以爲請求定義序列號,因此請求和響應將與序列號而不是套接字關聯,並且可能在同一個套接字上並行發送多個請求。 我認爲沒有辦法通過HTTP來實現這一點,它可以使用基於自定義文本的協議來完成,但爲什麼不以二進制爲基礎來獲得性能。
要補充一點背景,我的SOA框架並不需要從非淨消費者的訪問,所以我不知道使用.net二進制格式或其他自定義二進制格式化限制。
那麼我想要一個自定義的二進制休息協議?如果你認爲我錯了,請告訴我你的論點。
謝謝。
感謝您的回答,我會考慮使用靈活的長度標題,這樣可以更容易地構建協議的擴展。 – 2009-10-07 04:01:09