CDF & Channel Definition

by Shasank Chavan

Today's 'Push' content systems such as PointCast, Backweb, Ifusion, etc. use a proprietary content markup language. To remedy this confusion, Microsoft has proposed a common 'push' content language (CDF) so that any receiver can receive any 'push' content. It is currently under review by W3C (World Wide Web Consortium).

CDF is an open and easily authored format for the publishing of Web-standard channels that will allow web publishers to optimize the broadcast of their content to Internet users. A key feature of CDF is that it allows any WEB site to be a web broadcaster - no special servers required! It provides an ideal mechanism to structure dynamic information which can easily be interpreted, displayed and managed by content agents. The CDF specification is designed to be an application of XML (Extensible Markup Language); we must first understand XML in order to understand CDF.

XML enables the usage of SGML on the WWW so that one can define their own Customized Markup Language. It is designed for ease of implementation, ease to define document types, ease to author and manage SGML-defined documents, and ease to transmit and share across the Web. XML is good because it removes the constraint of having a single document type (HTML, for example). It allows individual groups or organizations to define markup tags for exchanging information in their domain (music, chemistry, electronics, etc.). The language is recognized by a browser in two ways - (1) the XML processor can recognize well-formed, or pre-defined markup tags (2) or a valid DTD (Document Type Definition) file is provided which guides the user in creating and helps the browser in reading CDF files. The following are some of the highlighted features which XML offers that current web technology can't: (1) authors can design their own document types - browser presentation can benefit from greatly improved facilities, both for graphical display and for performance (2) document types can explicitly be tailored to an audience and (3) information is more accessible and reusable because XML is more flexible.

The major difference between CDF and XML is that while XML uses DTD to define what elements and attributes are found in an application, CDF processing programs can parse CDF files without DTD style sheets. The following then is a brief tutorial on the syntax used to create CDF files.

Elements are the dominating structures or basic tags used in CDF files. They consist of the following: Channel - defines a channel, Item - defines an item of a channel, UserSchedule - reference to a client/user specified schedule, Logo - defines an image representing a channel/channel item, and Tracking. Each Channel element can contain child elements such as the following: LastMod, Title, Abstract, Author, Publisher, Schedule, etc. As there are attributes for the Channel element, the Item and UserSchedule have attribute tags as well which further define the details of a channel.

Pointcast Connections recently announced that it will adopt Microsoft's CDF specification to broadcast HTML pages free to the 1 million plus Pointcast subscribers. Connections works by first asking the publisher/webcaster to fill out a form using the Connections Publisher application. This creates a CDF file that you put on your web site. Pointcast uses this file to add your channels to a channel directory. People can then connect to Pointcast, subscribe to your channel, and get content directly from your web page - that's it! The following is an example CDF file typical of what Connections will produce:

<Channel HREF="http://www.foosports.com/foosports.cdf" IsClonable=YES > <IntroUrl VALUE="http://www.foosports.com/channel-setup.html" /> <LastMod VALUE="1994.11.05T08:15-0500" /> <Title VALUE="FooSports" /> <Abstract VALUE="The latest in sports and atheletics from FooSports" /> <Author VALUE="FooSports" /> <Schedule> <EndDate VALUE="1994.11.05T08:15-0500" /> <IntervalTime DAY=1 /> <EarliestTime HOUR=12 /> <LatestTime HOUR=18 /> </Schedule> <Logo HREF="http://www.foosports.com/images/logo.gif" Type="REGULAR" /> <Item HREF="http://www.foosports.com/articles/a1.html"> <LastMod VALUE="1994.11.05T08:15-0500" /> <Title VALUE="How to get the most out of your mountain bike" /> <Abstract VALUE="20 tips on how to work your mountain-bike"/> <Author VALUE="FooSports" /> </Item> <Item HREF="http://www.foosports.com/animations/scrnsvr.html" /> <Usage VALUE="ScreenSaver"></Usage> <Schedule> <StartDate VALUE="1994.11.05T08:15-0500" /> <EndDate VALUE="1994.11.05T08:15-0500" /> <IntervalTime DAY=1 /> <EarliestTime HOUR=12 /> <LatestTime HOUR=18 /> </Schedule> </Item> </Channel>

There are some obvious pluses of CDF that should be addressed: (1) Open format - any company can author content to take advantage of CDF, any server can run web sites that are enhanced by CDF, and any broadcast enabled client software can access channels available on web sites using CDF (2) Low Cost - the CDF specification will save content development costs by allowing web content developers easy access to a market of millions of compatible clients (3) Use of compelling Internet technologies - CDF is extensible. Sites can publish channels utilizing any or all of simple HTML, Dynamic HTML, etc. There are also minuses of CDF which Backweb in particular has been very vocal about: (1) CDF offers non-segmented, non-personalized broadcasting and (2) CDF does not provide for channel control over scheduling, user profiles, customized content, feedback and intelligent delivery of information.

Some of the challenges facing Push technology