Như ta biết, dữ liệu thu được có thể có cùng một giá trị hoặc tương đối giống nhau trong một khoảng thời gian cụ thể. Ở đây việc nén các bản ghi đọc được từ cảm biến chính là thực hiện kết hợp hai hoặc nhiều bản ghi tạo ra được giá trị trung bình. Bằng cách này ta có thể đảm bảo dữ liệu không bị làm suy giảm và cũng không phải phân tán dữ liệu. Ngoài ra, khả năng mở rộng lưu trữ của hệ thống tăng lên mà không cần sử dụng phương pháp xấp xỉ dữ liệu. Tuy nhiên, chiến lược này phần nào làm giảm tính chính xác của dữ liệu. Sử dụng giá trị trung bình không còn được tin cậy vì sự khác biệt quá lớn giữa các mẫu dữ liệu. Do đó, cách tiếp cận này không thích hợp cho một số ứng dụng. Ta thấy có sự đánh đổi giữa độ chính xác của dữ liệu và hiệu quả trong việc sử dụng khả năng lưu trữ của các nút cảm biến.
Chính vì thế nghiên cứu giới thiệu một chiến lược tổng hợp dữ liệu dựa trên việc tính toán khoảng cách giữa các mẫu dữ liệu.
- Ngưỡng giá trị, khoảng giá trị δdist: Là sự khác biệt tối thiểu giữa hai bản ghi cảm biến trong một khoảng thời gian. Giá trị của ngưỡng được lựa chọn dựa trên sự
khác biệt của hai bản ghi dữ liệu đầu tiên được lấy mẫu tại mỗi đầu của thời gian lấy mẫu (xem biểu thức 4.4).
- Tham số giá trị tiêu chuẩn Sval: Khi bắt đầu của quá trình lấy mẫu thì được khởi tạo bằng không (Sval = 0). Tuy nhiên, trong một khoảng thời gian không xác định trước thì dữ liệu đọc được sẽ bị thu hồi để thực hiện tổng hợp. Các mẫu dữ liệu được tổng hợp có thể không đồng đều trong khoảng thời gian liên tiếp. Khoảng cách này phụ thuộc vào các thông số δdist và Sval.
- Sau khi xác định giá trị của các tham số trên, dữ liệu cảm biến được kiểm tra để quyết định xem nó có thuộc cùng bộ giá trị trước đó không. Nó sẽ được thêm vào cùng một tập nếu sự khác biệt giữa giá trị hiện tại và giá trị Sval đáp ứng được δdist hiện tại. Quá trình này được lặp đi lặp lại cho đến khi một nhãn thời gian mà tại đó mẫu dữ liệu vượt ra ngoài ranh giới khoảng cách cho phép. Tại một thời điểm, tất cả các mẫu dữ liệu cùng một bộ giá trị trong một khoảng thời gian cụ thể sẽ được kết hợp và cho giá trị xấp xỉ tốt nhất (biểu thức 4.5).
Xác định δdist thông qua biểu thức 4.4:
δdist = Rval(i) - Rval (i- 1), nếu δdist = 0 và sval = 0 (4.4) Mẫu dữ liệu nhận được từ cảm biến ā được lưu trữ trong bộ nhớ được xác định bởi biểu thức 4.5:
a = 1
𝑗 ∑ Rval(i), nếu 𝑗
𝑖=1
δdist > Rval(i) − Sval và Rval(i) − Sval > 0
ℎ𝑜ặ𝑐 δdist < Rval(i) − Sval và Rval(i) − Sval < 0 (4.5)
Tỉ lệ dữ liệu giảm Rrate được tính toán bằng biểu thức 4.6:
Rrate(%) = 1 − Rtotal
Ntotal𝑥 100 (4.6) Trong đó:
δdist : Ngưỡng khoảng cách Sval : Giá trị tiêu chuẩn
Rval(i): Giá trị của mẫu dữ liệu nhận được từ cảm biến theo nhãn thời gian thứ i j : Tổng số mẫu dữ liệu nhận được từ cảm biến trong nhóm δdist
Rtotal: Số bản ghi được kết hợp
Xét một ví dụ: Giả sử một tập dữ liệu được đọc liên tục là S = {3, 4, 3, 5, 4, 2, 4, 3, 5} như Hình 4.3.
- Lần đọc đầu tiên cho kết quả là 3 được chọn là giá trị tiêu chuẩn (sval = 3) - Tại nhãn thời gian thứ 2, giá trị là 4. Đặt ngưỡng khoảng cách δdist là 1 (là sự chênh lệch giá trị của lần đọc thứ 2 và lần đọc đầu tiên δdist = 4-3 = 1)
Áp dụng biểu thức 4.4 và 4.5 chúng ta xác định ba lần đọc đầu tiên {3, 4, 3} thuộc về cùng một bộ do sự khác nhau giữa chúng thỏa mãn 0<Sval<= 1.
- Với nhãn thời gian 4: Sự khác nhau giữa giá trị mẫu 5 > Sval (Sval = 3), quy tắc trên không còn đúng nữa. Vì vậy, với khoảng thời gian đầu tiên, bản ghi cảm biến được quyết định là 3.3 bằng cách lấy giá trị trung bình của bộ {3, 4, 3}.
Làm tương tự với phần còn lại của mẫu, kết quả là từ chín bản ghi cảm biến, nút cảm biến bây giờ chỉ phải phân bổ lưu trữ cho bốn giá trị dữ liệu và khoảng 56% không gian lưu trữ được giảm, tiết kiệm nhiều không gian hơn so với việc tối ưu dữ liệu ở pha Naïve.
Hình 4.3 Ví dụ về sơ đồ giảm dữ liệu dựa trên giá trị khoảng cách
Chiến lược này gây mất mát thông tin việc duy trì các giá trị xấp xỉ thay vì những bản gốc. Người dùng sẽ nhận được kết quả truy vấn xấp xỉ gần đúng theo đó. Tuy nhiên, việc sử dụng khoảng cách ngưỡng tối thiểu sẽ cho kết quả khá gần với dữ liệu thô ban đầu. Thuật toán 4.2 trình bày thủ tục ValueDistanceReduction() cho pha Level1.
Mặc dù công nghệ mạng cảm biến phát triển nhanh chóng hơn trước nhưng khả năng lưu trữ trong mạng cảm biến không tốt hơn so với cơ sở dữ liệu truyền thống. Vì vậy để lưu trữ các dữ liệu thu thập được trong một không gian với dung lượng lưu trữ bị giới hạn trong một thời gian dài vẫn là một vấn đề mở vào lúc này. Nói chung, nếu
tại mỗi nút cảm biến tiếp tục lưu trữ và duy trì dữ liệu cảm biến theo thời gian thực thì lưu trữ cục bộ tại mỗi nút sẽ bị tràn nhanh chóng. Để giải quyết vấn đề này, cảm biến có thể loại bỏ dữ liệu lịch sử lâu đời nhất, giúp tiết kiệm rất nhiều không gian lưu trữ. Dữ liệu cũ có thể được gửi đến các trạm cơ sở hoặc bị loại bỏ khỏi bộ nhớ của cảm biến mãi mãi. Nếu gửi dữ liệu cũ đến trạm cơ sở, chi phí lớn về truyền thông là bắt buộc, nhưng nếu loại bỏ chúng mà không thực hiện bất kỳ sao lưu gì thì truy vấn liên quan đến thông tin cũ sẽ không thể thực hiện được do dữ liệu cũ đã bị mất. Mặc dù dựa trên việc sao lưu trong hệ thống cơ sở dữ liệu truyền thống là dễ dàng, nhưng đó lại là khó khăn lớn đối với mạng cảm biến mà sự can thiệp của con người là rất khó.
Thuật toán 4.2 Ước khoảng giá trị trên một khoảng dữ liệu dựa vào các thông số về khoảng cách
Algorithm: ValueDistanceReduction
Input: k // Bản ghi yêu cầu cần lưu trữ từ nút
Ouput: avg // Giá trị trung bình sau pha giảm dữ liệu BEGIN
while (tập các mẫu nằm trong phạm vi của giá trị ước khoảng) do If (k được gửi đến yêu cầu để lưu trữ) then
If (Sval =null) then // Sval giá trị tiêu chuẩn để so sánh
Sval k
bfcurrent add k // Giá trị hiện tại trong bộ đệm else if (vdist = null) then
vdist k - bfprevious // Xác định giá trị khoảng cách tiêu chuẩn
bfcurrent add k
else if (vdist > 0 or k - Sval > 0) then // vdist nhận giá trị âm
if (vdisst >= k – Sval ) then bfcurrent add k end if
else if (vdist < 0 or k - Sval < 0) then // vdist nhận giá trị dương
if (vdisst <= k – Sval ) then bfcurrent add k end if
else
sumbf tổng các giá trị trong bf n số bản ghi trong bf avg sumbf/n endif endif end while return avg END
Cách tiếp cận không loại bỏ dữ liệu lịch sử và cũng không áp dụng dựa trên ổ đĩa sao lưu, nếu lưu trữ tràn xảy ra ngay cả với dữ liệu đã tổng hợp từ pha Level1 thì sẽ tiếp tục thực hiện chiến lược Level2 để nén dữ liệu trong lưu trữ một lần nữa bằng cách sử dụng các thông số đã giải thích ở trên. Phương pháp này là khá linh hoạt và luôn bảo đảm hoạt động tốt với các mẫu thay đổi liên tục, mặc dù tính chính xác của dữ liệu bị giảm.
Như minh họa trong Hình 4.4, dung lượng lưu trữ được tiết kiệm nhờ các thao tác xử lý tại pha Level1 và pha Level2, nên chi phí cho lưu trữ có thể được khắc phục. Ngoài ra, số lượng dữ liệu liên quan trong xử lý truy vấn sẽ nhỏ hơn so với thực hiện tìm kiếm trên dữ liệu thô. Vì vậy kích thước gói dữ liệu truyền trong mạng cảm biến cũng trở nên nhỏ hơn, đồng nghĩa với nguồn năng lượng khan hiếm trong mạng cảm biến sẽ không bị ảnh hưởng một cách đáng kể.
Chương 5
XỬ LÝ TRUY VẤN DỰA TRÊN PROXY
Chương này sẽ tập trung giải quyết vấn đề liên quan xử lý truy vấn trong mạng cảm biến và hệ thống ứng dụng. Truy vấn thường liên quan đến các thao tác không gian, thời gian, hoặc ngoài không gian thời gian. Người dùng khác nhau (hoặc có thể cùng một người dùng) đôi khi tìm kiếm những thông tin tương tự lặp nhiều lần. Truy vấn đó có thể trùng lặp trong các điều kiện tìm kiếm. Do đó, hệ thống ứng dụng cần phải xử lý nhiều lần cho các truy vấn trùng lặp đó. Với các truy vấn phải xử lý trong mạng cảm biến, nút cảm biến sẽ phải thực hiện các tác vụ tương tự nhiều hơn một lần trong khi chúng hoàn toàn có thể tránh được vấn đề này.
Để giải quyết vấn đề này, nghiên cứu đề xuất kỹ thuật xử lý truy vấn lịch sử cho cảm biến với sự hỗ trợ của proxy nhằm tránh lặp lại các xử lý với phần tìm kiếm chồng chéo. Mục tiêu đặt ra là cùng một yêu cầu từ người dùng nên được phân tán trong mạng cảm biến không quá một lần.