Administration
|
Schedule
|
No Final Exam
|
Project
|
Due March 20th
|
2 or 3 person teams
|
Write an AJAX web-app
|
That integrates information from two web sources and a phone application
|
So, for example
|
A map application (bus monster)
|
AJAX
|
Asynchronous Java and XML
|
New Web User Interface paradigm
|
Web 2.0
|
Theory
|
Rich Client technology
|
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.
|
Why are web pages like this?
|
Network Latency
|
Abstractions for remote procedure calls look good but are slow
|
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
|
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
|
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
|
my web page
|
AJAX alternatives
|
Flash
|
Java Web Start
|