The Simba Engine X Software Development Kit (SDK) is a collection of database access tools packaged in a flexible, reusable set of components. These components are used to create custom database drivers for any data store, even if the data store is not SQL-capable. Drivers can be built to access both local and remote data stores.
This guide introduces the components of the SimbaEngine X SDK and explains how you can use them to create custom drivers for ODBC, JDBC, OLE DB and ADO.net applications.
This guide explains how to build a driver for data stores that do not support SQL. If you want to build a driver for data stores that support SQL, see Developing Drivers for SQL-capable Data Stores.
The components of the SimbaEngine X SDK implement all the required functionality of ODBC, JDBC, OLE DB, and ADO.net, as well as handling session management, state management, data conversion, and error checking. These components provide an abstraction layer to insulate your underlying driver functionality from any changes to data access standards. By basing a custom driver on the SimbaEngine X SDK, you can leverage the experience of leaders in data connectivity.
For data stores that do not support SQL, the SimbaEngine X SDK provides an SQL parser and an execution engine to translate between SQL commands and your custom datastore API.
For data stores requiring remote deployment, the SimbaEngine X SDK allows you to re-build your existing driver into a server for a client/ server deployment. This allows you to build your driver as a server that reside near data source, then deploy an ODBC or a JDBC client that handles communication with the end user's application. For more information about client-server deployment, see the SimbaClientServer User Guide at https://www.simba.com/resources/sdk/documentation/.
To write a custom driver using the SimbaEngine X SDK, you write a component called the "DSI implementation" to access your data store. You then link this component with the SimbaEngine X SDK components, which takes care of meeting the data access standards, and optionally converting SQL commands to commands that your data store can understand. The result is a shared object: a .
jar, or .
so file, depending on your development platform. Applications, such as Tableau or Microsoft Excel, use this shared object to access your data store, even if your data store is not SQL-enabled.
Many data stores, like Big Data, object oriented, and XML data stores, do not understand SQL. To create a custom driver for these data stores, use the same components shown above, with the addition of the Simba SQLEngine:
The SimbaEngine X SDK provides a similar solution for JDBC applications.
For data stores that are not SQL-capable, your custom ODBC driver is composed of the SimbaODBC component, the SQL Engine, and your DSI implementation. The Simba SQL Engine provides the SQL processing required to support ODBC interfaces.
The Simba SQLEngine is a self-contained SQL parser and execution engine. It consumes SQL-92 queries, parses them, creates an optimized execution plan, allows your DSI implementation to take over part or all of the execution, and then executes the plan against the DSI implementation.
Once you have created a DSI implementation and built a custom driver, either for a SQL-enabled or non-SQL-enabled data store, you can rebuild your DSI implementation into a client/server solution. You can do this without making any changes to the code - simply link your DSI implementation to the Simba Server to provide remote data access:
The following sections describe the components shown in the above diagram.
The Simba Client/Server protocol is a network protocol that works on any network to provide remote access to a DSI implementation. Simba Server translates the Simba Client/Server protocol to the DSI API.
The ODBC and JDBC clients are shared objects provided by Simba. These clients use the Simba Client/Server protocol to handle communication between the application and Simba Server.