  Intro
|
|
  Boulevard of Broken Songs
|
  Admin
|
  Follow-up
|
  Big Concepts
|
  "Meta-Data"
|
  Response-Request Paradigm
|
  Separation of Code, Data and Presentation
|
  Less confusion
|
  Better caching
|
  More efficiency
|
  AJAX
|
  Asynchronous Java and XML
|
  Original article where it appeared
|
|
  New Web User Interface paradigm
|
  Web 2.0
|
  Theory
|
  Rich Client technology
|
  Rich and Client
|
  Rich HCI
|
  Spreadsheet
|
  edit data in place
|
  edit with keyboard and mouse
|
  drag and drop
|
  feedback
|
  cursor changed
|
  text was highlighted
|
  rich interactivity
|
  Client
|
  Interacts with a remote process
|
  Basic Web Page
|
|
  Amazon.com
|
  Complicated features, but all backend
|
  Hyperlink/text form interaction
|
  If I didn't do anything for a week the page wouldn't change
|
  even if the inventory changed
|
  new books arrived etc.
|
  Lists don't move between pages
|
  Why are web pages like this?
|
  Network Latency
|
  remote and local procedure calls are not the same thing
|
  Abstractions for remote procedure calls look good but are slow
|
  Draw the local model
|
  calling function -> model -> local memory
|
  Draw the connection diagram
|
  Local model, serialization, application protocol, physical transport, application protocol, selialization, remote model and back
|
  Network calls have more overhead
|
  But, it is variable and hard to predict
|
  It will always be worse then a local call
|
  Impact on usability
|
  slight delays are *really* annoying, *distracting*
|
  the promise of ubicomp
|
  desktop application bad usability design makes the application feel buggy, but in a networked application it is free.
|
  Asynchronous Interaction Example
|
  Sleeping Child, make coffee, feed cat
|
  Synchronous interaction
|
  Parallel to U/I
|
  because of network any remote call should be treated asynchronously
|
  old model caused web pages to hang when network latency was there
|
  Unfortunately HTTP is request/response
|
  Classic web design won't work
|
  bult around concept of "pages"
|
  Why does this work for Amazon
|
  Usage Patterns :Transient Usage or Sovereign Usage
|
  transient
|
  short bursty usage
|
  sovereign application
|
  runs for hours on end, primary user focus
|
  examples of both?
|
  Transient
|
  amazon,ebay, original google
|
  to what degree is your UI "visible"
|
  page-based solutions are good enough for transient but not sovereing apps
|
  AJAX is Unlearning the web
|
  browser hosts an application, not content
|
  every page is new content vs. request for data
|
  server functionality is moved to browser
|
  example, the shopping basket is in the client
|
  draw picture of login logout web pages model
|
  include browser, server, login, pages
|
  draw picture of client application picture
|
  include client application and data model
|
  server delivers data not content
|
  Draw graph of network resources
|
  classic web app (data, presentation, content)
|
  AJAX web app (logic, presentation, data)
|
  bandwidth usage over time
|
  User interaction with the application can be fluid and continuous
|
  Typically when a page is submitting data, the user is in limbo
|
  Use the shopping cart example
|
  This is real coding
|
  Examples
|
  google suggest
|
|
  bus monster
|
|
  AJAX alternatives
|
  Flash
|
  Java Web Start
|
  Why might one technology be pushed over another?
|