Rich Media Server Framework

Printer-friendly versionSend to friendPDF version
Rookie

This article gives an overview of all facilities provided by Streamezzo Rich Media Server framework, including its productivity tools, the image transcoding engine, the underlying enterprise platform, its main modules, its administration web application, cache mangement and connectors.

Rich Media Server Productivity Tools

Streamezzo Rich Media Server is coming with a set of productivity tools:
•    Image Transcoding Engine: live images adaptation facilities to connected devices
•    Upload Server: coupled with Rich Media Client Upload Engine to transfer User Generated Content from devices to server
•    Service Caster: gateway to send Rich Media content towards broadcast systems

Focus on the Image Transcoding Engine

The Image Transcoding Engine offers the following operations on images:

  • Resizing: Provides facilities to the developer to resize directly the images on the server-side prior to any delivery to mobile devices. 
  • Transcoding: Provides facilities to the developer to transcode images to another format. 
  • Transcoding and resizing can be performed at the same time according to the mobile devices capabilities.

A built-in full Java Resizer is set by default to manipulate images. A Streamezzo Image Transcoding Engine can be integrated within the Rich Media Server. It provides best quality and better performances.

Underlying Enterprise Platform

Rich Media Server is designed to run on top of JEE multi-tier architecture. Streamezzo Rich Media Server is actually a set of JEE web applications. Most JEE market application servers are compatible with the product. Developers benefit from popular Java API in order to plug Rich Media Applications to back-end servers smoothly to get data and media assets required to dynamically build Rich Media content.
Rich Media Server is suitable for all JEE compliant hardware platforms, whatever security and performance requirements. It can either be set up in order to quickly test services during development cycle, or be set up to preserve stability. Rich Media Server comes with setup programs and wizards that help to deploy and to execute simple configurations within few minutes - including the setup of database servers to store persistent configuration data as well as transactional information.

 

For production platform, a special care to the architecture is needed in order to avoid any single point of failure and service interruption. At each layer of the architecture a cluster of at last two servers needs to be deployed.
Rich Media Server supports any software or hardware load balancing solution. RMS cluster architecture may depend on selected JEE Application Server:
 

Main Modules of Rich Media Server

Front Dispatcher Web Application

From a technical point of view, Rich Media Applications developed with Workbench Developer are made of a set of files containing static Rich Media content coupled with one or more JEE Web applications in charge of returning up-to-date content in response to Rich Media Client requests. Each Rich Media Client request is first processed by the Front Dispatcher in charge of authenticating clients and dispatching requests to the appropriate Web application. The Web application returns Rich Media content in a pseudo-streaming way (i.e. it does not wait for the whole content to be available before returning it to the requesting client application for reducing network latency and server-side processing time).
 

The schema above provides detailed information about client requests processing made by Front Dispatcher.

Administration Web Application

Rich Media Server comes with an Administration web application which provides the way to manage configuration as well as applications life cycle. Rich Media Server Administration is a standalone web application so it can be deployed without the Front Dispatcher.
Rich Media Server Administration may be used to manage several Rich Media Server instances at one glance.

Global Settings

Rich Media Server configuration is totally managed by a dedicated JEE webapp that enables administrators to specify different set of properties organized in the following groups:
•    log : Rich Media Server log level
•    tuning: Log configuration, Configuration refresh mechanism and cache management
•    network parameters: force host, force port and force path
•    proxy configuration: enable, host, port
•    HTTP Connector: connection and socket timeout, pool timeout
•    Image transcoding engine: Image Resizer URL

Services Management

Rich Media Applications that need to be published from Streamezzo Workbench Developer to the Rich Media Server shall be registered and deployed into the same JEE application server. There are two ways to publish Rich Media Application depending on the platform requirements in terms of security and architecture.
•    Standard Mode: direct online publication from Workbench Developer
This straightforward method is used for testing purpose when Workbench Developer is allowed to connect to Rich Media Server
•    Production Mode: dumped from Workbench Developer as an archive file, publication is made using Rich Media Server Administration Web Console
This safe method is used for delivering releases from development team to integration team in charge of maintaining production platform.
Rich Media Applications deployment at publication time is supported for Tomcat and JBoss application servers. For other platforms like BEA Weblogic or IBM Websphere, a two phases deployment need to be performed, services web applications are supposed to be deployed using JEE application server management console.
When it has been deployed on the Rich Media Server, the Rich Media Application is associated to a unique ID. This ID is used by the Front Dispatcher to identify the service in charge of building Rich Media content to be returned to Application.
Once it has been registered, Rich Media Application may be upgraded on server side without upgrading the Rich Media Application on the devices of the end-users. Application upgrade is done transparently from the end-users.

Service configuration

•    Log management
A separated file is dedicated to service log activity. Its level is configurable.
•    Service parameters
Service parameters are application dedicated parameters. The list can be managed from Workbench Developer at deployment time and on Rich Media Server any time during the life of the application.

Roles Management

Every application is owned by an author, which is supposed to be a user declared using RMS Administration Web Application.
Some users may be granted with administrator role so they are authorized to manage all applications as well as global settings.

Server Cache Management

Level 1: cached scenes management

Some scenes that have a long lasting processing time can be cached on the server for a given period of time, in order to avoid suffering from such processing time. This is of course to be configured with care, i.e. applicable only for the same result scene (i.e. if it is not supposed to vary according to device, user profile, time…). 

Level 2: media cache management

Reading from disk, resizing, transcoding, or getting media (bitmap, audio, video) from the network can be long; to avoid this overhead the Level 2 cache can be used to store such content on the server for a given period of time.

Two implementations

•    Memory server cache management
Based on Ehcache, it provides best-class performance so it is supposed to be activated in production environment.
Memory cache API is available for services developers to manage any business logic content.
•    Database server cache management
It is supposed to be activated on development environment only, because stored objects can be managed easily using RMS Administration Web Application but performance is not compatible with production requirements.

Server Connectors

A connector is a specific server side Java library that will enable the service to interact with a large set of systems (CMS, billing, SMS-C, EPG server and so on). Out of the box tools are already bundled in Rich Media Server solution, but custom connectors can be easily added in the product as a Java library in Workbench Developer. 

•    HTTP Connector
Based on Jakarta Commons HTTP Client. It provides services developers with the ability to connect to distant HTTP servers to retrieve data, content, or images.
•    Database Connector
Some applications may require to get connected to 3rd party databases. Most JDBC drivers are delivered within JEE application servers. Rich Media Server release comes with a complete set of JDBC drivers.
•    Web Service
Any Web Service client libraries (Apache Axis 2, CXF, XFire) can be used to allow the Rich Media Application interacting with any Web Services.
•    LDAP
Any LDAP client frameworks (e.g., SpringLdap) can be used to allow the Rich Media Application interacting with any LDAP V2/V3 contents (as OpenDS, OpenLDAP for example).
•    JMS
Any JMS client framework (as OpenMQ for example) can be used to allow the Rich Media Application interacting with any JMS Server (as OpenJMS, OpenMQ, ActiveMQ for example).

Share this