2Khái niệm chung a

Một phần của tài liệu Phát triển tư duy thuật giải cho học sinh thông qua dạy học các cấu trúc điều khiển và các dữ liệu cóa cấu trúc tin học 11 (Trang 33 - 35)

sẽ là phần trình bày một cách rõ ràng cụ thể hơn về kỹ thuật này.

- 2Khái niệm chung. a . a

Activation :

Active Remote Object là một Remote Object đã được khởi tạo ban đầu và đã được Export ra JVM trên một hệ thống nào đó. Nghĩa là nó là một Remote Object đã thực sự tồn tại và có thể đáp ứng các yêu cầu từ phía Client JVM.

Passive Remote Object là một Remote Object mà ngay cả việc khởi tạo ban đầu cũng chưa được thực hiện.

Một Object có thể chuyển đổi trạng thái từ Passive thành Active thì Object đó được gọi là Activatable Object.

Hình 19. Activate một Object.

Việc chuyển đổi trạng thái từ một Passive Object thành một Active Object gọi là

Activation. Activation đòi hỏi phải khởi tạo và phải khôi phục lại các trạng thái của Object trước khi nó bị đưa xuống trạng thái Passive(nếu cần). Do đó, một số điều kiện được đặt ra là Activatable Object đó phải có một định danh duy nhất (Activation Identifier). Ngoài ra, khi Activate một Object thì hệ thống còn phải biết nơi chứa Bytecode của Object đó và nếu cần thì người lập trình phải cung cấp cho hệ thống những thông tin về trạng thái của Object đó để hệ thống có thể khôi phục lại trạng thái cần thiết cho Object đó. Vì vậy, khi thực hiện đăng ký một Activatable Object với Registry thì ta phải cung cấp các thông tin này cho Registry bằng cách cung cấp cho Registry một Object, Object này gọi là Activation Descriptor Object. Từ đó, ta có thể thấy với mỗi Activation Identifier tương ứng với một Activation Descriptor Object. Do đó, để có được những thông tin trong Activation Descriptor Object ta chỉ cần có Activation Identifier là đủ.

Nội dung cụ thể của một Actavation Descriptor Object là :

• Group identifier của Object đăng ký(ID này sẽ xác định JVM nào sẽ làm công việc Activate Object tương ứng).

• Tên file .class của Object và cũng là tên class của Object. • URL chỉ đến nơi chứa Bytecode của Object.

. b

Faulting Remote Reference :

Thực chất, khi một Activatable Object A đăng ký với Registry thì một Instance của Stub Class của A sẽ được tạo ra và tồn tại mãi, chú ý là Instance này không bị giải phóng mà Instance này được quản lý bởi Registry. Một phần dữ liệu của Instance này là các thông tin cần thiết cho quá trình Activate một Activatable Remote Object, những thông tin này được đặt một tên chung là faulting remote reference. Lúc này, faulting remote reference sẽ chứa lại các thông tin :

• Persistent handle hay còn gọi là Activation Identifier của Activatable Remote Object A. Chú ý là dùng ID này ta có thể lấy được các thông tin cần thiết.

• Một tham khảo tới Active Remote Object A. Khi Remote Object A này chưa Active thì tham khảo này có giá trị là null, nhưng khi Remote Object A này đã đang ở trạng thái Active thì tham khảo này có giá trị là tham khảo tới Remote Object thực sự. Tham khảo này được gọi tên là transient remote reference.

Hình 20. Faulting Remote Reference.

Vì vậy, khi có một lời gọi hàm tới A thì công việc của hệ thống lúc này là dựa vào các thông tin có sẵn trong Faulting Remote Reference để thực hiện quá trình Activate một Object.

. c

Activator – Activation group :

Thường thì tại mỗi Host làm công việc Activate Object này sẽ có một Activator, Activator này sẽ thực hiện các công việc :

• Lấy các thông tin cần thiết, ví dụ như : tên file Bytecode của Object, vị trí của Bytecode đó(URL path), những dữ liệu đặc tả cho Object …

• Khởi động JVM từ xa (nếu cần vì có thể Remote Object nằm trên một máy từ xa mà JVM chưa được khởi động). Sau đó gửi một yêu cầu Activate Object đến activation group tương ứng trên JVM (từ xa) cùng với những thông tin cần thiết.

Hình 21. Activator – Activation Group.

Thông thường trên mỗi JVM có một Activation group, Activation group là một thực thể đóng vai trò nhận yêu cầu Activate một Object trên Local JVM và trả về tham khảo tới Object thực sự cho Activator.

Một phần của tài liệu Phát triển tư duy thuật giải cho học sinh thông qua dạy học các cấu trúc điều khiển và các dữ liệu cóa cấu trúc tin học 11 (Trang 33 - 35)