Open Data Services applications and SQL Servers support the same data stream protocol, a format for sending commands and receiving structured result data over a network, called the Tabular Data Stream (TDS) protocol. SQL Server client libraries use this protocol for communicating and exchanging data with Open Data Services applications and SQL Servers over a network, so that for the client application, Open Data Services applications look like SQL Servers on the network.
Open Data Services gateways, however, generally do not support the exact same features as SQL Server. This means that the standard SQL Server ODBC driver does not work transparently against most Open Data Services gateways, since it expects all SQL Server features to be supported.
The Open Data Services ODBC driver is a three-tier version of the SQL Server ODBC driver, designed to connect to a back-end data source via an intermediate Open Data Services gateway. It is also designed to adapt to the features of the back-end data source.
The goal of the Open Data Services ODBC driver is to expose as much of the character of the back-end data source to the ODBC client application as possible. For example, if the back-end data source supports the DECIMAL datatype, the Open Data Services ODBC driver at the client computer performs the role of enabling the ODBC client application to use this datatype. The Open Data Services ODBC driver does not attempt to make the gateway look like SQL Server to the client, because that would result in a "lowest-common denominator" approach.
Customizing the Open Data Services ODBC driver offers an alternative to building a two-tier ODBC driver that connects directly to the back-end data source. A three-tier approach that uses an Open Data Services gateway application in the middle includes these advantages:
The following diagram shows the architecture of the Open Data Services ODBC driver:
Even though the Open Data Services ODBC driver and the SQL Server ODBC driver have the same basic architecture, the Open Data Services ODBC driver must be able to act as a "chameleon." An ODBC client application expects the Open Data Services ODBC driver to report datatypes and capabilities that are available from the back-end data source, not from SQL Server. To support communication between an ODBC client and a back-end data source, the gateway developer adapts the Open Data Services gateway at the server and customizes the Open Data Services ODBC driver for the client.