 |
OO GIS at Ispra
Project Vision: To establish at Ispra a permanent centre of expertise
in object-oriented GIS technologies based around an in-house developed
and maintained OO-GIS research application based on a commercial OO-GIS
product. |
Components and Deployment Architecture
This document will seem incomplete unless you
have read the requirements and main
architecture document (including the
high-level use case).
-
Deployment architecture: which software runs
on which machine, how many large software packages are active, what software
is commercial, what configured and what new software is to be written.
-
Software Component Architecture: which packages
are written in which languages, how many software processes are running,
what the interfaces are between packages (DLL, Corba etc.)
Commercial OO GIS Requirement
The Project Vision aims at establishing an OO-GIS system, so this constrains
the possible component deployment architectures to those that include a
commercial OO GIS (Laser-Scan Gothic) as an important component. Nevertheless,
in order to give context to the discussion (and to illustrate why an OO
GIS is really required), some of the component architectures described
in this document only include a commercial GIS as a repository of spatial
data. Every architecture described is accompanied by lists of advantages
and disadvantages.
1. Gothic as Repository only
This option has all object-oriented functions in Paul Smits' C++ software,
Gothic used only as a smart, constraint-enforcing repository. This uses
none of the special vector/raster combined operations, segmentation or
generalisation algorithms provided in IGIS. Essentially all operations
are performed in raster form by the C++ code. Topologically-connected polygons
are only used for the initial import and final export. This highlights
that Gothic provides significant server-based GIS management functionality
that is independent of its object-oriented capabilities.
Smits' C++ raster toolkit software used for:
-
Raster segmentation algorithms.
-
Raster generalisation algorithms.
-
Class structure of 40 Class III CORINE landcover classifications.
-
Different recognition, classification and update methods for each
landcover type.
Gothic system used for:
-
Import data from CORINE (ESRI shapefiles) into single Gothic store (Gothic
Translate®)
-
Maintain all landcover data as topologically-connected polygons on all
"imports" (from CORINE using Translate)
-
Provide version-management of rasters to support on-going C++
processing by several users (Gothic Data Server).
-
Provide conversion of raster to version-controlled topologically connected
polygons on final "saves" from the C++ code.
-
Provide version-management of vector (polygon) datasets from single store
to all users (Gothic Manage®)
-
Provide C interface through PLUS option which is used (in this architecture
option) only to offer a set of functions similar to OGC Simple Grids: load
and save.
-
All data loaded into C++ from Gothic is rasters
-
Export data to CORINE (any standard format, e.g. VPF, DXF ESRI shapefiles)
from single Gothic store (Gothic Translate®)
Advantages
-
No need to duplicate class hierarchies in both
Gothic and C++ toolkit.
-
Less of Gothic system needs to be learned: easier
introduction.
-
Full speed of C++ available as soon as it is
debugged and runs.
-
Expert programmer familiar with the C++ toolkit
is available immediately on site.
-
Careful choice of PLUS functions would make porting
of system to non-Gothic OGC-conformant spatial repositories possible in
future.
-
Can use exception handling in C++ which is not
available in LULL.
Disadvantages
-
Possible future porting of system to non-Gothic
OGC-conformant spatial repositories would drop the topological constraint
and version management capabilities.
-
No update of vector data using raster images,
i.e. this option drops the most innovative part of the project.
-
No mixed raster/vector working. This is not an
explicit goal of this project's Vision Statement but it is a very
significant advantage that all published papers describing this type of
work have listed as the most important capability. If it is not
important for the specific requirement here it is likely that this
demonstration project is too narrowly focussed or that we are attempting
something we don't understand.
-
Have to re-write (duplicate) the sophisticated
buffered land classification functions supplied with IGIS.
-
Writing logic in C++ (compile, link, run) is
slower to debug than in LULL (interpreted inside Gothic)
-
Have to write new user interface to support necessary
functions
-
Programming resource offered by Laser-Scan has
low productivity because of unfamiliarity with Smits' PhD project software.
Risks
-
Schedule delay because Philip Sargent and Laser-Scan
staff find it impossible to contribute to C++ programming because of lack
of documentation and training materials for this PhD project software.
2. Gothic IGIS used for all functions
This option has all object-oriented functions in Gothic. Smits' C++
raster PhD toolkit software is not used. After the project is completely
prototyped in interpreted LULL, C++ or C may be used in order to speed
up some raster algorithms that have been explicitly identified as
speed problems in a separate (and later) optimisation phase, i.e.
C++ or C is used purely as an optimisation technique.
Gothic system is used for all functions listed in high-level
use case.
-
Import data from CORINE (ESRI shapefiles) into single Gothic store (Gothic
Translate®)
-
Maintain all landcover data as topologically-connected polygons all the
time (Gothic Data Server)
-
Provide version-management of vector (polygon) datasets from single store
to all users (Gothic Manage®)
-
Export data to CORINE (any standard format, e.g. VPF, DXF ESRI shapefiles)
from single Gothic store (Gothic Translate®)
-
Class structure of 40 Class III CORINE landcover classifications.
-
Different recognition, classification and update methods for each
landcover type.
IGIS is a Gothic Developer extension. The Integrator variant (for Win32
clients) shown in the diagram does not provide access to all the extra
facilities in IGIS which are not in Developer and is therefore not a possibility
for this project's schedule. Note: All diagrams copyright © Laser-Scan
Ltd. 1998.
Future Gothic variants in development will permit the following architectures:
All classes, methods and functions developed during this project using
IGIS run in the Gothic Object Server and will be compatible with the future
Laser-Scan deployment architectures, including the Java and Web variants.
This is because the Object Server is present in all these architectures.
Advantages
-
No need to install, configure and learn the PLUS
interface option for IGIS until prototype complete.
-
Better focus of work within a single development
environment
-
Full integration of "reflex methods" ("events")
for object-oriented code handling constraint violations: ensures better
data integrity
-
Full raster/vector working appropriate for updating
vector polygon shape using raster data
-
Simultaneous access to previous polygon classification
and current polygon classification
-
Full object-oriented GIS capability available
for all functions, no constraint to operate across the PLUS interface
-
No need to duplicate class hierarchies in both
Gothic and C++ toolkit
-
Full use of sophisticated buffered land classification
functions in IGIS
-
Full use of existing sophisticated user-interface
supplied with IGIS
-
Fits perfectly with expertise of programming
resource offered by Laser-Scan
-
Writing logic in LULL (interpreted inside Gothic)
is faster than in C++ (compile, link, run).
-
Directly useable in future Laser-Scan deployment
architectures.
Disadvantages
-
Paul Smits' has to learn Gothic before he can
become productive on the project, or he is not used as a programming resource
until prototype finished.
-
System is inherently in Gothic and cannot be
ported to another GIS (true for extensive use of any OO GIS)
-
Much of Gothic system needs to be learned.
-
Full speed of C++ available only after prototyping
finishes and optimisation phase begins.
-
No exception handling in LULL, have to use explicity
return codes.
Risks
-
Schedule delay because some essential functions
which may not be available in the existing IGIS fast library may
be very complex to write in LULL: a language not designed for
pixel manipulation.
2. Gothic IGIS and Smits' C++ Used
Equally
This option has most of the disadvantages of the previous two options,
but few of their advanatages. The total amount of work could be greater
that either of them - though a full design for all three would have to
be produced before that could be said with authority.
Gothic system is used for:
-
Import data from CORINE (ESRI shapefiles) into single Gothic store (Gothic
Translate®)
Advantages
-
Some raster/vector working appropriate for updating
vector polygon shape using raster data
Disadvantages
Risks
-
Schedule delay, nothing will work until it all
works.
Draft being edited to become:
Version 0 of this document. (Versions start at 0.)
Go to Project
Home Page
Updated 6 July 1998