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