how-to get started with...how-to get started with exchange of rtz via mcp this how-to describes how...

27

Upload: others

Post on 15-Jul-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform
Page 2: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

HOW-TO Get started with exchange of RTZ in STM

Version Date Sign Description

1.0 2018-01-29 MO

Page 3: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Welcome on board STM!What is the concept of Sea Traffic Management (STM)?

STM is an information sharing framework that primarily deals with the benefits that different parties can get if they share their route with others in real time. This is one of the fundamental pillars of STM: The shipping company/ship is always the information owner and shares the information they want with the parties they want.But we believe in the principle, you share, you win. The more players that share, the better the common position and the more you can optimize.

Who wins what?The concept is built on a just-in-time philosophy and in order to arrive, just in time, we need some help on the way. In order to gain access to all the information that you can benefit from, a lot of searching has to be done and if you trade to a lot of different countries, this is not that easy. But it is not just about information available today but also about new information and in STM, the new information comes from the vessels. With the ships sharing their voyage plan you can optimize for various things. To a greatextent, it is already done today within large shipping companies that have the resources for it, but here we open up a market that everyone can use.

The central feature is that the routes are shared directly from and to an ECDIS, which allows you to see suggested routes, cut and paste and use the parts you want directly on the ECDIS. You can retrieve nautical information about the passage such as if there are any current Navigation Warnings on one's route or accept one of the Pilot suggested routes into the port. Shore Centres can actively monitor ships in their area of responsibility, not only if they are following their route at any moment but also if they have planned properly according to the latest information available.

Ports can get information of a ships ETA and Planned Time of Arrival (PTA) at a much earlier stage and this can make the port call much more efficient. Because of the port's ability to collaborate by means of the “Port CDM tool”, they can also convey a time when all port operators can receive the ship. This enables you to decide on slowing down and conducting “Just-In-Steaming" during thepassage with the potential to save bunkers thereby having a positive impact on the environment etc.

An amazing side effect of this information sharing will be that ships will be able to share routes with each other. That is, you can see another vessel's current route in your own ECDIS. Here, however, you will only share a segment of the route, which will be transmitted over the AIS system, because the AIS bandwidth is not sufficient to share more. STM helps you plan a traffic situation before you end up in it. Here comes our second pillar: STM should not be used in COLREG situations. That is, when you are in a close quarter situation, always observe COLREGs

Page 4: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

HOW-TO Get started with exchange of RTZ via MCP

This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform (MCP).

This description is targeted to an audience familiar with the STM Concept and wants to create and deploy their own services, or just consume a service.

This presentation summarises all information necessary to build Your own STM service and links to the documentation, source code etc.

Page 5: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

CONTENT

• Introduction

• Required components and steps to build STM compliant services

• References and links

Page 6: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Service Oriented Architecture

The STM Concept is realized using service oriented architecture.

In MONALISA 2.0 a set of operational services where identified and the STM Validation project has created technical services that supports these operational services.

The conceptual idea is then that updated and new operational procedures can be supported more efficient with updated and added technical services on both onboard ships, in shore centres, ports and by other service providers.

In STM a lot of the information exchange is about voyage information, and the STM Validation Project has therefore created a service called VIS (Voyage Information Service) that provides support for exchanging voyage plans in RTZ, text messages in STM TXT format and area messages in S-124 format.

Based on the VIS Technical Design, several service instances has been created that enables ships to send and receive voyage plans, shore centres to perform monitoring on routes from ship, service providers to perform route optimization etc.

Page 7: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

SeaSWIM

Introduction to STM, SeaSWIM and MCP

Service Registry

IdentityRegistry

CertificateRevocation

Lists

Service Instance

Service Instance

Web Portal

Internet

Service Design

RTZ

TXT

MCP

STM=Sea Traffic ManagementMCP=Maritime Connectivity PlatformSeaSWIM=Sea System Wide Information ManagementIR=Identity RegistrySR=Service RegistrySSC=SeaSWIM Connector

Safe information exchangeaccording to SeaSWIM and MCP rules and proceduresthrough SeaSWIM Connector

Payload schemas

*

* Registered and documentation available in SR

* *Application and operator

Application and operator

server server

Page 8: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Extract of STM Live Testbed

Service Registry

IdentityRegistry

CertificateRevocation

Lists

VIS for Cinderella

IMO 8719188

VIS for Gothenburg

SC

Web Portal

Internet

MCP

Onboard Cinderella ECDIS Planning

Station

Shore Centre enhanced

monitoring application

server server

RTZ

Link to Gothenburg SCLink to Cinderella IMO 7505346

Page 9: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Environments

MCP STAGING MCP PRODUCTION

MCP TEST

IR+SR IR+SRIR+SR

Server (TEST)

MC StagingRoot Certificate

MC ProductionRoot Certificate

MC Test RootCertificate

Service

Server (SIM)

Service

ServerService (TEST)

Service (SIM)

Server

Service

There are three different MCP environments deployed, each with its own root certificate, Identity Registry, Service Registry and Web Portal.Servers and services is the responsibility of the provider of service, not the MCP.

STM uses • the MCP STAGING for development,

test and simulation• The MCP PRODUCTION for

production (STM Live Testbed)

Page 10: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Interoperability

SeaSWIM

Service Instance

Service Instance

Service Technical

Design

RTZ

TXT

S124

PCM

Payload schemas

*

* *Application and operator

Application and operator

server server

Service Consumer Service Provider

Interoperability is gained on several levels, common Service Technical Design and common payload Information Exchange Models (such as RTZ, TXT, S100-based messages) is two keys to interoperability.

Reference: HOW-TO Find interoperable services to consume

Page 11: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Required components and actions to start exchanging voyage plans in RTZ format

• Access to Maritime Connectivity Platform (MCP), includes access to

– Service Registry, Identity Registry and enables issuing of certificates

• <work> Service Implementation

– The service provided

– SeaSWIM Connector

• Authentication and SSL encryption/decryption, certificate handling

• Server environment where <work> Service Instance is deployed and hosted

• Registration of Service in MCP Service Registry

– Available examples, guidelines and schemas

Page 12: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Required components and actions to start exchanging voyage plans in RTZ format

• Access to Maritime Connectivity Platform (MCP), includes access to

– Service Registry, Identity Registry and enables issuing of certificates

• SeaSWIM Connector

– Available as C# source code included in Voyage Information Service

– Available as ready-to-go JAVA package (JAR)

– Available as source code in JAVA and C#

– Available as specification and technical design documents

• <work> Service Implementation

– Available as ready-to-go VIS instance

– Available as C# source code for VIS

– Available as REST Service Technical Design with API description for own implementation

• Server environment where <work> Service Instance is deployed and hosted

– Available as ready-to-go instance in Azure environment (governed by SMA)

– Possibilty to use your own server

• Registration of Service in MCP Service Registry

– Available examples, guidelines and schemas

Page 13: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Quick alternative to get started

Use VIS instance provided by SMA in Azure server.

The VIS instance has a defined private REST interface where your own application can connect and retrieve incoming messages (RTZ, TXT, S124), send message and search for services to consume.The VIS instance handles authentication of consumers, validation of RTZ format and supports with secure service-to-service requests on HTTPS.

Microsoft Azure

RESTCustomer

application

Service Registry

IdentityRegistry

CertificateRevocation

Lists

Web Portal

MCP

SMA VIS

RTZ

any VISHMAC SSL

Internet

Page 14: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Step-by-step guide to provide a service• Join Your organisation to MCP through MCP Portal

– https://management.maritimecloud.net/

• Create your work service instance based VIS REST Technical Design v2.2– Apply SeaSWIM Connector principles on incoming and outgoing interface to MCP and

other services.

• Deploy <work> service instance and expose a public interface according to the service design

• Register your work service in MCP Service Registry(STAGING for test, PRODUCTION when approved)

Your service is now published and available for others to consume!

Page 15: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

References and links

Payloadformats

Service TechnicalDesigns

SeaSWIMdescriptions

VISRTZ SeaSWIMSSC

MCP descriptions

MCP PortalsAPI

Service Documentation

VIS

Page 16: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Payload formats

• RTZ v1.1 STMhttp://stmvalidation.eu/schemas/ (RTZ FORMAT + STM EXTENSION)

References

Page 17: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

SeaSWIM descriptions

• SeaSWIMhttp://stmvalidation.eu/seaswim-overview/https://service.projectplace.com/pp/pp.cgi/r1386363072

• SeaSWIM Connectorhttp://stmvalidation.eu/ssc/https://service.projectplace.com/pp/pp.cgi/r1411380638

References

Page 18: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

MCP description• MCP

http://maritimecloud.net/

• MCP Portalhttp://manual.maritimecloud.net/

• MCP Portal PRODUCTIONhttps://management.maritimecloud.net/

• MCP Portal STAGINGhttps://staging-management.maritimecloud.net/

• MCP Portal TESThttps://test-management.maritimecloud.net

• MCP HOW-TO, including service guidelines and schemashttps://management.maritimecloud.net/#/pages/sr/howto

OBS! The domain”maritimecloud.net” will be changed due to name changedto Maritime Connectiity Platform

References

http://maritimeconnectivity.net/

Page 19: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

MCP LinksMCP TEST

API Service Registry

API IdentityRegistry

Web Portal

MCP STAGING

API Service Registry

API IdentityRegistry

Web Portal

MCP PRODUCTION

API Service Registry

API IdentityRegistry

Web Portal

Web Portalhttps://staging-management.maritimecloud.net/

Web Portalhttps://test-management.maritimecloud.net/

Web Portalhttps://management.maritimecloud.net/

Service Registry APIhttps://sr-staging.maritimecloud.net/api/

Identity Registry API using OpenID Connecthttps://staging-api.maritimecloud.net/oidc/api/

Service Registry APIhttps://sr.maritimecloud.net/api/

Service Registry APIhttps://sr-test.maritimecloud.net/api/

Identity Registry API using OpenID Connecthttps://test-api.maritimecloud.net/oidc/api/

Identity Registry API using OpenID Connecthttps://api.maritimecloud.net/oidc/api/

Identity Registry API doc. for certificateshttps://test-api-x509.maritimecloud.net/v2/api-docs

Identity Registry API doc. for certificateshttps://staging-api-x509.maritimecloud.net/v2/api-docs

Identity Registry API doc. for certificateshttps://api-x509.maritimecloud.net/v2/api-docs

Service Registry API documentationhttps://sr-test.maritimecloud.net/v2/api-docs

Service Registry API documentationhttps://sr-staging.maritimecloud.net/v2/api-docs

Service Registry API documentationhttps://sr.maritimecloud.net/v2/api-docs

Identity Registry API using certificateshttps://test-api-x509.maritimecloud.net/x509/api/

Identity Registry API using certificateshttps://staging-api-x509.maritimecloud.net/x509/api/

Identity Registry API using certificateshttps://api-x509.maritimecloud.net/x509/api/

Identity Registry API doc. for OpenID connecthttps://test-api.maritimecloud.net/v2/api-docs

Identity Registry API doc. for OpenID connecthttps://staging-api.maritimecloud.net/v2/api-docs

Identity Registry API doc. for OpenID connecthttps://api.maritimecloud.net/v2/api-docs

References

Page 20: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Service Technical Designs• Service Registry

https://staging-management.maritimecloud.net/#/pages/sr/designs

• VIS Technical REST Design – SeaSWIM side (mandatory)http://s3-eu-west-1.amazonaws.com/stm-stmvalidation/uploads/20170407112931/VIS-REST-Design-for-SeaSWIM_v2.2.1.docx

• Swagger (REST API)Included in VIS Technical REST Design Description, Appendix Service Design as XML, <ServiceDesignSchema:model>

– http://s3-eu-west-1.amazonaws.com/stm-stmvalidation/uploads/20170407113154/VIS_Swagger_Public_v2_2_0.json_.txt

• Swagger UI (requires valid STM Client Certificate): https://smavistest.stmvalidation.eu/swagger/ui/index

• PortCDMhttp://specification.portcdm.eu/

References

Page 21: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

SSC=SeaSWIM Connector

References

Functionality• Authentication on incoming requests

• Check that received client certificate is valid and trusted • trusted if issues by MCP)

• Send Host certificate to consumer• Authentication on outgoing requests

• Send Client certificate• Check that received host certificate is valid and trusted

• trusted if domain name corresponds to URL and issued by trusted CA or MCP

• Encryption/Decryption (https tls)

Optional• findService• findIdentities• callService

Page 22: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

SSC Technology

• REST (preferred in the STM Live Testbed)

• HTTPS TLS encryption

• X.509 Certificates (preferred in the STM Live Testbed)• Client Certificates generated from MCP

• Host Certificates preferred to be generated from MCP (self-signed), but can also be issued by GeoTrust or Let’s Encrypt

Page 23: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

VIS Public Interface

subscribeToVoyagePlan

uploadVoyagePlan

getVoyagePlans

uploadTextMessage

uploadArea

send voyageplan

(service call)

ACK

removeSubscription

ACK

findSubscriptions

«block»

Voyage Information Serv ice -v 3

subscribeToVoyagePlan

uploadVoyagePlan

getVoyagePlans

uploadTextMessage

uploadArea

send voyageplan

(service call)

ACK

removeSubscription

ACK

findSubscriptions

«functional block»

Forward incoming Voyage

Plan

«functional block»

Handle subscriptions

«functional block»

Manage Voyage Plan

storage

«functional block»

Handle request

Towards SeaSWIM

«functional block»

Handle ACL

«functional block»

Forward incoming Text

Message

«functional block»

Forward incoming Area

«service»

Voyage Information

Serv ice

«functional block»

Send to authorized

subscribers

«functional block»

Handle ACK

«functional block»

Start-up and

configuration

«functional block»

Ev ent Logging

References

Page 24: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

VIS Documentationhttp://stmvalidation.eu/service-catalogue/

VIS Specification as XML

VIS InternalApplication Design Document

VIS JAVA Implementation Document

VIS Instance as XML

Private SeaSWIM and Service

Registry

VIS C# Implementation Document

VIS Private REST Design Document

VIS SpecificationDocument

2.2

2.2 2.2

VIS REST Design Document VIS Design

as XML

References

Page 25: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

VIS Technical (REST) DesignReferences

«Interface»

VIS Get REST Interface

+ getVoyagePlans(GetVoyagePlanObject): GetVPResponseObject

tags

dataExchangePattern = REQUEST_RESPONSE

GET

instanceURL/v oyagePlans

«Interface»

VIS Upload REST Interface

+ uploadVoyagePlan(URL, URL, rtz:route): void

+ uploadTextMessage(URL, stm:textMessage): void

+ uploadArea(S124:DataSet, URL): void

tags

dataExchangePattern = REQUEST_CALLBACK

POST instanceURL/v oyagePlans

{myVoyagePlan}

POST

instanceURL/textmessage

{myTextMessage}

POST InstanceURL/area

{myArea}

«Interface»

VIS Subscription REST Interface

+ subscribeToVoyagePlan(MRN, URL): void

+ removeVoyagePlanSubscription(MRN, URL): void

+ getSubscriptionToVoyagePlan(MRN, URL): GetSubscriptionResponseObj

tags

dataExchangePattern = REQUEST_CALLBACK

POST InstanceURL/v oyagePlans/subscription?

callbackEndpoint=myURL

DELETE InstanceURL/v oyagePlans/subscription?

callbackEndpoint=myURL

GET InstanceURL/v oyagePlans/subscription?

callbackEndpoint=myURL

«Interface»

VIS Acknowledgement REST Interface

+ acknowledgement(DeliveryAck): void

tags

dataExchangePattern = ONE_WAY

POST InstanceURL/acknowledgement/

{deliv eryAck}

Page 26: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform

Snap-shot existing ServicesReference: HOW-TO Find interoperable services to consume

References

Page 27: HOW-TO Get started with...HOW-TO Get started with exchange of RTZ via MCP This HOW-TO describes how to get started with the fundamental exchange of RTZ via Maritime Connectivity Platform