FDO PostGIS turning point

More than a week ago, after longer discussion in the FDO PostGIS team (Paul Ramsey, Jason Birch and I) we decided about a turning point in the development of PostGIS provider for FDO. The most important part of our decision is about dropping the Generic RDBMS framework as an intermediate API for the provider and implementing FDO core interface directly.

What is the Generic RDBMS framework:

The Generic RDBMS project provides FDO with access to RDBMS systems through a generic framework that allows code reuse and reduces the development time for creating new FDO providers.

I’ve been working with the Generic RDBMS and learning its internals straight from the code long weeks. It wasn’t easy due to fact it feels big and also because it’s not friendly documented for users yet. Nevertheless, I can say I’ve became familiar with internals of Generic RDBMS quite well.

Recently, I’ve started to experience some difficulties and limitations of the Generic RDBMS layer. I faced all these problems while adding support of another DBMS engine – PostgreSQL – to the Generic RDBMS layer and it’s internal components like RDBI and GDBI (the PostgreSQL is not yet supported by Generic RDBMS, so it was obvious for me I need to implement it in order to develop PostGIS provider).

Follow this link to read the turning point announcement posted by Paul on the fdo-internals mailing list, in which you can find more details about the rationale of our decision.

As a conclusion of my experiences from using Generic RDBMS, here is my personal summary of reasons why it’s important to analyse this framework in details before making a final choice (random order):

  • Every DBMS engine is specific and it’s worth to consider specific solution.
  • It’s not possible to develop a database abstraction layer for every kind of application.
  • The Generic RDBMS makes some decisions first and they should be analysed before attempting to implement new provider to find if these decisions won’t become limitations.
  • The Generic RDBMS forces a provider to require existence of FDO Meta Schema – a set of predefined tables
  • Workarounds for decisions made by Generic RDBMS are mostly based on bringing and extending new level(s) of abstraction.
  • The former point leads to increase of complexity of the solution.
  • The FDO is complex and feels big. The Generic RDBMS framework increases this complexity.
  • It’s probably easier to achieve optimal performance with very specific solution, so the Generic RDBMS might cause another limitations in this area.
  • IMHO, there are too many abstraction levels in the Generic RDBMS itself (RDBI, DBI, GDBI, …)
  • Creating new FDO provider by directly implementing FDO core interfaces is: easier to develop, easier to test and debug, maintainer friendly and it may be more robust.

I can confirm it’s easier because I’ve been developing on new generation of PostGIS provider for more than a week. I suppose thin implementation of FDO core interfaces will be faster because of use of as little abstraction levels as possible.

I’m not against of the idea of abstraction layers for DBMS and I’m not against the idea of the Generic RDBMS framework for FDO. Better, I like the concept. I’m a member of development team of SOCI library – a database access library for C++. It’s a simple abstraction providing common layer for SQL queries execution and fetching query results. I’d call SOCI as a pretty simple example of common denominator for various DBMS and even that we’ve experienced number of problems and limitations resulting from specific nature of various database engines. So, developing usable and extensible abstraction above yet more complex system is tricky for sure, but may be impossible too.

I know there are some users waiting for the PostGIS provider for FDO. I’d like to apologise all of you waiting for it for the significant delay. I’m sure our latest decision about the turning point will favourably influence the PostGIS provider development and make the release date closer.

7 Responses to “FDO PostGIS turning point”

  1. Arnaud Lesauvage says:

    Trying to get some updates about your PostGIS FDO provider, I found your blog and this piece of information about the turning point.
    I think this choice is good, but I also understand that you are on a new start here, and that this will delay the release of the fdo provider.
    I’m still eagerly waiting to try this out !
    Hope you’ll not run into too many troubles in this project !
    Good luck !

  2. mloskot says:

    Arnaud, yes indeed I re-started from scratch. Although, after ~5 weeks I’m very close to finish it, it will be usable and testable in a week or close.

    Thanks for your interest.

  3. Demetrius Dallalana (Brasil) says:

    Sorry my poor English, but I want wish a better luck for you in this project !!!

    I’m waiting for this solution more than year!!!

    Best Regards!!

  4. mloskot says:

    Demetrius,
    I perfectly understand you.
    The first version of provider is ready for testing and you can find it in Providers/PostGIS directory of the official SVN repository of FDO.
    You can build it with Visual Studio 2005.
    Feel free to send any questions to the fdo-users list or to me directly.

  5. Demetrius Dallalana (Brasil) says:

    Hi Mateusz,

    I´m embarrassed to ask this, but is possible built a version for Windows XP for me, because i don´t have programmer skills, only HTML and JavaScript (+/-).

    I´m looking for a compiled version but don´t find it. I had already downloaded PostgreSQL and PostGis, and installed a Autodesk Civil 3D 2008 with FDO Providers and a MapGuide OpenSource 1.2.

    Thanks for your attention!!

    Demetrius

  6. mloskot says:

    I put latest binaries under following location:

    http://mateusz.loskot.net/tmp/fdopostgis/

    The package name format is fdopostgis-rXXX.zip where XXX is SVN revision number. Just download file with latest revision number and try.

    If you will have any problems, don’t hesitate to ask.

    I’m going to prepare some update near the end of this week.

  7. Demetrius Dallalana (Brasil) says:

    Thank’s a lot!!! I will try!!

Leave a Reply