For any digital TV developer or manager, the maze of standards and specifications related to MHP and OCAP is daunting-you have to patch together pieces from several standards to gather all the necessary knowledge you need to compete worldwide. The standards themselves can be confusing, and contain many inconsistencies and missing pieces. Interactive TV Standards provides a guide for actually deploying these technologies for a broadcaster or product and application developer.
Understanding what the APIs do is essential for your job, but understanding how the APIs work and how they relate to each other at a deeper level helps you do it better, faster and easier. Learn how to spot when something that looks like a good solution to a problem really isn't. Understand how the many standards that make up MHP fit together, and implement them effectively and quickly. Two DVB insiders teach you which elements of the standards that are needed for digital TV, highlight those elements that are not needed, and explain the special requirements that MHP places on implementations of these standards.
Once you've mastered the basics, you will learn how to develop products for US, European, and Asian markets--saving time and money. By detailing how a team can develop products for both the OCAP and MHP markets, Interactive TV Standards teaches you how to to leverage your experience with one of these standards into the skills and knowledge needed to work with the critical, related standards.
Does the team developing a receiver have all the knowledge they need to succeed, or have they missed important information in an apparently unrelated standard? Does an application developer really know how to write a reliable piece of software that runs on any MHP or OCAP receiver? Does the broadcaster understand the business and technical issues well enough to deploy MHP successfully, or will their project fail? Increase your chances of success the first time with Interactive TV Standards.
Steven Morris is an experienced developer in the area of interactive digital television. Formerly of Philips Electronics, one of the major players in the development of MHP, he was heavily involved in the development of the standard, its predecessors, and related standards such as JavaTV. In addition to work on the standard itself, Steven has experience developing MHP middleware and applications and is the Webmaster and content author for the 'Interactive TV Web' website (www.interactivetvweb.org and www.mhp-interactive.org), a key resource for MHP, JavaTV and OCAP developers. Anthony Smith-Chaigneau is the former Head of Marketing & Communications for the DVB Consortium. In that role, he created the first MHP website www.mhp.org and was responsible for driving the market implementation of this specification. Anthony left the DVB to join Advanced Digital Broadcast, where he helped them bring the first commercial MHP receivers to market. He is still heavily involved in the DVB MHP committees with Osmosys, an MHP and OCAP licensing company, based out of Switzerland.
Preface Intended audience How this book is organized Versions Chapter 1 - The middleware market Why do we need open standards? Driving forces behind open standard middleware Correcting the fragmented iTV market What are DVB and CableLabs? The Digital Video Broadcasting Project CableLabs A history lesson - the background of MHP and OCAP The MHP family tree JavaTV, a common standard for digital TV Harmonization - Globally Executable MHP The hard part of standardization Intellectual property and royalties Where do we go from here? Open vs. proprietary middleware Chapter 2 - A brief introduction to digital TV The consumer perspective Customizable TV Understanding digital TV services Producing digital TV content Elementary streams Transport streams The multiplexing process Carrying transport streams in the network Energy dispersal Error correction Modulation Cable vs. satellite vs. terrestrial broadcasting Broadcasting issues and business opportunities Subscriber management and scrambling The Subscriber Management System The return channel - technical and commercial considerations Chapter 3 - Middleware architecture MHP and OCAP are not Java They're not the web either Working in the broadcast world The anatomy of an MHP/OCAP receiver The navigator Differences in OCAP A new navigator - the monitor application Modules in the execution engine Architectural issues for implementers Choosing a Java VM Sun's JVM or a clean-room implementation? The impact of the Java Community Process Portability Performance issues Chapter 4 - Applications and application management An introduction to Xlets Xlet contexts Writing your first Xlet Do's and don'ts for application developers Application signaling Extending the AIT Controlling Xlets Registering unbound applications Making applications coexist reliably Pitfalls for middleware developers Chapter 5 - The JavaTV service model What happens during service selection? Abstract services Managing abstract services in OCAP Registering applications Selecting abstract services Chapter 6 - Resource management issues Introducing the resource notification API Using the resource notification API Handling resource contention Resource management in OCAP Resource contention before version I12 Resource contention in later versions Common features of resource contention handling An example Resource management strategies in OCAP Merging OCAP and MHP resource management Chapter 7 - Graphics APIs The display model in a digital TV receiver HScreens and HScreenDevices Configuring screen devices Screen devices and resource management A practical example of device configuration HScenes and HSceneTemplates Creating an HScene Developing applications using HScenes The HAVi widget set Changing the look of your application HLooks in practice The behavior of components in MHP and OCAP Interacting with components Co-ordinate schemes Integrating graphics and video Transparency Mattes and alpha compositing Images Text presentation Multilingual support Using fonts Handling user input Keyboard events and input focus Exclusive access to keyboard events Practical issues for digital TV graphics Chapter 8 - Basic MPEG concepts in MHP and OCAP Content referencing in the MHP and OCAP APIs Locators for DVB streaming content Locators for streaming content in OCAP systems Locators for files Locators for video 'drips' Locator classes Creating a locator Network-bound locators Chapter 9 - Reading service information Service information and other system components Why do we need two SI APIs? Caching strategies In-band vs. out-of-band service information The DVB service information API The SI database Making an SI request Getting the results of a query SI Events An example Monitoring service information Low-level access to SI data Using the JavaTV service information API Basic concepts Handling the results from an SI query The core SI API Access to transport information Access to information about services Access to information about events Monitoring service information The OCAP SI extensions System integration Caching service information Building the API implementations Handling the event handlers Performance issues Chapter 10 - Section filtering Hardware vs. software section filters Using section filters The section filtering API Section filters Types of section filter Section filter groups Section filter events An example The middleware perspective - event dispatching Managing section filter resources Managing section filters in your application Managing section filters in the middleware Chapter 11 - Media Control Content referencing in JMF Basic JMF concepts The player creation process A closer look at data sources JMF players The player state machine Player events Timebases, clocks and the media time DSM-CC Normal Play Time Controls JMF extensions for digital TV Using players to control players A digital TV special case - the video 'drip' content format JMF in the broadcast world Getting a player for the current service Players and service selection Integrating video with AWT Subtitles, closed captions, and JMF players Managing resources in JMF Restrictions on another resource - tuning Playing audio from sources other than files Chapter 12 - DSM-CC and broadcast filesystems DSM-CC background Why choose DSM-CC? Isn't there better documentation? An overview of DSM-CC Object carousels An example object carousel More than just a filesystem Normal Play Time Stream events The relationship between Normal Play Time and stream events DSM-CC in detail Data carousels Object carousels Multi-protocol encapsulation DSM-CC and service information DSM-CC streams and the PMT DSM-CC descriptors DSM-CC messages Data carousel messages Object carousel messages Referring to streams and objects Transporting object carousels in data carousels Parsing DSM-CC messages Using the DSM-CC API Manipulating DSM-CC objects Mounting an object carousel An example Updating objects Synchronization - stream events and NPT Practical issues Latency and caching strategies Latency issues and application design Application management and filesystem issues System integration issues Chapter 13 - Security in MHP and OCAP How much security is too much? The MHP and OCAP security model Permissions Permission request files Signed and unsigned applications Signing applications Hash files Signature files Certificates An example of the signing process Revoking certificates - the certificate revocation list Distributing certificate revocation lists Differences between MHP and OCAP Chapter 14 - Communicating with other Xlets Classloader physics in MHP The inter-Xlet communication model Using Remote Method Invocation Problems with RMI RMI extensions An example of inter-Xlet communication Practical Issues Generating stub classes Calling remote methods Arguments and return values Managing stub classes Chapter 15 - Building applications with HTML Application boundaries The core standards of DVB-HTML CSS support Scripting support Dynamic HTML Developing applications in DVB-HTML Navigating around a DVB-HTML application Special URLs Displaying an HTML application Transparent elements Embedding video in your application DVB-HTML application signaling Events and HTML applications Lifecycle Events Stream events and DOM events System events Coexistence between HTML and Java applications Accessing Java APIs from ECMAScript Extending the Document Object Model Real-world HTML support The future of DVB-HTML Chapter 16 - MHP 1.1 The Internet Access Profile The philosophy of the Internet client API Using the Internet client API General operations on Internet clients Email clients Web browsers Newsreaders A practical example Inner applications Creating an inner application Drawing an inner application The lifecycle of inner applications Stored applications Plug-ins Plug-ins and application signaling Building a plug-in The smart card API The OCF architecture Querying the smart card reader Using card services A practical example Implementing a card service MHP 1.1 in the real world Chapter 17 - Advanced topics Using the return channel Return channel interfaces Getting access to a return channel interface Connection-based return channels Using a return channel Advanced application management Getting information about an application Controlling applications Managing applications in an OCAP receiver Tuning to a different transport stream Network interfaces Finding the right network interface Tuning to a new transport stream Tuning events Resource management in the tuning API An example of tuning Tuning and other components Chapter 18 - Building a common middleware platform GEM and other standards Replacement mechanisms What GEM means for middleware implementers Design issues Porting to a new hardware platform Customizing our middleware Developing other middleware solutions Techniques for improving re-usability Designing re-usable components Re-usability outside GEM An example - the SI component Limits to re-usability Chapter 19 - Deploying MHP and OCAP From vertical markets to horizontal markets The fight for eyeballs - cable, satellite, and terrestrial A mandatory middleware platform? Switching off analog Making money from interactive TV The good news The bad news Other types of service Conditional access and horizontal markets 'MHP lite' and low-end solutions Interoperability MHP interoperability events and plug-fests Conformance testing Anomalies to the conformance testing program The MHP conformance testing process Testing MHP - a case study Testing OCAP Compliance and quality Head-end requirements Remultiplexing issues Conditional access Using object carousels OTA download and engineering channels Convergence with the Internet - fact or fiction? Appendix A - DVB service information The organization of service information Descriptors Transmitting an SI table Program specific information Conditional access information A look at DVB service information Finding information about the network Bouquets Describing services in DVB Describing events Telling the time Putting it all together Optimizing bandwidth usage - the Transport Stream Description Table Appendix B - ATSC service information Describing available channels The Virtual Channel Table Describing individual channels Event information Event information in a satellite network Extended text descriptions Extended text messages Extended descriptions in a satellite network Parental ratings Advanced functions - redirecting channels Telling the time correctly Putting it all together PSIP profiles in cable systems Broadcasting PSIP data