General
Overview
The Open Network Video Interface Forum (ONVIF) Device Service is a microservice created to address the lack of standardization and automation of camera discovery and onboarding. EdgeX Foundry is a flexible microservice-based architecture created to promote the interoperability of multiple device interface combinations at the edge. In an EdgeX deployment, the ONVIF Device Service controls and communicates with ONVIF-compliant cameras, while EdgeX Foundry presents a standard interface to application developers. With normalized connectivity protocols and a vendor-neutral architecture, EdgeX paired with ONVIF Camera Device Service, simplifies deployment of edge camera devices.
Use the ONVIF Device Service to streamline and scale your edge camera device deployment.
How It Works
The figure below illustrates the software flow through the architecture components.
Figure 1: Software Flow
- EdgeX Device Discovery: Camera device microservices probe network and platform for video devices at a configurable interval. Devices that do not currently exist and that satisfy Provision Watcher filter criteria are added to Core Metadata.
- Application Device Discovery: Query Core Metadata for devices and associated configuration.
- Application Device Configuration: Set configuration and initiate device actions through a REST API representing the resources of the video device (e.g. stream URI, Pan-Tilt-Zoom position, Firmware Update).
- Pipeline Control: The application initiates Video Analytics Pipeline through HTTP Post Request.
- Publish Inference Events/Data: Analytics inferences are formatted and passed to the destination message bus specified in the request.
- Export Data: Publish prepared (transformed, enriched, filtered, etc.) and groomed (formatted, compressed, encrypted, etc.) data to external systems (be it analytics package, enterprise or on-premises application, cloud systems like Azure IoT, AWS IoT, or Google IoT Core, etc.
Getting Started
A brief video demonstration of building and using the device service:
Examples
To see an example utilizing the ONVIF device service, refer to the camera management example application
Security
This software has numerous security features. For production environments, it is recommended to use secure mode when running the EdgeX software stack. This documentation will contain warnings about any known security vulnerabilities or risks. In addition to the security features, it is suggested to use best security practices. These include, but are not limited to:
- Creating strong and unique passwords.
- Controlling physical access to cameras and devices.
- Practicing proper user management for computer systems.
- Updating firmware in a timely manner.
For more information, please visit the EdgeX Security documentation
Resources
Learn more about EdgeX Core Metadata
Learn more about EdgeX Core Command
References
- ONVIF Website
- EdgeX Foundry Project Wiki
- EdgeX Source Code
- Edgex Developer Guide
- Docker
- Docker Compose