2009-12-16 70 views
4

我在使用Web API(RESTful服務)訪問遠程基礎設施時遇到了一個爭議。如果你能發表評論,我將不勝感激。來自文章的建議「REST風格的Web服務與」大「Web服務:制定正確的架構決策」 [1]是使用Web API而非臨時集成(la mashup)和快速原型。在[2]中進行的實證研究表明,這些建議是在重新使用現有信息和功能的情況下進行的。但是,通過Web API重新使用基礎架構並不適合臨時集成的任務。我的印象是,基礎架構通常被重用在我所擁有的資源不能很好地滿足我想要解決的問題的場合:大量數據,高帶寬,高併發性。儘管如此,亞馬遜提供了其基礎設施(存儲空間,消息queueuing)均通過遠程訪問:RESTful Web服務是否適合重新使用基礎架構?

  • 傳統SOAP的Web服務(所謂大Web服務)和
  • 光RESTful Web服務(所謂的Web API的) 。

雖然沒有什麼書面無論是客戶端(亞馬遜網絡服務的案例說明)使用大的Web服務或Web的API,亞馬遜提供訪問其infrastracture在網絡的API的形式作爲替代的事實必須有意義。

你知道他們的動機是什麼?你知道任何人們爲了快速成型而重新使用基礎設施嗎?或者也許用於測試?換句話說,如果我想重新使用亞馬遜提供的基礎架構,那麼在什麼樣的情況下,我應該使用哪種API風格的SOAP或REST?

編輯:在這種情況下作爲基礎設施我的意思是:存儲空間,計算能力,互聯網帶寬。因此,我想知道這些資源是否被重新用於臨時整合。


  1. 切薩雷保塔索,奧拉夫齊默爾曼,弗蘭克Leymann,REST Web服務與 「大」 Web服務:做出正確的架構決策,頁805-814,金鵬淮,陳知更鳥,蕭Wuen提問,劉雲浩,衛英馬安德魯·湯姆金斯,張曉東(主編),第17屆國際萬維網論文集會議,ACM出版社,北京,中國,2008年4月

  2. Hartmann,Bjorn & Doorley,Scott & Klemmer,Scott R.,黑客,攪拌,粘貼:瞭解機會主義設計IEEE Pervasive Computing,vol。 7,沒有。 3,46-54(2008)。

回答

2

的關鍵在於認識到使用的版本在瞭解一件事情的謊言 - 如果你需要通過與深嵌的對象層次的網絡進行復雜的操作,那麼您實際上被迫使用Web服務。 REST在執行簡單操作時非常有用,但是複雜的操作不在其職責範圍內。

我通常喜歡將RESTful系統設想爲我可以通過瀏覽器命令欄調用命令來測試的系統。 REST風格的應用程序非常易於測試,通常非常適合通過嘲諷進行測試。

1

我認爲當人們談論利用現有基礎架構與RESTful Web服務時,他們意味着他們可以使用專爲Web設計的現有東西,而不必使用專門爲Web服務構建的軟件。例如,如果我有一個使用REST的Web服務,我可以利用諸如HTTP緩存代理之類的東西,在哪裏可以獲得與SOAP等效的功能,我需要一些專門的東西。

+0

在這種情況下,作爲基礎設施,我的意思是:存儲空間,計算能力,互聯網帶寬。我並不完全相信像這樣的資源被重新用於臨時集成。 – dzieciou

1

REST比SOAP更易於使用。 FWIW,Google不再使用SOAP,它全部是REST。

SOAP的唯一好處是您可以立即獲得對象的使用權。使用REST,您可能需要像JAX-RS這樣的框架爲您創建這些對象,或者手動解析它們。

REST的另一個巨大優勢是,您實際上可以在訪問日誌中看到請求。大多數SOAP請求POST到完全相同的端點,所以確定你想要做什麼很困難。另一方面,REST通常發佈到特定的終端,所以你可以從你的網頁瀏覽器中實際擊中它們而不需要一個漂亮的應用程序。