Table of contents

Below is a list of every page on the website.

Downloading the code

Download the client, the example server applications, the source code, etc.

Running the client

Instructions on running the client.

Deploying the example webapp

Instructions on deploying the server webapp.

An explanation of the examples

An in-depth explanation of the three example pages viewable with the software.

Building from source code

How to use the source distribution.

Technologies and libraries used by Gradient

Information on libraries used by Gradient.

A note on the choice of license

A note on the choice of license, and the dedication of some files to the public domain.

Technical documentation

Technical documentation that explains the extensions to XMPP, the client DOM environment, and how to write server-side apps.

A note on terminology

Explains why some terms seem to be used interchangeably within the documentation

The Gradient extensions

A brief summary of how XMPP works, and an explanation of how clients and server interact using Gradient.

Retrieving documents via XMPP

Explains how documents are loaded in Gradient using the IQ stanzas in XMPP, and notes on using HTTP for large documents.

Updating documents via XMPP

Explains how documents are updated in Gradient and how XPath is used.

Sending data and RPC to documents

Explains how to send targeted data and updates to loaded documents, and make RPC calls to the documents.

The Gradient client

A high-level overview of how the Gradient Client interacts with XMPP.

Client scripting with ECMAScript

Explains how to send XMPP messages using ECMAScript embedded in client documents.

Trapping XMPP events within DOM

Explains how to respond to RPC calls made to the document, and process other data sent from the server.

How Gradient services work

Explains how we use the Smack API in the context of a servlet container to load XMPP services.

Server-side XMPP service basics

An overview of the server-side application framework architecture, an explanation of the service loading servlet configuration parameters, and how XMPP services interact with the servlet container.

The basics of a Gradient service

Explains the bare minimum of what you need to know to create a Gradient service.

Design notes

This section contains notes on some of the design choices, and helps explain some of the less simple parts of the source code.

Limitations on XML transported via XMPP

Describes the limitations imposed on XML transported via XMPP, and possible solutions that would allow an Gradient client to qualify as a conforming viewer, in accordance with the SVG specification.

Transporting document fragments

Explains why I pay selective attention to the SVG specifications rules on fragmenting SVG documents.

The semantics of Gradient and XMPP URLs

Describes a slight discrepancy in the way Gradient and XMPP use URL constructs, and the workaround chosen to solve the issue.

Scaling with the current Gradient model

Describes a scaling problem that Gradient currently has, and possible architecture modifications to mitigate the issue.

Preloaded document packet queuing

Explains why we queue packets for unloaded documents.

Changes made to ProviderManager

Describes Changes to IQ-related ProviderManager behaviour.

Document loading via XMPP

Explains one of the modifications made to the Batik code, specifically to allow loading of documents via XMPP.

Planning

There's a whole loada stuff missing in the code at present, and bugs that need fixing.

Known problems in the current release

A list of known problems and bugs in the current release of the software, and their status.

Planned improvements and fixes

Features I intend to add or fix in the Gradient codebase.

Planned protocol/code features

Major improvements or new codebases that might make interesting projects in future.

Table of contents

Table of contents for ex-337.net/gradient. Lists every page along with a description.

Search ex-337.net

Search this website, or similar websites, or the web.

About

The faces behind the code.

Well, almost every page. The 404 & 500 pages aren't here. Neither is the home page - you can always go there by clicking the big GRADIENT word at the top.

© 2006. Some rights reserved. Author: Ian Sollars.