Versions Compared

Key

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

...

  • WPE WebKit - powerful low-resource embedded WebKit engine with Wayland support
  • WPE Backend - Abstraction layer for WPE WebKit with support for MESA based gfx or Wayland/EGL gfx
  • Thunder - plugin based framework for embedding C/C++ components and bridging the "web" world.
  • ThunderNanoServices - Various plugins from a DHCP Server, Wi-Fi Control, Bluetooth, Compositor to premium app based plugins (NF, Amazon, etc)RDK Services - RDK Services are set of services used to access device specific functionality.RDK Services are available for launching browser and native applications.It is built on WPE Framework (aka Thunder).

Thunder is a small framework built for embedded devices. It consists out of the following main components -

  • Framework Core
  • Framework Plugins
  • Framework UI

Thunder and ThunderNanoservices are RDK Services are key components for micro services to bring into any Box. Thunder offers an event driven interface framework for subsystem availability signaling to the plugins. This framework is utilized to realize concurrent startup scenario using a conditional evaluation only in case a condition changes. This allows for startup without requiring sleeps, or resource consuming polling mechanisms.

For each micro service, we need to implement one plugin as part of ThunderNanoservicesRDK Services, and Nano or microservices should configured as part of any of these subsystems.

Designed for Apps:

  • Pre-integrated premium apps
  • Pre-integrated app store
  • Voice enabled
  • Lightningtm App Dev Language

Architecture

RDK4 Building Blocks

  • The modularity of RDK4 reduces the app development life cycle.

...

  • Core - Components Every RDK Build will need regardless of operator
  • Localization - Optional Components that can be added depending on operator requirements

RDK Firebolt ® Video App Platform

RDK Firebolt ® SDK  is a development environment for applications targeted to run on RDK. Firebolt ® SDK can be used by application developers to develop HTML5, Spark & Native applications for RDK. The SDK comes with an RDK image which can be loaded on the target platform on which applications can be developed and executed.

  • Firebolt ® is RDK4's Video Application Platform, leveraged by both RDK & non-RDK systems.

...

Image Added

  • Firebolt ® can empower non-RDK Systems

...

Thunder Framework

Application framework is built on Hardware abstraction Layer, on top of abstraction layer there is a WPE Framework. WPE framework itself dispatched internally that actually starts micro and nano services. Micro and Nano services are exposed to certain interfaces so at the end the system can locked down and executing.

...

Integral implementation of security features 

  • LXC containerisationcontainarisation, including users and groups per processes.

...

These API's are actually incremented in 2 ways.

  1. JSONRPC :  Mainly Mainly targeted towards Javascript. Javascript talks to JSONRPC , Communication Layer goes into framework then it transit to C and C++ world, then from C from C and C++ world we can far communicate back to Javascript using JSONRPC .
  2. COMRPC : Internally when we want to communicate with different nano/micro services running in different process we can use COMRPC Process.

...

  • If a command comes in on settop box ,it will actually be turn into message for eg in above figure ,the Webkit browser will send this message through pipeline to framework.
    Three pipelines coming out of the settop box, different pipelines for different kind of messages.
  • Received message will be deserialized that is getting back to original message and do get cpu usage. After which, we will look at the message where it has to sent to, that message will be packed with where it will send to and it is forward on to threadpool.
  • The threadpool are actually multiple threads maintained by multiple persons. Person pickups the job and secure it ,As in diagram the person is evaluating CPU Usage using machine, CPU Usage value is noted down on the message(eg: CPU usage is 50% in above figure) and send back to from where we initially got the message.
  • Here messages are handled by thread switch. One is communication thread and the other is thread that handled our request. This way the amount of threads used in the system will not increase when multiple connections are created, the more connections you create it will not lead to multiple threadings .

Resources opened up through JSONRPC

draw.io Diagram
bordertrue
diagramNameResources opened up through JSONRPC
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth702
revision1

This gives us information regarding once system is ready ,what kind of micro/nano services are all available.
Difference between micro and nano is that micro service actually requires graphics -graphical resources or player resources

Compositor client

Compositor client compile time will be fine whether the real implementation behind it is wayland,Nexus or RPI.
Micro services themselves will use the interface of the compositor client.Micro services will not know which compositor they are using.
The implementation of compositor client actually does the communication with compositor, depending on the implementation it could be Waylanda,Nexus or RPI communication.