-
Notifications
You must be signed in to change notification settings - Fork 2
UML and Java Classes
NOTE: The UML presented on this page is from the first CTS Draft Standard; this page will eventually be updated.
The project uses standards including
-
The TEMIX profile of OASIS Energy Interoperation. Energy Interoperation is the profile base of [OpenADR 2] standardized as [IEC 62746-10-1] (https://webstore.iec.ch/publication/26267)
-
Informative UML models for Energy Interoperation/CTS payloads as shown in the EI Standard
-
UML models for scheduling using the WS-Calendar Platform-Independent Model
-
ISO 17800 Facility Smart Grid Information Model (https://www.iso.org/standard/71547.html )
-
Adapter methods for integrating with Independent System Operator Wholesale Markets and other energy markets are based on [IEC 62746-10-3:2018] (https://webstore.iec.ch/publication/59771)
Most of these standards were built and defined using UML models. In some cases the UML is normative (WS-Calendar PIM, ISO 17800) and others informative (Energy Interoperation, EMIX, and initial versions of WS-Calendar).
For the development of this project we have been informed by the standards' UML models, and simplified them for easier use, while ensuring that a conformance statement would accurately describe the standards aspects of this project.
These figures are from The Energy Mashup Lab's Common Transactive Services Specification We show the EiTender and EiTransaction classes. They are simplified and profiled from the base standard models as shown in the next section.
EiTender is part of a message payload that describes a tender, or an offer to buy or sell.

EiTransaction is part of a message payload that describes a transaction, or a notice that two tenders have matched in the market:

For the EiTender and EiTransaction classes, CTS flattens the model inheritance hierarchy from OASIS Energy Interoperation shown below:
.
The price and time interval are not shown in this diagram, as they are high in the inheritance hierarchy, so we explicitly include them in the EiTender and EiTransaction Java classes.
Note that the standards describe streams of time intervals; we simplify to one time interval only.
Code Documentation
- Actor Pseudocode - LMA, LMM, TEUA
- RESTful Controller Payloads
- Position Manager
- Logging
- Time in CTS
- UML and Java Classes
- Simple Binary Encoding (SBE)
- SBE Quick Guide
- Auction Market
Building and Running the Project
- Setup Run and Drive - with YouTube videos
- Dependencies and Prerequisites
- Set Up MySQL
- Parity Terminal Client
- Project Build Steps
- In Case of Difficulty
Docker
- Docker Background
- Docker Setup Requirements
- Docker Setup Part 1
- Docker Setup Part 2
- Running EML-CTS as a Single Executable JAR
- Docker Quick Guide
General Tech Guides
Spring 2024 Updates