Wendy's analysis of web applications vs user agents

Historically, we referenced UAAG 1.0 to avoid reinventing the wheel for Web 
apps.  Therefore, I don't think that Web content is actually ever used to 
create a user agent, instead it creates a Web app. The proposed (and 
somewhat contentious) differences between Web app and user agent: A Web app 
is the delivery unit and the user agent creates the perceivable 
unit.  Scripting is part of the delivery unit but may effect  the 
perceivable unit.  The perceivable unit is differentiated from the  user 
agent in that the perceivable unit is contained in a viewport (or multiple 
viewports). The perceivable unit does not contain user agent user interface 
controls such as prompts, menus, and alerts.  Although, scripting can be 
used to generate additional viewports (such as pop-up windows, dialogs, 
etc.) [@@may cause more confusion than clarity?]

User agent, as defined in UAAG 1.0 [1] is,"In this document, the term "user 
agent" is used in two ways:

    1. The software and documentation components that together, conform
       <<http://www.w3.org/TR/UAAG10/conformance.html#Conformance>http://www.w3.org/TR/UAAG10/conformance.html#Conformance> 
to the
       requirements of this document. This is the most common use of the
       term in this document and is the usage in the checkpoints.
    2. Any software that retrieves and renders Web content for users.
       This may include Web browsers, media players, plug-ins
       <<http://www.w3.org/TR/UAAG10/glossary.html#def-plug-in>http://www.w3.org/TR/UAAG10/glossary.html#def-plug-in>, 
and other
       programs ­ including assistive technologies
       <<http://www.w3.org/TR/UAAG10/glossary.html#def-assistive-technology>http://www.w3.org/TR/UAAG10/glossary.html#def-assistive-technology>
       ­ that help in retrieving and rendering Web content."

[1] 
<<http://www.w3.org/TR/UAAG10/glossary.html#def-user-agent>http://www.w3.org/TR/UAAG10/glossary.html#def-user-agent>
[2] Definitions of delivery unit and perceivable unit available at:
<<http://www.w3.org/TR/di-gloss/>http://www.w3.org/TR/di-gloss/>

Examples to show differences between a web app and a user agent

1. an applet
The java code is the delivery unit. It includes information about how to 
react to user input (i.e., the methods, event handlers) the interface is 
rendered by and the interaction is handled by the java
virtual machine - the user agent. i.e., the virtual machine instantiates 
event handlers (as defined by
applet code) then catches the user input and sends it to the event 
handlers. in other words, the applet tells the virtual machine what event 
handlers to set up and how they should work, but the VM is doing
the work.

2. a flash web site
The swf file is the delivery unit. The interface is rendered by and the 
interaction is handled by the flash
player - the user agent.  Even in the example  where the flash author needs 
to describe what information should be passed to an assistive technology 
(via the user agent/flash player), it is the player that follows the 
instructions in the swf about what and how and when to do those things.

3. javascript+html+css
javscript+html+css is the delivery unit.  It includes information about how 
to react to some user input (i.e., event handlers for onClick, etc.). The 
interface is rendered by and the interaction is handled by
the javscript interpreter.  the script tells the interpreter (embedded in 
the user agent) what event handlers to set up and how they work, but the UA 
is doing the work.

4. AJAX
<<http://www.adaptivepath.com/publications/essays/archives/000385.php>http://www.adaptivepath.com/publications/essays/archives/000385.php>
real-life example: Google Suggests 
<<http://www.google.com/webhp?complete=1>http://www.google.com/webhp?complete=1>

5. Web service
<<http://java.sun.com/webservices/docs/1.2/tutorial/doc/>http://java.sun.com/webservices/docs/1.2/tutorial/doc/> 
- similar to AJAX but more.

Received on Tuesday, 19 April 2005 22:45:58 UTC