SOAP 的服務發現用的是 UDDI(Universal Description, Discovery, Integration) 統一描述發現集成,相當于一個注冊中心,服務提供方將 WSDL 文件發布到注冊中心,使用方可以到這個注冊中心查找。
UDDI 具有兩項功能:
UDDI 包括用于 SOAP 消息的 XML 模式(它定義一組文檔來描述企業和服務信息)、用于查詢信息和將信息發布到目錄中的一組公共 API 以及用于在同級 UDDI 節點之間復制目錄條目的 API。
UDDI依賴于企業的分布式注冊表及其服務描述,以通用XML格式實現,以管理和實現Web服務的發現。Web服務提供商在UDDI注冊表上宣傳他們的服務,該注冊表管理有關提供商、服務實現和服務元數據的所有信息。在注冊表上組織和編目Web服務允許在企業內部或與外部合作伙伴共享和重用。今天,這些注冊表基于UDDI 3.0規范。
UDDI注冊表為提供商、服務和綁定的三個主節點的中央存儲庫。有兩種類型的注冊機構可供選擇:私人和公共。私人注冊表允許企業在安全的私人環境中發布和測試其內部網絡應用程序。公共注冊表由包含企業及其網絡服務信息的同行目錄組成。私人和公共注冊機構都符合相同的規范。
要構建應用程序,可以使用許多不同的編程語言、架構和平臺。在這些不同的技術之間共享數據是一項挑戰,因為這些技術具有不同的數據格式。SOAP 和 REST 的出現都是為了解決這個問題。
您可以使用 SOAP 和 REST 在不同的應用程序之間構建 API 或通信點。Web 服務和 API 這兩個術語可以互換使用。但是,API 是更廣泛的類別。Web 服務是一種特殊類型的 API。
以下是 SOAP 和 REST 之間的其他相似之處:
您可以使用 SOAP 或 REST 來構建安全、可擴展且容錯的分布式系統。
許多傳統系統可能仍會遵循 SOAP 準則,而在基于 Web 的場景中,REST 常常被視為一種后來居上的替代方法。REST 是一組可靈活實施的準則,而 SOAP 則是具有特定要求(例如 XML 消息傳遞)的協議。
REST API 屬于輕量級 API,因此非常適合較新的環境,例如物聯網(IoT)、移動應用開發和無服務器計算,大部分公共 API(例如 冪簡API Hub上的所有API)都遵循 REST 準則。SOAP Web 服務可提供符合許多企業需求的內置安全性和事務合規性,但同時也會讓它們變得結構繁重,因此更適用于企業內部復雜系統集成。
從技術棧角度進行比較:
SOAP | REST | |
---|---|---|
代表 | 簡單對象訪問協議 | 表述狀態轉移 |
它是什么? | SOAP 是應用程序之間通信的協議 | REST 是一種用于設計通信接口的架構風格。 |
設計 | SOAP API 會公開操作。 | REST API 會公開數據。 |
傳輸協議 | SOAP 是獨立的,可以與任何傳輸協議一起使用。 | REST 只能通過 HTTPS 使用。 |
數據格式 | SOAP 僅支持 XML 數據交換。 | REST 支持 XML、JSON、純文本、HTML。 |
性能 | SOAP 消息較大,這會使通信變慢。 | 由于較小的消息和緩存支持,REST 具有更快的性能。 |
可擴展性 | SOAP 很難擴展。服務器通過存儲先前與客戶端交換的所有消息來維持狀態。 | REST 易于擴展。它是無狀態的,因此每條消息都獨立于之前的消息進行處理。 |
安全性 | SOAP 支持加密,但需要額外開銷。 | REST 支持加密而不影響性能。 |
使用案例 | SOAP 在遺留應用程序和私有 API 中非常有用。 | REST 在現代應用程序和公有 API 中非常有用。 |
如何理解SOA,SOAP,RPC, REST 協議及其之間的關系
SOAP 與 REST 之間有何區別?
了解SOAP、WSDL和UDDI基本概念
WSDL規范解讀
WSDL使用解讀
簡單入門案例
UUDI教程