GEOLIB :a software component for making GIS tools interoperable

Donatas KVEDARAUSKAS, Patrice BOURSIER
Laboratoire d'Informatique et d'Imagerie Industrielle (L3I) Universite de La Rochelle
Avenue de Marillac
17042 La Rochelle - FRANCE
Tel: +33 (0)5 46 45 87 28
Fax: +33 (0)5 46 45 82 42
dkvedar@lri.fr, patrice@lri.fr

Xavier CULOS, Thierry DELTHEIL, and Sylvie IRIS
SILOGIC
Toulouse, France
xculos@silogic.fr, tdeltheil@silogic.fr, sylvie@silogic.fr

Introduction

The aim of the GEOLIB project was to develop a library of geographic functionalities, portable and interoperable with application development environments, database management systems, multimedia/hypermedia "authoring systems" as well as external GIS, and also usable in an Internet/Intranet environment.
 
This software component gives the possibility to integrate more easily the spatial dimension within existing interactive multimedia applications, as well as office or management applications. They allow to manipulate maps, itineraries, but also to address spatial queries to existing spatial databases, without having to know how to use GIS tools.
 
GEOLIB has been developed in the framework of a contract funded by the french agency for technology transfer between research and industry1. It has been developed in collaboration with the Computer Science Research Laboratory at the University of Paris-Sud (LRI).

Functionalities
 
A first release of the GEOLIB component has been launched in September 1997, which contains the following set of functionalities :

 Data acquisition and handling

Exploitation and querying Display and visualization Geographic data processing Architecture

GEOLIB is made of several modules, in order to be easily portable and interfacable with other software tools, and usable in a client-server (Internet/Intranet) environment :

Query processing

 Three different scenarii have been identified and considered for query processing :

1. Query processed on the client

 The simplest way of processing a query is the local mode :

  1. following a user interaction, the Visualization module on the client creates a query object that is sent to the Dispatcher module,
  2. the Dispatcher module analyses the query and concludes that it can be processed locally. Consequently, the query is sent to the Core module on the client,
  3. the Core module takes charge of the query processing,
  4. once the query has been processed locally by the Core module, the answer is sent to the Visualization module for being displayed.
2. Query processed on the server

The processing of a query may require access to the GEOLIB server. The execution scenario is then the following :

  1. the Visualization module translates a user interaction into a query object, and sends it to the Dispatcher module,
  2. the Dispatcher module on the client analyses the query and concludes it must be sent to the server for further proocessing, either because all required data are not present on the client, or because functions required to process the query are not available on the client. Consequently, it initiates a communication between the client and the server, and the query is sent to the server for being processed,
  3. the GEOLIB server receives the query and restructures it, before sending it to the Dispatcher module on the server,
  4. the Dispatcher module analyses the query and decides which processing module must be called, either the Core module is the query is simple enough, or the Extension module if a more specific function is required.
  5. once the answer is elaborated, the GEOLIB server sends it back to the client,
  6. the Dispatcher module on the client receives the answer and reformats it before it is displayed,
  7. the Visualization module can display the result to the user.
3. Query addressed to an external GIS

When the query concerns external data (not already available, neither on the client, nor on the server), query processing is a little more complex :

  1. the Visualization module translates a user interaction into a query object, and sends it to the Dispatcher module on the client,
  2. the Dispatcher module on the client analyses the query and concludes it must be sent to the server for further proocessing, either because all required data are not present on the client, or because functions required to process the query are not available on the client. Consequently, it initiates a communication between the client and the server, and the query is sent to the server for being processed,
  3. the GEOLIB server receives the query and restructures it, before sending it to the Dispatcher module on the server,
  4. the Dispatcher module notices that the query corresponds to a script that concerns an external GIS. The execution of this script is then activated,
  5. a communication process is established between the GEOLIB server and the external GIS. Data are being formatted and exchanged,
  6. once this operation is terminated, the GEOLIB server sends the answer back to the client,
  7. the Dispatcher module on the client builds the result and can display it to the user.
The GEOLIB software component has already been used for different kinds of application, either in a standalone mode, or in a client-server environment. It already supports ARC/INFO shapefiles and MAPINFO MIF/MID formats. It is currently being extended in order to support other GIS formats. New functionalities are also being added, in order to be able to deal with more complex applications.

1 ANVAR : Agence Nationale de Valorisation de la Recherche.