presentation

advertisement
May 5, 2006 // Andy LaMora
Next Generation Development
New Paradigms in User Interfaces
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
May 5, 2006 // Andy LaMora
“All crises begin with the blurring of one
paradigm and the consequent
loosening of the rules for normal
research”. -T.S. Kuhn
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
AGENDA
05.05.2006
»
»
»
»
»
»
UI: History Channel Overview
The New Paradigm: Ajax
Ajax: Worries in Management
Design: Return of the Lost Art
State of the Art
Future
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
AGENDA
05.05.2006
»
»
»
»
»
»
UI: History Channel Overview
»
»
»
»
UI through the times
GUIs & the Web Impact
Stalwart Soldiers
The New Paradigm
The New Paradigm: Ajax
Ajax: Worries in Management
Design: Return of the Lost Art
State of the Art
Future
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Overview :: UI Through the Times
05.05.2006
? Next ?
1990s+: Web
1980s: GUI
1970s: Command Line
1960s: Punch Cards
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
UI Shifts Corresponding to
Increased User Base
[ ]
Overview :: UI Through the Times
05.05.2006
? Next ?
1990s+: Web
1980s: GUI
1970s: Command Line
But is the Browser
really an advance in
user interface design?
1960s: Punch Cards
Let’s look at what was going on before
NCSA Mosaic changed it all…
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Overview :: UI Through the Times
05.05.2006
»
»
»
GUI Advances
Desktop Paradigm
» Trash Bin
» Tabs
» Menu Bars
Interactivity
» Haptic Devices
» 3D Displays
Demonstrating a trend towards
rich, real-time interaction.
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
PARC Cone Tree, 1991
Robertson, Mackinlay & Card
[ ]
Overview :: GUIs & Web Impact
05.05.2006
The user fills out a form,
sends it to a processor, and
patiently sips coffee
awaiting the results.
Form
Web
Server
Form
Punch
Card
Mainframe
What does that remind us of?
Ticker
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Overview :: Soldiers
05.05.2006
»
»
Many Efforts Continued…
»
»
»
Applets
Flash
Web Start
But:
» All require new run-times
» Lack tight browser integration
» Require learning new technologies
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Overview :: The New Paradigm
05.05.2006
Asynchronous JavaScript + XML
AJAX
»
»
»
»
Browser is the run-time.
Has access to all browser elements/functions.
NO new technologies required.
Frees us from requirement to submit entire page.
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
AGENDA
05.05.2006
»
»
»
»
»
»
UI: History Channel Overview
The New Paradigm: Ajax
»
»
»
Definition
Architecture
Examples
Ajax: Worries in Management
Design: Return of the Lost Art
State of the Art
Future
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
The New Paradigm: Ajax :: Definition
05.05.2006
Asynchronous JavaScript + XML
» Defines an Approach:
» Standards-based presentation (CSS, XHTML)
» Dynamic Display/Interaction via DOM
» Data manipulation with XSLT
» Asynchronous data/code retrieval
» Bound in JavaScript (ECMAScript)
AJAX is not, itself, a new technology.
AJAX is a term that identifies a method to load and
manipulate data from a server in a web browser, without
reloading the entire page.
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
The New Paradigm: Ajax :: Definition
05.05.2006
“All crises begin with the blurring of one
paradigm and the consequent
loosening of the rules for normal
research. “ -T.S. Kuhn
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
The New Paradigm: Ajax :: Architecture
05.05.2006
Ajax Engine
is loaded into the
browser
Engine intercepts user
events and requests
Credit: J.J. Garrett, Ajax: A New Approach to Web
Applications February 2005
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
Engine performs:
• Data Validation
• Interface Changes
• Server Requests
[ ]
The New Paradigm: Ajax :: Architecture
05.05.2006
Can also forward
new code, and
serialized objects.
Credit: J.J. Garrett, Ajax: A New Approach to Web
Applications February 2005
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
The New Paradigm: Ajax :: Architecture
05.05.2006
No new technologies;
instead, a new way of
using them.
Credit: J.J. Garrett, Ajax: A New Approach to Web
Applications February 2005
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
The New Paradigm: Ajax :: Architecture
05.05.2006
In the “old” method, we fire off a request, and lock while
waiting for the response.
(Users became used to waiting)
Credit: J.J. Garrett, Ajax: A New Approach to Web
Applications February 2005
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
The New Paradigm: Ajax :: Architecture
05.05.2006
AJAX decouples the request from the response.
(No more waiting; the Engine works in the “background”)
Credit: J.J. Garrett, Ajax: A New Approach to Web
Applications February 2005
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
The New Paradigm: Ajax :: Some Examples
05.05.2006
»
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
Ajax Examples
» Google Maps
» Google Suggest
» MyYahoo
» AOL A9
» Zillow.com
» DesignBais
[ ]
AGENDA
05.05.2006
»
»
»
»
»
»
UI: History Channel Overview
The New Paradigm: Ajax
Ajax: Worries in Management
»
»
»
Blurred Boundaries
MVC: Help from an old friend
Design Patterns: Control at last
Design: Return of the Lost Art
State of the Art
Future
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
»
Blending Roles?
» Functionality now in JavaScript
» Who codes the JavaScript?
» Designers?
» Middleware Developers?
Consider an Autocomplete Example *…
* Inspired by Thomas Fuch’s(?) Flash-based demonstration:
http://www.phppatterns.com/stuff/latency.html
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Start typing in a name:
>
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Start typing in a name:
>
A
Our Ajax Engine is triggered by the key_up event,
and sends a request to the server to filter the
name list on “A”.
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Some suggestions are returned and presented:
>
Andy Dick
>
A
Andy LaMora
Anthony Jefts
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
>
Arturo Sandoval
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Keep typing, suggestions are refined:
>
Andy Dick
>
An
Andy LaMora
Anthony Jefts
>
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Keep typing, suggestions are refined:
>
Andy Dick
>
And
Andy LaMora
>
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Keep typing, suggestions are refined:
>
Andy Dick
>
Andy
Andy LaMora
>
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Keep typing, suggestions are refined:
>
Andy Dick
>
Andy
Andy LaMora
>
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Keep typing, suggestions are refined:
>
Andy LaMora
>
Andy L
>
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
That’s the one, so I hit tab to select it.
>
Andy LaMora
>
Andy LaMora
>
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Great!
But is a real world example?
What if our network lags?
Lets try something more realistic:
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Start typing in a name:
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
>
A
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Start typing in a name:
>
An
Hmmm…. Our engine is still processing requests,
but there are no results. Network must be slow.
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Start typing in a name:
>
And
We’ll keep typing.
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Start typing in a name:
>
Andy
Still nothing!
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Start typing in a name:
>
Andy Dick
>
Andy
Andy LaMora
>
Well now something is happening, but…
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Start typing in a name:
>
Andy Dick
>
Andy
Andy LaMora
Anthony Jefts
>
??? I’m not typing ??
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Start typing in a name:
>
Andy Dick
>
Andy
Andy LaMora
Anthony Jefts
>
Arturo Sandoval
What the heck is going on…
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
Now if I hit tab, I get the wrong name:
>
Andy Dick
>
Andy Dick
>
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
What Happened?
Our Ajax Autocomplete module was too naïve. It didn’t
know, or forgot to remember:
NETWORK LATENCY VARIES WITH TIME
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
»
Three factors introduced error:
»
HTTP transport
» Rely on Request/Response model
»
Asynchronous Communication
» Every request is independent
» No transaction to bind our request/response pairs
»
Network Lag
» Our first requests returned last;
» {1,2,3,4} returned {4,3,2,1}
» But could have been any order at all.
» Latency varies with time!
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Blurred Boundaries
05.05.2006
Ajax Autocomplete
»
So, what kind of problem is this anyway?
»
User Interface?
»
Design?
»
Network protocol?
One could assign sequence numbers to the requests, of
course. However, there is no “standard” solution as yet.
Ajax introduces some new project management problems, and
requires some thought viv. project contributor roles.
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: MVC
05.05.2006
»
To The Rescue: MVC
» Model View Controller in UI
» Each GUI Item developed on MVC
» Callback Functions
» Element Identifiers
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Worries In Management: Design Patterns
05.05.2006
»
Raising the Bar on JavaScript Development
» Thinking about Roles
» Opportunity: Better Code
» Design Patterns
» Command Pattern
» Observer Pattern
»
Attention to Division of Labor
» Programmers Program
» Designers Design
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
AGENDA
05.05.2006
»
»
»
»
»
»
UI: History Channel Overview
The New Paradigm: Ajax
Ajax: Worries in Management
Design: Return of the Lost Art
»
»
»
Metaphors and Affordances
Example: Control Options
IA Impact
State of the Art
Future
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Design :: Metaphors & Affordances
05.05.2006
»
Metaphors
»
»
»
Usage Model (eg Desktop)
Workflows patterned after model
Icons Indicate Purpose
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
»
Affordances
»
»
Proper use is implied
Subtle employment of familiar cues
[ ]
Design :: Example: Control Options
05.05.2006
We want to adjust the order that our questions appear in a survey.
(With Ajax, of course)
Our containers
can be dragged
around
Instructions: Order Your Questions
The Moon is a Planet
Yes
No
Venus is a Comet
Yes
No
Alpha Centauri is a Star
Yes
No
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
Design :: Example: Control Options
05.05.2006
So, it should be clear to the user what can be done – from the
containers alone.
Instructions: Order Your Questions
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
But, is it clear
what can be
done here?
[ ]
Design :: Example: Control Options
05.05.2006
Provide affordances that indicate function to the user – invite the
correct usage.
Instructions: Order Your Questions
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
Provide the
containers with
“grips”.
[ ]
Design :: Example: Control Options
05.05.2006
The Point: Web UI designers must think like desktop application
designers!
Instructions: Order Your Questions
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
Need Ajax
Toolkits/Frame
works to
provide these
(TopCoder
Opportunity?)
[ ]
Design :: IA Impact
05.05.2006
»
Impact on Information Architects
»
Sovereign vs. Page-Based Interaction
Should it behave like a desktop program?
Do we need to communicate state?
»
Best use of Rich Behavior
Use affordances to suggest next steps.
Colors and responsiveness indicate state: OnBlur()
»
Mindful of MVC/Labor Divisions
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
AGENDA
05.05.2006
»
»
»
»
»
»
UI: History Channel Overview
The New Paradigm: Ajax
Ajax: Worries in Management
Design: Return of the Lost Art
State of the Art
»
»
»
IFrame vs. XMLHTTPRequest
Browser Security
Acceptance
Future
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
State: IFrame vs. XMLHTTPRequest
05.05.2006
»
IFrames
» Wide Browser Support
» Consistant Code Base
» Can be faster for large requests
» Can lessen zone problems
» Very hard to debug
» Back-button support
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
»
XMLHTTPRequest
» Limited browser support
» Requires ActiveX on IE
» Different Code Bases
» Faster for small requests
» Designed for the purpose
» Easier to parse return data
[ ]
State: Browser Security
05.05.2006
»
Browser Security is an Issue
» Zones
The browser security model prevents us from (easily)
referencing servers other than the page source.
»
IE: Active X Requirements
IE requires ActiveX for XHR. ActiveX is switched
off by default (even though MS invented it).
»
Future standards are in flux
JSON vs XML? Will MS play along?
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
State: Acceptance
05.05.2006
»
Software Frameworks
» Java Server Faces
» Atlas (Microsoft)
» Ruby On Rails
»
Applications
» Google
» Yahoo
» Internals
» ASPs!
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
[ ]
AGENDA
05.05.2006
»
»
»
»
»
»
UI: History Channel Overview
The New Paradigm: Ajax
Ajax: Worries in Management
Design: Return of the Lost Art
State of the Art
Future
»
»
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
Service Orientated Architecture
Application Service Providers
May 5, 2006 // Andy LaMora
“...though the world does not change
with a change of paradigm, the scientist
afterwards works in a different world. “
CONFIDENTIAL Copyright 2006, TopCoder, Inc.
Download