Nền tảng mô phỏng được xây dựng theo hướng đối tượng. Các giao diện và các lớp đối tượng được định nghĩa rõ ràng về các phương thức, thuộc tính và các mối quan hệ giữa chúng, giúp thực hiện xây dựng thư viện các mô đun chức năng thuận tiện và rõ ràng trong lập trình hơn. Dựa trên phân tích về nhiệm vụ và chức năng của nền tảng mô phỏng, luận án đưa ra sơ đồ lớp cho nền tảng mô phỏng mạng cảm biến với các giao diện và các lớp đối tượng cơ bản được biểu diễn như Hình 3.6.
60 Nền tảng mô phỏng mạng cảm biến quan tâm đến vấn đề năng lượng tạo ra một môi trường mà ở đó có các thực thể hoạt động với các yếu tố cơ bản bao gồm không gian, thời gian và nguồn năng lượng, được đại diện bởi các giao diện cơ sở hoặc các lớp cơ sở tương ứng gồm giao diện thực thể (entity), lớp hệ quy chiếu tọa độ (reference_frame), lớp vị trí (location), lớp đồng hồ thời gian (clock) và lớp mặt trời (sun). Giao diện thực thể và các lớp cơ sở sẽ được triển khai tiếp đến các giao diện, lớp cấp thấp hơn, sau đó tới các lớp đối tượng và đối tượng cụ thể. Các lớp cấp thấp hơn được phát triển và được thừa kế từ các lớp trên.
Giao diện thực thể hay gọi là thực thể cơ sở, đại diện cho tất cả các thực thể trong nền tảng mô phỏng với các thuộc tính và phương thức hoạt động theo hướng sự kiện. Giao diện thực thể đóng vai trò trung tâm liên quan đến các lớp cơ sở còn lại và tất cả các thực thể khác trong nền tảng đều được thừa kế từ giao diện thực thể này như giao diện mô đun nút (node_module), giao diện nút cơ sở (basic_node), giao diện mạng cơ sở (basic_network), giao diện toàn cảnh cơ sở (basic_world), giao diện môi trường cơ sở (basic_ambient). Thực thể cơ sở cung cấp các thuộc tính cơ bản mà mỗi một thực thể đều cần phải có như định nghĩa một thực thể, danh sách sự kiện và con trỏ để trỏ đến lớp sở hữu cấp cao hơn của mỗi thực thể. Giao diện thực thể cung cấp các phương thức cơ bản mà mỗi thực thể đều có như phương thức bắt đầu, phương thức dừng, phương thức khởi tạo, phương thức kết thúc được dùng trong quá trình bắt đầu và được khởi tạo các thông số hoặc tham số của thực thể cũng như khi kết thúc sẽ xử lý các công việc cần thiết đối với mỗi thực thể ví dụ như khi thực thể kết thúc hoạt động sẽ xóa những dữ liệu không cần thiết nhằm tiết kiệm bộ nhớ. Bên cạnh các phương thức cơ bản, các phương thức về sự kiện của thực thể rất quan trọng với cơ chế hoạt động hướng sự kiện như phương thức đăng kí sự kiện hoặc phương thức hủy sự kiện. Phạm vi được quan tâm của sự kiện cũng được xác định khi đăng kí sự kiện, việc này để xác định sự kiện chỉ được xử lí và phục vụ tại nơi đăng kí hay được lan truyền đến và phục vụ cả ở lớp sở hữu cao hơn. Mỗi thực thể có thể có hai cơ chế sự kiện đó là cơ chế sự kiện chỉ phục vụ nội tại và cơ chế sự kiện phục vụ nội tại và lan truyền nhằm xử lí kết nối các thực thể với nhau để tạo thành cơ chế chung của cả hệ thống. Mỗi thực thể cần có phương thức tạo sự kiện để khi có sự kiện xảy ra sẽ đưa ra mã sự kiện đó cho các bên liên quan biết sự kiện được đăng kí đã xảy ra. Thời gian cũng là một loại sự kiện rất cơ bản cho các hoạt động của thực thể. Như vậy, trong nền tảng mô phỏng tất cả các thực thể thừa kế từ giao diện thực thể sẽ có các phương thức hoạt động theo hướng sự kiện, các sự kiện được đăng kí thành danh sách tùy theo từng loại tại từng thực thể. Khi sự kiện xảy ra sẽ là điều kiện để gọi các phương thức khác phục vụ hoạt động của thực thể nói riêng và của hệ thống nói chung. Vì vậy, giao diện thực thể là rất quan trọng, nó là cơ sở cho tất cả các thực thể khác thừa kế.
Lớp hệ quy chiếu tọa độ, cung cấp dịch vụ để người dùng có thể đặt các tọa độ theo các hệ quy chiếu cho các nút cảm biến cụ thể và có thể chuyển đổi qua lại giữa các loại tọa độ này để phù hợp cho mục đích mô phỏng. Ví dụ, để quản lí và điều khiển các hoạt động trong truyền thông của mạng thì sẽ dùng tọa độ tương đối, còn để xử lí tính toán việc liên quan đến thu năng lượng mặt trời thì dùng tọa độ địa lí.
Lớp đồng hồ thời gian cho nền tảng mô phỏng nhằm tạo ra đồng hồ thời gian cho hệ thống mô phỏng. Ở đây ta có thể tính thời gian theo thời gian của máy tính hoặc tính thời gian theo cách định nghĩa nào đó phù hợp với việc mô phỏng chẳng hạn như
61 chúng ta cho thời gian mô phỏng tỉ lệ với thời gian thực theo một hệ số nào đó để việc mô phỏng trở nên thuận tiện hơn, nhanh hơn để không phải chờ đợi lâu. Ví dụ, chúng ta sẽ cho thời gian mô phỏng chạy nhanh hơn so với thời gian thực 100 lần, có nghĩa là chỉ cần 1s của thời gian thực thì việc mô phỏng đã chạy mô phỏng được 100s. Bên cạnh đó, các phương thức quy đổi giữa các hệ quy chiếu thời gian để tiện cho việc mô phỏng cụ thể trong các kịch bản mà người dùng thiết lập, và một số phương thức tính toán hiển thị thời gian hiện tại theo các hệ quy chiếu thời gian khác nhau được sử dụng trong nền tảng mô phỏng.
Lớp vị trí, cung cấp các thông số về vị trí cho các cảm biến được thiết lập trong mạng. Các thông tin về vị trí của nút sẽ phục vụ trong truyền thông, định tuyến của mạng cũng như dùng để phục vụ quá trình tính toán liên quan đến thu thập năng lượng từ môi trường xung quanh.
Giao diện mô đun nút cung cấp tham chiếu liên quan đến năm mô đun chức năng của nút như đã mô tả trong phần mô hình hóa nút. Giao diện mô đun nút sẽ tham chiếu đến các thuộc tính và phương thức của giao diện nút cơ sở (basic_node) để có thông tin về vị trí, mã số nút và trạng thái hoạt động của nút.
Giao diện mạng cơ sở (basic_network) cung cấp các phương thức để thiết lập mạng như có thể tạo nút mới hoặc xóa một nút khỏi mạng. Giao diện mạng cơ sở được tham chiếu đến giao diện toàn cảnh.
Giao diện toàn cảnh cơ sở (basic_world) xét đến tất cả các yếu tố môi trường, không gian và thời gian khi mô phỏng mạng. Phương thức lấy thời gian thực để dùng trong quá trình chạy mô phỏng theo kịch bản mà người dùng cài đặt. Việc này giúp mô phỏng kết hợp giữa một phần mạng ảo trên máy và phần mạng thực được cài đặt bên ngoài, thuận tiện cho thử nghiệm trong quá trình thiết lập, cài đặt cho các bài toán ứng dụng.
Giao diện môi trường cơ sở, cung cấp phương thức nhằm mục đích để người dùng có khả năng thiết lập và sử dụng một môi trường phục vụ mục đích mô phỏng theo yêu cầu ứng dụng. Giao diện định nghĩa môi trường với những thông số, tham số và những điều kiện phù hợp với yêu cầu cần mô phỏng của bài toán ứng dụng.
Trong sơ đồ đưa ra các lớp cơ bản và triển khai đến các lớp đối tượng tổng quát như lớp nút tổng quát (generic_node), lớp mạng tổng quát (generic_network), lớp toàn cảnh tổng quát (generic_world) và lớp môi trường tổng quát (generic_ambient). Việc triển khai tới từng lớp đối tượng cụ thể hơn sẽ được trình bày trong phần tiếp theo.