Kiến trúc chương trình

Một phần của tài liệu Luận văn:Sử dụng tác tử di động phát hiện dịch vụ trong các mạng ngang hàng không có cấu trúc potx (Trang 31 - 34)

MATES dựa trên 4 mô hình chính:

- Host Mobility

- Link Connectivity

- Transport

- Agent Behavior

Mỗi mô hình có thểđược liên tưởng như mỗi khối hoặc tương tự như mỗi khối của mô hình OSI. Trong mỗi lần mô phỏng thì mỗi mô hình kể trên được gắn vào một miền. Hình dưới là một vòng mô phỏng

Nguyễn Thị Kim Oanh – K50MTT Trang 32 ĐH Công nghệ - ĐH Quốc Gia HN

a. Hosts và Agents

Đó là 2 thực thể chính của mô hình MATES. Mỗi agent có thể truy vấn trên các host hiện thời đểđiều khiển những agent khác ở host đó, định vịđịa chỉ của host hiện thời hay xác định địa chỉ mạng của các hàng xóm. Một chú ý quan trọng nữa là các agents không tồn tại trên bất cứ host nào trong khi di chuyển giữa các host. Thêm vào đó sự di trú các agent có thể bị lỗi vì một lý do nào đó như host nguồn và host đích nằm ngoài vùng phủ sóng của nhau.

Hai file Host.javaAgen.java cài đặt hai đối tượng trên.

Đối tượng Host có các thuộc tính là

String name; //Tên host

Simulator simulator; //Mô phỏng mà chứa host

Hashtable agents; //Tập các tác tửđang nằm trên host Hashtable agents_by_name; //Tập các tác tử lấy theo tên MobilityModel mobility_model; //Mô hình di chuyển host

CPUSchedulingModel scheduling_model; //Mô hình lập lịch CPU UniqueID uid; //Định danh host

Position position; //Vị trí của host

Color color; //Màu sắc thể hiện trên giao diện

PriorityQueue agent_queue, processed_agents; //Các hàng đợi tiến trình và hàng đợi dành cho tác tử cần xử lý

double radio_range; //Vùng phủ sóng

Host có một số phương thức chính như sau:

Phương thức iterate() lập lịch thời gian cho các tác tử hiện đang nằm trên host dựa trên độưu tiên của mỗi tác tử.

Phương thức addAgent(Agent agent) có nhiệm vụ thêm các tác tử cho host mỗi khi có tác tử tới. Tương tự phương thức removeAgent(Agent agent) sẽ xóa tác tử khỏi danh sách các tác tử trên host khi tác tử này dời khỏi host.

Phương thức getNeighborsICanHear() trả về tập các hàng xóm mà host có thể

Nguyễn Thị Kim Oanh – K50MTT Trang 33 ĐH Công nghệ - ĐH Quốc Gia HN

Agent có các thuộc tính sau:

private String name; //Tên tác tử

protected Host host; //Host mà tác tửđang ở trên đó private UniqueID uid; //Định danh duy nhất

private int priority; //Độưu tiên

private double transmission_size;//Lượng dữ liệu cần chuyển private boolean alive; //Đánh dấu tác tử còn sống hay không

private int migration_timeout; //Thời gian timeout của quá trình di trú private Thread thread = null;

private AgentThread agent_thread;

private long sleep_until_iteration; //Thời điểm tác tử thức dậy sau khi tạm dừng hoạt động private boolean consume_processor; //Nếu là true bộ xử lý cua host sẽ thực thi trong khi tác tử này đang tạm dừng hoạt động

private boolean started; //Đặt là true sau khi hàm iterate() được gọi lần đầu

private boolean die_on_migration_failure; //Kiểm tra tác tử có die trong khi di trú không

Agent cũng có một số phương thức chính như sau:

Phương thức iterate()sẽđược gọi mỗi lần tác tửđược lập lịch để chạy. Phương thức sleep() biểu diễn trạng thái tạm dừng hoạt động của tác tử.

Hoạt động chủ yếu của tác tử là di trú và hàm migrate() dùng để mô tả các hành vi đó của tác tử.

Phương thức getHost() trả về host hiện thời mà tác tửđang ở thăm.

b. Host Mobility Model

Host Mobility Model ra lệnh phương thức di chuyển của host. Sau mỗi khoảng thời gian thì mô hình này sẽ di chuyển host tới một vị trí liền kề nằm trong phạm vi của mô phỏng.

c. Link Connectivity Model

Đây là mô hình chịu trách nhiệm xác định kết nối giữa 2 host. Nó áp dụng

được cả với các mô hình mạng tĩnh và mô hình mạng adhoc. Với mô hình mạng tĩnh thì Link Connectivity Model cơ bản là bảng tra cứu kết nối còn với mạng adhoc

Nguyễn Thị Kim Oanh – K50MTT Trang 34 ĐH Công nghệ - ĐH Quốc Gia HN

thì nó là chức năng định vị host. Nó cũng xác định chất lượng của kết nối giữa các host.

d. Data Transport Model

Mô hình này dùng để xác định số lần một thực thể được gửi đi trên một liên kết cụ thể. Nó thường là một hàm về chất lượng kết nối và kích thước của thực thể.

e. Định tuyến

Tác tửđược thừa nhận là tựđịnh tuyến. Tuy nhiên nó có thể thực thi giao thức

định tuyến trong mô phỏng. Việc này có thể được hoàn thành bởi một tác tử tĩnh trên mỗi host chịu trách nhiệm định tuyến. Khi một tác tử muốn biết chặng tiếp theo trong tuyến đường nó sẽ truy vấn host để điều khiển tác tử định tuyến và truy vấn chính tác tử này cho bảng định tuyến.

f. Thời gian trong mô phỏng

Trong MATES thời gian được mô phỏng bằng các lần lặp. Mỗi lần lặp tương

ứng với một lượng tử thời gian. Mỗi tác tử được cung cấp một luồng riêng để chạy nhưng điều đó không có nghĩa là các tác tử sẽ thực thi nhiệm vụ đồng thời, các luồng được sử dụng để các tác tử có thể tạm dừng thực thi bằng việc ngủ và di trú giữa các host để chờ các khối thực thi khác xong. Tác tử sau đó lại có thể tiếp tục công việc của mình.

Một phần của tài liệu Luận văn:Sử dụng tác tử di động phát hiện dịch vụ trong các mạng ngang hàng không có cấu trúc potx (Trang 31 - 34)