RPC vs RMI
RPC (Gọi thủ tục từ xa) và RMI (Gọi phương thức từ xa) 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ô hình hướng đối tượng trong đó người dùng cần biết đối tượng và phương thức của đối tượng mà anh ta cần gọi. So sánh, RPC không hướng đối tượng và không đối phó với các đối tượng. Thay vào đó, nó gọi các chương trình 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 nhận được một cuộc gọi thủ tục trông khá giống cuộc gọi địa phương. RPC xử lý các phức tạp liên quan đến việc chuyển cuộc gọi từ cục bộ đến máy tính từ xa. RMI làm điều tương tự; xử lý sự phức tạp của việc chuyển dọc theo lời gọi từ máy tính cục bộ đến máy tính từ xa. Nhưng thay vì chuyển một cuộc gọi thủ tục, RMI chuyển một tham chiếu đến đố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ó là dành riêng cho các ứng dụng Java để gọi các phương thức trên máy tính từ xa.
Cuối cùng, RPC và RMI chỉ là hai phương tiện để đạt được điều chính xác như nhau. Tất cả đều thuộc về ngôn ngữ bạn đang sử dụng và mô hình 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 bên, đặc biệt là với các chương trình lớn hơn vì nó cung cấp mã sạch hơn, dễ theo dõi hơn khi có sự cố. 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 thủ tục từ xa thay thế nào không phải là một tùy chọn.
Tóm lược:
1.RMI được định hướng đối tượng trong khi RPC không
2.RPC là cơ sở C trong khi RMI chỉ là Java
3.RMI gọi các phương thức trong khi RPC gọi các hàm
4.RPC là cổ xưa trong khi RMI là tương lai