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