[Mapserver-dev] About extending mapserver...

Attila Csipa plists at prometheus.org.yu
Wed Aug 27 04:41:01 EDT 2003


>Could you put together a more detailed description of what
>you're working on, it's benefits and so on and send it to the developer
>list?

I have a question concerning an extension to mapserver. My current project 
involves creating a versatile java database extender (called JADE), which can 
wrap just about any function or translation between an application and a sql 
database. As I mentioned above, this project is in java, however that does 
not mean it cannot be linked to other non-java applications (such as 
mapserver). How does this work ? Mapservers sees JADE as just another opengis 
implementing database and passes the appropriate sql queries. JADE then 
analyzes the query and sees what can be done by the underlying database 
natively. What cannot be done that way is done inside JADE itself, some by 
simply rewriting queryes and some by returning column data and applying the 
appropriate operations. This of of course incurs a variable amount of 
performance penalty depending on the cost of the operation and amount of data 
moved around. These are the two basic downsides - a performance penalty 
(which very much depends of the complexity of the query itself) and that, 
since it is in java, it requires a (fairly recent) java runtime environment 
(JRE) or SDK. The whole point of this is to make the sql extendend functions 
and data types totally transparent to the application and/or the user while 
allowing the use of full potential of the used RDMS (specific functions, 
variables, types, syntax, etc). This extender would allow the use of 
virtually any even remotely sql compatible database if it has JDBC drivers 
(that's 99% of all database engines and vendors, see 
http://servlet.java.sun.com/products/jdbc/drivers and 
http://java.sun.com/products/jdbc/industry.html), without any additional 
modules (apart from JADE itself). So if you have a JDBC driver, and it can 
take a select/insert/update statement, chances are it can be used. Another 
nice thing is that the extended functions are pluggable, so adding new 
functions, or even changing the underlying database engine does not require 
the recompile of nor MapServer nor JADE. This would of course make my mysql 
non-spatial wrapper obsolete since it does what mygis did + allows the usage 
of opengis functions in the queries, etc. The question is how do you feel 
about adding java code to mapserver (this would of course be a non-default 
--with-jade option) ? 

Regards,
Attila

PS. A list of engines that could be (well, at least to a certain level of 
functionality) used through JADE:

4th Dimension (4D RDBMS), ADABAS, ALLBASE SQL, Advantage Database Server, 
BASIS, Birdstep RDM Server, CA-IDMS, CISAM, Cache, Centura SQLBase, Clipper, 
Cloudscape, CodeBase, D3, DABroker, DB2, DBMaker, DL/I, DMSII, DaffodilDB, 
DataFlex/PowerFlex, Datacom, Domino, ECB, EDA, Empress RDBMS, Enscribe, 
Essentia, FireBirdSQL , FormWeb, FoxBase, FoxPro, FrontBase, HSQLDB, 
Hypersonic SQL, IBM AS/400, IDMS, IMS, Image/Turboimage, ImageSQL, Informix, 
Ingres, InstantDB, InterBase, JDBC, JDataStore, LDAP, MS Access, MS SQL 
Server, Mimer SQL, MySQL, News Server, Nonstop SQL/MP, ODBC, OS/390 
Sequential Files, OleDB-Provider, OpenBase, OpenIngres, Oracle, PICK, 
Paradox, Pervasive.SQL, PointBase, PostgreSQL, Primebase SQL Database Server, 
Progress, Quadcap, RDB, RMS, Recital, Redbrick Warehouse, SAP DB, SAS, 
SESAM/SQL-Server, SOLID Embedded Engine, SOLID SynchroNet, SQL/DS, SUPRA 
Server SQL, SearchServer, Sequential, Solid Server, Sybase, Teradata RDBMS, 
Text (CSV, Tab separated etc.), ThinkSQL, TinySQL, TurboIMAGE, UNIFY, VFP, 
VSAM, XML, YARD-SQL, dBase, kdb, mSQL, xbase, xbase Primebase SQL Database 
Server




More information about the mapserver-dev mailing list