Push
Prema arhitekturi, s gledišta Pidgeona, postoje višestruke točke s kojih mogu nastati greške. Počevši od gatewaya pa sve do servera, možemo očekivati greške u sljedećim područjima:
-
Gateway -> Pidgeon: Gatewayi su odgovorni za prijenos mjerenja s mjerača na Pidgeon putem pull mehanizma. Postoji mali milijun načina na koji bi ovo moglo poći po zlu, ali s gledišta Pidgeona, relevantne su samo dvije kategorije scenarija: gateway ne šalje podatke ili gateway šalje netočne podatke.
-
Pidgeon: Pidgeon sam po sebi može prestati raditi ili imati grešku koja uzrokuje prestanak povlačenja podataka s gatewaya.
-
Pidgeon -> Server: Pidgeon šalje mjerenja na server. Ako je server isključen ili nema veze sa serverom ili postoje problemi s zahtjevima, server neće moći pohraniti podatke.
Greške
Evo popisa grešaka koje se mogu dogoditi u push procesu podijeljenih po područjima:
-
Gateway -> Pidgeon:
- Gateway ne šalje podatke
- Gateway šalje netočne podatke
-
Pidgeon:
- Pidgeon nije povezan na mrežu
- Pidgeon baca iznimku (softverska greška)
-
Pidgeon -> Server:
- Server nije povezan na mrežu
- Server baca iznimku (softverska greška)
Testiranje
Za testiranje otpornosti u push procesu, možemo simulirati greške na sljedeće načine:
-
Gateway ne šalje podatke: Isključite gateway i ponovno ga uključite. Pidgeon ne bi trebao biti pogođen.
-
Gateway šalje netočne podatke: Promijenite podatke koje gateway šalje. Pidgeon bi trebao biti sposoban otkriti netočne podatke i ignorirati ih.
-
Pidgeon nije povezan na mrežu: Isključite Pidgeon s mreže i ponovno ga spojite. Pidgeon bi trebao moći otkriti mrežni kvar i pokušati ponovno poslati podatke.
-
Pidgeon baca iznimku: Uvedite grešku u Pidgeon koja uzrokuje da baci iznimku. Pidgeon bi trebao biti sposoban uhvatiti iznimku, zabilježiti je i nastaviti raditi.
-
Server nije povezan na mrežu: Isključite server s mreže i ponovno ga spojite. Pidgeon bi trebao moći otkriti mrežni kvar i pokušati ponovno poslati podatke.
-
Server baca iznimku: Uvedite grešku u server koja uzrokuje da baci iznimku. Pidgeon bi trebao biti sposoban uhvatiti iznimku, zabilježiti je i nastaviti raditi.