Architecture
Before you install and configure your SmartCARE system, we recommend you to review Its architecture, operating procedures, and deployment methods. The “General information” sections will remove most of the issues related to the operation principles, configuring and further operation of SmartCARE.
GENERAL SOLUTION DIAGRAM
General SmartCARE architecture diagram
SmartCARE Components
SmartCARE has a client-server architecture. The following systems can be clients:
- subscriber devices (STB, SmartTV, tablets, smartphones, PC and Mac);
- streaming servers (HTTP servers);
- media content storage servers;
- incoming streams recording servers (SmartLabs SmartMEDIA);
- edge network routers;
- other hardware and software systems involved in the IPTV/OTT services implementation.
These systems will be referred to as “SmartCARE clients”. Each type of client should be configured to send statistical data to the SmartCARE server as described in the Integration Reference section.
The server part of the solution consists of several software modules responsible for collecting, storing and providing statistical data to the operator. Below is a brief overview of each module, its purpose and technologies used:
Collector
The purpose of this module is to collect, structure and record information received from the SmartCARE clients. The Collector functions can be divided into the following tasks:
- receiving and parsing UDP packets — streaming servers’ logs (for example, nginx) and incoming streams recording servers’ logs (for example, SmartMEDIA Conveyor) — in streaming (continuous) mode;
- receiving and parsing HTTP GET requests from the subscriber devices to the streaming servers;
- periodic (every minute) polling of Zabbix agents on the parameters of the streaming servers, incoming streams recording servers and other hardware systems of the operator platform (the last is optional);
- BGP module polling on the network topology (autonomous systems) at the “streaming server – subscriber device” route;
- OSS / BSS system polling on the subscriber parameters (for example, the address of its connection);
- structuring received UDP packets with subsequent saving to the mongoDB database;
- per-minute aggregation of collected data with subsequent saving to the mongoDB database.
Used Technologies
Apache Spark Streaming
BGP
The BGP module is used to collect information about the network topology (autonomous systems (AS)) between streaming servers and subscriber devices. In the case of a massive reduction of the content delivery quality through no fault of the operator platform, information about the data route to subscribers allows you to identify the problem AS and quickly find the appropriate ways to solve it.
Used Technologies
Apache Tomcat
SmartCARE DB (mongoDB)
All data sent to the Collector from SmartCARE clients is subject to per-minute aggregation with storing in the mongoDB database. The mongoDB structure and data format are described in the “MongoDB Database Structure” section.
Aggregator
In addition to metrics based on minute slices of accumulated data, SmartCARE provides statistical reports for the selected period. Such reports are located in the “SDP Reports” section of the Care UI. Aggregator module samples data from mongoDB with aggregation by periods of 5 minutes, 1 hour, 1 day and 1 month. The results are stored in a PostgreSQL or Oracle database (optional). If you are using SmartLabs SmartTUBE as a middleware platform, the results are stored in the SmartTUBE database.
SmartTUBE DB (PostgreSQL)
This database is used to store the Aggregator module results and integrate with external monitoring systems. If the SmartLabs SmartTUBE platform reporting module is used as such a system, its users will have access to reports on the LiveTV and DVR content consumption (without VoD).
The PostgreSQL structure and data format are described in the “PostgreSQL Database Structure” section.
More information about the SmartTUBE platform is available here.
REST API Server
Access to mongoDB data for the Care UI and other 3rd-party monitoring systems is organized using REST API, which is described in the “SmartCARE. API Reference” document.
Care UI
Care UI is a graphical web-interface, providing direct monitoring of the operator platform: streaming quality indicators, status the of streaming servers and recording servers, subscriber devices and other parameters. Detailed description of all metrics and reports of Care UI, as well as their correlation with mongoDB and PostgreSQL data are presented in the “Metrics, Indicators, Reports” section.