Mộthệ điều hành dựa trên phần tử và ngăn xếp giao thức có thể đƣợc coi nhƣ một ứng dụng: một phần tử có thể tƣơng tác trực tiếp với các phần tử khác thông qua giao diện tồn tại giữa chúng . Ứng dụng có thể gồm một số phần tử, đƣợc tích hợp ở những nơi khác nhau trong ngăn xếp giao thức. Cách tiếp cận này có một số lợi thế: tinh gọn với cấu trúc giao thức tổng thể, dễ dàng giới thiệu mã ứng dụng cụ thể vào WSN ở các mức khác nhau và không yêu cầu giao diện dịch vụ chuyên dụng.
Nhƣng, tính tổng quát và linh hoạt cũng chính là nhƣợc điểm của phƣơng pháp này. Việc cho phép các lập trình viên ứng dụng can thiệp vào cácngăn xếp giao thức và bên trong hệ điều hành phải đƣợc giám sát cẩn thận. Trong các mạng truyền thống nhƣ Internet, các lập trình viên ứng dụng có thể truy cập vào các dịch vụ của mạng thông qua một giao diện thông thƣờng là ổ cắm. Giao diện này quy định rõ ràng về cách xử lý các kết nối, cách gửi và nhận các gói tin, và cách hỏi thông tin về trạng thái của mạng. Nhiệm vụ hiển nhiên của giao diện là trao đổi các gói tin với nhau.
Nhƣ vậy, có hai cách là thiết kế ứng dụng nhƣ là một phần tử hoặc thiết kế giao diện dịch vụ cho tất cả các phần tử. Hai lựa chọn này đƣợc chỉ ra trên hình 1.11. Giao diện dịch vụ sẽ cho phép nâng cao mức độ trừu tƣợng hoá cho ứng dụng có thể tƣơng tác với WSN - thay vì phải xác định giá trị để đọc từ các cảm biến riêng lẻ, ngƣời ta mong muốn cung cấp một ứng dụng với khả năng thể hiện cảm nhận nhiệm vụ gần với ý nghĩa của ứng dụng.
38
Rõ ràng, sự tích hợp chặt chẽ của ứng dụng trong ngăn xếp giao thức sẽ tạo ra tính tối ƣu cho nhà lập trình ứng dụng. Mặt khác, nó đòi hỏi phải có nhiều kinh nghiệm hơn khi sử dụng một giao diện dịch vụ chuẩn. Câu hỏi đặt ra ở đây là giá thành, sự suy giảm các đặc tính quan trọng và độ phức tạp của giao diện dịch vụ. Trong thực tế, so với mạng Internet, tính đa dạng và phức tạp về mẫu thông tin trong WSN lớn hơn nhiều. Do đó, giao diện dịch vụ thực sự có ý nghĩa và sẽ phức tạp hơn.
Hình 1.12.Hai lựa chọn giao diện dịch vụ với ngăn xếp giao diện