Sự khác biệt giữa RPC và RMI Sự khác nhau giữa

Anonim

RPC và RMI RPC (Remote Procedure Call) và RMI (Remote Method Invocation) là hai cơ chế cho phép người dùng gọi hoặc gọi các quy trình sẽ chạy trên một máy tính khác với máy tính mà người dùng đang sử dụng. Sự khác biệt chính giữa hai là cách tiếp cận hoặc mô hình được sử dụng. RMI sử dụng một khung mẫu hướng đối tượng, nơi người dùng cần biết đối tượng và phương pháp của đối tượng mà anh ta cần phải gọi. Để so sánh, RPC không phải là định hướng đối tượng và không xử lý các đối tượng. Thay vào đó, nó gọi các thủ tục con cụ thể đã được thiết lập.

RPC là một giao thức tương đối cũ dựa trên ngôn ngữ C, do đó kế thừa mô hình của nó. Với RPC, bạn sẽ nhận được một cuộc gọi thủ tục trông giống như một cuộc gọi địa phương. RPC xử lý các sự phức tạp liên quan đến việc chuyển cuộc gọi từ địa phương đến máy tính từ xa. RMI cũng làm điều tương tự; xử lý sự phức tạp của đi cùng với lời kêu gọi từ các địa phương đến máy tính từ xa. Nhưng thay vì đi qua một cuộc gọi thủ tục, RMI chuyển một tham chiếu tới đối tượng và phương thức đang được gọi. RMI được phát triển bởi Java và sử dụng máy ảo của nó. Do đó, việc sử dụng nó chỉ dành cho các ứng dụng Java để gọi các phương thức trên các máy tính ở xa.

Cuối cùng, RPC và RMI chỉ là hai phương tiện để đạt được cùng một điều chính xác. Tất cả đi xuống đến ngôn ngữ bạn đang sử dụng và mô hình mà bạn đang sử dụng. Sử dụng RMI hướng đối tượng là cách tiếp cận tốt hơn giữa hai, đặc biệt với các chương trình lớn hơn vì nó cung cấp một mã sạch hơn và dễ dàng hơn để theo dõi một khi có vấn đề gì đó xảy ra. Việc sử dụng RPC vẫn được chấp nhận rộng rãi, đặc biệt khi bất kỳ giao thức điều khiển từ xa thay thế nào không phải là một lựa chọn.

Tóm tắt:

1. RMI là định hướng đối tượng trong khi RPC không

2. RPC là cơ sở C, trong khi RMI là Java chỉ có

3. RMI gọi các phương thức trong khi RPC gọi hàm

4. RPC bị lỗi thời trong khi RMI là tương lai