Triển khai 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 34 - 36)

Java là ngôn ngữđược MATES sử dụng. MATES đã tận dụng những lợi điểm của ngôn ngữ này như tính đa hình, tính ánh xạ và tính thừa kế. Các mô hình mô tả ở trên giúp cho chương trình mô phỏng mạng ad-hoc một cách khá trực quan và sinh động.

Chương trình chạy trên nền Linux. Để biên dịch chương trình, chuyển đường dẫn vào thư mục chính của chương trình, tại chế độ dòng lệnh gõ make. Các file nguồn sẽ được biên dịch và đóng gói để tiện cho việc thực thi. Class chính của chương trình là Mates nằm trong file Mates.java. Lớp này có nhiệm vụ phân tích dòng lệnh input tạo giao diện nguời dùng thích hợp, và gọi thực thi những thí nghiệm cụ thể.

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

Tất cả nhân của chương trình nằm trong file Simulator.java. Đây là file cài đặt mô phỏng, thực thi các bước lặp và quản lý các tác tử di trú.

Dưới đây sẽ liệt kê một số file quan trọng nhất của chương trình.

File Experiment.java là file cài đặt các thí nghiệm. Các thí nghiệm sẽ chạy các mô phỏng đểđưa kết quả ra giao diện chính.

File Topology.java chứa các mô hình liên quan của mạng, cách thức tạo, cập nhật topo mạng, một số thuộc tính về mạng như bán kính mạng, độ phân bố

dừng…Các thuật toán liên quan tới mạng sẽđược cài đặt trong file này.

GraphicalUserInterface.java là file cung cấp giao diện chính cho chương

trình, xử lý các sự kiện người dùng và các sự kiện của các đối tượng, đưa ra kết quả.

StatisticsPlugin.java lấy kết quả thực thi chương trình để xây dựng một số

hàm tính toán các thông số mạng như mật độ trung bình, đường kính trung bình của topo, bậc trung bình của các host trong topo…

Topo mạng ban đầu hình thành thế nào?

Trong hàm handleInitialize của mỗi thí nghiệm sẽ cốđịnh số lượng host trong mạng sau đó các host sẽ được khởi tạo. Thông tin về host gồm có : tên, vị trí, mô hình di chuyển, gán với simulator nào.

Duyệt danh sách host để add từng host vào mô phỏng.

Trong mô phỏng tại mỗi lần lặp, các host sẽ được move theo mô hình di chuyển đã khai báo. Vậy các host di chuyển thế nào?

- Nếu tập các hướng chưa được cài đặt thì chọn 1 hướng ngẫu nhiên nhỏ

hơn 360 độ.

- Khi đã chọn 1 hướng ngẫu nhiên host sẽ chọn chiều di chuyển: hoặc là xuôi chiều kim đồng hồ, hoặc ngược chiều kim đồng hồ hoặc giữ nguyên hướng đã chọn.

Các host xác định hàng xóm thế nào?

Hàm getCommunicableHosts() trong file Topology.java trả về tập các host mà host đang xét có thể truyền tin tới.

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

Có 2 loại hàng xóm:

- Neighbors host can hear: những hàng xóm có thể gửi tin nhắn tới host

đang xét.

- Neighbors host can talk: những hàng xóm có thể nhận tin nhắn từ host

đang xét.

Trước khi di chuyển, host sẽ lấy danh sách hàng xóm mà nó có thể gửi tin nhắn tới sau đó nó có thể di chuyển ngẫu nhiên về phía trước theo hướng định sẵn và đảm bảo là vẫn ở trong vùng cho phép. Tiếp theo nó tính số host mà nó có thể

gửi thông điệp tới. Nếu kết quả nhỏ hơn trước host sẽ quay trở về vị trí ban đầu.

Mỗi lần lặp của mô phỏng làm những công việc gì?

- Di chuyển tất cả các host - Cập nhật topo mạng

- Các host gọi CPUSchedulingModel để thực hiện thao tác với tác tử. - Di chuyển các tác tửđang trong trạng thái di trú:

+ Lượng dữ liệu cần truyền sẽ giảm đi trong mỗi lần agent di trú thành công. Lượng dữ liệu giảm đi này bằng lượng dữ liệu cần truyền giữa 2 host trong 1 lần iteration. Đồng thời số lần tác tử di trú tăng lên 1

+ Nếu dữ liệu mà các agent mang đi trong quá trình di trú < 0.0 : agent

đã tới thăm host mới và agent sẽđuợc gán cho Host này đồng thời xóa tên agent này trong danh sách các agent đang di trú => sinh sự kiện AgentArrivalEvent(agent, mi.destination, mi.source)

+ Nếu agent đang time out, xét trường hợp agent trong quá trình di trú lỗi thì nó sẽ bị kill, còn nếu không nó sẽ quay trở lại nơi nó đuợc gửi đi.

- Cuối cùng tăng iterate lên 1.

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 34 - 36)