Subject Re: [IB-Architect] Architecture of interclient
Author Jim Starkey
At 10:55 AM 2/20/01 -0500, you wrote:
>So I am wondering if Jim could present a few hints or comments as to a
>desirable architecture for a JDBC driver. Does it involve his ODBC driver?
>If so, is it, realistically speaking, likely to become open source in the
>forseeable future?

I have been an advocate of a C++ API based on JDBC object structure
and semantics, initially layered on the Firebird API. The API
would be useable directly, as an underlaying API for a generic
ODBC driver, and the basis for a very thin Java JDBC driver
(essentially a JNI bridge between the skeletal Java classes
and the C++ API).

There are two other open source projects following the same
strategy, but slightly different instantiations. The primary
differences are string handling and object lifetimes (the
more popular of the two has significant architectural problems
on Windows and MSVC++).

The IBPhoenix ODBC driver is, in fact, an implementation of
that architecture. This isn't the forum to discuss the business
issues, but the code does exist. The Java JDBC layer underway,
but releasing it open source is for time being problematic.

The advantage of this architecture is that an intermediate
process is not required, providing a higher level of performance
and security.

>One thing in particular that I am wondering about is if the interserver
>part has any reason for existence. Why not write a JDBC driver in java
>that talks directly to Firebird core? I think this would involve
>translating the C client into java. I haven't however figured out just
>which files this c client consists of.

There are two issues, quite separate. One is Java/JNI plumbing.
The other is mapping JDBC semantics into Firebird semantics. While
not earth shattering, it is a significant piece of work.

Jim Starkey