[mapserver-dev] Expanding the MapServer Project

Daniel Morissette dmorissette at mapgears.com
Fri Mar 25 09:47:47 EDT 2011

On 11-03-25 09:06 AM, Jeff McKenna wrote:
> Before we move forward with this I'd like to hear the comments from all
> of the PSC regarding TinyOWS and its database support (as far as I know
> it still only supports PostGIS connections). Is there a plan for TinyOWS
> to leverage OGR to connect to supported databases? For example, the ZOO
> project uses OGR to connect to any OGR-supported database for MapServer
> WFS-T connections (if you don't believe me, check it out yourself:
> http://zoo-project.org/site/ZooWebSite/Demo/WFS-T)
> If MapServer adopts TinyOWS, am I correct to assume that OGR would be
> leveraged for WFS-T connections?

(Sorry for the long response, I wanted to give more than just a yes/no 
answer to explain my reasoning)

You're right that ZOO implements WFS-T support via OGR, and I was quite 
happy to see this last fall. At the time the WFS-T stuff was wrapped in 
a WPS request (dunno if that changed yet), so it was not really native 
WFS, and for anyone to adopt and use it in real life that would be an 
important requirement in my opinion. I discussed this with the ZOO guys 
last fall and they confirmed that it would be possible (and relatively 
easy) to make a native WFS-T interface so this is not a blocker in my 
opinion. Another point for ZOO is that it reads its layer config info 
from mapfiles directly via libmapserver.so (mapfile support was also 
added to TinyOWS at the sprint last week using a custom parser).

You are also right that TinyOWS supports only PostGIS, and actually it 
is very tightly integrated with it, so OGR support in TinyOWS would not 
be trivial.

My opinion however is that being tightly connected to the DB is one of 
TinyOWS' strengths and not a weakness. The WFS-T spec is better suited 
for DB engines such as PostgreSQL, Oracle, etc. that support stuff like 
concurrent transactions, locking, etc and are optimized to support that. 
  OTOH, most of the OGR formats are read-only/write-only and do not even 
support random update... and unless the format is a DBMS under the hood 
then locking and concurrent update requests are not supported and would 
result in data corruption. Yes, one could add locks around the OGR calls 
in the WFS-T implementation for flat-file formats (for the few that 
support random update), but as traffic increases to more than a single 
user those locks would quickly become a bottleneck.

Unfortunately this means that WFS-T on top of OGR does not give you 
support for all OGR formats (which would have been the main value that I 
think you're looking for), it would work well only for DB engines such 
as PostGIS, Oracle, a 2-3 others that are well suited for transactions.

So to answer your question about whether TinyOWS would eventually get 
OGR support if it joined MapServer: I don't personally see this as a 
short term plan for the reasons above. Without having looked into all 
the details, I was more thinking that we should implement native DB 
drivers directly in TinyOWS for Oracle and a few others that would be 
optimized to get the most out of each DB's features in a transactional 
context. It might turn out that OGR could offer that eventually (I 
didn't check recently, Frank would be best to comment on that), but I 
don't think generic OGR support is the next logical step of TinyOWS. (Of 
course I'd love to be proven wrong since I love OGR and the concept of a 
generic interface to avoid code duplication)

I hope that information helps...

Daniel Morissette
Provider of Professional MapServer Support since 2000

More information about the mapserver-dev mailing list