2012-10-22 59 views
3

我已經看到了圍繞這個主題的幾個問題,但沒有真正滿足我的答案。面向服務與面向API的服務

我試圖把我感覺到的東西放在話上,但沒有總能夠清楚地表達它們來說服周圍的人。可能是我錯了。可能是因爲我的理解力不夠深,無法找到合適的論點。

您會如何根據「面向服務的方法」而不是「傳統的」API方法來對比開發中的應用程序?

讓我們在這裏完全清楚,通過服務,我不一定是指Web服務。

以下是我看到的一些差異。請糾正我,如果我錯了:

  • 服務是一個「living thing」,您可以根據給定和明確的協議談話。服務具有自己的運行時,而庫使用應用程序的運行時。您可以將「生物」移動到任意位置
  • 庫允許基於代碼的集成,而服務傳統上使用基於消息的集成(但是,沒有什麼能真正阻止您基於交換消息編寫庫)
  • 服務發現
  • 合同明確,並表示「外」運行代碼
  • 服務是自治的(但在這裏,你可以寫自治的API,你能不能?)
  • 邊界是明確

我在這裏錯過了什麼?還有什麼區別服務和高級API?

回答

1

面向服務的體系結構意味着暴露的接口並不在客戶端運行的同一主機上,服務與客戶端代碼完全分離(鬆散耦合)。您可以通過在同一節點上加載必要的庫並執行代碼來輕鬆調用API。面向服務的體系結構不是定義API,而是專注於功能,多次使用不同的協議訪問相同的功能。

如果有任何可以區分SOA和AOA的東西,我會去尋找鬆散的代碼耦合。

1

您已經介紹了最重要的幾點。我會添加一個:

通常,服務是無狀態的。每個服務請求都是獨立的。這與庫接口相反,您可以在某個序列中進行某些調用以獲得所需的結果。