Application Standards for ‘Push’ Content and Streaming Media Hadi Partovi Microsoft Corporation
Agenda Justification Technologies of today: –Smart Pull –True Push, Streaming Media CDF - Unifying Pull and Push –Demo, Details Technologies of tomorrow: –Searching and Filtering –Profiling and Personalization
Justification The Web today: –Different standards for pull vs. push –Many different push mechanisms, transports –No interoperability in “push” The Web tomorrow –New ways to manage content –Even greater need for interoperability
Technologies of today Smart Pull True Push Streaming Media
Push = Smart Pull? “Smart” means automated, scheduled pull HTTP as the underlying transport Driven by data about the content User Interface provides “push” experience Many players in this space
Smart Pull Delivering Content for Offline User Client polls for new information about content Web Server Client Actions 1. Client “Subscribes” to the Web Site 2. Server side provides directives for smart pull 3. Web pages described in these directives are automatically fetched delivered to client Directives Pages sent Directives
True Push (1 of 2) New transport protocols solve problems not addressed by HTTP today –Multicast information to many clients efficiently –Data change notifications –Different physical media (e.g. airwaves)
True Push (2 of 2) Diverging solutions for multicast and broadcast protocols Many of these protocols also include similar directives –What content to deliver –Schedule
Streaming Media Similar to “true-push” multicast solutions Similar directives for streaming content –What streams to “play” –Timing information Many more problems beyond regular Web content (out of scope) –Video / presentation issues
Channel Definition Format Unifying Push and Pull Demo Details
CDF - Unifying Pull and Push Author once for different delivery mechanisms Single, simple data format, procedural API –eXtensible Markup Language (XML) –Document Object Model Extensible vocabulary for common application directives Scalable
What is a channel? Meta-information about content Automated delivery Offline use Personalization rules Vision supplied by many companies
The role of CDF Existing vocabulary has played a unifying role in the marketplace –Majority of ‘push’ clients, servers, tools –Countless content sites –Evolved from Sitemaps (HTML-WG) Built on XML - (first widely publicized application of XML) CDF-based solutions for smart pull or true push
Flexibility of Implementation Interoperable client, server, tool implementations available today IE4 will provide best of breed, cross platform. Open COM-based architecture allows multiple transport protocols to plug in Independent of content format
CDF - Demo Content hierarchy Offline use Display directives
CDF - Selected Details Content grouping Update Schedule Display preferences
CDF - Content Grouping Hierarchical grouping – and Absolute or relative URLs – just like HTML Cache directives –LASTMOD attribute (avoid roundtrip) –PRECACHE attribute (for offline use) –LEVEL attribute (for crawling subtrees)
CDF - Update Schedule Required update frequency: –INTERVALTIME Optional channel lifetime: –STARTDATE, ENDDATE Optional - control over time of update: –EARLIESTTIME, LATESTTIME
CDF - Display Preferences - visual cues –for channels or items - display venue for presenting channel or item content –e.g. channel-viewer –e.g. screen-saver –e.g. a notification pop-up –e.g. a printer
OSD - Open Software Description Philosophically aligned with CDF Value is in vocabulary –XML for syntax –DOM for procedural API CDF is vocabulary for content OSD is vocabulary for software packages –Dependencies per platform/lang/etc
Technologies of Tomorrow Searching, Filtering Profiling, Personalization
Moving Forward - Searching, Filtering, Aggregating Client-side or Server-side “Push” vocabulary helps search content, filter unwanted info, aggregate desired info Use XML-Namespaces and XML-RDF to add annotations Search results themselves may be “pushed” Need language and application rules for CDF filtering
Profiling and Personalization Again, personalize on client or on server Upcoming work from P3 group - profiling –Communicating private info between client and server “Pushed” content should be personalized –Client-side personalization essential for many “true-push” mechanisms –Need common standard for CDF personalization directives
CDF Futures CDF v1 - shipping, industry momentum CDF v2 –Filtering / Personalization language, rules –Vocabulary extended (use XML Namespaces) –Relationship to other proposals (XML for native types, XML-RDF for annotation, OSD for software push)
Summary Need standards in diverging area of push Many future technologies at stake CDF is already in use by over 50 software vendors, over 1,000 high-profile web sites –Clients, Servers, Tools - shipping, many impls –Wire (or air) Protocols –Content - grassroots momentum Looking forward to formalizing CDF, defining future versions