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
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.
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