Khoảng tối ưu húa dành cho truy vấn one-shot hoặc phổ biến dữ liệu one-shot cú phần bị giới hạn, cụ thể, khi khụng sử dụng được tổng hợp dữ
liệu. Do đú, chỳng ta tập trung vào trường hợp giao tỏc lặp.
Giao thức đầu tiờn loại này là directed diffusion. Nú cú liờn quan mật thiết với vấn đề mở rộng mạng và cố gắng tỡm cỏc giải phỏp khụng phụ thuộc vào cỏc thuộc tớnh về độ lớn của mạng giống như cỏc bộ định danh nốt cảm
biến đơn nhất toàn cục; đỳng hơn, mục tiờu của nú là tỡm ra giải phỏp hoàn toàn dựa trờn cỏc giao tỏc cục bộ. Mẫu (pattern) dịch vụ phổ biến nhất là
subscription cỏc nguồn dữ liệu mà sẽpublish (cụng bố) dữ liệu với một tốc độ
cú thể lựa chọn được trong một khoảng thời gian lựa chọn.
Directed diffusion thực sự là một triết lý thiết kế hơn là một giao thức cụ thể và cú nhiều biến thểđó được tối ưu húa cho những trường hợp cụ thể. Chỳng ta bắt đầu với biến thể nguyờn thủy và cơ bản nhất của nú là kộo hai phai (two phase pull).
Trong mụ hỡnh này, sự phõn tỏn dữ liệu bắt đầu bằng việc cỏc nốt phổ
biến sự thớch thỳ của chỳng vào những loại dữ liệuđó được đặt tờn, diễn tả sự
thớch thỳ của chỳng bằng một tập cỏc cặp thuộc tớnh-giỏ trị; theo cỏch núi publish/subscrible, điều này tương ứng với một subscription của dữ liệu. Những thụng điệp interest này được phõn tỏn quan mạng, trường hợp đơn giản nhất là chỳng được quảng bỏ cho tất cả.
Khi một interest đó được quảng bỏ, sẽ là khụng đỏng kể để thiết lập một cõy đồng quy với mỗi nốt để nhớ nốt mà từ đú nú nhận thụng điệp
interest đầu tiờn từ một sink cho trước; thớch dữ liệu khỏc nhau và/hoặc từ
sink khỏc nhau sẽ cho kết quả là tạo ra cỏc cõy phõn biệt. Nhưng cấu trỳc cõy
đơn giản như vậy lại phải đối mặt với một trở ngại nghiờm trọng: Vỡ sự thiếu vắng bộ định danh nốt cảm biến đơn nhất toàn cục, nờn một nụt cảm biến trong mạng khụng thể phõn biệt được cỏc thụng điệp interest khỏc nhau cú
đến từ cỏc sink dữ liệu khỏc nhau hay khụng và do đú sẽ cần phải cấu trỳc những cõy đồng quy riờng biệt để chỉ cho tất cả cỏc sink biết về dữ liệu đó
publish hoặc cú phải cỏc gúi dữ liệu này là thuộc về cựng một sink hay đơn giản là đến từ cỏc đường khỏc nhau hay khụng.
Với một nốt X trong vớ dụ Hỡnh 2.2, đầu tiờn chỉ cú một lựa chọn – ghi nhớ tất cả cỏc hàng xúm mà từ đú một thụng điệp interest đó được nhận, sau
đú trờn mỗi dữ liệu đó được publish, truyền đi dữ liệu thật tới tất cả cỏc hàng xúm này. Trong thuật ngữ của directed diffusion, đõy là sự thiết lập của một
gradient hướng tới nốt gửi interest. Mỗi nốt lưu, cho mỗi loại dữ liệu nhận
được trong một interest, trong một bộ nhớ đệm gradient một tập cỏc gradient
riờng, cho mỗi hàng xúm. Khỏc với mối quan hệ cha-con trong một cõy, cỏc
gradient thường sẽ được thiết lập lưỡng hướng giữa hai hàng xúm khi cả hai hàng xúm cựng chuyển tiếp thụng điệp interest. Ngoài ra, một gradient khụng chỉđơn giản là một hướng, mà nú cũn chứa cả một giỏ trị. Giỏ trị này thể hiện sự quan trọng hoặc hữu ớch với liờn kết đó cho. Nú cú thể chứa nhiều ngữ
nghĩa khỏc phụ thuộc vào ứng dụng cụ thể mà directed diffusion đang hỗ trợ. Ban đầu cỏc giỏ trị gradient này là giống nhau trờn mỗi hàng xúm; chỳng
được sửa đổi khi thực thi giao thức. Tương tự như vậy, những gradient này
được khởi tạo với giỏ trị thấp.
Một khi cỏc gradient đó được thiết lập, ngay cả chỉ với giỏ trị ban đầu, dữ liệu cú thểđược truyền đi.
2.2. Phương phỏp định tuyến Directed Diffusion.
Directed Diffusion bao gồm nhiều thành phần: interest, thụng điệp dữ
liệu, gradient, và reinforcement. Một thụng điệp interest là một truy vấn chỉ
ra điều mà người dựng cần. Mỗi thụng điệp interest chứa một mụ tả của dữ
liệu mà người dựng quan tõm. Thường thỡ dữ liệu trong mạng cảm biến là thụng tin về sự vật, hiện tượng đó được tập hợp hoặc xử lý mà chỳng trựng khớp với một sự quan tõm hoặc một yờu cầu của người dựng. Những dữ liệu như vậy cú thể là một sự kiện mà là một mụ tả ngắn về sự vật, hiện tượng cảm biến được. Trong Directed Diffusion, dữ liệu được đặt tờn bằng cỏch sử dụng
cặp thuộc tớnh – giỏ trị. Interestđược phỏt tỏn lờn mạng cảm biến để “lụi kộo” dữ liệu đó được đặt tờn về phớa người dựng. Sự truyền bỏ interest thiết lập cỏc
gradient bờn trong mạng cho sự truyền bỏ dữ liệu. Đặc biệt, một gradient là một trạng thỏi hướng được tạo ra bờn trong mỗi nốt cảm biến nhận được một
interest. Hướng gradient được đặt hướng thẳng tới nốt cảm biến hàng xúm mà từđú nú nhận được interest. Cỏc sự kiện được truyền bỏ thẳng tới những nốt cảm biến sinh ra interest cựng với nhiều đường dẫn gradient. Mạng cảm biến reinforce một hoặc một số lượng nhỏ những đường dẫn này (Hỡnh 2.1).
2.2.1. Phương phỏp đặt tờn.
Trong Directed Diffusion, cỏc tỏc vụ được mụ tả hoặc đặt tờn bằng cỏch sử dụng cỏc cặp thuộc tớnh – giỏ trị. Sau đõy là một mụ tả đơn giản về
việc theo dừi động vật:
type = four-legged animal //phỏt hiện vị trớ của động vật interval = 10 ms //gửi lại sự kiện sau mỗi 10 ms
duration = 10 minutes //sau mỗi 10 phỳt
rect = [-100, 100, 200, 400] //từ cỏc nốt cảm biến trong hỡnh chữ
nhật cú tọa độ này.
Vựng tọa độ hỡnh chữ nhật này được lựa chọn dựa theo một số hệ tọa
độ nhất định, thường là hệ GPS.
Vỡ mụ tả tỏc vụ xỏc định một interest cho dữ liệu (khớp với cỏc thuộc tớnh), nờn mụ tả tỏc vụ cũng được ưa thớch hơn interest. Dữ liệu cũng được
đặt tờn bằng cỏch sử dụng mụ hỡnh đặt tờn tương tự. Vớ dụ, một cảm biến phỏt hiện một động vật cú thể sinh ra dữ liệu sau:
type = four-legged animal //phỏt hiện vị trớ động vật instance = elelphant //loại động vật phỏt hiện được
location = [125, 220] //tọa độước lượng
intensity = 0.6 //ước lượng biờn tớn hiệu
confidence = 0.85 //độ tin cậy trong ước lượng timestamp = 01:20:40 //thời gian sinh ra sự kiện
Việc lựa chọn mụ hỡnh đặt tờn là bước đầu tiờn trong khi thiết kế
Directed Diffusion. Với mụ hỡnh đặt tờn dựa trờn thuộc tớnh – giỏ trị, mỗi thuộc tớnh được gắn với một khoảng giỏ trị. Vớ dụ, khoảng của thuộc type là tập cỏc giỏ trị sổ cỏc ký hiệu điện tớn diễn tả cỏc đối tượng di động (vớ dụ: xe cộ, động vật, con người). Giỏ trị thuộc tớnh cú thể là bất kỳ tập con nào trong vựng giỏ trị của nú. Giỏ trị thuộc tớnh type trong vớ dụ là giỏ trị sổ cỏc ký hiệu
điện tớn thể hiện cỏc loại động vật bốn chõn.
Cú nhiều lựa chọn cho một sắp xếp cỏc cặp thuộc tớnh – giỏ trị (vớ dụ: mụ hỡnh phõn cấp) và cỏc mụ hỡnh đặt tờn khỏc (vớ dụ: đặt tờn mang tớnh khỏi niệm). Trong một số phạm vi, sự lựa chọn mụ hỡnh đặt tờn và sắp xếp cú thể ảnh hưởng đến tớnh biểu hiện của cỏc tỏc vụ và cú thể làm giảm hiệu năng
quảng bỏ. Vớ dụ, một sắp xếp dạng sơ đồ phõn cấp của cỏc cặp thuộc tớnh – giỏ trị cú thể làm hẹp đi khụng gian nghiờn cứu bởi cỏc quỏ trỡnh giải quyết tờn (name resolution) và làm đơn giản húa cỏc bộ xỏc định tờn cho dễ hiểu hơn. Tuy nhiờn, trong luận văn này, mục đớch chớnh là đạt được một sự hiểu biết bước đầu về mụ hỡnh Directed Diffusion.
2.2.2. Interest và Gradient.
Mụ tả tỏc vụ được đặt tờn (vớ dụ: interest) thường được xem vào trong mạng tại một số nốt (cú thể là chuyờn quyền như sink). Nốt sink tạo ra một trạng thỏi tỏc vụ mà nú sẽ được làm trong sau thời gian được xỏc định bởi thuộc tớnh duration.
Với mỗi tỏc vụ đang hoạt động, sink theo định kỳ quảng bỏ một
interest tới tất cả cỏc hàng xúm của nú (cỏc phương phỏp gửi interest hiệu quả
hơn sẽ được trỡnh bày sau). Interest khởi tạo này cũng chứa cỏc thuộc tớnh như miờu tả trong Mục 2.3.1. Thuộc tớnh interval xỏc định một tốc độ dữ liệu sự kiện (Do đú, tốc độ dữ liệu là 100 sự kiện trờn giõy trong vớ dụ đú). Tuy nhiờn, khụng giống với vớ dụ đú, thuộc tớnh interval trong interest khởi tạo này là lớn hơn nhiều. Vỡ cú tớnh thăm dũ, interest khởi tạo cú xu hướng xỏc
định xem cú nốt cảm biến nào phỏt hiện được động vật bốn chõn hay khụng. Bởi vậy, interest cú tớnh thăm dũ khởi tạo xỏc định một tốc độ dữ liệu thấp (vớ dụ: 1 sự kiện trờn giõy). Đõy khụng phải là sự lựa chọn duy nhất, nhưng nú thể hiện được sự cõn bằng cỏc yếu tốđể cú được hiệu năng tốt. Vỡ vị trớ nguồn khụng được xỏc định một cỏch chớnh xỏc, cỏc interest cần phải được quảng bỏ vượt ra ngoài phạm vi của mạng cảm biến. Kết quả là, nếu sink đó lựa chọn
được một tốc độ dữ liệu khởi tạo cao hơn, thỡ cú thể sẽ phải tiờu thụ năng lượng lớn hơn bởi phải quảng bỏ dữ liệu cảm biến rộng hơn. Tuy nhiờn, với tốc độ dữ liệu khởi tạo lớn cao hơn, thời gian đạt được kết quả khảo sỏt độ
chớnh xỏc cao lại giảm đi. Tốc độ dữ liệu cao hơn như mong muốn cú thểđạt
được bằng sự tăng cường (sẽ được trỡnh bày trong Mục 2.3.4). Bởi vậy,
interest khởi tạo được mụ tả như sau:
type = four-legged animal interval = 1 s
rect = [-100, 200, 200, 400] timestamp = 01:20:40 expiresAt = 01:30:40
Trước khi tụi mụ tả cỏch xử lý cỏc interest, tụi muốn nhấn mạnh rằng
interest là một trạng thỏi mềm mà sẽđược làm trong một cỏch định kỳ bởi cỏc
sink. Cỏc interest định kỳ từsink là cần thiết bởi vỡ cỏc interestđược truyền đi khụng tin cậy. Để làm trong một cỏch định kỳ interest, sink đơn giản gửi lại cựng một interest với thuộc tớnh timestamp tăng lờn 1 đơn vị.
Mọi nốt cảm biến duy trỡ một bộ nhớ đệm interest. Mỗi thành phần trong bộ nhớ đệm tương ứng với một interest riờng biệt. Hai interest là phõn biệt, trong vớ dụ tụi đưa ra, nếu thuộc tớnh type của chỳng khỏc nhau, hoặc cỏc thuộc tớnh rect là (cú thể khụng hoàn toàn) tỏch rời nhau. Mặt khỏc, hai
interest này khớp với nhau. Cỏc interest khụng chứa thụng tin về sink nhưng lại chứa thụng tin về nốt cảm biến ngay phớa trước chỳng. Định nghĩa về
interest phõn biệt cũng cho phộp sựtổng hợp interest. Hai interest I1 và I2 (với
type phõn biệt và hoàn toàn trựng khớp về thuộc tớnh rect nhưng khỏc nhau về
thuộc tớnh interval) cú thể (trong một số trường hợp) được thể hiện bằng một mục interest đơn.
Một mục interest trong bộ nhớ đệm chứa nhiều trường. Một trường
timestamp chỉ ra thời gian xảy ra sự so sỏnh khớp interest nhận được cuối cựng. Mục interest cũng chứa nhiều trường gradient (lờn tới 1 / 1 hàng xúm). Mỗi gradient chứa một trường tốc độ dữ liệu (do hàng xúm tương ứng yờu cầu và được kế thừa từ thuộc tớnh interval của interest). Trường duration chỉ
ra thời gian thực xấp xỉ của gradient và interest. Gradient được sử dụng cho quảng bỏ dữ liệu như miờu tả trong Mục 1.3.3. (Với cỏc ứng dụng bắt-sự kiện, mỗi gradient chứa một loại gradient thay thế tốc độ dữ liệu. Cú hai loại
gradient: một gradient thăm dũ và một gradient dữ liệu. Cỏc gradient thăm dũ cú xu hướng dành cho thiết lập và sửa đường dẫn trong khi cỏc gradient dữ liệu là dành cho việc gửi dữ liệu thật. Loại gradient mặc định là thăm dũ).
Khi một nốt cảm biến nhận được một interest, nú kiểm tra xem interest
cú tồn tại trong bộ nhớđệm khụng. Nếu khụng cú interest nào tồn tại, nốt cảm biến tạo một mục interest và xỏc định cỏc trường của mục interest từ interest
nhận được. Mục này chứa một gradient đơn trỏ tới hàng xúm mà từ đú nốt cảm biến nhận được interest, với tốc độ dữ liệu sự kiện nhất định. Trong vớ dụ, một hàng xúm của sink sẽ tạo ra một mục interest với một gradient của một sự kiện trong 1 giõy hướng tới sink. Bởi vậy, cần phải phõn biệt từng hàng xúm riờng. Bất kỳ bộ định danh hàng xúm đơn nhất cục bộ nào cũng cú thể ỏp dụng được. Nếu cú mục interest trựng khớp, nhưng khụng cú gradient
nào cho nốt gửi interest, nốt cảm biến sẽ thờm một gradient hướng tới hàng xúm đú và cập nhật cỏc trường timestamp, duration sao cho phự hợp. Cuối cựng, nếu cú cả mục interest và gradient, nốt cảm biến chỉ đơn giản là cập nhật cỏc trường timestamp và duration.
Gradient hết hạn sẽ bị loại bỏ ra khỏi mục interest của nú, nhưng khụng phải tất cả cỏc gradientđều hết hạn cựng một thời điểm. Vớ dụ, nếu hai
sink gửi cỏc interest phõn biệt với cỏc thời gian hết hạn khỏc nhau, một số nốt cảm biến trong mạng cú thể cú một mục interest với những thời gian hết hạn
gradient khỏc nhau. Khi tất cả cỏc gradient trong một mục interest hết hạn, mục interest sẽ bị loại bỏ khỏi bộ nhớđệm.
Sau khi nhận được một interest, một nốt cảm biến cú thể quyết định gửi lại interest tới một số hàng xúm của nú. Với cỏc hàng xúm của nú, interest
này xuất hiện ở dạng nguyờn thủy từ nốt gửi, mặc dự một sink ở xa cú thể là nguồn gốc thực sự phỏt sinh ra interest. Với giao tỏc cục bộ hoàn toàn như
cỏc interest nhận được đều được gửi lại. Bằng cỏch sử dụng bộ nhớ đệm
interest, một nốt cảm biến cú thểlờđi một interest nhận được nếu nốt mới gửi lại một interest trựng khớp.
Thường thỡ cú nhiều lựa chọn cho cỏc hàng xúm để gửi lại interest. Lựa chọn đơn giản nhất là quảng bỏ lại bản tin interest tới tất cả cỏc hàng xúm. Lựa chọn này là hợp lý trong sự vắng mặt của thụng tin về cỏc nốt cảm biến mà cú thể thỏa món interest. Trong vớ dụ tụi đưa ra, cũng cú thể cú khả năng thực hiện định tuyến theo địa lý interest hoặc giới hạn phạm vi quảng bỏ
intersest, bằng cỏch sử dụng một số kỹ thuật đó được miờu tả trong tài liệu [RF04, RF05, RF06, RF07], để tiết kiệm năng lượng. Cuối cựng, trong một mạng cảm biến khụng di động, một nốt cảm biến cú thể sử dụng dữ liệu lưu trong bộ nhớ đệm để định hướng cỏc interest. Vớ dụ, nếu để đỏp ứng một
interest trước đú, một nốt cảm biến nghe từ một số hàng xúm C dữ liệu được gửi bởi một số cảm biến trong vựng xỏc định bởi thuộc tớnh rect, nú cú thể
hướng bản tin interest này tới C, mà khụng quảng bỏ tới tất cả cỏc hàng xúm.
Sau khi cỏc interest đó được quảng bỏ, tất cả cỏc nốt cảm biến thiết lập cỏc gradient (Hỡnh 2.2). Khỏc với mụ tả đơn giản (Hỡnh 2.1(b)), mọi cặp nốt cảm biến là hàng xúm của nhau đều thiết lập một gradient hướng tới nhau, như một hệ quả cốt yếu của cỏc giao tỏc cục bộ. Một interest khụng chứa thụng tin về một sink. Do đú, khi một nốt cảm biến nhận được một interest, nú khụng cú khả năng xỏc định được cú truyền interest ngược lại nốt cảm biến khụng bởi vỡ sẽ xảy ra hiện lượng lặp, interest được truyền đi bằng cỏch sử dụng một đường khỏc, hoặc interest giống hệt như vậy sẽ được sinh ra từ
một sink khỏc. Gradient lưỡng-hướng như vậy cú thể khiến một nốt cảm biến nhận được một bản sao của cỏc sự kiện tốc độ dữ liệu thấp từ mỗi một hàng xúm của nú. Tuy nhiờn, kỹ thuật này cú thể giỳp khụi phục nhanh hơn những
đường bị lỗi hoặc tăng cường những đường theo kinh nghiệm tốt hơn, và khụng xảy ra những hiện tượng lặp dai dẳng.
Thường thỡ một gradient bao gồm một giỏ trị và một hướng để gửi đi