Transparent access to distributed Geographic Information Systems
Servlets and Associated Components
The applet uses Xmarc servlets designed to access Oracle spatial metadata and specific
data formats. The ESM servlet, for accessing metadata, was installed on the DIMOND
server, while the various data translator servlets were installed on the remote server
machines from which the data will be accessed.
Enterprise Spatial Manager
Xmarc’s Enterprise Spatial Manager (ESM) GUI allows configuration of Oracle Spatial
data as metadata stored in an Oracle schema. The applet accessed this metadata via a
FireRender servlet instantiated on the DIMOND server. The metadata tells the applet
how to communicate with each of the data translators, and contains information on such
connection properties as data layers, display scales, and symbology. ESM can also store
detailed metadata about any data managed in an Oracle Spatial database, whether in the
same database as ESM or a remote database at a data provider’s site.
Once the metadata is read, spatial data are loaded into the applet via a FireStation servlet
designed to read the data stored in the Oracle database. Oracle8i is used to store the data
used in ESM.
Data Translators
Data that reside across the Internet on remote servers were accessed via a proxy servlet
on the DIMOND server that redirected data requests from the applet to the appropriate
server location. Metadata about these locations were maintained in an Oracle table
attached to the ESM metadata. After the data is requested from the applet, an Xmarc FX
translator returns data to the applet as a binary stream using HTTP 1.0. The data stream
is encoded using Xmarc’s HOSE (Heterogeneous Object Stream Encoding) protocol.
The FX translators, which were installed on the remote servers, are command-driven
programs that convert non-Xmarc spatial data into Xmarc Entity Import Module (EIM)
data streams. EIM data is an Xmarc interchange format describing graphic entities with
or without nongraphic metadata. All FX translators share a common command set and a
variety of deployment options. An FX translator is a program written using C/C++ to
access data management tool APIs. These translators adhere to a standard methodology
that rationalizes Xmarc’s vector translators. The result is that an applet can interact with
any Xmarc translator in a consistent manner, without knowing any details of the
implementation.
The FX translator servlets supplied by Xmarc were installed on the remote servers as
multiple-client services to serve the data to the applet. The servlets are one of three
types—1) file-based, where data is centralized in self-contained data files (i.e.,
AutoCAD, Intergraph, Shape, MapInfo); 2) coverage-based, where data is spread across
multiple file hierarchies (i.e., ArcInfo, VPF); or, 3) spatial database, where spatial data
and metadata are stored and managed within object-relational database management
systems (e.g., Oracle, Informix Universal Server).
Three translators were used in the proof of concept—FX8i, FXShape, and FXArc. Each
of the translators was installed and initialized as a service on the remote server machine.
Specific commands are given when initializing the service, such as service name, host
name, and port.
Data Usage
The data used by the application need not be housed in a central location or even in the
same file format. Instead, each query is processed in real time by the master copy of the
data at the custodian agency. For the proof of concept, data usage is highlighted in Table
Table 1: Data Accessed in the DIMOND Applet
| Data |
Source |
Original Format |
Stored Format |
Service |
Projection |
| City Limits |
Oregon OGDC |
Coverage/shapefile |
Coverage/shapefile |
FXArc/FXshape |
State Plane |
| County |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| County |
Oregon OGDC |
Coverage/shapefile |
Coverage/shapefile |
FXArc/FXshape |
State Plane |
| Fare Zone Boundaries |
Tri-Met |
Shapefile |
Shapefile |
FXShape |
State Plane |
| Federal Roads |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| Ferry Crossing |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| Legislative Boundaries |
Oregon OGDC |
Coverage/shapefile |
Coverage/shapefile |
FXArc/FXshape |
State Plane |
| Local Roads |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| Major Rivers |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| Major Water |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| Multnomah Co. Routes |
Multnomah County |
Coverage |
Coverage |
FXArc |
State Plane |
| Park & Ride Locations |
Tri-Met |
Shapefile |
Shapefile |
FXShape |
State Plane |
| Parks |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| Populated Places |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| Primary Roads |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| Railroad |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| Rivers |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| RLIS Streets |
Multnomah County |
Shapefile |
Shapefile |
FXShape |
Geographic |
| RLIS Streets |
Multnomah County |
Shapefile |
Oracle 8i |
FX8i |
Geographic |
| Secondary Roads |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| State Roads |
Oregon DAS |
Shapefile |
Oracle 8i |
ESM |
Geographic |
| Stops |
Tri-Met |
Shapefile |
Shapefile |
FXShape |
State Plane |
| Street Car Line |
Tri-Met |
Shapefile |
Shapefile |
FXShape |
State Plane |
| Tri-Met ADA Boundary |
Tri-Met |
Shapefile |
Shapefile |
FXShape |
State Plane |
| Tri-Met Service Routes |
Tri-Met |
Shapefile |
Shapefile |
FXShape |
State Plane |
| Tri-Met Serv. Boundary |
Tri-Met |
Shapefile |
Shapefile |
FXShape |
State Plane |
| Urban Boundaries |
Oregon OGDC |
Coverage/shapefile |
Coverage/shapefile |
FXArc/FXshape |
State Plane |
Benefits of Implementation
Several significant benefits exist in the technical implementation of the Xmarc
technologies for the DIMOND proof of concept. The more important ones are discussed
here.