Cài đặt đối tượng phân tán

5 103 0
Cài đặt đối tượng phân tán

Đang tải... (xem toàn văn)

Thông tin tài liệu

Cài đặt đối tượng phân tán Cài đặt đối tượng phân tán Bởi: Khoa CNTT ĐHSP KT Hưng Yên Giao diện từ xa Khi bạn muốn tạo vật từ xa bạn che mạt nạ cài đặt cách truyền qua giao diện Vậy khách thu đựơc tham chiếu đến đối tượng từ xa thực chất giao diện Khi tạo giao diện từ xa, bạn phải tuân theo hướng dẫn sau: Giao diện từ xa phải giao diện public, tức tạo giao diện từ xa ta phải thêm từ khoá public vào trước định nghĩa giao diện Bằng không, bạn tham chiếu đến đối tượng từ xa bạn thu ngoại lệ Giao diện từ xa phải giao diện kế thừa từ giao diện Remote Mỗi phương pháp giao diện từ xa phải khai báo RemoteException mệnh đề throws bên ngoại lệ khác, tức tất phương thức giao diện từ xa phải ném ngoại lệ RemoteException Nếu tham số truyền cho phương thức giá trị nhận từ thức triệu gọi từ xa đối tượng đối tượng phải triển khai giao diện Remote giao diện Serializable Thông thường bạn thường thấy giao diện từ xa có cấu trúc sau: import java.rmi.*; public interface RemoteInterface extends Remote{ [public] ReturnDataType method1([DataType arg1,][ DataType arg2,…] ) throws RemoteException; [public] ReturnDataType method2() throws RemoteException; } Ví dụ 1-1: Sau giao diện từ xa đơn giản ứng dụng HelloRMI 1/5 Cài đặt đối tượng phân tán HelloRMI.java import java.rmi.*; public interface HelloRMI extends Remote{ public String sayHello() throws RemoteException; } Nhìn vào giao diện ta thấy giống giao diện khác ngoại trừ mở rộng từ giao diện Remote tất phương thức giao diện phải nem ngoại lệ RemoteException, bạn nhớ tất phương thức khai báo giao diện tự động public, nên giao diện bạn bỏ từ khoá public khai báo phương thức sayHello Bạn tiến hành biên dịch javac HelloRMI.java bạn thu tệp tin HelloRMI.class Triển khai giao diện từ xa Sau bạn tạo giao diện từ xa, công việc mà bạn cần phải làm triển khai tất phương thức giao diện từ xa Ví dụ 1-2: Sau cài đặt giao diện từ xa HelloRMI HelloRMIImpl.java import java.rmi.*; public class HelloRMIImpl implements HelloRMI { public String sayHello() throws RemoteException { return "Hello RMI"; } } Vấn đề đặt làm để cài đặt đối tượng HelloRMI lên máy (máy 2) gọi phương thức sayHello() HelloRMI từ máy khác (máy 1)? Như nêu ta không gọi phương thức sayHello HelloRMI cách trực tiếp mà cần có 2/5 Cài đặt đối tượng phân tán thêm hai lớp trung gian HelloRMIImpl_Stub HelloRMIImpl_Skel Dựa vào lớp HelloRMIImpl.class, trình biên dịch rmic.exe Java giúp ta tạo hai lớp trung gian Stub Skel Bạn mở cửa sổ DOS – Prompt gõ vào dòng lệnh Rmic HelloRMIImpl.class Kết bạn thu hai tệp HelloRMIImpl_Stub.class HelloRMIImpl_Skel.class Cài đặt, đăng kí đối tượng từ xa Bước sau bạn cài đặt giao diện từ xa công việc đăng ký với trình rmiregistry theo mẫu sau: Ví dụ 1-4: Ví dụ sau chương trình đăng ký cài đặt đới tượng HelloRMIImpl với trình chủ rmiregistry Setup.java import java.rmi.server.*; import java.rmi.*; import java.net.*; public class Setup { public static void main(String[] args) { // tạo thể đối tượng từ xa HelloRMI h=new HelloRMIImpl(); try { // Khai báo đối tượng có khả triệu gọi từ xa UnicastRemoteObject.exportObject(h); // đăng ký với trình rmiregistry Naming.bind("//localhost/hello”, h); // thay phương thức bind phương thức rebind sau: 3/5 Cài đặt đối tượng phân tán // Naming.rebind("//localhost/hello”, h); } catch (MalformedURLException ex) { } catch (AlreadyBoundException ex) { } catch (RemoteException ex) { } } } Công việc bạn phải làm cài đặt đối tượng từ xa tạo thể đối tượng từ xa HelloRMI h=new HelloRMIImpl(); bạn thay dòng lệnh HelloRMIImpl h=new HelloRMIImpl(); Tiếp theo bạn gọi phương thức tĩnh exportObject lớp UnicastRemoteObject để máy ảo java biết đối tượng h (HelloRMI) đối tượng có khả truy xuất từ xa UnicastRemoteObject.exportObject(h); Lưu ý để sử dụng lớp UnicastRemoteObject bạn phải khai báo import java.rmi.server.*; đầu chương trình Bước cuối bạn đặt cho đối tượng h tên gợi nhớ đẵng ký tên với đăng ký rmiregistry Phương thức tĩnh lớp Naming thực điều Naming.bind("[rmi:]//hostname[:port]/name”, h); Phương thức bind có hai tham số: tham số thứ chuỗi định vị URL, đối số thứ hai thân đối tượng cần đăng ký Chuỗi định vị URL có định dạng sau: 4/5 Cài đặt đối tượng phân tán [rmi:]//hostname[:port]/name Trong đó: • mri tên giao thức,đây phần tuỳ chọn, mặc định giao thức rmi nên bạn bỏ qua • Hostname tên máy chủ địa IP máy chủ nơi đối tượng phân tán tồn • Port số hiệu cổng chương trình rmiregistry, tham số tuỳ chọn, bỏ qua tham số cổng mặc định 1009 • Name tên gợi nhớ đối tượng phân tán Phương thức bind vào vòng lặp vô hạn chờ kết nối từ máy kách Các chương trình phía máy khách dựa vào chuỗi định vị URL mà ta đăng ký với trình rmiregistry để truy tìm tham chiếu đến đối cần dùng Bạn khởi động đăng ký rmiregistry đâu? Bạn mở cửa sổ DOS-Prompt cho chạy chương trình rmiregistry từ dòng lệnh sau: 5/5 ... HelloRMIImpl_Skel.class Cài đặt, đăng kí đối tượng từ xa Bước sau bạn cài đặt giao diện từ xa công việc đăng ký với trình rmiregistry theo mẫu sau: Ví dụ 1-4: Ví dụ sau chương trình đăng ký cài đặt đới tượng HelloRMIImpl... hai tham số: tham số thứ chuỗi định vị URL, đối số thứ hai thân đối tượng cần đăng ký Chuỗi định vị URL có định dạng sau: 4/5 Cài đặt đối tượng phân tán [rmi:]//hostname[:port]/name Trong đó:... địa IP máy chủ nơi đối tượng phân tán tồn • Port số hiệu cổng chương trình rmiregistry, tham số tuỳ chọn, bỏ qua tham số cổng mặc định 1009 • Name tên gợi nhớ đối tượng phân tán Phương thức bind

Ngày đăng: 31/12/2015, 10:39

Mục lục

  • Cài đặt đối tượng phân tán

  • Giao diện từ xa

  • Triển khai giao diện từ xa

  • Cài đặt, đăng kí đối tượng từ xa

Tài liệu cùng người dùng

Tài liệu liên quan