Introduction - evolution of the web from content to app

Platform vs. language exensibility

Infrastructure requirements for language extensibility

Data, view, control -- each may require extensible markups

Binding of markup to behavior is an open problem

Application patterns supporting RIAs

Example: Financial Services Application

Scenario as illustration of infrastructure requirements

HTML and its extensions through HTML5/6/custom modules

XForms

SMIL

Open Document Format

Other possibilities: SCXML, Acord, HL7 -- many have behaviors not just data formats.

Supporting richness at the infrastructure/platform level

Example: financial services application

HTML and its extensions through HTML5/6/custom modules

XForms

SMIL

Open Document Format

Other possibilities: SCXML, Acord, HL7 -- many have behaviors not just data formats.

Overview of approaches to language extensibility

Server-side transcoding

Client-side transcoding, e.g. dojo.E, "Ample" sdk (www.amplesdk.com)

Progressive enhancement and unobtrusive javascript, e.g. Dojo

XBL

Cross-platform client-side behaviors, e.g. Ubiquity-xforms

Requirements for standardization

Application patterns supporting RIAs

Examples from the financial services scenario

Loose coupling via event-driven coordination

Separation of concerns: data binding and behavior vs. presentation (SVG and other custom controls)

Implicit vs. explicit coordination: data as API

Future topics

Additional RIA patterns

Composition via recursive MVC

Additional models of control: data-driven, SCXML

Distributed RIAs w/common programming patterns: spanning client to server boundary