Frontend Server Characterization
A MythTV frontend is primarily concerned with visually representing information to the user.
A frontend client is primarily concerned with obtaining backend server information, or the presentation and playback of stored content. The MythTV frontend client simply divorces a system of the need to be intimately coupled with video capture and storage management - basically all of the heavy-lifting duties. That way, any computer can be casually modified into a MythTV unit capable of receiving and playing data, but not necessarily to capture or store any. This frees the system from many hardware requirements and allows for sleek ultra-compact solutions like VIA's mini-ITX and nano-ITX form factors, which can be shoehorned into the smallest of places.
As stated in the preceding Technical Discussion section, almost any modern operating system (including Windows) may act as a MythTV client, without additional licensing fees or per-seat restrictions. Scalability here is the key - an unlimited number of frontend clients may actively participate at any time, without needing any particular operating system.
The frontend provides the graphical context inside which MythTV functionality is visually displayed, organized and made available to end-users. This includes frontend navigation methods that range from simple keyboard and mouse controls to remote control functionality using infra-red or RF remote controls. The frontend also interacts with Electronic Program Guide (EPG) listings and recorded content contained on any of the backend servers for presentation to the end-user.
Furthermore, the frontend client provides most of MythTV's plug-in capability (described in the next article in this series). Frontend plug-ins deliver many different kinds of functions, all the way from an email client, a recipe manager and an FM radio interface to streaming audio/video support, an archive manger, and a snazzy channel configuration panel. You can also find plug-ins for use with any TiVo units on your network, a BitTorrent client and even user interfaces for burning CD and DVD images.
A more experimental and therefore presumably less-stable implementation of the frontend divides the frontend client into separate roles and introduces the concept of a MythTV frontend daemon (MFD). An MFD runs as an independent process and then interacts with MythTV plug-ins (themselves operating as independent processes). The basic concept is to allow the backend transcoding daemon to interact directly with any client and shared streaming audio content using a standardized protocol. This supports some really interesting facilities including things like playing music to and from iTunes formats or pointing a Web browser at an MFD server to control audio playback.