Onvif Event Handling์ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค
์ฒซ ๋ฒ์งธ) Real-time Pull-Point Notification Interface
๋๋ฒ์งธ) Notification Streaming Interface
์ธ๋ฒ์งธ) Basic Notification Interface
์ฒ์ ๊ณต๋ถํ ๋ ์ฝ๊ณ ์ง๊ธ ๋ค์๋ณด๋ ๋์น ๋ถ๋ถ์ด ๋ง์ด ๋ณด์ฌ์,
๋ฆ์ ์ ๋ฆฌ๋ฅผ ํ๋ ค๊ณ ํ๋ค
๊ท๊ฒฉ์ Onvif Core์ WS-BaseNofitication, WS-Topics๋ฅผ ์ฐธ๊ณ ํ์๋ค
๊ท๊ฒฉ์ ํด์ํ๋ฉฐ ์ ๋ฆฌํ๊ฑฐ๋ผ ๊ฐ์ธ ์๊ฐ์ด ๋ง์ด ๋ค์ด๊ฐ์์์ ์ ์ํ๊ธธ ๋ฐ๋๋ค.
1. Event Handling์ด๋
๊ท๊ฒฉ ๋ด์ฉ์ ์ต๋ํ ์ธ์ฉํ๋ฉด์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
Onvif Core ๊ท๊ฒฉ์ 4์ ์ ์ ๊น, 9์ ์ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ค๋ช ๋์ด์๋ค
Event Handling์ Device์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ค์ ์ด๋ป๊ฒ ๋ฐ์๊ฑฐ๋?์ ๋ํ ๋ช ์ธ๋ค
์์์ ์ ๊น ์ธ๊ธํ ๋ฐฉ์์ผ๋ก ์ด๋ฒคํธ๋ฅผ ํธ๋ค๋งํ ์ ์๋ค
4.6 Event Handling
Firewall traversal, according to WS-BaseNotification, is handled through a PullPoint notification pattern. This
pattern, however, does not allow real-time notification. Hence, this specification defines an alternative PullPoint
communication pattern and service interface. The PullPoint pattern allows a client residing behind a firewall to
receive real-time notifications while utilizing the WS-BaseNotification framework.
WS-BaseNotification ๊ท๊ฒฉ์์๋ ์๋ ๋ฐฉํ๋ฒฝ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด PullPoint ๋ฐฉ์์ ๋ค๋ค๋๋ฐ,
์ด๊ฒ ์ค์๊ฐ์ผ๋ก ๋ฐ์์ค๋๊ฑด ์๋๋ค ๋ณด๋๊น,
Onvif ๊ท๊ฒฉ์์๋ ์ค์๊ฐ์ผ๋ก ๋ฐ์ ์ ์๋ ๋ฐฉ๋ฒ์ ์ถ๊ฐํ ๋ชจ์์ด๋ค.
์๋ฌดํผ, ์ Event Handling์ ๋ชฉ์ ์
ํด๋ผ์ด์ธํธ๊ฐ ๋ฐฉํ๋ฒฝ ๋ค์ ์์ด๋, Device์ ์ด๋ฒคํธ๋ค์ ์ ์๋ ค์ฃผ์๋ก ์๊ฐ๋๋ค
๊ทธ๋ฌ๋ฉด ์ด๋ฒคํธ 2๋ฒคํธํ๋๋ฐ ์ ํํ ๋ฌด์จ ์๋ฏธ์ผ๊น
9. Event Handling
An event is an action or occurrence detected by a device that a client can subscribe to.
Onvif์์ ๋งํ๋ ์ด๋ฒคํธ๋ ์ด๋ค action์ด๋ device์ ๊ฐ์ง๋ ๋ฐ์ ์ ๋ณด๋ฅผ ๋ปํ๋ค
์์ฆ ์นด๋ฉ๋ผ ์์ฒด์ ์ฌ๋ ๊ฐ์ง ์ด๋ฐ ๊ธฐ๋ฅ์ด ๋ค์ด๊ฐ ์๊ธฐ๋ ํ๋ฐ, ๊ทธ๋ฐ ๊ฒ๋ ํฌํจ ๊ฐ๋ฅํ๋ค
์ ๋ฆฌํ์๋ฉด, Device์ ๊ฐ์ง๋ ์ ๋ณด๋ฅผ ๋ฐฉํ๋ฒฝ์ ๋ซ๊ณ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์๋ ค์ฃผ์ ใ
์ด๊ฑฐ๋ค
2. ์ฒซ ๋ฒ์งธ) Real-Time Pull-Point Notification Interface
์์์ ์ ๊น ์ธ๊ธํ Event Handling์ ์ฒซ ๋ฒ์งธ ๋ฐฉ์์ด๋ค
๋จ์ด ์์ฒด๋ก๋ง ๋ณด๋ฉด ์ค์๊ฐ์ผ๋ก Pull-Point Notification(์ดํ ์๋ฆผ) ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ ๋ด์ฉ์ด๋ค
์ด ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค
1) ํด๋ผ์ด์ธํธ๊ฐ Device์๊ฒ pull pont๋ฅผ ์์ฒญํ๋ค
(CreatePullPointSubscriptionRequest ์ปค๋งจ๋๋ฅผ ์ฌ์ฉ)
2) device๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋ด์ฉ์ ๋ํด ์๋ต์ ๋ณด๋ธ๋ค
3) ์์ฒญ์ด ์๋ฝ๋๋ฉด ์๋ต์ด ์ฌํ ๋ฐ, ์ธ์คํด์คํ ๋ pull point์ Endpoint๋ฅผ ํฌํจํ๋ค
4) PullPoint ์์ฑ ํ์๋ Renew๋ Unsubscribe ์ปค๋งจ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ํ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋ค
์ด ๋ฐฉ์์ ํด๋ผ์ด์ธํธ๊ฐ ๋จผ์ Device์๊ฒ ์์ฒญํ๋ฉด,
๊ทธ ๋ Device๊ฐ ์ฆ๊ฐ์ ์ผ๋ก ๋ฐ๋ก ์๋ต์ ๋ณด๋ด๋ ๋ฐฉ์์ด๋ค.
This may cause unnecessary load by e.g. activating multiple motion detectors and similar without need.
์ค์๊ฐ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ๋ฐ๊ณ ์ถ๋ค๋ฉด ๋ค๋ฅธ ๋ฐฉ์ ์ฐ๋๊ฑธ ์ถ์ฒํ๋ค
3.๋ ๋ฒ์งธ) Notification Streaming Interface
๋ง ๊ทธ๋๋ก Streaming ์ ๊ด๋ จ๋ ์ธํฐํ์ด์ค๋ค
์ฐ๋ฆฌ๊ฐ ์๋ ์์ ์คํธ๋ฆฌ๋ฐ ๊ทธ๊ฑฐ ๋ง๋ค
RTP ํจํท๋ค์ ์ด๋ฒคํธ ์ ์ก ํํ๋ก ๋ฐ์ ์ ์๋๋ฐ, ๋ฉ์์ง payload๊ฐ ํฌํจ๋๋ ๊ฒ ๊ฐ๋ค
์์ธํ ๋ด์ฉ์ Onvif Media ๊ท๊ฒฉ์ ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค
4. ์ธ ๋ฒ์งธ) Basic Notification Interface
์ฌ์ค ์๋์ ์ ๋ฆฌํ๊ธฐ๋ก ๋ง์ ๋จน์๋ค
๊ธฐ๋ณธ ์๋ฆผ ์ธํฐํ์ด์ค(?) ์ด ํ์์ ์๋ 3๊ฐ์ง ์ฉ์ด๋ฅผ ์๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค
Client
NotificationConsumer interface๋ฅผ ๊ตฌํํ๋ ์ชฝ
NotificationConsumer : ์ด๋ฒคํธ๋ฅผ ๋ฐ๊ณ ์ถ์ดํ๋ ์ชฝ/Subscribe ์์ฒญ ๋ณด๋ด๋ ์ชฝ
Event Service
NotificationProducer interface๋ฅผ ๊ตฌํํ๋ ์ชฝ
NotificationProducer : Consumer๋ก๋ถํฐ subscribe ์์ฒญ์ ๋ฐ๋ ์ชฝ
Subscription Manager
BaseSubscriptionManager interface๋ฅผ ๊ตฌํํ๋ ์ชฝ
(Base)SubscriptionManager : Subscription ๋ฆฌ์์ค๋ค์ ๊ด๋ฆฌํ๊ณ ๋ฉ์์ง๋ก ์ ์
๋จ์ด๊ฐ ์์ํด์ ์ด๋ ต๊ฒ ์ง๋ง WS-BaseNotification ๊ท๊ฒฉ์ ์ฝ์ด๋ณด๋ฉด ์~ ํ๊ฒ ๋๋ค
๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
Subscription ์์ฑ ๊ณผ์
1) client๋ ์ด๋ฒคํธ ์๋น์ค๋ฅผ ์ํด ์ฐ๊ฒฐ์ ๋งบ๋๋ค (Subscribe ์์ฒญ์ ๋ณด๋ธ๋ค)
2) Event Service๋ Subscribe ์์ฒญ์ ๋ฐ๊ณ , ์ด ์ ๋ณด๋ฅผ ์ธ์คํด์คํ์ฌ
Subscription Manager๊ฐ ๊ธฐ์ตํ๋๋ก ํ๋ค
3) Subscribe ์๋ต์ ์ค ๋, Endpoint Address๋ฅผ ํฌํจํ์ฌ ์ค๋ค
Subscription ์ข ๋ฃ ๊ณผ์
์ข ๋ฃ๋ ์๋ ๋ ๊ฐ์ง ํ์์ผ๋ก ํ ์ ์๋ค
1) Unsubscribe ๋ฉ์์ง๋ฅผ ํตํ์ฌ ํด์งํ๋ ๋ฐฉ๋ฒ
2) Client๊ฐ ์ค์ ํ ๋ง๋ฃ์๊ฐ์ ๋ฐ๋ผ ์๋์ ์ผ๋ก Subscription Manager๊ฐ destroy ํด์ฃผ๋ ๋ฐฉ๋ฒ
Event ๋ฐ๋ ๋ฐฉ๋ฒ
Event Service๋ Client์๊ฒ ์ด๋ฒคํธ ์ ๋ณด๋ฅผ Notify ๋ฉ์์ง๋ฅผ ํตํด ์ ๋ฌํ๋ค (one-way๋ฐฉ์)
Subscription์ ๊ฐฑ์ ํ๋ ๊ณผ์
์์์ ์ข ๋ฃ ๊ณผ์ ์ค๋ช ์ ๋ง๋ฃ ์๊ฐ์ด ์๋ค๊ณ ์ธ๊ธ์ ํ๋๋ฐ,
๊ทธ๋ ๋ค๋ฉด ๊ณ์ Subscription์ ์ ์งํ๊ณ ์ถ๋ค๋ฉด ๊ฐฑ์ ๋ ํด์ค์ผ ํ๋ค๋ ๊ฑฐ๋ค
The SubscriptionManager is automatically destroyed when the termination time is reached. RenewRequests can be initiated by the client in order to postpone the termination time. The client can also explicitly terminate the SubscriptionManager by sending an UnsubscribeRequest.
๊ฐฑ์ ์ Renew ์์ฒญ์ ํตํด ํ ์ ์๋น
5. Notification Information
๊ทธ๋ผ ์ด๋ ๊ฒ Event ์ ๋ณด๋ฅผ ๋ฐ์ผ๋ฉด ์ฌ๊ธฐ์ ๋ฌด์จ ์ ๋ณด๊ฐ ์๋์ง๊ฐ ์ฌ์ฌ ๊ถ๊ธํด์ง๋ค
์ธ์ ๋ฐ์ํ๊ฑด์ง?(when?)
๋๊ฐ ์ด๋ฒคํธ๋ฅผ ๋ง๋ค์๋์ง? (who?)
๋ฌด์จ ์ด๋ฒคํธ์ธ์ง? (what?)
๋ฑ๋ฑ...
์ด ์ ๋ณด๋ค์ ์ด๋ฒคํธ ๋ฐ์ ์ Event Serivce๊ฐ ๋ณด๋ด์ค Notify ๋ฉ์์ง์ ๋ค ๋ด๊ฒจ์๋ค.
"when"
์ด๊ฑด ์๋์ ์ฒจ๋ถํ ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๊ฒ ์ง๋ง, time ์ ํฌํจํ๋ element์ ํฌํจ๋๋ค
UTC ์๊ฐ ๋ฐฉ์์ ์ฌ์ฉํ๋๋ฏ
"who"
who๋ ๋ ๋ถ๋ถ์ผ๋ก ๋๋๋ค
1) ProducerReference element์ ํฌํจ
: WS-Endpoint์๋ device๋ service์ ๋ํ ๋ด์ฉ์ด ์๋๋ฐ,
์ด element๋ฅผ ํตํด ๋๊ฐ ๋ณด๋ธ๊ฑด์ง ๋ช ์๋ฅผ ํด์ผํ๋ค๊ณ ํ๋ค
2) Souce element์ ํฌํจ
: WS-Endpoint ๋ด์ ํฌํจ๋๋ ๊ฒ์ ๊ฐ์๋ฐ, Source๋ผ๋ element๋ก ํฌํจํ์ฌ
ํ๊ฐ ๋๋ ์ฌ๋ฌ๊ฐ๋ก ํ๊ธฐํ ์ ์๋ค๊ณ ํ๋ค
"what"
์๋ ์๋ ๋ ๊ฐ์ง element๊ฐ ์ฌ์ฉ๋๋ค (๊ฐ์ด)
1) Topic element
: Topic element๋ Event์ ์นดํ ๊ณ ๋ฆฌ ๊ฐ์ ๊ฑธ ํ๊ธฐํ ์ ์๋ค
2) Data element
: Data element๋ Event์ ์์ธํ ๋ด์ฉ์ ์ค๋ช ํ ์ ์๋ค
• UtcTime represents the time when the event described by the message occurred.
• Topic and Source items uniquely identify the source of an event
• Data contains one or more values describing the event
• An optional Key item may extend the Source identifier
์ธ์ฉ ๋ฌธ๊ตฌ๋ฅผ ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค.
์ด๊ฑด ์์ ๊ทธ๋ฆผ์ธ๋ฐ,
Topic์ ๋ณด์ํ๋ PTZ ์ด๋ฒคํธ๋ฅผ ํด๋ผ์ด์ธํธ๊ฐ Subscribe๋ฅผ ํ ๋ชจ์์ด๋ค
ํด๋น ์ด๋ฒคํธ๋ PTZ Preset์ ๋๊น์ง ๋๋ฌํด์ ์จ ์๋ฆผ์ผ ๊ฒ์ด๊ณ ,
๋ฐ์ ์๊ฐ์ UtcTime ํ๋ผ๋ฏธํฐ์ ํฌํจ๋๋ค
๋ํ Source์ Data Element๋ก ์์ธํ ํญ๋ชฉ์ ํ์ธ ๊ฐ๋ฅํ ๊ฒ๊น์ง ๋ณผ ์ ์๋ค
์ ๋ง ์ค๋๋ง์ ์ด ๊ธ์ธ๋ฐ... ์์ฆ ์ผ์ด ๋๋ฌด ๋ฐ๋น ์
ํํ์ด ์์ฑํ๋ค๋ณด๋ ๊ธ์ ํ๋ฆ์ด ์๊พธ ๋๊ธด๋คใ ใ
Onvif ๊ท๊ฒฉ์ ์ฒ์๋ถํฐ ๋๊น์ง ๋ค ์ฝ์ด๋ณด๊ณ ์ถ์๋๋ฐ, ์ฌํด์์ ํ ์ ์์์ง ์๋ฌธ์ด๋ค