1st Edition

Interactive TV Standards A Guide to MHP, OCAP, and JavaTV

    612 Pages
    by Routledge

    612 Pages
    by Routledge

    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.

    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

    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