Seamless online-offline applications

2008-10-15 Thread Nikunj Mehta


Use cases:

The use cases described below are based on applications accessing  
their data through Web feeds and their linked resources in conjunction  
with the semantics of GET, PUT, POST, and DELETE defined in the  
AtomPub protocol. The feeds considered here are in the Atom format.  
However, there is a good likelihood of a similar interpretation for  
JSON feeds. All the use cases below are in the form of browser  
applications.


1. A sales rep is browsing their list of opportunities from a CRM  
system when traveling to a medical center. Once they arrive in the  
medical center, they turn off the radio capabilities of the device  
such as cellular packet connection and Wi-Fi. The application  
continues to function and provide access, albeit limited, to the  
application function such as adding notes to the opportunity,  
reviewing opportunity details, identifying and adding products to the  
opportunity. OTOH, the user may not be able to conduct searches for  
potential team members while she are offline.


2. An email user is browsing their collaboration space in the form of  
email, appointments, address book, and to do list. His train passes  
through a tunnel and he loses the ability to update and create tasks,  
appointments, and email messages.


3. A health care professional works in a remote hospice with no  
network connectivity. They are required to maintain a secure record of  
all the services provided to the infirm. Periodically, the  
professional leaves the facility and arrives back in a networked area  
and the care records are conveyed securely to a processing center.


Rationale for a solution:

In the above use cases, applications need the ability to perform  
standard AtomPub operations even when they are disconnected. The  
semantics of AtomPub define the result of performing PUT, POST,  
DELETE, and GET in a way that deferred submission of client requests  
is possible and, in some cases, and sufficient for high  
responsiveness, as it may not even involve any server logic. In the  
case of other requests, clients can perform certain logic which will  
be repeated on the server.


Conflicts may arise regardless of whether disconnected updates are  
allowed since there is no pessimistic concurrency on the Web. So,  
applications can deal with conflicts arising from disconnected updates  
much the same way.


Atom feeds are a mature format, and AtomPub has been in use for over a  
year. It layers nicely over existing Internet infrastructure and does  
not pose any significant new security threats. A number of highly used  
APIs are now employing a combination of the two for developing browser  
applications. Disconnected operation over AtomPub keeps the  
transaction model of the Web, i.e., a new transaction for each  
request, intact. It also makes programming for disconnected use,  
including conflict management, server logic replication, and  
synchronization a lot easier for applications.


Solution:

The solution involves:

1. Intercepting all HTTP requests made by applications to a browser  
for a known set of URLs including those made from form posts, XHR, and  
links
	* Temporarily process unsafe requests and provide tentative responses  
using standard AtomPub and replicated server logic when server is not  
reachable.
	* Process safe requests and generate responses using results of prior  
unsafe requests.
2. Pre-fetch and hoard representations of resources required by  
applications based on a known set of feed URLs and semantics of  
interrelations among them.
3. Submit unsafe requests to server when server is reachable and  
reconcile with locally stored representations of the same resource.
4. Alert any interested event target about synchronization errors and  
other state changes.
5. Guard application data against malicious or malevolent usage and  
limit access to authorized applications


The gaps with current HTML5 implementation are:

1. There is no mechanism for (1) above
2. (2) and (3) cannot be performed for a domain unless a browsing  
context in that domain explicitly initiates the process and is active  
while this is being performed
3. Existing client-side storage does not guard against cross-directory  
or even cross-user attacks.
4. Existing client-side storage cannot guarantee any correspondence  
between local transactions and network requests. As a result, update  
operations that may succeed locally may fail for a variety of causes  
during synchronization leaving the application user puzzled.
5. Existing client-side storage requires serialized access to data,  
which may be far stricter than what an application or a server would  
provide.
6. Server-sent events and Web socket formats and protocols are  
immature as compared to AtomPub, just based on their standardization  
status and amount of current usage experience.


Having said this, the solution being proposed has been implemented  
using JavaScript, as a Firefox extension, and as a 

[widgets] Agenda for 16 October 2008 Voice Conference

2008-10-15 Thread Arthur Barstow


Below is the draft agenda for the October 16 Widgets Voice Conference  
(VC).


Inputs and discussion on the agenda topics before the meeting is  
encouraged.


Logistics:

  Time: 07:00 Boston; 13:00 Paris; 20:00 Tokyo; 21:00 Brisbane
  Duration = 60 minutes
  Zakim Bridge +1.617.761.6200, conference 9231 (WAF1)
  IRC channel = #wam; irc.w3.org:6665
  Confidentiality of minutes = Public

Agenda:

1. Review and tweak agenda

2. Announcements

3. Preparing for f2f meeting

a. TAG joint meeting re URI scheme: agenda planning; latest thread  
with Mark Baker


 Planning: http://www.w3.org/2008/10/09-wam-minutes.html#item06
 Mark: http://lists.w3.org/Archives/Public/public-webapps/ 
2008OctDec/0050.html


b. XML Sec WG joint meeting re DigSig spec: agenda planning:

 Questions: http://lists.w3.org/Archives/Public/public-webapps/ 
2008JulSep/0729.html
 Mult sigs: http://lists.w3.org/Archives/Public/public-webapps/ 
2008OctDec/0081.html


c. Widget Testing joint meeting: agenda planning; see the following  
for some related issues:


 http://www.w3.org/2008/10/09-wam-minutes.html#item07

d. Other meeting preparations?

4. AOB





Re: Widget Requirements feedback

2008-10-15 Thread Marcos Caceres

Hi Addison and i18n-WG members,

On Wed, Oct 15, 2008 at 3:09 AM, Phillips, Addison [EMAIL PROTECTED] wrote:
 Hi,

 I have just now reviewed all of your responses again and am satisfied (within 
 the limits of what you can reasonably do, especially wrt the Zip limitations 
 :-)). Thanks for working with us on this.


Excellent! thank you and thanks to everyone in the i18n-wg for taking
the time to help us out!

Kind regards,
Marcos

-- 
Marcos Caceres
http://datadriven.com.au



Cancelled: DOM3 Events Telcon

2008-10-15 Thread Doug Schepers

Hi WebApps Fans-

I have to cancel this week's telcon, and TPAC is next week.  DOM3 Events
telcons will resume in November.

Regards-
-Doug Schepers
W3C Team Contact, SVG, CDF, and WebAPI















Re: FileUpload Spec | Editor's Draft | Re: Call for Consensus: a new WD of the File Upload spec

2008-10-15 Thread Arun Ranganathan


Maciej,


My first question would be:

Why did you ignore Apple's proposal to start with a minimal common 
interface (which most people seemed to like) and instead wrote a draft 
that is the union of all things in Robin's original spec, all things 
that Mozilla happened to implement, and a bunch of the things that 
Google propose?


FWIW, the Berjon spec. actually matches implementation in Mozilla, 
modulo a few differences, which I suppose the union reveals.  And I 
*certainly* did not mean to willfully ignore input from anybody.  I 
apologize if this is the impression my current draft gives, and hope to 
fix that very soon.  But, looking back on correspondence from you, I 
find one that says you're ok with a WD being published  but that you 
think that in a v1 WD, the I/O could be removed completely [1].  Sam 
Weinig voiced Apple's caveats which I responded to on public-webapps[2] 
wondering whether these caveats should block at least a WD publication 
[2], but these were really points about synchronous calls in general.


Going further back in time, Sam Weinig proposed standardizing a way to 
use XHR to send files [3], *without* specific ways to get the contents 
of files, leaving room for Blob and other stuff in nsIDOMFile (we can 
probably send Blobs or files).  Nothing in the editor's draft precludes 
that!  Also Sam's email refers to FileHTMLInputElement which exists in 
this draft as well (named HTMLFileInputElement).


I can give specific technical comments on the things that I think are 
wrong with this draft, 
*Please do.*.  This editor's draft is very rough, and doesn't reflect 
fait accompli thinking.  If you think it too much of a union, maybe I 
should go back and start with a more basic v1, rather than include 
directions we may want to go in anyway?  In another email, you suggest 
Apple thinks direct I/O should be added later[4], maybe along the lines 
of Blob, which is why I went with work in progress -- to add features we 
may want to evolve *anyway.*  Perhaps we can have the definitive 
discussion on synchronous vs. asynchronous (and whether a spec. should 
allow both) and move on.  I don't think anyone at Mozilla holds 
entrenched views here.  I'm pretty optimistic that we can hash this out 
soon, and we should be able to push this spec. out sooner rather than 
later.  It's been stagnant for a long-ish time :-)


-- A*

[1] http://lists.w3.org/Archives/Member/member-webapps/2008OctDec/0010.html
[2] http://lists.w3.org/Archives/Public/public-webapps/2008OctDec/0047.html
[3] http://lists.w3.org/Archives/Public/public-webapps/2008JulSep/0186.html
[4] http://lists.w3.org/Archives/Public/public-webapps/2008JulSep/0387.html