Polyhedra for SCADA

SCADA is an acronym standing for Systems Control and Data Acquisition. To quote from Wikipedia,

It is a type of industrial control system (ICS). Industrial control systems are computer-based systems that monitor and control industrial processes that exist in the physical world. SCADA systems historically distinguish themselves from other ICS systems by being large-scale processes that can include multiple sites, and large distances.

Polyhedra is used in the control room, acting as the central data repository: client applications feed in readings from sensors, while other clients drive mimic diagrams, displaying the current status of part of the system. Thus, if the SCADA system is monitoring a water distribution network, the sensors can show the water levels in rivers and reservoirs, the rate of flow of water through pipes, the status of pumps, water quality meters and so on. the operators will be able to get an overall impression of the state of the network, and by clicking on icons will be able to hone in on particular areas, bring up 'trend diagrams' showing how the values from particular sensors have varied in the past, and exercise control by changing the setting for pumps, weirs, etc - such changes will result in  commands being sent to remote actuators, and the success or otherwise of such commands will be reported back via yet more sensors.

A mimic diagram driven by a Polyhedra database
a mimic diagram showing information held in a polyhedra database

To achieve all of this, the SCADA system can call on a number of Polyhedra features, in addition to performance that comes from the in-memory nature of Polyhedra:
  • the database will be used in a fault-tolerant configuration to help achieve the overall availability and reliability of the system.
  • the database schema is simplified by using table inheritance. For example, you can define a datapoint with some basic information including id, name, description and a timestamp, and derive from that both an analog and a digital table/class; the derived tables can add in extra attributes as appropriate. Basically, you use table derivation wherever you might otherwise have secondary tables whose primary keys were a foreign key to the base table, and the overall effect is more natural, more efficient when querying or updating tables (no need to use a table join), and more space-efficient inside the database. 
  • active queries will keep the mimic diagrams up to date, and inform the client applications that need to send out control signals to actuators etc. For the mimic diagrams, the active queries can be capped to ensure the updates are not sent through too frequently for the operator to read them!
  • much of the business logic can be attached to the database using triggers - converting raw values from sensors to engineering units, for example, and raising, cascading and clearing alarms as needed.
  • read-only replicas can be used to offload some of the query load, and to localise the queries when generating reports
  • the historian can capture time-series data, and allow such data to be queried for the production of trend diagrams, archived, taken off-line, and exported to other database systems for detailed analysis.

    a trend diagram, using time-stamped data stored by the historian
  • optimistic locking allows client applications to query the database and update it based on the results of the query, without any risk of blocking critical updates to the database (such as sensor readings) but without sacrificing application-level database integrity.
  • The fact that Polyhedra is relational and uses SQL is important to this market, as it means that industry-standard APIs such as ODBC and JDBC can be used when writing client applications (avoiding the need for specialist knowledge of proprietary APIs). In addition, it is possible to alter the database schema dynamically, and thus perform software upgrades without  interrupting the system.
  • Polyhedra supports the use of SSL for communications, so it is possible to restrict connections from external systems to those with the appropriate certificates and to ensure all traffic to and from them is encrypted, whilst also allowing local traffic to use a more lightweight, unencrypted protocol for best performance.
It is not surprising that Polyhedra has so many features that fit well in control-room applications, as this was the original target market and over the years many improvements were done with input from customers in this field!