Full text: Technical Commission IV (B4)

       
     
    
   
   
     
  
    
   
    
    
   
   
    
   
    
   
   
     
   
    
    
    
   
   
    
   
  
     
   
    
   
   
   
   
  
  
   
   
   
  
  
spatial order operators 
, West, West North, 
operators (Max Dist, 
cometrical operators 
er). 
f spatial operators are 
SOL (SESQL), which 
sides for spatial query 
mple, a query of “list 
an be implemented as 
om city, river where 
v.d)=true”. The only 
analysis on SVG and 
, compiler. 
AL ANALYSIS 
patial analysis can be 
. This section focuses 
^wares to distribute a 
des based on its cost. 
ldlewares compare the 
,) and browser-side 
n Cow» €Xecute the 
t data to the browser. 
wser, and carry out the 
spatial query includes 
query) and network 
1e query). As a normal 
istically improved, the 
en server and browser 
of the spatial queries. 
, and Cypser mainly 
cost. Our discussions 
rk transmission cost. 
b), a simple solution, 
arity (by layers) for 
, was proposed to the 
cle will improve the 
sing a finer granularity 
re flexible and precise 
'ations. 
yn costs and distribute 
ware and a server-side 
the architecture. 
ets 
3rowser side 
SVG dataset | | HTML interface 
SESQL Compiler for SVG 
Decision-maker 
SVG2GML translator 
Cache structure 
  
Browser-side middleware — 
incing middlewares 
  
  
31.1 Browser-side Middleware: The browser-side 
middleware includes an SESQL compiler for SVG, an 
SVG2GML translator, a cache structure, and a decision-maker. 
The SESQL compiler carries out syntax, sentence, and semantic 
analysis for users” SESQL sentences. The SVG2GML translator 
is employed to translate SVG data into GML data. 
The cache structure records which spatial data are available on 
the browser side. Careful studies of different spatial analysis 
tasks show that spatial objects are a basic unit of many spatial 
operations. Therefore, a very fine granularity for organizing and 
transmitting the spatial data is employed: spatial objects as a 
unit of organizing and transmitting spatial data. The following 
is the data structure of the cache structure. 
Class cache layer 
String slayerID; //the ID of the layer 
ArrayList<string> ObjectIDs; //the IDs of spatial objects 
//which are available on the browser side 
Bool bExecuted; //true if the layer is created by the browser 
//side's execution, bExecuted= true also means that the 
//layer can only be found on the browser side 
Bool bAllTransmitted; //true if all the objects in this layer 
/lare available on the browser side 
} 
ArrayList<cache layer? Cache; //record the transmitted data 
In the above structure, if bExecuted=true, the value of 
bAllTransmitted will be set as true. This is mainly due to the 
fact: an “executed” layer always contains all the spatial objects 
which should be in this layer. The value of bAl/Transmitted is 
an important indicator for the decision-maker when a whole 
layer is involved in a spatial query (i.e., an SESQL sentence). 
The decision-maker figures out the needed spatial data (spatial 
objects) from the FROM and WHERE clauses of the SESQL 
sentence by invoking the SESQL compiler, and checks whether 
all the needed spatial data are available on the browser side (by 
examining the cache structure). If necessary, the decision-maker 
sends the request to the server-side middleware. 
3.1.2 Server-side Middleware: The server-side middleware 
includes an SESQL compiler for GML, a GML2SVG translator, 
and a decision-maker. The GML2SVG translator is employed to 
translate GML data into SVG data. The decision-maker is 
responsible for receiving the requests from the browser-side 
middleware, and employing some decision rules to distribute a 
Spatial query to either the server or the browser sides based on 
the network transmission cost of that query. 
32 Decision Rules for Distributing Spatial Queries 
The general principle of load balancing spatial analysis is to 
&Xecute a spatial query on the server side if the cost of server- 
side execution (Cserver) is less than the cost of browser-side 
éxecution (Chronser), and vice versa. This principle is applied 
When designing the decision rules for both browser-side's and 
Server-side’s decision-makers. 
  
   
  
  
3.2.1 Decision Rules in Browser-side’s Decision-maker: 
Every time users submit a spatial query (as an SESQL sentence) 
through their browser (e.g., Internet Explorer), browser-side's 
decision-maker will figure out the needed input data (spatial 
objects) from the FROM and WHERE clauses in the SESQL 
sentence, and check whether the needed spatial data are 
available on the browser side. If yes, this query will be executed 
by the SESQL compiler on the browser side. Otherwise, the 
SESQL sentence, the names (IDs) of the needed input data 
(only those which are not available on the browser side), and 
the data size Inputp,onser and names (IDs) of the other input data 
whose bExecuted is true (the data can only be found on the 
browser side) will be sent to server-side’s decision-maker. 
3.2.2 Decision Rules in Server-side's Decision-maker: 
Server-side's decision-maker receives requests from browser 
sides, and employs some decision rules for distributing spatial 
queries. In order to identify these rules, we analyse the spatial 
operators designed for GML/SVG in Section 2, mainly focusing 
on comparing the input and output data sizes. When two or 
more tables (i.e., layers) are involved in an SESQL sentence, 
the styles of its SOL JOIN should be also considered when 
comparing the input and output data sizes. For example, an 
SESQL sentence like "select intersection (cities.d, rivers.d) 
from cities, rivers" will return a table with many rows. 
In terms of distribution of input data, two possible cases exist: 
1) all the needed input data are available on the server side; 2) 
the needed input data are located on both browser and server 
sides. Figures 2 and 3 show the decision trees for them. 
Only one layer 
involved 
Y: N. 
ontaining 
“intersection ’/ 
‘union ’/ ‘difference’ 
  
  
  
         
Executing on: 
Server side 
    
Figure 2. Decision tree for the case when all the needed input 
data are available on the server side 
Only one layer 
involved 
Y N. 
   
  
Contaming 
‘intersection’/ 
‘union /‘difference’ 
   
Executing on: 
Server side 
  
Figure 3. Decision tree for the case when the needed input data 
are located on both browser and server sides 
  
	        
Waiting...

Note to user

Dear user,

In response to current developments in the web technology used by the Goobi viewer, the software no longer supports your browser.

Please use one of the following browsers to display this page correctly.

Thank you.