Sự khác biệt giữa cuộc gọi thủ tục từ xa và dịch vụ web là gì?


80

Có định nghĩa rõ ràng nào về RPC và Dịch vụ Web không? Tìm kiếm nhanh trên wikipedia cho thấy:

RPC: Lệnh gọi thủ tục từ xa (RPC) là một công nghệ giao tiếp giữa các quá trình cho phép một chương trình máy tính thực hiện một chương trình con hoặc thủ tục trong một không gian địa chỉ khác (thường là trên một máy tính khác trên mạng chia sẻ) mà không cần lập trình viên mã hóa rõ ràng các chi tiết cho tương tác từ xa này.

Dịch vụ web: Dịch vụ web thường là giao diện lập trình ứng dụng (API) hoặc API web được truy cập qua Giao thức truyền siêu văn bản và được thực thi trên hệ thống từ xa lưu trữ các dịch vụ được yêu cầu. Các dịch vụ web có xu hướng rơi vào một trong hai phe: Dịch vụ Web lớn [1] và Dịch vụ Web RESTful.

Tôi không hoàn toàn rõ ràng sự khác biệt thực sự giữa hai điều này. Có vẻ như một thứ có thể thuộc về RPC và đồng thời là một loại dịch vụ web.

Dịch vụ Web có phải là đại diện cấp cao hơn của RPC không?

Câu trả lời:


60

Dịch vụ Web có phải là đại diện cấp cao hơn của RPC không?

Vâng, đúng vậy. Dịch vụ web là một triển khai cụ thể của RPC. Ở mức thấp nhất, Dịch vụ Web kết nối với Socket, sử dụng giao thức HTTP, để thương lượng việc gửi tải trọng được thực thi trong một không gian từ xa (không gian từ xa có thể là cùng một máy tính). Tất cả những trừu tượng cuộc gọi từ xa này, về cốt lõi, là RPC.


1
Các thuộc tính khác của Dịch vụ Web ngoài những gì Wayne đã viết: cho phép một RPC độc lập với nền tảng, có thể phát hiện và tự mô tả (so sánh với Win32 RPC).
Alex

6
Không, cái đó không đúng. RPC là một kiểu kiến ​​trúc của một Dịch vụ Web. Một giải pháp thay thế sẽ là REST. Tham khảo: ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5339611
schlamar

@schlamar Dịch vụ web có liên quan gì đến RPC không? Nếu có, chúng tôi có các bản khai máy khách & máy chủ trong môi trường dịch vụ web không?
trao đổi quá mức

8

Tôi thấy câu hỏi này. Câu hỏi đã được đặt ra từ lâu, nhưng tôi nghĩ câu trả lời của bất kỳ ai trong cộng đồng này, cung cấp thêm thông tin và rõ ràng về chủ đề này, sẽ hữu ích cho những người đặt câu hỏi trong tương lai. Vì vậy, tôi muốn thêm phần nâng cao của mình chỉ ra những điểm khác biệt chính và tôi hy vọng, nó sẽ hữu ích cho những độc giả trong tương lai.

------------------------------------------------------------------------------
| Category             |    RPC              |    Web Services
------------------------------------------------------------------------------
|Operation's Location  | On top of TCP       | on top of HTTP Protocol
------------------------------------------------------------------------------
|Data format           | Binary              | Text, XML, JSON, ect.
------------------------------------------------------------------------------
|Speed                 | Slow (Marshalling)  | Fast
------------------------------------------------------------------------------

Tôi chưa đề cập đến các mô tả về RPC và Dịch vụ Web, vì bạn thấy rõ chúng trong câu trả lời của người khác.


5

Cuộc gọi thủ tục từ xa (RPC) và WebService, vì lợi ích của chức năng, cả hai đều đi song song. Nhưng có một sự khác biệt nhỏ trong cách gọi của họ. Một Dịch vụ Web có thể được gọi bởi bất kỳ ứng dụng nào, sử dụng định dạng XML qua giao thức HTTP cho quá trình tố tụng và về bản chất, nó có thể tương tác với nhau, trong khi trong trường hợp RPC, chức năng có thể được gọi bởi nhiều ứng dụng để nó đi theo con đường Tuần tự hóa để lưu trữ dữ liệu đối tượng. Nó hỗ trợ Định dạng nhị phân qua giao thức TCP. Trong một cách tiếp cận tốt hơn, chúng ta có thể tóm tắt quy trình làm việc RPC, giống như chúng ta đang thực thi một chức năng thông qua Socket thích hợp và định dạng thông báo thích hợp, nhưng không biết sự tồn tại thực sự của chức năng cụ thể trong máy chủ khách hàng. cùng một máy chủ chứa chức năng. Nhưng mỗi khi nó cho một cảm giác như chức năng được đặt tại địa phương.


1

• Dữ liệu được định dạng để truyền bằng cách sử dụng XML, cải thiện hoặc loại bỏ việc sắp xếp, hủy quản lý và nhiều yêu cầu khác liên quan đến dịch thuật thường được lập trình viên mã hóa. • Dữ liệu được truyền bằng cách sử dụng các giao thức chuẩn hóa như HTTP hoặc SMTP, đã xuất bản các tiêu chuẩn được xác định rõ. • Dịch vụ cơ bản được tiếp xúc được xác định rõ ràng bằng cách sử dụng một cơ chế được chấp nhận, WSDL. • Dịch vụ được tìm thấy bằng cách sử dụng tiêu chuẩn được xác định rõ ràng, UDDI và ebXML nâng cao hơn.

Cụ thể, WSDL cung cấp một số thông tin chính:

• Định nghĩa về định dạng của các thông báo được truyền giữa hai điểm cuối bằng cách sử dụng các phần tử và của nó và các định nghĩa lược đồ thích hợp. • Ngữ nghĩa của dịch vụ: cách nó có thể được gọi để thực hiện một yêu cầu / trả lời đồng bộ, chỉ trả lời đồng bộ hoặc giao tiếp không đồng bộ. • Điểm cuối và sự vận chuyển của dịch vụ thông qua yếu tố: tức là người cung cấp dịch vụ. • Mã hóa thông qua phần tử, đó là cách dịch vụ được truy cập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.