3.1.1. Khảo sát các công cụ mô phỏng
Việc nghiên cứu, đánh giá hiệu quả tiết kiệm năng lượng của các giao thức định tuyến trên một mạng cảm biến thực tế gặp nhiều khó khăn. Một hướng giải quyết phổ biến là xử dụng chương trình mơ phỏng [11].
Mơ phỏng là việc biểu diễn một hệ thống thực chỉ bằng các phần mềm ngoại tuyến, phù hợp với mơi trường nghiên cứu lý thuyết, cần có khả năng mở rộng và có kinh phí đầu từ nhỏ. Các công cụ để xây dựng mô phỏng có rất nhiều. Tùy thuộc vào nhu cầu cụ thể và mơi trường áp dụng mà có thể xử dụng nhiều loại cơng cụ mơ phỏng khác nhau. Việc lựa chọn cơng cụ thích hợp ln giữ một vai trị quan trọng trong q trình phát triển mơ phỏng.
Có hai phương thức xây dựng mô phỏng hay được lựa chọn. Phương thức thứ nhất là xây dựng chương trình mơ phỏng từ đầu (hồn tồn tự xây dựng trên mã nguồn). Còn phương thức thứ hai là xây dựng dựa trên các môi trường mơ phỏng dựng sẵn (có sẵn một số chương trình phần mềm cơ bản được thiết kế dưới dạng module/lớp, khi cần có thể tự mở rộng dựa trên mã nguồn hoặc kết hợp các module theo nhu cầu. Mỗi phương thức có những ưu điểm, nhược điểm riêng và đều có thể phù hợp tùy thuộc vào mức độ phức tạp và phạm vi của bài tốn mơ phỏng.
Phương thức phát triển mơ phỏng từ các chường trình mã nguồn bậc cao phù hợp với việc kiến tạo những chương trình đơn giản ít mất thời gian, cịn nếu muốn có được những chương trình cụ thể theo yêu cầu thì sẽ mất nhiều thời gian và cơng sức của người lập trình. Do khơng hướng theo những nhiệm vụ mơ phỏng nên những chương trình kiểu này khó đạt được những mục tiêu như mơ tả tồn bộ hệ thống ở độ chi tiết nhất và mô tả tồn bộ những cơng việc liên quan tới mơ phỏng.
Tuy nhiên, vì các ngơn ngữ lập trình bậc cao cho phép xây dựng chương trình theo yêu cầu nghiên cứu, nên sản phẩm thu được sẽ có hiệu năng khả quan cao nhất. thơng thường, lựa chọn phương pháp này có thể sẽ bị hạn chế và chậm, đặc biệt với những người chưa có nhiều kinh nghiệm lập trình.
Hiện nay, có rất nhiều mơi trường mơ phỏng đã dựng sẵn, phục vụ cho những nghiên cứu về mạng, đặc biệt là mạng gói như NS-2, Omnet++, Opnet… Các mơi trường này có đặc điểm chung là chương trình hướng đối tượng, đã được cấu trúc sẵn và có nhiều module xây dựng sẵn, giúp cho người sử dụng nhanh chóng tạo ra các phương án chương trình. Ngồi ra, những chương trình này vẫn có tính mở, cho phép người sử dụng có thể xây dựng module hồn tồn mới hoặc xây dựng dựa trên các module sẵn có theo u cầu của chính mình.
Phương thức này phù hợp với việc kiến tạo những chương trình mơ phỏng khi có thể tận dụng các module sẵn có, giảm thời gian cho người xây dựng chương trình rất nhiều. Cịn nếu muốn có được chương trình cụ thể theo u cầu thì người sử dụng cũng có thể kế thừa các lớp hoặc module tương tự xây dựng từ trước. Phương thức này chỉ khó thực hiện khi người sử dụng muốn xây dựng phương án hồn tồn mới, khơng tận dụng được các chương trình sẵn có.
Sau khi tìm hiểu và phân tích, có thể rút ra một số đánh giá về các công cụ mô phỏng mạng viễn thông dựng sẵn hiện đang được sử dụng như sau:
NS-2 (http://www.isi.edu/nsnam/ns/): Là chương trình mơ phỏng sự kiện rời rạc, nhằm vào những nghiên cứu về lĩnh vực mạng gói. NS-2 mơ phỏng những hoạt động của mạng IP, chủ yếu hỗ trợ mô phỏng các giao thức TCP, định tuyến và multicast trên các mạng có dây, khơng dây (nội hạt và vệ tinh).
Opnet(http://www.opnet.com/): Là sản phẩm thương mại với giao diện người sử dụng đồ họa (GUI), được sử dụng để mơ hình hóa và mơ phỏng những mạng phức tạp với hiệu năng tối ưu. Số lượng người biên tập là rất lớn cho việc kiến tạo/ thay đổi / biến đổi các mơ hình và để chạy các mô phỏng và hiển thị / phân tích kết quả. Các ưu điểm chính của Opnet là hỗ trợ rất chuyên nghiệp, tài liệu tốt và cung cấp nhiều giao thức xây dựng sẵn.
Omnet++ (http://www.omnetpp.org/): Là môi trường mô phỏng sự kiện rời rạc. Ứng dụng chủ yếu của Omnet++ là các mạng thơng tin, song vì kiến trúc linh hoạt nên nó hay được sử dụng trong những lĩnh vực về mô phỏng các hệ thống IT phức tạp, các mạng xếp hàng hoặc các kiến trúc phần cứng.
Trong các cơng cụ mơ phỏng được biết đến thì OMNeT++ được cho là rất phù hợp để mô phỏng các mạng cảm biến WSN nhờ tính linh hoạt của nó. Omnet++ cung cấp sẵn các module tương ứng với các mơ hình thực tế, các module này được lập trình theo ngơn ngữ C++, sau đó được tập hợp lại thành những thành phần hay những mơ hình lớn hơn bằng một ngơn ngữ bậc cao (NED). Việc lập trình bằng ngơn ngữ C++ cho phép người sử dụng tùy ý can thiệp vào các module có sẵn hoặc xây dựng module mới hồn theo mục đích sử dụng của mình, chính đặc điểm này khiến cho Omnet++
được cho là rất thích hợp để mơ phỏng các mạng hoặc giao thức mới ra đời như trong WSN.
Ngoài ra, Omnet++ còn hỗ trợ rất nhiều cho việc phân tích và hiển thị kết quả, cung cấp cho người dùng khả năng đánh giá chi tiết cũng như trực quan về hệ thống được mơ phỏng. Từ những phân tích và đánh giá như trên, em quyết định sử dụng Omnet++ làm công cụ để mô phỏng giao thức định tuyến LEACH trong mạng WSN.