1st Edition
Interactive TV Standards A Guide to MHP, OCAP, and JavaTV
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.
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
Biography
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.
"This is a practical guide for students, developers and managers that will help them to build and use the standards effectively, from writing their first MHP or OCAP application to deploying a full-blown application. It makes this book an excellent and essential reference handbook for all those who are new to developing standards-based middleware for DTV and iTV." - Journal of Learning, Media and Technology