it-swarm-vi.com

Sự khác biệt giữa XML-RPC và SOAP là gì?

Tôi chưa bao giờ thực sự hiểu tại sao một người triển khai dịch vụ web lại chọn cái này hơn cái kia. XML-RPC thường được tìm thấy trong các hệ thống cũ? Bất kỳ trợ giúp để hiểu điều này sẽ được đánh giá rất cao.

76
Scott Saad

Sự khác biệt?

SOAP mạnh hơn và được các nhà cung cấp công cụ phần mềm ưa thích (MSFT .NET, Java Phiên bản doanh nghiệp, loại đó).

SOAP trong một thời gian dài (2001-2007ish) được coi là giao thức được lựa chọn cho SOA. xml-rpc không quá nhiều. REST là new SOA em yêu, mặc dù đó không phải là một giao thức.

SOAP dài dòng hơn, nhưng có khả năng hơn.

SOAP không được hỗ trợ trong một số nội dung cũ. Ví dụ: không SOAP libs cho classic ASP (mà tôi có thể tìm thấy).

SOAP không được hỗ trợ tốt trong python. XML-RPC có sự hỗ trợ tuyệt vời trong python, trong thư viện chuẩn.

SOAP hỗ trợ chuyển cấp độ tài liệu, trong khi xml-rpc thiên về chuyển giá trị, mặc dù nó có thể chuyển các cấu trúc như cấu trúc, danh sách, v.v.

xm-rpc thực sự là về chương trình chuyển giao bất khả tri ngôn ngữ. Nó chủ yếu đi qua http/https. SOAP tin nhắn cũng có thể đi qua email.

xml-rpc là unixy hơn. Nó cho phép bạn thực hiện mọi việc một cách đơn giản và khi bạn biết những gì bạn đang làm, sẽ rất nhanh để triển khai các dịch vụ web chất lượng, ngay cả khi sử dụng trình soạn thảo văn bản đầu cuối. Làm SOAP theo cách đó là Sở thú; bạn thực sự cần một thứ tốt IDE để làm cho nó khả thi.

Tuy nhiên, biết SOAP sẽ có vẻ tốt hơn trong sơ yếu lý lịch/CV của bạn nếu bạn ganh đua với công việc IT Fortune 500.

xml-rpc có một số vấn đề với các bộ ký tự không phải mã ascii.

XML-RPC không hỗ trợ các tham số được đặt tên. Họ phải theo đúng thứ tự. Không chắc chắn về SOAP, nhưng nghĩ như vậy.

84
Christopher Mahan

Chỉ cần thêm vào các câu trả lời khác, tôi khuyến khích bạn xem xét các biểu diễn văn bản thực tế của các cuộc gọi SOAP và XML-RPC, có lẽ bằng cách bắt một câu bằng Ethereal. Toàn bộ, "XML-RPC là đối số đơn giản hơn "không có ý nghĩa gì nhiều cho đến khi bạn thấy cuộc gọi a SOAP gọi là cực kỳ khó hiểu. Nhiều trang web khá phổ biến ngoài kia ngại ngùng SOAP = như API của họ do chỉ có lượng băng thông sẽ tiêu thụ nếu mọi người bắt đầu sử dụng rộng rãi.

13
bmdhacks

Kate Rhodes có một bài luận tuyệt vời về sự khác biệt tại http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap

5
Dexter