09/14/15Nạp tập tin từ xa và chính sách bảo mật từ phía máy khách

Một phần của tài liệu code Remote Method Invocation (Trang 30)

Nạp tập tin từ xa và chính sách bảo mật từ phía máy khách

:Với Java tất cả các thao tác kết nối và chép tập tin lạ từ một máykhác về một máy đều phải thông qua lớp bảo vệ G ọi làsecurityManager. Để t ạo lớp b ảo v ệ ta dùng lệnh sau:

Java Simplified / Session 22 / 31 of 45

09/14/15

Nạp tập tin từ xa và chính sách bảo mật từ phía máy khách

:Với Java tất cả các thao tác kết nối và chép tập tin lạ từ một máykhác về một máy đều phải thông qua lớp bảo vệ G ọi làsecurityManager. Để t ạo lớp b ảo v ệ ta dùng lệnh sau:

Java Simplified / Session 22 / 32 of 45

Không phòng vệ

Java đã xây dựng môi trường hỗ trợ lập tình phân tán rất hiệu quả và dễ dàng, bao trùm tất cả các vấn đề về RMI: J2EE – Enterprise Java Bean. J2EE được xây dựng dựa trên nền RMI.

Java Simplified / Session 22 / 33 of 45

•Trong Java, đối tượng được truyền theo tham chiếu còn các kiểu dữ liệu đơn giản như int, char,… được truyền theo tham trị. Truyền theo tham trị . Giá trị của tham số mà hàm hay phương thức xử lý chỉ là bản sao của biến truyền từ ngoài vào.

Truyền theo tham chiếu khi biếnđốitượngđược truy ền vào phương thức nếu bên trong phương thức thay đổi giá trị củađốitượng thì khi lời gọiphương thức chấm dứt giá trị củađốitượng c ũng thay đổi theo

Java Simplified / Session 22 / 34 of 45

09 / 14 / 15

Java Simplified / Session 22 / 35 of 45

Nếuđốitượngball quá lớn việc đóng gói toàn bộđốitương chuyểnđi chuyển lại trên mạng sẽảnhhưởngđến tốcđộ th ực thi củachương trình.Bây giờ chúng ta s ẽ xây dựngchương trình có thể thamchiếu và xử lý trực tiếpđốitượng nằm trên máy khách. Nghĩa làn ếutrình ch ủđược trình khách truy xuất từ xa thì trình kháchcũng được gọi từ xa bởi trình chủ . B ằng cách này trình ch ủ vàtrình khách có thể triệu gọi lẫn nhau

Java Simplified / Session 22 / 36 of 45

09 / 14 / 15

Note: trình khách có thể tham chiếu đến đối tượng của trình chủ: - đối tượng trên máy chủ phải cài đặt lớp giao tiếp Remote - Sinh ra các lớp trung gian Stub và Skeleton

Java Simplified / Session 22 / 37 of 45

09/14/15

Khi trình khách gọi server.callServerMethod() của đối tượng chủ, phương thức này trên máy chủ lại sử dụng và gọi ngược lại phương thức client.callClientMethod() của đối tượng đang chạy trên trình khách. Trước khi gọi callClientMethod() trình chủ thực hiện tính toán (in ra i), kết quả tính toán được chuyển về cho trình khách và trình khach tự động in ra kq.

Do dùng callback nên trình chủ tính toán xong đã chủ động y/c trình khách tiếp nhận kq, nếu ko có callback thì trình khách phải tự canh time để gọi pt trên trình chủ để lấy kq về

Java Simplified / Session 22 / 38 of 45

Tùy thuộc vào hàm thông báo sự hiện diện và khả năng giao tiếp từ xa : UnicastRemoteObject.exportObject() Thì đối tượng sẽ được truyền theo tham chiếu,

Java Simplified / Session 22 / 39 of 45

Việc lưu đối tượng trên đĩa, dữ liệu trên tạp tin là loại dữ liệu tuần tự (trải phẳng đối tượng ra theo thứ tự)

để truyền các đối tượng giữa các máy ảo JVM hoặc dưới dạng các tham số trong lời gọi phương thức từ client tới server hoặc là các giá trị trả về từ một lời gọi phương thức

Java Simplified / Session 22 / 40 of 45

0 9 /1 4 /1 5

Java Simplified / Session 22 / 41 of 45

09/14/15

Trong java cũng cho phép chúng ta lấy về danh sách các đốitượng mà rmiregistry đang nắm giữ . Dướiđây là chương trình tìmhiểudanh sách tên tên cácđốitượngdo rmiregistry nắmgiữ

Java Simplified / Session 22 / 42 of 45

Khi trình khách gọi server.callServerMethod() của đối tượng chủ, phương thức này trên máy chủ lại sử dụng và gọi ngược lại phương thức client.callClientMethod() của đối tượng đang chạy trên trình khách. Trước khi gọi callClientMethod() trình chủ thực hiện tính toán (in ra i), kết quả tính toán được chuyển về cho trình khách và trình khach tự động in ra kq.

Do dùng callback nên trình chủ tính toán xong đã chủ động y/c trình khách tiếp nhận kq, nếu ko có callback thì trình khách phải tự canh time để gọi pt trên trình chủ để lấy kq về

Java Simplified / Session 22 / 43 of 45

09/14/15

Khi trình khách gọi server.callServerMethod() của đối tượng chủ, phương thức này trên máy chủ lại sử dụng và gọi ngược lại phương thức client.callClientMethod() của đối tượng đang chạy trên trình khách. Trước khi gọi callClientMethod() trình chủ thực hiện tính toán (in ra i), kết quả tính toán được chuyển về cho trình khách và trình khach tự động in ra kq.

Do dùng callback nên trình chủ tính toán xong đã chủ động y/c trình khách tiếp nhận kq, nếu ko có callback thì trình khách phải tự canh time để gọi pt trên trình chủ để lấy kq về

Java Simplified / Session 22 / 44 of 45

09/14/15

Trình khách sau khi chuyển kiểu đối tượng về dạng tường minh thì có thể truy xuất đối tượng từ xa theo cách thông thường như cục bộ

Java Simplified / Session 22 / 45 of 45

Java Simplified / Session 22 / 46 of 45

09 /1 4 /1 5

Java Simplified / Session 22 / 47 of 45

Interoperate Internet Object Protocol.

a. Phần cài đặt đối tượng Corba trên máy chủ: - Đặc tả đối tượng X bằng IDL của Corba

- Chuyển đặc tả X thành một ngôn ngữ cụ thể (dùng 1 trình biên dịch tương ứng, ex: idlj.exe -> java; idl2cpp.exe-> C++) - Trình biên dịch sẽ tạo ra lớp _Skel

- Cài đặt đối tượng băng ngôn ngữ (Java) b. Phần kết nối với đối tượng khách:

- Sử dụng IDL của X y/c trình biên dịch tạo ra _Stub (trình biên dịch tương ưng với trình khách)

- Trình khách gọi đối tượng chủ, lời gọi sẽ chuyển đến lớp _Stub, rồi đến trình môi giới ORB. ORB của khách và chủ sẽ giao tiếp với nhau qua IIOP. Tiếp đó ORB trên máy chủ sẽ chuyển lời gọi đến lớp _Skel. Cuối cung đối tượng Corba sẽ thực hiện phương thức của nó được gọi

Java Simplified / Session 22 / 48 of 45

Interoperate Internet Object Protocol.

a. Phần cài đặt đối tượng Corba trên máy chủ: - Đặc tả đối tượng X bằng IDL của Corba

- Chuyển đặc tả X thành một ngôn ngữ cụ thể (dùng 1 trình biên dịch tương ứng, ex: idlj.exe -> java; idl2cpp.exe-> C++) - Trình biên dịch sẽ tạo ra lớp _Skel

- Cài đặt đối tượng băng ngôn ngữ (Java) b. Phần kết nối với đối tượng khách:

- Sử dụng IDL của X y/c trình biên dịch tạo ra _Stub (trình biên dịch tương ưng với trình khách)

- Trình khách gọi đối tượng chủ, lời gọi sẽ chuyển đến lớp _Stub, rồi đến trình môi giới ORB. ORB của khách và chủ sẽ giao tiếp với nhau qua IIOP. Tiếp đó ORB trên máy chủ sẽ chuyển lời gọi đến lớp _Skel. Cuối cung đối tượng Corba sẽ thực hiện phương thức của nó được gọi

Java Simplified / Session 22 / 49 of 45

- Tạo file đặc tả Hello.idl.

- Biên dịch: idlj –fserver Hello.idl - Có 3 file được tạo ra:

- HelloOperation.java: File chuyển đặc tả IDL thành đặc tả interface của Java

- Hello.java: File chuyển lớp giao tiếp đối tượng kiểu Java thành lớp giao tiếp đối tượng đặc thù trong Corba - HelloPOA.java: File chưa lớp cài đặt đối tượng Corba

- Tạo đối tượng Corba Hello: HelloServant.java - Biên dịch: javac *.java

- HelloOperation.class, Hello.class: các lớp trung gian - HelloServant.class: đối tượng corba (kế thừa HelloPOA)

Một phần của tài liệu code Remote Method Invocation (Trang 30)

Tải bản đầy đủ (PPT)

(49 trang)