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 có thường được tìm thấy trong các hệ thống cũ hơn không? Bất kỳ trợ giúp nào trong việc hiểu điều này sẽ được đánh giá rất cao.
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 có thường được tìm thấy trong các hệ thống cũ hơn không? Bất kỳ trợ giúp nào trong việc hiểu điều này sẽ được đánh giá rất cao.
Câu trả lời:
Sự khác biệt?
SOAP mạnh hơn và được nhiều nhà cung cấp công cụ phần mềm ưa thích (MSFT .NET, phiên bản Java Enterprise, đại loại là vậy).
SOAP trong một thời gian dài (2001-2007) được coi là giao thức được lựa chọn cho SOA. xml-rpc không quá nhiều. REST là con cưng của SOA mới, mặc dù nó 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ũ hơn. Ví dụ: không có lệnh SOAP nào cho ASP cổ điển (mà tôi có thể tìm thấy).
SOAP không được hỗ trợ tốt trong python. XML-RPC hỗ trợ rất tốt 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ề truyề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 lập trình chuyển giao ngôn ngữ bất khả tri. Nó chủ yếu đi qua http / https. Thư SOAP cũng có thể được gử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 mình đang làm gì, sẽ rất nhanh chóng để 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à một sở thú; bạn thực sự cần một IDE tốt để làm cho nó khả thi.
Tuy nhiên, biết SOAP sẽ trông đẹp hơn nhiều trong sơ yếu lý lịch / CV của bạn nếu bạn đang cạnh tranh cho một công việc CNTT trong danh sách Fortune 500.
xml-rpc có một số vấn đề với bộ ký tự không phải ascii.
XML-RPC không hỗ trợ các tham số được đặt tên. Chúng phải đúng thứ tự. Không chắc chắn về SOAP, nhưng hãy nghĩ như vậy.
Chỉ để 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 chụp một với Ethereal. Toàn bộ, đối số "XML-RPC đơn giản hơn" không có nhiều ý nghĩa cho đến khi bạn thấy một lệnh gọi SOAP dài đến mức nào. Nhiều trang web khá phổ biến hiện nay né tránh SOAP làm API của họ do chỉ lượng băng thông mà nó sẽ tiêu tốn nếu mọi người bắt đầu sử dụng rộng rãi.
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