Mô hình lập trình và các giao diện lập trình ứng dụng

Một phần của tài liệu Bài giảng mạng cảm biến (Trang 61 - 64)

62

a. Các mô hình lập trình

Lập trình đồng thời:

Câu hỏi đầu tiên cho mô hình lập trình là nó hỗ trợ thực hiện cùng lúcnhƣ thế nào? Hỗ trợ thực hiện cùng lúc là điều cốt yếu của các nút WSN vì chúng sử dụng dữ liệu đến từ các nguồn khác nhau (từ nhiều cảm biến hay bộ thu phát vô tuyến) tại các thời điểm bất kỳ. Ví dụ, hệ thống có thể thăm dò cảm biến để quyết định xem dữ liệu có sẵn có và đƣợc xử lý đúng cách hay không, sau đó thăm dò bộ thu phát để kiểm tra xem liệu gói tin có sẵn có không rồi xử lý gói tin ngay lập tức… (hình 2.5). Mô hình tuần tự đơn giản nhƣ vậy (hình 2.5(a)) sẽ hoạt động với nguy cơ bị mất dữ liệu trong khi một gói tin đƣợc xử lý hoặc khi mất một gói tin thông tin từ cảm biến đang đƣợc xử lý. Nguy cơ này sẽ cao nếu quá trình xử lý dữ liệu từ cảm biến hay các gói tin đến chiếm một lƣợng lớn thời gian. Do đó, mô hình lập trình tuần tự, đơn giản rõ ràng là không hiệu quả.

Hình 2.5.Hai mô hình không tƣơng thích với hệ điều hành WSN Thực hiện sự đồng thờidựa trên quá trình:

Phần lớn các hệ điều hành đa dụng hiện đại nhất hỗ trợ thực hiện cùng lúc nhiều quá trình trên CPU đơn lẻ. Do đó, phƣơng pháp dựa trên quá trình là lựa chọn đầu tiên để hỗ trợ sự đồng thời trong một nút cảm biến, nó đƣợc mô tả trong phần (b) hình 2.5. Trong khi phƣơng pháp này làm việc bình thƣờng thì ánh xạ một mô hình thực hiện các tiến trình (process) cùng lúc nhƣ vậy tới một nút cảm biến lại cho thấy một số điểm không phù hợp: việc làm cân bằng các chức nănghoặc lớp giao thức riêng lẻ với các tiến trình riêng lẻsẽ đòi hỏi chi phícao khi chuyển từ tiến trình này sang tiếntrình khác. Vấn đề này đặc biệt nghiêm trọng nếu các tác vụ thƣờng xuyên phải đƣợc thực hiện là nhỏ so với chi phí dùng để chuyển giữa các tác vụ - trƣờng hợp này thƣờng xảy ra trong các mạng cảm biến. Ngoài ra mỗi tiến trình yêu cầu một không gian ngăn xếp riêng trong bộ nhớ, điều này không phù hợp với ràng

Cảm biến hỏi vòng Xử lý dữ liệu cảm biến Bộ thu phát hỏi vòng Xử lý gói tin nhận Mô hình lập trình tuần tự (a) Xử lý quá trình

cảm biến Xử lý quá trình gói tin

Chuyển quá trình OS trung gian

Mô hình lập trình dựa trên quá trình (b)

63 buộc nghiêm ngặt về bộ nhớ của các nút cảm biến.

Lập trình dựa trên sự kiện:

Với các lý do này, mô hình lập trình hơi khác một chút dƣờng nhƣ thích hợp hơn. Ý tƣởng này dùng đặc tính phản ứng tự nhiêncủa một nút WSN và tích hợp nó trong thiết kế hệ điều hành. Hệ thống cần đợi sự kiện xảy ra trong khi sự kiện có thể là sự có mặt của dữ liệu từ một cảm biến, sự đến của một gói tin hoặc sự kết thúc của bộ định thời. Sự kiện nhƣ vậy sau đó đƣợc xử lý bởi một chuỗi lệnh ngắn để chỉ lƣu giữ sự thật là sự kiện đã xảy ra và lƣu giữthông tin cần thiết, ví dụ một byte đến đối với một gói tin đến hoặc giá trị của cảm biến. Quá trình xử lý thực tế thông tin này không đƣợc thực hiện trong các thủ tục bộ xử lý sự kiện này mà nó đƣợc tách từ sự xuất hiện thực tế của các sự kiện. Mô hình lập trình dựa trên sự kiệnđƣợc biểu diễn trên hình 2.6.

Hình 2.6.Mô hình lập trình dựa trên sự kiện

Bộ xử lý sự kiện nhƣ vậy có thể ngắt quá trình xử lý của bất kỳ mã lệnh thông thƣờng nào nhƣng do nó rất đơn giản và ngắn nên nó có thể đƣợc yêu cầu thực hiện cho đến hết trong tất cả các tình huống mà không làm xáo trộn mã lệnh khác một cách quá đáng. Các bộ xử lý sự kiện không thể ngắt lẫn nhau nhƣng nó dễ dàng thực hiện liên tiếp nhau.

Kết quả là mô hình lập trình dựa trên sự kiện phân biệt hai tình huống (ngữ cảnh) khác nhau: một cho các bộ xử lý sự kiện yêu cầu thời gian nghiêm ngặt (time-critical event handler), nơi mà quá trình thực hiện không thể bị ngắt và một cho quá trình xử lý mã lệnh thông thƣờng, nó chỉ đƣợc khởi động bởi các bộ xử lý sự kiện.

Li và các đồng nghiệp so sánh hiệu suấtcủa mô hình lập trình dựa trên quá trình và dựa trên sự kiện trên cùng một phần cứng và nhận thấy rằng hiệu suấtđƣợc cải thiện theo hệsố 8, các yêu cầu bộ nhớ lệnh/dữ liệu giảm tƣơng ứng theo các hệ số 2 và 30, công suất tiêu thụ giảm theo hệsố 12.

b. Các giao diện với hệ điều hành

Nếu mô hình lập trình quy định không đƣợc chấp nhận trên thực tế bởi hệ điều hành thì cần phải chỉ rõ một số giao diện là làm cách nào để trạng thái bên trong của hệ thống có thể đƣợc hỏi và đƣợc thiết lập.

Khi sự phân biệt rạch ròi giữa ngăn xếp giao thức và các chƣơng trình ứng dụng trong các WSN không còn trong các mạng cảm biến không dây, thì phải truy cập đƣợc một giao diện nhƣ vậy từ các thực hiện giao thức và nó phải cho phép các thực hiện này truy cập lẫn

64

nhau. Giao diện này cũng liên kết một cách chặt chẽ với kiến trúc của các ngăn xếp giao thức sẽ đƣợc giới thiệu trong phần tiếp sau.

Một giao diện lập trình ứng dụng (API - Application Programming Interface) là một giao diện mà một hệ thống máy tính hay ứng dụng cung cấp để cho phép các yêu cầu dịch vụ có thể đƣợc tạo ra từ các chƣơng trình máy tính khác, và/hoặc cho phép dữ liệu có thể đƣợc trao đổi qua lại giữa chúng. Chẳng hạn, mộtchƣơng trình máy tính có thể (và thƣờng là phải) dùng các hàm API của hệ điều hành để xin cấp phát bộ nhớ và truy xuất tập tin. Nhiều loại hệ thống và ứng dụng hiện thựcAPI, nhƣ các hệ thống đồ họa, cơ sở dữ liệu, mạng, dịch vụ web, và ngay cả một số trò chơi máy tính.Đây là phần mềm hệ thống cung cấp đầy đủ các chức năng và các tài nguyên mà các lập trình viên có thể rút ra từ đó để tạo nên các tính năng giao tiếp ngƣời- máy nhƣ: các trình đơn kéo xuống, tên lệnh, hộp hội thoại, lệnh bàn phím và các cửa sổ. Một trình ứng dụng có thể sử dụng nó để yêu cầu và thi hành các dịch vụ cấp thấp do hệ điều hành của máy tính thực hiện. Hệ giao tiếp lập trình ứng dụng giúp ích rất nhiều cho ngƣời sử dụng vì nó cho phép tiết kiệm đƣợc nhiều thời gian tìm hiểu các chƣơng trình mới, do đó khích lệ mọi ngƣời dùng nhiều ứng dụng hơn

Thông thƣờng, giao diện lập trình ứng dụng nhƣ vậy bao gồm giao diện chức năng, sự trừu tƣợng hoá đối tƣợng và hiện thực chi tiết. Trừu tƣợng là các tuyến vô tuyến, các nút..; các chức năng có thể bao gồm truy vấn và thao tác trạng thái, gửi và nhận dữ liệu, truy cập phần cứng (các cảm biến, cơ cấu chấp hành, bộ thu phát), cài đặt các điều khoản nhƣ các thoả hiệp về năng lƣợng/ chất lƣợng.

Một phần của tài liệu Bài giảng mạng cảm biến (Trang 61 - 64)