Java TV

Last updated

Java TV is a Java-based software framework designed for use on TV set-top boxes, based on components called Xlets. It is currently used only on the Connected Device Configuration, specifically for iTV applications development.

In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. A software framework provides a standard way to build and deploy applications. A software framework is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate development of software applications, products and solutions. Software frameworks may include support programs, compilers, code libraries, tool sets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or system.

Set-top box information appliance device

A set-top box (STB) or set-top unit (STU) is an information appliance device that generally contains a TV-tuner input and displays output to a television set and an external source of signal, turning the source signal into content in a form that then be displayed on the television screen or other display device. They are used in cable television, satellite television, and over-the-air television systems, as well as other uses.

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.

Contents

The API includes the Xlet classes in the package javax.tv.xlet. Other packages of the public API include

  1. javax.tv.graphics - provides a simple rendering canvas
  2. javax.tv.locator - provides a locator in the style of a URL for services and media, such as service:/SERV1
  3. javax.tv.service - defines a mechanism for service information (SI) databases and APIs representing the SI elements, such as the TV channels and media available for playback.

Criticisms

While the framework is general, Sun currently provides support only on Java ME. For some subjects, such as media locators, it is in effect superseded by other locator standards on platforms such as BD-J.

BD-J, or Blu-ray Disc Java, is a specification supporting Java ME Xlets for advanced content on Blu-ray Disc and the Packaged Media profile of Globally Executable MHP (GEM).

A point of confusion is that in platforms supported as of 2008, examples such as the SvcDispXlet example from the introduction to the API, written circa 2001, are not deployable because it uses AWT widgets such as java.awt.Button. Most iTV platforms, along with BD-J, implement Personal Basis Profile with no AWT widgets, as opposed to Personal Profile which includes the widgets. [1]

Abstract Window Toolkit

The Abstract Window Toolkit (AWT) is Java's original platform-dependent windowing, graphics, and user-interface widget toolkit, preceding Swing. The AWT is part of the Java Foundation Classes (JFC) — the standard API for providing a graphical user interface (GUI) for a Java program. AWT is also the GUI toolkit for a number of Java ME profiles. For example, Connected Device Configuration profiles require Java runtimes on mobile telephones to support the Abstract Window Toolkit.

Sun's reference implementation for Java TV attempts to limit its exposure to support issues to the full Java Media Framework by having its own small version of JMF that is internally referred to as "jmflite". As with the limitations of the MIDP emulators that Sun provides, the Java TV reference implementation provided by Sun has not been updated to make provisions for later JDK's such as removing calls to Thread.stop(). The Thread.stop() method was made a "final" method in Java 1.5 (meaning that classes which extend Thread and override stop() will fail at runtime under JRE 1.5 when the class is loaded). This implies that Sun has not yet committed to public plans or a roadmap for taking Java ME beyond JRE 1.3. If such an upgrade were to take place, it would require significant work on the part of all vendors of Java ME-enabled devices. [2] [3]

Java Media Framework Java library for audio, video and other time-based media

The Java Media Framework (JMF) is a Java library that enables audio, video and other time-based media to be added to Java applications and applets. This optional package, which can capture, play, stream, and transcode multiple media formats, extends the Java Platform, Standard Edition and allows development of cross-platform multimedia applications.

See also

Related Research Articles

Java (programming language) Object-oriented programming language

Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented,and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to "bytecode" that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The language derives much of its original features from SmallTalk, with a syntax similar to C and C++, but it has fewer low-level facilities than either of them. As of 2018, Java was according to Github one of the most popular programming languages in use, particularly for client-server web applications, with a reported 9 million developers.

Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices. Java ME was formerly known as Java 2 Platform, Micro Edition or J2ME.

Java Platform, Standard Edition is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).

Java servlet Java programming language class

A Java servlet is a Java software component that extends the capabilities of a server. Although servlets can respond to any types of requests, they most commonly implement web containers for hosting web applications on web servers and thus qualify as a server-side servlet web API. Such web servlets are the Java counterpart to other dynamic web content technologies such as PHP and ASP.NET.

Swing (Java) Java GUI widget toolkit

Swing is a GUI widget toolkit for Java. It is part of Oracle's Java Foundation Classes (JFC) – an API for providing a graphical user interface (GUI) for Java programs.

The Connected Device Configuration (CDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CDC is combined with one or more profiles to give developers a platform for building applications on embedded devices ranging from pagers up to set-top boxes. The CDC was developed under the Java Community Process as JSR 36 and JSR 218.

The Connected Limited Device Configuration (CLDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CLDC is combined with one or more profiles to give developers a platform for building applications on embedded devices with very limited resources such as pagers and mobile phones. The CLDC was developed under the Java Community Process as JSR 30 and JSR 139.

The event dispatching thread (EDT) is a background thread used in Java to process events from the Abstract Window Toolkit (AWT) graphical user interface event queue. It is an example of the generic concept of event-driven programming, that is popular in many other contexts than Java, for example, web browsers, or web servers.

In computing, Java Web Start is a framework developed by Sun Microsystems that allows users to start application software for the Java Platform directly from the Internet using a web browser. Some key benefits of this technology include seamless version updating for globally distributed applications and greater control of memory allocation to the Java virtual machine.

The Visual Component Framework (VCF) is an abandoned open source project for development under Microsoft Windows and Apple Macintosh that is distributed under the BSD license. It is an advanced C++ application framework that makes it easier to produce GUI-based C++ applications. The framework is C++ design and has built in support for rapid application development. The framework is designed to be portable over multiple platforms and compilers.

In the Java computer programming language, an annotation is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, parameters and packages may be annotated. Like Javadoc tags, Java annotations can be read from source files. Unlike Javadoc tags, Java annotations can also be embedded in and read from class files generated by the compiler. This allows annotations to be retained by Java VM at run-time and read via reflection. It is possible to create meta-annotations out of the existing ones in Java.

The Java Class Library (JCL) is a set of dynamically loadable libraries that Java applications can call at run time. Because the Java Platform is not dependent on a specific operating system, applications cannot rely on any of the platform-native libraries. Instead, the Java Platform provides a comprehensive set of standard class libraries, containing the functions common to modern operating systems.

In computer programming, JavaBeans Activation Framework, or JAF, enables developers to:

The Java Development Kit (JDK) is an implementation of either one of the Java Platform, Standard Edition, Java Platform, Enterprise Edition, or Java Platform, Micro Edition platforms released by Oracle Corporation in the form of a binary product aimed at Java developers on Solaris, Linux, macOS or Windows. The JDK includes a private JVM and a few other resources to finish the development of a Java Application. Since the introduction of the Java platform, it has been by far the most widely used Software Development Kit (SDK). On 17 November 2006, Sun announced that they would release it under the GNU General Public License (GPL), thus making it free software. This happened in large part on 8 May 2007, when Sun contributed the source code to the OpenJDK.

References