www.eprace.edu.pl » sieci-sensorowe » Symulator sieci sensorowych » Komponenty sieci sensorowej w symulatorze Jsim

Komponenty sieci sensorowej w symulatorze Jsim

W tym rozdziale zostały przedstawione komponenty z jakich został zbudowany model sieci sensorowej.

Węzeł zdarzeniowy

W skład węzła zdarzeniowego wchodzą następujące komponenty:

  1. TargetAgent – dostarcza podstawowych funkcjonalności dla węzła zdarzeniowego. Generuje okresowo zdarzenia, oraz przy użyciu niższej warstwy transmituje je poprzez kanał sensorowy. TargetAgent jest podklasą Module, kluczowej klasy JSim która posiada interfejsy do komunikacji z niższą warstwą oraz interfejs czasowy odpowiadający za okres generowanych zdarzeń. TargetAgent implementuje ponadto ActiveComponent pozwalającym mu działać jako źródło danych.

Rysunek 4.5 Architektura połączeń między komponentami w węźle zdarzeniowym [20].

  1. TargetPacket – implementuje pakiet zawierający zdarzenie wygenerowane przez TargetAgenta.

  2. SensorMobilityModel – zarządza położeniem, oraz przemieszczaniem węzła zdarzeniowego. SensorMobilityModel jest podklasą klasy MobilityModel. Położenie węzła określone jest przez trzy zmienne (długość, szerokość, wysokość). MobilityModel wspiera dwa różne modele przemieszczania: trajektorie oraz losowy punkt docelowy. W pierwszym modelu węzeł przemieszcza się ze stałą prędkością po wstępnie określonych punktach trajektorii, w drugim natomiast węzeł sam losuje punkt do którego się przemieszcza, a gdy już go osiągnie powtarza procedurę losowania.

  3. SensorPhy – implementuje warstwę fizyczną sensora. SensorPhy pełni dwie różne role zależnie od tego czy istnieje jako stos protokołu węzła zdarzeniowego, czy jako sam węzeł zdarzeniowy. W przypadku gdy istnieje on jako węzeł zdarzeniowy jego rolą jest odbieranie zdarzeń wygenerowany przez TargetAgent, pobieranie z SensorMobilityModel danych o położeniu, następnie przesyłanie informacji dalej poprzez kanał sensorowy. SensorPhy jest podklasą klasy Module.

  4. SensorPositionReportContect – definiuje układ niezbędny do wymiany informacji pomiędzy SensorPhy (wywołującym) a SensorMobilityModel (wywoływanym). Jest on podklasą klasy Contract.

Kanał sensorowy

Do zrealizowania kanału sensorowego służą następujące klasy.

  1. SensorNodePositionTracker – zarządza położeniem wszystkich węzłów w bezprzewodowej sieci sensorowej. Informacje te dostarczane są przez SensorMobilityModel, który jest zaimplementowany w każdym węźle. Główną funkcją tego komponentu jest decydowanie który węzeł znajduje się w promieniu nadawania i powinien otrzymać informacje o wygenerowanym zdarzeniu.

  2. SensorChannel – implementuje kanał sensorowy. Jego funkcją jest odbieranie zdarzeń wygenerowanych przez węzeł zdarzeniowy. Korzysta on z pól SensorNodePositionTracker z których pobiera listę węzłów znajdujących się w promieniu nadawania węzła zdarzeniowego. Jeśli spełniają one założone kryteria przesyła do nich informacje o wygenerowanym zdarzeniu.

  3. AcousticChannel – implementuje akustyczny kanał, dziedziczy po klasie SensorChannel. Opóźnienie propagacyjne w tym kanale jest funkcja prędkości dźwięku i odległości pomiędzy nadajnikiem (węzeł zdarzeniowy) a odbiornikiem (węzeł sensorowy).

  4. SensorNeighbourQuerryContract – definiuje zależności niezbędne do wymiany informacji pomiędzy SensorChannel a SensorNodePositionTracker.

Sensorowy model propagacyjny

Model propagacyjny zbudowany jest z następujących komponentów:

  1. SensorPropagationModel – bazowa abstrakcyjna klasa dla różnych modeli propagacyjnych.

  2. SeismicProp – podklasa klasy SensorPropagationModel, implementuje sejsmiczny model propagacyjny. Głównym jej zadaniem jest przetwarzanie odbieranego sygnału jako funkcji odległości między nadawcą a odbiorcą.

  3. AcousticProp - podklasa klasy SensorPropagationModel, implementuje sejsmiczny model propagacyjny. Głównym jej zadaniem podobnie jak poprzedniej klasy jest przetwarzanie odbieranego sygnału jako funkcji odległości między nadawcą a odbiorcą.

Sensor

W sensorze zaimplementowano następujące komponenty:

  1. Battery Model – składający się z klas:

    1. BatteryBase – abstrakcyjna bazowa klasa dla różnych modeli zasilania. Definiuje porty wymagane przez dziedziczące z niej modele (niezbędne do połączenia z CPU i modelem radiowym (radio models)). Jest ona podklasą klasy Component.

    2. BatteryTable – Tablica definiująca pojemność zaimplementowanej baterii. Wartości nie zdefiniowane wprost są interpolowane.

    3. BatteryCoinCell – Podklasa BatteryBase. Definiuje tablicę pojemności.

    4. BatterySimple – Podklasa BatteryBase. W tym modelu pojemność jest stała.

    5. BatteryContract – Definiuje zależności niezbędne do wymiany informacji pomiędzy Battery Model a CPU i Radio Model.

  2. CPU Model – składający się z klas:

    1. CPUBase – abstrakcyjna bazowa klasa dla różnych modeli CPU. Definiuje porty niezbędne dla każdego modelu CPU.

    2. CPUAvr – podklasa CPUBase dostarczająca wartości dla różnych stanów jednostki obliczeniowej (idle, sleep, off, transmit, receive).

  3. Radio Model – składający się z klas:

    1. RadioBase – abstrakcyjna bazowa klasa dla różnych modeli radiowych. Definiuje porty niezbędne do połączenia z współpracującymi obiektami.

    2. RadioSimple - podklasa RadioBase dostarczająca wartości dla różnych stanów modelu radiowego (idle, sleep, off, transmit, receive).

  4. Sensor Protocol Stack - składający się z klas:

    1. SensorPhy – ta klasa odgrywa podwójną rolę, jest zaimplementowana zarówno w węźle zdarzeniowym jak i sensorowym. SensorPhy zaimplementowana jako stos w węźle sensorowym odbiera poprzez kanał sensorowy sygnały generowane przez węzeł zdarzeniowy (położenie, czas, moc). Sygnały powyżej ustalonego progu są przekazywane do wyższej warstwy w stosie protokołu sensorowego, sygnały poniżej progu są odrzucane.

    2. SensorPropagationQueryContract – definiuje zależności niezbędne do wymiany informacji pomiędzy SensorPhy a Sensor Propagation Model.

    3. SensorAgent – implementuje warstwę sensorową (sensor layer). Otrzymuje zdarzenia z niższej warstwy (SensorPhy) i przekazuje je do wyższej warstwy (sensor application layer). Oblicza następujące zmienne: położenie węzła zdarzeniowego, natężenie i powtarzalność wykrytego zdarzenia, współczynnik mocy do szumu.

  5. Sensor Application Layer i Transport Layer – składające sie z klas:

    1. SensorApp – implementuje warstwę aplikacji sensorowej (sensor application layer). Odbiera dane od SensorAgent i po przetworzeniu przekazuje informacje do warstwy transportowej (transport layer). Informacje te są transportowane poprzez kanał bezprzewodowy (wireless Chanel) do węzła nadrzędnego.

    2. SensorPacket – implementuje pakiety danych (data packet), które są transportowane poprzez kanał bezprzewodowy (wireless channel). SensorPacket dziedziczy po klasie Packet.

    3. WirelessAgent – implementuje warstwę transportową pomiędzy sensor application layer a wireless protocol stack. Otrzymuje dane od SensorApp które po opakowaniu w SensorPacket przekazuje do węzła nadrzędnego. WirelessAgent dziedziczy po klasie Protocol.

  6. Wireless Protocol Stack – składający się z klas:

    1. PktDispatcher – dostarcza funkcjonalności dla warstwy IP. Przekazuje otrzymane pakiety do warstwy wyższej.

    2. WirelessPropagationModel – implementuje model propagacyjny dla kanału bezprzewodowego.

    3. WirelessPhy – implementuje warstwę fizyczną dla połączeń radiowych. Filtruje wiadomości, które mają zostać przekazane do WirelessPropagationModel na podstawie ustalonego progu mocy.

Węzeł nadrzędny

Węzeł nadrzędny jest zbudowany podobnie do zwykłego węzła sensorowego a w jego skład wchodzą:

- SensorApp

- WirelessAgent

- Wireless protocol Stack



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.