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