3. Logování událostí
2N Helios IP implementuje interní log událostí, do kterého se stále ukládají různé typy událostí vznikající v zařízení – stisk klávesy, zadání numerického kódu, detekce RFID karty, změny stavu hovoru apod.
Velikost logu je dimenzovaná na 500 událostí. V případě, že je log zaplněn, vložení jedné nové události způsobí odstranění nejstarší události. Události v logu jsou seřazeny podle data a času (TimeStamp). Maximální rozlišení času je 1 s. Každá událost má zároveň přiřazené jednoznačné 16bit RecordId, které je automaticky zvyšováno o 1 s každou novou událostí. Pomocí RecordId lze rozlišit záznamy v rámci stejného data a času.
Uložení logu událostí v 2N Helios IP si lze představit jako následující tabulku:
| TimeStamp | RecordID | Event Type | Event Data |
---|---|---|---|---|
1 | 13/06/01 12:05:01 | 65533 | CardEntered | Card=… |
2 | 13/06/01 17:30:23 | 65534 | CardEntered | Card=… |
3 | 14/06/01 08:10:23 | 65535 | KeyPressed | Key=… |
4 | 14/06/01 08:10:23 | 0 | KeyPressed | Key=.. |
… | … | … | … | |
500 | 27/06/01 17:05:01 | 496 | CardEntered | Card=… |
První řádek tabulky reprezentuje nejstarší položku (na začátek logu). Poslední řádek tabulky reprezentuje nejnovější položku (na konci logu). Protože RecordID je 16bitové číslo, automaticky přetéká z hodnoty 65535 na 0.
2N Helios IP definuje několik typů událostí ukládaných do logu.
Event | Popis |
---|---|
KeyPressed | Stisk klávesy |
CallStateChanged | Změna stavu hovoru |
CodeEntered | Vložení kódu pomocí numerické klávesnice |
CardEntered | Detekce RFID karty |
DeviceState | Změna stavu zařízení |
Vyčítání logu událostí z 2N Helios IP je založeno na standardu WS-BaseNotification. Klient může interní log 2N Helios IP vyčítat dvěma způsoby – v režimu Subscription a v režimu PullPoint.
V režimu Subscription 2N Helios IP odesílá události klientovi, který si odběr registroval automaticky ve formě Notify zpráv.
V režimu PullPoint musí klient aktivně události z logu vyčítat pomocí požadavku GetMessages.
Odběr událostí v režimu Subscription
Klient, který chce odebírat události z 2N Helios IP, se musí zaregistrovat (vytvořit tzv. Subscription) pomocí požadavku Subscribe. Klient musí v požadavku uvést typ událostí, které chce odebírat a uvést HTTP adresu, na kterou se mají posílat události. Klient musí zároveň uvést dobu, na kterou se chce registrovat.
V případě úspěšné registrace 2N Helios IP odpoví zprávou SubscribeResponse, jejíž součástí je Subscription Id, které je nutno použít pro další komunikaci s 2N Helios IP.
Po úspěšné registraci začne 2N Helios IP odesílat Notify zprávy na uvedenou HTTP adresu. Události jsou odesílány bez zpoždění v okamžiku jejich vzniku. Při registraci lze specifikovat, kolik událostí lze maximálně odeslat v rámci jedné zprávy Notify.
Doba registrace je časově omezená (klient ji uvádí v požadavku Subscribe). Po vypršení této doby je klient automaticky odregistrován od odběru událostí. Klient může prodloužit dobu registrace (před jejím vypršením) pomocí požadavku Renew. 2N Helios IP odpoví odpovědí RenewResponse.
Klient může explicitně ukončit registraci pomocí požadavku Unsubscribe. 2N Helios IP odpoví na tento požadavek odpovědí UnsubscribeResponse.
V případě, že mezi klientem a 2N Helios IP firewall nebo NAT, nemusí být režim odběru událostí pomocí Subscription vždy vhodný. Notify zprávy budou doručeny pouze v případě, že síťové prvky jsou vhodně nakonfigurované.
Na následujícím obrázku je zobrazen stavový diagram a obvyklá posloupnost zpráv mezi klientem a 2N Helios IP:
Odběr událostí v režimu PullPoint
Klient, který chce odebírat události z 2N Helios IP, se musí zaregistrovat (vytvořit tzv. PullPoint) pomocí požadavku CreatePullPoint. Klient musí v požadavku uvést typ událostí, které chce odebírat. Klient musí zároveň uvést dobu, na kterou se chce registrovat.
V případě úspěšné registrace 2N Helios IP odpoví zprávou CreatePullPointResponse, jejíž součástí je Subscription Id, které lze použít pro další komunikaci s HeliosIP.
Po úspěšné registraci může klient periodicky vyčítat události z 2N Helios IP pomocí požadavku GetMessages. 2N Helios IP odpovídá odpovědí GetMessagesResponse, která obsahuje seznam událostí. V případě, kdy žádná událost není ve frontě, seznam událostí v odpovědi je prázdný.
Doba registrace je časově omezená (klient ji uvádí v požadavku CreatePullPoint). Po vypršení této doby je klient automaticky odregistrován od odběru událostí. Klient může prodloužit dobu registrace (před jejím vypršením) pomocí požadavku Renew. 2N Helios IP odpoví odpovědí RenewResponse.
Klient může explicitně ukončit registraci pomocí požadavku Unsubscribe. 2N Helios IP odpoví na tento požadavek odpovědí UnsubscribeResponse.