GeoBoost™: An AJAX Web 2.0 Collaborative Geospatial Visualization Framework Stephen G. Eick, M. Andrew Eick, Jesse Fugitt, Russell A. Lankenau SSS Research, Inc 600 S. Washington, Suite 100 Naperville, IL 60565 [email protected]

Abstract1—Recently a new class of applications has thinc Interface is a thin client AJAX visualization emerged that uses AJAX and other web programming framework built that uses as its techniques to provide a rich user experience in a web rending API and ingest live RSS and RSS namespace browser. This class of applications is being called Web extensions and renders the information in browser-based 2.0 and includes Maps and Google Suggest. To visual components. thinc Interface contains a set of experiment with this approach, we have developed a Web reusable visual components including: 2.0 thin client collaborative visualization framework called GeoBoost™ that uses Scalable Vector Graphics • Interactive Maps that display image, feature, and and AJAX to provide a rich user experience built around live GeoRSS data from multiple sources collaboration. Our framework includes geospatial maps, • Business Charts including Bar, Pie, and Line standard business charts, node and link displays, and Charts custom visual displays. All of our visualization • Network and Graph Displays components run in standard web browsers and provide • Hierarchical, Tree, and Tree Map Displays rich interaction and collaboration. • Time Lines, and • Various custom components. TABLE OF CONTENTS 1. INTRODUCTION...... 1 These components are interesting because they have the 2. TECHNOLOGY BACKGROUND ...... 2 capability to connect to live RSS streams, ingest the real- 3. GEOBOOST SYSTEM ARCHITECTURE...... 3 time data, and display the resulting information. The 4. THINC INTERFACE VISUAL COMPONENTS ...... 4 programming model for thinc Interface components is 5. THINC INTERFACE MOBILE CLIENT ...... 7 also interesting and involves JSP custom tags and .NET 6. SUMMARY AND CONCLUSIONS...... 10 Web controls. As a result it is easy for programmers to 7. REFERENCES ...... 10 include thinc Interface components in their web 8. BIOGRAPHY ...... 10 applications using standard HTML tags. The GeoBoost map client is particularly interesting and supports rich interactivity such as panning, scrolling, zooming and the 1. INTRODUCTION drawing of data points which define arbitrary polygons. These polygons can be propagated to other connected GeoBoost™ is a Web 2.0 Platform for users to allow collaboration over the marked area of building thin client geospatial applications. GeoBoost interest. Additionally, the GeoBoost environment runs in both J2EE and .NET environments and leverages consists of geospatial enabled applications such as geo- new programming techniques such as AJAX fencing of marked area’s of interest, alerting connected (Asynchronous JavaScript and XML) and browser-based and disconnected users when objects enter and exit the graphics standards such SVG (Scalable Vector Graphics) marked area. to enable developers to build rich, interactive thin-client geospatial applications that support collaboration. The Second, on the back-end, GeoBoost provides a series of advantage of this approach to building applications is that servers to stream imagery, feature data, and RSS for thin client applications run natively within browser consumption by GeoBoost thinc visual components. Thin without the need to install any client software, applets, or clients have limited processing power and systems built plug-ins. This advantage translates into low-cost around thin client architectures need more server support deployment to many users and the ability to support many than equivalent desktop systems. Thus GeoBoost server devices for real-time operational decision-making. components enable flexible data ingestion, image and feature data tiling, tile caching, performance optimization, The GeoBoost system consists of three components. and provide built-in support for tracking and First, GeoBoost clients are built using a JavaScript collaboration features. These server components are Visualization Framework that we call thinc Interface™. necessary to support thin client interfaces and 1 applications. 1 1-4244-0525-4/07/$20.00© 2007 IEEE SSS Research Proprietary 1 client application is launched by the user. The user GeoBoost uses an open extensible architecture and interface provides interaction with the rest of the supports relevant standards. GeoBoost is built around application and the app loads data that it needs from the open standards such as GML (Geography Markup user’s hard drive. Many times, the data used by the Language), RSS, GeoRSS and other RSS extensions. application is in a proprietary format that is specific to the GeoBoost consumes imagery and feature data from both application. Although the richness of the is OGC® (Open Geospatial Consortium) compliant sources often very good, the drawbacks of a fat client application such as WMS (Web Mapping Service) and other native are numerous. It is difficult to get new data or upgrades formats such as NGA’s [3] RPF and LizardTech’s [4] to the application without having another install process. MrSID. Storing the data in a proprietary format makes it difficult to ingest different types of data or work with other Third, using our GeoBoost framework we have built two applications without introducing specific interfaces to applications. The first application FUSION™ ingest air support the new functionality. traffic, air space, restricted airspace, and weather patterns and is used by the Air Force for Air Traffic Management. A solves several of the problems The second application targets asset tracking. It is used to apparent with a fat client application. Since a web track the locations of employees, guests, and other assets application is stored on a and launched by inside a casino. browsing to a specific URL in a web browser, the entire application deployment process is greatly simplified. The benefits of the GeoBoost platform include: Upgrading the application is also easier as the user will automatically see the new application when they browse • Provides the user with rich desktop user to the URL, if the web app has been upgraded since the interface functionality in a browser last time they used it. Data can be retrieved from a local • Supports real-time collaboration without hard drive as with a fat client application or it can be proprietary client software retrieved by requesting it from remote URLs on other • Enables inexpensive and large deployments networks. since no client software is required to be installed To be able to ingest data from different sources, the need • Provides web developers with a platform for for data standards in web applications becomes very rapidly building geospatial and thin client obvious. Groups such as the Open Geospatial applications Consortium (OGC) have defined geospatial related • Supports the relevant open standards including standards that many web applications implement. OGC WMS, WFS, GML, RSS, GeoRSS Another important difference is that extending a web application’s functionality is often much easier than extending a similar fat client application. The server 2. TECHNOLOGY BACKGROUND architecture of a web application can be designed in such a way that it supports a plug-in based approach so that Applications built using the GeoBoost™ platform are individual pieces of functionality can be easily added or described as Rich Internet Applications [5] (RIAs). removed. However, the missing component for most web Although Macromedia coined the term, a RIA today is applications until recently has still been the responsive understood to be an application that runs in a web user interface that is common in fat client applications. browser and provides an interactive and responsive user interface that has traditionally been found in desktop Moving from Web 1.0 to Web 2.0 applications. Until recently, the only software Traditional web applications also known as Web 1.0 applications that could provide this level of work on a client-server model. The client, a web responsiveness desired were the standard “fat client” browser, issues an http request to a server for a new page applications that require client-side installation and run as when the user clicks on a link. The web server, usually a native client applications. Recently, a new class of Apache or IIS, does some processing, retrieves RIAs has emerged that run completely within a web information from legacy systems, does some crunching, browser. These applications offer many benefits over and sends a formatted page of hypertext back to the client traditional fat client applications. In this section we will for display. This approach is the simplest technically, but describe some of these benefits and discuss other attempts does not make much sense from the user perspective. to provide this functionality. The reason for this is the latency, one to ten seconds, between when the user requests the page and when it Fat Client Application vs. Web Application finally loads. Because of this latency it is not possible to To understand the benefits inherent to a web application, use direct manipulation user interfaces [1]. This class of it helps to first understand how a typical fat client user interface is greatly preferred by users [2]. application might work. After being installed, the fat SSS Research Proprietary 2 The new model enabled by a set of technologies that are XAML. By abstracting our graphics layer, we are able to broadly called Web 2.0 eliminates the start-stop-start-stop produce interactive components based on whatever nature of web applications. Instead, information is rendering language the browser supports. This approach asynchronously downloaded to the browser using XML. completes the missing piece in web applications. By JavaScript code in the browser caches this information providing the user with a responsive user interface in a when it is received from the server and displays it upon web browser, the ability to create Rich Internet user request. Since the information is cached locally, the Applications is truly possible. system can provide instantaneous responses and thereby support direct manipulation operations. JavaScript code 3. GEOBOOST SYSTEM ARCHITECTURE in the browser handles interactions such as panning, zooming, scaling, and data validation. The advantage of the asynchronous requests for XML data is that users can The GeoBoost system uses a multi-tier architecture as continue working with the application’s responsive user shown in interface without losing their focus on the screen while Figure 1. GeoBoost servers ingest geospatial raster data, data is downloading. feature data, and business data from a wide variety of

common data sources and then transform the imagery and Historical Attempts at Creating a Rich User Interface data sources into protocols formats that GeoBoost thin To casual web users the recent appearance of direct client components can accept, image tiles and RSS, and manipulation web interfaces may appear to be a sudden perform database and other services for GeoBoost discontinuity. However, creating a rich user experience applications. has been a goal for web developers since Sun first introduced Java and Applets back in 1995. From a The problem these servers are solving involves historical perspective, JavaScript and DHTML were restrictions in the thin client programming model. Thin introduced as lightweight ways to provide limited client client code is written in JavaScript which is a difficult side programmability and improve user experiences. programming language, has no access to databases, and Macromedia introduced Flash and along with the term cannot persist information from page to page as the user “Rich Internet Applications” in another attempt to navigates through a site. These operations are enabled enhance user experience on the web. Even though the using support from various services. However, the AJAX vision for these capabilities has been clear for a while, JavaScript and browser programming model does make these techniques have not caught on because of cross- two types of operations easy. First, it is easy on a web browser incompatibilities as well as the difficulty in page to issue asynchronous image requests. As the producing Rich Internet Applications. Developers have images are retrieved, the browser automatically renders been unable to keep up with these browser changes, and a them on the page. Second, it is possible to critical mass of applications have not be attained. What asynchronously request XML files which the JavaScript has emerged from an intense period of competition is the may use to manipulate the web page. Because of the closest there has been to a de facto browser standard. By difficulty in programming JavaScript, the servers do the programming to this standard, it now is possible to deliver heavy lifting. It is more efficient to do protocol a direct manipulation interface in a web application. conversions, calculations, and as much computation as

possible on servers rather than within the client. Thin Scalable Vector Graphics client code is pretty restricted and particularly difficult to Scalable Vector Graphics is an XML markup language debug. for vector graphics. Using SVG it is possible to build both static and animated graphical displays in browsers. Data Ingest SVG is an open standard created by the W3C (World GeoBoost’s strategy for data ingest is to accept data in as Wide Web Consortium) that is intended to compete with many formats as possible, with particular focus on open Flash, a closed proprietary technology. Adobe’s Flash standards. These include raster image data, geospatial has been a successful graphics standard and is widely feature data, and generic business data. . used to deliver multimedia content, timeline animations, and advertising content. Because of programming limitations, however, Flash has not caught on for application user interfaces. On the other hand, nearly all browsers now provide native support for SVG (or support through a browser plug-in). SVG also appears to be the graphics standard of choice for cell phones and mobile devices. Microsoft is expected to promote a different XML-based language called XAML for creating user interfaces. Although our components are written for SVG, our approach works equally well with either SVG or SSS Research Proprietary 3 y W E B A P P L I C A T I O N S Applications • web-based Command & Control Municipal Govt Supply/Logistics RFID Tracking • rich interaction •real-time T H I N Web C L I E N T Mobile CLIENT JSP and .NET Server Tags Windows thinc™ Interface • thin client Web UI JavaScript Class Library Mobile • no plug-ins/applets • Web 2.0 standards XML, XML XML, Image Tiles Image Tiles GeoRSS RSS I M A G E S E R V I C E S A P P S E R V I C E S Tracking Collaboration Other Servers Server Server Server • data ingesting Map Feature • rendering optimization Service Service • computations D A T A S E R V I C E S • synchronization Fusion Server

Data R A S T E R D A T A F E A T U R E D A T A B U S I N E S S D A T A • Raster Data (Images) RPF RPF • Feature Data CIB CADRG MrSID WMS Postgres WFS XML Oracle SQL Server • OGC compliant Web JPEG ESRI Oracle ESRI • Proprietary AutoCAD DTED Service DB2 Other 2000 ArcIMS Geo ArcIMS

™ GeoBoost

Figure 1 GeoBoost System Architecture. Server Layer application is aimed at GeoSpatial tracking, alerting, and GeoBoost provides two types of servers. Image Services collaboration involving mobile devices. stream image tiles, either drawn from image repositories or created by rendering feature data as image tiles, to the Application Layer client. Application Services stream XML to the client. Using the GeoBoost platform, we have built a series of The XML is usually formatted RSS, a simple XML vertical applications focused around geospatial problems. protocol, or RSS namespace extensions. As mentioned The first application, called FUSION, focuses on Air above, the problem that Image Services imagery and Traffic Management and display plan positions, restricted Application Services solves for raw data involves thin airspace, and weather patterns. The second application client computational limitations. Browser-based code shows the positions of employees and company assets written in JavaScript is severely limited and it is not wearing RFID-tagged badges within a building. possible to do many computations that are easily done in fat-client or applet code. 4. THINC INTERFACE VISUAL COMPONENTS

Client Layer Our JavaScript client, which we call thinc Interface, is an The GeoBoost thin client layer is called thinc Interface AJAX/SVG visualization framework for building thin and consists of two clients. The first is a Web 2.0 AJAX client applications. In contrast to open source efforts client and development environment consisting of a set of such as DOJO [6], Prototype [7] and Microsoft’s Atlas visual components for building web-based graphical [8] that focus on user interface components, our focus is applications. Using a common data infrastructure, these on visualization. We have developed a JavaScript components ingest image and RSS data and provide framework for building reusable visualization visualization and collaboration services. To make these components using the Scalable Vector Graphics browser components easier to use for non-programmers, API. This graphics API is a W3C standard that is GeoBoost provides JSP and ASPX tags that enable the natively supported by many browsers. visual components to be readily used on web sites.

GeoBoost’s second client is a Windows Mobile application that ingests image tiles, feature data, and uses services provide by GeoBoost Servers for tracking. The SSS Research Proprietary 4

Figure 2 thinc Interface Visual Components. thinc Interface provides a broad set of visual components that includes maps, business charts, networks and graphs, A variety of applications can be built on top of the trees and hierarchical displays, and a timeline. See Figure GeoBoost thinc™ Interface. At the heart of the GeoBoost 2. Each of these components has been developed using thinc Interface is a JavaScript class library. JSP custom our framework and, when wrapped with the appropriate tags and ASPX custom tags, which are also referred to as HTML code, may be independently positioned and .NET Web Controls, provide a programming abstraction moved on the browser screen. layer on top of the JavaScript library. As described below, GeoBoost tags in the web page are RSS Data Ingest converted to the corresponding JavaScript on the web Each of these components ingests data to be displayed server when the page is loaded. Developers can program based upon RSS and namespace extensions of RSS that against the JSP Custom Tags or .NET Web Controls for provide the components with specialized information. fast integration into their application, or they can program RSS is a simple protocol for publishing information. The directly against the JavaScript API for optimal flexibility. basic content of an RSS stream is a set of metadata tags The tags are identical across platforms. Thus, a page organized into items that describe content. The required created using JSP Custom Tags will run in the .NET tags in each item are , <link>, <description>, environment, and vice versa. The tag library exploits <pubDate>, <guid>. The <link> tag is generally a HTML’s inherent notion of containment, ‘embedding’ hyperlink to retrieve the item content. map data sources within a <thinc:map /> tag. In this way the complex underlying JavaScript is shielded from the end developer, enabling rapid prototyping and quick integration. thinc Interface Visual Components </p><p>SSS Research Proprietary 5 Multiple GeoRss feeds within maps</p><p>Construct a map New tag to allow multiple Wms servers</p><p>Tags that are contained within other tags are feed automatically into the “parent” tag. This allows a natural syntax, and obviates the need to ‘hardcode’ the name in the data tag.</p><p>Figure 3 JSP and ASPX Server Tags simplify programming using thinc Interface Components. These six lines of HTML code put a map on the web page and attach it to two GeoRSS feeds. Linking Between Visual Components program against a single graphics API. The thinc RSS organizes information into sets of items within a Graphics classes interrogate the browser’s rendering channel. Our thinc visual components have the capability environment at run-time to determine the vector graphics to ingest RSS feeds and display the information using it supports, and then conditionally execute the appropriate different visual presentations. Our Map Components, for vector graphics code to create the vector objects. For example, display GeoRSS, a standard extension of RSS, example, a user browsing with <a href="/tags/Firefox/" rel="tag">Firefox</a> to a page that had by geo-positioning entities in the browser over a map. been created with the thinc Graphics classes would see Tooltips and other mouse operations are automatically the native SVG that the code generated. However, a user linked among different visual components showing the browsing to the same exact page with <a href="/tags/Internet_Explorer/" rel="tag">Internet explorer</a> same item sets. This approach toward visual components would see SVG in an embed tag if they had a plug-in that makes it easy to create rich visual applications. supported SVG; otherwise, the thinc Graphics classes would fall back to generating the native VML that is thinc Graphics – Supporting Multiple Browser supported in Internet Explorer. Of course, this behavior Graphics <a href="/tags/API/" rel="tag">APIs</a> can be overridden by the developer to force specific Rendering 2D vector graphics in a web browser is rendering engines to be used. challenging for many reasons. Lack of IDE support for JavaScript makes it difficult to debug and step through This approach allows a web developer to make simple the Javascript code needed to render vector graphics that calls to the API such as “DrawRectangle” or manipulate the browser’s DOM (<a href="/tags/Document_Object_Model/" rel="tag">document object model</a>). “DrawCircle” and not be concerned with the specifics of In addition, cross-browser coding is even more difficult each browser’s rendering capability. The thinc Grahpics because all browsers do not support the same type of classes provide this layer of abstraction and make it much vector graphics. At the current time, the latest browser easier for the developer to use native vector graphics in releases of <a href="/tags/Mozilla/" rel="tag">Mozilla</a> Firefox, <a href="/tags/Opera_(web_browser)/" rel="tag">Opera</a>, and <a href="/tags/Safari_(software)/" rel="tag">Safari</a> all have their application. In addition, this model is flexible and native support for SVG, which is a W3C standard for easy to extend so that when new browsers are released, vector graphics. However, Microsoft Internet Explorer the same application code should work without requiring supports VML natively, which is a similar vector graphics any changes. New classes can be added to the underlying library designed by Microsoft. By using a plug-in, thinc Graphics code without changing the existing Microsoft Internet Explorer can also support SVG signature of any of the thinc Graphics API calls. documents that are included through the use of an “embed” or “object” tag. The current varying state of JSP and ASPX Server Tags vector graphics capability between common browsers GeoBoost exposes functionality to the integration introduces substantial complexity for the typical web developer through HTML server tags. Server tags allow developer who typically just needs to do simple things the developer to define GeoBoost widgets inline using an like drawing points, circles, rectangles, or other polygons. HTML syntax rather than pure JavaScript code. As shown in Figure 3, JSP and ASPX tags enable developers The thinc Graphicis classes and API solve this problem to use sophisticated thinc Interface visual components by by abstracting the details of programming against the simply including them on web pages. individual browsers and allow the web developer to SSS Research Proprietary 6 Multiple Image sets</p><p>Figure 4 Including multiple image sets on a map. several different image and datasets into thinc Benefits to End Developer: components. For example, Figure 4 shows an example The HTML syntax is more readable and therefore more where our Map control is attached to two different WMS maintainable for the end developer. Server tags also image servers. Both sets of imagery are retrieved by the allow intellisense and syntax checking when used in the client and combined within the browser. The result is standard programming environments Eclipse and shown in Figure 5 where NASA imagery is combined Microsoft’s VisualStudio. By integrating with the with political boundaries by merging the images in the popular IDE’s, “Drag and Drop” support is enabled, browser. allowing the developer to design and code the application using typical Rapid Application Development (RAD) 5. THINC INTERFACE MOBILE CLIENT techniques. Syntax errors are caught at integration time rather than during run time. GeoBoost Server Tags Screens on mobile devices are typically small, have provide meaningful error messages for the integration differing orientations and dimensions, have varying pixel developer. Regular HTML error messages provide only resolutions, and thus require special attention. generic error messages and codes (for example, Error Additionally, mobile devices have typically slower 500, Server Error), whereas GeoBoost server tags provide processors, minimal battery life, and constrained local detailed error messages. storage. These factors must be weighed when integrating a mobile appliance into the GeoBoost platform. Creating Hierarchy a compelling mobile client requires careful consideration Many of the GeoBoost widgets express a hierarchal of all these constraints. To fully take advantage of mobile relationship. For example the Map widget might contain applications, the GeoBoost server platform has been 3 overlay regions which to display, or the BarChart extended to process and deliver data in new ways. By widget might contain 3 data series to plot. Unique to off-loading this processing to the server, the mobile GeoBoost, the server tag library expresses these device resources were conserved and the user experience relationships using XML’s natural syntax, familiar to all was enhanced. developers. The standard way to express the relationship is by embedding ID’s and using lookup indirection to deduce hierarchy. GeoBoost tags express this naturally, as in the following sample: </p><p><thinc:map latitude=”35.0” longitude=”45.0”> <thinc:ItemCollection> <thinc:GeoRssDataConnector url=”source1” /> <thinc:GeoRssDataConnector url=”source2” /> </thinc:ItemCollection> </thinc:map> </p><p>In the above sample code, a map is drawn centered at latitude 35, and longitude 45. Drawn in the map is the data from “source1” and “source2”. This hierarchal relationship is clear from the code. </p><p>Using hierarchical containment, it is possible to include </p><p>SSS Research Proprietary 7 05-200</p><p>Figure 5 NASA image data is combined with feature data rendered as geopolitical outlines from two different web servers on thinc Map Control. Screen resolutions and aspect ratios (orientation) Current mobile technology delivers limited color depth Mobile devices have varying screen resolutions and and typically only display 24-bit color (as opposed to 32- physical dimensions. Some devices (notable the Palm bit color standard on a desktop). This limited GeoBoost’s Treo) have a square screen with a resolution of 320x320. ability to finely calibrate data points on the map. Other smart-phones have rectangular dimensions, with GeoBoost server side changes were made to orientations in both Landscape and Portrait. On the far accommodate the reduced color depth. end of the device scale, small handhelds have screen resolutions of 800x600 with a physical dimension of 5”. Glyph Size A strategy of delivering “a standard set” of images to Mobile devices are designed to be used within 5”-6” from clients, and letting the mobile device handle the the users eyes, whereas desktop monitors are 17” - 25” difference would be disastrous since the devices do not from the eyes. Further, some handhelds are specifically have the processing power required for intense image designed with touch interfaces (the Windows Mobile manipulation. Rather, GeoBoost server allows image platform), whereas others are designed for stylus use manipulation to be done server side, and passing on (TabletPC). Fingertip use requires bigger icons with images with resolution and dimensions specific to the larger hotspots to be activated, while with stylus use, a device. smaller hotspot is possible. Some mobile devices (Smart Phones) allow neither, and rely on the telephone input Processor Power, Battery Life digits or joysticks (blackberry pearl) for input. GeoBoost On a mobile device, battery life is directly proportional to Mobile has algorithms and tolerances defined to allow processor power and processor workload. If we program varying sized hotspots depending on device. The larger the device to do heavy computations or image hotspots require larger icons, so icon collision detection manipulation, we have a double effect of the device algorithms are needed to space hotspots accordingly. slowing performance overall, and draining the battery. Battery life is at a premium on the devices, and manufactures are trying to increase the battery power by continually reducing the processor power. Recognizing this constraint, the GeoBoost server platform was extended to serve images “pre-cooked” for the specific device. This allows the device to simply display the map image, rather than needing to manipulate the image for the hardware. </p><p>Color Depth SSS Research Proprietary 8</p><p>Figure 6 GeoBoost Tracking Application on Mobile Device. area. Feature data is provided by Data and Application GeoBoost Mobile services in the form of GeoRss. The GeoRss is parsed by A prototype rich client was developed as proof points for our RSS library and imported into the application’s our theories. The prototype consumed map images from central data store. The application then uses its native GeoBoost server, and delivered them to the device to graphics libraries to represent the feature data on the map. allow zooming, panning, and scrolling on the client. The architecture of our mobile application is similar to that of Mobile applications are especially well suited for low- the GeoBoost client: a Model-View-Controller pattern is bandwidth or sporadic internet access. Since the used to create several different interfaces to a single application does not depend on a web browser, additional central data model. optimizations such as local tile caching can be introduced to counteract the limitations of the network. The mobile application connects to Map Services over the internet and fetches map tiles for the currently displayed SSS Research Proprietary 9 6. SUMMARY AND CONCLUSIONS that change the way people live and work. His educational background includes a B.A from Kalamazoo We have created a Web 2.0 thin client mapping College, .A from the University of Wisconsin at Madison framework that we call thinc GeoBoost™. Using our and his Ph.D. in Statistics from the University of framework we are able to build browser-based geospatial Minnesota. applications that run on top of open geospatial standards and provide rich geospatial visualizations built using Scalable Vector Graphics. The framework is unique in that applications built using it have the richness of M. Andrew Eick has architected, traditional desktop applications and the reach of browser- developed and deployed many large based systems. It implements all of the features described scale content development and in Approach 4 and provides and open platform for distribution applications. He has led internet web mapping. development of a 50,000 seat client application deployed worldwide in over 20 languages on every continent, and 7. REFERENCES architected and led development of a website for a leading automotive manufacture which serves in excess of [1] Stuart Card, Jock Mackinlay, Ben Shneiderman, 30 million logins a month. He has won numerous awards Readings in Information Visualization: Using Vision to and recognition including three software patent's, an Think, Morgan Kaufmann, 1999. industry Trade Secret for software invention, the Vice Presidents Select Project award, and the Division [2] Ben Shneiderman, Designing the User Interface, Outstanding project Award. Addison Wesley, Third Edition, 1998. </p><p>[3] National Geospatial Agency, Military Standard Raster Product Format, 6 October 1994. </p><p>[4] www.lizardtech.com </p><p>[5] Dona Maurer, “Usability for Rich Internet Applications”, Digital Web Magazine, 20 February, 2006. </p><p>[6] Dojo Foundation, “dojo, the Javascript Toolkit”, available at http://dojotoolkit.org/. </p><p>[7] Sam Stephenson., “prototype JavaScript Framework”, available at http://prototype.conio.net/. </p><p>[8] Martin LaMonica, “Microsoft gets hip to AJAX,” CNET, 27-June 2005, available at http://news.com.com/Microsoft+gets+hip+to+AJAX/2100- 1007_3-5765197.<a href="/tags/HTML/" rel="tag">html</a> </p><p>8. BIOGRAPHY </p><p>Dr. Stephen G. Eick is a fellow of the American Statistical Association, has received 30 patents, and has founded three startup companies. He is a leading academic information visualization researcher, has published over 75 refereed papers, and has won many awards for his technology including the Bell Lab’s President’s award and the 2000 Computer-world Smithsonian award for key technologies </p><p>SSS Research Proprietary 10</p><p>SSS Research Proprietary 11</p> </div> </article> </div> </div> </div> <script type="text/javascript" async crossorigin="anonymous" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8519364510543070"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script> var docId = '28070c3c9f289d9a3ae0e70d5a36b51f'; var endPage = 1; var totalPage = 11; var pfLoading = false; window.addEventListener('scroll', function () { if (pfLoading) return; var $now = $('.article-imgview .pf').eq(endPage - 1); if (document.documentElement.scrollTop + $(window).height() > $now.offset().top) { pfLoading = true; endPage++; if (endPage > totalPage) return; var imgEle = new Image(); var imgsrc = "//data.docslib.org/img/28070c3c9f289d9a3ae0e70d5a36b51f-" + endPage + (endPage > 3 ? ".jpg" : ".webp"); imgEle.src = imgsrc; var $imgLoad = $('<div class="pf" id="pf' + endPage + '"><img src="/loading.gif"></div>'); $('.article-imgview').append($imgLoad); imgEle.addEventListener('load', function () { $imgLoad.find('img').attr('src', imgsrc); pfLoading = false }); if (endPage < 7) { adcall('pf' + endPage); } } }, { passive: true }); </script> <script> var sc_project = 11552861; var sc_invisible = 1; var sc_security = "b956b151"; </script> <script src="https://www.statcounter.com/counter/counter.js" async></script> </html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>