CHƯƠNG 1 : TỔNG QUAN VỀ MẠNG CẢM BIẾN
1.6 Công nghệ hiện đại
Trong phần này tơi trình bày và phân tích các cơng nghệ hiện đại. Tơi phân loại ảo hóa thành ba cấp độ là ảo hóa cấp độ nút, ảo hóa cấp độ mạng và các giải pháp kết hợp. Các giải pháp lai kết hợp cả ảo hóa cấp độ nút và mạng. Mỗi loại ảo hóa lại được phân loại thêm dựa trên các phương pháp được sử dụng.
1.6.1 Ảo hóa cấp nút
Các phương pháp ảo hóa cấp nút được nhóm thành hai phần: giải pháp dựa trên hệ điều hành cảm biến (HĐH) và giải pháp dựa trên Máy ảo / phần trung gian Middleware (VM / M). Trong các giải pháp dựa trên hệ điều hành cảm biến, ảo hóa
cấp nút là một phần của hệ điều hành cảm biến. Trong các giải pháp dựa trên VM / M, ảo hóa cấp nút được thực hiện bởi một thành phần chạy trên hệ điều hành cảm biến.
Hình 17: Ảo hóa cấp độ nút
a) Giải pháp dựa trên hệ điều hành (ví dụ: Contiki). b) Giải pháp dựa trên phần trung gian (ví dụ: Agilla). c) Giải pháp dựa trên máy ảo (ví dụ: Máy ảo Squawk).
TinyOS [15] là một hệ điều hành cảm biến đa nhiệm tiên tiến, hỗ trợ thực thi các tác vụ ứng dụng đồng thời trong các nút cảm biến bị hạn chế nguồn. Nó được thiết kế để giải quyết các vấn đề liên quan đến việc thực thi các tác vụ ứng dụng đồng thời và nền tảng phần mềm được thiết kế riêng cho các mạng cảm biến khơng dây. Như vậy, nó bao gồm định tuyến đa nhiệm tích hợp, thực hiện kết nối mạng lưới mà không cần phát triển thêm và chế độ tiết kiệm năng lượng đồng bộ băng thông thấp. Chế độ băng thông thấp giữ cho các nút ở chế độ năng lượng thấp trong mọi thời điểm mà vẫn giữ cho chúng được đồng bộ hóa để truyền và nhận. Điều này cho phép mỗi nút 'ngủ', tiết kiệm pin, nhưng đồng bộ khiến toàn bộ mạng khởi động và gửi thông tin của chúng cùng lúc khi cần thiết. Trong khi MSP430 chạy TinyOS, phần lớn việc phát triển ứng dụng được thực hiện trong mạng được nhúng hệ thống ngôn ngữ C, hoặc NesC [16]. NesC là ngơn ngữ lập trình được thiết kế để xây dựng các ứng dụng trong môi trường TinyOS. NesC cung cấp một mơ hình lập trình hướng sự kiện trên ngơn ngữ C, trừu tượng hóa chức năng C cấp thấp thành ngơn ngữ cấp cao hơn được thiết kế cho các hệ thống nhúng. Như vậy, nó xử lý một cách trừu tượng các vấn đề tiềm ẩn liên quan đến các hệ thống phân tán. Ví dụ, NesC phát hiện các điều kiện hoạt động thơng qua phân tích mã tĩnh trước khi mạng được triển khai, ngăn chặn các mối nguy hiểm tại thời gian biên dịch thay vì thời gian hoạt động. Chúng làm việc dựa trên ngăn xếp TinyOS, vì vậy thời gian truy cập các tác vụ ngồi 100 chu kỳ là máy khơng đồng bộ. Nó cho
phép lập trình viên có thể giải quyết một vấn đề phức tạp bằng cách kết hợp các trình xử lý sự kiện lại với nhau. Để giải quyết các bài tính tốn lớn, TinyOS cung cấp các tác vụ xử lý và lịch trình với First in First Out (FIFO) [16]. Mơ hình đồng thời đơn giản này thường đủ cho các ứng dụng trung tâm I / O, những khó khăn của nó với các ứng dụng nặng CPU đã dẫn đến một số đề xuất để kết hợp các luồng thông tin vào hệ điều hành.
Mantis OS MOS [17] được thiết kế để tận dụng các thuộc tính của ngơn ngữ lập trình tiêu chuẩn di động, trong trường hợp này là ngơn ngữ lập trình C. MOS cho phép cùng một mã ứng dụng để thực thi trên nhiều nền tảng khác nhau, từ PC đến PDA cho đến các nền tảng cảm biến vi mô khác nhau. Như chi tiết trong công việc trước đây, điều này cho phép triển khai từng giai đoạn các ứng dụng từ môi trường dựa trên Internet sang triển khai vật lý, tức là mã ứng dụng có thể được kiểm tra trước trên nút cảm biến ảo thực thi trên PC hoặc PDA với điều kiện API tương tự được lưu trữ trên các nút cảm biến vi mơ tại chỗ. Ví dụ, ngăn xếp mạng cấp độ người dùng MOS cho phép thử nghiệm thuật toán định tuyến lớp mạng trên các nút cảm biến ảo trên PC Linux trước khi được triển khai.
Maté [19] là một công việc đầu tiên cung cấp thực thi tuần tự các tác vụ ứng dụng trên các nút cảm biến thế hệ đầu hạn chế nguồn. Nó là một máy ảo nhỏ bao gồm một trình thơng dịch mã nhị phân dựa trên ngăn xếp và hoạt động trên TinyOS. Các tác vụ ứng dụng được chia thành các mã mã tối đa 24 lệnh và được thực hiện riêng rẽ từng cái một. Một sơ đồ phân phối mã virus được sử dụng để truyền mã và lập trình tại các nút cảm biến. Vì có sự kết hợp chặt chẽ giữa mã ứng dụng và TinyOS nên việc cài đặt mã mới đòi hỏi phải thay thế tồn bộ hệ điều hành. Khơng hỗ trợ ưu tiên ứng dụng và chỉ có một bộ ứng dụng giới hạn được hỗ trợ. Hơn nữa, cách tiếp cận khơng độc lập với nền tảng vì nó chỉ hoạt động trên TinyOS nhưng nó giải quyết vấn đề khơng đồng nhất với nhau.
Contiki [18] cho đến nay là một trong những hệ thống phổ biến nhất cho mạng cảm biến không dây và qua nhiều năm đã phát triển để trở thành một nền tảng hàng đầu cho IoT và các hệ thống nhúng năng lượng thấp. Hệ điều hành này cung cấp đa nhiệm ưu tiên có thể được sử dụng theo quy trình cấp độ riêng lẻ. Một cấu hình Contiki thơng thường tiêu thụ 2 kilobyte trong RAM và 40 kilobyte trong ROM. Một
bản cài đặt Contiki đầy đủ bao gồm các tính năng như: nhân đa nhiệm, đa luồng ưu tiên, chống trùng lặp, mạng TCP / IP, IPv6, giao diện người dùng đồ họa, trình duyệt web, máy chủ web cá nhân, máy con telnet đơn giản, trình bảo vệ màn hình và mạng ảo hóa điện tốn. Nó có một hạt nhân dựa trên một mơ hình hướng sự kiện, đa luồng được ưu tiên cũng được cung cấp dưới dạng tùy chọn, dưới dạng thư viện và được hiển thị dưới dạng API để các ứng dụng bổ sung các chức năng cần thiết. Ưu tiên được thực hiện bằng cách sử dụng hẹn giờ ngắt. Tất cả các chủ thể có ngăn xếp thực hiện riêng. Hệ điều hành được viết bằng ngơn ngữ C và có thể được chuyển sang nền tảng phần cứng. Người ta thấy rằng kích thước mã của các ứng dụng tương tự trong Contiki lớn hơn trong TinyOS nhưng nhỏ hơn trong MANTIS.Như thể hiện trong bảng 1 là các đặc điểm của ảo hóa cấp độ nút.
Giải pháp (năm) Mơ hình thực thi Ngơn ngữ lập trình Giao thức Ứng dụng thời gian thực MANTIS (2005) Dựa theo chủ đề C TDMA Không
Tiny OS (2005) Hướng sự kiện nesC Định tuyến địa
lý Không Contiki OS (2004) Hướng sự kiện Dựa theo chủ đề C HTTP, COAP, UDP,TCP, 6LoWPAN Chỉ dùng trong ứng dụng hướng sự kiện Maté (2002) Hướng sự kiện TinyScript Khơng
Bảng 1: Những đặc tính của giải pháp ảo hóa cấp nút
1.6.2 Ảo hóa cấp mạng
Các phương pháp ảo hóa cấp mạng được phân nhóm theo hai phần: giải pháp dựa trên mạng ảo và giải pháp dựa trên cụm. Các giải pháp dựa trên mạng ảo sử dụng khái niệm mạng ảo và lớp phủ ứng dụng để đạt được ảo hóa cấp mạng. Mạng ảo / lớp phủ là các mạng logic được tạo trên nền của mạng vật lý. Trong các giải pháp dựa trên cụm, các nút trong mạng vật lý được nhóm để làm việc cùng nhau trong các nhóm được kết nối trong cụm. Không giống như mạng ảo / lớp phủ, phân cụm giống như phân vùng vật lý của mạng - nơi một phần của mạng được sử dụng bởi một ứng dụng
và một phần khác được sử dụng bởi một ứng dụng khác. Các nút bên trong một cụm có những vai trị riêng, chẳng hạn như cụm chính và cụm thành viên. Thông thường các giải pháp dựa trên cụm trong WSN được sử dụng để theo dõi các sự kiện.
Hình 18: Ảo hóa cấp mạng.
a, Giải pháp dựa trên mạng ảo b, Giải pháp dựa trên cụm
Các nút cảm biến tạo thành các cụm để hỗ trợ các ứng dụng theo dõi các hiện tượng động. Các nút cảm biến trong mỗi tác vụ thực hiện nhiều chức năng. Nghĩa là một nút cảm biến có thể là một phần của nhiều cụm. Với mỗi cụm dành riêng cho một ứng dụng, WSN có thể được sử dụng đồng thời với nhiều ứng dụng, từ đó thực hiện ảo hóa cấp mạng. Bên cạnh đó cũng tồn tại một số quá trình thực hiện kém chất lượng về các chi tiết kỹ thuật (ví dụ: cách các nút riêng lẻ thực hiện các tác vụ ứng dụng). Hơn nữa, chưa có đề xuất nào về mức độ ưu tiên của ứng dụng, tính khơng đồng nhất và tính độc lập cơ sở chưa được giải quyết. Vấn đề này đã được làm rõ trong [21] để tạo điều kiện cho việc tạo, vận hành và bảo trì các cụm để đạt được ảo hóa cấp mạng. Khi một vấn đề được phát hiện, các nút cảm biến được nhóm thành một cụm động bằng cách trao đổi các thơng điệp hình thành VSN. Tuy nhiên, về các yêu cầu cấp thiết chưa có bất kỳ nhược điểm nào trong [20] được giải quyết.
Nhiệm vụ có thể liên quan đến ảo hóa cấp mạng vì WSN có thể hỗ trợ nhiều nhiệm vụ cùng một lúc. Mỗi nhiệm vụ sử dụng một tập hợp con chuyên dụng của các nút cảm biến không được chia sẻ với các nhiệm vụ khác. Việc phân công nhiệm vụ được mơ hình hóa như một biểu đồ lưỡng cực có trọng số để giảm tối ưu các nút cảm biến trong các nhiệm vụ. Khi đạt được một nhiệm vụ sẽ tạo ra nhiều lợi nhuận, vì vậy
mục tiêu là tối đa hóa lợi nhuận bằng cách đạt được càng nhiều nhiệm vụ càng tốt. Cả hai giải pháp tập trung và phân tán đều được đề xuất, sử dụng các kết quả thực thi và thuật toán nhận biết năng lượng. Giải pháp này không đề cập đến bất kỳ miền ứng dụng cụ thể nào. Sự không đồng nhất được giải quyết cùng với sự độc lập nền tảng. Tuy nhiên, mức độ ưu tiên của tác vụ ứng dụng chưa được giải quyết do mỗi nút cảm biến chỉ thực hiện được một tác vụ ứng dụng tại một thời điểm cụ thể.
1.6.3 Giải pháp ảo hóa kết hợp
Giải pháp này lai kết hợp cả hai cơ chế ảo hóa cấp nút và ảo hóa cấp mạng. Các giải pháp kết hợp được phân nhóm theo ba loại: giải pháp trung gian và giải pháp dựa trên cụm; giải pháp trung gian và mạng ảo / lớp phủ ảo; máy ảo và giải pháp dựa trên nhóm động.