The TMShare Application

Overview

The TMShare application environment consists of a group of interacting peers. Each peer in the group provides the other peers with access to the information it manages by presenting subsets of the information as topic map fragments in response to requests. The topic map fragments received from remote peers are cached locally and presented as if they were merged with the locally held topic map information. Cached results can then be provided to other peers in response to their requests.

TMShare Application Structure

The TMShare application is presented to the user as a GUI tool for browsing a collection of topic maps. The user interface makes use of both standard Java Swing components for display of topic information in a conventional tabulated or list form; and the use of the TouchGraph visualisation library to present a more engaging overview of the section of the topic map currently being explored. The current implementation of TMShare requires that the topic maps to be shared by the peer are available locally either as files in the XTM or LTM syntax or as parsed topic map information in one of TM4J's supported persistent storage back-ends. In the current implementation of the system, cached results received from remote peers are held in memory. However, the application design does not preclude the use of a persistent store for cached topic map information. The peer-to-peer networking infrastructure is provided by the JXTA libraries, which enables TMShare peers to form a self-organising group in both intranet and internet environments.

Figure 1 - The TMShare Application

The browser application presents a unified view of both locally held topic maps and the cache information. This view uses the standard rules of XTM subject-based merging to unify the topic maps and present them to the browser as a single topic map.

The following block diagram shows the main subsystems of the TMShare application; how they are related; and the principle technology component used in the current implementation.

Figure 2 - The TMShare Application Structure

Peer Operation

Peers can be in one of two modes: online or offline. An offline peer is able to browse only the local topic map information and any cached information that the peer has previously received. An online peer is capable of browsing this local and cached information and also of issuing requests to other peers and of responding to requests from other peers for topic map information. An online peer may be configured either to send requests automatically as the user browses the topic map or to only send requests when explicitly directed to by the user. In either case, the request responses are processed asynchronously, enabling the user to continue browsing. When a response is received and its information added to the local cache, the user is notified of the availability of new information by the "Update" button, in the red navigation bar of the main application window being activated. Clicking the "Update" button refreshes the display of the current topic — possibly including the new information received since the last refresh.

The TMShare application also provides a simple interface to allow an online peer to issue complex queries to other peers using the tolog topic map query language. All tolog queries entered are first parsed and processed against the unified view of the local topic maps and the topic map cache. Only if the tolog query parsed is successfully is it then broadcast to other peers on the network. The results of the tolog query are displayed in a simple tabular form and new result sets are added asynchronously to the table as responses are received and processed.

Figure 3 - TMShare Tolog Query Interface
Up: TMShare - Topic Map Fragment Exchange In a Peer-To-Peer Application
Previous: Introduction Next: Topic Map Fragment Exchange