Liên lạc giữa các aglet

Một phần của tài liệu Công nghệ tác tử di động và ứng dụng trong quản lý giám sát mạng (Trang 50)

Các aglet giao tiếp với nhau bằng cách gửi các thông điệp. Điều này cho phép giao tiếp động với tất cả các aglet đã biết và chưa biết. Sự liên lạc dựa trên một lược đồ gọi lại đơn giản, yêu cầu mỗi aglet thực hiện những trình quản lý cần thiết cho mỗi loại thông điệp.

Các thông điệp được gửi bằng cách gọi phương thức gửi thông điệp trên đối tượng proxy. Các đối tượng proxy giúp aglet trong suốt về vị trí với một hạn chế: các đối tượng proxy của các aglet đang di chuyển không hợp lệ. Về mặt liên lạc, aglet nhận thông điệp hiện ở trạm cục bộ hay ở xa không có sự khác biệt. Không đòi hỏi phải sinh ra các lớp proxy, bởi vì tất cả các aglet phải thực hiện cùng trình quản lý thông điệp.

Các thông điệp có thể chứa các đối số là kiểu Java bất kỳ, miễn là kiểu đó thi hành lớp Java.io.Serializable. Các thông điệp nguyên tử (atomic-message) có thể được tạo bằng cách sử dụng các contructor đã thiết kế. Các thông điệp non- atomic với nhiều đối số được kiểm soát như một danh sách các cặp khóa và giá trị. Một thông điệp từ xa không dẫn đến việc truyền bytecode. Một điểm cần chú ý là: các lớp sử dụng trong thông điệp phải được cài đặt sẵn trên cả hai trạm.

ASDK hỗ trợ các loại thông điệp đồng bộ, không đồng bộ và thông điệp quảng bá. Với thông điệp không đồng bộ một tham chiếu đối tượng sẽ được trả về và có thể sử dụng nó để kiểm tra các thông điệp phản hồi. Các thông điệp quảng bá có thể gửi tới tất cả các aglet nằm trong một ngữ cảnh cục bộ đã đăng ký kiểm soát loại thông điệp đó.

Mọi thông điệp đến được lưu trữ trong hàng đợi và sau đó chúng sẽ được xử lý tuần tự từng thông điệp một. Việc này tuần tự hóa việc kiểm soát thông điệp và bảo đảm rằng quá trình xử lý thông điệp hiện thời đã kết thúc trước khi trình xử lý thông điệp của aglet được gọi lần nữa. Quá trình này có thể tuỳ biến để cho phép việc xử lý thông điệp dựa trên mức ưu tiên phụ thuộc vào kiểu của chúng và với các thông điệp đồng bộ với trạng thái của aglet. ASDK cũng định nghĩa sẵn các phương thức được gọi cho một số sự kiện chính (ví dụ khi được tạo, khi nhân bản, khi tới đích đến). Các phương thức này có thể được chồng lấp

bởi lập trình viên Aglets nhằm phản ứng với các sự kiện đặc biệt. Tuy nhiên, việc chuyển tiếp thông điệp và các giao diện triệu hồi động không được hỗ trợ.

ASDK cung cấp một dịch vụ thư mục đơn giản cho các aglet, gồm một danh sách các trạm Aglets có thể được nhận cho ngữ cảnh hiện tại. Do các đối tượng proxy không hợp lệ sau khi aglet mà nó tham chiếu di trú, rất khó để theo vết của các aglet đang di chuyển và thiết lập một kết nối tới aglet ở xa với GUID không rõ (Globally Unique Identifier). Việc tạo các đối tượng proxy cần có URL của trạm Aglets và GUID của các đối tượng.

Một phần của tài liệu Công nghệ tác tử di động và ứng dụng trong quản lý giám sát mạng (Trang 50)