Sending events TO Ocularis differs from getting events FROM the system, and the use-cases are usually quite different too, so this section is split into two parts.
Generally, an event source, sends events to the Event Coordinator (EC). The EC in turn populates the event with information about cameras etc. before relaying the event to any subscribers. Certain types of events are always relayed, regardless of subscription status and schedule. Most other events are filtered, so that only relevant events are received.
Sending events (alarms etc) to Ocularis is based on Microsoft Message Queueing (MSMQ). It’s an extremely robust message delivery system that uses a store-and-forward strategy to ensure that messages reach their intended recipient. Microsoft .NET makes it quite easy to use MSMQ in your own apps. If MSMQ is not available on your platform, we will provide a proxy mechanism based on HTTP(S). In that case, your app is responsible for retransmission.
An event source (an access control system for example), must map the events into one of three abstraction levels: Source, Sensor and Rule. A source simply identifies the origin of all events for a certain instance e.g. an app that monitors a few industrial scales and sends out events is considered a “source”. A sensor is the equivalent of a single scale in the example. It could also be a single camera, or card reader in an access control system. As things happen in regards to a sensor, “rules” are triggered. For example, a scale may offer the following 4 rules : OK, Light, Heavy, Error. A card-reader might offer Valid_Card, Invalid_Card, Read_Error, Tampering, Blocked_Card and so on.
Receiving events is based on a proprietary delivery system based on TCP/IP that we call OcularisNet (OCNet). OcularisNet’s client implementation has transparent reconnection, so if the connection to the EC is lost, the OCNet will notify you, but automatically reconnect in the background.