External Resource Management UI Agent MATLAB Interface Weather Supervisory Agent Platform Agent Device Configuration Visualizations Web Services Router Improvements VIP Resource Monitor Authentication Module Agent Instantiation and Packaging Module Message Bus Historian General Framework Resource Directory Configuration Store Authorization Module Agent Execution Environment Resource Constraints Data Collection Failover Actuator Keystore Agent Sandbox SQLlite MySQL MongoDB Revert and Override Drivers General Framework v1.2 V3.0 V2.0 (Licensed) v3.5 Modbus BACnet DNP3 SEP2.0 v4.0 Device Figure 1. The VOLTTRON platform. UI: user interface. would subscribe. The platform itself publishes platformrelated messages to the platform topic (such as "shutdown"). Topics are hierarchical, following the format of topic/subtopic/subtopic/.../... and allowing agents to be as general or as specific as desired with their subscriptions. For example, agents could subscribe to weather/all and get all weather data for a location or subscribe to weather/temperature for only temperature data. VOLTTRON incorporates several open-source projects to build a flexible and powerful platform (http://github.com/ volttron). The key services and applications provided by VOLTTRON include the following. xx An actuator agent. Agents within the platform manage the control of external devices. xx Drivers. Devices controlled by the platform communicate with drivers. The drivers abstract device-specific protocols from the rest of the platform by publishing device data to and taking commands from the message bus. VOLTTRON currently includes supported drivers for BACnet and Modbus protocols. xx Historians. Storage is enabled for the device data obtained by the drivers and application analysis results in a database (currently SQLlite, MySQL, and MongoDB databases are supported). Multiple historians can run on the platform at the same time. xx A management interface. A web-based user interface allows the administration of VOLTTRON nodes (and the agent/applications) running on the VOLTTRON nodes on one or more networks. xx A message bus. All agents and services can publish and subscribe to topics on the message bus. The message bus provides a single and uniform interface that abstracts the details of devices and agents from each other. Agents and components running in the platform produce and consume messages and/or events. The agents decide how agents produce events and how they process received events. xx Remote procedure calls. VOLTTRON agents can interact via remote procedure calls. This is especially useful when interacting with service agents, such as an actuator or historian, and simplifies the code required to use those services. xx VOLTTRON Interconnect Protocol (VIP). This protocol is designed to provide secure communications within and between VOLTTRON platforms. It allows for attribution of messages and restriction of access. It also IEEE Electrific ation Magazine / d ec em be r 2 0 1 6 17http://www.github.com/