OpenSplice DDS's performance, scalability, QoS, and rich technology integration ecosystem, make it the best middleware platform to address the challenges posed by next-generation SCADA (Supervisory Control and Data Acquisition) applications.
SCADA Customer Requirements
One example customer, one of the world leaders in SCADA systems, was struggling with long development cycles, complex and error-prone integration, and the lack of extensibility of its current distributed SCADA systems. The complexity stemming from the stringent quality-of-service (QoS) requirements characteristic of modern SCADA systems was not appropriately shielded by the proprietary middleware platform they were using. As a result, their application layer had to address highly sophisticated requirements, thereby compromising the extensibility and reusability of their overall solution.
To address the problems induced by their proprietary solution, our customer was looking for a cost-effective, high-performance, highly available, scalable and QoS-enabled middleware platform that could effectively support their next-generation distributed SCADA systems. Moreover, to ease the integration between the control field and the monitoring infrastructure they were looking to use an SQL-compliant DBMS as an integration technology.
Our customer’s SCADA system acts as a data concentrator from multiple devices in the field and provides data to remote client HMIs (human machine interfaces). Standards-based middleware was needed to make sensor data transmitted via legacy industrial protocols accessible to their business-level applications via different means, including:
- an SQL interface to domain-specific logic in certain data-centric applications,
- publish/subscribe over TCP/IP, UDP/IP, and
- SOAP for integration.
Their system infrastructure also had to support access to data to perform calculations, dispatch data to field devices, and submit it to an external "offline" data archiver with higher storage capacity. Moreover, the field devices needed to listen for dynamic configuration changes "on-the-fly".
Finally, the customer had a requirement that the middleware technology used for their next-generation systems be mature and standard-based.
In general, the architecture of their SCADA system was extremely dynamic in nature, e.g., subsystems and applications enter and leave the network frequently. A typical system is distributed across multiple nodes–some across a WAN–consisting of at least 50 hosts requiring access to the data, robust data sorting and querying algorithms on high-speed incoming data, data transfer rate of typically hundreds of megabytes, and with a need to store data in multiple locations throughout the distributed system. Their system also needed to provide data logging and archiving with variable degrees of history specified.
Addressing the Challenges
OpenSplice DDS was the ideal architecture choice for this SCADA system since it provided everything that the customer required, as described below.
Standards-based QoS-enabled Middleware
OpenSplice DDS is the only Data Distribution Service (DDS) product that is fully compliant with the OMG's DDS specification and implements all of the DDS profiles.
Our customer found the following standard DDS profiles particularly important to meet the needs of their requirements:
- Content-filtered topics: Allowed their subscribers to select only the information 'of interest'.
- Query-conditions: Allowed for multiple and parallel queries on subscribed data to react with different priority on availability of specific contents.
- OpenSplice DDS supports both TRANSIENT and PERSISTENT data
- TRANSIENT data was kept outside the scope of the local publishers to be available for late joining applications.
- PERSISTENT data was kept on non-volatile storage (hard-disks) to be available even after system down-time.
- OpenSplice DDS supports several QoS which provide control over data timeliness:
- DEADLINE QoS, allows control of the deadline with which a periodic sample is produced.
- TRANSPORT_PRIORITY QoS, allows association of a priority to every sample, thus ensuring that more important data always pre-empt less important data.
- LATENCY_BUDGET QoS allows specification of the middleware the maximum latency that a specific sample can experience end-to-end.
Regarding integration of a real-time RDBMS, OpenSplice DDS offered our customer a number of different solutions to this issue.
The most effective solution involved transparent integration between OpenSplice DDS and any ODBC 3.0-compliant DBMS, as well as on memory DBMS. This allowed our customer to integrate without any programming effort, legacy applications which relied on the DBMS with application relying on OpenSplice DDS. Thanks to this integration layer, topics are transparently mapped to DBMS tables, and automatically updated.
OpenSplice DDS ‘durability-service’ is a pluggable service that (1) can be configured to reside on multiple nodes (to provide fault-tolerant persistence) and (2) automatically stores PERSISTENT topics as files on hard-disks.
Multiple node durability-services keep each other aligned, thus ensuring distributed and fault-tolerant availability of this information. Upon systemstartup, the durability-services will decide amongst themselves who will be responsible for ‘injecting’ this ‘historical data’ back into the system. For fault-tolerant availability of non-volatile data (typically system-settings), this was the best approach to meet the needs of our customer’s SCADA system.
OpenSplice DDS is designed to perform optimally in deployments ranging from single board embedded systems to large-scale enterprise systems. It’s plug-in based architecture allows to pick and choose the set of functionality needed, thus ensuring that the footprint is minimized and never suffers from unused features.
For instance, if no durability-service is needed on an embedded node this capability need not to be installed. OpenSplice DDS is capable of very low and extremely deterministic latencies. In typical settings, the delivery delay for sensor data is ~100 microseconds and the jitter is <2 microseconds. This level of performance was well within customer requirements.
OpenSplice DDS achieves efficiency, scalability, and determinism via a shared-memory architecture that (1) fosters efficient information sharing and communication between applications running on the same host, and (2) enables node-to-node (as opposed to application-to-application) communication and discovery, thereby achieving fine-grained control over networking resources, scalability and discovery, and communication performances. These architectural features were a key aspect of OpenSplice DDS that enabled it to assure the scalability, efficiency, and control over resources required by the customer.
OpenSplice DDS is completely compliant with the OMG-DDS standard, which specifies a subset of SQL92 for content-filtering and queries. This specification adroitly balances functionality and realtime behavior, allowing fine-grained tradeoffs and control by our customer.
OpenSplice DDS utilizes the de facto standard SOAP protocol to remotely connect its Tuner to an OpenSplice DDS instance running on a local or remote target node. Once connected, the OpenSplice DDS Tuner was used to maintain/configure/control any node, regardless of its location.
In conclusion, our customer was able to quickly and cost-effectively design and develop a large-scale and robust SCADA system that was:
- Easily upgradeable.
- Based on a high-performance, standard-based COTS infrastructure technology that is supported by an open standards group (the OMG) and multiple vendors.
- Swiftly delivered to market because of PrismTech’s intelligent and intuitive developer tools.
- Backed by PrismTech’s world-class support, training, and consulting organization that offers multiple service packages for various customer needs.
Our experience on this project demonstrated that SCADA applications are yet another example of mission- and business-critical systems that can benefit by the robust and QoS-enabled architecture of the OpenSplice DDS middleware and its associated model-driven engineering productivity tools.