wedge Administration
* Schedule
* No Final Exam
wedge Project
* Due March 20th
* 2 or 3 person teams
wedge Write an AJAX web-app
* That integrates information from two web sources and a phone application
wedge So, for example
* A map application (bus monster)
wedge AJAX
* Asynchronous Java and XML
* New Web User Interface paradigm
* Web 2.0
wedge Theory
wedge Rich Client technology
wedge Rich HCI
wedge Spreadsheet
* edit data in place
* edit with keyboard and mouse
* drag and drop
wedge feedback
* cursor changed
* text was highlighted
* rich interactivity
wedge Client
* Interacts with a remote process
wedge Basic Web Page
wedge Amazon.com
* Complicated features, but all backend
* Hyperlink/text form interaction
wedge If I didn't do anything for a week the page wouldn't change
* even if the inventory changed
* new books arrived etc.
wedge Why are web pages like this?
* Network Latency
wedge Abstractions for remote procedure calls look good but are slow
wedge Draw the connection diagram
* Local model, serialization, application protocol, physical transport, application protocol, selialization, remote model and back
wedge Network calls have more overhead
* But, it is variable and hard to predict
wedge 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.
wedge Asynchronous Interaction Example
* Sleeping Child, make coffee, feed cat
* Synchronous interaction
wedge 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
wedge Unfortunately HTTP is request/response
* Classic web design won't work
* bult around concept of "pages"
wedge Why does this work for Amazon
wedge Transient Usage or Sovereign Usage
wedge transient
* short bursty usage
wedge sovereign application
* runs for hours on end, primary user focus
wedge examples of both?
wedge Transient
* amazon,ebay, original google
* to what degree is your UI "visible"
* page-based solutions are good enough for transient but not sovereing apps
wedge AJAX is Unlearning the web
wedge 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
wedge draw picture of login logout web pages model
* include browser, server, login, pages
wedge draw picture of client application picture
* include client application and data model
wedge server delivers data not content
wedge Draw graph of network resources
* classic web app (data, presentation, content)
* AJAX web app (logic, presentation, data)
* bandwidth usage over time
wedge 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
wedge Examples
* google suggest
* bus monster
* my web page
wedge AJAX alternatives
* Flash
* Java Web Start