Software Architecture
![]()
Myka has two major sub systems. One running on the actual device and one as a server. This was done to keep the software on the device as simple, flexible and open as possible. Device Side The device software was purposefully made very dumb. It gets its commands from the Myka server. Its interface, download scheduling, updating are all driven externally. The device polls the server periodically to find out what it is supposed to do. The device can still play any files it has locally but the management of downloads is handled by the server. Here are the major components: PHP/HTML Interface - There is a browser and PHP running on Myka. The interface and all the functionality that the user sees is expressed as HTML, PHP and JavaScript. With just these three tools, a developer can completely control the behavior of the device. PHP API - All calls to do actual work, like play a video or start a BitTorrent download are handled through a set of PHP calls. This will be published and extensible. Web Services - Communication to the Myka server is made through a set of web service calls. This module periodically polls the server for new commands. Commands include things like, download a file, update the UI, add a new service etc. Base Level Functions - These control things like playing a video, start a torrent. Linux and SMP 8635 API - This is where the actual work gets done. This has been abstracted away. The functionality has been exposed through the PHP API. Server Side The business logic and rules are all driven from the server. Account management, scheduling, adding channels, adding interfaces, creating new program guides are all handled here. Each Myka owner has an account. This is how they can control their device remotely. Subscriptions and business rules are managed here and not on the device. |


