Developers Informations
Deegree consists of more than the source files and libraries,
which are necessary to compile them. Substantial constituent of
deegree is a set protocols and control files, which enables the development of
highly interoperable and flexible applications. The control files formatted as XML documents belong to the
available implementation, which permit the (dynamic) description of the behavior of a deegree
based application.
An overview over the current deegree architecture you can get here: [download].
This is not complete but it includes the main design aspects and process flows in deegree.
Style (SLD) editor / deegree web application client framework
deegree started as a java framework mainly focused on implementation
of OGC Web Service (OWS). Druing the growing of the framework requirements for a formalized framework for
web client and application development using deegree has been formulated. So in
the last release we included a concept and a first module of a web application framework within
deegree. The first module that has been published is a basic web map client.
Related to the projects we and others are realizing with deegree there will be
other modules in near future (Catalog Client, enhanced map client, user managment ...). One of the modules
mostly asked for is an editor for map styles (SLD) to realize a more flexible web mapping with some
options known from desktop GIS applications.
The basic implementation concept using the deegree web application framework behind such an editor is shown
in the pdf-document you can download here: [download]
WFS improvement
We will have some improvments on the deegree WFS. This mainly targets the offered options for accessing
data sources and the way it shall be configured. So we like to simplify the editing of the wfs capabilities file similar
to the WMS capabilities. This means most parameters can be left out; they will be set by default values.
The most work have to be done at the data source access configuration itself. Because this will affect a central
part of deegree that shouldn't be affected by larger changes in the future we like to discuss our ideas about that on the mailing list.
For this I have attached a document describing our ideas for the data source access configuration incl. an example xml-file.
please feel free to send any comment that will help us to imporve the WFS in a way that it matches yours and our requirements.
The basic aim - besides getting data - of the configuration of accessing datasource in
deegree is to offer a flexible set of options and mechanisms to establish a facade that hides
the concrete details of each datasource behind a set of unique interfaces. These options are
shall be controlled by a set of configuration parameters in a datasource's configuration file.
We suggest five major sections of configuration parameters:
- definition of the datasource connection: This means connection parameter for
database based sources or a URL for a file based datasource. This section also
includes the definition of additional security parameters like a list of IP-addresses of
hosts that are allowed to access a datasource. The datasource connection definition
section must be mandatory.
- Output formatting: This section contains infomation about which output formats will
be served by a datasource and what classes are responsible for creating this formats.
The last section allowes it to developers to define new output formats by linking new
classes into the output creating process without changing the basic deegree code.
This output formatting section should be optional. If it is not defined, GML2 and
FEATURECOLLECTION will be set as default formats with default responsible
classes depending on the data source type.
- Input formatting: This is vice versa to output formatting and will be used for
transactional behaviour of a datasource. The idea is that a datasource may accept
several formats for inserting, deleting and updating. The incoming data will be
transformed to the datasource's internal format. This section also shall be optional. If
it isn't defined GML2 and FEATURECOLLECTION will be set as default formats with
default responsible classes depending on the data source type.
- Topology definition: In many cases datasources are made of more then one flat
table. In these cases tables are usually connected in a Entity-Relationship-Model
using Primary- and Foreign-Keys. The current version of the deegree WFS more or
less assumes a hierarchical relationship between tables starting at a master table
(root) so the relationship can be modelled as a tree. Practice has shown that this
assumption isn't generic enough in several cases and we had to create some
workarounds to access highly complex database schemas with the deegree WFS.
Because of this we thought about a more general starting point for modeling table
relations within the deegree WFS. For this we thought that the tables building a
featuretype are forming a kind of topology that can be described by a directed graph.
Each node in this graph is assigned with a table and each edge is realized by
assigned keys of two tables.
Since a feature type in its basic concept is a hierachical datastructure that must map
none hierarchical datastructures to a hierarchical one we must define one starting
point (table) in the graph. This starting point shall be called master table. But this
doesn't mean that the master table can't be source as well as target of one or more
relations. This enables the definition of recurrences within a featuretype. In this case
the provider of the datasource must ensure that the data content doesn't lead to a
infinite regress ( A -> B -> C -> A -> B …).
- table definition / field mapping: the last section covers the definition of the tables
needed for the feature type and the mapping of the tables fields to the feature types
properties. The major idea behind this section is that we often need to combine data
into a feature type where the original data schema doesn't fit the required feature type
schema. So we have to change the data source field names to the required property
names and may change the datastructure and the data types too. Also we like to offer
the possibility to use functions on the values of the table fields as they may be
defined in the underlying database. The definition of alias names for database fields
should offer the opportunity to use one database field for more then one feature
property (this sounds not very useful because it leads to redundant data storing in a
feature, but we had more then one case where it was necessary). The complete
mapping section is optional so you are free to use the datastructure and field names
as they are.
Also it might be necessary to create one feature type from tables coming from more
then one datasource; e.g. we have a shapefile storing the geometries and several
tables in a postgresql database storing their attributes. Because of this we shall be
able to reference tables from different datasources.
Concluding the aim of this section we can say that we like to offere a very general
way to create views on given data sources/-structures without manipulating the data
source itself.
get current status of WFS UML class diagramm [~260k] (27.10.2003)
get a example datastore configuration file representing the current status (27.10.2003)
|