Opencable APPLICATION PLATFORM – STATUS and ROADMAP Allen R
Total Page:16
File Type:pdf, Size:1020Kb
OpenCable APPLICATION PLATFORM – STATUS AND ROADMAP Allen R. Schmitt-Gordon, Ph.D. Frank Sandoval Cable Television Laboratories, Inc. ABSTRACT operators to provide the next generation digital device, encourage supplier The OpenCable Application Platform competition, and create a retail hardware (OCAPTM) is a software middleware layer that platform. A cable receiver provided at retail resides functionally on top of the operating must provide portability of content and system of an OpenCableTM terminal. It applications across networks and platforms, provides an interface and enables application and be geared towards the full range of portability. A fundamental requirement is interactive services. Current devices are that applications written for OCAP be network specific and operate proprietary capable of running on any OpenCable software that is not portable across platforms hardware, without recompilation. or networks. With OCAP, applications are written to a middleware API so that a single Two profiles of OCAP have been identified. application can be deployed on any OCAP 1.0 is a minimal platform that supports OpenCable host device. Such applications procedural applications with an Execution might include: Engine (EE). OCAP 2.0 is a super set of OCAP 1.0, and includes support for • Electronic Program Guide (EPG) declarative content with the inclusion of a • Impulse Pay Per View (IPPV) Presentation Engine (PE), that supports • Video On Demand (VOD) HTML, XML, ECMAScript, and a bridge • Interactive sports, game shows between the PE and the EE. The bridge • E-mail, Chat, Instant messaging enables PE applications to obtain privileges • Games and directly perform EE operations. • Web Browser: Shopping, Home banking • Personal Video Recorder (PVR) OCAP 1.0 has been publically released, OCAP 2.0 is scheduled for around 1Q02. OCAP provides applications an abstracted CableLabs plans to draft a family of OCAP view of the receiver and network, hiding specifications, each being backward vendor and network specific characteristics compatible and defining different feature sets. that would tie an application to a given system. OCAP is operating system and The OCAP specifications are based upon the hardware agnostic, so that applications can be DVB MHP specifications with modifications run on a variety of CPUs and operating for the North American Cable environment systems. The OCAP middleware also that includes a full time return channel. simplifies content development by OCAP 1.0 corresponds to MHP 1.0.2, and encapsulating common operations within the OCAP 2.0 will correspond to MHP 1.1. API. Another essential requirement is that the middleware be secure and robust. Stability in the cable terminal or receiver is imperative as INTRODUCTION resets are not acceptible. OCAP is part of a concerted effort, called OpenCable, by North American cable Background material to identify differences and extensions. The OCAP specifications include Application Programming Interfaces (API) as well as OCAP Roadmap definitions regarding platform behaviors. The APIs define the syntax of the platform, while Rationale for Middleware normative text define semantic guarantees. The current software model used by the cable The architecture of the OCAP 2.0 middleware industry is similar to the more general pattern comprises two parts: a Presentation Engine in which applications are developed for a (PE) and an Execution Engine (EE). The PE specific operating system (OS) and compilied is generally composed of an HTML engine for a specific device. This model does not and ECMAScript. The EE includes a Java lend itself to application portability where a virtual machine. This architecture is shown in variety of devices can be attached to several Figure Figure 1. It shows that native different network infrastructures. Currently, applications are supported as well as applications such as EPG, VOD, mail, etc. are applications written to the middleware via the compiled to the application programming OCAP interface. interface determined by the operating system and associated hardware. In order to expedite development of the OCAP specifications, it was necessary to By providing a middleware layer that utilize existing standards and architectures as abstracts the functionality of the OS, hardware much as possible. device and network interfaces, applications can be written that will run on any conformant A key decision was to base the OCAP EE on platform. Java was chosen in order to avoid standard Java APIs. In particular, the OCAP recompilation of source code as would be the EE comprises pertinent portions of Sun’s Java case with languages such as C or C++. Virtual Machine (JVM) and JavaTV API specifications. The Sun technology is OCAP 1.0 licensed by CableLabs and is available to all implementers of OCAP royalty-free. The primary architectural component of CableLabs will also incorporate the Sun OCAP 1.0 is the Execution Engine (EE). It is Technology Compatibility Kit as part of the composed of a Java Virtual Machine and a set OCAP compliance test suite. of Java packages. Application portability is achieved through the “write once, run Another key decision was to adopt the DVB anywhere” nature of Java. Java source code is project’s Multimedia Home Platform (MHP) compiled into bytecode, and the JVM specification. The DVB Project is a European interprets the bytecode in real time on the consortium of manufacturers, content target machine. Once the JVM is ported to a developers, broadcasters, governmental target machine, any EE application will run. agencies, and system operators. MHP is The Java packages that comprise the EE designed to apply to a wide set of networks include basic support functionality from Sun, and devices, including cable networks. such as net, io, util, and lang packages, and CableLab’s recognized that DVB was trying JavaTV and Java Media Framework. The EE to solve a similar set of problems. OCAP 1.0 also includes Java APIs identified in DAVIC, is a delta from MHP 1.0.2, that is, the OCAP HAVi, and MHP 1.0.2. In addition, there are 1.0 document identifies conformance with OCAP specific APIs. MHP 1.0.2 section by section, and includes This collection of APIs allows access to OCAP 2.0 system resources, such as the cable tuner and input events, and access to network resources, OCAP 2.0 refers to OCAP 1.0 for core such as System Information, in-band and out- functionality and adds features found in MHP of-band resources, and IP flows. 1.1. A Presentation Engine and Bridge are included to support so-called declarative Because of the interpreted nature of Java, applications. The PE renders content such as application security is easily maintained. graphics, text, animations and audio based on Applications by default are given limited formatting rules in the PE itself and access to system resources. An application formatting instructions contained in markup can gain extended access by requesting language. The PE enables the use of tools that resources via a permissions file, and by being have been widely used for internet content. authenticated by the operator. OCAP 2.0 primary components consist of OCAP 1.0 specific APIs have been designed XHTML 4, XML 1.0, CSS 2, DOM 2, and to address the business requirements of the ECMAScript. cable industry. Unbound applications can exist outside of the context of a given service, In order to extend the functionality of the PE or channel. Also, an optional monitor without adding the burden of requiring application can be created by the system extensive plugins, a bridge is defined between operator. The monitor application allows to the two environments. The bridge allows PE operator to control the execution lifecycle of applications, through ECMAScript calls, to other applications, and perform some simple access functionality defined in the EE. resource management functions, in order to Conversely, EE applications, through the prevent harm to the cable network. DOM interface, can interact with concurrently running PE applications. Native MSO Monitor Baseline All Other Application Application Applications Applications representation OCAP Application Programming Interface Native Application Environment Resource Application JVM JNI Management Manager Execution Engine Network Protocol Operating System and Device Drivers Ocap Host Device Hardware Figure 1 - OCAP 1.0 Software Architecture For example, as part of the EE that is file I/O, graphics, etc. The OCAP EE accessible via the bridge, JavaTV offers a provides a full TV application environment. common point of control and management of OCAP specific extensions have been added various system resources, includeing tuning. to MHP to cover elements such as a full time Thus, a PE application will access device return channel, application management, resources through the bridge. This ensures resource contention mangement, and service that device resource contention is managed information. through a common control point for a PE and EE application that may be vying for the Major elements of the EE include control of same resources. application management through the pJava APIs, service information and selection Execution Engine through the JavaTV API's, media control through the JMF, and broadcast data through The EE provides a general application the MHP DSMCC APIs. Native applications programming evironment for networking, are supported by creating an OCAP application that calls into native code via the • Validation of the starting of all Java Native Interface (JNI). In addition, the applications through the setting of EE provides network management and IP application filters. data access and extensions from HAVI, • Registration of system errors that are DAVIC and DASE. propagated from the OS middleware, and/or OCAP 1.0 implementation, A fundamental feature of the EE utilizing including OCAP applications. Java is that security is built into the • Request system reboot, and regitration of architecture from the ground up. system reboot event. • Control of copy protection bits and The components of the EE, some of which output resolution using the are shown in Figure 1, are described in detail org.ocap.application.CopyControl in the OCAP 1.0 specification.