Xlet

An Xlet is very similar to a Java applet and is originally introduced in Sun Microsystems's Java TV specification to support applications for Digital TV. Though Xlet looks superficially different from other application models in Java such as applet and MIDlet, it is actually meant to be a generalization of such models. The X in Xlet means an unknown, meaning that the Xlet framework may be used in any context rather than specific to Digital TV. Accordingly, Xlet was later re-introduced as a part of the Personal Basis Profile in the javax.microedition.xlet package, which is slightly different from the original design in the Java TV specification.

The Xlet provision of a pause/resume feature is essential for a set-top box (STB) environment, which has limited memory resources and restrictions on bandwidth from the head-end provider. The current practice and intent of the Xlet framework is to provide downloadable applications for Personal Basis Profile (PBP) platforms. In particular, the BD-J platform uses Xlets as its programming framework.[1]

While Sun has provided a Java TV reference implementation within which they provide a simple Xlet runner called RunXlet, at least one other open-source effort to implement an Xlet runner has been made.[2]

Code examples

The interface for an Xlet is defined in the javax.tv.xlet package:

public interface Xlet {
    public void initXlet(XletContext ctx)
        throws XletStateChangeException;

    public void startXlet()
        throws XletStateChangeException;

    public void pauseXlet();

    public void destroyXlet(boolean unconditional)
        throws XletStateChangeException;
}

thus an example of a stub Xlet is

import javax.tv.xlet.XletStateChangeException;
import javax.tv.xlet.XletContext;
import javax.tv.xlet.Xlet;

public class BasicXlet implements Xlet {
    public BasicXlet () {}
    public void initXlet (XletContext context) throws XletStateChangeException {}
    public void startXlet () throws XletStateChangeException {}
    public void pauseXlet () {}
    public void destroyXlet (boolean unconditional) throws XletStateChangeException {}
}

Notes

  1. ^ "An introduction to Xlets". Interactive TV Web. 2005-09-14. Retrieved 2006-06-21.
  2. ^ XleTView - an open-source project to implement a Java-based Xlet runner, also supporting Multimedia Home Platform (MHP) (not updated since 2004, based on JRE 1.1.8)