Citation
An Online Interactive Multiple-Perspectives Map System

Material Information

Title:
An Online Interactive Multiple-Perspectives Map System
Copyright Date:
2008

Subjects

Subjects / Keywords:
Charts ( jstor )
Data visualization ( jstor )
Database design ( jstor )
Databases ( jstor )
Genetic mapping ( jstor )
Graphics ( jstor )
Java ( jstor )
Software ( jstor )
Uniform Resource Locators ( jstor )
Web servers ( jstor )

Record Information

Source Institution:
University of Florida
Holding Location:
University of Florida
Rights Management:
Copyright the author. Permission granted to the University of Florida to digitize, archive and distribute this item for non-profit research and educational purposes. Any reuse of this item in excess of fair use or other copyright exemptions requires permission of the copyright holder.
Embargo Date:
8/8/2002
Resource Identifier:
52188833 ( OCLC )

Downloads

This item is only available as the following downloads:


Full Text

PAGE 1

AN ONLINE INTERACTIV E MULTIPLE PERSPECTIVES MAP SYS TEM By JING HUO A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE UNIVERSITY O F FLORIDA 2002

PAGE 2

Copyright 2002 by Jing Huo

PAGE 3

Dedicated to my husband, Jinping Zheng, and my son, Mumu

PAGE 4

iv ACKNOWLEDGMENTS I would like to express my gratitude to my advisor, Dr. Richard Newman, for his excellent advice and guidance throughout my whole thesis work. He led me into a good topic and an interesting research area. He is a good advisor. I also thank Dr. Abdelsalam Helal and Dr. Randy Chow for serving as my master ’s thesis committee. I would like to thank Tom and Tingting, who wor ked so hard and so carefully to proofread my thesis. T hei r love, encouragement, and help will keep in my heart forever. I w ould like to thank Meifang Tan, who is my thesis partner and my friend. S he gave me so much help and many happy time s . I would like to thank Lijun Chen and Dongqing Xie for their valuable advice and help. I would like to thank my parents and my sisters for their endless love. Finally, I would like to thank my husband, who is always there to support me.

PAGE 5

v TABLE OF CONTENTS Page ACKNOWLEDGMENTS ................................ ................................ ................................ . iv LIST OF TABLES ................................ ................................ ................................ ............ vii LIST OF FIGURES ................................ ................................ ................................ ......... viii ABSTRACT ................................ ................................ ................................ ....................... ix CHAPTERS 1. INTRODUCTION ................................ ................................ ................................ .......... 1 Description of the Problems ................................ ................................ ............................ 1 Overview of OIMPMS ................................ ................................ ................................ .... 4 Information Visualization Product and Development ................................ .................... 6 Organization of Chapters ................................ ................................ ................................ 8 2. UNDERLYING TECHNOLOG IES ................................ ................................ ............... 9 Overview of Java Technology ................................ ................................ ........................ 9 Basic Structure Para digm of Web Based System ................................ ......................... 11 Database Access Solutions ................................ ................................ ............................ 12 Two Tier Connection Structure ................................ ................................ ................ 12 Three Tier Connection Structure ................................ ................................ .............. 13 Object Serialization ................................ ................................ ................................ ....... 16 Summary ................................ ................................ ................................ ....................... 17 3. SOFTWARE FUNCTION ................................ ................................ ............................ 19 Visualization Modes ................................ ................................ ................................ ..... 19 Software Functions ................................ ................................ ................................ ....... 20 Loading an Application ................................ ................................ ............................. 20 Creating a New Application ................................ ................................ ...................... 21 Modifying an Application Setup ................................ ................................ ............... 23 Saving an Application ................................ ................................ ............................... 23 Deleting an Application ................................ ................................ ............................ 23 Adding an Entity Item ................................ ................................ ............................... 24 Inspecting, Deleting, and Modifying Entity Items ................................ .................... 26 Moving an Entity Item (MODE1) ................................ ................................ ............. 26

PAGE 6

vi Inserting an Entity Item (MODE2) ................................ ................................ ........... 26 Dragging and Moving a Borderline (MODE2) ................................ ......................... 27 Summary ................................ ................................ ................................ ....................... 27 4. SYSTEM DESIGN A ND IMPLEMENTATION ................................ ......................... 28 System Design ................................ ................................ ................................ .............. 28 Java Applet ................................ ................................ ................................ ................ 28 Communication Link ................................ ................................ ................................ 29 Database Design ................................ ................................ ................................ ........ 30 Java Servlet ................................ ................................ ................................ ............... 32 Object Design ................................ ................................ ................................ ............ 33 System Implementation ................................ ................................ ................................ . 34 System Environment Setup ................................ ................................ ....................... 34 Software Installation ................................ ................................ ................................ . 35 Summary ................................ ................................ ................................ ....................... 35 5. TESTS AND RESULTS ................................ ................................ ............................... 37 State Based Testing ................................ ................................ ................................ ....... 37 Test Implementations and Results ................................ ................................ ................ 39 Summary ................................ ................................ ................................ ....................... 42 6. CONCLUSIONS ................................ ................................ ................................ ........... 43 Summary of OIMPMS ................................ ................................ ................................ .. 43 Some Suggestions for Improving OIMPMS ................................ ................................ . 44 Summary ................................ ................................ ................................ ....................... 45 LIST OF REFERENCES ................................ ................................ ................................ .. 46 BIOGRAPHICAL SKETCH ................................ ................................ ............................ 48

PAGE 7

vii LIST OF TABLES Table Page 1 1. Typical data classification support for OIMPMS. ................................ ....................... 5 4 1. Tomcat directory structure table. ................................ ................................ ............... 34 5 1. Sample of the Test Data used in Example 1. ................................ ............................ 39

PAGE 8

viii LIST OF FIGURES Figure Page 2 1. Basic Structure Paradigm of Web Based System ................................ ........................... 11 2 2. A Two Tier Connection Structure of Java A pplet and Database ................................ ... 12 2 3. Three Tier Connection Structure (HTTP) of Java Applet and Database ...................... 14 2 4. Three Tier Connection Structure ( RMI) of Java Applet and Database .......................... 15 2 5. Three Tier Connection Structure (Socket) of Java Applet and Database ....................... 16 2 6. Object Serializat ion Process Example Code ................................ ................................ .. 17 3 1. Loading an Application ................................ ................................ ................................ .. 20 3 2. Application Setup ................................ ................................ ................................ ........... 22 3 3. Adding an Entity Item ................................ ................................ ................................ .... 24 3 4. Inspecting and Modifying an Entity Item ................................ ................................ ....... 25 4 1. Database Table Structure ................................ ................................ ................................ 31 4 2. An Excerpt From “server.xml” File ................................ ................................ ............... 35 5 1. System State Diagrams ................................ ................................ ................................ ... 38 5 2. Visualization Result – Pie Chart of Example 1 ................................ .............................. 40 5 3. Visualization Result – Column Chart of Example 1 ................................ ...................... 41 5 4. Visualization Result of Example 2 ................................ ................................ ................. 42

PAGE 9

ix Abstract of Thesis Presented to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Master of Science AN ONLINE INTERACTIVE MULTIPLE PERSPECTIVES MAP SYSTEM By Jing Huo August 20 02 Chairman: Dr. Richard Newman Major Department: Computer and Information Science and Engineering This thesis presents th e design and implementation of a n Online Interactive Multiple Perspectives Map System (OIMPMS). OIMPMS is an online interactive i nformation visualization application system that generates multiple perspectives maps. It supports visualized presentation of charts derived from category data. The charts are distributed on a map according to the geographic locations corresponding to the underlying data. The system is interac tive in two respects: one is it support s for the interface friendly visualized input of data for the user specified categories and the other is it support s for selection by the user from among multiple visualization ap plication modes and chart types for inclusion. Currently OIMPMS supports three chart types and two application modes for building multiple perspectives maps that differ with respect to chart positioning and geographic region demarcation. OIMPMS is built o n a three tier connection structure with Java Applets on the client, Java Servlets on the web server, and the database and files on separate database servers

PAGE 10

x and file servers. The object serialization mechanism in Java is exploited in OIMPMS based on the s uccessful development and implementation of a method for overcoming the typical limitations of this connection structure. OIMPMS has demonstrated the feasibility of an interactive information visualization solution and conceptual design for the online gene ration of multiple perspectives maps.

PAGE 11

1 CHAPTER 1 INTRODUCTION This chapter begins with a description of the problems encountered in the development of online interactive visualization applications. This description is followed by an overview of the Online Interactive Multiple Perspectives Map System (OIMPMS), which is a computer application system developed to address these problems. Next, some information about visualization application products will be introduced. The organization of chapters in this thesis is presented at the end of this cha pter. Description of the Problems The human eye interprets visual data much faster and more effectively than text. A picture or diagram can be assimilated at a glance, and our understanding of the subject is greatly enhanced by the image [1]. Most of us a re familiar with the old adage, "A picture is worth a thousand words" -or its modern version, "An image is worth a megabyte." The rapid development of computer technology has produced new methods for communicating information in visual or graphical form. N ew forms of information visualization technology that gradually emerged within this context have produced some widely used applications, especially in the fields of geographic information systems, medical diagnostic systems, spatial technology information systems, etc. Visualization is the graphical presentation of information. It combines aspects of scientific visualization, human computer interaction, data mining, imaging and graphics [2]. Information visualization is a process that transforms data, infor mation, and knowledge into a form that relies on the human visual system to perceive its embedded

PAGE 12

2 information. Its goal is to enable the viewer to observe, understand, and make sense of the information [3]. An information visualization application can prov ide the viewer with a qualitative understanding of the information content and enable the user/viewer to get information quickly, gain new insights into data and make decisions in a relatively short time. Visualization software is designed to meet the nee ds of two groups of users. One group consists of those interested in developing their own visualization environments. For these users -often researchers, but sometimes engineers as well -what they need is a strong data model to incorporate data of widely d isparate types in one cohesive environment. The other group wants completed, specialized, and final visualization applications that allow them to view and analyze results immediately. For example, engineers often need visualization software to provide them with a way to investigate the potential of new designs by dynamically altering and tuning simulation parameters. By doing this, they can interactively monitor the progress of a simulation and terminate poor design directions [4]. For the second group, vi sualization systems must focus on very specialized disciplines, with very specific problems and data sources. The reason for this requirement is that information in these disciplines covers a wide range of forms and includes extensive connotations. In actu al applications, information may include such forms as data, processes, relations, or concepts that represent various meanings. The form of information and the characteristics of data determine the graphics type required to capture and communicate the mea nings within the information and data. The best graphical representation for the contents of stock exchange data, for example, is the line chart,

PAGE 13

3 while the pie chart best represents the meaning of data in the form of percentage composition. The restricted application of specialized visualization software therefore requires that a different visualization application be developed for every field, every specific problem. For both user groups, data classification is also a crucial task to perform in the visual ization process because the type and structure of the data define the set of graphical mappings that can be performed on it. Just as in any other computer application system, interactivity is a very important aspect of an information visualization applicat ion or system. It is interactivity that provides users and developers with the invaluable capacity and freedom to explore a broad range of functions within a computer application system. Object oriented programming technology lets users and developers crea te more sophisticated and interactive tools for visualization than were available in the past. In this technology, the visualization consists of a series of graphics objects. Object oriented programming methods provide a flexible and elegant means for achi eving "visual" representations based on graphics objects that can be rapidly redrawn without being recalculated [5]. Today the World Wide Web (WWW) has become the single most important and extensive information space, containing millions of pages. Web bas ed information visualization is undoubtedly a significant, promising technique, receiving constantly increasing attention. Online information visualization applications that use the browser as a user side platform and the web server as an information sourc e support are proving highly advantageous.

PAGE 14

4 Most web based visualization applications use the Java programming language. Java is an object oriented language with many features that make Java based online visualization applications more flexible as well as e asier to use and to produce. In response to the above problems and potentials of online interactive applications for information visualization, OIMPMS was designed and developed, trying to provide an online interactive, specialized visualization applicatio n for multiple perspectives map. Overview of OIMPMS Maps usually communicate a single message statically. During the past decade, people began to explore visualization applications based on maps that present multiple perspectives of information dynamically [6]. Assume that we have a group of statistical data from an area (such as marine or mineral resource statistics for the State of Florida, for instance) and want to represent this group of data graphically. Once we have chosen a type of graphics, such as a bar chart, we can produce these graphics in Excel or with other available drawing tools. We can increase the information by placing charts representing data from multiple states on a map of the United States, but a dynamic method for constructing and pos itioning graphics requires a more sophisticated visual representation system. We developed an application to translate a group of data from Florida, for instance, into a graphical image of a particular type and then to place that image on a map of the Un ited States, centering on a coordinate point within the boundaries of the State of Florida. If we have mineral resource statistics for all the states in the USA, the application produces a dynamic, multiple perspectives map with a graphic for each state re presenting its group of data. Each of these graphics is centered on a coordinate within the boundaries of the corresponding state. Thus we know which geographic site the data

PAGE 15

5 applies to based on the location where its chart is drawn. Moreover, we know the qualitative meaning of different categories of data based on the size, color, and description of the chart. OIMPMS is an information visualization application system featuring online, interactive generation of multiple perspectives maps. The system sup ports visualized presentation of charts derived from category data (such as population projections by the Census Bureau). The charts are distributed on a map according to the geographic locations corresponding to the underlying data. It also has achieved t he interactivity required of flexible and dynamic information visualization applications. Interactivity has a dual meaning here: one corresponds to the capacity for interface friendly visualized input of data for the user specified category and the other i s its support for selection by the user from among multiple visualization application modes and chart types for inclusion for the data groups. This latter feature allows a multiple perspectives map of specific mode and specific chart type to be generated according to the specifications of the user. The typical data classification support for OIMPMS (Table 1 1) is the underlying np table, where we store n data points (rows), each with p variables (columns). Table 1 1. Typical data classification support for OIMPMS. Location Coordinate1 (X or Y1) Location Coordinate2 (Y or Y2) Entity Name Category1 Category2 Category3 300 150 AAA 200.67 130.58 450.00 200 47 BBB 300.05 50.14 270.88 130 260 CCC 100.79 158.00. 369.88

PAGE 16

6 Because the application system is tot ally Java based, it has good compatibility and platform independence. The user can enter the system from any browser supporting Java, either by loading an existing multiple perspectives map application or by creating a new application. When loading, the w eb server will download the Java Applet code and map image file as well as category data and build a multiple perspectives map based on these category data. When creating a new application, only the Java Applet code and map image file are downloaded. At p resent, the system supports two visual application modes to produce different views based on the data classification in Table 1 1. The system can be readily modified to support additional modes, however. It currently represents a feasible information visu alization solution and design concept for interactive online generation of multiple perspectives maps. The ease of development of additional visualization application modes based on this solution and design concept is the primary focus of this thesis. Info rmation Visualization Product and Development Visualization is an extremely active and burgeoning area of research. In the last few years its development occurred at a rapid pace. One indication is that the 5th International Conference on INFORMATION VISUA LISATION took place in London on the 25th 27th of July 2001 [7]. More than 100 papers were presented on world wide level research about topics like the application of information visualization to construction, medicine, education, parallel and distributed systems programming, geographical information systems and simulation [8]. Another example is that a new, peer reviewed international journal titled “Information Visualization” was opened in 2002, which is a central forum for all aspects of information visu alization and its applications [9].

PAGE 17

7 Visualization products are so extensive and widespread that it is probably impossible to offer a complete summary. A brief description of some of the very popular software produced by the three major developers of visual ization products, however, will give some indication of their current range of uses. The three major developers of visualization software for scientific, engineering and technical industries are Silicon Graphics of Mountain View, CA, Advanced Visual System s (AVS) of Waltham, MA, and IBM. OpenGL Performer from Silicon Graphics is a powerful and comprehensive visual programming language toolkit for developers creating real time visual simulation and other professional performance oriented 3D graphics applica tions. The toolkit simplifies development of applications used for visual simulation, simulation based design, virtual reality, interactive entertainment, broadcast video, architectural walk through, and computer aided design. The latest major release, Op enGL Performer 2.5, is available for both the IRIX and Linux operating systems [10]. AVS Express from AVS is a cross platform application builder. It enables object oriented development of rich and highly interactive scientific and technical data visualiz ations for Digital, HP, IBM, Linux, SGI, Sun and Windows systems and has found particular success in geo spatial, medical, oil & gas, finite element analyses (FEA), and computational fluid dynamics (CFD) applications [11]. AVS also creates data visualizati on software and solutions that serve business needs. OpenViz is such a product. It can be viewed in Web pages, embedded in Office Suite documents or built into powerful runtime applications with highly interactive 2D and 3D graphics interfaces [12].

PAGE 18

8 IBM's Open Data Explorer (OpenDX) is a toolkit for visualization and analysis. It is currently available on Unix workstations from Silicon Graphics, IBM, Sun, Hewlett Packard, and Digital Equipment. It consists of an extensive set of modules for turning data int o graphics. Users create graphics by selecting modules, placing them on a "canvas", and connecting them with "wires." For example, the Isosurface, Streamline, and AutoColor modules perform the standard visualization functions of creating constant value sur faces, tracing particle paths through velocity fields, and coloring objects based on a data value, respectively. OpenDX handles 2D and 3D data types. Based on the data type, a module determines which algorithm to use. If a module receives 2D data, it will produce contours; if it receives 3D data, it will produce isosurfaces. Data can be in the form of a regular grids, deformed quadrangles, or triangles. OpenDX provides a full set of tools for manipulating, transforming, processing, realizing, rendering, a nd animating data and supports visualization and analysis methods based on points, lines, areas, volumes, images or geometric primitives in any combination [13]. Organization of Chapters This thesis consists of six chapters. The following chapter discusses the underlying technologies used in OIMPMS. Chapter 3 outlines the function and use of the software. Chapter 4 describes the system design and implementation details. Chapter 5 presents test results, and Chapter 6 gives conclusions.

PAGE 19

9 CHAPTER 2 UNDERLYING TECHNOLOG IES In this chapter, we will discuss the underlying technologies used in OIMPMS. This discussion will begin with an overview of Java technology. Next a basic structure paradigm of application based on the Java technology will be brought out. Then deeply analyzing four different database access solutions will be given. This discussion will end with a special question solved in OIMPMS: object serialization. Overview of Java Technology Up to now, almost all web based visualiza tion application systems use Java Applets for the client interface, a Java Servlet or Java Application as the web server interface, and Java Database Connectivity (JDBC) to connect with the database. Java technology is also the core technology used in OIMP MS. Java is currently the best platform with which to build Internet applications because a number of its features make this language well suited for use on the World Wide Web. First, Java Applets are specially designed to use in browsers. An Applet is a Java program designed to be included in an HTML web document. The HTML document contains tags that specify the name of the Java Applet and its Uniform Resource Locator (URL). The URL is the location at which the Applet byte codes reside on the Internet. Wh en an HTML document containing a Java Applet tag is displayed, a Java enabled browser downloads the Java Applet byte codes from the URL and uses the Java Virtual Machine to execute the codes from within the HTML document. The Java Applet code is written to allow web pages to contain graphical represen tations or interactive content.

PAGE 20

10 The ability to download an Applet and its close integration with Web browsers makes Java an ideal medium for Web and Internet based development. Second, Java security mechanisms are also important to its superiority as a platform for Internet applications. Note that a Java Applet can be safely downloaded from any system because security mechanisms exist within the Java Virtual Machine to protect against malicious Applet codes. Th e Java runtime system verifies the Applet byte codes as they are downloaded to ensure that they are valid and that the codes do not violate any of the restrictions placed on Java Applets by the Java Virtual Machine. These restrictions include what operatio ns they can perform, how they access memory, and how they use the Java Virtual Machine. The purpose of these restrictions is to prevent a Java Applet from gaining access to the underlying operating system or to data on the system. Third, A Servlet is a Jav a object class running on the web server to extend the server’s capabilities. Java Servlet greatly facilitates building web based applications. Fourth , portability is another one important feature in Java. With this feature, same Java application can be ru n the on lots of different kinds of computers. Fif th, Java and databases make a powerful combination via Java’s standard extension, JDBC. JDBC creates a programming level interface for communicating with databases in a uniform manner. Through JDBC, Java pr ograms can execute SQL statements. This allows Java programs to interact with any SQL compliant database. Since nearly all relational database management systems (DBMSs) support SQL, and because Java itself runs on most platforms, JDBC makes it possible to write a single database application that can run on different platforms and interact with different DBMSs.

PAGE 21

11 Finally, Java is distributed. It has an extensive library of routines for coping easily with communication protocols. For example, support for TCP , UDP, and basic Socket communication is excellent. This makes creating network connections much easier with Java than with any other programming language. Through use of Applets, Servlets, Remote Method Invocations (RMI), etc., applications can open and a ccess objects across the net via URLs with the same ease as accessing a local file system. Basic Structure Paradigm of Web Based System The Java technology makes it possible to build viewing station with no special software installed beyond the operating system and a network browser. Figure 2 1 shows basic structure paradigm of web based system. Figure 2 1. Basic Structure Paradigm of Web Based System In this paradigm, Java Applet byte codes are transferred through the web server to the client (viewing s tation). The browser installed on the client starts the Applet codes in its Java Virtual Machine (JVM). Image or other files and data are also transferred through the web server to the client. After starting, the Applet receives user input, responds to th is Database Server File Server Web Server Internet/Intranet Database Client/Brower Client/Brower

PAGE 22

12 event, and calls the object methods either locally or remotely (on the web server) to complete the various functions such as loading images, drawing charts, saving data to a database, etc. Database Access Solutions In theory, the Java Applet and databas e server can be linked based on the four kinds of database access solutions described below. These solutions can be classified as possessing either a two tier or a three tier connection structure [14]. Two Tier Connection Structure Figure 2 2 shows a two t ier connection structure with a Java Applet and JDBC on the client and the database installed on the web server. Figure 2 2. A Two Tier Connection Structure of Java Applet and Database The Applet will connect to the database through JDBC APIs. There is no Java Servlet running on the web server. The two tier model requires the databases as well as all the files used by applications to be located on the web server that the Applet is loaded from. This requirement is due to Java’s security mechanism restric tions. Because of the resulting lack of flexibility, this structure is only suitable for simple and limited applications. Thus applications are more commonly produced using the three tier connection structure. Web/Database Server Browser Database JDBC Driver Java Applet

PAGE 23

13 Three Tier Connection Structure The three tie r connection structure adds a middle tier with a Java Servlet or Java Application running on the web server. When an Applet requires any database operation or file operation, it sends an operation message (command) to the Java Servlet or Java Application o n the web server. The Java Servlet or Application executes the operation and connects to any server on the Internet as needed to acquire data and to transfer results to the Applets. This makes it possible for the database and files to be distributed among different database servers and file servers on the Internet. Flexibility is thus markedly improved due to this three tier structure. There are three alternative modes for the three tier connection structure with Java Applets on the clients, a Java Servlet or Java Application on the web server (middle tier), and the database and files on separate database servers and file servers. The database server connection driver is realized in all cases by JDBC. The difference in the three modes occurs in the compositi on of the middle tier and in the network protocols/services between the client (Java Applet) and middle tier (Java Servlet/Application). The network protocols/services that can be used here are Java’s RMI, socket, and the Hypertext Transfer Protocol (HTTP) . When the middle tier is a Java Servlet embedded in the web server, the default HTTP protocol/service is used. Figure 2 3 depicts this structure. A Java Servlet can be started interactively from the client and run in the web server’s virtual machine. One advantage of using this model is that it is easy to implement and deploy a new service. Another advantage is that the Java Servlet can be accessed easily through the standard port 80, which is accessible through almost any firewall [6]. As security issues become increasingly important, this advantage may become an overriding one.

PAGE 24

14 Figure 2 3. Three Tier Connection Structure (HTTP) of Java Applet and Database The disadvantage of this model is that the request response communication is limited to the par ameter string [14]. It is difficult to express a complex request using just the parameter string. In this thesis, a method is presented and the problem is solved successfully. The key to this method is the creation of an object (Message) that extends the Hashtable class. The Hashtable class supports serialization and makes it very easy to compose any complicated information structure. Thus Message objects with complicated message structures can be passed in serialized form. A detailed description of this m ethod is provided in Chapter 4. With a Java Application running on the web server, RMI protocol/service is a good choice. Figure 2 4 shows the structure using RMI. RMI is Java's remote procedure call (RPC) mechanism [15]. It facilitates object method calls between Java Virtual Machines and dynamically loads new object types as required. When Java Applets communicate by RMI with a Java Application running in advance on the web server, the Java Applets will remotely call the object methods in the Java Applica tion. These methods may realize any Database Server Web Server Browser Database JDBC Driver Java Applet Java Servlet HTTP File Server File System Image File

PAGE 25

15 available function, such as connecting to a database, executing a query, transferring a query result, loading an image file, etc. RMI provides a good solution for realizing RPC. It is much easier and simpler to use RMI t o develop more flexible services and to build complex applications. The drawback is that many firewalls are configured to limit access to a small number of standard ports (ftp, http, etc.), which means the server cannot be accessed outside of the local fir ewall [6]. This represents a quite serious limitation in some cases. Figure 2 4. Three Tier Connection Structure (RMI) of Java Applet and Database With a Java Application running on the web server, using socket protocol/service is another alternative. Fig ure 2 5 shows this kind of structure. A socket can be thought of as an application level endpoint, described by a port number and an Internet address [16]. When a Java Applet on a browser wants to communicate with a Java Application on the web server, the Applet needs to create a socket using a specific port number and its host Internet address. On the server side, the Java Application must start in a specific socket Database Server Web Server Browser Database JDBC Driver Java Applet Java Application RMI File Server File System Image File

PAGE 26

16 in advance, waiting for the Java Applet’s requests. Thus the Java Applet on the browser an d Java Application on the server are identified by a pair of sockets. Using user datagram protocol (UDP) or transfer control protocol (TCP), messages are transferred between the two sockets. Sent messages are queued at the sending socket until they have be en transmitted. When they arrive, the messages are queued at the receiving socket until the receiving process makes the necessary calls to receive them. Figure 2 5. Three Tier Connection Structure (Socket) of Java Applet and Database Object Serialization Java is object oriented, and the capability to store and retrieve Java objects is essential to building almost all Java applications. The key to storing and retrieving objects is representing the state of objects in a serialized form sufficient to reconstr uct the objects [17]. The process of converting a set of object instances into a linear stream of bytes is called object serialization. Specifically, in the database access solutions introduced above, object serialization is a key process to pass objects b etween JVMs. Database Server Web Server Browser Database JDBC Driver Java Applet JavaApplication SOCKET File Server File System Port# Port# Image File

PAGE 27

17 Very fortunately, object serialization is a mechanism built into the core Java libraries. In order to realize serialization, the object class must implement a java.io.Serializable interface. The basic process of serializing an object is to cr eate an instance of ObjectOutputStream and call the writeObject() method. Reading in a serialized object is achieved by creating an instance of ObjectInputStream and calling the readObject() method. A false code example is provided below to illustrate the process (Figure 2 6). //for the client side to connect to the server side URLConnection connection = url.openConnection(); //url is the url of the server side ObjectOutputStream outputToServlet= new ObjectOutputStream(connection.getOutputStream()); outp utToServlet.writeObject(object); outputToServlet.flush(); outputToServlet.close(); ObjectInputStream inputFromServlet = new ObjectInputStream(connection.getInputStream()); ret =(object) inputFromServlet.readObject(); inputFromServlet.close(); Figure 2 6. Object Serialization Process Example Code A class is not made serializable, however, by just adding the java.io.Serializable interface to its class definition. It is necessary that all the instances and local variables in the class be serializable and that all its superclasses be properly serialized. Java’s primitive data types support serialization. If a class has any local variables or superclasses that are not serializable, it can only be serialized by overwriting the readObject() and writeObject() methods. Summary The reader has now been provided a brief introduction to the technology used in this thesis project. This introduction includes an overview of Java technology and of a basic structure paradigm for web based application systems that will clarify the more technical discussion in the following chapters for those possessing a basic familiarity with computer application systems. A more detailed examination of database access solutions

PAGE 28

18 and object serialization was also included. The emphasis on these latter two topics coincides with the focus of this thesis project, as they provide the key to the implementation of the information visualization solution developed therein.

PAGE 29

19 CHAPTER 3 SOFTWARE FUNCTION This chapter begins with an introduction to the two visualization modes currently available in the system. Then the software functions available in OIMPMS are described in detail. A list and explanation of every available operat ion is included in this description. Visualization Modes Table 1 1 provides the typical data classification support description for OIMPMS. As mentioned in Chapter 1, the system currently provides two visual application modes. The different views provided by these modes enhance the system’s effectiveness for graphical presentation of a broad variety of data types. The user can choose a mode for viewing data appropriate to the data’s category and meaning. In MODE1, the location coordinates (x, y) correspond to a point on the map and are matched with an entity item representing the geographic area in which that point is located. For example, a point within the Florida state map can represent a city such as Gainesville or Miami or any other geographic region s urrounding that point; a point within a map of the University of Florida campus can represent a building or an area within the campus. In this mode, chart locations are distributed among the different points on the map. Every chart depicts a row of data su ch as that in Table 1 1, with each row representing an entity item. Three kinds of graphical representation (bar, column, and pie charts) are available in this mode. Here the listening area for an entity item is a pie shaped or rectangular area centered on the point (x, y).

PAGE 30

20 In MODE2, the location coordinates (y1, y2) define a rectangular geographic region on the map. The height of the region is y2 y1, and the width of the region is the width of map. All the regions are defined one by one, and there is no ga p between any two regions. In this mode, bar charts are drawn on the right side of the map next to the defined region. The vertical dimension of a bar is the same as that of the defined region (y2 y1), while its length is determined by the category data as sociated with the defined region. Here the listening area for an entity item is the region itself. Figure 3 1. Loading an Application Software Functions Loading an Application When the LOAD button is clicked, a LOADING frame is di splayed and all the existing visualization applications in the system are presented to the user by the ComboBox component (Figure 3 1 above). Selecting the desired application and clicking the LOAD button within this frame will cause the system to load the map and all the data

PAGE 31

21 related to the map, drawing the charts in or beside the map based on the data and mode. If there is no application in the system, a dialog box with the prompt "No Application Can Be Loaded!” will be displayed. The CANCEL button will c ancel the loading operation. If an application exists in memory, a loading operation will display a dialog box, allowing the user to save or not to save the current application. Creating a New Application When the NEW button is clicked, a process to creat e a new multiple perspectives map application will begin. If an application exists in memory, an operation creating a new application will first display a dialog box that allows the user to save or not to save the current application. In creating the new a pplication, an empty SETUP frame is displayed first, in which the user can input the SETUP information for the new application. The SETUP information is the general profile information for an application, including the application name and description alon g with values for VisualMode, TotalCategory, CategoryName , ImageName , ChartType, etc. The SETUP frame is depicted below (Figure 3 2). “VisualMode” stores the user’s visualization mode choice, while “ChartType” stores the user’s choice of chart type. If Mo de2 is selected, this field will be disabled because only bar charts are available in Mode2. The “BasedSize” field controls the size of every chart on the map, so changing the value of this field will cause the size of every chart on the map to change. A m ore detailed explanation of this feature in the Chapter 4. “TotalCategory” is the total number of data categories in an application. It must be a number from 1 to 10 because the system can process a maximum of ten data categories. After a number is input t o the “TotalCategory” field, the system will automatically assign the default values for category name to the following fields. For example, if the user

PAGE 32

22 inputs 3 to the “TotalCategory” field, the system will automatically assign CATEGORY0 to the “C0” field , CATEGORY1 to the “C1” field, and CATEGORY2 to the “C2” field. Users can change these category names if they prefer. Once the OK button is clicked, the system will check the input SETUP information. If any error is found, an error prompt dialog box will displayed, and the system will return to the SETUP frame. If all the input information is correct, an image map with the name defined in the SETUP frame will be loaded. All the input SETUP information will be stored in memory until a SAVE operation. Next, the user can proceed to other functions. Figure 3 2. Application Setup

PAGE 33

23 Modifying an Application Setup When the SETUP button is clicked and if an application has already been loaded or created, a SETUP frame filled with the general profile information for the current application will be displayed (Figure 3 2 below). All the setup information can be changed in this frame except the image name and visual mode. Once the OK button in the SETUP frame is clicked, the current application w ill be modified and adjusted according to the SETUP changes entered. For example, if a new category is added, a default category name CATEGORYn will be assigned to “Cn” field unless the user also changes the value in this field. Every entity item will be a ssign ed a value of 0 for this new data category. If a category is deleted, the values assigned for that data category in every entity item will also be deleted. Clicking the Cancel button will cancel any changes that the user has entered, and the original SETUP information will be retained. If no application is loaded in the system, a setup operation will also cause a message dialog box to be displayed, informing the user that no setup operation is available. Saving an Application When the SAVE button is cl icked, a confirmation dialog box is displayed. Once the user confirms the request to save the application, an event is activated to save the currently loaded or created application to the databases, including its SETUP information and all the entity items data. If the operation is successful, a dialog box with the message “Save d Successfully” is displayed. Deleting an Application When the DELETE button is clicked, a confirmation dialog box is displayed. Once the user confirms the request to delete the appl ication, an event is activated to delete the currently loaded or created application from the databases and memory. If the operation

PAGE 34

24 is successful, a dialog box with the message “ Delete d Successfully” will be displayed. After the delete operation, the syst em will wait for the user to load or create another application. Adding an Entity Item Moving the mouse pointer over the map image and clicking at any location outside of the existing entity item listener areas will activate an event to add an entity ite m. The event action will display a frame titled “Add An Entity Item” (in MODE1) or “Add an entity region” (in MODE2) and wait for the user to input the entity name and the category data values (Figure 3 3). Figure 3 3. Adding an En tity Item In MODE1, the coordinates of the clicked point are shown in the “X Coordinate” and “Y Coordinate” fields of the displayed frame. In MODE2, a line is drawn across the width of the map at the y axis coordinate at which the mouse click occurred. Thi s y axis coordinate becomes the lower boundary (y2) for the new entity item region, while its upper boundary (y1) coincides with the lower boundary of the entity item region immediately above it. The y axis coordinates for the upper and lower boundaries of the

PAGE 35

25 new entity item region are shown in the “Y Beginning” and “Y Ending” fields of the displayed frame. All categories take data of type float. If a character other than a number or dot is input, the system will block this input and indicate with a beep t hat an inappropriate character key has been pressed. Once the OK button is clicked, the new entity item will be added, and a new chart representing this new item will be displayed on the map. All the input data is kept in memory until the SAVE button is cl icked. Clicking the Cancel button will cancel the action of adding an entity item. Figure 3 4. Inspecting and Modifying an Entity Item

PAGE 36

26 Inspecting, Deleting, and Modifying Entity Items Clicking the mouse within an existing entity i tem listener area activates an event to select the entity item and allow the user to modify its properties. A blue dotted line is drawn on the map to indicate the current borders of the listener area for the selected entity item. A frame with an enlarged e ntity item chart along with the entity item data is then displayed (Figure 3 4 above). There are three buttons in this frame in MODE1. Clicking the DELETE button will cause the selected entity item data to be deleted from memory and the corresponding chart to be immediately removed from the map. Alternatively, the user can modify any entity item data value and confirm this change by clicking the MODIFY button. Upon confirmation the modified data will be stored in memory, and the corresponding chart on the m ap will immediately be modified to reflect the change in the data. The CLOSE button closes the frame without any further action. In MODE2, an INSERT button will also be available. Moving an Entity Item (MODE1) When the mouse pointer is within an existing e ntity item listener area, pressing a mouse button and moving the mouse pointer will drag the entity item chart to the location on the map at which the mouse button is released. The values in the “X Coordinate” and “Y Coordinate” fields of the corresponding entity item will change accordingly. This function is limited to Mode1 applications. Inserting an Entity Item (MODE2) As previously mentioned, the user in MODE2 defines multiple adjoining rectangular regions sequentially. Each of these rectangular regions is an entity item. A new rectangular region and corresponding entity item can be inserted within any of the existing rectangular regions. When inserting an entity item within an existing region, the

PAGE 37

27 “Y Ending” field for the existing region must be redefin ed. The entity item region in which the insertion occurs is split into two adjoining regions by this operation. Dragging and Moving a Borderline (MODE2) The bottom borderline of a defined region can be dragged in either vertical direction. This motion w ill change the height of the defined region. The change will be reflected in the memory data immediately, and charts on the map will be changed accordingly. Summary This chapter describes the functions available to the user in the OIMPMS system. Detailed i nstructions for the use of these functions are presented from the perspective of a typical user. Through this description, the user can obtain a general overview of the system along with the more specific directions required for the effective use of the fu nctions it provides.

PAGE 38

28 CHAPTER 4 SYSTEM DESIGN AND IM PLEMENTATION This chapter will discuss the detailed system design and implementation. The description of the system design will emphasize the design thought and software structure design. The description of the system impleme ntation will focus on the environmental setup and software installation details. System Design The discussion in Chapter 2 indicated why Java is the best platform for Web applications. OIMPMS is designed to use Java technology and is written completely in Java. Furthermore, the three tier database access structure using HTTP protocol was chosen because of its ease of implementation and its accessibility through almost any firewall. Finally, an effective method for allowing any complicated message to be pass ed between an Applet and Servlet was developed. Thus the problem caused by the typical limitation of the structure is successfully solved. The system design will be described in five parts: Java Applet, communication link, database design, Java Servlet and objects design. Object serialization will be discussed in relation to the communication link and objects design. Java Applet The keys to the Applet design are the interface layout and event processing ability. A user friendly interface is undoubtedly an important aspect of a successful visualization system, while powerful event processing ability is a requirement of the dynamic and interactive features of a visualization system. All the Applet codes are put in a file

PAGE 39

29 (getdata.java). This file is composed of getdata, an object that is an extension of the JApplet class, and of many other objects extending the JInternalFrame and JPanel classes. The layout managers GridBagLayout, BorderLayout, GridLayout, and FlowLayout are used to build the interface easily and in a user friendly way. The interfaces ActionListener, MouseListener, MouseMotionListener, and FocusListener are implemented to catch ActionEvent, MouseEvent, and FocusEvent, respectively, when an event occurs. All the components are Java Swing compon ents in the Applet code. Compared to AWT, Swing is platform independent and has richer graphical user interfaces and more powerful components. Event processing in Swing is also more flexible. Communication Link Building the communication link between Java Applet and Java Servlet is a necessary step for OIMPMS. An object (servlet_runner) is created and the method connectServlet (URL, Message) is defined in this object to build this communication link. Parameter URL is a URL object instance of Servlet’s Unif orm Resource Locator. Calling the URL object method openConnection () will return an URLConnection object instance that represents a communication link between the Applet and Servlet. The other parameter, Message, is a Message object instance. We mentione d in Chapter 2 that Message is an object extending the Hashtable class to build a complicated request. Applet object getdata calls the method connectServlet (URL, Message) by giving Servlet’s URL and a Message object instance to build a link to Servlet and pass the Message object instance to Servlet. A critical code paragraph of the method connectServlet (URL, Message) is given in Figure 2 6.

PAGE 40

30 The aim of creating the Message object is to take full advantage of the Java object serialization mechanism and pass complicated messages in serialized form. In the system, the messages could be any combination of queries, many instances of objects, the type of operation, etc. In the discussion in Chapter 2, we indicated that the object serialization mechanism makes it possible to pass serialized objects between JVMs. Message object is a subclass of Hashtable class and implements a java.io.Serializable interface. The support for serialization by the Hashtable class is an invaluable feature, allowing us to construct the p assed messages by mapping the queries, objects instances, etc. to keys in the Message object. The following is a false code example of the construction of a Message object instance. Message Msg; Msg.put(”,operationtype); Msg.put(”. Querystring); Msg.p ut(”, numberofobjectinstance); Msg.put(”,first ofobject instance); Msg.put( “ 4 ” , secondofobject instance ); Msg.put(“n”,.); The Message object makes it possible to compose any complicated messages. Different Message object instances will result in diffe rent function realizations. Database Design Two tables (V_SYSTEM1 and V_SYSTEM2) are created according to the system’s requirements for a given application. The structure of these tables is presented in Figure 4 1. V_SYSTEM1 stores the profile information of every multiple perspectives map application. “ID” is the primary key of V_SYSTEM1. Ten fields (“C0” to “C9”) are created to store the names of data category items. “TOTALCATEGORY” is created to save the total number of data category items. A maximum of ten data categories can be processed by the system. If a multiple perspectives map application only includes five

PAGE 41

31 categories, “C5” to “C9” will be assigned null value. “MAXDIAMETER” is created to determine the chart size of the entity point possessing the maximum category data sum. By changing the value, users can change the size of all the charts of associated with the entity points on the map. A detailed discussion of this feature will be included in the object design section. “CHARTTYPE” is created to a llow the choice of chart type among pie, bar, and column. “VISUALMODE” is created to store the visualization mode. ID = BELONGTO V_SYSTEM1 ID numeric(6) identity IMAGENAME varchar(40) not null TOTALCATEGORY varchar(2) not null C0 varchar(20) null C1 varchar(20) null C2 varchar(20) null C3 varchar(20) null C4 varchar(20) null C5 varchar(20) null C6 varchar(20) null C7 varchar(20) null C8 varchar(20) null C9 varchar(20) null MAXDIAMETER float not null DESCRIPTION varchar(200) null VISUALMODE varchar(40) not null NAME varchar(80) null CHARTTYPE varchar(2) not null V_SYSTEM2 X float not null Y float not null ENTITY varchar(40) not null C0 float null C1 float null C2 float null C3 float null C4 float null C5 float null C6 float null C7 float null C8 float null C9 float null BELONGTO numeric(6) not null Figure 4 1. Database Table Structure V_SYSTEM2 stores the category data and map coordinates for every entity in an application. Fields “X” and “Y” are created to store the coordinate on the map at which a chart is centered; thus they correspond to an entity in MODE1. In MODE2, fields “X” and “Y” are used to store the y coordinate of the top and bottom borderline. Ten fields “C0” to “C9” are created to save the category data values for an entity. Again, if a multiple perspectives map application only has five categories, “C5” to “C9” will be assigned null value. “ENTITY” is created to save the entity name. “BELONGTO” is the foreign key of V_SY STEM2 and is related to the primary key “ID” of V_SYSTEM1.

PAGE 42

32 Java Servlet The Servlet parses the received Message object instance, executes the requested function, and sends the result back to the Applet. The function modules realized by the Servlet are IN ITIALIZE, LOAD, SAVE and DELETE. Their function descriptions are as follows. INITIALIZE: load all the records in the V_SYSTEM1 to memory. LOAD: load the records of all the entity points of the loaded multiple perspectives map application from V_SYSTEM2. SAVE: save the currently loaded multiple perspectives map application to the database. DELETE: delete the currently loaded multiple perspectives map application from the database. The only Servlet object class in the system is receive_applet_servlet. I n the communication link section of this chapter, we saw that the Applet object getdata makes this object run by providing its URL and an instance of Object Message. The Servlet object receive_applet_servlet fetches the Message object instance and retrieve s its values by the appropriate keys and finishes the correlated function module and returns a Message object instance composed of the results to getdata. JDBC API is realized in methods login () and logout () in a separate object (db). The Servlet calls methods login () and logout () to open and close the database for every realization of a function module. The realization of all the function modules goes through the following steps: 1. Analyze the passed messages to decide which database to open and what o peration to execute;

PAGE 43

33 2. Call db.login () to open the database; 3. Execute the database operation; 4. Call db.logout () to close the database; 5. Return the result (Message object instance). Object Design Objects SetupData and chartdata are designed to represent the tw o database tables. They all implement a java.io.Serializable interface to be passed in the Message object. All the local variables in SetupData and chartdata are serializable variables. There is no any other work to perform to realize serialization. Obje cts column, bar, and pie are designed to draw the charts. The codes were written in Swing. Here one point needs to be clarified: the chart area size in MODE1. For pie chart, the chart area is a circular area. For bar and column charts, the chart area is re ctangular. We designed the multiple perspectives map application so that the size of the chart area has a meaning: the category data sum. If the category data sum of an entity point is larger, then the chart area is larger and the chart is therefore larger . We mentioned in the database design section that “MAXDIAMETER” sets the size of the chart area for the entity point that has the largest data sum. The size of the chart area for any other entity point is then proportional to that of the entity point with the largest data sum, based on the ratio of its data sum to the largest sum. Changing the value of “MAXDIAMETER” will change the size of all the charts on the map. In MODE2, the situation is much simpler. The category data determine the height of the bar charts. The method used for this determination is the same as that used to set the chart sizes in MODE1.

PAGE 44

34 The bar, column, and pie object also includes methods to draw the charts in a separate panel. The size of these charts is determined by the panel size. The methods for adding labels, gridlines, coordinate axes, data values, etc . are also included in these objects. These methods allow the application to enlarge the chart for an entity to any size. Finally, objects JFloatField and JIntegerField were create d to ensure that numbers of type float and integer, respectively, are input as required by the fields in the database . System Implementation System Environment Setup Netscape in the Unix and Windows environments and Internet Explorer in the Windows environ ment will be used as Web browsers. Apache 1.3.19 will be used as the Web server and Tomcat as the Servlet server. Tomcat is a Servlet container with a JSP environment. A Servlet container is a runtime shell that manages and invokes Servlets on behalf of us ers. Sybase will be used as the back end RDBMS. Table 4 1. Tomcat directory structure table. Directory Name Description Bin Contains startup/shutdown... scripts Conf Contains various configuration files including server.xml (Tomcat's main configuration file) and web.xml, which sets the default values for the various web applications deployed in Tomcat. Doc Contains miscellaneous documents regarding Tomcat. Lib Contains various jar files that are used by Tomcat. On UNIX any file in this directory is ap pended to Tomcat's classpath. Logs Contains Tomcat’s log files. webapps Contains sample web applications.

PAGE 45

35 After installation, Tomcat should have the main directory structure given in Table 4 1. The configuration file “server.xml” must be modified to be suitable for the specific application. An excerpt from “server.xml” is listed in Figure 4 2. Figure 4 2. An Excerpt From “server.xml” File Software Installation After the system environment is setup, we installed the softwa re in the webapps \ thesis directory. The code directory structure is as follows: thesis: |_____ Applet: getdata.java, servlet_runner.java, thesis.jsp |_____ jsp: pie.java, column.java, bar.java, SetupData.data, chartdata.java, Message.java, JFloatField.java, JIntegerField.java, |_____ WEB INF: |_____ classes: reveive_applet_servlet.java |____ jsp: chartdata.java, Message.java, db.java, SetupData.java |_____ IMAGES: |______ MAPS: Summary This chapter provides a detailed description of the system design. Every component and every problem solution in the design is explained. Through this explanation, we seek

PAGE 46

36 to provide a clear description of the design thought and solu tion. In the final section, some important aspects of the implementation are mentioned.

PAGE 47

37 CHAPTER 5 TESTS AND RESULTS In this chapter, state based testing in object oriented programming is discussed first and system state diagrams of OIMPMS are presented within the context of this discussion. The two sample applications used to implement state based testing of the system functions in accordance with the system state diagrams are discussed next. Visualization result figures derived from the two sample applications are also given and briefly described. State Based Testing Testing is an important part of the software development process, providing a systematic means for detecting bugs, improving software design, and reducing usability problems. There are a number of test techniques available, such as white box testing, black box testing, state base d testing, system testing, and integration testing. Object oriented systems build upon the notion of classes, which link sets of objects to form larger systems such as packages or applications. Testing an object oriented system may be done at the individua l object level, but it will more commonly involve accessing a set of objects through a small number of methods operating on a small number of objects. Tested components can be treated as white or black boxes . In black box testing, knowledge of internal imp lementation structures is lacking or ignored, while white box testing depends on such internal knowledge to drive the tests [18]. In object oriented programming languages, state based testing derives test cases by modeling a class as a state machine. Meth ods result in state transitions, and the state

PAGE 48

38 model defines allowable transition sequences. Test cases are devised to exercise each transition [19]. Because black box testing of an object is essentially limited to the object’s methods as tested component s, state based testing of an object oriented system encompasses black box testing as well. We will focus on state based testing in this discussion. Figure 5 1. System State Diagrams In OIMPMS, there are two states: Initialization and Application Runn ing. The methods resulting in state transitions are: LOAD, NEW, SETUP, SAVE and DELETE. Application Running Initialization Save? No Yes SAVE LOAD Application Running Initialization Save? No Cancel NEW Yes Setup? SAVE Yes NEW SETUP No Application Running Initialization Delete? Yes No DELETE DELETE Application Running Setup? No SETUP SETUP Yes Initlization System Start Application Running Setup? SETUP Yes No NEW LOAD

PAGE 49

39 When the system is in the Initialization state, only the LOAD and NEW methods can be executed. When the system is in the Application Running state, all the methods are available. Figure 5 1 provides the system state diagrams, which clearly describes the state transitions of the system. In the diagrams, a method name placed above a line with arrow represents a button clicked by a user; a method name splitting a line wit h arrow represents a method executed by the system. “Yes,” “No,” “Cancel NEW,” and “Cancel LOAD” are input choices available in a confirmation or option box. Testing of the system was designed to execute every path depicted in the state diagrams. Test Impl ementations and Results Two sample applications were to target the two visualization modes in the system. Through the creating, loading, setup, saving, and deleting of the two sample applications and the performance of data input operations, every path in Figure 5 1 can be executed. Thus every object and method will be examined. Table 5 1. Sample of the Test Data used in Example 1. State Name 1996 1997 1998 1999 Alabama 20,329 21,129 22,118 22,972 Alaska 26,057 27,080 27,950 28,629 Arizona 21,611 22,780 24,133 25,173 Arkansas 19,442 20,228 21,256 22,233 California 25,563 26,742 28,264 29,856 Colorado 26,231 27,951 29,856 31,533 Connecticut 33,472 35,619 37,861 39,543 The first example is the “United States Per Capita Personal Income by St ate” visualization application. This application uses MODE1. There are four data categories: 1996, 1997, 1998 and 1999. They represent per capita personal income (in dollars) for the

PAGE 50

40 specified years. This application is based on a United States map. The da ta comes from the United States Bureau of Economic Analysis. Table 5 1 above gives a sample of the data. Figure 5 2. Visualization Result – Pie Chart of Example 1 Figure 5 2 gives a visualization result from the application used i n Example 1. A separate pie chart is displayed for each state to depict its per capita personal income data. The color of a slice indicates the year to which the data value applies: red for 1996, blue for 1997, yellow for 1998, and green for 1999. The char t’s BasedSize is 20.0 pixels. As indicated in the discussion in Chapter 4, the size of the chart is determined by the sum of its category data. By comparing the sizes of the charts, we can obtain a general knowledge of the distribution of poor and rich sta tes within the United States. Tool tips in

PAGE 51

41 the figure are used to show the chart size (in pixels) when the mouse enters the listening area associated with it. This helps the user to accurately compare the sizes of the respective charts. Figure 5 3. Visualization Result – Column Chart of Example 1 Figure 5 3 provides an alternative visualization result, also from Example 1, obtained by changing the chart type to column chart. The four columns distributed along the x axis from left to right represent data from 1996 to 1999. Besides the visualization meanings provided in Figure 5 2, the column charts also indicate clearly to the user that income was increasing steadily from 1996 to 1999 in every state in the United States. The second s imple example was created using virtual data and a map of Florida. Only one category exists in this application, which uses MODE2. This application divided the

PAGE 52

42 State of Florida into 6 rectangular regions from north to south. For every region, we assumed th at a statistical data value had been derived from an economic index of interest. Figure 5 4 gives a visualization result from Example 2. As can be seen in this figure, the vertical dimensions of the bars in the bar chart are identical to the vertical dime nsions of the corresponding rectangular regions, and the lengths of the bars reflect the data values derived from the economic index. Figure 5 4. Visualization Result of Example 2 Summary In this chapter, the results of the state based testing of the system are presented. Two examples used in implementing the tests are described, and figures depicting the visualization results from the tests are provided. These figures demonstrate the achievement of the intended functionality by t he system, in which all functions perform as expected.

PAGE 53

43 CHAPTER 6 CONCLUSIONS This chapter provides a summary of OIMPMS emphasizing its most noteworthy features, which are described in detail in the preceding chapters. Some suggestions for future improvement of the system are also offered. Summary of OIMPMS OIM PMS is an information visualization application system featuring online, interactive generation of multiple perspectives maps. Any Internet user can use the system to create, modify, save, and delete multiple perspectives map applications with no special s oftware installed beyond an operating system and a network browser. A multiple perspectives map application supports visualized presentation of charts derived from category data (such as population projections by the Census Bureau). The charts are distribu ted on a map according to the geographic locations corresponding to the underlying data. Thus in addition to providing the viewer with a visual representation of the data’s information contents for each location individually, a multiple perspectives map al so presents the geographic characteristics of the data in an accessible visual form. The system is interactive in two respects: one corresponds to the capacity for interface friendly visualized input of data for the user specified category and the other is its support for selection by the user from among multiple visualization application modes and chart types for inclusion on the maps. This latter feature allows a multiple perspectives map of specific mode and specific chart type to be generated. Currently OIMPMS supports three chart types and two application modes for building multiple

PAGE 54

44 perspectives maps that differ with respect to chart positioning and geographic region demarcation. Some Suggestions for Improving OIMPMS Although OIMPMS has many interactiv e features, there are some improvements that can be made about the interactivity of the system. First, Allow the user to browse some or all of the local disk directories during Setup and select a map image file from one of these directories. The purpose w ould be to upload the selected map image file to the directory designated to store the map image files on the web server or other file server. Thus the user would be able to select a map image file more flexibly. Second, Provide a powerful user friendly in terface for designating the data source of the categories in an application. Currently the only source for data is user input. But we often encounter a situation in which two applications share one or more data categories possessing identical data values. For example, Application A might be “United States Per Capita Personal Income by State Visualization Application (1996 1999)” and Application B “United States Per Capita Personal Income by State Visualization Application (1998 2002).” These applications sh are two categories (” and ”) with identical data values. If we have already created Application A and input all its data and now want to create Application B, we should be provided a way to designate the data source for categories ” and 9” in Application B as the corresponding categories in the database associated with Application A. Thus the interface would permit the data sources for the categories in an application to include other applications as well as user input.

PAGE 55

45 Summary OIMPMS re presents a feasible information visualization solution and design concept for interactive online generation of multiple perspectives maps. Based on this solution and design concept, additional visualization application modes can easily be developed. Moreov er, the usability and scope of the visualization applications offered by the system will be greatly enhanced with further improvements in its interactivity along with the development of additional chart objects.

PAGE 56

46 REFERENCES [1] Donald T. Hawkins, 1998, Information Visualization: Don't Tell Me, Show Me! Online, Vol. 23, Issue.1, Jan 1999 , p.88 (1). [2] WebVis 2000 Second International Workshop on Web Based Information Visualization, URL: http://kniebach.fmi.uni konstanz.de/pub/english.cgi/d274881/cfp_webvis_2000_1.html , Accessed: 4/17/2002. [3] Nahum Gershon, Ward Page, 2001, What Storytelling Can Do for Info rmation Visualization, Communications of the ACM, Vol. 44, August 2001, p.31. [4] Barbara Schmitz, 1994, Engineering Visualization: Not Just Pretty Pictures. Computer Aided Engineering, Vol. 13, No. 3, March 1994, p.44 (4). [5] David M. Uhlir, Picture T h is, HP Professional, Vol.11, No. 3, March 1997, p.35 (3). [6] Erik B. Steiner, Alan M. MacEachren, Diansheng Guo, Developing and assessing light weight data driven exploratory geovisualization tools for the web, URL: http://www.geovista.psu.edu/publications/Beijing01/SteinerICA01/flash_d b2.htm , Accessed: 4/17/2002. [7] Information Visualization 5th International Conference, URL: http://www.graphicslink.demon.co.uk/IV2001 , Accessed: 4/17/2002. [8] Juan C. Drsteler, IV2001, URL: http://www.infovis.net/E zine/num_56.htm , Accessed: 4/17/2002. [9] Palgrave Macmillan Ltd, Information Visualization, URL: http://www.palgrave journals.com/ivs/index.html , Accessed: 4/17/2002. [10] Silicon Graphics, OpenGL Performer, URL: http://www.sgi.com/software/performer , Accessed: 4/17/2002.

PAGE 57

47 [11] Advances Visual Systems, AVS Express, URL: http://www.avs.com/software/soft_b/avsx prs/avsxps.html , Accessed: 4/17/2002. [12] Advances Visual Systems, OpenVIZ, URL: http://www.avs.com/software/soft_b/openviz/index.html , Accessed: 4/17/2002. [13] IBM, Open Visualiza tion Data Explorer, URL: http://www.research.ibm.com/dx , Accessed: 4/17/2002 [14] F. Unglauben, W. Hillen, M. Murdfield, Evaluation of Two and Three Tier Database Connections for a Java Based Medical Image Viewer, URL: http://www.imse.med.tu muenchen.de/mi/bvm2000/program/abstracts/w098.html , Accessed: 4/17/2002 [15] Sun Microsystems, Java Remote Method Invocation Distributed Computing for Java, URL: http://java.sun.com/marketing/collateral/javarmi.html , Accessed: 4/17/2002. [16] Qusay H. Mahmoud, Sockets programming in Java: A tutorial, Dec 199 6 Java World, URL: http://www.javaworld.com/javaworld/jw 12 1996/jw 12 sockets.html , Accessed: 4/17/2002. [17] Sun Microsystems, Object Serialization, URL: http://java.sun.com/products/jdk/1.2/docs/guide/serialization , Accessed: 4/17/2002 [18] J. D. Newmarch, Testing Java Swing Based Applications, URL: http://jan.netcomp.monash.edu.au/java/replayJava/paper.html , Accessed: 4/17/2002 [19] Robert V. Binder, Testing Object Oriented Systems: A Status Report, April 1994, American Programmer, URL: http://www.stsc.hill.af.mil/crosstalk/1995/apr/testinoo.asp , Accessed: 4/17/2002

PAGE 58

48 BIOGRAPHICAL SKETCH Jing Huo was born in Taiyuan, Shanxi, P.R.China. She received her Bac helor of Engineering degree in computer science and a pplication from Southwest Jiao Tong University, P.R.China, in 1991. She worked as a network administrator in the National People’s Congress, Beijing , from 1991 to 2000. In the fall of 2000, she began her graduate study in the Computer and Information Science and Engineering Department of University of Florida. Her interests include Web applications, database applicat ions and other software development. She is also interested in system and network administration. She will receive her Master of Science degree in computer engineering through the College of Engineering in August 2002.