TinyOWS - A High Performance WFS-T server
supported by Forum OGC France
WFS service and therefore GML output streams are becoming widely available in quite common SDI architectures. The transactional WFS profile (WFS-T) provides ability to give a writable access on each feature stored on a given WFS server, through a standardized Web interface, in an OGC compliant way. Exchanged data volumes can easily become huge when data is retrieved, thus a high performance WFS-T service is now a real need to provide a good Quality of Service in web-based GIS applications.
1) TinyOWS can be defined by two keywords: performance and standards.
A) Performance TinyOWS goals are:
- To significantly improve the performance for WFS service, compared to other commonly used Open Source WFS servers: GeoServer for example.
- Provide several output stream compression mechanisms for OGC WFS GetFeature requests, such as reducing useless decimal precision in GML coordinates, or whole output stream on the fly HTTP compression, and/or handle GeoJson export format especially useful in Web GIS application contexts.
- This kind or performance improvement is mostly focused on GetFeature request.
B) Standards respect
- TinyOWS tries hard to be as close to OGC and ISO specifications as possible, and therefore implements the latest OGC WFS specifications versions: 1.0.0, 1.1.0, and even WFS Transactional profile in stateless mode
- TinyOWS also implements the latest OGC FE specifications versions 1.0.0 and 1.1.0
- We deeply use OGC CITE Unit Tests when available to validate implementation quality and standardization compliance.
2) Architecture, implementation and contributors
We use PostGIS export functions to directly generate output stream fragments rather than retrieving WKB from database first, and then having to convert it later as a second step (common map engine architecture)
TinyOWS is memory leak free and reentrant, to be able to use it safely as a daemon or in fast-cgi architecture.
TinyOWS is technically based on a strict ANSI C implementation, and is only linked with libxml2 and libpq (PostgreSQL) as library dependencies.
TinyOWS is a bit more than only a young alpha project and is already used in a production applications like http://dev4.mapgears.com/bdga-mapfish, or http://www.mapsherpa.com.
Three OpenSource companies currently work together to improve this software, DMSolutions, MapGears and Oslandia.
They each found a real interest in having a C alternative to GeoServer, and being able to provide a full WMS / WFS-T solution with MapServer and TinyOWS.