SOAP và WSDL là các tiêu chuẩn cực kỳ phức tạp, có nhiều triển khai hỗ trợ các tập con khác nhau của tiêu chuẩn. SOAP không ánh xạ rất tốt đến một giao diện chức năng nước ngoài đơn giản giống như cách mà XML-RPC thực hiện. Thay vào đó, bạn phải hiểu về các không gian tên XML, các phong bì, các tiêu đề, WSDL, các lược đồ XML, vv để tạo ra các thông báo SOAP chính xác. Tất cả những gì bạn cần làm để gọi một dịch vụ XML-RPC là định nghĩa và điểm cuối và gọi một phương thức trên đó. Ví dụ, trong Ruby:
require 'xmlrpc/client'
server = XMLRPC::Client.new2("http://example.com/api")
result = server.call("add", 1, 2)
Bên cạnh đó XML-RPC, có các kỹ thuật khác mà cũng có thể là đơn giản hơn nhiều và nhẹ, chẳng hạn như XML đơn giản hoặc JSON qua HTTP (thường được gọi là REST, mặc dù điều đó có nghĩa một số cân nhắc thiết kế khác). Lợi thế của một cái gì đó như XML hoặc JSON qua HTTP là dễ sử dụng từ JavaScript hoặc thậm chí chỉ là một trang web câm với một biểu mẫu gửi. Nó cũng có thể được viết dễ dàng từ dòng lệnh với các công cụ như curl. Nó hoạt động với bất kỳ ngôn ngữ nào như thư viện HTTP, thư viện XML và thư viện JSON có sẵn ở hầu hết mọi nơi và ngay cả khi trình phân tích cú pháp JSON không có sẵn, nó rất dễ dàng để viết của riêng bạn.
Edit: tôi nên làm rõ rằng tôi đang đề cập đến cách SOAP khái niệm nặng là, như trái ngược với cân nặng đó là về mặt số lượng thô của dữ liệu.Tôi nghĩ rằng số lượng dữ liệu thô ít quan trọng (mặc dù nó tăng lên nhanh chóng nếu bạn cần xử lý nhiều yêu cầu nhỏ), trong khi trọng lượng khái niệm đó là khá quan trọng, vì điều đó có nghĩa là có nhiều nơi hơn có thể sai, nơi có thể có sự không tương thích, v.v.
Nguồn
2009-03-24 04:29:35
"ai quan tâm đến tải trọng như thế nào trên dây nếu bạn cần libSOAP để xử lý nó": Đó là một nhận xét rất tốt! SOAP thực sự cảm thấy như bạn không thể cố gắng để viết thực hiện của riêng bạn, mặc dù một định dạng tin nhắn IPC không phải rất phức tạp. –