GridAPPS-D Architecture


GridAPPS-D Architecture

GridAPPS-D offers a standards-based, open-source platform that enables rapid integration of advanced applications and services through a robust application programming interface (API).

The architecture of the development ecosystem is illustrated below.

GridAPPS-D%20architecture%20%281%29.png


GridAPPS-D User Roles

The GridAPPS-D platform contains several user roles with different permissions.

Currently, the permission are only implemented in the GridAPPS-D Viz. The permissions will be extended to platform authentication and API call execution in a future release.

The user roles can be associated with individual username/password logins. These are located in the GOSS core security configuration file

  • Admin

    • This role is used by internal GridAPPS-D Platform functionalities.

    • All permissions are granted, inlcuding

      • Starting, pausing, stopping, and joining simulations

      • Registering / deleting applications and services

      • Publishing and subscribing to all API communication channels

      • All Viz tools (Simulation Control, STOMP Client, Data Comparison, Data Browser, Application Viewer)

      • Managing users (future release)

      • Managing permissions of applications and services (future release)

  • Evaluator

    • This role is used by observers of application evaluation activities

    • Permissions inlcude

      • Joining existing simulations

      • STOMP Client, Data Comparison, Data Browser

  • Operator

    • This role is used by operators for application evaluation activities

    • Permissions inlcude

      • Joining existing simulations

      • STOMP Client, Data Comparison, Data Browser

  • Test Manager

    • This role is used to create simulations with TestManager events

    • Permissions inlcude

      • Starting, pausing, stopping, and joining simulations

      • All Viz tools (Simulation Control, STOMP Client, Data Comparison, Data Browser, Application Viewer)

  • Application

    • This role is used by applications to authenticate with the GridAPPS-D Platform

    • Permissions inlcude

      • Controlling parallel simulations through Simulation API

      • Publishing and subscribing to all API communication channels

  • Service

    • This role is used by services to authenticate with the GridAPPS-D Platform

    • Permissions inlcude

      • Controlling parallel simulations through Simulation API

      • Publishing and subscribing to all API communication channels


Integration with External Vendor Systems

External vendor systems are able to interface with GridAPPS-D compliant applications and services through two means.

The first is direct integration through the standards-based API and message bus. This enables products that comply with the GridAPPS-D™ platform to * reduce utility time and cost to integrate new functionality * give utilities more choice in technology providers * scale up or down for any size utility * expand market opportunities for developers and vendors

The second method is through the standards-based services, such as the DNP3 service, IEEE 2030.5 service, etc. that enable communication between GridAPPS-D compliant applications and external vendor systems through SCADA and other control center protocols.


GridAPPS-D Applications

The GridAPPS-D platform and API enable rapid development of advanced power applications that are able to operate in a real-time environment and interface with external software and systems. Multiple power applications have already been developed on the platform, including

  • Volt-Var Optimization (VVO)

  • Fault Location Isolation and Service Restoration (FLISR)

  • Distributed Energy Resource Dispatch and Management (DERMS)

  • Solar Forecasting, Load Forecasting, etc.

  • and more

Applications can be containerized in Docker for direct integration into the platform or interface through the API. Applications can be written in any programming language, but API libraries are currently available in only Python and Java.


GridAPPS-D Services

The GridAPPS-D platform can host a multitude of services for processing both real-time simulation and control center data. These services can be called by any application through the GridAPPS-D API.

Some of the available services include

  • State Estimator

  • Sensor Simulator

  • Alarm Service

  • DNP3 Protocol Service

  • IEEE 2030.5 Protocol Service


GridAPPS-D Application Programming Interface

GridAPPS-D offers a unique standards-based application programming interface (API) that will be the focus of the lessons in this set of tutorials. The API enables any application, service, or external vendor product to interface with each other, access control center data, run a real-time simulation, and issue equipment control commands.

GridAPPS-D has several APIs to serve different needs and objectives, inlcuding * Powergrid Models API – Allows apps and services to access the power system model data * Configuration File API – Allows apps to set equipment statuses and system conditions * Simulation API – Allows apps to start a real-time simulation and issue equipment commands * Timeseries API – Allows apps to pull real-time and historical data * Logging API – Allows apps to access logs and publish log messages

Additional APIs are currently under development to enable communication and control of field devices, as well as cyber-physical network co-simulation.


GOSS Message Bus

One of the unique features of GridAPPS-D is the GOSS Message Bus, which enables integration and communication between applications, services, and external software on a publish-subscribe basis.

The GridAPPS-D platform publishes SCADA and simulation data, alarms, and other real-time data. Applications subscribe to the types of messages relevant to their objectives and publish equipment commands and control settings.


GridAPPS-D Core Services

“Under the hood” of the GridAPPS-D platform are the core services and managers.

An application developer should not need a detailed understanding of the core services, as all interaction is performed through the various APIs, which will be dicussed in detail in the upcoming tutorial lessons.

The core services provide the key functionality offered by the GridAPPS-D platform, inlcuding database access, processing API calls, handling equipment commands, and running simulations.

Some of the core services included in the GridAPPS-D platform are * Platform Manager – Coordinates all of the other managers * Process Manager – Coordinates platform component interactions * Application Manager – Manages application registration, execution, and status reporting * Configuration Manager – Manages the setup and configuration of real-time simulations * Simulation Manager – Allows users and apps to create, start, stop, and pause co-simulations * Data Manager – Coordinates the integrated repository of model, timeseries data, and metadata * Model Manager – Loads and checks CIM-based power system models * Logging Manager – Supports logging for application development and execution * Services Manager – Coordinates all services available for users and apps * Test Manager – Enables creation of simulation events, faults, and network outages


Co-Simulation Framework

The co-simulation framework serves as the simulation context for the rest of GridAPPS-D. When a simulation is requested through the GridAPPS-D plaform the simulation manager instantiates a FNCS or HELICS co-simulation federation consisting of two applications. The first application is a powerflow simulator which can be either GridLAB-D or OpenDSS that simulates real world distribution feeder or feeders. The second is a custom application that serves as bridge between the FNCS/HELICS message bus and the GOSS message bus. The data that travels between the co-simulation federation and the rest of the platform are SCADA measurement, SCADA control, and simulation status and control messages.The bridge application subscribes to the simulation input topic to recieve any SCADA control, simulation control, and simulation event messages. The bridge forwards SCADA control commands and simulation events like faults and outages to the powerflow simulator. The bridge publishes SCADA measurements from the powerflow simulator on a simulation output topic that GridAPPS-D applications and other parts of the GridAPPS-D platform subscribe to.


Database Structures

Default installation of GridAPPS-D comes with following data stores:

  • MySQL: It is used to store log data from platform, applications and services. For details, please see Logging API, which is covered in detail in Lesson 2.7.

  • Blazegraph: It is used to store power grid model data. The data contains equipments, properties and their initial measurement values. It is a triplestore that supports complex graph representation and class structure for CIM standard data model.

  • InfluxDB: InfluxDB is a time series data store and is used to store simulation output, simulation input, weather and load data. It also store output from services line sensor service and alarms service. For the purposes of the GridAPPS-D project, InfluxDB is managed by Proven. Proven is a database software suite supporting disclosure, collection, and management of modeling and simulation data.

For the purpose of developing applications, the data stores used should be transparent to the application as long the data model and standardized API is used.


gridappsd-logo