Platform SDK: Broadcast Architecture

Outline of a Typical ATVEF Enhancement

The following outline is an example of a "typical" enhancement broadcast. The enhancement broadcast for any particular show may vary from this model. In the following, a typical enhancement is defined as a stream that is well-formed and that contains one or more enhancement files. The process is as follows:

Transmitting the Base Page

  1. Transmit an announcement for the show.
  2. Allow sufficient time for the client to set up data reception. The amount of time required depends on the speed of the client. Most clients require at least five seconds.
  3. Transmit the package containing the base page. This page contains the FRAME and DIV tags used to display the enhancement content. Scripts sent in subsequent triggers are evaluated relative to the base page.
  4. Wait sufficient time for the client to finish receiving and decompressing the package.
  5. Transmit a trigger that displays the base page.
  6. Repeat steps 1-5 as often as possible during the show. This ensures that clients who tune in to the middle of a show will not have to wait long before they are able to display the enhancement.

If the enhancement requires additional packages, it is recommended that you surround the package download with triggers whose script tracks the beginning and end of the transmission. This way, scripts on the base page can determined whether a package was completely received before displaying that package. This process is described in the following steps:

Transmitting Additional Packages

  1. Transmit a trigger containing script which somehow marks the beginning of a download. For example, the second package of an enhancement might be preceded by a trigger containing the script, Start(2), where Start is a function implemented on the base page. The following ECMAScript illustrates how the Start function might be implemented:
    global lastStart = 0;
    Start (packageNum)
    {
      lastStart = packageNum;
    }
  2. Transmit the package
  3. Transmit a trigger containing script that displays the package if the package was fully received. Again, this can be implemented by a function on the base page. Continuing the earlier example, the second package might be followed by a trigger containing the script, NavigateTo(2,"NewFile.html"), where NavigateTo is a function on the base page. The following ECMAScript illustrates how the NavigateTo function might be implemented:
    NavigateTo(packageNum, url)
    {
      //verify that the package was completely received
      if (lastStart == packageNum)
      {
        //navigate to the specified url 
        // . . .
      }
     
      //reset the global variable
      lastStart = 0;
    }

Repeatedly transmitting packages throughout the broadcast helps clients who tuned into the middle of an interactive show quickly get the information they need to display the enhancement.