Polyhedra DBI

The Polyhedra foreign database interface, or DBI for short, is a special Polyhedra server that does not store in RAM (as does the Polyhedra IMDB products) or in a file (which is what Polyhedra FlashLite does). Instead, the information is held in a 'foreign' database, which the DBI accesses via the ODBC driver provided for use with the foreign DBMS.

The disadvantages of this approach are obvious. They include performance, as Polyhedra has to rely on 3rd-party software to store, retrieve and update the data on its behalf. It also imposes a limit on the data types that can be supported, as they have to be supported both by Polyhedra and the foreign DBMS. However, there are various advantages, of which the main one is that it allows a Polyhedra-based application to access and update data that (for whatever reason) has to be held outside Polyhedra, and thus become part of a larger system. here are just two out of many instances where the Polyhedra DBI can be of service:
  • an application needs to access data held in, say, Oracle, SQL server or MySQL, but the database is running on a server machine and the application is running on an embedded system that is not supported by that database vendor. The application might be part of a data acquisition system, for example, and it needs both to get configuration from the main database and also to update the main database with information it has captured. The application would use the Polyhedra client libraries to connect to the Polyhedra DBI, which would in tern act as a client to the main database system and pass on requests and updates on behalf of the embedded device.

  • A control system that is primarily based around Polyhedra needs to store information about machine status and production volumes in a corporate database, to allow management reports to be generated. Rather than copy this information into a text file and then have an external script that picks up the file and pumps the contents into the main database, it can be simpler to have a Polyhedra client that does this update via the DBI.

The DBI is only available on x86 platforms running Windows or Linux, and has no support for the historian or trigger code - but it emulates active queries on behalf of the client applications.