KreaTV TV Software Architecture

Overview

KreaTV is a lightweight architecture defining an application platform (framework) for Multimedia IP Set-Top Boxes, e.g. the KreaTV IP-STB series. The architecture is designed for a hardware environment with very limited resources (memory and CPU). It is also designed for a specific user environment (the TV environment) and specific applications (viewing broadcast television, video on demand, music, e-mail and chat, etc).

The Application Platform, referred to as 'the platform' hereafter, offers a variety of services to the running applications. These services allow easy access to the IP-STB's hardware resources, as well as provide functionality common to applications within the TV-viewing environment.

In short, the platform...

The figure above shows an overview of the most central parts of the architecture. At the lowest level, an abstraction layer separates and hides hardware differences between the different IP-STB models, presenting a common interface to the layers above.

The IP-STB's run a linux operating system.

The KreaTV platform provides running applications with various services. Each service provides one or more interfaces through which the interaction with the application is handled. As an example, the Media Service handles the playing of TV streams. The application tells the Media Service which URL should be opened and played, and the Media Service does the rest. An Asset Manager Service takes care of recording content and manipulating the video files, and so on.

The total set of service interfaces is named the TV Open Interface (TOI). TOI exists on different levels, i.e. for different programming languages. The most common language for portal designers is JavaScript. The platform is a mandatory component in all configurations whilst applications may exist in any combinations, although only one application gets to use the Input and Video Output.

Applications

The two most common applications within with KreaTV system are the SVG Portal Application (simply known as SVG, sometimes as "ekioh") and the HTML Portal Application (also known as Webkit). Both of these applications display portal pages, execute JavaScript code, and receive/handle input from the users remote control.i The Portal Designer generally implements their application entirely within the Portal Application.

Other applications can be developed with the use of the SDK, and if user input/out is required, the KreaTVGFX development kit.

TV Open Interface

The TV Open Interface (TOI) separates the platform from the applications and gives the applications access to the services provided by the platform, for instance the media player for streaming media, TDI for graphics and video mixing and the application manager for control of other applications. TOI is defined in IDL and there are mappings for C++ (TOI/C++) and JavaScript (TOI/JS).

Within the Portal Applications, access to TOI is given via the use of a specialized browser plugin. This offers a global "toi" object which acts as the primary access point to the TOI interface from a HTML/SVG/JavaScript portal. This toi object is available as a property of the JavaScript window object. Each platform service is registered as it's own property in the toi object. Examples include toi.mediaService and toi.informationService..

Plug-ins

To extend the features supported by the platform and applications, services and applications may support the concept of plug-ins. Each application or service that supports plug-ins defines a plug-in interface for the type of feature extension that it supports. The following plug-in extensions are possible:

Plug-in Service/Application Description
Video client Media Service Extends the support for video servers.
Browser plug-in Portal and Web Browser Extends the set of supported media types. Provides scripting possibilities.

Input Handling

The KreaTV IP-STB software supports input handling through standardized JavaScript DOM level 3 event model.

Fault tolerance

As shown in the figure below the architecture is layered. Each layer implements a strategy for handling errors in the layer above. When an erroneous application or service is detected the layer below takes an action to solve the problem with minimal user impact as described below: