Sign inSign up

glarad/niord-uk-ng

By glarad

•Updated 18 days ago

The Angular front-end for Niord in a nice little container

Image
Web servers
0

2.2K

glarad/niord-uk-ng repository overview

⁠The GLA e-Navigation Service Architecture - Niord UK Angular Front-End

⁠Quick Reference

⁠What is e-Navigation

The maritime domain is facing a number for challenges, mainly due to the increasing demand, that may increase the risk of an accident or loss of life. These challenges require technological solutions and e-Navigation is one such solution. The International Maritime Organization (IMO⁠) adopted a ‘Strategy for the development and implementation of e‐Navigation’ (MSC85/26, Annexes 20 and 21), providing the following definition of e‐Navigation:

E-Navigation, as defined by the IMO, is the harmonised collection, integration, exchange, presentation and analysis of maritime information on-board and ashore by electronic means to enhance berth-to-berth navigation and related services, for safety and security at sea and protection of the marine environment.

In response, the International Association of Lighthouse Authorities (IALA⁠) published a number of guidelines such as G1113⁠ and G1114⁠, which establish the relevant principles for the design and implementation of harmonised shore-based technical system architectures and propose a set of best practices to be followed. In these, the terms Common Shore‐Based System (CSS) and Common Shore‐based System Architecture (CSSA) were introduced to describe the shore‐based technical system of the IMO’s overarching architecture.

To ensure the secure communication between ship and CSSA, the International Electrotechnical Commission (IEC), in coordination with IALA, compiled a set of system architecture and operational requirements for e-Navigation into a standard better known as SECOM⁠. This provides mechanisms for secure data exchange, as well as a TS interface design that is in accordance with the service guidelines and templates defined by IALA. Although SECOM is just a conceptual standard, the Maritime Connectivity Platform (MCP⁠) provides an actual implementation of a decentralised framework that supports SECOM.

⁠What is the GRAD e-Navigation Service Architecture

The GLA follow the developments on e-Navigation closely, contributing through their role as an IALA member whenever possible. As part of their efforts, a prototype GLA e-Navigation Service Architecture is being developed by the GLA Research and Development Directorate (GRAD), to be used as the basis for the provision of the future GLA e-Navigation services.

As a concept, the CSSA is based on the Service Oriented Architecture (SOA). A pure-SOA approach however was found to be a bit cumbersome for the GLA operations, as it usually requires the entire IT landscape being compatible, resulting in high investment costs. In the context of e-Navigation, this could become a serious problem, since different components of the system are designed by independent teams/manufacturers. Instead, a more flexible microservice architecture was opted for. This is based on a break-down of the larger functional blocks into small independent services, each responsible for performing its own orchestration, maintaining its own data and communicating through lightweight mechanisms such as HTTP/HTTPS. It should be pointed out that SOA and the microservice architecture are not necessarily that different. Sometimes, microservices are even considered as an extension or a more fine-grained version of SOA.

⁠The Niord UK Angular Front-End

As per the G-1114, there is a need for a UIA service. In the current implementation, this is provided by the Nautical Information Directory (Niord), a system able to produce and publish Navigational Warnings (NW) and Notices to Mariners T&P (NM). It was originally developed as part of the EfficienSea2⁠ EU project and subsequently implemented as a production system for the Danish Maritime Authority (DMA). For the needs of the current project however, the original code was ported onto the latest Red-Hat Quarkus⁠ and Angular⁠ frameworks. In addition, the capability was added to generate AtoN information, which can then be encoded into the IHO S-125 data format. Any update on the AtoN information is communicated to the “Message Broker” microservice, so that all other microservices that have subscribed to receive updates will be notified. It has to be noted here that although Niord is a very useful component of the demonstrator test-bed, it is a not a core component of the architecture and any other NW/NM/AtoN management system could be used instead, at least as long as it is able to generate S-100 compliant data.

⁠How to use this image

This image contains the Angular front-end of Niord, served by an nginx⁠ web-server. The image itself can be used in just like a normal Docker container, but providing the necessary environment variables while running it. The available environment variables for configuring the application are presented in the following table.

VariableDescription
NIORD_URLThe URL for the front-end to contact the Niord server
ATON_PUBLICATION_URLThe URL for the front-end to publish AtoN information
KEYCLOAK_URLThe URL for the Keycloak OpenID-Connect authentication seever
KEYCLOAK_REALMThe realm for the Keycloak OpenID-Connect authentication
KEYCLOAK_CLIENT_IDThe client ID for the Keycloak OpenID-Connect authentication
⁠Environment Variables Configuration

In order to run the image you just need to provide the values of the environment variables presented previously. If the default values are sufficient then they can be omitted.

This can be done in the following way:

docker run -t -i --rm \
    -p 8080:80 \
    -e NIORD_URL='niord.server.com' \
    -e ATON_PUBLICATION_URL='msg.publication.service' \
    -e KEYCLOAK_URL='keycloak.server.com' \
    -e KEYCLOAK_REALM='niord' \
    -e KEYCLOAK_CLIENT_ID='niord-web' \
    <image-id>

⁠Operation

The original Niord system has extensive documentation already available online and you are advised to read this carefully before proceeding. It can found in this⁠ online location.

The current Angular-based implementation of the front-end, is pretty similar to the original version that was embedded in the Niord Wildfly deployment. However do not that this is still work in progress and not all the functionality of the old interface is still available. Notable things missing are the administration menu and the emailling functionality.

⁠Contributing

For contributing in this project, please have a look at the Github repository Niord-UK⁠. Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

⁠License

Distributed under the Apache License, Version 2.0.

⁠Contact

Nikolaos Vastardis - [email protected]⁠

Tag summary

Content type

Image

Digest

sha256:1dc6469ca…

Size

75.8 MB

Last updated

18 days ago

docker pull glarad/niord-uk-ng