Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 3.91 KB

technologystack.md

File metadata and controls

62 lines (50 loc) · 3.91 KB

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