Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This group initially focused on RDK-V and that is what this wiki page describes/focus focuses on, but many of principles/same components are also suitable for RDK-B.

Overview

Below is a detailed reference architecture diagram for RDK-Video

Solution Overview

draw.io DiagrambordertruediagramNameE2EArchitecturesimpleViewerfalsewidth600linksautotbstyletoplboxtruediagramWidth1073revision14The diagram above provides a high level end-2-end overview of the DAC solution.

Image Added

system. It is divided into 4 functional areas:

  • APP SDK - The SW development toolkit for App developers. That allows Appdeveloper to build and package its application in oci, dac compliant AppContainer. This AppContainer is then the binary that can be shared/exchanged with RDK-M and various RDK operators via an OCI container registry.
  • OCI container registry: is standard Cloud component that allowing storage and exchange of AppContainers. As described above this is the exchange point for the binary AppContainer between Appdeveloper and consuming parties/operators
  • DAC Cloud - These are cloud hosted software elements, typically run as microservices that allow containerised Apps to be published, processed and tailored to STB box types and downloadedput in so called oci bundles and securely delivered/downloaded to the STB box models it serves. Each operator is free on how it chooses to distribute and package that towards its RDK STBs. RDK-M operates such DAC cloud instance for all the RDK-M Video Accelerators that the RDK community and App developers then can use.  Source code of µservices that exist in such reference DAC cloud instance are available in open source.
  • STB / CPE - This is software components that run on set top box and co-ordinate to manage container installation and runtime life cycles

These are discussed further in the following sections

STB / CPE

DAC provides all the necessary tooling to run containerised applications using OCI containers on an RDK-V STB. The main component of this is Dobby, an embedded-focused OCI container manager. Dobby is used to start, stop and monitor containers running on a STB, using the crun runtime underneath to interface with the kernel and start the containers. Dobby is written in C++ and designed to have minimal footprint and performance impact. The OCIContainer Thunder plugin allows for interfacing with Dobby using a JSON-RPC interface, and Dobby can also be used to run other Thunder plugins in containers using the ProcessContainer backend.

For more information on Dobby, see the detailed documentation here: Dobby

As part of DAC, the RDKShell plugin has been extended to allow starting DAC apps using Dobby, creating a display and attaching it to the containerised app as necessary. RDKShell also integrates with the Packager plugin to provide a full-featured solution for downloading, installing and lifecycle management of DAC apps. For more documentation on the RDKShell and Packager integration see RDKShell and LISA/Packager. See the Getting Started section below for an example of using these components together.

...


This video made by ConsultRed at TechSummit2024 nicely explains bigger picture

dac_overview_rdk_tech_summit_2024_1080p.mp4

reference architecture

Below is a more detailed diagram with technical components inside the RDK-V SW on STB and DAC reference cloud

draw.io Diagram
bordertrue
diagramNameE2EArchitecture
simpleViewerfalse
width600
linksauto
tbstyletop
lboxtrue
diagramWidth1073
revision14

3 functional area's are further discussed in sections below

APP SDK

A DAC SDK has been developed to make it easier for AppDevelopers to develop and build oci, dac ompliant containerized applications. The SDK is public, fully open source and uses standard Yocto 3.1 Dunfel Poky environment. The DAC SDK can run a developer workstation, does not require any proprietary or SoC specific code to be able to build your application. It is available on https://github.com/rdkcentral/meta-dac-sdk  The SDK allows developers to write Bitbake recipes that compile their code and produce an OCI compliant AppContainer image. This OCI image can then be uploaded to an OCI registry for sharing the binary AppContainer with possible consumers. Appdeveloper can then also register and publish its application to RDK-M DAC Cloud for Video Accelerator where it will be automatically converted to bundles that allow to be downloaded and run on any RDK6.1 Video Accelerator independent of its SoC beneath.

Fore more information on DAC SDK we refer to HOWTO to build your native App with DAC SDK and publish to RDK-M DAC cloud

DAC reference Cloud

To support the STB components, backend/cloud infrastructure has been developed. These components allow operators to create application submission portals where developers can submit their applications and their corresponding metadata. These submitted applications can then be converted from an OCI image to an OCI bundle ready for use on an operator's specific hardware.

...

In later stage DAC cloud µServices for automatically creating bundles has been contributed, also solution that adds security and securing them (signing and encryption) have been contributed.  For summary overview documentation on that we refer to DAC session at Technology Summit 2023#pane-uid-b13cbeba-87dc-4f0a-9932-5b7e00770663-1  Documentation on DAC security is available to access restricted page DAC Security 

...

STB / CPE

A DAC SDK has been developed to make it easier for AppDevelopers to develop and build oci, dac ompliant containerized applications. The SDK is public, fully open source and uses standard Yocto 3.1 Dunfel Poky environment. The DAC SDK can run a developer workstation, does not require any proprietary or SoC specific code to be able to build your application. It is available on https://github.com/rdkcentral/meta-dac-sdk  The SDK allows developers to write Bitbake recipes that compile their code and produce an OCI compliant AppContainer image. This OCI image can then be uploaded to an OCI registry for sharing the binary AppContainer with possible consumers. Appdeveloper can then also register and publish its application to RDK-M DAC Cloud for Video Accelerator where it will be automatically converted to bundles that allow to be downloaded and run on any RDK6.1 Video Accelerator independent of its SoC beneath.

DAC provides all the necessary tooling to run containerised applications using OCI containers on an RDK-V STB. The main component of this is Dobby, an embedded-focused OCI container manager. Dobby is used to start, stop and monitor containers running on a STB, using the crun runtime underneath to interface with the kernel and start the containers. Dobby is written in C++ and designed to have minimal footprint and performance impact. The OCIContainer Thunder plugin allows for interfacing with Dobby using a JSON-RPC interface, and Dobby can also be used to run other Thunder plugins in containers using the ProcessContainer backend.

For more information on Dobby, see the detailed documentation here: Dobby

As part of DAC, the RDKShell plugin has been extended to allow starting DAC apps using Dobby, creating a display and attaching it to the containerised app as necessary. RDKShell also integrates with the Packager plugin to provide a full-featured solution for downloading, installing and lifecycle management of DAC apps. For more documentation on the RDKShell and Packager integration see RDKShell and LISA/Packager. See the Getting Started section below for an example of using these components together.Fore more information on DAC SDK we refer to HOWTO to build your native App with DAC SDK and publish to RDK-M DAC cloud


Background and Terminology

...