Introduction to CISE

67
14 Oct 2021 Introduction to CISE Architecture and standards

Transcript of Introduction to CISE

Page 1: Introduction to CISE

14 Oct 2021

Introduction to CISEArchitecture and standards

Page 2: Introduction to CISE

The Maritime CISE

Common Information Sharing Environment for the EU Maritime Domain

CISE aims at creating a political, cultural, legal and technical

environment

to enable information sharing between existing and future

surveillance systems and networks

2

Page 3: Introduction to CISE

Why CISE?

3

Reporting

IntelligencePlatforms

Databases

Sensors

AISVMS

VTSLRIT

GMDSS

UAS

CoastalUUV Shipborne

AirborneHUMINT

COMINT IMINT

SIGINT

ISAR

Radar

UUV SONARVisual

Ports info

Fishing licencesMarine data Ship registers

Page 4: Introduction to CISE

How CISE? The Hybrid Architecture

Explains

• how CISE should work

• how information is exchanged

Defines

• Top-level requirements and principles

• Common building blocks

• Flexible organisational structure• each participant can choose how to share or have access to information

4

Page 5: Introduction to CISE

Key Principles

Connecting public authorities and their ICT systems

• civil and military

• regional/sectorial organisations, EU agencies

Connecting existing ICT systems

→ not a new surveillance system, not a new screen

Decentralised

→ point-to-point exchange of information

5

Page 6: Introduction to CISE

Key Principles

Sector-neutral solution

→ all sectors and systems are important

Voluntary

→ information exchange not enforced by legislation

Easy for information providers

→ ownership of the information, security, access rights

6

Page 7: Introduction to CISE

twitter.com/emsa_lisbon

facebook.com/emsa.lisbon

Information exchange in

CISE

The CISE service and data models

Page 8: Introduction to CISE

How information is exchanged in CISE

Existing ICT systems can exchange information in CISE

• When their users (the operators) need it

Information goes from the provider to the consumer

• CISE is transparent to the users

• No central storage of information, no intermediate storage

• Information exchanged is reintegrated/ visualised in the ICT systems

• No new screens for operators

8

Page 9: Introduction to CISE

How information is exchanged in CISE

Voluntary exchange

• Information providers are not obliged to exchange any

information

• Information providers remain owners of their data

• CISE paves the road for information exchange

Communication protocol – CISE Service Model

• 3(x2) patterns: pull, push, publish/subscribe (+ multicast)

• Information services

9

Page 10: Introduction to CISE

Communication needs and patterns

We need to send information to

another partner

The partner did not request it

1. I know which partner can be

interested → Push

2. I don’t know the partners that may

be interested → Push unknown

10

CISE

ICT System

Consumer

ICT System

Providerpublish

PUSH

CISE

ICT System

Consumer

ICT System

Provider

publish

ICT System

Consumer publish

PUSH unknown

Page 11: Introduction to CISE

Communication needs and patterns

We need to request information to a

partner

1. I know which partner may have

the information → Pull

2. I don’t know if a partner may have

the information → Pull unknown

11

ICT System

Consumer

ICT System

Providerresponse

PULL

ICT System

Provider

ICT System

Consumer

ICT System

Provider

PULL unknown

request

response

request

response

request

Page 12: Introduction to CISE

Communication needs and patterns

A partner is offering regular information

on a subject (e.g., a vessel, an incident, etc.)

I want to receive the information

1. I know which partner is offering the

information → Publish/Subscribe

2. I don’t know if any partner is

offering the information →

Publish/Subscribe unknown

12

ICT System

Provider

ICT System

Consumer

ICT System

Provider

publish

subscribe

publish

subscribe

PUBLISH / SUBS

publish

Page 13: Introduction to CISE

Information services

Make available consolidated or fused data

• in one or several geographical areas

• for one or several CG functions

Information described using the CISE data model

• Lingua franca in the maritime domain

13

Page 14: Introduction to CISE

CISE Data Model

Design principles

• Oriented to cross-sector information

exchange

• Independent from any business

process

• Flexible

• Extensible

18 data entities with their attributes

Vessel, Operational assets, Cargo, Movement,

Location, Action, Incident, Anomaly, Risk, Person,

Organization, Document, METOC

14http://emsa.europa.eu/cise-documentation/cise-data-model-1.5.3/

Page 15: Introduction to CISE

CISE Data Model

Vessel static info (including owners)

• EU merchant vessels registration files

• EU fishing vessels registration files

• EU leisure boats registration files

• Non-EU vessels registries

Vessel tracks

• Coastal radar

• Coastal AIS

• Satellite AIS, satellite radar, LRIT

• VMS

• Satellite imagery

About persons (e.g., masters and crew on EU registered vessels)

• for merchant vessels

• for fishing vessels

• for leisure boats (boating licenses)

Alerts and risks

• Port state control records

• Recorded accidents/incidents involving

a ship

• Transmission of alerts on ships/zones

among all national CG authorities in

Europe

15

Information that can be exchanged with the CISE Data Model (examples)

Page 16: Introduction to CISE

CISE Data Model

Reporting formalities (merchant vessels)

• Notification of arrival/departure

• Goods, dangerous goods

• Crew and passengers lists

• Other reporting formalities

Assets at sea

• Real-time positions of surveillance and

intervention assets

Vessels of interest

• IUU vessel list

• Vessel of interest list

16

Information that can be exchanged with the CISE Data Model (examples)

Page 17: Introduction to CISE

Information Services – Definition

Service ID Unique identifier (URN) of a service in CISE:

rc.simlsa2-noderc.vessel.pull.consumer

Service Type Data type exchanged using this service.

For instance, a service of type VesselService exchanges

vessel data.

Service Operation Supported communication pattern:

Pull, Push, Subscribe, Feedback

Service Role Role of the service in the communication pattern:

Provider, Consumer

Service Status Draft, online, test, maintenance, deprecated

Participant ID Legacy system owning the service (URN)

rc.simlsa2-noderc

17

Page 18: Introduction to CISE

Information Services – Service Type

One information type per service → Service type• Main data entity (vessel) +

related entities (location, incident, etc.)

• Vessel information →VesselService

Several services can carry information of the same type• from different sources

• for different purposes

• Vessel → AIS fused data, verified VMS positions, …

N-level

2nd-level

1st-level (direct) relationships

Main Entity

Vessel

IncidentCargo

ObjectEventVehicleCargo

Location

ObjectLocation

Location

EventLocation

Document

EventDocument

18

Page 19: Introduction to CISE

Information services – Service type

19

ActionService LocationDocumentService

AgentService MaritimeSafetyIncidentService

AnomalyService MovementService

CargoDocumentService OperationalAssetService

CertificateDocumentService OrganizationService

CrisisIncidentService OrganizationDocumentService

DocumentService RiskService

IncidentService VesselService

1 data entity → 1 service type

A service can carry information from

different sources

Page 20: Introduction to CISE

How to use information services

Communication patterns use 2+ information services

20

ICT

System

Consumer

ICT

System

Providerinformation

PUSH

ICT

System

Consumer

ICT

System

Provider

information

ICT

System

Consumerinformation

ICT

System

Consumer

ICT

System

Providerinformation

PULL

ICT

System

Provider

ICT

System

Consumer

ICT

System

Provider

request

info 1

request

info 2

request

Service 1 Service 2 Service 3 Service 4

Service 5 Service 6 Service 8 Service 9

Service 10Service 7

Page 21: Introduction to CISE

How to use information services

1. I want to send vessel information to

another partner

• I need a push provider vessel* service

• Example: eu.mysystem.vessel.push.provider

2. I want to receive vessel information

from other partners

• I need a push consumer vessel service

• Example: fi.othersystem.vessel.push.consumer

21

ICT

System

Consumer

ICT

System

Providerinformation

eu.mysystem.vessel.push.provider

fi.othersystem.vessel.push.consumer

The service can receive information

from several providers

The service can provide information

to several consumers

* service type: VesselService

Page 22: Introduction to CISE

How to use information services

1. I want to request cargo information

to other partners

• I need a pull consumer cargo* service

• Example:

eu.mysystem.cargo.pull.consumer

2. I want to receive requests from

other partners

• I need a pull provider cargo* service

• Example:

gr.othersystem.cargo.pull.provider

22

ICT

System

Consumer

ICT

System

Provider

eu.mysystem.vessel.pull.provider

fi.othersystem.vessel.pull.consumer

The service can request and

consume information from several

providers

The service can provide information

to several consumers

information

request

* service type: CargoService

Page 23: Introduction to CISE

How to use information services

1. I want to offer regular information on

maritime incidents

• I need a subscribe provider incident*

service

• Example:eu.mysystem.incident.subscribe.provider

2. I want to subscribe to the information on

maritime incidents

• I need a subscribe consumer incident*

service

• Example:it.system.incident.subscribe.consumer

23* service type: IncidentService

ICT

System

Provider

ICT

System

Consumer

ICT

System

Provider

publish

subscribe

publish

subscribe

publish

eu.mysystem.incident.subscribe.provider

it.system.incident.subscribe.consumer

Page 24: Introduction to CISE

How to use information services

How many information services per ICT system?

As many as we need

Can I have two services: subscribe provider incident?

Yes, with different Service ID. They may use different

information sources.

How to limit the access to my information?

With access rights rules

24

Page 25: Introduction to CISE

Information services – Access Rules

Rules are defined on provider services

• Enforced by the CISE Node

Default rule: deny access to information

Information owners can define several rules over a

service:

• To grant access (requests, pushed information)

• To filter the information exchanged (data fields)

25

Page 26: Introduction to CISE

Information services – Access Rules

26

provider service

Access rule

Target group

Allowed consumer services

Access permissions

Data fields allowed to the

consumer services

Other rules

Page 27: Introduction to CISE

Target

Information services – Access Rules

27

Target group Aggregates several targets

TargetTarget

A target is a set of consumer services

defined by:• All consumer services

• Service ID

• Participant ID

• Participant metadata (member state, etc.)

Page 28: Introduction to CISE

Information services – Access Rules

28

eu.mysystem.vessel.pull.provider

AR1 – Allow Italy and Germany

Target group

- IMO

- Colour

- Location

Target 1 Target 2

Participant.Country = IT Participant.Country = DE

Access permissions

Page 29: Introduction to CISE

twitter.com/emsa_lisbon

facebook.com/emsa.lisbon

Building blocks

Page 30: Introduction to CISE

CISE

Information exchange in CISE

30

Legacy

System

A

Legacy

System

B

Information

Page 31: Introduction to CISE

CISE

Building Blocks

31

CISE

Node

Legacy

System

A

CISE

Network

Adapto

r

CISE

Node

Adapto

r

Legacy

System

B

Page 32: Introduction to CISE

Building Blocks

32

CISE

Network

Legacy

System

• Same software for all the partners

• Communication, security, access rights

• Can handle several legacy systems

• Optional

• Translates information CISE - Legacy System

• Specific for each Legacy System

• Existing ICT system

• Can provide/consume information

• Used for maritime surveillance

Adap

tor

CISE

Node

Page 33: Introduction to CISE

Building Blocks (CISE Node)

33

Service Registry Distributed directory in the CISE

network

Subscription Registry Local directory of subscriptions

Access Rights Registry Local directory of access rules

Accounting Service Local registry of events

Monitoring Service Monitoring node status (and

neighbourhood)

Page 34: Introduction to CISE

twitter.com/emsa_lisbon

facebook.com/emsa.lisbon

Communication Protocol

CISE Service Model

Page 35: Introduction to CISE

Common Communication Protocol

4 corners

Service-oriented

• information exchange using information services

Message-driven

• information services use messages

• Basic piece of data exchanged between corners

35

CISE

Node 1

Legacy

System

A

CISE

Node 2

Legacy

System

B

Corner 1 Corner 2 Corner 3 Corner 4

Page 36: Introduction to CISE

How information exchange works

36

CISE

Node

1

Legacy

System

A

CISE

Network

Adaptor

A

CISE

Node

2

Adaptor

B

Legacy

System

B

Stakeholder A Stakeholder B

Legacy

System

C

Adaptor

C

Stakeholder C

Initial organisation

Page 37: Introduction to CISE

How information exchange works

37

CISE

Node

1

Legacy

System

A

CISE

Network

Adaptor

A

CISE

Node

2

Adaptor

B

Legacy

System

B

Stakeholder A Stakeholder B

Legacy

System

C

Adaptor

C

Stakeholder C

Initial organisation

I can provide

vessel data

on request I need vessel

data

Page 38: Introduction to CISE

How information exchange works

38

CISE

Node

1

Legacy

System

A

CISE

Network

Adaptor

A

CISE

Node

2

Adaptor

B

Legacy

System

B

Legacy

System

C

Adaptor

C

eu.node1.legacyA.vessel.pull.consumereu.node2.legacyB.vessel.pull.provider

Page 39: Introduction to CISE

How information exchange works

39

CISE

Node

1

Legacy

System

A

CISE

Network

Adaptor

A

CISE

Node

2

Adaptor

B

Legacy

System

B

Legacy

System

C

Adaptor

C

eu.node1.legacyA.vessel.pull.consumereu.node2.legacyB.vessel.pull.provider

eu.node1.legacyA.vessel.pull.consumer eu.node2.legacyB.vessel.pull.provider

Page 40: Introduction to CISE

How information exchange works

40

CISE

Node

1

Legacy

System

A

CISE

Network

Adaptor

A

CISE

Node

2

Adaptor

B

Legacy

System

B

Legacy

System

C

Adaptor

C

eu.node1.legacyA.vessel.pull.consumereu.node2.legacyB.vessel.pull.provider

eu.node1.legacyA.vessel.pull.consumer eu.node2.legacyB.vessel.pull.provider

Request

Page 41: Introduction to CISE

How information exchange works

41

CISE

Node

1

Legacy

System

A

CISE

Network

Adaptor

A

CISE

Node

2

Adaptor

B

Legacy

System

B

Legacy

System

C

Adaptor

C

eu.node1.legacyA.vessel.pull.consumereu.node2.legacyB.vessel.pull.provider

eu.node1.legacyA.vessel.pull.consumer eu.node2.legacyB.vessel.pull.provider

Request

Page 42: Introduction to CISE

CISE Messages

Defined according to the CISE Service Model

Types: • PullRequest, PullResponse, Push

• Acknowledgement (sync, async)

• Feedback

Carry: information, information requests, subscription requests, confirmation of delivery, etc.

XML documents• Three sections: envelop, payload and signature

42

Page 43: Introduction to CISE

Message Structure

Envelop

• Identification

• Addressing:

• From service X

• To service Y

• Operation• Push, pull, etc.

Payload

• Information

exchanged

• Formatted using

the CISE Data

Model

• Metadata on the

payload:

sensitivity, etc.

43

Signature

• Ensures the

authenticity of the

message sender

• XMLSignature

standardhttps://www.w3.org/TR/xmldsig core1/

Page 44: Introduction to CISE

Message exchange: Pull Request

44

Legacy System

BCISE Node 1

Legacy System

ACISE Node 2

2. Sync Acknowledgement

1. PullRequest

5. PullRequest

(Corner 1)(Corner 2)(Corner 3)(Corner 4)

Optional: Confirmation of delivery

4. Sync Acknowledgement

3. PullRequest

6. Sync Acknowledgement

7. Async Acknowledgement

9. Async Acknowledgement

* Same protocol for any message sent from Corner 1/4

Act

ion

Page 45: Introduction to CISE

Example: Request to a pull service

<PullRequest>

<CorrelationID>fd5b2bb2-8095-4acf-b6cb-3dd78ba8a572</CorrelationID>

<CreationDateTime>2019-02-24T14:46:55.145Z</CreationDateTime>

<MessageID>fd5b2bb2-8095-4acf-b6cb-3dd78ba8a572</MessageID>

<Priority>High</Priority>

<RequiresAck>true</RequiresAck>

<Sender>

<ServiceID>eu.node2.legacyB.vessel.pull.provider</ServiceID>

<ServiceOperation>Pull</ServiceOperation>

<!-- More info -->

</Sender>

<Recipient>

<ServiceID>eu.node1.legacyA.vessel.pull.consumer</ServiceID>

<ServiceOperation>Pull</ServiceOperation>

<!-- More info -->

</Recipient>

<!-- Payload and Signature -->

</PullRequest>

45

Identification

Addressing

Page 46: Introduction to CISE

Example: Request to a pull service

<PullRequest>

<!-- Envelop -->

<Payload>

<InformationSecurityLevel>NonClassified</InformationSecurityLevel>

<InformationSensitivity>Green</InformationSensitivity>

<Purpose>NonSpecified</Purpose>

<Vessel>

<MMSI>228002000</MMSI>

<ShipType>FishingVessel</ShipType>

</Vessel>

</Payload>

<!-- Signature -->

<!-- Envelop -->

</PullRequest>

46

CIS

E D

ata

Mo

de

l

Do you have any

information

on a fishing vessel

with

MMSI 228002000?

Page 47: Introduction to CISE

Example: Request to a pull service

<PullRequest>

<!--Envelop -->

<!--Payload -->

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo> <!--How to create the signature --> </SignedInfo>

<SignatureValue>olVHn11tIGFvni0whnY4cKj01LkDl4B3bAw99i7OBbG7ZTnzWNQX1WG79r+Rl4blXMSnnrhyRg3WA7zSCVmHqx3ca4V6MyFOJAJ0iwjWasNBmxrntzCsKO/CElb31N3AlH4zGmgpOiLG4mDKNJ8V3ZLMfXLQLjyaZrRrPlvdUNWBidApig4y9aGGCJWjji3m9l4OIDbGKFFcTqOxw66xG0SsV0u39kVFuLHmBCWoo7Kt2NEiPw8MAo/+9xEOs05U6uCRR0IrxzoDcZtwAHha

YBYs4bT/DHwIrYf0f68xG/9ec2n+xWAl88dAOsCrqQkdV3PDGSYYQF90jwhh7h1aw==</SignatureValue>

</Signature>

<!-- Envelop -->

</PullRequest>

47

Page 48: Introduction to CISE

Example: Request to a pull service

<PullRequest>

<!--Envelop -->

<!--Payload -->

<!--Signature -->

<PullType>Request</PullType>

<ResponseTimeOut>1000</ResponseTimeOut>

<Requests>

<ExpectedResponseTime>32</ExpectedResponseTime>

<MaxEntitiesPerMsg>100</MaxEntitiesPerMsg>

<MaxNumberOfRequests>1</MaxNumberOfRequests>

<QueryByExampleType>BestEffort</QueryByExampleType>

</Requests>

</PullRequest>

48

Request information

only once

I will wait 1000s

for the response

Page 49: Introduction to CISE

How information exchange works

49

CISE

Node

1

Legacy

System

A

CISE

Network

Adaptor

A

CISE

Node

2

Adaptor

B

Legacy

System

B

Legacy

System

C

Adaptor

C

eu.node1.legacyA.vessel.pull.consumereu.node2.legacyB.vessel.pull.provider

eu.node1.legacyA.vessel.pull.consumer eu.node2.legacyB.vessel.pull.provider

Response

Page 50: Introduction to CISE

How information exchange works

50

CISE

Node

1

Legacy

System

A

CISE

Network

Adaptor

A

CISE

Node

2

Adaptor

B

Legacy

System

B

Legacy

System

C

Adaptor

C

eu.node1.legacyA.vessel.pull.consumereu.node2.legacyB.vessel.pull.provider

eu.node1.legacyA.vessel.pull.consumer eu.node2.legacyB.vessel.pull.provider

Response

Page 51: Introduction to CISE

How information exchange works

51

CISE

Node

1

Legacy

System

A

CISE

Network

Adaptor

A

CISE

Node

2

Adaptor

B

Legacy

System

B

Legacy

System

C

Adaptor

C

eu.node1.legacyA.vessel.pull.consumereu.node2.legacyB.vessel.pull.provider

eu.node1.legacyA.vessel.pull.consumer eu.node2.legacyB.vessel.pull.provider

Service

Registry

Service

Registry

Services in Node 1:

• eu.node1.legacyA.vessel.pull.consumer• eu.node1.legacyA.incident.push.provider• eu.node1.legacyC.vessel.pull.consumer

Services in Node 2:

• eu.node2.legacyA.vessel.pull.provider• eu.node2.legacyA.cargo.pull.provider

Synchronise

Page 52: Introduction to CISE

twitter.com/emsa_lisbon

facebook.com/emsa.lisbon

The CISE Network

Page 53: Introduction to CISE

Internet

CISE Network

Developed during EUCISE2020 (2014-2019)

• Unclassified Network, still secure for sensitive

information

• VPN over the Internet

53

CISE

Node 1

CISE

Node 2

CISE

Node 3CISE

Node 4

Page 54: Introduction to CISE

CISE Network – Transitional Phase

Status

• 12 nodes from MSs and

EU agencies

• 25 ICT systems

covering all the 7

different maritime

sectors

54

Page 55: Introduction to CISE

twitter.com/emsa_lisbon

facebook.com/emsa.lisbon

The CISE Node

Page 56: Introduction to CISE

CISE Node

Version 1 – EUCISE 2020 (2018 - 2021)

• Core Services: Infrastructure services that enable the

connection of the Participants (Legacy Systems)

• Common Services: Capabilities to exchange information

in the network using the CISE Data and Service models

• Developed by a group of companies (RTI)• Java technology stack (Java 8) and several auxiliary subsystems

• Tested in the EUCISE 2020 project

56

Page 57: Introduction to CISE

CISE Node

Version 2 – Transitional Phase (2021- )

• Developed by JRC/EMSA (+ European Dynamics)

• Core and Common services

• Backward compatible with adaptors

• Cannot work with version 1

New microservice architecture

New infrastructure based on Kubernetes

New technology stack

57

Page 58: Introduction to CISE

Microservices – Message workflow

58

Event queue

[Kafka]

Submission

agentPriority Agent

Access

Rights Agent

Discovery

Agent

Message

Router

Delivery

/Transfer

agents

Accounting

[ELK – Logstash]

OUTLogsIN

Page 59: Introduction to CISE

Microservices – Administration Console

59

Administration

Console

[Angular]

Identity

management

[Keycloak]

Service

RegistrySubscription

Registry

Access

Rights

Registry

Node

Configuration

Monitoring

service(+Graphana)

Accounting

service(+ Kibana)

Database

[PostgreSQL]

Page 60: Introduction to CISE

InterfaceNode-Node

CISE Node - External interfaces

60

InterfaceNode-Adaptor

CISE NodeAdaptor

CISE Node

CISEMessageService

CISEMessageService

Sync

Health

Health

CISEMessageService

Messages

Services

Status

Status

Messages

Page 61: Introduction to CISE

Server / Cloud

VMVM VMVM VMVM VMVM

VLAN(s)

Kubernetes / RKE

Cluster – CISE Node

CISE Node - Infrastructure

61

Pod Pod Pod Pod Pod Pod

control

plane etcd worker worker worker

Microservices Subsystems

PostgreSQL

Kafka

Pod

network

VM *

worker

Pod

*

Pod

*

* Future extensions for additional capabilities/performance

Page 62: Introduction to CISE

CISE Node – Deployment view

62

CISE Node

CISE

Network

X.X.X.0/16

Network segment X.X.Y.0/24

Top-level domain de

Node ID de.node

CISE Node

Network segment X.X.Z.0/24

Top-level domain pt

Node ID pt.node

Page 63: Introduction to CISE

CISE Node – Deployment view

63* incomplete diagram

Page 64: Introduction to CISE

CISE Node v2 - Technology stack

Microservices

• Java 11

• Quarkus.io framework

• Angular (+ MaterialUI)

Infrastructure +

Subsystems

• RKE (Kubernetes)

• Longhorn

• Rancher

• Kafka

• PostgreSQL

• Prometheus + Graphana

• Keykloak

• ELK (ElasticSearch stack)

• and others

64

Page 65: Introduction to CISE

CISE Node in the Transitional Phase

65

2018 2019 2020 2021 2022 2023

EUCISE 2020 CISE TRANSITIONAL PHASE

Version 1

Version 2

Maintenance

Development Evolutive Maintenance

2.0 2.1 2.2 2.3 2.4

First version

• Same functionalities as v1

• Backward compatible with

adaptors

New versions with updates and

new functionalities

Roll-out

Page 66: Introduction to CISE

CISE Node v2 - Roll-out

Preparation

• Preparatory meeting

• Information gathering

• Create and test infrastructure

• Configure and test CISE VPN

Installation

• Installation process (automatic)

• Test of the software

Decommissioning

(optional)

• Uninstall Node v1

• Remove old infrastructure

Operation

• Connect node to CISE Network

• Configure adaptors

• Configure services

• Training

66

3+1 STEPS, FULL SUPPORT

Support from EMSA/JRC

Installation

request

1 - 4 weeks 1 week 1 day

[email protected]

Page 67: Introduction to CISE

twitter.com/emsa_lisbon

facebook.com/emsa.lisbon