Skip to content

ITS interchange provides a secure and scalable way to exchange ITS related data between providers.

License

Notifications You must be signed in to change notification settings

mrmoritz/interchange

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interchange node under the Nordic Way project

License

See full MIT license text here.

See instructions to retrieve all the third party licences here

Introduction

The Nordic Way Interchange Node (NWIXN) is a message broker that enables location-based exchange of traffic data. Nordic Way partners send traffic information to the broker in the form of AMQP messages. These messages are distributed to subscribing partners.

Messages are produced and exchanged over AMQP 1.0. Message content is not examined, but all messages must provide header attributes as specified in the client specification.

Traffic message formats supported are DATEX2, DENM, IVI, SPATEM, MAPEM, SREM, SSEM, and CAM.

Interchange architecture

Neighbour nodes registered in the DNS (domain name server) will be discovered via a control channel.

All neighbours must present the message types they produce - capabilities - in this discovery process.

Neighbours also has a set of message types they are interested in - subscriptions. If a neighbour produces a message type we are interested in, we issue a subscription request to the neighbour.

Accepted subscriptions will be set up by the Routing Configurer so finally the messages can be collected by the Message collector.

More information on the concepts and the open source implementation of the interchange node is found on the Github Wiki

Additional information about the Nordic Way Interchange Node can be found here.

Contact

For any questions please contact

Getting Started

Prerequisites

  • Maven 3.5.x or later
  • Java 11
  • Docker Engine 18.06.1-ce and Docker Compose 1.22.0 or later

Building the project with Maven

The maven build uses testcontainers in the integration test stage, so you will need Docker installed locally in order to run the integration tests. To build the project without integration test, use mvn package, and to run the integration tests, run mvn verify.

Federation docker images

All the docker images specified in the github https://github.com/NordicWayInterchange/interchange/ is automatically built by GitHub and published to the container registry europe-west4-docker.pkg.dev/nw-shared-w3ml/nordic-way-interchange/ on each commit. Each component in the system has its own registry.

All the images are tagged with git commit hash, and branch name. Branch "federation-master" is considered to be the stable branch.

Running the Tests

Unit tests are run in the maven 'test' stage, and integration tests are run in the 'verify' stage.

The profile "IT" separates the unit tests from the integration tests by ensuring the integration tests are run in the 'verify' stage. The profile "IT" is defined in the top pom and is always activated.

Test framework

We use junit5 in our tests. https://junit.org/junit5/

Assertions

We aim at using fluent assertions using assertj. We use the version of assertj-core defined by spring-boot-starter-test.

Deploy to kubernetes

Helm

Helm uses Charts to pack all the Kubernetes components for an application to deploy, run and scale. This is also where the configuration of the application can be updated and maintained.

The helm templates is provided under helm/interchange/templates. See the example values file helm/interchange/example_values.yml

Resources

Github Wiki

Nordic Way

Third-party licenses

To get a list of the third-party licenses used in the project, run (in bash):

mvn license:add-third-party

followed by:

find . -name THIRD-PARTY.txt -exec cat {} \; | sort | uniq 

About

ITS interchange provides a secure and scalable way to exchange ITS related data between providers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 95.2%
  • Shell 4.3%
  • Dockerfile 0.5%