Probability-Based Tile Pre-fetching and Cache Replacement Algorithms for Web Geographical Information Systems

Similar documents
Parallel Storage and Retrieval of Pixmap Images

A Study of Optimal Spatial Partition Size and Field of View in Massively Multiplayer Online Game Server

Evolutionary Image Enhancement for Impulsive Noise Reduction

CSE6488: Mobile Computing Systems

Chapter 1 Introduction

Performance Analysis of GPS Integer Ambiguity Resolution Using External Aiding Information

Zero-Based Code Modulation Technique for Digital Video Fingerprinting

The PlanetRisk Discrete Global Grid System

Chapter 2 Transformation Invariant Image Recognition Using Multilayer Perceptron 2.1 Introduction

Real-Time Face Detection and Tracking for High Resolution Smart Camera System

Gateways Placement in Backbone Wireless Mesh Networks

SMARTPHONE SENSOR BASED GESTURE RECOGNITION LIBRARY

Advances in Antenna Measurement Instrumentation and Systems

Software Engineering: A Practitioner s Approach, 7/e. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman

InSciTe Adaptive: Intelligent Technology Analysis Service Considering User Intention

Wi-Fi Fingerprinting through Active Learning using Smartphones

ETI2511-WIRELESS COMMUNICATION II HANDOUT I 1.0 PRINCIPLES OF CELLULAR COMMUNICATION

Method for Real Time Text Extraction of Digital Manga Comic

Face Detection System on Ada boost Algorithm Using Haar Classifiers

Carrier Independent Localization Techniques for GSM Terminals

3D-Position Estimation for Hand Gesture Interface Using a Single Camera

Chutima Prommak and Boriboon Deeka. Proceedings of the World Congress on Engineering 2007 Vol II WCE 2007, July 2-4, 2007, London, U.K.

Building a Machining Knowledge Base for Intelligent Machine Tools

University of Bristol - Explore Bristol Research. Peer reviewed version Link to published version (if available): /ISCAS.1999.

Implementation and Performance Analysis of a Vedic Multiplier Using Tanner EDA Tool

Downlink Erlang Capacity of Cellular OFDMA

APPLICATION OF MARINE GEOGRAPHIC INFORMATION SYSTEM USING ANALYSIS OF CONTROL POINTS IN POST PROCESSING DGPS SURVEYING

Human Robotics Interaction (HRI) based Analysis using DMT

A Simple knn Search Protocol using Data Broadcasting in Wireless Mobile Environments

Sang-Tae Kim, Seong-Yun Lee. Radio Technology Research Department

Classification-based Hybrid Filters for Image Processing

Fingerprint Quality Analysis: a PC-aided approach

Construction and Operation of a Knowledge Base on Intelligent Machine Tools

On-site Traffic Accident Detection with Both Social Media and Traffic Data

Application of combined TOPSIS and AHP method for Spectrum Selection in Cognitive Radio by Channel Characteristic Evaluation

HR001118S0020 Millimeter-Wave Digital Arrays (MIDAS) Frequently Asked Questions (FAQ) March 12, 2018

Generating Virtual Environments by Linking Spatial Data Processing with a Gaming Engine

Location Polling Algorithm for Alerting Service Based on Location

Cross-layer Network Design for Quality of Services in Wireless Local Area Networks: Optimal Access Point Placement and Frequency Channel Assignment

An introduction to these key work products

CHAPTER 4 ANALYSIS OF LOW POWER, AREA EFFICIENT AND HIGH SPEED MULTIPLIER TOPOLOGIES

Design and Development of a Social Robot Framework for Providing an Intelligent Service

Study of Location Management for Next Generation Personal Communication Networks

Ubiquitous Home Simulation Using Augmented Reality

DESIGN AND CAPABILITIES OF AN ENHANCED NAVAL MINE WARFARE SIMULATION FRAMEWORK. Timothy E. Floore George H. Gilman

LINKING CONSTRUCTION INFORMATION THROUGH VR USING AN OBJECT ORIENTED ENVIRONMENT

Segmentation using Saturation Thresholding and its Application in Content-Based Retrieval of Images

License Plate Localisation based on Morphological Operations

Direction-of-Arrival Estimation Using a Microphone Array with the Multichannel Cross-Correlation Method

MLP for Adaptive Postprocessing Block-Coded Images

Mobile & Wireless Networking. Lecture 4: Cellular Concepts & Dealing with Mobility. [Reader, Part 3 & 4]

The Behavior Evolving Model and Application of Virtual Robots

Indoor Localization in Wireless Sensor Networks

Efficient UMTS. 1 Introduction. Lodewijk T. Smit and Gerard J.M. Smit CADTES, May 9, 2003

Impulse noise features for automatic selection of noise cleaning filter

A Technology Forecasting Method using Text Mining and Visual Apriori Algorithm

Anti-shaking Algorithm for the Mobile Phone Camera in Dim Light Conditions

A study on facility management application scenario of BIMGIS modeling data

Recognition System for Pakistani Paper Currency

DEVELOPMENT OF A ROBOID COMPONENT FOR PLAYER/STAGE ROBOT SIMULATOR

Instantaneous Inventory. Gain ICs

Detection and Verification of Missing Components in SMD using AOI Techniques

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Tips for making accurate rise / fall time measurements for radar signals

Fast Placement Optimization of Power Supply Pads

AGENT BASED MANUFACTURING CAPABILITY ASSESSMENT IN THE EXTENDED ENTERPRISE USING STEP AP224 AND XML

Real Time Word to Picture Translation for Chinese Restaurant Menus

UNIT-III LIFE-CYCLE PHASES

RFID Multi-hop Relay Algorithms with Active Relay Tags in Tag-Talks-First Mode

Travel Photo Album Summarization based on Aesthetic quality, Interestingness, and Memorableness

Analysis of the impact of map-matching on the accuracy of propagation models

Enhanced Positioning Method using WLAN RSSI Measurements considering Dilution of Precision of AP Configuration

Predicting Content Virality in Social Cascade

Heuristic Search with Pre-Computed Databases

sensors ISSN

Red Shadow. FPGA Trax Design Competition

IJMIE Volume 2, Issue 4 ISSN:

An Embedding Model for Mining Human Trajectory Data with Image Sharing

Final Report: DBmbench

Knowledge Management for Command and Control

Measuring the Optimal Transmission Power of GSM Cellular Network: A Case Study

Maximum-Likelihood Co-Channel Interference Cancellation with Power Control for Cellular OFDM Networks

Classification of Clothes from Two Dimensional Optical Images

High Performance Computing Systems and Scalable Networks for. Information Technology. Joint White Paper from the

State and Path Analysis of RSSI in Indoor Environment

Lab 3 Swinging pendulum experiment

Capturing and Adapting Traces for Character Control in Computer Role Playing Games

Online Frequency Assignment in Wireless Communication Networks

SITUATED CREATIVITY INSPIRED IN PARAMETRIC DESIGN ENVIRONMENTS

Path Planning for Mobile Robots Based on Hybrid Architecture Platform

In the game of Chess a queen can move any number of spaces in any linear direction: horizontally, vertically, or along a diagonal.

MicroLab 500-series Getting Started

HR001118S0020 Millimeter-Wave Digital Arrays (MIDAS) Frequently Asked Questions (FAQ) February 12, 2018

FPGA Based Efficient Median Filter Implementation Using Xilinx System Generator

Virtual Foundry Modeling and Its Applications

Technology Roadmap using Patent Keyword

A Broadcast Disk Scheme for Mobile Information System

UM-Based Image Enhancement in Low-Light Situations

Guided Filtering Using Reflected IR Image for Improving Quality of Depth Image

Digital Watermarking Using Homogeneity in Image

Transcription:

Probability-Based Tile Pre-fetching and Cache Replacement Algorithms for Web Geographical Information Systems Yong-Kyoon Kang, Ki-Chang Kim, and Yoo-Sung Kim Department of Computer Science & Engineering INHA University, INCHEON 402-751, Korea yskim@inha.ac.kr Abstract. In this paper, an effective probability-based tile pre-fetching algorithm and a collaborative cache replacement algorithm for Web geographical information systems(web GISs) are proposed. The proposed tile pre-fetching algorithm can approximate which tiles will be used in advance based on the global tile access pattern of all users and the semantics of query so that a user request will be answered quickly since the needed tiles are likely in cache database. When a client runs out of cache space for newly down-loaded tiles, the proposed cache replacement algorithm determines which tiles should be replaced based on the future access probabilities. By combining the proposed tile pre-fetching algorithm with the cache replacement algorithm, the response time for user requests can be improved substantially in Web GIS systems. 1 Introduction With the rapid growth of computer hardware and software technologies and the user s requirements for geographical information, geographical information systems (GISs) that can analyze, process, and manage geo-spatial data have been developed and become very popular in several fields, e.g. civil engineering and computer engineering ([1]). Furthermore, since the Internet and World Wide Web(WWW) have become very popular in real worlds, users can get geographical information at a low cost from the Web servers that can provide geographical information. These systems are referred to as Web GIS systems ([2,3,4,5,6]). The types of Web GIS systems can be classified into server-side Web GIS and client-side Web. In server-side Web GIS systems, since the server has to process all requests of all clients, the server might be over-loaded, and the response time for user requests may become too slow ([2,7]). On the other hand, in client-side Web GIS systems, the client loads the geographical data processing modules from the server when it makes a connection to the server. From then on, the client can process users requests by itself. Recently, client-side Web GIS systems have become very popular and several real systems are being developed. A. Caplinskas and J. Eder (Eds.): ADBIS 2001, LNCS 2151, pp. 127-140, 2001. Springer-Verlag Berlin Heidelberg 2001

128 Y.-K. Kang, K.-C. Kim, and Y.-S. Kim The granularity of transmission from the server to the client can be either a whole map or a tile of the map ([2]). If the granularity is a whole map, the server searches all spatial objects and all aspatial information on GIS database to retrieve relevant objects and information and sends the map with the retrieved aspatial information to the client. However, a map may be of very large size, since a map can include a large number of objects. It is clear that the larger the size of a communication unit becomes, the more loading time is needed between the server and the client. To reduce the initial loading time, many systems have adopted the concepts of tiling and layering. Tiling divides the map into several small pieces so that each of them can be transferred in a short time, while layering partitions the map into several layers such that each layer represents some specific information. Tiling can minimize the initial user s response time, but it alone can t minimize the total response time. To minimize the total response time, the system should pre-fetch some tiles that are likely to be accessed in advance and save them in a cached database for future reusing. When the user requests the tiles that have been pre-fetched and saved at the cached database, the client can give these tiles to the user without the communication delay to fetch the required tiles from the server. In this paper, an efficient tile pre-fetching algorithm for Web GIS based on users global access pattern is proposed. In the proposed algorithm, the server collects and maintains the transition probabilities between adjacent tiles. With these probabilities the server can predict which tiles have the higher probability of accessing in next time than others, and by pre-fetching those recommended tiles, the client can respond to the user s requests much faster. When the client s cache is run out of space, the client should determine which tiles to replace with newly fetched tiles. Those tiles that are not likely to be accessed in the near future can be replaced, and the client should be able to select such tiles. We propose a cache replacement algorithm that predicts the future usage of the tiles correctly, based on the same access probabilities that are calculated and used for tile prefetching. The proposed cache replacement algorithm selects tiles with small transition probabilities from the current requested tile as candidate tiles for replacement. The rest of this paper is organized as following. In Sect. 2, we discuss the architecture of Web GIS systems and describe query processing in it. In Sect. 3, we propose an efficient tile pre-fetching algorithm that can determine a set of tiles that are likely to be requested in the near future, based on the global tile access patterns and a cache replacement algorithm that can collaborate with the proposed tile pre-fetching algorithm in Web GIS systems. We also discuss an example that can show the effectiveness of the proposed tile pre-fetching algorithm and cache replacement algorithm. Finally, we conclude the paper in Sect. 4.

Probability-Based Tile Pre-fetching and Cache Replacement Algorithms 129 2 Query Processing in Web GIS Systems The general architecture of Web GIS systems in which the proposed tile pre-fetching and cache replacement algorithms are used is in Fig. 1 ([2]). In Fig. 1, we do not include all components of Web GIS systems. That is, Fig. 1 shows the abstracted architecture of Web GIS systems. Browsing Commands GIS queries Client Query Analyzer and Executor(QAE) Cache Manager(CM) Prefetch Agent(PA) Cached DB Server Prefetch Executor(PE) Prefetch DB (Tile Information, Probabilities of tiles) Search Engine(SE) GIS Database Spatial DB Aspatial DB Fig. 1. Abstracted architecture of Web GIS systems A Web GIS system mainly consists of two components; clients and a server. A client is the Web browser with several data processing facilities that are loaded from the server when the client makes a connection to the server. Server manages the GIS database that consists of spatial database and aspatial database and provides useful information to the clients when the clients submit user s requests. As we discussed in the previous section, the server manages the spatial information in the unit of tile. That is, a map is decomposed into a set of tiles that can be transferred to the client in a short time.

130 Y.-K. Kang, K.-C. Kim, and Y.-S. Kim In Web GIS systems, users requests are classified into two categories; browsing commands and GIS queries. GIS queries include point queries, region queries, and object retrieval queries with selection predicates. To use the point query, the user gives the coordinates (a, b) of a point in a map, and the client serves the tile that has the given point. To use the region query, the user gives a specified region in rectangular form with (a 1, b 1 ) and (a 2, b 2 ) or circular form with the center point (a, b) and a radius, and the client returns a set of tiles that covers the given region. For an object retrieval query with selection predicates, the client returns the objects that satisfy the given predicates on the map. Usually, GIS queries such as point queries, region queries, and object retrieval queries are used as the first request when users make a session to the Web GIS systems. That is, the user first submits a GIS query and, based on the result of the first GIS query, submits a sequence of browsing commands and/or GIS queries. Browsing commands include zooming and moving commands. To execute a zoom-in command, by which the user can see the current position (a, b) of the map in more detail, if the required data has been cached at client, the client doesn t have to go to the server. Otherwise, however, client should down-load more detailed map information from the server. For a zoom-out command, by which the user can view the map in wider area, the client should fetch neighbor tiles of the current one from the server. By using the moving commands, users can retrieve 4 neighbor tiles of the current tile. That is, by using a moving command, users can move to one of the 4 neighbor tiles in the direction of up, down, left, and right, respectively. The formats of users requests in Web GIS systems are as following. Point_Query(a, b) Rectangle_Region_Query (a 1, b 1, a 2, b 2 ) Circle_Region_Query(a, b, radius) Objet_Retireval_Query(selection_predicates) Zoom-in(a, b, smaller_radius) Zoom-out(a, b, larger_radius) Moving(a, b, direction) In Fig. 1, user s request is processed as following. When a user submits a request to the client. Query Analyzer and Executor (QAE) analyzes the user s request and executes it. To execute user s request, QAE requests necessary data that should be processed for user s request from Cache Manager (CM). If CM can find the data in the cached database, it transfers the data without requesting to the server. Otherwise, CM sends the request to Pre-fetch Agent (PA) to retrieve the necessary data from the server. PA basically tosses the user s request to Pre-fetch Executor (PE) at the server. However, to give some information needed for tile pre-fetching to the server, PA adds some additional information to the original users requests. That is, in addition to the

Probability-Based Tile Pre-fetching and Cache Replacement Algorithms 131 original request, PA also gives the list of tiles that have been cached, the transition frequencies among the cached tiles since the last connection to the server, and the number of tiles it wants to pre-fetch. The pre-fetching size can be determined on the basis of the size of free space for tile pre-fetching, and the regularity degree of access pattern of the user at the client. When PE receives a modified request from the PA, PE decomposes the request into the original request and the augmented information. It sends the original request to Search Engine (SE) to retrieve the result of the user s request and performs prefetching based on the retrieved result and the augmented information. To properly pre-fetch tiles that are likely to be accessed by the user in the near future, the prefetching algorithm uses the transition probabilities between tiles, and the details on the pre-fetching algorithm will be discussed in Sect. 3.1. PE sends the pre-fetching result tiles with the retrieved tiles for a user s request to CM through PA. When CM receives too many tiles than its storage capacity, CM determines which space will be replaced with the newly received results by using the cache replacement algorithm described in Sect. 3.2. When QAE receives the retrieved result, QAE executes the user s request on the retrieved data, and the final result is shown to the user s browser. 3 Tile Pre-fetching and Cache Replacement in Web GIS Systems 3.1 A Probability-Based Tile Pre-fetching Algorithm PE determines which tiles should be pre-fetched based on the updated global access pattern information according to Algorithm 1. To determine tiles to be pre-fetched, PE first updates the global access pattern by using the local access pattern sent from PA (step 1). If the number of tiles returned as the result of the request is greater than pre-fetch_size, we do not need to pre-fetch, since the request has retrieved more tiles than the expectation specified by pre-fetch_size (step 2). Otherwise, we calculate the normalized probabilities from T y to its 4 neighbor tiles that are within distance = 1 (step 3). If the pre-fetch size is greater than 1, we calculate the transition probabilities to those tiles located within distance pre-fetch_size (step 4~5). At step 6, we sort the probabilities in descending order. Then we select top-ranked pre-fetch_size tiles from the pre-fetching space (step 7). At step 8, we eliminate the tiles that have been already cached at the client by the previous requests. The list of tiles to be pre-fetched is returned as the result of Algorithm 1. And, Algorithm 1 also returns the own_tile_list with the updated transition probabilities, and the result is sent to the CM of client for cache replacement.

132 Y.-K. Kang, K.-C. Kim, and Y.-S. Kim Algorithm 1: Pre-fetching Algorithm Based on Global Access Pattern Input: pre-fetch_size, own_tile_list, local_access_pattern, return_tiles including central tile T y with specified point (a, b) Output: list of tiles with transition probabilities to be pre-fetched for pre-fetching, own_tile_list with the updated transition probabilities for cache replacement Data Structure: transition probability matrix 1: Updates the global access pattern by using local_access_pattern; 2: IF (number of return_tiles > pre-fetch_size) RETURN (NO_PRE-FETCH); 3: Computes the normalized probabilities from T y to its 4 neighbors /*distance = 1*/; 4: FOR each tile within distance from 2 to pre-fetch_size DO /* distance 2 */ 5: Compute the conditional probability of tile moving from T y to the tile; 6: Sorts the probabilities of tiles within the pre-fetching space of distance prefetch_size; 7: Let pre-fetch_list = select top-ranked pre-fetch_size tiles within the prefetching space; 8: Let pre-fetch_list = pre-fetch_list own_tile_list; 9: Resets the transition probabilities of all tiles in {own_tile_list prefetch_list} to 0; 10: RETURN(pre-fetch_list and own_tile_list with the updated transition probabilities); As an example we consider a pre-fetching request that returns tile T 1 y as the retrieval result. If pre-fetch_size is 0, Algorithm 1 quits with NO_PRE-FETCH at step 2 after updating the global access pattern by using the local_access_pattern. Otherwise, i.e., if pre-fetch_size is greater than 0, step 3 of Algorithm 1 is executed. Assume that pre-fetch_size is 3, which means PA want to pre-fetch up to 3 tiles. PE forms the prefetching space with the distance equal to 3. The pre-fetching space includes tiles that 1 In general, Rectangle_Region_Query, Circle_Region_Query, Object_Retrieval_Query, and Zoom-out commands might return more than one tile as the retrieved result. For simplicity, however, we assume that a single tile, T y, is retrieved.

Probability-Based Tile Pre-fetching and Cache Replacement Algorithms 133 can be accessed within the specified number of tile movements from the retrieved tile, T y. Fig. 2 shows an example of pre-fetching space from T y with pre-fetch_size = 3. Within the pre-fetching space, the four immediate neighbor tiles of T y, T y+1, T x+1,y, T y-1, and T x-1,y can be reached by 1 tile movement from T y. Tiles T y+2, T x+1,y+1, T x+2,y, T x+1,y-1, T y-2, T x-1,y-1, T x-2,y, and T x-1,y+1 can be reached by 2 tile movements from T y. Finally, tiles T y+3, T x+1,y+2, T x+2,y+1, T x+3,y, T x+2,y-1, T x+1,y-2, T y-3, T x-1,y-2, T x-2,y-1, T x-3,y, T x-1,y+2, and T x-1,y+1 can be reached by 3 tile movements from T y. In Fig. 2, the edge from a tile to a neighbor tile stands for a tile movement, and the label of the edge means the probability for such a transition. That is, P(y y+1) stands for the probability of tile moving from T y to T y+1. For tiles that can be reached by 1 tile movement from T y, we compute the normalized probabilities. The normalization of the probabilities is necessary because a specified position (a, b) in T y has an effect to the next tile movement. That is, if the specified point (a, b) is near to the upper border, then the user who has specified the point is likely to move to the upper tile than the lower one, and so on. To explain the normalization process, let s consider the situation depicted in Fig. 3. The original probabilities of tile moving from T y to T y+1, T x+1,y, T y-1, and T x-1,y are P(y y+1), P(y x+1,y), P(y y-1), and P(y x-1,y), respectively. The specified location by the user is (a,b). Let s represent the normalized transition probabilities with distance 1 from T y as P (y y+1), P (y x+1,y), P (y y-1), and P (y x-1,y), respectively. Note that the summation of the normalized probabilities, P (y x+1,y) and P (y x-1,y) along the x axis should be same as the summation of the original probabilities of P(y x+1,y) and P(y x-1,y), and they should reflect the internal division ratio of the specified position along the x axis. Equations (1) and (2) show the formula for P (y x+1,y) and P (y x-1,y), respectively. In equations (1) and (2), for simplicity, we use P right and P left instead of P(y x+1,y) and P(y x-1,y), respectively. A similar argument can be made for P (y y+1) and P (y y-1), and the resulting formulas are in equations (3) and (4), respectively. In equations (3) and (4), again for simplicity, we use P up and P down instead of P(y y+1) and P(y y-1), respectively.

134 Y.-K. Kang, K.-C. Kim, and Y.-S. Kim 'LVWDQFH 'LVWDQFH 'LVWDQFH 'LVWDQFH [ \ Fig. 2. Pre-fetching space within distance 3 from T y O \ D E O \ O [ O [ O \ 3! O [ Fig. 3. Normalized probabilities from T y to Its 4 neighbor tiles

Probability-Based Tile Pre-fetching and Cache Replacement Algorithms 135 ( P l P + P ) + l P right left P' right = lx1 ( x1 right x2 left) P right (1) ( P l P + P ) + l P right left P' left = lx2 ( x1 right x2 left) P left (2) ( P l P + P ) + l P up down P' up = ly2 ( y2 up y1 down) P up (3) ( P l P + P ) + l P up down P' down = ly1 ( y2 up y1 down) P down (4) To compute the probability of tile moving from T y to a tile that is within distance = 2, we can use the conditional probability computation. As an example, let s consider how to compute the conditional probability of tile moving from T y to the tile T y+2. From Fig. 2, we can see that T y+2 can be reached by two tile movements from T y through T y+1. That is, we can reach to T y+2 from T y by moving first to T and then y+1 moving to T. Thus, we can compute the conditional probability of tile moving from y+2 T y to T y+2 through T y+1 by equation (5). P ( y y + 2) = P'( y y + 1) P( y + 1 y + 2) (5) Some tiles can be reached in several ways. For example, T can be reached from x+1,y+1 T y by using two different paths (see Fig. 2): one is T y T y+1 T x+1,y+1, and the other is T y T x+1,y T x+1,y+1. In this case, the conditional probability of tile moving from T y to T x+1,y+1 can be computed as follows. P( y x + 1, y + 1) = P'( y y + 1) P( y + 1 x + 1, y + 1) (6) + P '( y x + 1, y) P( x + 1, y x + 1, y + 1) We can do the similar computation for the tiles of distance = 3. The conditional probability of tile moving from T y to T y+3 is computed by using equation (7) (see also Fig. 2).

136 Y.-K. Kang, K.-C. Kim, and Y.-S. Kim P ( y y + 3) = P( y y + 2) P( y + 2 y + 3) (7) Also, for T x+1,y+2 in Fig. 2, the conditional probability of tile moving from T y to T x+1,y+2 is computed by using equation (8). P ( y x + 1, y + 2) = P( y y + 2) P( y + 2 y + 3) (8) P ( x y x + y + P x + y + x + y + +, 1, 1) ( 1, 1 1, 2) Generally, the conditional probabilities of tile moving from T y to T x+n,y+m, where the maximum distance is n + m, can be computed as in equation (9). P(y x+n, y+m) = SUM(conditional probabilities of all paths from T y to T x+n,y+m ) (9) After computing the conditional probabilities to all tiles within distance prefetch_size from the retrieved tile, T y, at step 4~5 of Algorithm 1, the list of tiles that should be pre-fetched is selected according to step 6~8. To remove the tiles that have been saved in the client s cache database but will not be used in future from the cache database for making free cache space for the current request, step 9 of Algorithm 1 resets the transition probabilities of these tiles to 0. Then, the cache space for these tiles can be replaced when CM needs more space for the newly fetched tiles. As the result of Algorithm 1, the list of tiles to be pre-fetched and the own_tile_list with the updated transition probabilities are returned. After PE pre-fetches the tiles of pre-fetch_list, it returns the retrieved result tiles that are actually retrieved for the request, the pre-fetched tiles with the transition probabilities, and the own_tile_list with the updated transition probabilities to CM through PA of the client issuing the request. 3.2 A Collaborative Cache Replacement Algorithm When CM of a client receives the result described above for a user request from PE, CM stores both the retrieved tiles and the pre-fetched tiles in the cache. However, when it runs out of the cache space, it should remove some tiles to prepare free space for newly fetched tiles. To determine which tiles should be removed, the proposed cache replacement algorithm (Algorithm 2) utilizes the transition probabilities for tiles in own_tile_list, which are already computed for the purpose of tile pre-fetching (Algorithm 1). Algorithm 2 selects a set of tiles that have relatively smaller values of

Probability-Based Tile Pre-fetching and Cache Replacement Algorithms 137 transition probability from the current position than others among own_tile_list as the victim for cache replacement. Algorithm 2: Cache Replacement Algorithm Input: retrieved result tiles, pre-fetched tiles, and own_tile_list with the transition probabilities Data structure: list of cached tiles, size of free cache space 1: victim_tile_list = NULL; 2: required space = retrieved result tiles + pre-fetched tiles; 3: WHILE (size_of required space > size of free cache space ) DO { 4: select tile T i,j that has the minimum transition probability from own_tile_list; 5: victim_tile_list + = { T i,j }; 6: own_tile_list = { T i,j }; 7: size of free cache space + = size_of(t i,j ); } /* for making enough space */ 8: remove tiles in victim_tile_list from the cached database; 9: list of cached tiles = victim_tile_list; 10: saves retrieved result tiles and pre-fetched tiles into the cached database; 11: list of cached tiles += (retrieved result tiles + pre-fetched tiles); 12: size of free cache space = size_of(retrieved result tiles + pre-fetched tiles); 13: RETURN; In Algorithm 2, step 3 through step 7 select the set of tiles that should be removed from the cached database to make enough free space for storing the retrieved result tiles and the pre-fetched tiles. The selected tiles are actually removed from the cached database (step 8) and the list of cached tiles (step 9). At step 10, the retrieved tiles and the pre-fetched tiles are stored in the cached database. After cache replacement, the list of actual cached tiles and the size of free cache space are updated at step 11 and 12, respectively. 3.3 Effects of the Proposed Tile Pre-fetching and Cache Replacement Algorithms To show the effectiveness of the proposed tile pre-fetching and cache replacement algorithms, we discuss an example in this subsection. Assume that all tiles are in same size and the cached database can store 5 tiles at maximum and PA submits the following query to PE.

138 Y.-K. Kang, K.-C. Kim, and Y.-S. Kim Point_Query(a, b, pre-fetch_size(=2)) with own_tile_list(={(y-1),(x+1,y-1),(y-2),(x-1,y-1)}), local_access_pattern(=null). And as the result of the above query, assume tile T y is returned. The specified point (a, b) divides internally the horizontal length of T y into the ratio of 6:4 for l x1 :l x2 of Fig. 3. Also the specified point (a, b) divides internally the vertical length of T y into the ratio of 1:9 for l y1 :l y2 of Fig. 3. We also assume that the original probabilities for tile moving from a tile to its neighbor tiles are as shown in Fig. 4. 'LVWDQFH 'LVWDQFH 'LVWDQFH [ \ Fig. 4. A pre-fetching space within distance 2 from T y According to Algorithm 1, the global access pattern is first updated by using the local access pattern. However, since the local access pattern is NULL, the global access pattern does not change. Since the number of tiles returned as the result of the query is

Probability-Based Tile Pre-fetching and Cache Replacement Algorithms 139 1, and pre-fetch_size(=2) is greater than the number of returned tiles(=1), step 3 of Algorithm 1 computes the normalized probabilities of tile moving from T y to its 4 neighbor tiles by using equations (1), (2), (3), and (4), respectively. The normalized probabilities are shown within parentheses at the four nodes of distance = 1 in Fig. 4. And, the conditional probabilities for the tiles of distance = 2 is computed by using either equation (5) or equation (6) according to the number of incoming branches into the node in Fig. 4, and the computed result is also shown at each node of distance = 2 with parentheses in Fig. 4. Among the nodes in the pre-fetching space of distance pre-fetch_size(=2), the top-ranked 2 tiles are selected for the pre-fetching list. Hence, T y+1 and T y+2 are selected for actual pre-fetching. The final result for the above Point_Query, therefore, is T y, T y+1, and T y+2. T y is transferred to the client as the actual retrieved result of the query, and T y+1 and T y+1 are also transferred to the client as the pre-fetching results. When CM of the client issuing the query receives the result, T y, T y+1, and T y+2, it runs out of free space for caching because 4 tiles, T y-1, T x+1,y-1, T y-2, and T x-1,y-1 have been stored at its cached database in which 5 tiles can be stored at maximum, i.e., the size of free cache space is 1. Hence, as the victims for cache replacement, Algorithm 2 selects T y-2 and T x-1,y-1 among the own_tile_list since these have smaller transition probabilities than others. Finally, the cached database has stored T y, T y+1, T y+2, T y-1, and T x+1,y-1 after the complete execution of the above Point_Query. In that case, as long as user moves around these tiles, the communication between the client and the server is not needed since the client can serve these user s requests without down loading the additional tiles from the server. However, if these tiles have not been pre-fetched, the client should down load these tiles newly, and the user has to wait until these tiles are completely fetched into the cached database. So, by using the proposed pre-fetching algorithm and the collaborative cache replacement algorithms, the response time can be remarkably improved in Web GIS systems. 4 Conclusions In this paper, we have proposed an effective tile pre-fetching algorithm that is able to determine which tiles are likely to be accessed in the near future according to the global access pattern of all users in Web geographical information systems(web GISs). And we have also proposed a collaborative cache replacement algorithm that can work with the proposed tile pre-fetching algorithm. The proposed cache replacement algorithm determines which tile space should be removed from the client s cached database based on the transition probabilities already computed for tile prefetching. We have modified the architecture of Web GIS systems to accommodate the

140 Y.-K. Kang, K.-C. Kim, and Y.-S. Kim proposed pre-fetching algorithm with the collaborative cache replacement algorithm and showed that the proposed algorithms improved the response time substantially. As the future works, we are doing the experimentation to inspect the performance of the proposed pre-fetching and cache replacement algorithms through simulation. We also plan to make an adaptation of the proposed algorithms into a Web GIS engine. Acknowledgement. This work was supported by a grant from INHA University. References 1. R. Laurini and D. Thompson, Fundamentals of Spatial Information Systems, ACA- DEMIC Press, 1992. 2. Young-Sub Cho, A Client-side Web GIS Using Tiling Storage Structure and Hybrid Spatial Query Processing Strategy, Ph. D. Thesis, Dept. of Computer Science and Engineering, INHA University, 1999. 3. Edwardm P. F. Chan and Koji Ueda, Efficient Query Result Retrieval over the Web, The Proceedings of 7 th International Conference on Parallel and Distributed Systems (ICPADS 00), July 2000. Page 161-170. 4. K. E. Foote and A. P. Kirvan, WebGIS, NCGIA Core Curriculum in GIScience, http://www.ncgia.uscb.edu/giscc/units/u133/u133.html, December 1997. 5. Serena Coetzee and Judith Bishop, A New Way to Query GISs on the Web, IEEE Software, May/June 1998. 6. M. V. Liedekerke, A. Jones, and G. Graziani, The European Tracer Experiment Information System: Where GIS and WWW meet, The Proceedings of the 1995 ESRI user Conference, http://www.esri.com/library/userconf/proce95/to050/p022.html 7. Y. K. Choo and C. Lee, Integrated Distributed Geographical Information System (IDGIS), The Proceeding of the 1997 ESRI User Conference, http://www.esri.com/library/userconf/proc97/to150/pap101/p101.htm 8. D. J. DeWitt, N. Kabra, J. Luo, J. M. Patel, and J. B. Yu, Client-Server Paradise, The Proceedings of the 20 th VLDB Conference, 1994. 9. M. Carey, M. Franlin, Ml Livny, and E. Schekita, Data Caching Tradeoffs in Client- Server DBMS Architecture, The Proceedings of the ACM SIGMOD, Vol. 20, 1991.