Collaborative Interactive Web Editing Tool

Project acronym: QUESTION-HOW
Project Full Title:Quality Engineering Solutions via Tools, Information and Outreach for the New Highly-enriched Offerings from W3C: Evolving the Web in Europe
Project/Contract No. IST-2000-28767
Workpackage 1, Deliverable D2.2

Project Manager: Daniel Dardailler <danield@w3.org>
Author of this document: Yves Lafon <ylafon@w3.org>

Created: 29 August 2002. Last updated: 20 March 2003.


Table of Content:


Introduction

This document is a summary of the achievements of the "Winie" project.

Winie is a multi-interface tool to allow download and upload of documents on the Web. Those basic actions are required to edit content on a remote web server. Most browers are supporting the download part, but only a few are handling the upload part using the specific method described in HTTP. The goal is not only to implement this two-way communication, but to use all the possibilities of HTTP to avoid common issues like the "lost update problem".


Winie

Winie provides a way to upload, download and delete resources on remote web servers, to do so, there are two different interfaces, the most commonly used is the graphical interface, that allows you to select the source and the destination, along with the properties of the document you want to send, and the text interface. The latter consist of three different programs used to download (jwget), upload (jwput) and delete (jwdel).

To allow its use in many environment, there are options to use HTTP proxies or SOCKS proxies, depending on the firewall requirement of different networks. Also is provides both Basic and Digest authentication schemes (see RFC2617).

The lost update problem

 

One of the main issue when updating resource on the web is to ensure that the resource you are editing has not been modified by a third party. The main way to achieve this is not to check for date stamps, as clocks may be different, depending on the machine, but to rely on a unique identifier for a specific version of a resource, the HTTP entity tag (ETag). A strong ETag is a unique identifier for a particular representation of a resource, it means that the same URI may have different ETags as a function of time. Also, multiple URIs may share the same ETag to indicate that the resources are perfectly equals (at the bytes representation level).

In Winie, everytime a resource is downloaded for editing, the ETag and the URI are stored. This allows a conditional PUT for the upload. A Conditional PUT is a way to say in HTTP "replace the content of this URI by the body of this request, only if the ETag is the same as the one provided in this request".

Once the modified document has been identified on the server, the user can either force the upload of the new version or may choose to download it, process it and re-upload a new version to the server.

More information on the lost update problem can be found in a W3C Note. We also developed the a way to avoid lost update problems in Amaya.

Using Winie

Uploading a document

To upload a document, just fill the "Source" field with the local document absolute path (this can be done by using the "Browse" button). Then fill the destination url in the "Destination" field and press the "Upload Document" button.

To upload the files located in a directory, just fill the "Source" field with the directory path. A dialog will ask you "do you want to perform this action recursively?". Answer yes, no or abort.

To upload several files, select them by using the "Browse" button (they will be filled in the "Source" field separated by some '|'). Note: The FileChooser multiple selection is not yet implemented in JDK1.2.2.

upload window

If you want to configure or just take a look at the metadata sent to the destination server, before pressing the "Upload Document" button click on "Source Informations". You can specify the "Media Type", the "Content Encoding" and the "Charset".

Source information

Downloading a document

Winie allows you to download a document just by filling its url in the "Source" field. Fill the "Destination" field with the path where you want the file to be saved. Then press the "Download Document" button.

Download window

You can specify some cache directive to be sure to get the latest version of the document. The HTTP Accept header can aslo be specified.

Options

Deleting a document

Winie allows you to delete a document on a Web Server, just fill the "Document URL" field with its location and press "Delete Document".

Delete window

Preferences

You can specify your preferences in the "Edit/Preferences" menu. Preferences are separated in four groups: Authentication, Connection, Languages, Mime and Proxy.

Preferences

Upgrading Winie

You can get the latest distribution of Winie automatically just by clicking on "Help/Upgrade Winie". If there is a new version of Winie available, you'll juste have to select a directory and Winie will start to download the new distribution.

Upgrade

How to install

Download the latest Winie distribution, unzip it. From that point you have several options:


Deviations from plan

none.