Chapter 6. Architecture

Table of Contents
Components
Services provided by the Client to the end user
The network topology, data flow and protocols
Database server
Push server
Acquisition server

Components

Video server consists of several components: master server, slave servers and clients.

Database server is master server, which stores different kind of metadata and manage the video data network configuration. It receives incoming connections from clients and acquisition servers, answer to informational queries, performs actions requested by super-user authorized clients and sends commands to slave acquisition and push servers. It is responsible to manage the schedule as well.

Acquisition server is one of two slave servers. This is NT-based program that captures Mpeg data using the Mpegator board and reads closed captions with Text grabber device. This server does not store any data locally, instead, it transmits the mpeg video stream to several push servers and closed captioned text stream to both database server as well as push servers. Video (mpeg) data are stored by push servers in local discs and all text data is stored in database server.

Upon startup, acquisition server maintains the permanent TCP connection with the database server to receive commands and send notifications. ( protocol 1 on Fig. 1 )

Push server is the second slave server. It performs two types of activities at the same time. Firstly, it receives live broadcasting video/text stream, stores it on local storage for later playback and pushes that data to various broadcast destinations as specified. Secondly, it pumps locally stored mpeg data to the specific client by request. Same data may be, but not necessary, duplicated in various locations to optimize the access speed. Push server may transmit live broadcast data as well as the stored data at the same time. Various clients may request different movies from the same push server.

Client is the Linux/Unix application, which uses a convenient user interface to show data and perform actions. Mpeg video is displayed by MpegTV library, which is available for all major Unix platforms. User interface is written with GTK+ toolkit and the Gtk-- C++ wrapper for it. Client is available on Solaris as well.

Client maintains the permanent TCP connection to the database server ( connection 2 on Fig.1 ) to send queries and receive answers. The relational database cookies are hidden from the client - the high level protocol is used instead.

If the client passes the superuser authorization, it may edit the movie database, server and whole system settings and perform manual movie recordings.