Incremental SVG mobility and update

Several application domains need a more flexible approach to SVG data mobility than can be achieved with SVG documents and SVG document fragments. This flexibility can either be required as a result of low network bandwidth, scalability or adaptability requirements. For instance, the bandwidth between a server and a GSM mobile phone cannot cope with downloading large amounts of SVG data from a server, every time an update is needed. In case of mobile GPRS or UMTS networks, where the bandwidth is much larger, providers will charge by transmitted data volumes; also, in this case, the update of SVG data for services on the phones needs to be small-grained to achieve cost effectiveness. If SVG data on big number of mobile devices have to be kept in sync and be updated with new SVG documents or SVG document fragments: scalability issues rise in this context, due to the number of devices and to the frequency of the updates.

The proposed approach allows updating the SVG by transferring pieces of the new SVG from a server to the phone and then dynamically patching the original SVG. We refer to such SVG pieces as SVG increments. Unlike SVG document or document fragments, SVG increments does not confine us to sending granular units of SVG; SVG increments do not need to begin with the SVG element, they can also start with other parts of the SVG tree. This enables us to specify sub-trees, individual leafs and even leaf properties. The SVG increments will be shipped together with some information on how to modify the remote SVG tree.

In this paper, we use a simple SVG Tiny messaging system, based on TinyLine SVG Toolkit for J2ME. We describe how to use SVG Tiny increments to achieve more small-grained SVG data mobility than in the approaches that are based on the SVG document structure. Also, we describe how to support incremental insertion, removal or substitution of, possibly small, SVG increments on J2ME mobile clients.