Ưu điểm và nhược điểm của RMI là gì?Lợi ích và bất lợi của việc sử dụng java rmi
Trả lời
Những ưu điểm và nhược điểm tương tự như của bất kỳ hệ thống RPC nào (gọi thủ tục từ xa). Có một sự xuất hiện bề ngoài của sự đơn giản, bởi vì nó đối tượng đó là trong thực tế từ xa có thể được coi như là chúng được địa phương.
Điều này có vẻ như là một lợi ích lớn cho tính đơn giản của lập trình, nhưng có chi phí ẩn. Các hệ thống phân tán có vấn đề về độ trễ và khả năng thất bại một phần mà lập trình viên phải biết. Một yêu cầu của một phương pháp từ xa là tùy thuộc vào khả năng thất bại từ an ninh, độ trễ vấn đề, mạng thất bại, vv. Papering trên các loại vấn đề có thể là một thảm họa cho độ tin cậy.
Waldo et al. có cuộc thảo luận tốt về các vấn đề.
Từ kinh nghiệm của tôi:
Ưu điểm:
- dễ dàng để bắt đầu
- lớp tải động là rất mạnh mẽ
- Nếu bạn thực hiện một cái gì đó giống như bên dưới, bạn không thể thay đổi phía máy chủ cho một chặng đường dài thời gian và phát triển ứng dụng khách (một ngoại lệ trên máy chủ rmi phải lấy các lớp này trong classpath - vì vậy hoặc là máy chủ trên mạng hoặc bao gồm chúng và xây dựng lại máy chủ)
Bạn có thể thực hiện hai giao diện như thế:
giao diện nhiệm vụ chung:
public interface Task<T extends Serializable> extends Serializable {
T execute();
}
RMI giao diện:
public interface RmiTask extends Remote {
<T extends Serializable> T executeTask(Task<T> task) throws RemoteException;
}
RmiTask
thực hiện trên máy chủ phụ:
public class RmiTaskExecutor implements RmiTask {
public <T extends Serializable> T executeTask(Task<T> task) {
return task.execute();
}
}
Exampl e client Task
thực hiện:
public class IsFileTask implements Task<Boolean> {
final String path;
public IsFileTask(String path) {
this.path = path;
}
public Boolean execute() {
return new File(path).isFile();
}
}
Nhược điểm:
- Có thể là không an toàn, khi sử dụng Dynamic lớp tải (khách hàng phục vụ thực hiện các loại thông qua) - ví dụ bạn biết rằng rmi máy chủ gọi
method()
trênPassedObject
, nhưng khách hàng tuyệt vời có thể ghi đè phương thức này và thực thi bất cứ điều gì anh ta muốn ... - khó thực hiện gọi lại. Nó sẽ hoạt động qua Internet (cần thiết lập kết nối mới từ máy chủ đến máy khách). thông qua NAT/router/tường lửa)
- khi bạn đột nhiên ngắt kết nối trong khi thực hiện phương pháp từ xa, điều này xảy ra là phương pháp này sẽ không trả về (tôi khuyên bạn nên đưa các cuộc gọi rmi vào
Callable
giây và chạy chúng với thời gian chờ xác định).
- 1. Dịch vụ web so với EJB so với RMI, lợi thế và bất lợi?
- 2. Chính xác là lợi ích của việc sử dụng Punjab
- 3. Lợi ích của việc sử dụng một hàm tạo?
- 4. Lợi ích/lợi thế của việc sử dụng Python 3 là gì?
- 5. Lợi ích của việc sử dụng epoll_create1() thay vì epoll_create()
- 6. lợi ích của việc sử dụng directoryperdb trong MongoDB
- 7. Lợi ích của Struts
- 8. Một số lợi thế/bất lợi của việc sử dụng SQLDataReader là gì?
- 9. Lợi ích của việc sử dụng Quản lý giao dịch Springs và sử dụng hibernate
- 10. Bất kỳ lợi ích nào của việc sử dụng CHAR trên VARCHAR?
- 11. Lợi ích của nền tảng Java 64bit
- 12. Những lợi ích/bất lợi của sự hợp nhất được xây dựng?
- 13. những lợi thế và bất lợi của việc thực hiện cuộc gọi ajax bằng cách sử dụng jquery là gì?
- 14. Lợi ích của Mẫu Cầu
- 15. Lợi ích của việc sử dụng enums qua trực tiếp sử dụng các loại tích phân?
- 16. Lợi ích chính của MSMQ
- 17. Lợi ích của JavaScript Prototype
- 18. Chú thích vs XML, lợi thế và bất lợi
- 19. Lợi ích của JCA là gì?
- 20. Lợi ích của việc tạo khung mvc tùy chỉnh
- 21. Lợi ích của Scala là gì?
- 22. lợi thế, bất lợi và khó khăn khi viết một ngôn ngữ để sử dụng .NET
- 23. lợi ích của việc ký dll với tên mạnh
- 24. CMS hướng sự kiện - lợi thế và bất lợi
- 25. HTML5 tag lợi ích
- 26. Lợi ích của việc tước dấu cách trắng ở cuối?
- 27. Lợi ích chính của việc sử dụng Haskell để phát triển web là gì?
- 28. Lợi ích của việc sử dụng các con trỏ chức năng
- 29. Castle Windsor hoặc Spring.NET - lợi thế và bất lợi
- 30. Lợi ích của việc chạy apache như một dịch vụ?
Cảm ơn bạn đã liên kết tới bài báo. Tôi hoàn toàn có thể sử dụng điều này trong luận án của tôi :) – Daff
Cũng nói. Mặc dù tôi đã viết một cuốn sách về RMI nhưng tôi không thực sự là người biện hộ.Nó làm cho mọi thứ trở nên đơn giản, rất đơn giản, và nó làm cho mọi thứ trở nên khó khăn mà thực sự không khó như vậy, ví dụ 'Tôi có nên thử lại không?' – EJP
Không còn liên kết đến "Waldo et al": | –