Technology Stack
Platform
Apache ActiveMQ: Open source messaging server, used to relay messages between components of the open smart grid platform. ActiveMQ is an open source message broker written in Java and a full Java Message Service (JMS) client. It provides "Enterprise Features" which in this case means fostering the communication from more than one client or server.
Apache HTTP server: Web server, used as front for Apache Tomcat.
Apache Tomcat: Provides a "pure Java" servlet container for Java code to run in.
pgAdmin-III: PostgreSQL administration and management tools.
Protobuf (Google Protocol Buffers): A language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more.
Flyway: Agile database migration framework for Java
HikariCP: JDBC connection pool
Hibernate: Object/Relational mapping
Netty: Network application framework for protocol servers & clients
OpenMUC: Library implementing the IEC61850 and DLMS/COSEM communication standard
Orika: Java bean mapping
Spring: Application development framework. Several Spring libraries are used, including Spring Data, Spring Security and Spring WS.
Puppet: Application for Automatically delivering, operating and securing your infrastructure
Development
Bower: Package manager for Javascript packages. Web applications consist of various components; frameworks, libraries, assets, utilities, and rainbows. Bower manages all these things for you.
Eclipse: IDE for developing software.
FileZilla: FTP application.
Git: Version control system.
NodeJS: Tooling suite with various Javascript tools.
NPM: Package manager for the NodeJS Javascript applications.
Putty: A free and open-source terminal emulator, serial console and network file transfer application.
Vim: Source code editor.
Apache Maven: Software project management tool.
GIT & GitHub: Source code management.
Testing &QA
Apache JMeter: Application designed to load test functional behaviour and measure performance.
Cucumber: automated acceptance testing framework.
Gherkin: DSL for acceptence testing framework.
Sonarqube: Quality management platform.
SoapUI: Functional testing tool for testing web services.
JUnit: Unit testing.
Mockito: A Mock framework for Unit testing.
The following table presents an overview of the components and the most important technical choices per component.
Component | Technology |
Open Smart Grid Platform | Java, Spring Framework, Hibernate, Netty |
Demo application | Java, Spring Framework, Spring MVC |
Web services | SOAP, WSDL |
OSLP Protocol | Google Protocol Buffers |
Component (not open source) | Technology |
OSGP Management application | Java, Spring Framework, Spring MVC |
Net-Management application | Java, Spring Framework, JAX-RS, AngularJS |
Liander Installatie application | Java, Spring Framework, JAX-RS, AngularJS |
Last updated