Software Architectures for Smart Grid System—A Bibliographical Survey

: Smart grid software interconnects multiple Engineering disciplines (power systems, communication, software and hardware technology, instrumentation, big data, etc.). The software architecture is an evolving concept in smart grid systems, in which system architecture development is a challenging process. The architecture has to realize the complex legacy power grid systems and cope with current Information and Communication Technologies (ICT). The distributed generation in a smart grid environment expects the software architecture to be distributed and to enable local control. Smart grid architecture should also be modular, ﬂexible, and adaptable to technology upgrades. In this paper, the authors have made a comprehensive review of architectures for smart grids. An in depth analysis of layered and agent-based architectures based on the National Institute of Standards and Technology (NIST) conceptual model is presented. Also presented is a set of smart grid Reference Architectures dealing with cross domain technology.


Introduction
The Smart Grid combines electricity and IT infrastructure to integrate and interconnect all users (producers, operators, marketers, consumers, etc.) in order to efficiently balance demand and supply over an increasingly complex network. The smart grid software architecture is visualized as interconnecting sub-systems like Generation, Transmission, Distribution, and Utilization (GTDU). ISO/IEC/IEEE 42010 defines a software architecture as "a fundamental concept or properties of a system embodied in its elements, relationships, and in the principles of its design and evolution". A software reference architecture is a generic architecture for a class of information systems that is used as a foundation for the design of concrete architectures from this class [1]. Smart grid is viewed as a software intensive system in which majority of devices and components contain electronics and software. Smart grid software architecture is characterized as a large scale, multi-disciplinary, highly interconnected, data driven system. Research in smart grids has seen a flurry of proposals and experiments to explore software architecture techniques. Cloud interface with grid sub-systems is another important theme in smart grid research articles. The architectural standards (National Institute of Standards and Technology (NIST), International Electrotechnical Commission (IEC)) define the guiding principles to the evolving smart grid software structure. In this paper, we attempted to group and investigate the research articles based on structure of software architecture for smart grid applications.

Motivation
Application of software engineering methods in power grid domain is a multi-disciplinary, research-intensive topic. Design and development of software architecture for smart grids requires detailed research across multi domains. The software components are arranged in different layers to meet the intended objectives of smart grids. The literature survey on smart grid software architecture is aimed with the following objectives: Analysis of Standards Software layers definition and purpose Interface mechanisms amongst layers Data transmission mechanisms.
An electric grid is an interconnected grid of networks composed of several hardware and software components to distribute electricity from generation utilities to end-users [2]. The Software System runs on the embedded electronics in the power grid, residing at the various substations that are part of the smart grid. The ability of the electronics to communicate with each other and use feedback makes the power grid a smart grid. The communication channel between substations in its present form is wired, and the use of cloud interface and wireless enables smart grid.
The architecture of the electronics and the firmware configures, monitors, maintains, and controls energy equipment on the electric power grid. The core fundamentals of smart grid architecture pertain to reliability and definitive control (as per standards) over the power grid equipment, and focus on the security aspects as well. Smart grid architecture physically integrates the electronics and software systems of the grid together. A range of communication frameworks provide a wide flexibility for networking. The scenario is each sub-system operates with their own technique, and also agree upon a common data format for overall communication. Also, this architecture is to be capable of accommodating future communication techniques.
The rest of the paper is organized as follows. Smart grid software architecture concepts and requirements are addressed in Section 2. NIST and Joint Working Group's definition of architectural layers are briefly discussed in Section 2.1. Smart grid architectural view and requirements are addressed in Sections 2.2 and 2.3. Section 3 depicts the summary of the literature survey. A detailed report reference architecture is presented in Section 3.1. A detailed review of layered architecture is analyzed in Section 3.2, whereas Section 3.3 investigates agent-based architectural details with relevant research papers. Section 4 outlines the conclusions and the authors' ongoing research work in smart grid software.

Smart Grid Software Architecture
A distributed software system is defined as a set of processing elements running at different locations interconnected by a communication system. The processing elements are relatively independent software components that run on different hardware nodes and communicate to each other so that the design requirements are met. The grid architecture is significantly influenced by the physical location of power plants. Conventional power grids depend on larger, individual and remotely-located generating stations, whereas the modern smart grids depend on many Distributed Energy Resources (DER) with a relatively smaller generating capacity. Seamless integration of DERs and energy storage devices are necessary for their effective utilization and storage [3]. Producer and consumer active participation in buying and selling actions are to be integrated in the architecture.
Conventional systems are characterized by high voltage, and renewable energy sources are known for medium and low voltage generators. DERs should provide the flexibility and controllability required to support secure system operations. Each DER operates with its own local control units, and they must interface coherently to realize the smart grid architecture. This results in a paradigm shift of architectural design from traditional control philosophy of distributed control. DER components enable the fast realization of many functions for a stable grid operation [4].
The huge volume of data exchange in smart grids means the monitoring and control operations are more complex. This grid architecture is comparable with software architecture for automotive systems. The vehicle architecture has various sub components, such as engine management, chassis control, and steering. An integrated complete vehicle system is designed to meet the mobility requirement with focus from individual sub-systems. All the participating units shall adhere to the common architectural rules. This analogy is extended to smart grid systems.

Initiatives towards Standard Architecture
NIST [5] lays down standards for smart grid devices and protocol development. The NIST architectural framework is addressed below:

•
Common understanding of smart grid elements and their relationships • Traceability between the functions and the goals of the smart grid • High-level and strategic views of the envisioned systems • Integration of systems across domains, companies, and businesses • Guide various architectures.
The report of the Joint Working Group (JWG) for standards for smart grids has outlined [6] the smart grid software architecture concepts, as defined in Table 1: Table 1. Architecture layers as per Joint Working Group (JWG) standard.

Conceptual Architecture High-Level Presentation of the Major Stakeholders and Their Interactions
Functional Architecture Arrangement of functions and their sub-functions and interfaces and the conditions for control or data flow

Communication Architecture
Description of functional architecture focusing on connectivity

Information Security Architecture
Detailed description and guidelines of information security

Information Architecture
Representation of entities including their properties, relationships, and the operations that can be performed on them The smart grid architecture has new challenges in not only balancing the volatile, largely distributed, small-volume energy production and consumption, but also in shifting of centralized overall control infrastructure to more localized and decentralized approaches [7]. The system representation captures central architectural concepts and their interaction. Smart gird architecture enables a unified and unambiguous representation of all connected sub system components [8]. Describing architecture with necessary flow diagrams and symbols is another challenging task. Many architectural documentations differ in their level of detail, completeness, and preciseness. The architectural documentation guidelines are well defined to balance with detailed descriptions and high-level explanations. [9]. The software architectural concepts can be adapted to the ULS smart grid systems [10,11].
Smart gird architecture bridges traditional power system automation (such as SCADA systems) with DERs and cloud systems. Standards like NIST and JWG-SG 2011 are laying down the architectural principles towards software layer arrangement and grid sub-system interfaces. These standards aim to catalyze innovations, to highlight best practices, and to open global markets for Smart Grid devices and systems [5,12]. However, these architectural view points and their level of granularity need to be carefully analyzed in power engineering with information technology.

Smart Grid Architecture-An Embedded Software View
Smart grid architecture is visualized with electronics and software elements, as represented in Figure 1. The smart grid features are realized by software algorithms that interface with grid sensors and actuators. The device drivers enabled with an operating system ensures the real time control and operation of the smart gird system. These components are placed in three prominent layers of distributed software architecture: Physical (device) layer: This base layer consists of the modules with direct access to the microcontroller and peripherals. All device drivers and sensor interfaces are implemented in the base layer.
Communication (service) layer: Connects to various layers with an agreed information exchange protocol and realizes the functionality to abstract details from modules which are architecturally placed beneath them. The communication protocol interface, Operating systems (OS) interface, and device independent services are the key modules. In a smart grid environment, the energy suppliers and customers are located distributively, the communication network will assume a hybrid structure with core networks and many edge networks that connect all the suppliers and customers [13].
Application layer: Implements the actual software functionality that consists of sub-layers like component layer, service layer, etc. Smart grid specific features, such as load forecast and demand management, are realized in the application layer.
The abstraction components ensure the required separation of connected layers, while allowing the data communication. The RTE ensures communication between the individual software components, and with the help of the operating system, handles execution of the software components. In a typical scenario with huge wind flow availability the static loads (such as EVs Battery) are informed. All the relevant operations with relevant sub-systems are synchronized with RTE systems.
This architecture helps to perform the effective and intelligent distribution of energy to end users. It also helps to integrate renewable energy sources and their generation and distribution. Furthermore, it helps to have communication between the consumers and utility control center through the desired network. This will lead to electricity services becoming more reliable, efficient, cost-effective, self-repairing, self-optimizing, and environmentally conscious. There are two major objectives for having smart grid architecture: (i) to ensure reliability and availability of the grid, continuous and autonomous monitoring, measurement, and control of the grid; and (ii) management of energy utilization and distribution to ensure balanced demand and supply. To achieve this objective, a detailed analysis of smart grid requirements for optimized performance of networked sensors and software system is undertaken, which is discussed in the following section.

Smart Grid Requirements
Smart grid software is characterized by highly interconnected, multi layered, enormous computations, and huge data traffic and security issues [14]. DERs in GTDU sub-systems and active stakeholder participation in grid operations enable intelligent features like load control, demand response, etc. The functional features are realized with the algorithms and interfaces, as defined in the requirements. Deriving smart grid requirements is the first step towards realizing its architecture [12,[14][15][16]. Smart grid software architecture is designed to realize the requirements broadly listed in Table 2.

Literature Survey
Smart grid architecture is an interdisciplinary system interface with a range of conventional technologies incorporating modern technological advancements. Smart grid architecture can be described based on factors such as representation, communication flow, and range of service. Based on the analysis of many research papers, the architecture is studied based on the below categories: Reference architectures-systematic experiments Layered architectures Agent-based architectures.

Reference Architecture
Smart grid software architecture is being explored by numerous researchers, service providers, and electricity producers. These works are aimed towards all stakeholders to accelerate smart grid component development and comply with uniform protocols. A reference model is a set of views and descriptions that provides the basis for discussing the characteristics, uses, behavior, interfaces, requirements, and standards of the smart grid [5]. Reference architecture provides a technology strategy that will holistically leverage standards-based solutions to realize these benefits consistently across multiple stakeholders [17][18][19]. Table 3 summarizes the various standard architectures found in the literature.
FREEDM architecture [24,25,28] facilitate seamless integration of distributed renewable power generation and storage resources and describes three states of operation, namely user level, solid state transformer level, and system level. FREEDM is an appropriate architecture if all of the hardware nodes and communication protocols are homogeneous, whereas CosGRID [18] architecture aims at smart grids based on different hardware platforms and protocols. CoSGRID architecture provides a generic platform suitable to develop improved electric power management services and applications for any environment and provide core smart grid control mechanisms. ScorePlus architecture [21] combines the merits from both hardware and software platforms to examine the performance of Smart Grid applications under realistic communication and computation constraints. GridOPTICS architecture [23] is layered architecture that addresses the data encapsulation and dependencies between layers. This promotes a clear separation of concerns and makes it possible to independently develop capabilities within each layer while ensuring data driven mechanisms. Smart grid architecture based on IEC 61499 and IEC 61850 has been experimented in previous studies [29,30]. IEC 61850 decomposes power substations, including functions for monitoring, control, protection and primary devices, down to objects, thus obtaining an object-oriented representation of the power system. Duke Energy platform [18] implements an electric grid with "distributed intelligence" that significantly increases the operational efficiencies of the electric power system. It uses OSI model and Internet Protocol Suite as a reference to abstract and differentiate the connectivity and computing requirements. This architecture provides routing, bridging, and gateway capabilities to the IP based networks. NASPInet [27] architecture reflects the hierarchy among power grid operators, monitors, and regulators in order to provide a realistic deployment path.
Building Energy Management Open Source Software (BEMOSS) [22] is an open source operating system that is expected to improve sensing and control of equipment to reduce energy consumption. This focusses on user management in addition to the operating system and connectivity [31].
BEMOSS is an open source architecture, which enables developers with different skillsets to work on different layers, thus enabling rapid deployment.

Layered Architecture in Smart Grid Software
The software architecture is a very high-level design of large software systems and the overall structure of a system with a set of defined rules. NIST recommended a conceptual model [5] for smart grid architecture, which is considered as reference architecture, including five domains pertaining to three areas: Smart Grid Service and Applications, Communication, and Physical Equipment.
Communication network.
The NIST architecture model is represented in Figure 2, interconnecting the domains and service areas. NIST model enables the smart grid architecture to be flexible, uniform, and technology-neutral. This explains the simplified domain model in ICT perspective and the mapped domain model on the NIST smart grid interoperability framework. It is meant to foster understanding of smart grid operational intricacies and describes the data flow techniques amongst the participants.
significantly increases the operational efficiencies of the electric power system. It uses OSI model and Internet Protocol Suite as a reference to abstract and differentiate the connectivity and computing requirements. This architecture provides routing, bridging, and gateway capabilities to the IP based networks. NASPInet [27] architecture reflects the hierarchy among power grid operators, monitors, and regulators in order to provide a realistic deployment path.
Building Energy Management Open Source Software (BEMOSS) [22] is an open source operating system that is expected to improve sensing and control of equipment to reduce energy consumption. This focusses on user management in addition to the operating system and connectivity [31].
BEMOSS is an open source architecture, which enables developers with different skillsets to work on different layers, thus enabling rapid deployment.

Layered Architecture in Smart Grid Software
The software architecture is a very high-level design of large software systems and the overall structure of a system with a set of defined rules. NIST recommended a conceptual model [5] for smart grid architecture, which is considered as reference architecture, including five domains pertaining to three areas: Smart Grid Service and Applications, Communication, and Physical Equipment.   The data and control signal interactions are enabled with the physical layer [33], which consists of thousands of data points. IEDs have real-time capabilities for capturing and processing massive amounts of information of large-scale smart grids. This type of layer brings a component that translates the different communication protocols and data models to the common communication technology and information model. The GTDU layer [3] implements key grid functionalities, such as distributed V-AR (Volt Ampere Reactive) compensation schemes, estimating generation schedules, and regulating power consumption.
In Gridstat architecture [34], data plane components [35] are designed to transmit the data from each source to many potential destinations, as directed by management-plane components. MultiFLEX architecture [36] implements the interoperability across heterogeneous devices using middleware technologies.
System Control Layer [36] represents the coordinated control required to meet the functional and performance-system-level objectives, such as coordinated volt-var regulation, loss minimization, economic and secure operation, system restoration, etc. The system control layer continuously monitors the system devices and keeps track of the system state by using applications such as state estimators. The sensor and actuator layer [37] ensure the local data processing amongst grid components.
Pérez et al. applied autonomic computing techniques towards a reference architecture for micro grids [14]. The autonomous behavior helps real time capabilities to acquire, distribute, process, analyze, connect, and disconnect distributed resources. This model implements the grid controller and the real time scenarios of all participating elements Communication Port 2: Enables metering information exchange between the smart metering domain and communication network, which is a vital element in smart grid architecture. It also warrants the exchange of metering information and interactions through operators and service providers.
Smart meter communication is achieved by the storage layer [34] that collects the data from meters and devices in gird. The component layer [33] analyses data and behavior and provides intelligence to the power network. The data acquisition, processing, and analysis operations are performed on the information received from IED. The connectivity layer [22] takes care of the communication between the operating system and the framework layer and all physical hardware devices. This encompasses different communication technologies, data exchange protocols, and device functionalities.
The Meter Data Interface Layer [38] integrates smart meter architecture with Distribution Management Systems (DMS). A novel AMI communication architecture [39] is described with a Local Metering Concentrator layer. Such an architecture ensures command data processing and data acquisition. Meter Data Interface layers [38][39][40] perform: (i) pushing of AMI meter data to DMS; (ii) polling of DMS meter data from the AMI; and (iii) pushing of DMS control commands to AMI [41,42].
Communication Port 3: Enables the interactions between operators and service providers in the service provider domain and devices in the customer domain. The interface between the smart grid and the customer domain is of special importance as the most visible and user-focused interactive element. Electricity usage is measured, recorded, and communicated through this port.
The service layer [7] consists of those services that are provided to the stakeholders of each of the systems that constitute the large-scale smart grid. The customer services, such as stake on pricing and control of equipment, are implemented under customer-level control mechanisms [3]. The emery utilization is optimized by the information available, such as peak load, climate conditions, and power consumption. The local control layer [3] is used to implement the consumer level control functionalities and demand optimization.
The market layer [36] utilizes all the system control information and uses advanced economic and financial applications, such as reserve co-optimization, risk management, load and price forecasting, and architecture to reduce distribution losses [43] and is designed to coordinate between market dynamics and regional load despatch center.
Communication Port 4: Enables information exchange between the service provider domain and communication network domain. It enables communication between services and applications in the service provider domain to actors in other domains.
The service provider communication is enabled in M2M layer [44]. It increases the scalability because it removes the interdependencies between producer and consumer related to the information, allowing the development of services completely independent from the systems and deployed devices. Orchestration layer [33] represents those services that are implemented by the composition of simple services that are required by service providers.
The market (business) layer deals with the process of control decisions for the available resources, incorporating economic objectives [36,45]. This layer enables the service providers to participate in grid level transactions. The service provider domain operations, such as retail energy options, billing, etc., are described with utility provider and third-party provider services [46]. The protocol vulnerability risks for substation and transmission asset mitigation assessments are also addressed.
Communication Port 5: Enables the communication between smart metering and the customer domain. The coordination layer [3] defines the information exchanged between the GTDU layer and smart meter to control and optimize functionality implementation. The security layer [36,47] enables secure and trusted communication to control whether a device or service can be trusted or not. The mechanism triggers mutual authentication by providing the means to create a public key infrastructure.
In the MDI layer [38], translation means converting the AMI data to the DMS data when meter data from the AMI is delivered to the DMS, and vice versa. Service-oriented middleware [36] architecture is designed to support different kinds of smart meters and distributed power consumption information. Additionally, this architecture provides transparent interpretation of application and end users by controlling information exchange flow. Table 4 summarizes the comparison of layered architecture available in various literature. Analysis of various architectural features and key attributes are presented.

Agent Based Architecture for Smart Grids
Service Oriented Architecture (SOA) and Multi Agents (MAS) architecture are promising techniques for realizing smart grid systems. In both cases, smart grid components, such as Distributed Generators (DGs), intelligent switches, smart transformers, sensors, electric appliances, or electric vehicles, can be monitored and controlled by an autonomous software component, being either an agent in the MAS sense or a service in the SOA sense [51]. An intelligent agent processes several characteristics: reactivity (ability to learn the environment and act), proactiveness (self-initiative to meet expected goals), and social ability (negotiating and cooperating with other agents).

Description of Agents
Agents are autonomous systems which can operate in a fully-decentralized manner, i.e., it does not depend on a central (master) element. An agent can represent a group of appliances or bigger grid elements, such as a cluster of households. The utilities can retrieve data collected by the agents and use this information to control the power supply and decide which power sources to use. MAS-based software architecture for micro grids has been experimented in previous studies [35][36][37][38][39][40][41][42][43][44][45][46][47][48][49][51][52][53]. Agent-based software architectures are a potential technique in smart grids, hence plenty of research articles exist in this domain.
Existing distribution systems operate as a Master-Slave concept, responding to the central command with no possibility of dynamic reconfiguration. They do not support interoperability, and utilities often are locked into solutions from a single vendor. Multi agents' application in grid environments enables the local devices to be more self-operable and support decentralized monitoring and controlling operations. Data services, functional logic services, and business logic services are described in smart grid architectures. An intelligent agent consists of four components: Input interface Output interface Decision making system Communication system.

Agent Based Architecture in Literature
Multi Agent Systems are "autonomous decision makers that communicate their preferences, negotiate sub-goals, and coordinate their intentions in order to achieve the individual or system goals" [54,55]. They are suitable for smart grid architectures as they are intelligent and autonomous, exhibit distributed control, act flexibly to the changes in environment, and cooperate with each other towards a common goal.
Malik et al. analyzed various aspects of agent usage in a smart grid environment [3]. This paper evaluates the agent's application in smart grid functional areas, namely control, fault management, self-healing properties, energy balance management, and distribution side management. Zhabelova et al. investigated various aspects of distributed architectures for smart grid applications and unique contributions within this domain [29,54,56,57]. These works practically implement agent-based solutions for smart grids and facility migration of smart grid technology to the next level of research.
The limitations of current distribution systems are addressed with agent-based techniques [29]. The proposed integration of the two international standards IEC 61499 and IEC 61850 has enabled development of a prototype of the automation architecture, where the intelligence resides at the device level [56,58,59].
An agent-based architecture is proposed for fault location, isolation, and supply restoration (FLISR) applications [15,57]. A hybrid approach combining both the advantages of reactive and deliberative architecture approaches is implemented. This paper deals with two reactive behaviors, five plans, the intention stack, and the interpreter. The design process is methodological and agents are reproducible.
An actual fault condition in a substation environment is considered and the mechanism of agent reactions is tested.
The concept of a JIAC (Java Intelligent Agent Component) framework is integrated with a service-oriented paradigm [2]. The framework provides the agent-platform, comprising agent nodes, is physically distributed, and it enables runtime environments for JIAC agents. These are demonstrated in two projects: The Intelligente L¨osungen zum Schutz vor Kaskadeneffekten in voneinander abh¨angigen kritischen Infrastrukturen (ILIas) project, and Gesteuertes Laden V2.0.
Agent-based design in smart grid applications requires a modular software architecture [60]. This work attempts to implement different aspects of communication agents, namely communication perspective, access to services, and handling subscriptions. Agents can have the following attributes: name, parent, child, and unique ID. Protocol adapters are proposed to bridge between agents and appliances.
The Multi Agent Architecture for smart grids is explored in a previous study [61]. This paper defines different roles in the smart grid as producer, storage, consumer, prosumer, and distribution. It takes JADE as a base framework to implement the proposed architecture. The salient features of this research are time dependent monitoring and computation support for internal and external physical models, flexibility in computation, and it eases the integration of distributed control algorithms.

Smart Grid Architecture Proposal Based on Data Exchange
Smart grid architecture is a complex, data intensive, and safety-critical system. The data collection and exchange among consumers, DERs, distribution, and cloud systems decides the basic structure of smart grid architecture. A typical smart grid system is similar to a datacenter system, in that the devices sit is a remote location and require a means for a supervisor or administrator to access the system remotely. Remote access is meant to happen over a secure connection and will also need reliable data transfer, a light, and fast protocol definition, which is one of the focus areas of this document. The bit-level protocol definition ensures fast, reliable, and secure communication in a smart grid environment [62]. Cloud integration techniques also enable leverage of many technologies (automotive, home automation) into the smart grid domain.

Conclusions
This review paper is a comprehensive analysis of various aspects of smart grid software architecture. It requires multi-disciplinary research, which involves power system, communication, and information technology. Even though various researchers follow a different naming convention for their layered architecture, a commonality exists in the functionality. A synergy in the functionality of the layers is also observed in many research papers. Agent technology directly enables all required features in a smart grid due to their autonomous nature. Self-centric (not Master-Slave) agents are directly suitable for the distributed smart grid software architecture. Most of the research work focuses on building a standard software architecture based on smart grid elements. The experimental methods and interfacing technologies are also analyzed with software architectures available in the literature. Some architectures, such as ScorePlus and GridOptics, are reconfigurable and implemented in hardware. BEMOSS is an open source software architecture for building energy management. FREEDM, known as Energy Internet, implements various smart grid elements and features. Basic research, architectural proposals, application of adjacent technologies, all demonstration with pilot projects shall all lead to smarter (i.e., intelligent, automated, decentralized, self-healing, adaptable, dynamic) intelligent power grids.
Author Contributions: All authors contributed equally to the final dissemination of the research investigation as a full article.

Funding:
The authors would like to acknowledge the funds received from the VIT University, Vellore, India. The project VEGA 1/0187/18 for its support (VEGA is Slovak Research and Development Agency with the seat in Bratislava). The project title is Development of Optimal Electromechanical Systems with High Dynamics.

Acknowledgments:
The authors would like to acknowledge the technical assistance received from the Center for Bioenergy and Green Engineering, Center for Reliable Power Electronics (CORPE), Department of Energy Technology, Aalborg University, Denmark for making this technical survey a full article.

Conflicts of Interest:
The authors declare no conflict of interest.