使用基於Http的訊息代替WebService的資料互動

來源:互聯網
上載者:User

標籤:基於http的訊息

系統間互動的工作,隨著資訊化建設的發展,以及業界對SOA的認識及其帶來的低TOC(總體擁有成本)等優勢,越來越受到資訊化水平較高的使用者的重視。

這裡先拋開SOA這樣的架構規劃,單純就系統間整合的協議進行討論。

系統間的互動或者成為整合(互聯互連),早在資訊化系統誕生的時候,就已經出現,只是並不明顯,或者由於早期開發平台、開發語言等的單一性,這種需求並沒有非常大的爆發出來。

隨著資訊化建設的發展,以及各種不同的開發語言的發展,跨語言的不同業務系統之間的互動,成為了擺在CIO們面前的一個大問題。

早期,為了保證資料或者訊息在不同的業務系統間傳遞的安全、有效、穩定,往往使用基於MQ的Message進行訊息傳遞。這期間IBM的MQ產品,成為跨業務系統資訊互動的重要媒介。但是,使用MQ的前提是,MQ已經提供了針對特定開發語言的API包,如MQ沒有提供,則無法使用。並且,MQ產品本身作為一個商業產品,其成本也是非常高的。由於MQ支援XA事務,因此,其資料傳遞的有效性還是能夠得到保障的。

後來,人們開始探討使用基於RDBMS的“前置機”方式。即需要互動的雙方,使用一個脫離於各自業務系統的“中間資料庫”,將需要讀寫的資料,讀寫入中間資料庫,再進行後續的操作。使用RDBMS的優點是,直接利用關係型資料庫這種支援事務的平台,並且關係型資料庫同樣支援XA事務,保證資料在不同資料庫之間傳遞的有效性。缺點是需要額外處理一套專門的中間表或者中間資料庫,並且有時並不能解決所有的問題。而且,當需要互動的系統超過3個時,每個系統都需要處理多於1個中間表體系,對系統廠商造成大量的工作。

WebService曾經認為是解決異構系統間整合的最佳解決方案,不依賴於第三方任何系統的支援(不需要額外部署專門的MQ或者RDBMS伺服器),大家只需要按照官方的規範,即可完成相互之間的資料互動。但是,webService存在的問題是,使用SOAP需要對訊息進行多層次的封裝,webservice之間進行資料互動的效率受到了嚴重的影響。雖然,webservice能夠互動的資料格式多種多樣,基本也不存在資料格式不支援的情況。但是,webservice的效率及其webservice的逾時等問題,還是困擾了系統廠商。

隨著httpclient的出現,以及JSON等資料格式的大範圍使用,基於http的訊息介面,逐漸被大家所青睞。一方面是因為,直接使用httpclient可以類比瀏覽器的資料操作與封裝;另一方面使用基於http的訊息,可以藉助於http的成熟、可靠、開源的web叢集解決方案來提升總體的效率。還有,就是基於http的訊息格式,幾乎不受任何限制,常規應用的各種訊息格式,基本都能直接使用基於http的訊息進行傳遞。目前,大部分PaaS平台,所提供的API介面,實際上就是使用基於Http的JSON訊息,來進行資料傳遞的。

針對基於http的訊息及WebService的效能問題,筆者曾經做過測試。

在一台配置較低的PC上,同時開啟服務端與用戶端,10000條資料,使用基於http的訊息逐條進行傳遞,從開始傳遞至全部接收並處理完畢,大概需要465秒的時間;而在同一台機器上,使用WebService進行互動,則需要1180秒。整體的效能大概查了接近60%。

因此,筆者大膽猜測,未來隨著基於http進行訊息傳遞的技術逐步完善,以及相關業界標準的進一步完善,一種新的基於http的訊息格式會逐步替代webservice,成為主流。

使用基於Http的訊息代替WebService的資料互動

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.