Taosong He and Stephen G. Eick
Bell Laboratories,
1000 East Warrenville Raod,
Naperville, IL 60566, USA
{taosong, eick}@bell-labs.com
With the explosive growth in the Internet and telecommunication networks, effective network interfaces are becoming essential. At the basic level a network consists of nodes and links, which describes the network topology, and the associated attributes. The most common design of a networked interface is to spatially position the nodes, represented as glyphs, and draw lines between the nodes for links [2]. Over the last few were years many variations and improvements have been proposed, e.g., [4] [1] [5].
While the core efficacy of the system hinges on the effectiveness of the visual metaphors of a network (views), most of the development time is often spent on the data acquisition, the development of user interface (GUI), and the programming of common networked functionalities. To improve the programmer productivity, we have developed a generic network interface framework. There are four components of our framework, 1) a in core network data structure, 2) a C++ network base class supporting the fundamental functionalities of the networked interfaces, 3) A Tcl/Tk-based user interface template, 4) a suite of network views derived from the networked base class.
Network Data: Our framework can handle complex, hierarchical, and time varying network data. The input of a noted usually consists of a name, cord in its and the list of that attributes. The coordinates can be longitude and latitude, VH, arbitrary XYZ positions, or void. A link consists of a name, the attached nodes, and directed or undirected attributes. A special type of Lincoln can be created to specified the hierarchical relations among the elements. Each node or link is also associated with asynchronous time stamps to specify the life cycle of its attributes. The framework also supports multiple datasets.
Network Base Class: The core of the network interface is the design of the network view. Each view presents an network from different perspectives. On the other hand, each view should support some common operations. In our framework, these operations are classified into three categories, 1) interactive operations, including selection, identification, showing/hiding, creation/deletion/modification, zooming/panning/rotation, collapsing/expansion, reposition, and copy/paste; 2) different levels of view linking mechanisms, 3) rendering control, such as the double buffering and lighting control. A display list of all the entities is also maintained. To support these operations, a C++ base class is designed. The base class also handles the communication between the display and the underlying network data.
User interface: For the implementation of the GUI for network interface, we choose Tcl/Tk. Tcl/Tk is well suited for the GUI design because it is interpreted, easily changed, and supports many high level widgets. In our framework, a Tcl/Tk script is included for the GUI of the network base class. Each new view should also include a Tcl/Tk scripts for its specific GUI requirements. The design of the GUI can be easily customize by modifying the correspondent Tcl/Tk scripts. We apply at a public domain Tk widgets (http://www.ssec.wisc.edu/brian/Togl.html) to support the OpenGL rendering, and supply a template to link the Tcl/Tk variables with the C++ variables.
Network Views: The biggest contribution of our framework is that it provides an extensible software environment for efficiently constructing network interface. Innovative network views can be easily implemented within the framework by inheriting from and overloading the member functions in the networked base class. A developer will be able to focus on the effectiveness of the visual metaphor, and let the framework handle the underlying data structure and usual controls. Our framework also enables and application builder to easily design and modifying GUI for network interface using Tcl/Tk.
Our framework already contains many innovative views which may be used directly from broad range of applications. In this paper we present some new geographical networked displays. Figure 1 is a new variation of the arc map, proposed in [3]. In an arc map, each node is positioned geographically on a flat 2D map imbedded in the 3D space, and then arcs are drawn between the nodes with the height, color, and thickness of the arc encoding the statistic. The 3D arcs would reduce the line crossing in the traditionally 2D networked drawing. In figure 1, arcs are drawn both above and below the map, which better utilize the real estate on the screen, and further reduce the number of line crossings.
In a 2 D map, one of the major reasons causing line crossing is the straight line segments representing the link. One way to reduce the number of line crossings is to replace the line segments with curves. In figure 2a, straight line segments are used. In figure 2b, Bezier curves are used. We have designed a simulated annealing algorithm to optimize the layout of the curves. In this example, the number of line crossing has been reduced by 40.8%.
References
[1] R. A. Becker, S. G. Eick, and A. R. Wilks. Visualizing network data. IEEE Transactions on Visualization and Graphics, 1(1):16-28, 1995.
[2] J. Bertin. Graphics and Graphic Information Processing. Walter de Gruter & Co., Berlin, 1981.
[3] K.C. Cox, T. He, and S.G. Eick. 3D goeigraphic network displays. In Sigmod Record, volume 25, December 1996.
[4] G.R. Walker, P.A.Rea, S.Whalley, M.Hinds, and N.J.Kings. Visualization of telecommunication network data. BT Technical Journal, 11(4):54-63, Octiber 1993.
[5] C. Ware and G. Frank. Evaluating stereo and motion cues for visualizing information nets in three dimensions. ACM Transactions on Graphics, 1592):121-140, April 1996.