H2020-EUJ-02-2016
H2020 Grant Agreement Number 723076
NICT Management Number 18302

Deliverable D3.5

CPaaS.io System Architecture(v3)
Version V3.0
June 29, 2018
ABSTRACTThis fifth WP3 deliverable provides an update to the initial CPaaS.io architecture D3.2 andintermediate version D3.3. The architecture work follows the requirement collection phase (as alreadysummarised in Deliverable D3.1) and improves the previous version of the architecture, capturing thework achieved by other technical Work Packages since D3.3 was released. This document provides
some elements of the used methodology and then provides both the updated Functional andInformation Views, together with some Perspectives (including security and interoperability inparticular). The Functional View gives a second view about which functional components need to be
implemented in order to fulfil functional requirements. Perspectives on the other hand focuses onhow (through strategies and tactics) the non-functional requirements can be fulfilled.
As explained in the DoW, we are using the IoT ARM methodology, which means that this document
features a technology-agnostic logical architecture - which is agreed upon by both parties (Japanand EU) - in addition to 1/ two concrete instantiations of this logical architecture (later referred as
u2-based and FIWARE-based concrete architectures) which are formally captured within two socalled Instantiation Views and 2/ a set Deployment and Operation Views which give -on the one
hand- detail about physical deployment of the platform and scenarios and -on the other handinformation about relation occurring between CPaaS.io users, scenario infrastructure and theplatform.
Finally, the second version of the accompanying Volere sheet, keeps track of the functional and nonfunctional requirement coverage, take into account the latest requirement updates from D2.5 andsoftware developments, through respectively the architecture Views and Perspectives. This Volere
document is the result of the iterative requirement process, part of the IoT ARM methodology.

This work is licensed under the Creative Commons Attribution 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.

Deliverable D3.5

CPaaS.io System Architecture (v3)

Disclaimer
This document has been produced in the context of the CPaaS.io project which is jointly funded by theEuropean Commission (grant agreement n° 723076) and NICT from Japan (management number 18302).
All information provided in this document is provided "as is" and no guarantee or warranty is given thatthe information is fit for any particular purpose. The user thereof uses the information at its sole risk andliability. For the avoidance of all doubts, the European Commission and NICT have no liability in respect of
this document, which is merely representing the view of the project consortium. This document is subject
to change without notice.

Document Information
EditorFrançois Carrez (UoS)

Authors

Editor +A. Skarmeta, J-A. Martinez, M-A. Zamora, A. Canovas (OdinS);
M. Strohbach (AGT),
S. Prost (TTN)
S. Haller, A. Gschwend, M. Fraefel (BFH);
E. Benz, B. Cheng, G. Solmaz, M. Bauer (NEC);N. Koshizuka (UoT)
K. Shindo (YRP)

Reviewers

Martin Strohbach (AGT);

Delivery TypeR

Dissemination
Level

PublicContractual
Delivery Date

June 30, 2018

ActualDelivery Date

June 29, 2018

Keywords

Requirement analysis, functional decomposition, system use-cases,
system architecture, concrete platform instantiations, IoT ARM

H2020 EUJ-02-2016

CPaaS.io

Page 2 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Revision History
Rev.

Date

Description

Contributors

v0.1

05/12/2017

Initial contribution with new Instantiation view

F. Carrez (UoS)

v0.2

04/05/2018

Update in several sections following F2F in
Amsterdam

F. Carrez (UoS)

v0.3

25/05/2018

Additions and updates to §6.2

E. Berz (NEC)v0.4

25/05/2018

Addition and updates to §6.2

B. Cheng (NEC)v0.5

12/06/2018

Additions and updates to §5 (inter-p/finteroperability)

J-A. Martinez (OdinS)

v0.6

15/06/2018

New §6.2.4.3 (ColourRun Deployment View)

M. Strohbach (AGT)

v0.7

25/06/2018

Update to §5.2 (semantic interoperability)

A. Gschwend (BFH)

v0.8

26/06/2018

New §6.2.4.2 (Waterproof Am’dam Deployment
View

S. Prost (TTN)

v0.9

26/06/2018

Update to §4.3.2 (ontology section)

A. Gschwend (BFH)

v0.10

26/06/2018

Finalization

F. Carrez (UoS)

v0.11

27/06/2018

Review comments

M. Strohbach (AGT)

v0.12

27/06/2018

Addings to Ontology section §4.3.2

A. Gschwend (BFH)

v0.13

27/06/2018

Contribution to §6.1

N. Koshizuka (UoT)

v0.14

29/06/2018

Take into account Review comments + review ofJapanese contribution + finalization for delivery

F. Carrez (UoS)

H2020 EUJ-02-2016

CPaaS.io

Page 3 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Table of Contents
1

Introduction............................................................................................................................................................................. 11
1.1

2

3

4

5

6

7

Delta with previous version D3.3 ........................................................................................................................... 12

Methodology .......................................................................................................................................................................... 13
2.1

Introduction to the IoT ARM.................................................................................................................................... 13

2.2

Using the IoT ARM in the context of CPaaS.io.................................................................................................. 25

CPaaS.io Requirements Analysis and Mapping ......................................................................................................... 26
3.1

Summary of requirement collection phase ........................................................................................................ 26

3.2

Requirement Analysis ................................................................................................................................................. 32

CPaaS.io Views ....................................................................................................................................................................... 33
4.1

Actors involved in data production....................................................................................................................... 33

4.2

CPaaS.io Functional View .......................................................................................................................................... 34

4.3

CPaaS.io Information View ....................................................................................................................................... 44

Perspectives ............................................................................................................................................................................. 54
5.1

Security ............................................................................................................................................................................ 54

5.2

Semantic Interoperability .......................................................................................................................................... 58

5.3

Performance ................................................................................................................................................................... 59

5.4

Scalability ........................................................................................................................................................................ 59

Instantiation views ................................................................................................................................................................ 59
6.1

U2-based platform Instantiation View ................................................................................................................. 59

6.2

FIWARE-based platform Instantiation View ....................................................................................................... 74

References............................................................................................................................................................................. 103

Appendix : Requirements (Volere Template) .................................................................................................................... 106

List of Figures
Figure 1: Simplified process leading to generating a concrete architecture ........................................................... 13
Figure 2: Simplified IoT Domain Model (feat. most important concepts) ................................................................ 14
Figure 3: IoT Domain Model (as in IoT-A D1.5 [1]) ............................................................................................................ 16
Figure 4: IoT Information Model (as in IoT-A D1.5 [1]) .................................................................................................... 17
Figure 5: IoT Functional Model (as in IoT-A D1.5 [1]) ....................................................................................................... 19
Figure 6: IoT Functional View (as in IoT-A D1.5 [1]) .......................................................................................................... 20
Figure 7: DIKW model ................................................................................................................................................................... 22
Figure 8: Viewpoint layout for the Instantiation View ...................................................................................................... 23
H2020 EUJ-02-2016

CPaaS.io

Page 4 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 9: CPaaS.io logical functional architecture .............................................................................................................. 35
Figure 10: Core Concepts for IoT Service Orchestration ................................................................................................. 37
Figure 11: UML UC for Class-I RDP pre-configuration case ........................................................................................... 45
Figure 12: UML UC for Class-II RDP pre-configuration case .......................................................................................... 46
Figure 13: UML UC for Class-III RDP pre-configuration phase ..................................................................................... 47
Figure 14: Data production for Class-I RDPs........................................................................................................................ 49
Figure 15: Data production for Class-II RDP ........................................................................................................................ 50
Figure 16. EU-JP joint security scenario ................................................................................................................................. 57
Figure 17. Access Control System for Smart Building. Floors representation ......................................................... 57
Figure 18. XACML framework instantiation .......................................................................................................................... 58
Figure 19: ucode structure .......................................................................................................................................................... 60
Figure 20: ucode field names and their widths ................................................................................................................... 60
Figure 21: Predefined cc values and but boundary between SLDc and ic ................................................................ 61
Figure 22: u2 Architecture (ucR focus) ................................................................................................................................... 62
Figure 23: u2 architecture (IoT Aggregator focus)............................................................................................................. 64
Figure 24: u2 architecture ("Omotenashi" Cloud focus) .................................................................................................. 65
Figure 25: IoT Engine with IoT Engine Open Platform ..................................................................................................... 67
Figure 26: uID architecture ......................................................................................................................................................... 68
Figure 27: Matching of the u2 components to the CPaaS.io Functional View........................................................ 69
Figure 28: uID architecture in deployment and operation view ................................................................................... 71
Figure 29: Public Transportation Open Data Centre providing both static and real-time location data of
trains and buses in Tokyo (Red dots show train positions and blue dots show bus positions) ....................... 72
Figure 30: Sapporo Open Data for Tourism ......................................................................................................................... 73
Figure 31: Smart Ambulance using IoT Technologies ...................................................................................................... 74
Figure 32: FogFlow Service Orchestrator............................................................................................................................... 79
Figure 33: Task Registration ....................................................................................................................................................... 80
Figure 34: Graphical editor of service topology ................................................................................................................. 80
Figure 35: Defining a requirement with a specified geo-scope.................................................................................... 81
Figure 36: FIWARE components mapped onto the Instantiation View...................................................................... 85
Figure 37: Matching of the FIWARE components to the CPaaS.io Functional View ............................................. 87
Figure 38: Interactions of the FIWARE FCs............................................................................................................................ 88
Figure 39: FIWARE-based platform deployment and operation view ........................................................................ 92
Figure 40: Waterproof architecture and usage ................................................................................................................... 94
Figure 41: Waterproof deployment view............................................................................................................................... 95
H2020 EUJ-02-2016

CPaaS.io

Page 5 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 42: My Events Architecture ........................................................................................................................................... 96
Figure 43: Use Case Diagram My Events Application ....................................................................................................... 97
Figure 44. PAP Web configuration interface ........................................................................................................................ 99

H2020 EUJ-02-2016

CPaaS.io

Page 6 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

List of Tables
Table 1: List of Non-Functional Requirements .................................................................................................................... 27
Table 2: List of Functional Requirements .............................................................................................................................. 29
Table 3: Mapping table for the u2-based architecture .................................................................................................... 70
Table 4: Mapping table for the FIWARE-based architecture ......................................................................................... 90

List of Acronyms
AcronymDefinition

ABE

Attribute Based Encryption

ACP

Access Control PolicyAE

Augmented Entity

API

Application Programming Interface

AuthN

AuthenticatioN

AuthZ

AuthoriZation

BC

Business Case

BLE

Bluetooth Low-Energy

IoT ARM

IoT Architectural Reference Model

CapBACCapability-Based Access Control model

CAACS

Access Control System for Physical Space

CEP

Complex Event Processing

CP-ABE

Ciphertext-Policy Attribute-Base Encryption

CPU

Central Process Unit

CRM

Customer Relationship Management

CSF

Common Service Function

CSV

Comma Separated Values

CT

Capability TokenDC

Design Constraints

H2020 EUJ-02-2016

CPaaS.io

Page 7 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

DCAT

Data Catalo Vocabulary

DoW

Description of WorkFC

Functional Component

FG

Functional Group

FREQ

Functional REQuirement

FV

Functional View

GDLI

Government Data Listener & Ingestion

GE

General Enabler

GUI

Graphical User Interface

HFDS

Highly Functionally Distributed System

HSM

Hardware Security Module

IdM

Identity Management

IoT

Internet of Things

IoT-AInternet of Things – Architecture

JSON

JavaScript Object Notation

KAT

Knowledge Acquisition Toolkit

IdM

Identity Management

IV

Information View

LDLI

Live Data Listener & Ingestion

LOD

Linked Open Data

M2M

Machine to Machine

MPU

Micro Processor Unit

NFREQNon Functional REQuirement

NGO

Non-Governmental Organisation

NGSI

Next Generation Service Interface

OMA

Open Mobile Alliance

OMG

Object Management Group

H2020 EUJ-02-2016

CPaaS.io

Page 8 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

PAP

Policy Administration Point

PDP

Policy Decision Point

PDS

Personal Data StorePEP

Policy Enforcement PointPE

Physical Entity

PKC

Public Key Cryptography

PKI

Public Key Infrastructure

RDF

Resource Description Framework

RDFS

RDF Schema

RDP

Raw Data Producer (or Provider)

RTOS

Real-Time Operating System

SCIM

System for Cross-domain Identity ManagementSCP(ETSI) Smart Card Platform

SKC

Symmetric Key Cryptography

SotA

State of the Art

SPARQLSPARQL Protocol and RDF Query Language

SSN

Semantic Sensor Network

UC

Use-Case

VE

Virtual Entity

VRM

Vendor Relationship Management

XACML

eXtensible Access Control Markup Language

H2020 EUJ-02-2016

CPaaS.io

Page 9 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

List of Editing Shortcuts
ShortcutDefinition

e.g.

exempli gratia – for example

etc

et ceterafeat.

featuring

Gov

Governmenth/w

hardwarei.e.

id est – that isincl.

includingp/f

platform

resp.

respectively

s/w

softwaretbd

to be discussed/decided

vs.

versusw.r.t.

with respect to

H2020 EUJ-02-2016

CPaaS.io

Page 10 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

1 Introduction
This Deliverable D3.5 is the next to last version of the incremental architecture document that was initiatedwith D3.2 and improved with D3.3. It will be completed and consolidated by D3.7 due M30.
Leveraging on D3.3, this version goes deeper in the CPaaS.io architecture, providing an update requirement
analysis, introducing more views (that illustrate 1/ the relation between logical and concrete architecturesand 2/ the relation between the scenarios and the platform), providing updated content to the Functionaland Information View and providing an updated Perspective section. Please refer to Section 1.1 which goesin the full detail of the delta between D3.3 and D3.5.
In the CPaaS.io project, we are reusing the architectural approach promoted by the IoT-A FP7 project called
the Internet of Things Architectural Reference Model (IoT ARM). As we explain in Section 2, the IoT ARM is
not an IoT architecture as such; instead it provides a whole methodology and framework for creating a
logical IoT Architecture with potential multiple instantiations (or implementations) as we can see below.
While an architecture team usually uses the IoT ARM for creating one single concrete architecture
considering one single use case (usually a targeted product with clear technical perimeter), CPaaS.io has
to face an additional difficulty as the project will produce not one, but two different concrete platformarchitectures out of the logical architecture: one architecture for the Japanese side, based on the u2
technology and a second one for the European side based on FIWARE. The IoT ARM is therefore a toolthat helps the two involved communities for reaching common understanding and agreeing on the mainarchitecture principles. The scope of this agreement includes:
•
•
•
•
•

•

A taxonomy of concepts (Domain Model);A logical structure for dealing with information (Information Model);A functional decomposition into logical components (Functional View);
System use-cases that illustrate interactions taking place between functional components for sometypical platform usage (Information View);
A strategy for ensuring interoperability, since the two concrete instantiations of a common“abstract & logical” platform architecture must eventually talk with each other and understandeach other in order to implement the interoperability and federation principles described as oneof the main technical objectives of the CPaaS.io project;
Strategies for ensuring additional system qualities (Perspectives).

The two later aspects – further developed in this third iteration of the architecture- are usually dealt with,
with the adoption of common or compatible design and technology choices (e.g. adopting RDF as asemantic data internal format and JSON-LD for serialisation) and the definition of common interfaces (e.g.
adopting REST, SPARQL etc.).
Finally this document is accompanied with a technical annex (Volere MicroSoft Excel document) thatsummarises the functional and non-functional requirements resulting from earlier project activities (seeD2.1 [2], D2.5 [4] and D3.1 [5] for more detail about Requirement collection and analysis).
This deliverable is then structured as follows.
Section 2 gives an introduction to the IoT ARM and in particular details the process part of the IoT ARM
methodology, focussing on requirement engineering, views and perspective definition.
H2020 EUJ-02-2016

CPaaS.io

Page 11 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Section 3 focuses on requirements and provides some insights about the analysis of requirements collected
earlier form the scenario holders on the one hand and on the other hand on functional/non-functional
requirements as seen from the platform perspective. It also shows the current coverage of the set of
requirements by the functional decomposition discussed in Section 4.2.
Section 4 provides the revised views of the CPaaS.io architecture. The functional view depicts and describes
a preliminary functional decomposition following the IoT ARM layered Functional Model, while theInformation View, at this stage, mainly consists of a collection of system use-cases that describe inter-FCs
interactions for a selected set of basic activities at platform level, involving not only the platform, but
additional actors like platform clients and data producers as well.
Section 5 consists of the architecture Perspectives and gives insights about how the different nonfunctional properties of the system are dealt with.
Section 6 is an important section that bridges the common logical and abstract view upon the CPaaS.io
architecture to two distinct – still compatible- instantiations of it. It describes in particular the various
reused components (u2- and FIWARE- based technologies) and spots some new ones, which will be in thecentre of CPaaS.io specific software developments. It also shows how the concrete sets of components
maps to the abstract and logical functional decomposition.
Finally Section 7 provides a conclusion and in particular gives some hints about the few limitations andgaps of this preliminary version. It also details next steps towards CPaaS.io architecture v3.

1.1 Delta with previous version D3.3
Deliverables describing the CPaaS.io architecture, namely D3.2, D3.3, D3.5 and D3.7, are incremental
documents. This section aims at describing updates brought within D3.5:
•
•
•

•
•
•
•

•

•

Updated Section 3.1.1 taking into account latest scenario requirements form D2.5;
Updated descriptions of the “logical” FCs in Section 4.2 (notably Section 4.2.2.1 and Section 4.2.2.2);
IoT ARM Views in Section 2.1.4:
o New Instantiation View (Section 2.1.4.5): Introduction of a new Layered Model which is used
to describe the u2-based and FIWARE-based “concrete” platform architectures. Thisanswers a remark made during the Year 1 project review in Tokyo;
o New Deployment and Operation View (Section 2.1.4.6) and consequently, introduction of
new Deployment and Operation Views in Section 6.1 (u2-based platform) and Section 6.2(FIWARE-based platform);
Added content about ontologies and various data formats used in the platform (FIWARE only) in
Section 4.3.2;
Added information about data stores and data management in Section 4.3.1.6;
Perspective section: update on the platform interoperability in Section 5.1.5 and Semantic
Interoperability in Section 5.2;
Introduction of the three Deployment and Operation Views corresponding to the FIWARE-based
platform in addition to two European scenarios (Enhanced User Experience in Section 6.2.4.3 andWaterproof Amsterdam in Section 6.2.4.2);
Introduction of four Deployment and Operation Views corresponding to the u2-based platform in
addition to three Japanese Scenarios (Transportation Scenario in Section 6.1.4.2, Sapporo scenario
in Section 6.1.4.3 and Health-Care scenario in Section 6.1.4.4);
Updated Volere Excel sheet (accompanying document).

H2020 EUJ-02-2016

CPaaS.io

Page 12 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

2 Methodology
2.1 Introduction to the IoT ARM
The IoT ARM methodology (see an overview of the whole process in Figure 1 below) covers the full
requirement process as introduced and described already in CPaaS.io deliverable D3.1 [5], but also covers
everything about elaborating architectural Views and Perspectives. In the following sections we remindsome aspects of the requirement process (the ones covered in D3.2) and introduce the Reference Modeland Reference Architecture (which ultimately makes the system architecture).

Figure 1: Simplified process leading to generating a concrete architecture

In this picture we have preliminary activities which start with the elaboration of architectural views (PhysicalEntity and Context Views – see Sections 2.1.4.3 & 2.1.4.4 for more details about those views) that are
depending on the scenarios and which basically describe in detail the aspects relating to IoT (what are theobjects, what are the properties of interests, what is the hardware needed for capturing those properties,
how do we virtualise those objects, what are the actors outside the system and how do they interact withthe system etc…). Then based on those scenario specific information and business considerations, we starta Requirement Process. This process is described in former deliverables D2.1 and D3.1 [2] [5] and consistsof 3 steps: requirement collection (tackled in the two deliverables afore-mentioned), analysis and mapping(see sub-sections below). Finally starts the elaboration of remaining architectural Views (Functional,
Information, Instantiation and Deployment & Operation Views1).
2.1.1 Requirement Analysis
As soon as the raw material has been collected (see D2.1 and D3.1) there is a need for reviewing thoserequirements, removing duplicates, unifying/factorizing similar ones and translating/rewriting all
requirements using unified terms and concepts as introduced within the IoT ARM (Domain Model inparticular). The result of this phase is a collection of unified system requirements collected and summarised
within the Volere template (which is a technical annex to this document).

1 Deployment & Operation will be called Deployment View in the rest of this document

H2020 EUJ-02-2016

CPaaS.io

Page 13 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

2.1.2 Requirement Mapping
Functional unified requirements need to be mapped to the Functional View (FV) where one or more
Functional Groups (FG) and Functional Components (FC) can be identified. This will result into an updated
functional decomposition of the targeted system. Some of the non-functional requirements can bemapped to the Information and Deployment Views. The updated CPaaS.io requirement analysis andmapping are covered in Section 3.
2.1.3 IoT Reference ModelIn the IoT ARM methodology, the IoT Reference Model (RM) consists of a set of models which are used todescribe aspects of the IoT field which are meant to be agreed upon by architecture team members. In thecontext of CPaaS.io we consider – for sake of simplicity – only three of them, namely the IoT Domain,
Information and Functional Models.
2.1.3.1 IoT Domain Model
The purpose of the IoT Domain Model (DM) as proposed by IoT-A [1] [11] is to introduce the concepts
pertaining to the IoT domain (see Figure 3 below) and the different relationships between those concepts.
Among the different concepts introduced by the DM, it is important to remind of the following main ones
(see a simplified view of the Domain Model in Figure 2 below):

Figure 2: Simplified IoT Domain Model (feat. most important concepts)

Physical Entities (PEs): Physical Entities are the objects from the real world that can be sensed and forwhich different aspects can be measured. They are virtualized in cyber-space using Virtual Entities.
Examples of PEs from the CPaaS.io project include people and geographical areas.
Virtual Entities (VEs): VEs are at the heart of an IoT system. They represent the PEs in the virtual world.
Aspects of the PE are captured by VE properties, and using sensors and actuators allows one to bridge thephysical and logical worlds and then to act on (or read about) properties. At the level of the VE, we willconsider a special kind of service, called a VE Service, which is used to manipulate or access those
properties. It is important to mention here that it is not compulsory that data providers provide modellingof PEs into VEs and manage the associated VE Services. However it is highly important that CPaaS.io
provides the means for doing so. Actually the activity of defining VEs and their associated properties andthen binding these properties to sensor readings for instance can be endorsed by additional CPaaS.io

H2020 EUJ-02-2016

CPaaS.io

Page 14 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

actors bringing higher level of abstraction and added value services to the end-users of the CPaaS.io
platforms.
IoT Devices: In CPaaS.io, IoT devices are the hardware supporting the sensing and actuation functions.
Micro-controllers, batteries, ROM memory etc. are also devices (but without the IoT prefix).
IoT Resources: IoT Resources are the software embedded in IoT Devices that provides the raw readings(for sensors) and actuations. The IoT Domain Model advises not accessing directly resources, but on thecontrary to access corresponding Resource-centric IoT Services (see below).
IoT Services: We can consider different kinds of IoT services depending on their level of abstraction:••

Resource-centric IoT services (r-IoT Service) are exposing the IoT Resources using standardized
interfaces and possibly adding metadata to the raw reading available at the resource level. They
all connect to a sole resource (sensor or actuator). For instance getting the reading of atemperature sensor (e.g. via a REST interface) is accomplished through an r-IoT Service;
VE-centric IoT Services (ve-IoT Service) are associated to the VEs and are used for accessing VEs
attributes/status or to access VE-level services not directly connected to VEs attribute orsituation. In the Functional View the VE Service FC deals with such accesses. Getting the valueof the “hasTemperature” property of a room VE is an example of a ve-IoT Service.

Note: In the rest of this document IoT Services and VE Services are to be understood as respectively r-IoT
Services and ve-IoT Services.
Both kinds of IoT Services described above should be associated with service descriptions that can be used
to discover particular sensing/actuation capabilities (as recommended by the Information Model).
Services: Services (without IoT prefix) are associated to VEs but do not relate to specific properties as
illustrated in the example above. Services are not part of the IoT Domain Model but could be added to theglobal picture for the sake of clarity. For instance autonomous objects (with cognitive capabilities) may
expose services that do not relate de facto to any of their VE properties.
User: Different kinds of users are expected to interact with the CPaaS.io platform.

H2020 EUJ-02-2016

CPaaS.io

Page 15 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

User
0..*

0..*

invokes /subscribes
Human
User
DigitalArtefact

interacts
with
ActiveDigitalArtefact

contains

Passive
DigitalArtefact0..*Augmented
0..*
Entity1..*0..*Serviceisassociated
with

0..*

XOR

1

contains
contains
0..*0..1 Virtual

exposes1..*1

1
represents

Entity

0..1
0..*

1

1..*

0..*

0..*

is
attached
to

0..*

0..*
PhysicalEntity0..*0..*0..* 0..10..*
contains
Resource0..*is0..* associated
with

0..1
hosts

0..*

0..*
monitors

Device10..*
Network
Resource

On-Device
Resource

0..*
Actuator

Tag

reads
0..*

0..*
has Information
about / acts on

Sensor0..*
identifies

0..*
acts
on

Colour Schem e

Animate objects (humans, animals etc.)
Hardware
SoftwareNot clearly classifiable (e.g., combination)

Figure 3: IoT Domain Model (as in IoT-A D1.5 [1])2.1.3.2 IoT Information Model
The Information Model (IM) (see Figure 4 below) focuses on the description of the structure of Virtual
Entities as a representation in the cyber space of Physical Entities. The representation of the information(either it is encoded in eXtensible Markup Language - XML, RDF, binary or any other format) is kept awayfrom the Information Model and left to the architect’s choice, as part of the semantic interoperability
perspective.
The central part of the IM (referring to Figure 4 below) consists of the structure of the Virtual Entity which
is modelled using a set of Attributes and which are associated (via the Association relationship) to the socalled Service Description. These associations are essential in the IoT IM as they make the binding between
a VE property – which as the name suggests is at the VE level – and a corresponding IoT Service (meaning
H2020 EUJ-02-2016

CPaaS.io

Page 16 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)a service exposing an IoT Resource), which is at the resource level. This association must be managed in a
dynamic way so that the binding between a VE property (attribute) and an IoT Resource (via an IoT Service)
can vary in time.
The Attribute is the aggregation of one-to-many ValueContainers. Each of those containers contains one
single Value and one-to-many MetaData (e.g. time stamp, location, accuracy, etc.).
VEs are described using a ServiceDescriptions where each Service would be characterised (e.g. by its
interface) or any useful information that a look-up service can exploit.
As an IoT Service is exposing IoT Resources, which are themselves hosted by IoT Devices, the IM authorises
ServiceDescription to contain 0 to many ResourceDescription(s) and Resource Description to contain 0-tomany DeviceDescription(s). The structure of descriptions is not constrained by the IM and therefore left tothe architect’s own choice.
Value

1

VirtualEntity
entityType
identifier

ValueContainer

Attribute
attributeName
0..* attributeType1..*

Association
serviceType0..*
Service
Description

MetaData
metadataName
metadataType
metadataValue

metadataMetadata

0..*

0..*
DeviceDescription

Resource
Description
0..1

Figure 4: IoT Information Model (as in IoT-A D1.5 [1])2.1.3.3 IoT Functional Model
The Functional Model (FM) (see Figure 5 below) proposed by IoT-A corresponds to a service-oriented
approach of IoT. It identifies 7 main Functional Groups (FGs) and 2 additional ones that are kept outside
the scope of the IoT ARM. The purpose of the section is to introduce the different layers (FG) of the FM as
they are central to the functional decomposition achieved later on in the Functional View (see Section 4.2).
The Functional Groups are defined as follows [1]:H2020 EUJ-02-2016

CPaaS.io

Page 17 of 110

Deliverable D3.5

•

•

•

•

•

•
•

CPaaS.io System Architecture (v3)

IoT Process Management FG: The purpose of this FG is to allow the integration of process
management systems with the IoT platform. For example, the formal definition of a task-based
application (supported by CPaaS.io platform) would fall into this category;
Service Organisation FG: This FG is responsible for composing and orchestrating services, acting
as a communication hub between other FGs. The execution of an application described within the
IoT Process Management FG would take place in this FG, like any other kind ofchoreography/orchestration engine;
Virtual Entity FG: This FG relates to VEs as defined in the IoT Domain model, and contains
functionalities such as discovering VEs and their associations with IoT Services. This FG also allows
access to the VE Service offered (formally “associated with”) by a Virtual Entity. In CPaaS.io those
VE Services can be accessed via a VE endpoint;
IoT Service FG: The IoT Service FG contains functions relating to Resource-centric IoT Services.
Those services expose the resources like sensors and actuators and provide the means for reading
sensor values or setting actuation. It also contains storage capability functionality. More specificallythe IoT ARM states that: “A particular type of IoT Service can be the Resource history storage thatprovides storage capabilities for the measurements generated by resources”;
Communication FG: The Communication FG is used to abstract the communication mechanisms
used by the IoT Devices. Communication technologies used between applications and other FGs is
out of scope for this FG as these are considered to be typical Internet technologies. A central
message bus offering publish/subscribe functionalities would also be part of this FG as we will see
when describing the CPaaS.io Functional View;
Security FG: The Security “transversal” FG is responsible for ensuring the security and privacy of
IoT- compliant systems. The management of security itself is also part of this FG;
Management FG: The Management “transversal” FG contains components dealing withconfiguration, faults, reporting, membership and state. It should be mentioned here that this FG
works in tight cooperation with the Security FG.

H2020 EUJ-02-2016

CPaaS.io

Page 18 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Application

IoT
Process
Management

VirtualEntityIoTServiceSecurity

Management

ServiceOrganisation

Communication

DeviceFigure 5: IoT Functional Model (as in IoT-A D1.5 [1])2.1.4 IoT ARM Views
The IoT ARM comes with a comprehensive list of architectural Views (see Figure 1). However not all Views
will be touched in this document; the description of the CPaaS.io-related Physical Entity and Context Views,
which are scenario specific will fall in the scope of deliverables relating to scenario implementation.
2.1.4.1 Functional View
In this section we provide a reminder (see Figure 6 below) of the “native” IoT-A Functional View as it shows
an illustrative example of functional decomposition resulting from a thoroughly conducted requirement
analysis (in that particular case it was the analysis of the IoT-A requirements coming from the different
stakeholders resulting into the final list of UNIs [24]). We recommend referring to the IoT ARM finalarchitecture deliverable D1.5 [1] in order to get more detail about the purpose of each of the Functional
Components shown in that Functional View.

H2020 EUJ-02-2016

CPaaS.io

Page 19 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Application

Management

ServiceOrganisation

IoT
Process Management

Virtual Entity

IoT Service

Security

Process
Modeling

Configuration

ServiceComposition

Fault

Service
Orchestration

Reporting

Process
Execution

Authorisation

Key Exchange &Management

VE & IoT
Service Monitoring

Service
Choreography

Trust & Reputation
VE Resolution

VE Service
Identity Management

MemberIoT Service
Resolution

State

IoT Service

Authentication

Communication

End To End
Communication

NetworkCommunication

Hop to HopCommunication

DeviceFigure 6: IoT Functional View (as in IoT-A D1.5 [1])Along with a description of the FCs within FGs it is equally important to get a concise – still precise –description of the different FCs implemented in the various data producers (which step outside the
CPaaS.io platform) and to understand also very clearly how they interact with and position w.r.t. othercomponents. At this point in time we concentrate on a clear textual description, but in the architecture
document System Use-Cases (UC) (see Section 4.3.1) we will formally elucidate those inter-component
interactions.
The CPaaS.io Functional View will be based on the native IoT (native) Functional View but will also introduce
those additional FCs which aim at capturing the CPaaS.io specifics.
2.1.4.2 Information View
We use the following various viewpoints for describing the information view:•

Information flow: shows how information flows between FCs;•

System use-cases: elucidate usage patterns and explicitly shows interactions between FCs;•

Structure of information: in the case of CPaaS.io we will describe the used ontologies andstrategies for storing of information;•

Sequence diagrams: temporal sequences of interactions between FCs using e.g. the UML notation.

2.1.4.3 Physical Entity View
Considering a specific scenario, the PE View provides:•

The description of the Objects (hence so-called Physical Entities), their physical properties ofinterest and how those objects are virtualized into the cyber-spaces, explaining how the PEs are“translated” into VEs and how their physical properties can be modelled through VE properties;

H2020 EUJ-02-2016

CPaaS.io

Page 20 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)•

The physical association between objects and hardware devices, e.g. if a sensor is attached(touching, fixed) to the physical object or if the physical object is in the scope of a detached sensor(e.g. a camera);•

A clear description of the information captured by devices, including meta-data.

There is no CPaaS.io Context View described in this document. Such views will be provided in deliverables
relating to the scenario implementation.
2.1.4.4 Context View
According to the IoT ARM [1] and Rozanki & Woods [21] the Context View describes “the relationships,
dependencies and interactions between the system and its environment (the people, systems, external
entities, with which it interacts)” either using plain text or UML-like notations.
The concerns addressed by the Context View cover the following aspects:
•
•
•
•
•
•

System scope and responsibilities;
Identity of external entities and services and data used;
Nature and characteristics of external entities;
Nature and characteristics of external interfaces;
Other external dependencies;
Impact of the system upon its environment.

In the context of CPaaS.io, a dedicated Context View will be associated with each Scenario implementationand therefore will be documented within deliverables relating to scenario implementation (like for PE
Views).
2.1.4.5 Instantiation View
This additional view is not part of the IoT ARM native views and has been introduced in order to cover a
special aspect of the CPaaS.io platform, which is that two different concrete instantiations of the platform
are derived. The aim of this new view is therefore:
1. To provide a viewpoint where the instantiation of the concrete components can be shown;
2. To provide a instrument for comparing the different technical approaches leading to different
implementations;
3. To provide a simplified layout (less abstract than the Functional Model) that fit better the nature of
the CPaaS.io technical scope (which is not fully Service Oriented).
The instantiation view also provides a mapping between the “logical” FCs and their concrete counterpart(implemented FCs) as already presented in previous versions of this architecture document (this mappingis also summarised in a table).
It is worth reminding here that this correspondence between logical and concrete FCs is n-to-p, meaningthat one (or more) concrete FC(s) can map onto one or more logical FC(s).
We introduce now the viewpoint discussed at the beginning of this section and the new layered model it
uses (see Figure 8 below).

H2020 EUJ-02-2016

CPaaS.io

Page 21 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Since the CPaaS.io project is clearly more data-centric than service-centric, we provide a layered layoutthat basically follows the well-known Data-Information-Knowledge-Wisdom (DIKW) pyramid model
introduced in the literature years ago2 (see Figure 7 hereafter).

Figure 7: DIKW model3

Figure 8 below shows this Instantiation View layout and DIKW model correspondence. The far left part ofthis figure shows the correspondence with the DIKW layers. That left-most part of the model is NOT partof the Instantiation View and should not be kept when deriving the two u2-based and FIWARE-based
instantiation views.
•

•

•

•
•

IoT Resource Layer: this layer corresponds to the IoT Resource and supporting devices. IoT Services
exposing those IoT Resource would also be part of this layer ONLY if they are not hosted within theplatform; i.e. if they are part of a 3rd party data provider. The IoT Resource Layer is not in the scopeof the CPaaS.io platform since they are controlled by entities outside the platform it-self (referred
as Data-owners or data providers);
IoT Data & Ingestion Layer: this layer is the first layer of the CPaaS.io platform and is concernedwith ingestion and annotation of data released by the IoT Resources (hence belonging to the
Information Layer); in this layer data still refers to IoT Resource, and therefore consists of e.g. sensor
readings like a Water Levels. This means also that there is no connection whatsoever to a real-world
object e.g. a water tank.
Virtual Entity Layer: this second layer is also an Information layer in the DIKW taxonomy. It is thelayer where real-world objects are virtualized into Virtual Entities associated withattributes/properties. Despite the level abstraction is higher than in the IoT Layer, one still talks
about information; As an illustration, in this layer a real-world object water tank would be existingwith a set of properties, including (but not only) a Filling% that would be derived from the watertank maximum capacity and the water level provided by the IoT Resource (sensor);
Semantic Data and Integration Layer: in this layer high-order information, hence called knowledge,
is built with alignment to various ontologies and published as linked data;
Knowledge layer: is the higher degree of abstraction where utilizing various AI techniques like for
instance machine learning allows to “transform” different pieces of knowledge into knowledge

2 Its origin is not clear but most likely originate from an American organizational theorist named Russell Ackoff, back to the lateeighties.
3 Source: Wikipedia @ https://en.wikipedia.org/wiki/DIKW_pyramid

H2020 EUJ-02-2016

CPaaS.io

Page 22 of 110

Deliverable D3.5•

CPaaS.io System Architecture (v3)which make sense for particular domain of applications, e.g. smart energy, transport, logistics,
environmental, etc… this corresponds to the ultimate analysis of the row data received in layer1;
SMART CITY Service Layer: is where knowledge is eventually exploited with some higher –often nontechnical, still wise- business, economic, managerial, planning objectives in mind, resulting in
wisdom. All SMART CITY applications uses and correlates this knowledge for the sake of reachingspecific objectives, and may also use similar knowledge from additional platform instances, if theirscope is indeed more than one city. This layer is not part of the CPaaS.io platform but relies on
platform enablers in order to reach it own aims.

Figure 8: Viewpoint layout for the Instantiation View

2.1.4.6 Deployment & Operation View
The Deployment & Operation View (or Deployment View for short) main purpose is to describe how thedifferent FCs and hardware (including gateways, sensors, actuators etc.) are deployed in “real life”
according to specific scenarios. The two sets of Deployment Views (one for each of the u2-based and
FIWARE-based architectures) consider concrete FCs, pieces of hardware/software (e.g. databases, servers,
web servers etc…) supporting those FCs and individual scenarios. They provide the respective descriptionsof the two concrete platform deployments (u2- and FIWARE-based):
1. The respective u2-based and FIWARE-based Instantiation Views (see Sections 6.1 and 6.2);
2. any additional deployment of components needed for implementing the scenarios (see the cases
relating to Class-I to Class-VI data providers, where some existing infrastructure does exist outside
the CPaaS.io platform).

H2020 EUJ-02-2016

CPaaS.io

Page 23 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

A Deployment View is partly scenario specific. Each CPaaS.io scenario shall describe, using a Deployment
View, how it is physically deployed in the field (with information about infrastructure at the RDP side,
network, storage and computing resources, including FCs that are part of that Scenario-specificinfrastructure (e.g. Semantic Annotator, Resource Manager, Data and Service endpoints…)).
2.1.5 IoT ARM Perspectives
According to Rozanski & Woods [21] an architectural Perspective “is a collection of activities, tactics andguidelines that are used to ensure that a system exhibits a particular set of related quality properties that
require consideration across a number of the system’s architectural views”.
In this definition, a quality property is meant to be “an externally visible, non-functional property of asystem such as performance, security or scalability” [21].
As we can see architectural Perspectives are orthogonal to architectural Views; therefore any architecture
or design decision pertaining to non-functional or quality requirements often spans more than one
architectural View, if not all. Following the methodology from Rozanski & Woods [21], the IoT ARM
leverages this methodology and proposes to approach and structure those transversal aspects ofarchitecture using a comprehensive list of perspectives that focus on specific non-functional requirements
or desired quality properties of the architecture, with special focus on the IoT domain. The IoT ARM
proposes the following structure as far as “aspects” of an architecture are concerned:
•
•
•
•
•

•
•
•

Evolution (or Evolvability): is a quality of a system that has been designed in such a way it caneasily be adapted to new technologies;
Interoperability: ability of a system to easily interoperate with other systems at various levels like
technical, syntactical, semantic and organisational [13]Availability: ability of a system to be fully (or partly) available when required4
Resilience: ability of a system to effectively handle failure or attacks that could affect the system
availability4
Trust, Security and Privacy:o Security: ability of the system to reliably control, monitor and audit who can perform what
actions on what resources, to detect and recover from failures insecurity mechanisms andto resist to cyber attacks4o Trust: ability of a system to establish and enforce trusted relation between the different
parties involved in a system (end-users, component, data) in such a way system operation
and behaviours comply to expected oneso Privacy: ability of a system to deal with all kind of personal data and in particular to
implement reliably privacy policies about accessing, sharing that data or hiding people’s
identity
Performance: ability of a system to predictably perform its operations within its mandated
performance requirements and profile4
Scalability: ability of the system to cope with increasing demand in computing, networking,storage resulting from increasing volume of system usage4
Usability: quality that illustrate how easy a system can be used, how easy data can beapprehended by the end users, how easy the GUI is understandable and ergonomic while
maintaining efficient work

4 adapted from [31]H2020 EUJ-02-2016

CPaaS.io

Page 24 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Of course the list of qualities can be updated or adapted according to architects’ needs.
Each desired quality will be then associated with a set of activities (for instance activities associated with
Trust, Security and Privacy are the collection of trust requirements, the conduction of risk and threat
analysis, the definition of a trust model, etc.
Then defining a certain number of tactics allows showing how the desired system quality can be eventuallyreached. Because a tactic can span more than one view, the implementation of a tactic through Design
Choices (DC) can lead to more than one of those DCs (e.g. a tactic for realizing semantic interoperability
can lead to a collection of DCs relating to Data Structure for the Information View and DCs relating tointerfaces, storage and protocols for the Functional View).

2.2 Using the IoT ARM in the context of CPaaS.io
In CPaaS.io we are using the IoT ARM in order to agree, between EU and Japanese colleagues, on the one
hand about the logical functionalities (i.e. FCs) that a CPaaS.io concrete platform must provide, and on theother hand about the nature and sequences of interactions that must take place between those logical
functional components in order to accomplish typical actions like producing data, consuming data etc. (i.e.
system UCs).
The following Section 4 is therefore about identifying and defining all needed FCs, based partly on
functional requirements (see Section 4.2), taking as a starting point the functional decomposition provided
by IoT-A [1] and describing such sequence of interactions (see Information View/system UCs in Section
4.3.1).
2.2.1 Views
Since Japanese and European consortia are taking different technical approaches when it comes toimplementing a concrete platform (respectively u2- and FIWARE- based), we need to provide two
additional architectural views (called Instantiation Views), the role of which is:
1. to identify available and still-to-be-implemented u2-based (resp. FIWARE-based) concrete
components;
2. to show how that list of concrete components map to the list of logical FCs (so that we canidentifying coverage and gaps);
3. to provide an architectural view of the whole u2-based (resp. FIWARE-based) concrete architecture,i.e. instantiation of the common ARM-driven logical system architecture;
4. to show concrete instantiations of the system UCs featured in Section 4.3.1, using the u2-based(resp. FIWARE-based) concrete components.
2.2.2 Perspectives
As far as CPaaS.io is concerned, we will need to synchronise and align, between Japanese and EU partners,
about 1/ the desired system properties or qualities and 2/ tactics to be followed, taking also into accountthat two platforms based upon two different technologies (u2 and FIWARE), need to offer the highest
possible level of interoperability (interoperability being itself a perspective). The Volere template shows an
initial mapping of the non-functional requirements to the list of Perspectives listed in Section 2.1.5.

H2020 EUJ-02-2016

CPaaS.io

Page 25 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

3 CPaaS.io Requirements Analysis and Mapping
3.1 Summary of requirement collection phase
In the three following sub-sections we come back on the results of 1/ the two previous initial WP2 and
WP3 phases (achieved between M1 and M3 and concluded with respectively D2.1 and D3.1) and 2/ theupdated Requirement Specification document D2.5 (provided in M18) and provide updated lists ofrequirements:
1. Scenario requirements: requirements from the CPaaS.io scenario point of view (Section 3.1.1) as
introduced in D2.1
2. Platform requirements: functional requirements (Section 3.1.3) and non-functional requirements(Section 3.1.2) as introduced in D3.1
The purpose of this section is then the analysis and unification of those requirements into a single list ofunified requirements (called UNIs in the IoT-A terminology). The following step will be the mapping toviews and perspectives, as explained in the previous introductory sections.
3.1.1 Scenario requirements
This section gives a summary of new findings in term of scenario requirements, which need furthertranslation into platform functional and non-functional requirements (to be unified with the existing ones
shown in Section 3.1.2 and Section 3.1.3).
This update is based on the final version of the Requirement Specification D2.5 [4] that elucidates
requirements from the scenarios perspective. It is used as main input for the new iteration of the Volere
sheet.
3.1.1.1 Event Management – Enhanced User Experience
1 new requirement is added (EUE-13): need to access more than one instance platforms, including u2 andFIWARE-based platforms (already covered in the initial version of the Volere sheet).
3.1.1.2 Event Management – Sapporo Visitor Experience
All requirements are new and covered by the existing Volere sheet
3.1.1.3 Event Management – Tokyo Public Transportation
9 new requirements: need for Clock Synchronisation, Data Analytics support, low query latency,
Visualisation (which is outside the scope of the platform architecture, but part of dashboards), data sharing(covered already by the platform with the security components and through the dashboards), semantic
integration (already covered in the Volere sheet with the Semantic Data integration layer FC).
3.1.1.4 Event Management – Tokyo Management of Service Vehicle
No additional requirement is provided. The requirements pertaining to this scenario are identical to theones provided for the Tokyo Public Transportation scenario (see above)
3.1.1.5 Waterproof Amsterdam
A mix of updated and new requirements calling for user group/role definition and related control
mechanisms, automated control delegation(new), dashboard features (covered) and some additional
requirements which have to be covered outside the platform by the WaterNET infrastructure.
H2020 EUJ-02-2016

CPaaS.io

Page 26 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

3.1.1.6 Yokosuka Emergency Medical Care
6 new requirements calling for analytic services, visualisation (covered by Japanese dashboard), user
empowerment (incl. access control which are already covered, clock synchronisation and low data-retrieval
latency.
3.1.1.7 Smart Parking
This is a new scenario with new requirements. Those requirements are already part of the list of platform
requirements.
3.1.2 Non-functional platform requirements
The following two tables focus on Non-Functional REQuirements (NFREQ) and Functional REQuirements(FREQ) from the platform point of view (based on a technical analysis of the “DoW ‘generic’ technicalobjectives and challenges pertaining to Smart City domain”). In the two following Table 1and Table 2, wehave assigned a priority to the Non-Functional Requirements (NFReq) and Functional Requirements (FReq)
where MUST, SHOULD, COULD correspond respectively to HIGH, MEDIUM and LOW priority. In its iterative
development, the project main focus is on HIGH priory requirements, still trying to fulfil as many as possibleof the lower priority ones.
Table 1: List of Non-Functional Requirements

ID #Description

Perspective

Priority

Category

NFREQ.1

Support different service levelagreements (SLA)

Scalability

SHOULD

Platform,
Infrastructure

NFREQ.2

Process services and events on aset of distributed nodes

Scalability

SHOULD

Platform,
Infrastructure

NFREQ.3

Continuously monitor quality ofservice at runtime

Scalability

SHOULD

Platform,
Infrastructure

NFREQ.4

Balance its load at runtime

Scalability

SHOULD

Platform,
Infrastructure

NFREQ.5

Provide high availability

Availability

SHOULD

Platform,
Infrastructure

NFREQ.6

Guarantee infrastructure
availability

Availability

SHOULD

Platform,
Infrastructure

NFREQ.7

Ensure network availability

Availability

SHOULD

Platform,
Infrastructure

NFREQ.8

Be able to perform self-healing

Availability

SHOULD

Platform,
Infrastructure

H2020 EUJ-02-2016

CPaaS.io

Page 27 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

NFREQ.9

Expose data and services toauthorized users

Security

MUST

City Data,
Platform

NFREQ.10

Ensure services are always
accessible to entitled users

Security

MUST

City Data,
Platform

NFREQ.11

Ensure data freshness

Trust,
Performance

MUST

Platform

NFREQ.12

Support access control
mechanisms

Security

MUST

Platform

NFREQ.13

Have security mechanisms toprotect data transmission

Security

SHOULD

Platform,
Infrastructure

NFREQ.14

Make it difficult to spy on
communicated messages

Security

SHOULD

Platform,
Infrastructure

NFREQ.15

Be able to perform to detectthreats at runtime

Security

SHOULD

Platform,
Infrastructure

NFREQ.16

Provide trusted and securecommunication and information
management

Trust

SHOULD

Platform,
Infrastructure

NFREQ.17

The platform infrastructure andservices shall be trustable

Trust

SHOULD

Infrastructure

NFREQ.18

Allow users to use free services
anonymously

SHOULD

Societal
Needs,
Platform

NFREQ.19

Allow people to use free services
anonymously

SHOULD

Societal
Needs,
Platform

NFREQ.20

Allow users to control which data
they are willing to provide andhow their data should be used

Privacy

SHOULD

Societal
Needs,
Platform

NFREQ.21

Keep users access-control rights/
policies secured.

Privacy

SHOULD

Platform

H2020 EUJ-02-2016

CPaaS.io

Privacy

Privacy

Page 28 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

NFREQ.22

Provide privacy protection forusers interacting with the platform

Privacy

SHOULD

Societal
Needs,
Platform

NFREQ.23

Provide communication
confidentiality

Privacy

SHOULD

Platform,
Infrastructure

MUST

Societal
Needs, City
Data, Platform,
Infrastructure

NFREQ.24

Be extensible for futuretechnologies.

NFREQ.25

Provide standard interfaces forservice providers

Extensibility

SHOULDBusiness
Needs

NFREQ.26

Be able to provide services in aninteroperable manner

Extensibility

SHOULD

Platform

NFREQ.27

Data must be interoperable acrossthe different parties (data / service
producers)

Interoperability

MUST

Platform

NFREQ.28

Provide data quality constraints fordata sets

Trust

SHOULDBusiness
Needs

NFREQ.29

Enable the linking of data sources
across platforms

Evolvability

MUST

Business
Needs

Evolvability

Platform,

3.1.3 Functional platform requirements
Table 2: List of Functional Requirements

ID #Description

Priority

Category

FREQ.1[REQ25]

Discovery and lookup service of IoT systems should allow
locating the physical entities based on geographicalparameters.

SHOULD

Discovery Lookup

FREQ.2[REQ31]The look-up service of CPaaS.io shall withhold or grantinformation depending on context such as application
involved, requesting entity, and security permissions.

MUST

Discovery Lookup

H2020 EUJ-02-2016

CPaaS.io

Page 29 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

The IoT system shall enable the dynamic discovery of
relevant virtual entities and their related services basedon respective specifications.

MUST

Discovery Lookup

The IoT system shall enable the dynamic discovery of
relevant VEs and their related services based on ageographical location scope.

MUST

Discovery Lookup

The IoT system shall enable the lookup of service
descriptions of specified services for Virtual Entities with
the VE identifier as key for the lookup.

MUST

Discovery Lookup

Object (Virtual Entities), services and resources shall besemantically described

MUSTInteroperability

FREQ.10

Any data at the platform level shall have data quality
annotations

MUST

Trust

FREQ.11

Data search and retrieval shall be achieved upon acollection of criteria that includes location (of the Physicalentity concerned), characteristics of the underlying IoT
Resource reputation and the quality of information.

MUST

Interoperability

FREQ.12The platform shall provide a SPARQL end-point foraccessing semantic information (either annotated data or
semantic descriptions)

MUSTInteroperability

FREQ.13

Any data at the platform level shall be following an
accepted set of standard schemas (ontologies)

MUST

Interoperability

FREQ.14

The platform shall be able to aggregate data fromvarious sources using LOD principles

MUST

interoperability

FREQ.20[REQ19]User anonymity shall be provided in order to enforce
privacy (e.g. at communication level)

MUST

Security/Privacy& Trust

FREQ.21[REQ81]

Personal data in servers should be ciphered by a private
key.

SHOULD

Security/Privacy& Trust

FREQ.22[REQ84]

Secure storage of data should be ensured.

SHOULD

Security/Privacy& Trust

FREQ.23[REQ34]

Data owners shall be able to set access-control rights/
policies (set up by data owners) to their data stored on
resources.

MUST

Security/Privacy& Trust

FREQ.3[REQ36]
FREQ.4[REQ37]
FREQ.5[REQ38]
FREQ.09

H2020 EUJ-02-2016

CPaaS.io

Page 30 of 110

Deliverable D3.5

FREQ.24

CPaaS.io System Architecture (v3)

Access-control rights/ policies (set up by data owners)
should not be published publicly.

SHOULD

Security/Privacy& Trust

FREQ.25[REQ63]

Communicated data shall remain confidential.

MUST

Security/Privacy& Trust

FREQ.26

Service providers shall be able to set access-control
rights/ policies (set up by service owners) to their services

MUST

Security/Privacy& Trust

FREQ.30[REQ116]

CPaaS.IO shall be able to evaluate access request
depending on access control policies.

MUST

Security/Privacy& Trust

FREQ.31[REQ117]

CPaaS.IO shall provide an authorization policy to data,
object and service for the different users or devices.

MUST

Security/Privacy& Trust

FREQ.32

User or device as part of the platform deployment shallbe registered before using any services provided by theplatform.

MUST

Management
Security/Privacy& TrustUser or device shall be identified.

MUST

Management

User or device shall be authorized to use a service.

MUST

Security/Privacy& TrustObjects should authenticate a person or object that try toaccess its data.

SHOULD

Security/Privacy& TrustAuthentication of user or service shall be carried out by
devices before delivering data.

MUST

Security/Privacy& TrustAuthentication of user or service shall be carried out toaccess a service.

MUST

Security/Privacy& TrustUser's data shall be processed only with the user's
consent.

MUST

Security/Privacy& TrustCPaaS.io should support context-aware access policies.

MUST

Security/Privacy& Trust[REQ35][REQ 59]
FREQ.33[REQ60]
FREQ.34[REQ62]
FREQ.35[REQ69]
FREQ.36[REQ77]
FREQ.37[REQ 82]
FREQ.38[REQ123]
FREQ.39[REQ133]

H2020 EUJ-02-2016

CPaaS.io

Page 31 of 110

Deliverable D3.5

FREQ.50[REQ90]
FREQ.60[REQ20]

CPaaS.io System Architecture (v3)Services shall maintain a log of the operations done byusers. This log shall not be modified by attackers.

MUST

Security/Privacy& TrustTime stamps should be supported.

SHOULD

Platform

FREQ.70[REQ131]

The IoT system shall ensure that processing of
information takes place on trusted nodes.

MUST

Security/Privacy& TrustLoad Balancing &Bandwidth
Optimization

FREQ.71[REQ132]

The IoT system should optimize the processing of
information with respect to a cost function, e.g.
communication, computation, energy, etc.

SHOULD

Load Balancing

FREQ.72

The CPaaS.io platform shall be able to provide
mechanisms for migrating tasks to nodes participating
the CPaaS.io systems according to its characteristics

MUST

Load Balancing &Bandwidth
Optimization

FREQ.80

CPaaS.io platform shall be able to perform analytics, andevent detection/prediction using “live” and historical data

MUST

Platform

FREQ.90

The CPaaS.io platform shall provide publish / subscribe
functionality and criteria for filtering in/out data based(at least) on geographical area, data type and data source

MUST

Platform

FREQ.91

The CPaaS.io platform shall provide Complex Event
Processing techniques that are able to infer high level
events out of an incoming flow of data, based on various
criteria (condition for that event to be triggered)

MUST

Platform

FREQ.92

The CPaaS.io platform provides data validation services

MAY

Platform

FREQ.93

The CPaaS.io platform functionality to map between
common RDF identifiers and vocabularies

MAY

Platform

3.2 Requirement Analysis
The starting point of the analysis is the set of consolidated functional and non-functional requirements
introduced in the earlier sections 3.1.2 & 3.1.3 taking into account D2.5 updates as explained earlier. Thoserequirements were consolidated, then duplicates were removed and similar ones were merged in order tominimize their number. Some of scenario-originated requirements were also rewritten in order to remove
ambiguities and/or to extend their scope.

H2020 EUJ-02-2016

CPaaS.io

Page 32 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)Then all scenario-originated requirements were examined and compared to existing NFREQs and FREQs
and then were – depending on the result – linked to existing requirements or considered as new
requirements (classified then in FREQs, NFREQs or Design Choices). Existing requirements may also be
updated in order to cover the scope of the scenario-originated requirements.
The result of this second analysis consists therefore of a list of consolidated UNIs which are fully captured
in the second official version of Volere Excel sheet (technical Annex to this document).
A second requirement mapping has been also achieved, with mapping to Views, Perspectives, Functional
Groups and Functional Components.
Many comments are also associated to those requirements and will be used to feed forthcoming technicaldiscussions (towards the next architecture release e.g.).

4 CPaaS.io Views
4.1 Actors involved in data production
When defining the CPaaS.io logical architecture we needed to define various kinds of situations for data
provision, resulting in various classes of Raw Data Providers (RDP) numbered along decreasing capabilities;
Class-I being fully semantics-ready while Class-IV does not own/manage any local infrastructure therefore
relying fully on CPaaS.io platform for basically everything. The various RDP classes are described below:
4.1.1 CLASSIFICATION OF RDPs
In CPaaS.io, RDPs are classified as passive RDPs or active RDPs. Active RDPs as feature in the CPaaS.io
architecture, correspond to data producers which act as a data sources and data providers, who proactively
push data to the CPaaS.io platform (see Class-I and Class-II in Figure 9) while passive RDPs correspond todata sources that the CPaaS.io platform need to query or poll data from (see Class-III, Class–IV and ClassV RDPs in Figure 9).
••Class-I RDP: This class of RDP produces data in semantic form and stores locally that data in its own
triple store (it may decide to push all or part of that data to the CPaaS.io platform as well). It offers
a SPARQL end-point so that semantic information can be queried. In addition a Class I-RDP
advertises its dataset to the CPaaS.io platform.
Optionally, a class-I RDP may offer an IoT Service layer that allows either to retrieve directly
observations from a sensor or to trigger actuation by an actuator. If so, a Class-I RDP must describe
semantically those IoT Services and store their descriptions either locally or at the CPaaS.io side. In
the former case, an IoT Service endpoint must be provided in order to allow on the one hand
discovery of those IoT Services at the CPaaS.io level as part of the overall federated discovery
feature and on the other hand, the handling of IoT Service invocation requests;
Class-II RDP: This class of RDP produces data in a non-semantic form (e.g. Json) and pushes it to
the CPaaS.io platform for storage. Data may be stored locally in a non-semantic format and suchdata sets may consequently have to be advertised to the platform, so that they can be queried by
CPaaS.iousers.
Optionally, a class-II RDP may offer an IoT Service layer that allows either to retrieve directly
observation (in native non-semantic form) from a sensor or to trigger actuation from an actuator.
If so, Class-II RDP must describe semantically those IoT Services and store those descriptions at the
CPaaS.io side. An IoT Service endpoint must be provided in order to allow on the one hand

H2020 EUJ-02-2016

CPaaS.io

Page 33 of 110

Deliverable D3.5•••

CPaaS.io System Architecture (v3)

discovery of those IoT Services at the CPaaS.io level as part of the overall federated discovery
feature and on the other hand, the handling of IoT Service invocation requests;
Class-III RDP: In the fourth case, the RDP only manages its IoT Resources locally and relies on
CPaaS.io for everything else. In an initial pre-configuration phase it needs to upload its production
policy as well as the IoT Services exposing its IoT Resources to the CPaaS.io platform (resp. to the
Resource Manager FC and IoT Service FC). It does not provide locally any direct data endpoint,
however IoT Services can be of course invoked at the platform level;
Class-IV RDP: they refer in the CPaaS.io architecture to Web third parties, like social media platforms
producing live data e.g. twitter, news feeds, RSS …;Class-V RDP: they refer to open Government data, e.g., data stored in CKAN repositories.

NOTE: The various use-cases relating to Class-IV and –V will be dealt with in the third release of the
CPaaS.io architecture.

4.2 CPaaS.io Functional View
Each sub-section below provides a textual description for each FC and a list of functionalities provided by
the FC.
Below is a second version of the logical functional decomposition featuring the current list of FCs which
will be confirmed, updated and extended during the forthcoming architecture iterations. The legend is asfollows:•••

In Green: FCs which were already identified in D3.2;
In Red: the new FCS introduced in this iteration;
In Dashed lines: FCs which could be deployed at the edge, closer to the data.

H2020 EUJ-02-2016

CPaaS.io

Page 34 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 9: CPaaS.io logical functional architecture

H2020 EUJ-02-2016

CPaaS.io

Page 35 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

4.2.1 MANAGEMENT FG
The management FG groups a set of FCs offering management functionalities in order to manage
platforms and platform federation.
4.2.1.1 Web Front-End FC
The Web Front-End FC is a component that offers a web interface to many of the FCs implemented acrossthe various FGs. Those components include, but are not limited to:
•
•
•
•
•

All management functionalities;
Discovery and browsing of VE, VE properties, IoT service, IoT Resources, data sets etc.;
Look-up and resolution;
Definition of access and privacy policies;
Management of credentials.

4.2.1.2 Platform Management FC
Platform Management FC is responsible for managing configurations and platform-related aspects of
CPaaS.io IoT architecture.
This component deals with both intra- and inter- platform management. Different aspects are covered like:
•

•

•
•

Platform federation: Registration of peers and inter-peer links, definition of nature of links between
the different platform instances and the functionalities they are supporting: federated data query,discovery, task composing spanning multiple instances, etc.;
Task deployment: in order to enable smart and flexible deployment of tasks within the platform(see the Task Deployment FC) and in particular towards the platform edge, information about theplatform components like network capacity, CPU and memory capacities need to be known at theplatform level;
Management of security across the various platform instances and domains;
Publishing of new data/knowledge or replication of data from one platform instance to another(e.g. considering a hierarchical model from leaves towards the root) in order to allow multiple input
CEP or data processing.

Platform management is an essential requirement for realization of the CPaaS.io platform due to the
distributed nature of IoT. In the CPaaS.io platform, there will be vast number of IoT Devices (e.g. sensor
nodes) and various hardware and software components. Moreover, different deployments from Japan andEurope may be connected to each other and exchange information based on the federation concept.
4.2.1.3 Resource Deployment Tool FC
The Resource Deployment component is a web-based front end for managing the deployment of IoT
Devices. It covers an inventory for managing IoT Devices and sensors and allows IoT deployment managers
to plan a deployment of physical devices including a description (location, time, floor plan) of deployments.
The tool supports both the deployment of static and mobile devices. The management of mobile devices
is realized through creating associations with mobile entities such as people. The data generated by thistool is used for metadata enrichment of raw data and analytic results as described in deliverable D2.2 [3]".
Deployment metadata created by the tool instantiates a deployment ontology extending the SSN ontology(see D6.1 for further details about the ontology) and is stored as RDF triples in a triple store (deploymentknowledge base) within the platform. An initial version of the deployment tool is available to partners in
the project. The deployment knowledge base currently contains inventory and deployment metadata forthe “Color Run” event.
H2020 EUJ-02-2016

CPaaS.io

Page 36 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

4.2.2 IOT PROCESS MANAGEMENT FG
4.2.2.1 Task Composer FC
Task Composer FC is a tool for service designers to compose multiple operators to form the high-level
data processing logic of an IoT service. During the design phase, an IoT service is represented by a service
topology, which includes a set of linked operators and their annotations. Each operator takes input from
IoT devices or from earlier parts of the processing flow. It performs the business logic of the IoT service
and passes the intermediate result to the next operator. In terms of implementation, an operator can berealized as a docker-ized application. As illustrated by Figure 10-a, three operators A, B, and C, are used toconstruct the service topology. Task Composer FC provides a design tool to form such a service topology
and also configure and annotate the properties of each operator in the service topology. For example, oneof the important properties of an operator is its granularity, which will be taken into account by Service
Orchestrator FC to decide how many task instances of such an operator should be instantiated based on
the available data. During the runtime, operators are instantiated by Task Deployment FC as tasks basedon the orchestration decisions made by Service Orchestrator FC. In the end, the tasks are executed by Task
Execution Engine FC and linked with each other during runtime based on the data dependency of their
inputs and outputs. Figure 10-b shows an example of how tasks are constructed to form a data processing
flow based on the available data.

Figure 10: Core Concepts for IoT Service Orchestration

4.2.2.2 Process Optimization FC
Process Optimization FC is a component that decides on how to execute the processes that are requiredfor providing services. This optimization includes or relies on aspects such as the order of execution of thetasks, the necessary inputs and needed configurations for optimized performance, as well as the
optimization algorithms for the processes. Process Optimization FC is utilized by Service Orchestrator to
make decisions based on improving the performance of the processes.
4.2.3 SERVICE ORGANISATION FG
4.2.3.1 IoT Resource Manager FC
The Resource Manager FC is an agent/component which can be configured and used by infrastructureless owners of IoT Resources (see the RDP Class-III case) in order to manage the reading of their IoT
Resources and its periodicity.
H2020 EUJ-02-2016

CPaaS.io

Page 37 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)This FC allows RDPs for defining publishing policies and relies on CPaaS.io-hosted IoT Services which are
deployed by the RDPs Class-III and which are exposing the IoT Resources under the RDPs’ responsibility.
4.2.3.2 Service Orchestrator FC
Service orchestrator FC is the component which generates task instances and manages execution of thesetask instances based on the available resources. In order to perform this role, the Service Orchestrator FC
must know about the availability of the resources such as the cloud or edge resources (e.g., servers). It
monitors the usage of resources and the status of all running tasks on the nodes.
This FC manages all the tasks and the execution of task instances over the edge nodes or cloud nodes.
Hence, the assignment of task instances to the available resources is handled by Service Orchestrator FC.
4.2.3.3 Task Deployment FC
Task Deployment FC takes the assignment from Service Orchestrator FC as an input and performs thenecessary deployment of task instances. It aims to minimize the cross-edge node and cross-site network
traffic while doing these deployments by generating a deployment plan and performs the task deploymenton the available cloud or edge resources based on a deployment plan.
4.2.3.4 Task Execution Engine FC
Task Execution Engine FC is the component that executes the tasks that are defined by the Task Composer
FC and deployed by the Task Deployment FC based on the available resources. The instantiation of this FC
is a worker that executes the necessary tasks.
4.2.4 VIRTUAL ENTITY FG
As explained earlier in Section 2.1.3.3 this FG deals with all aspects pertaining to Virtual Entities like storageof VE-related observations and VE/VE Service Descriptions, discovery, look-up and resolution of VEs and
VE Services, discovery, look-up and resolution of Associations and VE Service endpoint. Functionalities
shared with the IoT Service FG are handled in Section 4.2.6.
4.2.4.1 Semantic VE Data repository FC
This FC provides a database for storing VE-related data (i.e. historical data) as well as a SPARQL endpoint
for accessing that VE-related data.
4.2.4.2 Non-Semantic VE Data repository FC
This FC provides a database for storing VE data in a non-semantic form. The semantic Integration layer canlater on ingest it before storing it in a semantic data store. Typical example would be –for the FIWARE
based instantiation of it- VE context data expressed in the FIWARE internal NGSI format.
4.2.4.3 VE Registry FC
VE Registry FC is the component that stores, queries and retrieves VE semantic descriptions. This FC could
be merged with the VE Resolution FC or can be implemented by a stand-alone component that is
integrated with the VE Resolution component.
4.2.4.4 VE Resolution FC
This FC is an extension of the IoT-A native component that can be used to discover and retrieve
associations existing between VEs and IoT Services. Using Associations (see Figure 4) the entity managing
VE Services can know about which IoT Services should be used in order to return the value of a VE Property
H2020 EUJ-02-2016

CPaaS.io

Page 38 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

(as associations between VEs and IoT Services are dynamic in order to deal with mobility). In addition toproviding means for retrieving those associations, this component can be used to by VEs to register theiravailabilities. The existing VEs that are available and registered can be discovered based on fitting thesearching criteria. This search can typically be done by the VE Service endpoint FC for identifying the IoT
Service to be triggered for answering a READ/UPDATE request upon a specific VE property.
4.2.4.5 VE & IoT Service Monitoring FC
This component is an IoT-A native FC responsible for automatically finding new associations, which are inturn stored by the VE Resolution FC.
4.2.4.6 VE Service End-Point FC
This FC is an extension of the IoT-A native FC that provides a unique endpoint to accessing (Read/Set)
Virtual Entities and their properties. This FC is responsible for:••

Maintaining and publishing a snapshot of VE state at regular interval (sampling rate to be
configured) as VE observations which are therefore also stored within the Semantic VE Data
Repository FC;
Handling and answering requests for accessing VE properties. As explained in case 2/ in Section
4.3.1.4, answering such requests requires identifying the appropriate corresponding IoT Service via
existing associations between device-level and thing-level information.

4.2.5 IOT SERVICE FG
This IoT Service FG deals with all aspects pertaining to IoT data like storage of IoT Data, discovery, look-up
and Resolution of IoT Services, invocation of IoT Services, storage, discovery, look-up and resolution of IoT
Service descriptions and IoT Resource descriptions.
Functionalities shared with the Virtual Entity FG are handled in Section 4.2.6.
4.2.5.1 Semantic Data Repository FC
Semantic Data Repository FC is used for storing semantic data managed at CPaaS.io level. Semantic
information can be annotated sensor readings (annotated raw data coming from RDP) in the form ofobservation or any kind of semantic data resulting from applying analytics or from processing within the
Semantic Integration FC. This FC provides a SPARQL endpoint that can be used for searching and retrieving
the data from the database (either it is a full-fledge triple store or relational database with SPARQL
endpoint).
4.2.5.2 Non-Semantic Data Repository FC
The Non-Semantic Data Repository is used to store non-semantic data coming e.g. from Raw Data
Producers. It can be then used by other components for various tasks like CEP, analytics etc… This data canalso be queried by the Semantic Integration FC in order to produce and store semantically annotated data.
4.2.5.3 IoT Service & Resource Registry FC
The IoT Service/Resource Registry5 FC provides an API for registering a Resource and the associated IoT
Services within a registry with associated metadata. This particular API can be used either by CPaaS.io users

5 This FC correspond to the IoT Service Resolution FC in Figure 6

H2020 EUJ-02-2016

CPaaS.io

Page 39 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)for registering virtual resources and associated IoT services or by RDPs which do not handle locally thedefinition of the IoT Services that expose their resources (see definition of Class-II and -III).
This registry allows also to look-up IoT Services exposing IoT Resources based on various criteria(metadata).
4.2.5.4 Live Data Listener & Ingestion FC
This component is responsible for pulling data from external data sources (like e.g. Twitter RSS or news
feed-which correspond to RDPs Class-IV) and putting it in an appropriate form with needed meta-data
before pushing it to the appropriate repository. This FC therefore may use as well the Semantic Integration
FC and may publish related knowledge to the communication FG for other components/users to use.
Finally this component can also push the data to the Analytics FC or/and Machine Learning FC for further
analysis (e.g. classification) before 1/ some higher-level data is published or 2/ the incoming data isenriched its meta-data before being published.
A first version of this component allows collecting tweets according to a given set of #-tags and providing
a sentiment analysis over the collected matching tweets (using the Machine Learning component describedlater on), in the form of a percentile of perceived “positive” tweets vs. “negative” tweets. It is worth notingthat this component can deal with historical data and also with feeds (real-time data).
As twitter does not allow the retrieval of all tweets matching given #-tags, only a small –still reasonablepercentile is returned (around 20% as far as we could notice).
An API allows to provide the FC with information such as: list of #-tags, ingestion mode (feed / historicalData), duration of ingestion (in case of mode = Feed), etc.
Data pushed by this component towards FIWARE is Json structured data and may feature various structures
depending of the user’s choice when invoking the component.
4.2.5.5 Government (Gov) Data Listener & Ingestion FC
This component behaves in a similar way to the Live Data one, but applies to open-data data sources likegovernment, institutions or NGOs for instance (RDPs Class-V). Such data is usually accessible via CKAN
repositories. This FC will be further developed in a next iteration of the architecture in accordance withproject scenario needs which as we could see include for instance weather forecast data (SmartParking andWaterproof Amsterdam scenarios).
4.2.5.6 IoT Service FC
This FC provides a REST endpoint for accessing resource data (resources are exposed to CPaas.io users by
IoT Services).
4.2.6 COMMON TO VE AND IOT SERVICE FGs
4.2.6.1 Semantic Integration FC
As described in D6.1, CPaaS.io is using Linked Data and RDF to facilitate integration of data from platforms
like FIWARE and u2. Neither of the two base platforms is currently supporting RDF and Linked Data out of
the box. To address this, CPaaS.io is providing and integrating a semantic layer that enables mapping
existing data to RDF.
This semantic integration is implemented in different phases and levels. In its first form, the semantic layer
is simply exposing metadata as Linked Data, using common vocabularies and best practices as describedin D6.1 [8]. This enables users to query information about available data within the FIWARE and u2 platform
H2020 EUJ-02-2016

CPaaS.io

Page 40 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

as Linked Data. To access this metadata layer the current implementation provides a SPARQL endpointthat can be queried.
In a second step, data residing in FIWARE or u2 can be mapped to RDF or JSON-LD. For that, one needs
to extend the appropriate data model used and introduced in D6.1, Section 3.2 [8]. This is done by asemantic middleware that can be configured accordingly. By providing appropriate tools and userinterfaces, FIWARE users can thus map existing data to RDF representations. The u-code data model of u2
is close to a RDF as it stores information in a triple-like data model. The semantic integration layer needs
to map internal u-code IDs to publicly used and de-referencable URIs, preferably as HTTP URIs to allow
Linked Data usage. In some use-cases like the Tokyo Metro real-time data system, this is already being
done and can be used as an example implementation.
To be able to query this kind of data, a SPARQL endpoint will proxy requests to the platform6. Users shouldbe able to run SPARQL queries on data residing in FIWARE- or u2-based platforms.
4.2.6.2 Pre-processing FC
Pre-processing groups all kinds of algorithms that could apply straight away to the raw data before it isannotated and published. More precise description about needed algorithms will be provided in the next
iteration of the architecture as soon as we get more detail about the CPaaS.io scenario developments.
4.2.6.3 Analytics FC
The Analytics FC provides a large variety of algorithms that can take as input a broad range of structured
data (e.g. video streaming, time series, t-uple series) in order to perform for instance statistical analysis,
machine learning, prediction, anomaly/event detection before publishing their result through thecommunication channel. Example of analytics (input formats, algorithms, output format) can be found in
the two Instantiation Views.
4.2.6.4 Machine Learning FC
This component is still under discussion, however it already provides support for supervised classification
tasks, more specifically for determining if social data (i.e. tweets) stemming from social media platform (inthat case Twitter) are to be considered as Positive, Negative or Neutral (which we refer to as Sentiment
Analysis). The ultimate aim is to publish a semantically enriched digest of the outcome of Sentiment
Analysis towards the FIWARE platform. See Section 6.2.1 for more detailed description of the current
version of that component.
4.2.7 COMMMUNICATION FG
4.2.7.1 Communication Channel FC
The communication channel is a FC that provides a message bus with support for publish/subscribe andpublishing/consuming along topics. In the architecture it is used as a way 1/ to provide subscribers with“live data” 2/ to store data using a pre-determined topic (see UCs in Section 4.3.1)
4.2.8 SECURITY FG
The Security FG follows closely the recommendation for IoT-A native FCs as shown in Figure 6. This FG is
made of several components already identified in the IoT-A Native Functional View:

6 See for example R2RML implementation in Stardog: http://docs.stardog.com/#Virtual%20Graphs

H2020 EUJ-02-2016

CPaaS.io

Page 41 of 110

Deliverable D3.5

•
•
•
•

CPaaS.io System Architecture (v3)

AuthN: Authentication of CPaaS.io users;
AuthZ: Access-Control policies, decision and enforcement;
KEM: Key Exchange and management (including as well Group Management);
Identity Management (including also The key/X509 certificate generation).

Those different FCs are described here after in more detail.
4.2.8.1 Authentication (AuthN) FC
This AuthN7 component is responsible for enforcing the authentication of registered CPaaS.io users. Basedupon a user credential passed to the AuthN FC we can make an assertion about the identity of the user i.e.
that they are a known CPaaS.io users.
The AuthN component interacts with the User Management FC when the user registers in order to produce
the user credentials (such credentials can take multiple forms e.g. both username/password and an X509
certificate).
When access to a resource or service is requested by a user, the request is captured by a decision point as
whether to grant or deny the request based upon whether the requester is authorized to do so. At thispoint, the AuthN FC can be contacted by the decision point to assert the authenticity of the requester.
4.2.8.2 Authorization (AuthZ) FC
The AuthZ8 component makes decisions about access control requests (intercepted at access decision
points) based upon Access Control Policies (ACPs) which are based on two different technologies: XACML[39] and CapBAC [40] which are based on the concept of a Capability Token (CT) which has been explainedin D5.1 and D5.2. The first technology is used for validating the privileges of a resource access request
issued by a service or application. The second technology is applied in order to provide the CT which ispresented as a proof of possession to be validated by the service which contains the requested resource.
Access control can be applied at the level of look up, e.g.:•

for a request to search for a list of VEs/resources in a specific domain or part of a domain meetingsome criteria; or•for direct access to resources via their interfaces.

Access is denied if the assertions made about the request and requester do not comply with the AccessControl Policy. Usually the three parameters of an access request include an assertion (data guaranteeing
for the occurrence of an authentication of a user client at a particular time using a particular method ofauthentication), the targeted resource and requested operation (read or write for instance).
In the same sense, ACPs can also be applied with a different approach. Specifically, the AuthZ component
can also make decision about the access to certain information which is being broadcasted. That is, it can
implement ACPs based on the attributes of the users’ profiles to the information itself, allowing only the
consumers with the right permissions to access to it.

7 AuthN correspond to the one proposed in Figure 6 as part of the Security FG
8 AuthZ correspond to the one proposed in Figure 6 as part of the Security FG

H2020 EUJ-02-2016

CPaaS.io

Page 42 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

4.2.8.3 Access Policy Administration FC
This sub-component of AuthZ FC provides a Policy Administration Point to the AuthZ FC where accesspolicies are defined and managed. A GUI is provided to the owner of resources who wish to protect access;using the GUI the owner can create new access policies, attach them to resources, update access policies
and delete access policies.
The Access Policy Administration FC will typically be used by Raw-data producers signing up to CPaaS.io
and registering their resources. When they register a resource, they can assign an access policy (applying
a default rule e.g. all CPaaS.io users can perform a read operation on the API, or define their own policy
using the GUI).
Access Policies defined in this FC will be followed by the AuthZ component when making access control
decisions.
4.2.8.4 Key Exchange and Management FC
The Key Exchange and Management (KEM) component manages the exchange of security information
between two parties. In particular, it ensures that the keys required to construct a secure and trusted
communication channel is carried out in a secure manner.
4.2.8.5 Identity Management
The Identity Management (IdM) component takes into account the management of the identity lifecycle
and also the interoperability issues with components like Authentication, Authorization and KEM. While
the Authentication component is responsible for asserting the identity of subjects using different IoTframeworks (different identifiers, cryptographic algorithms, key strength), the IdM component must
support pseudonym creation across different identity frameworks.
The IdM component needs to interact with the Authentication, Authorization and IoT Service Resolution
component in order to provide its functionalities.
•••

Relationship with the Authentication component;
Authenticate the requesting subject;
Authenticate the subject for which a pseudonym is requested.

Relationship with the Authorization component:••

Get the access rights of the requesting subject and of the subject for which a pseudonym isrequested;
Create a new access policy associated to the pseudonym.

One of the tasks of the IdM FC is to enable security features between different IoT frameworks by creating
pseudonyms for identities pertaining to other IoT frameworks. The IdM component addresses this kind ofproblems by issuing pseudonyms and accessory information to trusted subjects so that they can operate(use or provide Services) anonymously. Pseudonyms are temporary identities of fictional subjects (orgroups of subjects) whose credentials can be used by a subject or a set of subjects when interacting withother subjects instead of using its own credentials. Access rights associated to pseudonyms depend on
those of the identities of the request issuing subject(s). As pseudonyms are identities, they can be used inturn to request other pseudonyms.

H2020 EUJ-02-2016

CPaaS.io

Page 43 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

4.3 CPaaS.io Information View
The purpose of the Information View is to provide system UCs and information about the information
structure. This second aspect of the IV will be dealt with in the next iteration of the architecture, in the formof 1/ CPaaS.io core ontology for data & VE observation, VE/VE Service/IoT Resource/IoT Service
Descriptions and 2/ scenario related domain ontologies.
4.3.1 System use-cases
The general idea of having System Use-Cases described in this document is two-fold:••

Having a common understanding on how the platform behaves (meaning how FCs interacts witheach other) at both logical and concrete levels (that’s why system UCs appears in two different
sections, respectively section 4.2 and 6);
Proposing to CPaaS.io users, a catalogue of usage patterns (or reference implementations) that canbe referred to when implementing new scenarios.

This section provides a non-exhaustive list of system use-cases which are used to illustrate the accepted
platform behaviours and to reach common understanding between the various partners:••••

Configuration phase (pre-operational phase);
Production of data (depending of various cases) and sub-sequent data flows between components;
Consumption of data (ranging to simple consumption to usage of reasoning and analytics);
Any other typical usage.

When a common understanding is reached each single use-case needs to be “instantiated” within the
Instantiation View using concrete components (for both u2- and FIWARE-based platforms).
4.3.1.1 Management phases
Note: The scope of management FC is still under discussion, the following list gives a non-exhaustive
overview of the topics to be considered:
•
•
•

•
•
•

To assign the platform with a unique identifier;
To define CPaaS.io clients (and actors in general);To create and configure a set of roles that the platform users can endorse i.e. actors producing
data, accessing data to/from the platform or creating/running application using CPaaS.io
capabilities;
To set-up access rights for roles and actors;
To register platform components capabilities (as an enabler to Edge Computing);
To link platform instances with each other (for federation purpose).

4.3.1.1.1 Platform manager creates a new platform user
Creating a new user in the platform involves different activities like:•••

Gathering and storing “administrative” data like name, organisation, department, …
Creating / Allocating and storing security credentials;
Setting access policy up.

Some of those actions involve the IdM Functional Components. Please refer to D5.2 [7] for detailed
System Use-Cases.

H2020 EUJ-02-2016

CPaaS.io

Page 44 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

4.3.1.2 RDP pre-configuration phases
We describe in this section UCs (in the form of UML Use-Cases) that should occur at the RDP level before
operation phase. They include actions such as:•••

Declaring IoT services, VE services and Data endpoints to the platform;
Describing and registering IoT Services, IoT Resources, VE services semantic descriptions;
Advertising data sets, …

4.3.1.2.1 Data producer Class-I pre-configuration
In order to be either forwarded SPARQL data requests by CPaaS.io platform instances or be invoked an IoTService, the different endpoints (Semantic data endpoints and IoT Service endpoints) must be declared tothe platform instance, the RDP is linked to (See Figure 11 below). This also allows discovery requests toreach Class-I RDP as they locally manage IoT Service and IoT Resource semantic descriptions. Optionally,
data sets can also be described and advertised so that data can be accessed directly at the RDP level by
the CPaaS.io client without requesting that data at the platform level and relying on federation. Finallyaccess-rights must be defined so that discovery, look-up and access can be eventually granted (or denied)to the pre-registered CPaaS.io clients.

Figure 11: UML UC for Class-I RDP pre-configuration case

H2020 EUJ-02-2016

CPaaS.io

Page 45 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

4.3.1.2.2 Data producer Class-II pre-configuration
The main difference with the Class-I case is that a Class-II RDP needs to provision a Semantic Annotatorthat will be used to annotate raw data so that it complies with the CPaaS.io ontology (see Figure 12 below).
As a Class-II RDP is not semantic-ready, only a non-semantic data endpoint is provided in order toaccommodate direct access by a CPaaS.io client to the locally stored raw data (following e.g. prioradvertisement of non-semantic data sets as illustrated in Section 4.3.1.4.2).

Figure 12: UML UC for Class-II RDP pre-configuration case

4.3.1.2.3 Data producer Class-III pre-configuration
As explained in Section 4.1 RDPs Class-III are infrastructure-less parties that only own IoT Resources. They
rely on the CPaaS.io platform for:
•
•
•
•
•

Registering their IoT Resources so that they can be discovered or looked-up;
Serving, registering and managing IoT Services that expose their IoT Service so that they can be
discovered, looked up and invoked (for synchronous live data consumption);
Pulling data from the IoT Resources;
Annotating semantically the data;
Producing the data towards the Semantic Data Repository.

H2020 EUJ-02-2016

CPaaS.io

Page 46 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

The two first items of this list pertain to a configuration phase that occurs prior to any data production(which is elucidated in Section 4.3.1.4). The UML use-case below (Figure 12) explains in details thoseactions.

Figure 13: UML UC for Class-III RDP pre-configuration phase

RDP Class–III have the responsibility of providing IoT Services exposing their IoT Resources, they also
provide IoT Service and IoT Resource semantic descriptions. The sequence of actions is therefore to 1/ todeploy IoT Service to the CPaaS.io (the needed IoT Service server is not shown in the architecture but will
be part of the Deployment and Instantiation Views) 2/ to register the descriptions to the IoT Service andResource registry FC 3/ to provide a polling policy to the Resource Manager FC.
4.3.1.3 Declaring a new platform to the CPaaS.io eco-system
For the sake of platform federation, a new platform instance needs to be known from existing CPaaS.io
platform instances. This UML use-case will be fully described as soon as aspects pertaining to federation
have been fully dealt with (architecture next release) from both EU and Japanese sides.
4.3.1.4 Production of data
There are basically two main ways to producing data:•

Asynchronously: it is meant here that the data is produced on its own and then fed into the platform(published, stored) at the initiative of the data producers, following its own production policy(including sampling rate). In this scenario producers can either fully rely on platform capabilities(we will see later on what this exactly means) or rely on their own infrastructure. In this later casethey will decide which part of the data needs to be published to the CPaaS.io platform;

H2020 EUJ-02-2016

CPaaS.io

Page 47 of 110

Deliverable D3.5•

CPaaS.io System Architecture (v3)

Synchronously (or on-demand): it is meant in this second mode, that the data will be pulled fromthe IoT Resource (i.e. sensor) only when there is a request from “the top” to receive or consume
such data, and this is done basically by triggering an IoT Service exposing that IoT Resource. Again
this case refines into two sub-cases:
o The IoT Service is triggered explicitly, i.e. through a direct call like for instance a REST GET;o The IoT Service is triggered implicitly whenever a platform user wants to access a VE
property (as VE properties are bound to IoT Service through the use of Associations). Thissecond case makes the assumption that the VE endpoint implements this mechanism.

If the asynchronous mode is used, accessing a VE property results in the VE endpoint retrieving the latest
stored value for the IoT Resource bound to the property via the Association. Alternatively it is possible thatthe direct invocation to the IoT Service is made in the case the RDP provides an IoT Service endpoint aswell (even if working mostly in the asynchronous mode).
Publishing of data asynchronously is made through the Communication Channel which offers
publish/subscribe functionalities. Implicit storage can be achieved when publishing along specific topic(see Section 4.3.1.6).
This section gives illustrations to those different possibilities, while section 4.3.1.4.3 will focus on data
consumption.
4.3.1.4.1 Data Producer Class-I produces data to the platform
We develop here three different cases:•••

Case I.a/: corresponds to classical publishing of semantic data (without federation capability);
Case I.b/: corresponds to classical publishing of semantic data (with federation capability);
Case I.c/: corresponds to the publishing of data/data set descriptions.

The detail of those 3 cases is discussed hereafter:•••

Case I.a/: The general idea (Case I.a/) explained in Figure 14 (shown with the plain red arrows) isthat a Class-I RDP follows its own publishing policy and therefore pulls and stores data at a predetermined rate and then publishes its semantic data (or part of it) to the CPaaS.io semantic
repository using the Communication Channel FC (which can be seen as a message bus withpublish/subscribe capability (see the Asynchronous case in 4.3.1.4 1/)). Relevant interactions inFigure 14 are 1/, 2/, 3/, 4/ & 5/. Corresponding data consumption is illustrated in section 4.3.1.5.1
Case II.a/.
Case I.b/: This case is very close to Case I.a/. Main difference is that, since the semantic data isalready stored locally there is no additional publishing towards CPaaS.io platform. Data stays local
and any attempt to consume data using a SPARQL request at the CPaaS.io level is forwarded to thedata endpoint provided by the CPaaS.io-registered Data Providers. Relevant interactions in Figure
14 thus are only 1/, 2/ and 3/.
Case I.c/: This last case illustrates a quite different scenario, where the RDP stores the semantic data
within his own repository (therefore locally outside the CPaaS.io) and only publishes to CPaaS.io
semantic repository a semantic description of the data sets that can be therefore accessed only
locally. This scenario is quite different from 1.a/ but is still very relevant in practice. Following thisstrategy, a data consumer will not consume the semantic data from the CPaaS.io repository like incase II.a/ (see Section 4.3.1.4.1) but indeed will discover which data is available and how to accessit. The final part of the consumption process involves a classical SPARQL request sent out to the
RDP data endpoint in order to retrieve the semantic data from the local semantic data store.
Relevant interactions are 1/, 2/, 3/, 4bis/ and 5bis/.

H2020 EUJ-02-2016

CPaaS.io

Page 48 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 14: Data production for Class-I RDPs

4.3.1.4.2 Data Producer Class-II produces data towards the platform
In the Class-II case there is no local support to semantic so only non-semantic data is stored locally. The
RDP then needs to annotate the raw data (aligning it with the CPaaS.io ontology) before publishing to theplatform. Only a non-semantic data endpoint is provided by such RDPs.
••

Case II.a/: This case follows the general idea already presented in section 4.3.1.4.1 Case 1/. Data isretrieved by the Resource Manager FC and stored locally, then annotated in order to comply with
CPaaS.io ontology and published towards CPaaS.io Semantic repository via the Communication
Channel FC. Relevant interactions in Figure 15 are 1/, 2/, 3/, 4/, 5/ & 6/;
Case II.b/: This second case is similar to Case I.b/ described in section 4.3.1.4.1. Instead ofsystematically annotating and publishing data towards CPaaS.io, the RDP publishes only
descriptions of available data or data set (incl. information about how to access that data). Relevantinteractions in Figure 15 are 1/, 2/, 3/, 4bis/ and 5bis/.

H2020 EUJ-02-2016

CPaaS.io

Page 49 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 15: Data production for Class-II RDP

4.3.1.4.3 Data Producer Class-III produces data towards the platform
Since a RDP Class-III is passive, it does not per se push data towards the platform. On the contrary an agent(namely IoT Resource Manager FC) located at the platform side is responsible for polling data from theresources owned but the RDP and pushing it to the platform.
A WEB front-end allows the owner of the IoT Resources to specify a polling policy like for instance a timeschedule, sampling rate and topic to be used, would the data be forwarded to the Communication Channel
for real-time consumption. Instead of using this channel, the RDP may decide to store it directly within the
non-semantic data repository.
4.3.1.4.4 Data Producer Class-IV & V produce data towards the platform
Class-IV and –V RDP are yet another two similar classes of passive RDP which are relying on platform
agents for polling data and passing it on towards the platform. Like for Class-III RDPs, they rely respectively
on the two Live Data Listener & Ingestion (LDLI) and Government Data Listener & Ingestion (GDLI) FCs partof the IoT Service FG. Both FCs are instrumented via either a web front-end page where the nature of data
to be retrieved / subscribe to is specified or directly via the FC API (this is the mode used by the ML
component).
The LDLI is focussed only on Twitter in its preliminary version. It can retrieve data in two different modes:••

Streaming data: it then subscribes to a tweet feed according to a given list of hash tags and stringsand sends to the Communication Channel;
Historical data: it retrieves in one-go a bunch of social media data and sends it to theCommunication Channel or back to the invocating party (e.g. the ML component).

4.3.1.5 Consumption of data
Consumption of data can be done as follows:•

Live data

H2020 EUJ-02-2016

CPaaS.io

Page 50 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Invoking an IoT Service, in order to either retrieve annotated current readings from a sensor
resource, or setting a new actuator value;o Invoking a VE-service in order to get directly current value of VE properties;
Historical data (stored data)o Retrieving VE-level observations or annotated sensor historical data using SPARQL queries.
o•

4.3.1.5.1 CPaaS.io client consumes data originating from RDP Class-I
Data consumption from Class-I RDP offers 5 alternative methods:
•

•

•

•

•

Case I.a/: Data previously published by a Class-I RDP can be consumed from the CPaaS.io semantic
repository via a SPARQL request (this corresponds to the case where the RDP either duplicates all
its semantic data or publishes surveys or part of its semantic data within CPaaS.io repository) to the
CPaaS.io semantic data repository;
Case I.b/: Alternatively if the RDP local platform has registered its data endpoint to the CPaaS.io,
the federation capabilities of the platform, makes sure that any incoming SPARQL request is
forwarded to the RDP. The request is therefore answered by the RDP itself;
Case I.c/: In this last case, the data endpoint of the RDP is accessed directly by the CPaaS.io client
as means to access the data/data set and data/data set descriptions were previously advertised tothe platform and therefore could be discovered by the client prior to data consumption (See Case
I.c/ in Section 4.3.1.4.1);
Case I.d/: As far as live data is concerned, the CPaaS.io client can invoke directly an IoT Service(following discovery and resolution) via the IoT Service endpoint and therefore being returned thecurrent annotated value;
Case I.e/: Subscribing to the Communication Channel in order to receive automatically the flow of
produced data.

4.3.1.5.2 CPaaS.io client consumes data originating from RDP Class-II
Data consumption from Class-I RDP offers 4 alternative methods:
•

•

•
•

Case II.a/: like in Case I.a/ above the historical data can be accessed from the CPaaS.io Semantic
data Repository FC via a SPARQL request sent to the Semantic Data Repository SPARQL data
endpoint;
Case II.b/: Corresponding to Case I.b/ above, {historical data/data set} has been previously
advertised and therefore can be accessed directly by the CPaaS.io client from the RDP SPARQL data
endpoint, without involving the CPaaS.io platform (apart for the discovery phase);
Case II.c/: Subscribing to the Communication Channel in order to receive automatically the flow of
produced data;
Case ii.d/: As far as live data is concerned, if the CPaaS.io client is not satisfied with the sampling
rate implemented by the RDP, it can also invoke directly an IoT Service (following discovery andresolution) via the IoT Service endpoint and therefore being returned the current annotated value
in near real time.

4.3.1.5.3 CPassS.io client consumes data originating from RDP Class-III
Data consumption from Class-III RDP is achieved in 3 ways:•••

Using SPARQL request at the CPaaS.io platform level in order to query historical data from the
Semantic Data Repository;
Invoking IoT Services exposing the RDP resources via the IoT Service server at the platform level;
Subscribing to the Communication Channel for live data consumption.

H2020 EUJ-02-2016

CPaaS.io

Page 51 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

4.3.1.5.4 CPassS.io client consumes data originating from RDP Class-IV or Class-V
Data consumption from Class-IV or Class-V RDPs is achieved in 3 ways:•••

Using SPARQL request at the CPaaS.io platform level in order to query historical data from the
Semantic Data Repository;
Invoking the API from (respectively) the LDLI and GDLI FCs;
Subscribing to the Communication Channel for live data consumption.

4.3.1.6 Storage of Data
Storage of IoT data or VE data can be achieved explicitly using the two Semantic/Non-semantic Data
Repository FC and Semantic/Non-semantic VE Data Repository FC APIs or implicitly when publishing thedata to the Communication Channel along a pre-determined topic.
By default the four data repositories (VE-level and IoT-level) are listening the Communication Channel andstoring everything coming along pre-determined topics they are assigned to.
On the one hand, currently the brokers deployed for these platforms (IoTBroker and Orion Context Broker)
make use of NoSQL databases such as MongoDB or CouchDB because of its versatility at representing theinformation. Compared with traditional SQL databases where the user needs to pre-define the table where
the information is going to be stored by means of a set of fields, NoSQL databases are based on JSON(JavaScript Object Notation) or BSON (Binary JSON) documents without predefining the schemes into thecorresponding tables.
Thanks to this representation format, heterogeneous information sources can be quickly stored providing
also a good trade-off regarding the performance in accessing the stored information.
On the other hand, a lot of efforts have been put to provide a richer representation format using Linked
Data. One of those efforts is the definition of a standard API for Context Information Management (NGSILD API) [44], enabling close to real-time access to information coming from many different sources. In thisstandard, an NGSI-LD Entity shall be represented by an object encoded using JSON-LD, a JSON-basedformat to serialize Linked Data. The NGSI-LD API incorporates the latest advances from Linked Data andbrings the possibility of publishing data to NoSQL, RDF or graph databases, such as Apache Jena, Neo4J,
OrientDB, etc.
4.3.2 CPaaS.io ontologies and internal formats
FIWARE and u2 platforms are using different data formats internally and expose different public APIs. For
data users this is inconvenient and increases the amount of work needed to consume CPaaS.io-based datain these platforms. To address this issue and increase data and information re-use, the RDF data modeland according ontologies are used.
Using ontologies implies exposing metadata and/or data in RDF. This can either be done by implementing
an additional RDF data store or by mapping existing data to RDF, see Section 4.2.6.1 for more detail.
There are two main areas where ontologies are used: Exposing metadata, i.e. information about the sensor
or exposing data, i.e. observations of a sensor. Ontologies will be used for describing PEs (via the modellingof VE properties), for metadata like quality information, and for linking of data sets from different providers.
In particular for the federation of implementation platforms between Europe and Japan, as theimplementation platforms in the two regions provide the data in different forms (NGSI in Europe, ucR in
Japan).

H2020 EUJ-02-2016

CPaaS.io

Page 52 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

As mentioned in Deliverable D6.1 [8], the project is following the W3C recommendation on “Data on the
Web Best Practices”9 and makes use of existing ontologies and evolving standards. A subset of usedontologies is mentioned below, more details and links to the specifications of these ontologies can befound in the Data on the Web Best Practices document. The application and, where necessary, extension ofthese ontologies acts as a CPaaS.io core ontology. For more specific details about ontologies mentioned
in this document, please refer to Deliverables D6.1 [8], D6.3 [9] and forthcoming D6.4.
4.3.2.1 Metadata ontologies
The goal of metadata ontologies is to provide information about the data available in the platform. The
most basic and useful vocabulary is Data Catalog Vocabulary (DCAT). For every dataset some basic
information in DCAT needs to be published, including some descriptive text about what the dataset isabout. To add trust about the data set, Data Quality Vocabulary is used. This vocabulary encourages specificdefinitions of so called quality dimensions. These dimensions should relate to the specific data and use
cases. Within forthcoming Deliverable D6.4, specific CPaaS.io dimensions are developed.
In the context of CPaaS.io and Smart Cities, data is often captured by IoT devices. Providing metadata
about the sensor and sensor network is essential to understand and interpret the data properly. Initially
CPaaS.io was focusing on multiple sensor related ontologies. In a second round of discussions thepreviously favoured FIESTA-IoT ontology was discarded due to some doubt about its sustainability. In the
meanwhile a completely revised version of the Semantic Sensor Network Ontology (SSN) was released. Thisversion includes actuation and has been released by the W3C consortium (Spring 2017). It is still lacking
some concepts and relations but we are confident it could be extended in order to cover those missing
ones, using for instance fragments of OWL-S or IoT-A ontologies (for covering the descriptions of IoTservices and others like e.g. analytics-as-a-service).
We envision that the main usages for the CPaaS.io core ontology will be:
•
•
•
•
•
•
•

To model/describe entities of interest (PEs) and their virtual counterparts, the VEs (classes andinstances);
To model/describe IoT Resources (i.e. Sensors and Actuators);
To model/describe Sensor and VE observations (only sensor observations are covered by SSN2);
To model/describe Actuation actions and VE actions;
To model/describe Services profiles (IoT Services and general purpose services e.g. analytics);
To describe data-sets (either stored locally or within the platform);
To model Domain-related concepts and relations.

The full specification of the CPaaS.io ontology will be provided during Year 2 and Year 3 of the project,and documented partly in D3.5 and fully in WP6 deliverables D6.1 [8], D6.3 [9] and forthcoming D6.4 andD3.7 (Year 3 deliverables).
Additional metadata can and should be provided according to Data on the Web Best Practices. Adding
information like provenance and license information are recommended to encourage data re-use.
4.3.2.2 Data ontologies
SSN2 not only provides an ontology for metadata about sensors and captured data but also the concept
of Observation. Observation can be used to describe a specific measurement of a sensor in RDF. While the
SSN concept of Observation is rather simple it is close to the definition of an Observation in the RDF Data

9 https://www.w3.org/TR/dwbp/

H2020 EUJ-02-2016

CPaaS.io

Page 53 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Cube Vocabulary. This vocabulary seems to become the de-facto standard for publishing multidimensional data in RDF and is actively used in many different domains, from publishing statistical data toenvironmental, geospatial or earth observation data. In the RDF Data Cube Vocabulary an observation isbuilt around three different component types called dimensions, attributes and measures. Any of thesecomponents is defined within the specific use case, which makes applying it in a specific context
straightforward. SSN Observation can be seen as a simplified version of that which often can be enoughin the context of IoT devices.
For many CPaaS.io related use cases publishing sensor data in any of the two Observation concepts should
be sufficient.

5 Perspectives
This section provides a preliminary description of the CPaaS.io perspectives and starts sketching strategies
for reaching the identified targeted properties/qualities of the CPaaS.io platform. The objective here is torefine strategies and find synchronisation points between the Japanese and European approaches so thatinteroperability can be eventually ensured. See Section 2.1.5 for an introduction to Perspectives.

5.1 Security
5.1.1 Policy Based Authorization for Access Control
Description: The Access Control module within CPaaS.io is responsible for making authorization decisions
based on access control policies. These polices define the permissions that a subject (smart object or user)
has over certain target resources (e.g. IoT service). Thus, the policies specify which particular actions that
subjects or groups are allowed to perform over a target resource under certain conditions. These
conditions usually refer to the context information provided by the context manager module. In this regard,
the eXtensible Access Control Markup Language (XACML) [26] policy language will be adopted in CPaaS.io
to deal with authorization policies.
Additionally, it is desirable to employ access control solutions specially designed for IoT scenarios. Recently,
the capability-based access control model (CapBAC) has been postulated as a realistic and promising
approach to be deployed on IoT scenarios. In this sense, the authorization component is able to perform
capability-based access control based on the mechanism presented in [27].
In a typical CapBAC scenario, an entity (subject) tries to access a resource of another entity (target). Usually,a third party (issuer) generates a token for the subject specifying which privileges it has. Thus, when thesubject attempts to access a resource hosted in the target, it attaches the token which was generated by
the issuer. Then, the target evaluates the token granting or denying access to the resource. Therefore, asubject which wishes to get access to certain information from a target, requires sending the token
together with the request. Thus, the target that receives such token already knows the privileges that the
subject has and a local Policy Decision Point (PDP) only needs to verify the capability token is valid. This
simplifies the access control mechanism, and it is a relevant feature in scenarios with resource-constrained
devices since complex access control policies are not required to be deployed on constrained end-devices.
Additionally, the token must be tamper-proof and unequivocally identified in order to be considered in areal environment. Therefore, it is necessary to consider suitable cryptographic mechanisms to be used evenon resource-constrained devices which enable an end-to-end secure access control mechanism. Moreover,given its high level of flexibility, CapBAC could be also extended to consider contextual conditions related
H2020 EUJ-02-2016

CPaaS.io

Page 54 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

to parameters which are locally sensed by end-devices. Also, this model could be complemented by otheraccess control models by providing automated tools to infer the privileges to be embedded into the token.
On the other hand, this component is also responsible for providing access control to the information
broadcast in a shared media allowing only the consumers with the right credentials to gain access to suchinformation.
To do so, this component uses CP-ABE [35], an encryption schema that ciphers information under a certain
policy of attributes, and the keys of the users are associated with sets of attributes. This enables
dissemination of information using different information sharing models where the producer of theinformation is always on control of how the information is accessed.
CP-ABE is considered, because IoT Systems need not only effective ways of coping with security issues but
also efficient ones. In this sense, although the classic security schemes such as Secret Key Cryptography(SKC) and Private Key Cryptography (PKC) provide proven security primitives, they may not be suitable for
distributed systems as IoT. The use of CP-ABE is an interesting improvement to the other ciphering
schemes. With CP-ABE, the information can only be ciphered with the policies previously defined, and allusers whose keys satisfy the policy are able to decipher the information. This not only saves resources, but
might also be well related with the attribute-based nature of XACML, giving consistency to the security
functionality.
5.1.2 Authentication
Description: Authentication ensures that an identity of a subject (user or smart object) is valid, i.e., thatthe subject is indeed who it or what it claims to be. The authentication module enables authenticating
users and smart objects based on the provided credentials. The credential can be in form oflogin/password, shared key, digital certificate.
Traditional authentication mechanisms based on for instance login-password or electronic IDs have been
already solved in by other projects and solutions. CPaaS.io focuses on alternative and more sophisticatedways of performing authentication ensuring, at the same time, privacy and minimal disclosure of attributes.
Thus, this kind of alternative privacy-preserving way of authentication using anonymous credential system
is handled in CPaaS.io framework by the Identity Management Component.
The IdM is able to verify anonymous credential and then, in case the identity is proved, the IdM interacts
with the authentication module which is the one that actually delivers authentication assertion to be usedduring a transaction.
5.1.3 Privacy Preserving Identity Management
Description: The Identity Management (IdM) module is responsible for managing the identities of smart
objects and users. The module is able to take into account privacy concerns to manage subjects’ credentials(from users or smart objects), in a privacy-preserving way relying on anonymous credential systems. It isable to endow subjects with mechanisms to ensure anonymity, which is done mainly issuing pseudonyms
and proof of credentials to minimal personal data disclosure.
The IdM system is responsible for managing and storing the credentials, which are used by subjects torequest information from an IoT services. The IdM allows users to obtain the proper credentials that canbe use afterwards to derive proofs of identity to be presented to a Verifier (e.g., IoT Service provider) inorder to prove the identity condition while disclosing the minimum amount of private information.
The component is envisioned as endowed with a cryptographic engine like Idemix [28] responsible for low
level cryptographic operations required by the anonymous credential system.
H2020 EUJ-02-2016

CPaaS.io

Page 55 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

5.1.4 Extension to Key Exchange and Management
Description: The Key Exchange and Management (KEM) component assists peers involved in acommunication in the process of establishing a security context, like for instance, setting up tunnels for asecurity communication. It involves cryptographic key exchange and provides interoperability between thepeers in order to reach an agreement regarding the security functions to use for the communication. This
component is also in charge of storing and generating the cryptographic keys.
The Group Manager module as an extension of the KEM, enables sharing information in a secure andprivate way, with those groups of entities that satisfy certain particular sets of identity attributes values.
These particular sets of attributes are represented by attribute sharing policies, which are influenced bycontext information where the data sharing is being performed.
This module is envisioned to manage dynamic sharing groups. To this aim, the group manager makes useof attribute based encryption mechanism, namely the Ciphertext-Policy Attribute-Base Encryption (CP-ABE)
scheme [29]. With this scheme, data to be shared within a group is encrypted under a policy of attributes,
while keys of participants are associated with sets of attributes. Only those target users that satisfy
particular identity attributes (those given in the policy) possess the cipher keys to decrypt the data. In thisway, a data producer can exert full control over how the information is disseminated to other entities, whilea consumer’s identity can be intuitively reflected by a certain private key.
5.1.5 Interoperability between platforms from EU and Japan
Description: Interoperability is a fundamental aspect in the scope of CPaaS.io project. For this reason, we
have considered two different scenarios where such security considerations take place: Integration of
Personal Data Stores (PDS) from both platforms, and the integration of the access control management insmart buildings from them too.
For the first scenario, where PDSs are managed by a user in different countries (Figure 16), an Open ID
interoperability must be granted. To do so, our proposal comprises the integration of this security
mechanism, as well as a development of a PDS from the EU-side which will comply with the API alreadydefined by the Japanese platform. This way, through the Open ID technology interoperability between EU
and Japan will be granted.

H2020 EUJ-02-2016

CPaaS.io

Page 56 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Scenario

EU PDS(Personal Data Store)(3.2) transfer personal data
( eg. OIC: open id connect 1.0)

Omotenashi(Personal Data Store)(3.1) request(1) Register personal data (2) Specifying to
get PersonalUsing EU Dashboard
Data Using JP (5) Customized
view
dashbaord

DigitalSignage(4) Putting Card
TravelEuropeU-TokyoFigure 16. EU-JP joint security scenario

Regarding the second scenario, building access control management, a Context-Aware Access Control
System for Physical Space (CAACS) has been adopted by our partners from Japan, Figure 17. This techniquemakes use of the XACML architecture where the well known PEP, PDP, PAP and PIP entities foradministration, decision, enforcement and information policies have been instantiated as depicted in
Figure 18. For this reason, we plan to integrate this security mechanism with our Capability Access Control
Mechanism which also makes use of PAP, PDP and PEP for managing, deciding and enforcing XACML
policies by using Capability Tokens.

Figure 17. Access Control System for Smart Building. Floors representation

H2020 EUJ-02-2016

CPaaS.io

Page 57 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 18. XACML framework instantiation

5.2 Semantic Interoperability
Information Model
Description: The FIWARE focuses on a common data model and powerful interfaces for searching andfinding information. FIWARE is using the OMA Next Generation Service Interface (NGSI) data model as thecommon information model of IoT-based systems and the protocol for communication. We describe the
NGSI9 and NGIS10 below.
NGSI9 is used to manage the availability of context entity. A system component can register the availabilityof context information, and later on the other system component can issue either discover or subscribe
messages to find out the registered new context information.
NGSI10 is used to enable the context data transfer between data producers and data consumers. NGSI10
has query, update, subscribe and notify context operations for providing context values. A context broker
is necessary for establishing data flow between different resources as well as consumers or providers.
As a semantic data consumer accessing data in either a u2 or FIWARE platform should be as transparent
as possible. This requires semantic interoperability on different levels: First one needs to proxy a SPARQL
query to the correct platform and second the platform should be able to handle different schema andvocabularies and return unified results over both platforms.
The first requirement can be met by providing transparent federation for different SPARQL endpoints.
From a users perspective only one SPARQL endpoint is accessed. This SPARQL endpoint acts as a proxy for
two or more SPARQL endpoints in the FIWARE & u2 platform. A possible solution for this approach is
CostFed [41] , an index-assisted federation engine for federated SPARQL query processing over multiple
SPARQL endpoints.
Semantic interoperability on schema and vocabulary level can be provided by supporting SPARQL 1.1
Entailment Regimes [42]. RDF and OWL provide semantic interpretations for RDF graphs that allow
additional RDF statements to be inferred from explicitly given assertions. In SPARQL endpoint
H2020 EUJ-02-2016

CPaaS.io

Page 58 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

implementations this inference is called reasoning, multiple open source and commercial endpoints
support various levels of reasoning on top of RDF, RDFS and OWL. Reasoning can only work if relationships
between multiple schema and vocabularies are clearly described [43]. In the case of FIWARE and u2, thismapping needs to be described accordingly and reasoning needs to be supported on SPARQL endpointlevel to provide transparency in data access for the user.

5.3 Performance
Service Orchestrator
Description: The Service Orchestrator module is responsible for generating processing task instances andassigning them to proper resources (e.g., edge or cloud nodes) for task deployment, based on the topology
defined by developers, the current system status, and also some parameters (e.g., the scope of data
sources) given by the operator on the fly. Meanwhile, the Service Orchestrator is managing all task
instances over the resources at the global level.
Service orchestrator allows leveraging edge for more efficiency and higher performance in computing andcommunication. Leveraging edge computing with Service Orchestrator allows significant bandwidth
reductions, especially for scenarios such as input streams (e.g., video streams captured by cameras) arefiltered or even analysed on the edge and only the filtered values or analytical results are sent to cloud as
opposed to sending the raw data as it is.

5.4 Scalability
Federation Agent
Description: Federation agent of the IoT Broker provides capability of forwarding data from one IoT Broker
to another with hierarchical or mash-up topologies. For instance, one deployment in a certain area using
an IoT Broker can be accessed by another deployment with another IoT Broker. Hence, Federation Agent
separates IoT data in different domains and enhances the privacy by giving control of the data access to
the IoT domain administrators.
IoT Broker federation allows local deployments to be handled by a local IoT Broker and multiple IoT Brokers
can access data from each other when necessary. Moreover, it may also allow deployments from different
domains in the same region (e.g., a smart city with multiple business domains) having different IoT Brokers.
Compared to the centralized context brokering approach where there is a context broker in the cloud
which collects and manages all information, using Federation Agent is more scalable and distributed
approach which is suitable for IoT deployments.

6 Instantiation views
6.1 U2-based platform Instantiation View
The TRON Project, since its inception in 1984, has been aiming at the realization of Highly FunctionallyDistributed System (HFDS) where any objects worth connected in our surroundings will be embedded withcomputers and work in a collaborative manner to offer better service to human users. The concept of HFDS
has been realized partially by the concept of the IoT and/or ubiquitous computing. In a sense, the world
has finally caught up with the project. So far the project has attempted to realize HFDS by developing
H2020 EUJ-02-2016

CPaaS.io

Page 59 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)technological components that would be necessary such as node devices, identification infrastructure,
information distribution infrastructure, etc. We are now at the stage when we can combine the components
to build a system as a whole and fill in the details since the component technologies have matured.
6.1.1 Description of u2 Functional Components
6.1.1.1 Pre-requisites
In this short section we introduce some concepts which are at the centre of the u2 technology.
6.1.1.1.1 ucode
To identify individual objects, spaces, and concepts in the real world, unique identifiers are assigned torespective objects, spaces and concepts that we wish to identify. This model is called a ucode model. The
target in the real world to be identified in the ucode model (see Figure 19 and Figure 20) is called an"entity,” and the unique identifier assigned for identifying the entity is called a ucode.
The entity consists of objects, places, and concepts. "Objects" in the ucode model include tangible objects
such as industrial products and agricultural crops, and intangible objects such as content and programs.
"Places" include features in the real world such as roads and buildings and more detailed smaller
components in the real world such as rooms and corridors. "Concepts" include the relationships between"objects" and "places" and the information which can be the real-world context. In a nutshell, the entity isa target to be identified among objects, places, or concepts in the real world, and the identifier to identify
the entity is a ucode.

Figure 19: ucode structure

Figure 20: ucode field names and their widths

H2020 EUJ-02-2016

CPaaS.io

Page 60 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 21: Predefined cc values and but boundary between SLDc and ic

6.1.1.1.2 ucR: ucode Relation
ucR: u2 architecture represents the real-world context by modeling the relation on a real-world entity asa relational representation among ucodes allocated to entities or between the ucode and atom , which isa value such as a string, a number or a date. This representation model is called a ucode Relation model(ucR model). When a relationship is represented by ucR model, it is called a Relation.
ucR Unit: The basic unit of the ucR model consists of two ucodes or a ucode and atom, and theirrelationships. Moreover, the respective relationships between the two are provided with a logical ucodecalled a relation ucode. This basic unit consisting of the above triplet is called a ucode relation unit (ucRunit). When this triplet is set in a sentence where the relationships are represented as the predicate, theucode as the subject is called a subject ucode, and the ucode as the predicate which is a relation part iscalled a relation ucode, and the ucode as the object or complement is called an object ucode. The atom
can be substituted for the object ucode. For example, in a description, "R of S is O" or "there is a relation
R between S and O," S refers to the subject ucode, R to the relation ucode, and O to the object ucode or
atom. When it is not necessary to uniquely identify any of the three elements comprising a ucR unit, theirrelevant parts can be left blank.
ucR Graph: The information and context about an entity are represented by combining relations among
multiple entities. For example, for information on an entity indicating a “stuffed cabbage,” pieces of
information such as its recipe, a cabbage as ingredients, and a production area of the cabbage are
combined. To represent such information, ucR units are combined, and a digraph where multiple ucodes
and atoms are connecting by relation ucodes is built. The digraph generated based on the above method
is called a ucode Relation graph (ucR graph). More specifically, the ucR graph is a massive graph structure,in which ucodes are connected by relations and pieces of information described as atoms are associatedwith each ucode.
6.1.1.2 ucode Resolution Component
The wide-area distributed database which manages ucR graphs is called a ucode Relation database. The
ucR database comprehensively manages information on the relations among multiple ucodes in addition
to the content such as information services associated with individual entities to which ucodes are

H2020 EUJ-02-2016

CPaaS.io

Page 61 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

assigned. The ucR database is basically an open database which anyone can use to reference or register
information, but it can also implement an access control.
u2 architecture does not specify the internal configuration of the ucR database. However, the ucR databasemust provide an interface for ucode resolution explained in the following section.
When a user physically accesses an entity in the real world, u2 architecture identifies the information
appropriate to the situation from the ucR database, based on the ucode assigned to the entity. This process
is called ucode resolution. Moreover, the information associated with ucodes, namely, the ucR graph isregistered in the ucR database. The protocol for accessing the ucR database in this manner is called ucode
Resolution Protocol (ucodeRP).

Figure 22: u2 Architecture (ucR focus)

6.1.1.2.1 Functionalities
The main functionalities of the ucode Resolution Component are listed below:••

Identification Resolution Functionso Resolve ucode: Acquiring information about a certain ucode;o Define ucode-associated information: Defining relationship between a certain ucode andinformationo Update ucode-associated information: Updating information about a certain ucode;o Delete ucode-associated information: Deleting information about a certain ucode;
Contents Management Functions

H2020 EUJ-02-2016

CPaaS.io

Page 62 of 110

Deliverable D3.5

o
o
o
o
o
o
o
o

CPaaS.io System Architecture (v3)

Search data: searching ucR triple data from a certain ucode
Resister data: registering ucR triple data associate with a certain ucode
Get data from ucode: getting ucR triple data from a certain ucode
Get data from property parameters: getting ucR triple data by property-based query
Update data from ucode: updating ucR triple data from a certain ucode
Update data from property parameters: updating ucR triple data by property-based query
Delete data: deleting ucR triple data from a certain ucode
Delete data property: deleting ucR triple data by property-based query

6.1.1.2.2 Interfaces
The interfaces of the ucode Resolution Component are based on HTTP/1.1.
The ucode Resolution Component provides the Query ucode interface based on the RDF/SPARQL modeland returns JSON-formatted response. The component provides the RESTful otherwise interface andreturns JSON-formatted response. The following tables show major REST-based APIs concretely.
•

Identification Resolution Functions
URL Path/api/v2/rs/<ucode>•

HTTP
MethodFunction

GET

Resolve ucode (simple API)

/api/v2/resolve/<ucode> GETResolve ucode (general API)

/api/v2/resolve

POST

Defineinformationucode-associated/api/v2/resolve/<ucode> PUT

Updateinformationucode-associated/api/v2/resolve/<ucode> DELETE

Deleteinformationucode-associatedContents Management Functions
URL Path

HTTP
MethodFunction/api/v2/datapoints

GET

Search data

/api/v2/datapoints

POST

Resister data

/api/v2/datapoints/<targets>

GET

Get data from ucode/api/v2/datapoints/<targets>/<properties> GET

Get data
parameters/api/v2/datapoints/<target>

Update data from ucode

H2020 EUJ-02-2016

PUT
CPaaS.io

fromproperty

Page 63 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)/api/v2/datapoints/<target>/<property>

PUT

Update data from property
parameters/api/v2/datapoints/<target>

DELETE

Delete data

/api/v2/datapoints/<target>/<property>

DELETE

Delete data property

6.1.1.3 IoT Aggregator Component
Aggregate computing uses all devices, services and systems that are connected to the network to achieve
desired services. Let us take an example of the optimum control of air conditioning in our living
environment. Aggregate computing uses air conditioners, of course, but it also employs other objects suchas windows, air vents, gas stoves, temperature sensors, humidity sensors, and any other devices that are
related to the control of the air in our living space to achieve the desired optimum control of theenvironment beyond the confine of the original manufacturers. While we aim to achieve such computing
environment, we also have to pay due attention to the governance of the usage of functions. Users shouldhave the final say about who can control what and when instead of the vendors of the devices or service
providers. Thus the users should guide the governance, and we need to provide flexible access control thatcan be dynamically changed according to the current context. However, note that the embedding ofcomplex and comprehensive access control in each node will negate the general efforts to achieve theminiaturization and energy-efficiency of such devices. Yet, we can still achieve the miniaturization, lowcost, energy-saving by moving the complex advanced functions such as access control, which is auxiliary
to the original inherent function of the device, to the cloud. Thus "Aggregate Computing" tries to offer aholistically optimized IoT service by mixing various devices and services as a whole.
The reference implementation for it is "IoT-Aggregator". It has not been easy to connect devices fromdifferent manufacturers and make them collaborate with each other. IoT-Aggregator will act as lubricant
and mediator among the devices, systems and services that would not have been capable of collaboratingwith each other easily.

Figure 23: u2 architecture (IoT Aggregator focus)

6.1.1.4 OPaaS.io "Omotenashi" Cloud Component
The TRON Project has been aiming to realize the vision of so-called HDFS environment in which many
computers in our surroundings cooperate together to offer better services to improve the quality of
everyday living. To realize such an environment, we need the mechanism to let objects to communicate
with each other to collaborate. But we also need a mechanism to learn and collect the attributes of each
H2020 EUJ-02-2016

CPaaS.io

Page 64 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

individual user such as the language spoken, age, many physical characteristics, preferences, etc. Suchknowledge must be reflected to create an optimized environment. For this purpose, TRON Project is now
building a general-purpose Personal Data Store (PDS) that uses the IoT technology. It is called "Omotenashi(hospitality) cloud" under its nickname. "Omotenashi" cloud is a project supported by industrygovernment-academia and now has officially started with the funding from the Ministry of Internal Affairs
and Communications.
In the short time span, this "Omotenashi cloud" can be used to advance the hospitality service to theincreasing number of overseas tourists who are expected to peak in 2020. Customers (consumers) store
their individual characteristics such as preferred spoken language, food taboos, passport information forsales tax-exemption in the cloud. Once the data is stored, such information is easily retrieved and passedon the spot to service providers such as stores and public services by using the smartphone apps ortransportation IC cards as retrieval key. OPaaS.io has been designed to collaborate with IoT-Aggregator.
The collaboration will implement an HFDS environment.
The party who receives a service escrows the personal data in the PDS cloud, and lets it pass the data to
the service vendors as the need arises. So it is the customer (consumer) that controls the vendors. This
concept, Vendor Relationship Management (VRM) is the reverse of the conventional idea of Customer
Relationship Management (CRM). OPaaS.io plays the important role of PDS in the scheme. This frameworkhas been designed to be useful as legacy service platform in Japan after the year 2020 when it will beutilized very much for hospitality service to foreign tourists. Small regional service vendors who did nothave the resources to build conventional CRM can join OPaaS.io service framework and can now provide
better services suited for the new IoT age. Omotenashi Cloud will be useful for invigorating regional
economy and also is expected to add to e-inclusion by accelerating the realization of Enableware.

Figure 24: u2 architecture ("Omotenashi" Cloud focus)

6.1.1.4.1 Functionalities
The main functionalities of "Omotenashi" Cloud Component are listed below:•

Authorization: Starting authentication, logging in by IDm, and acquiring an access token;

H2020 EUJ-02-2016

CPaaS.io

Page 65 of 110

Deliverable D3.5••

CPaaS.io System Architecture (v3)

User Management: Searching users, creating users, and updating users’ information;
Access Authority Management: Searching authorized services, searching authorized user attributes,
and updating authority;

6.1.1.4.2 Interfaces
The interfaces of the "Omotenashi" Cloud Component are based on HTTP/1.1. The "Omotenashi" Cloud
Component provides RESTful interface and returns JSON-formatted response. The following tables showmajor REST-based APIs concretely.
Authorization Functions
URL Path

HTTP Method

Function/api/v1/oauth2/authorize

GET

Authorization request/api/v1/oauth2/token

GET

Token request/api/v1/verify

GET

Token verification

User Management Functions
URL Path

HTTP
MethodFunction/api/v1/user_attributes

GET

Getting user’s attributes/api/v1/user_attributes/{original_id}

POST

Registering user’s attributes/api/v1/user_attributes/{original_id}

GET

Getting user’s attributes

GET

Getting history
attributes/api/v1/original_id

POST

Issueing original ID/api/v1/link_id

GET

Getting link ID/api/v1/original_id

GET

Getting original ID/api/v1/user_attributes/{original_id}/historyofuser’s

6.1.1.5 IoT-Engine Component
IoT-Engine is a standard development platform, standardized by TRON Forum, for Open IoT to realize"Aggregate Computing". IoT-Engine standard specifies the connector on the Micro Processor Unit (MPU)
board, and the RTOS used by the MPU, and requires the function to connect to the cloud services on theInternet. The RTOS used on the IoT-Engine is µT-Kernel 2.0 which TRON Forum releases as open source.
IoT-Engines collaborate with the cloud platform called IoT-Aggregator. By doing this, edge nodes can beconnected via the cloud and they act as the components of the "Aggregate Computing", a vision of the
H2020 EUJ-02-2016

CPaaS.io

Page 66 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)computing architecture framework in next generation. IoT-Engine project has the participation of sevensemiconductor companies from six countries and regions of the world (as of December 2016): Toshiba
Microelectronics, Renesas Electronics, Cypress, Imagination Technologies, Nuvoton Technology, NXP
Semiconductors, and STMicroelectronics.

Figure 25: IoT Engine with IoT Engine Open Platform

6.1.2 Description of CPaaS.io u2-based platform architecture
Figure 26 shows the mapping of “concrete” components in u2 architecture onto the Instantiation View
(Section 2.1.4.5). For historical reasons, u2 architecture was designed by a top-down manner driven by theneeds of applications. Applications themselves have held many functions, which correspond to FGs withinthemselves. This is in contrast to today’s CPaaS.io architecture overview, so it is not easy to create concrete
mapping since some functional modules in u2 architecture is still offered as part of applications.

H2020 EUJ-02-2016

CPaaS.io

Page 67 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 26: uID architecture

6.1.3 Mapping between “Concrete” and “Logical” Functional Components
In this section we use the IoT ARM Functional Model and “logical” FCs as identified and elucidated in
Section 4 and show how the “concrete” FCs described in Section 6.1.1 u2-based concrete architecture maps
to those “logical” FCs.
In Figure 27 below, yellow round corner rectangles corresponds to the u2-based architecture functions(ucR DB, resolution, etc.) Blue and violet round corner rectangles correspond to functions offered in
Omotenashi (Hospitality) Cloud. Red rounded corner rectangles correspond to modules from IoTAggregator. But do note that the u2 architecture itself is in flux, and many applications will offer additional
modules in the future, the mapping today may be slightly changed in 6-12 months time.

H2020 EUJ-02-2016

CPaaS.io

Page 68 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 27: Matching of the u2 components to the CPaaS.io Functional View

H2020 EUJ-02-2016

CPaaS.io

Page 69 of 110

u2 Components

IoT Aggregator p2p securecommunication

Apps

H2020 EUJ-02-2016
ucR DB

Ucode resolutionxxx

Omotenashi
ID/Authentication

OPaaS.io: Omotenashi VRM

xCPaaS.ioxxxPage 70 of 110
x
x
x
x
x
x
x
x

x

x
x

Web Front-end

Platform Management

Resource Deployement Tool

Pre-Processing (VE/IoT)

Post-Processing (VE/IoT)

Rule-based Reasoner

Analytics (VE/IoT)

Resource Manager

Task Execution Engine

Processing Optomizatiom

task Deployment

Task Composer

Kem

AuthZ

AuthN

VE Service Endpoint

VE Semantic Integration

VE & IoT Service Monitoring

VE Resolution

VE Registry

Semantic VE Data Repository

IoT Service

IoT Semantic Integration

Live Data Manager

IoT Service & Resource Registry

Semantic Data Repository

Communication Channel

Deliverable D3.5
CPaaS.io System Architecture (v3)

The following Table 3 summarizes the mapping between “logical” and “concrete” components as shown in Figure 27 above.

Table 3: Mapping table for the u2-based architecturex

x

IoT Aggregator Device
Manager modules

x

x

x
x

Deliverable D3.5

CPaaS.io System Architecture (v3)

6.1.4 Deployment and Operation View
In this last architecture view of the Japanese platform we show how the u2 platform is deployed, giving
hints about hardware & software used (computers, networking, databases, (web-) servers, etc…).
We also give information for selected scenarios (see sub-sections below), showing the architecture usedat the data producer side (e.g. the infrastructure residing outside the platform for the Sapporo scenario).
6.1.4.1 U2-based platform deployment and operation view
Smart City Services

Applications & Services

KokosilIoT Translation Engine

ucR Manager

ucode Manager
Semantic Integration
Layerucode RP

ucR Query Protocol* ID Resolution * IoT Service Finding* SPARQL-Based * REST-based

IoT Services Layer (Cloud
Side)

Open Data
Distribution
Platform

Data Resources

City Government Data (Static)
Obtained from Other Data Stores

IoT Aggregator

OPaaS.io* Tunneling * Access Control* Personal Data Store

Sensor/Realtime Data
(Dynamic)

Privacy, Security & Trust

u2 Open Data Catalog

eTRON Security ArchitectureeTP (Entity Transfer Protocol)
eTRON Tags

Information Services
Layer& Analytics Layer

Personal Data

Obtained from City Infrastructures

IoT Services Layer (Edge Nodes
Side)

Other Platform(External)

IoT-Engine(μT-Kernel 2.0)

ucode
BLE

ucode
NFC

ucode
QR

Figure 28: uID architecture in deployment and operation view

6.1.4.2 Transportation Scenario
Public transportation is one of the most important and complex infrastructures and gives the most basic
function in citizen. Especially, the public transportation network in Tokyo is the most complex in the world:e.g. hundreds of railway stations, thousands of bus stops and routes, and so on. Furthermore, these areoperated many private companies: about 50 railway companies, more than 100 bus companies, and morethan 1,000 taxi companies. Today, advanced public transportation operators in the world are providing
information services such as transfer guidance services based on timetables, and operational information
services such as delays and service disruptions. In case of mega-city with advanced public transportation
network like Tokyo, providing open data is the best and only approach to providing integrated information.
Association for Open Data of Public Transportation (ODPT, odpt.org) is now making efforts to build "Public
Transportation Open Data Centre" that offers information of railway, bus, airline and all other means oftransportation in Tokyo (Figure 29). The demand for open data of public transportation has become very
high, and the number of the association members has increased to 56 corporations (April 23, 2018) and 9
observers.
From the standpoint of technology, ODPT uses IoT and open data technologies for this activity. Static datasuch as timetable data and map data of stations can be easily distributed using only open datatechnologies, but dynamic real-time data such as location of trains and/or buses and their real-time
operation status data are to be dealt with IoT technology such as sensor networks and geo-location
systems.
H2020 EUJ-02-2016

CPaaS.io

Page 71 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 29: Public Transportation Open Data Centre providing both static and real-time location data of trains and busesin Tokyo (Red dots show train positions and blue dots show bus positions)

6.1.4.3 Sapporo Scenario
International tourism is a big industry both in Japan and Europe. For example, in 2016, number of arrivalsof international tourists of Japan is 24,040,000 while the one of EU is 482,480,000. So, tourism support is agood application for smart cities. Sapporo city is one of the most popular cities for tourism in Japan,
providing ski resort, hot springs, and so on. We have a joint project with Sapporo City for promoting
tourism using digital technologies and smart city platform.
First, we have established Sapporo Open Data Association in 2016 with 22 organizations(sapporo.odcity.org). This association conducts the activities such as the study of open data provision andits functions for Sapporo tourism and public transportation, holding events such as application contests,
hackathons, ideathons, promotion of open data usage, and promotion of application usage on smart
phones during feasibility study experiments. We have collected and integrated many data sets related with
tourism such as sightseeing, hotel and restaurant information, public transportation information, andopened the data in the CC-BY license via open data catalog site (Figure 30).
Next, we have developed a mobile application called “Kokosil Sapporo” which gives in-formation such as
tourismspots,
restaurants,
hotels,publictransportation
andeventsfor
tourists(home.sapporo.kokosil.net/en/). It uses open data for Sapporo tourism and also location-aware
technologies. With a geo-spatial position recognition system using GPS and Bluetooth Low-Energy (BLE)
beacons, tourists can get information at the point where they need it in a timely manner.
Open data approach and IoT technology is a good combination for efficient information development of
tourism from the view of governance of data and systems between governments and industries. In caseof Sapporo city, local government provides open data for tour-ism and IoT infrastructure such as BLE
beacons for tourism industry, and the tourism industry provides services and applications for tourists. We
have already special tourism information services for temporal big events such as The Sapporo Snow
Festival 2016, and 2017, and The Asian Winter Games in 2017.

H2020 EUJ-02-2016

CPaaS.io

Page 72 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 30: Sapporo Open Data for Tourism

6.1.4.4 Heath-Care Scenario
Emergency medical service is made possible by people of rescue crews on ambulances, at hospitals, andat dispatching headquarters, and by their teamwork. Information sharing among them is very importantto provide smooth emergency medical care. Yokosuka City and YRP UNL in Japan have jointly beendeveloping the system, "Ubiquitous Emergency Medical Support System" on that CPaaS.io platform, whichcollects the information from emergency hospitals and ambulances and shares it among them andheadquarters.
Our IoT Emergency Medical Services is a very simple system technically, which transmits the video imagesof patients in ambulances to share them among the rescue crew and doctors at the hospitals in real-time
via tablet devices and IP cameras placed in ambulances (Figure 31). This facilitates information sharing
between the rescue crew and doctors. It provides another function which transmits the real-time location
information of ambulances to emergency hospitals. This is because medical care professionals always race
against time in emergency medical practice. So, when the ambulance arrives at the hospital is very
important information for preparing for receiving patients smoothly. This system has been adopted for all
the emergency medical care crew units since 2014 in Yokosuka City and 2017 in Miura City.

H2020 EUJ-02-2016

CPaaS.io

Page 73 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 31: Smart Ambulance using IoT Technologies

6.2 FIWARE-based platform Instantiation View
6.2.1 Description of FCs used in the FIWARE-based platform
In this short section we introduce components which are at the centre of the FIWARE IoT Chapter as well
as some components from the European side coming from previous or ongoing EU projects (e.g. KAT
Toolkit or FIESTA-IOT IoT Registry).
6.2.1.1 IoT Broker
The IoT Broker is specified as a lightweight and scalable middleware component that separates IoT
applications from the underlying device installations. The IoT Broker implementation available through the
FIWARE Catalogue is the reference implementation of this Generic Enabler. This implementation satisfies
all properties described in the specification of the Generic Enabler. The main features of the IoT Broker are:•••Offering a single point of contact to the user, hiding the complexity of the multi-provider nature of
the Internet of Things.
Collecting and aggregating information about thousands of real-world objects on behalf of theuser.
Provide means to assemble lower-level device information (device-centric access) into higher-level
Thing information (information-centric access).

H2020 EUJ-02-2016

CPaaS.io

Page 74 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

IoT Broker is integrated with three other components: IoT Discovery (ConfMan), IoT Knowledge Server, andFIWARE (Orion) Context Broker.
6.2.1.1.1 Functionalities
The main functionalities of the IoT Broker are listed below. Detailed information regarding some of thestandard functionalities can be accessed in the specification document of IoT Broker [30].
•
•
•
•
•

Context query: Accessing context information (for data consumers);
Context subscription: Subscribing for a change or update for a context;
Context subscription update: Modifying an existing subscription;
Context notification: IoT Broker sending notifications to the subscribers;Context data push: Context update from data providers.

Other than these basic context management functionalities, IoT Broker provides access to historical data
(via its historical agent functionality), allows geo-scoped queries, federation (via federation agent), andscalability (having multiple server instances).
6.2.1.1.2 Interfaces
The main aspects of the IoT Broker are listed below. Detailed information regarding the interface can befound in the interface specification for NGSI-10 [32].
The IoT Broker is implemented based on the FIWARE OMA NGSI 10 interface and it provides a RESTful API
via HTTP. The details about the NGSI-10 interface can be found in [33]. The purpose of the NGSI-10
interface is to exchange context information. There are three main interactions types:•••

One-time queries for context information (Context query);
Subscriptions for context information updates (Context subscription) / Notifications base on thesubscriptions;
Unsolicited updates (invoked by data providers).

The IoT Broker is a RESTful web service supporting HTTP/1.1 with JSON or XML data serialization formats.
Some of the operations of NGSI 10 for exchanging context information are listed as follows: queryContext,
contextEntities,
contextEntityTypes,
subscribeContext,
unsubscribeContext,
contextSubscriptions,
updateContext, updateContextSubscription.
6.2.1.2 ConfMan
The NEC Configuration Management or NEC ConfMan is an implementation of the FIWARE IoT Discovery
Generic Enabler. This implementation is specifically designed to interwork with the IoT Broker GE FIWARE
reference implementation, serving as the registry of FIWARE NGSI context providers. The detailed
information about the IoT Discovery GE can be found in [31].
ConfMan is responsible for discovering the availability of context. The availability of context must be
through the registrations made by IoT Agents (i.e., data providers). By registering, data providers maketheir access endpoints available for the data consumers. Data providers offer information about context
entities (i.e., virtual entities) and their attributes (e.g., measurement values, metadata). The role of IoTAgents can be taken by either the Data Handling GE in IoT Gateways or the Back-end Device Management
GE (see Figure 36). Other IoT Backend systems may also provide context information.
Typically, context source availability information is forwarded to the FIWARE Context Broker GE (Figure 36).
This allows context information (i.e., information generated by or coming from the “Things” i.e. the PhysicalH2020 EUJ-02-2016

CPaaS.io

Page 75 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Entities) to be available and accessible by the applications. ConfMan is integrated with two othercomponents: IoT Broker and IoT Knowledge Server.
6.2.1.2.1 Functionalities
The main functionalities of the ConfMan (IoT Discovery) are listed below. Detailed information regardingsome of the standard functionalities can be accessed in the specification document of ConfMan [31].
ConfMan allows applications and services to register, discover, and subscribe to the context availability
information. Context availability information can be one of the following.
•••

Information about IoT resources such as data sources or IoT devices and the variables they measure.
Information about “Things” (i.e. PEs) and their attributes (i.e associated VEs attributes).
Information about associations between entities. For instance, the attributes of a thing can bederived from attributes of other things.

ConMan allows geographic discoveries of context availabilities based on the defined geo-scopes such as
a location (point), circle or a polygon.
6.2.1.2.2 Interfaces
The main aspects of ConfMan are listed below. Detailed information regarding the interface can be foundin the interface specification [32].
The NEC ConfMan API is fully based on FIWARE NGSI-9 which is a RESTful API via HTTP. ConfMan supports
the following operations for exchanging context availability information:••

The registerContext operation is available to register information about data sources in the
ConfMan's database;The discoverContextAvailability operation can be used to query ConfMan for data sources.

Users can subscribe for data sources using the subscribeContextAvailability,
updateContextAvailabilitySubscription and unsubscribeContextAvailability operations. Subscribed users
need to expose a resource for receiving notifyContextAvailability messages from ConfMan.
6.2.1.3 IoT Knowledge Server
IoT Knowledge Server adds semantic information into NGSI messages and enhances these NGSI messages
with semantic reasoning. IoT Knowledge Server component has an internal triple-store where NGSI (orother) ontologies are kept. It serves semantic knowledge such as entity subtypes or supertypes andprovides high-level access to the semantic ontologies via query/subscription functionalities.
IoT Knowledge Server has the ability to serve high-level queries (e.g., get subtypes of a sensor). Moreover,
it is a flexible component which can be extended with new features on the fly. IoT Knowledge Server iscomposed of two HTTP web servers and two databases along with their HTTP servers. One of the databases
is HSQLDB (a SQL database) and the other is given by Apache Jena Fuseki server (a RDF 3-store).
IoT Knowledge Server is currently integrated with the ConfMan component.
6.2.1.3.1 Functionalities
The current functionalities of IoT Knowledge Server are listed as follows.
•

Queryfunctionalities:
getSubTypes,
getSuperTypes,
getAttributes,
getAllSubTypes,
getAllSuperTypes (current list based on NGSI ontology, new features could be easily added)

H2020 EUJ-02-2016

CPaaS.io

Page 76 of 110

Deliverable D3.5

•
•
•
•
•

CPaaS.io System Architecture (v3)

Add new queries: New queries with one or zero variables (e.g. Entity Type) can be added to a fileand we can start using as a new functionality (other than the 5 above)
Register new queries: Adding new queries by HTTP request on the fly (without restarting the server)
Forward SPARQL queries: To provide single point of contact even for direct SPARQL queries alongwith the high level ones (getSubTypes)
Subscribe functionality: Subscribing to queries and regular (fixed time) updates on change to thesubscribers by the IoTKnowledgeServer.
Caching mechanism: Caching mechanisms for fast respond (without asking SPARQL server) toqueries (both for Queries and for Subscriptions)6.2.1.3.2 Interfaces
IoT Knowledge Server offers service via its own REST API and sends response/updates with JSON format.
Some example requests for IoT Knowledge Server are listed below. Other than those, IoT Knowledge
Server also supports REST-based SPARQL interface via HTTP requests (similar to the Apache Jena Fusekiinterface).
GET SUBTYPES: (HTTP.GET)
http://<ip_address+port>/query?request=getSubTypes&entityType=<entity_type>
Example Use: http://localhost:8080/query?request=getSubTypes&entityType=Node
GET SUPERTYPES: (HTTP.GET)
http://<ip_address+port>/query?request=getSuperTypes&entityType=<entity_type>
Example Use: http://localhost:8080/query?request=getSuperTypes&entityType=Sensor
GET ATTRIBUTES: (HTTP.GET)
http://<ip_address+port>/query?request=getAttributes&entityType=<entity_type>
Example Use: http://localhost:8080/query?request=getAttributes&entityType=Sensor
REGISTER NEW QUERY: (HTTP.POST)
http://<ip_address+port>/registerquery
Example Use: http://localhost:8080/registerquery
6.2.1.4 FIWARE Data Context Broker
FIWARE’s Data Context Broker (or simply Context Broker) is a specific middleware for brokering thecommunication between IoT data providers and IoT applications based on NGSI-standard as an opensource generic enabler and it can provide functionalities such as queries pertaining to historicalinformation, federation, entity compositions (aggregating information), and so on. FIWARE Context Broker
has functionality for discovery of information sources (for things/ entities) and the information sources andwhat information they can provide are registered to this Context Broker. FIWARE Context Broker is used
for discovering information sources and then accesses/forwards the information.
6.2.1.4.1 Functionalities
The functionalities of FIWARE Context Broker include standard context management operations such as:•••

Update context;
Query context;
Subscribe context;

H2020 EUJ-02-2016

CPaaS.io

Page 77 of 110

Deliverable D3.5••

CPaaS.io System Architecture (v3)

Update context subscription;
Unsubscribe context.

Similar to the IoT Broker, FIWARE Context Broker gives access to the information based on virtual entities,
meaning that it provides an abstraction to the context, which makes easier application development anddata analytics.
As opposed to having two stand-alone components such as IoT Broker and IoT Discovery, FIWARE Context
Broker is a single component which also has context discovery functionalities (standard operations [34])such as:•••••Register context;
Discover context availability;
Subscribe context availability;
Update context availability subscription;
Unsubscribe context availability.

6.2.1.4.2 Interfaces
The communication between the Context Broker for context value data forwarding as well as registrationof entity registrations are based on the NGSI protocol (NGSI-9 and NGSI-10). The API of the Context Broker
is very similar to the APIs of the IoT Broker and ConfMan components. For detailed information and APIs,
please refer to [34]. This document contains HTTP requests with JSON messages for both NGSI-9 and
NGSI-10 interfaces.
While the FIWARE Context Broker (Orion) supports two NGSI versions (NGSI v.1 and v.2), the first version
is considered as the standard to follow for both Orion and IoT Broker/ConfMan. The major difference of
the FIWARE Context Broker for NGSI v.1 is the lack of “domainMetadata” in the JSON structure. Fullcompatibility between the two brokers can be satisfied with minor modifications.
6.2.1.5 FogFlow Service Orchestrator
Nowadays more and more stream data are constantly generated by a huge number of IoT devices thathave been widely deployed at different locations in our cities. By outsourcing more and more dataprocessing logics from the central cloud down to the network edges, such as Base stations, IoT gateways,
even some endpoint devices, we are able to largely reduce the data transmission cost and also enable realtime data analytics service with fast response time and better privacy-preserving capability. In such a cloudedge environment, we need to decompose our IoT services into smaller tasks so that the small tasks could
be dynamically migrated between cloud and edges. However, it is a big challenge to dynamicallyorchestrate a decomposable service and manage its tasks over cloud and edges, due to the highheterogeneity, openness, and dynamics of such system environments. The FogFlow service Orchestrator isdesigned and implemented to solve this problem. It provides efficient programming model and tools forservice providers to easily program decomposable IoT services and help them manage the service
orchestration during the runtime.
The FogFlow Service Orchestrator is implemented within FogFlow, which is going to be an open source
FIWARE GE soon. The FogFlow Service Orchestrator is mainly to dynamically generate, configure, anddeploy data processing flows over cloud and edges in an optimized manner. The data processing flows are
generated from a service topology based on a service requirement. This service requirement defines which
service topology to trigger, which type of output data is expected, and which type of scheduling algorithm
is preferred.

H2020 EUJ-02-2016

CPaaS.io

Page 78 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

The FogFlow Service Orchestrator consists of two major parts: a Global Orchestrator in the Cloud and a
Local Orchestrator at edges. As illustrated in Figure 32, according to a service topology defined by service
developers, FogFlow dynamically launches necessary data processing tasks from the provided service
topology and the launched data processing tasks can process the raw NGSI context information fromcontext producers like sensors and then generate real-time results required by context consumers likeactuators. The distributed context management can be provided by other components in the virtual entity
layer.

Figure 32: FogFlow Service Orchestrator

6.2.1.5.1 Functionalities
FogFlow Service Orchestration provides the following functionalities to service developers and service
operators via its UI based task designer.
For service developers:•••

Registering an implemented docker image as a data processing task;
Editing and defining a service topology;
Managing all registered service topologies;

For service operators:•••

Triggering and generating the data processing logic from a specific service topology based on arequirement;
Deploying the generated data processing tasks over cloud and edges;
Optimizing the deployment plan based on the locality of producers and consumers and also device
mobility;

6.2.1.5.2 Interfaces
Currently, the following based interfaces are provided via a UI task designer:•

Register a task with a docker image;H2020 EUJ-02-2016

CPaaS.io

Page 79 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 33: Task Registration•

Editing and submitting a service topology;

Figure 34: Graphical editor of service topology•

Trigger a service topology with a geo-scope based requirement;

H2020 EUJ-02-2016

CPaaS.io

Page 80 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 35: Defining a requirement with a specified geo-scope

6.2.1.6 KAT Toolkit
The Knowledge Acquisition Toolkit (KAT) provides a set of methods for labelling data sets after initial preprocessing and data abstraction. In particular the tool provides an algorithm workflow that is implemented
sequentially: pre-processing method, along with dimensionality reduction e.g. principle component
analysis), data abstraction (e.g. clustering) and finally labelling/annotation of the resulting abstracted datais carried out. Input data format is time series in a tuple format or Comma Separated Values (CSV). Some
newly developed machine learning techniques for data prediction will be integrated to the existing toolkit
in the course of the project.
6.2.1.7 Analytics FC
The Analytics FC is provided as AGT background to CPaaS.io as an external service that enables access toanalytics results in semantically rich abstraction level that is meaningful for applications. The service canbe accessed via a GraphQL10 interface that provides access to a data represented in an underlying semantic
data model. In CPaaS.io the service can be pre-configured to execute the full data ingestion and analytics
pipeline as required for the My Experience application. For instance the service can deliver user activity andemotions of people as well as provide contextual information, e.g. location of colour stations in a Colour
Run event as derived from video analytics pipeline.
6.2.1.8 Machine Learning
The Machine Learning (ML) component implements different algorithms fitting different purposes andfocuses. In a first step, it is used to extract information from available Social Media (we chose Twitter for
the first prototype), before publishing it to the CPaaS.io platform (this case corresponds to a RDP Class-IVcase). The first version of the ML module is based on Naïve Bayes and provides a classification of tweets

10 http://graphql.org

H2020 EUJ-02-2016

CPaaS.io

Page 81 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

according to the mood/sentiment they convey i.e. Positive, Negative or Neutral. This classification of eventrelated social media data has been used for the Snow Festival event as an additional source of eventrelated information and will be used during the next ColorRun event.

6.2.1.9 Authorization Component
The authorization component is able to perform capability-based access control based on the mechanism
presented in [27]. It describes authorization tokens specified in JavaScript Object Notation (JSON) and
optimizations to manage access control on constrained devices. The access control component it iscontrolled by XACML policies
The CPaaS.io Authorization scenario will consists of the following main entities:
•
•

•
•

•

Capability Client: performs requests to the Capability Manager to obtain capability tokens, which
are used to perform actions over entities that are registered with the Context Manager;
Capability Verifier: a server receiving access requests from Capability Clients. Such access requests
contain a capability token, which is evaluated by the Capability Verifier in order to deny or grant
the requesting action. This entity makes use of the Capability Evaluator functionality, which isintended to validate capability tokens;
Capability Manager: a server accepting requests for capability tokens generation. Additionally, thisentity acts as a client requesting authorization decisions to the Policy Decision Point;
Policy Decision Point (PDP): It is a server that accepts XACML requests to make authorization
decisions. The PDP is contacted by the Capability Manager before generating a capability token for
the Capability Client;
Policy Administration Point (PAP): It is a web application responsible for defining and managing
the access control policies. It provides the functionality so users can define XACML policies in auser-friendly way. The PAP has a GUI to facilitate the generation of policies.

6.2.1.9.1 Functionalities
This component, as described will be responsible for making authorization decisions. In this sense, thiscomponent will have the following functionalities:••••

Policy generation: In order to provide new access control rules, thanks to the PAP, administrators
will be able to add new access control policies;
Policy validation: Every receiving access request must be validated by the PDP;
CT generation: If the access to a specific resource is granted, the authorization component provides
a Capability Token in which such authorization is granted;
Secure group communications: In this sense, the authorization component can encrypt the
information to be provided to a group of consumers allowing only the ones with the rightcredentials to decrypt that information.

6.2.1.9.2 Interfaces•

According to the specific functionalities defined in the last section, each of this functionality will
have the corresponding interface in order to grant authorization access to the resources to theappropriate consumers. In this sense, the following interfaces or end points should be provided by
our authorization component:Policy generation: A certificate must be provided in order to validate
the profile and permissions of the user requesting such generation. In addition, the triplet(resource/s, subject/s, action/s) must be provided too;

H2020 EUJ-02-2016

CPaaS.io

Page 82 of 110

Deliverable D3.5••

CPaaS.io System Architecture (v3)

Policy validation: This interface should receive the request in a JSON format, the identity of the user
and an authentication token which make possible to generate an access control decision. If theaccess is granted, a CT will be provided to the requester;
Secure group communications: The authorization component must have an interface which allow
requesters to provide the kind of policy (attribute-based encryption) must be applied.

6.2.1.10 Identity Management
The IdM module is responsible for managing the identities of the smart objects and users. The module isable to take into account privacy concerns to manage subjects’ credentials (from users or smart objects),
in a privacy-preserving way relying on anonymous credential systems. It is able to endow subjects withmechanisms to ensure anonymity, which is done mainly issuing pseudonyms and proof of credentials tominimal personal data disclosure.
The Identity Management system is responsible for managing and storing the credentials, which are usedby subjects to request information from an IoT services. The IdM allows users to obtain the proper
credentials that can be use afterwards to derive proofs of identity to be presented to a Verifier (e.g., IoT
Service provider) in order to prove the identity condition while disclosing the minimum amount of private
information.
The component is endowed with the Idemix cryptographic engine that is responsible for low level
cryptographic operations required by the anonymous credential system. The information provided by theContext Manager module is used by the IdM to handle the usage of partial identities under a specificcontext.
The CPaaS.io IdM has been integrated within the FIWARE IdM, i.e., the Keyrock IdM. The CPaaS.io IdMIssuer, which is in charge of generating the Idemix credentials, is able to communicate with the Keyrock to
generate the credentials based on the attributes stored in the Keyrock for the user requesting thecredential. To this end, the CPaaS.io IdM provides a Java library to interact with Keyrock by means of the
SCIM standard [30]. This library provides methods such as add, remove or update users.
Because CPaaS.io IdM relies on Keyrock, users profile management is delegated to Keyrock, the rest of thecomponents of the CPaaS.io framework interacts with Keyrock through the CPaaS.io IdM.
The IdM components that have been designed and implemented in the scope of CPaaS.io are enumerated
below:
•

•

•
•

•

CPaaS.io IdM Client: This is a client application that allows obtaining Idemix credentials from theIssuer Server. It also allows interacting with the Verifier server which can validate the partial identity
derived from the credential;
CPaaS.io-Issuer-Server: This is a web application which allows generating Idemix credentials forclients. The client must be authenticated against the Issuer using a valid certificate. The Issuer also
supports the verification functionality;
CPaaS.io-Verifier-Server: This is a web application, which is able to validate partial identities
presented by the client application;
CPaaS.io-IdM-Enabled-Capability Manager: This is a web application that allows users to obtaincapability tokens using their partial identities. In other words, it allows authenticating anddemonstrating their attributes by means of Idemix proofs of having a valid credential issued by theIssuer;CPaaS.io IdM KeyRock Client: This is a library that provides a basic API for identity management byimplementing a client to interact with the FI-WARE KeyRock server.

H2020 EUJ-02-2016

CPaaS.io

Page 83 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

6.2.1.10.1 Functionalities
The main functionalities provided by this component are related to registering and authentication
operations. The first one, which should be done by the administrator providing for this purpose his
credentials, and the second one which must be opened to all the users to allow them to log into theplatforms.
6.2.1.10.2 Interfaces
In light to the previous functionalities two interfaces will be provided:••

Registering new users: The interface provided by the IdM will need the credentials of theadministrator, his username and password, and a parameter indicating the new user and theircorresponding attributes;
Authentication: This interface will receive the username and password of the users in order to bevalidated.

6.2.1.11 Authentication
The authentication module verifies if a subject is truly who or what it claims to be. Authentication services
are provided by the CPaaS.io IdM system. Besides the conventional password-based and key-based
mechanisms, the CPaaS.io IdM also supports authentication based on anonymous credentials.
•••

Login password-based authentication: The CPaaS.io IdM relies on the Keyrock IdM to perform thiskind of authentication. To this end, the CPaaS.io IdM library provides a method that given theusername and password authenticates the user against the keyrock and generates anauthentication token that can be used afterwards to perform other actions against the Keyrock IdM.
The CPaaS.io Keyrock IdM client library provides two main methods for dealing with this kind ofauthentication. The first method is for authenticating a user registered in the Keyrock given the
password and username and its domain. The second method, provided by the Keyrock IdM client,
is for validating a given token ID;
PKI-based authentication: CPaaS.io framework allows users to authenticate using their digital
certificates. It requires a Public Key Infrastructure (PKI) where the user’s certificates are signed by
the Certificate Authority (CA) and validated on the server side. The IdM server performs client
authentication based on asymmetric-key cryptographic. This is done actually by the IdM web serverthat authenticates the client that must possess the private key associated with its public X509
certificate (the server trusts the CA);
Anonymous credentials based authentication: This kind of authentication is done by the CPaaS.io
privacy-preserving IdM, which offers a claim-based solution for authentication. The CPaaS.io IdM
relies on an anonymous credential system, namely Idemix from IBM [28], to ensure a privacy andminimal disclosure of personal information.

6.2.1.11.1 Functionalities
Since the authentication operations are based on the identity attributes defined by the IdM all thefunctionalities have been defined in the previous section.
6.2.1.11.2 Interfaces
Again, the interfaces provided by IdM have been provided in the previous section.

H2020 EUJ-02-2016

CPaaS.io

Page 84 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

6.2.2 Description of CPaaS.io FIWARE-based platform architecture
SMART CITY Services Layer

SPARQL App
Developer

FIWARE App
Developer

Security &Privacy Pillar

IdM API

KeyRock

Knowledge Layer
SPARQLKAT Toolkit

Platform
Management ,Federation andOperation
Pillar

XACML
XACML

Semantic Data &Integration Layer

IoT Knowledge
Server
Deployment
Tool

Capability
API

NGSI to RDF
mapperKnowledgeServer API

NGSI10NGSI9NGSI10

PEP-Proxy

Virtual Entity Layer
NGSI9

FogFlow

IoT Discovery

Capability
ManagerContext Broker

NGSI9

Encryption
API
NGSI10NGSI10CP-ABE

IoT Data &Ingestion Layer
NGSI10IoT Broker
NGSI10SPARQL

Existing components
New/enhanced
components

IoT Resource Layer

SPARQL
Agent
Device API

IoT Agent

LoRaWAN to NGSI
bridgeDevice

LoRa Device

Figure 36: FIWARE components mapped onto the Instantiation View

Figure 36 shows the mapping of “concrete” FCs identified in Section 6.2.1 onto the Instantiation View
(Section 2.1.4.5). This figure has components and relationships from FIWARE IoT Services Enablement
Architecture [31] and it also includes the IoT Knowledge Server, SPARQL agent, KAT Toolkit, NGSI to RDF
mapper, LoRaWAN bridge, and FogFlow Service Orchestration components. This view mainly consists of
six layers and two pillars: IoT Resource Layer, IoT Data and Ingestion Layer, Virtual Entity Layer, Semantic
Data and Integration Layer, Knowledge Layer, Smart City Service Layer, Security Pillar, and Platform andManagement Pillar.
The IoT Resource Layer is made of all on-field IoT infrastructure elements needed to connect physicaldevices to FIWARE Apps or SPARQL Apps. Typically, it comprises: IoT end-nodes, IoT gateways and IoT
networks (connectivity).
The IoT Data and Ingestion Layer comprises the set of functions, logical resources and services hosted ina Cloud data centre as well as on the Edge. Up north, it is connected to the data chapter ContextBroker, so
IoT resources are translated into NGSI Context Entities. South-wise the Ingestion Layer is connected to the
IoT devices, that are all the physical IoT infrastructure. Platform operation pillar has the FogFlow Service
Orchestrator, which enables processing optimization between the Cloud and Edge resources.
FIWARE’s IoT architecture follows the FIWARE OMA NGSI context management information model, whichallows performing context operations such as query, update, subscribe, and notify. On the Virtual Entity
Layer, the NGSI9 API is mainly used for discovering VEs while NGSI10 is mainly for accessing context
information.
H2020 EUJ-02-2016

CPaaS.io

Page 85 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Considering the architecture from a bottom-up (south to north) perspective, in the south IoT devices areconnected to the IoT Broker and IoT Discovery components via the IoT NGSI gateway. The IoT NGSI
Gateway can be implemented with an adapter so that the devices with various APIs (shown as Device API)can be registered via NGSI9. Moreover, the context information can be sent to the IoT Broker via NGSI10.
The IoT Broker then forwards the context to the data context broker and to the application developers. In
FIWARE, each FC in this architecture is realized by Generic Enablers (GEs). Detailed information about
specific GEs can be found in the FIWARE catalogue [33].
Currently, the FIWARE-based CPaaS.io platform provides the possibility for devices to push SPARQL orNGSI data through IoT or SPARQL Agents. The agents are responsible for converting device data (device
API) to NGSI or SPARQL data. Moreover, the CPaaS.io platform provides app developers the flexibility touse either the NGSI or the SPARQL interface to access data. The SPARQL interface is provided by the IoT
Knowledge Server on the Semantic Data Layer, whereas the NGSI interface is provided by the IoT Broker(AeronBroker) and the Data Context Broker (Orion Context Broker). In the next phase of the project, theconversion from NGSI to SPARQL may allow pushing NGSI data through IoT Agents and accessing thisdata by SPARQL app Developers.
We listed the components in Section 6.2.1 and showed them in the above figure mapped onto multiple
layers and pillars. These components, namely AeronBroker, ConfMan, IoT Knowledge Server, Orion Context
Broker, and FogFlow Service Orchestrator are supported by FIWARE. Now, in the next section we matchthese components to the CPaaS.io logical FCs based on where the already implemented FIWARE
components possibly fit in this Functional View.
The Security and Privacy Pillar provides the necessary authentication and authorization mechanisms to the
CPaaS.io platform. The listed components in the Security Pillar are KeyRock, XACML, Cap Manager, PEP
Proxy, and CP-ABE. The pillar is responsible for providing secure access control to the data providers andconsumers. Currently, these components are already integrated with the Orion Context Broker and they
are being integrated with IoT Broker. FIWARE app developers (data consumer) as well as the providers (IoT
Agents, IoT Broker) can access content through the PEP Proxy component.
6.2.3 Mapping between “Concrete” and “Logical” Functional Components
In this section we use the IoT ARM Functional Model and “logical” FCs as identified and elucidated in
Section 4 and show how the “concrete” FCs described in Section 6.2.1 map to those “logical” FCs.

H2020 EUJ-02-2016

CPaaS.io

Page 86 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 37: Matching of the FIWARE components to the CPaaS.io Functional View

In the Figure 37 above, the FIWARE components are matched with the FCs of CPaaS.io. Note that the
FIWARE components are placed in arbitrary places for visual purpose, while their places actually correspondto the places of the marked FCs in CPaaS.io functional view.

H2020 EUJ-02-2016

CPaaS.io

Page 87 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

While CPaaS.io architecture is clearly more advanced, having each FC has various requirements, somerequirements of the FCs are not completely met by the FIWARE components. For instance, considering therequirements that are listed for use-cases, Semantic VE Data Repository may require more advanced andnovel features compared to the existing functionalities of the IoT Knowledge Server component. For thisreason, some FIWARE components may be either extended or improved or new components should be
developed during the CPaaS.io project when necessary. At this stage, the decisions have not been finalized
for the implementation necessities of the proposed CPaaS.io architecture. On the other hand, somecomponents can already meet the listed requirements of some of the FCs without further implementation
effort. For instance, VE Resolution is provided by IoT Discovery and therefore IoT discovery component
could be integrated without much effort.
We provide an interface view for the FIWARE components below. The Figure 38 below includes IoT Broker
instances, IoT Knowledge Server, Context Broker, as well as IoT Discovery GEs including also theirinteractions (APIs).

Figure 38: Interactions of the FIWARE FCs

In the above Figure 38, the historical data is stored in CouchDB by IoT Broker. IoT Broker also forwards thecontext to the context broker or applications. Moreover, subscriptions are stored in and accessed from ashared SQL database by the distributed IoT Broker instances. Registrations are saved in the Registration
Repository (ConfMan) via NGSI9. Lastly, IoT Agent is responsible for providing context of VEs in NGSI9/10
information model and therefore it can be considered as an NGSI device.

H2020 EUJ-02-2016

CPaaS.io

Page 88 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

The following Table 4 summarizes the mapping between “logical” and “concrete” components as shownin Figure 37 above

H2020 EUJ-02-2016

CPaaS.io

Page 89 of 110

Concrete FIWARE
Components and3rd party
components

IoT Discovery(FIWARE)IoT Knowledge
Server (FIWARE)

H2020 EUJ-02-2016
Context Broker(FIWARE)X

IoT Broker(FIWARE)
X
X

PA

X
X

PA

FogFlow Service
Orchestrator

CPaaS.io
X
X

Page 90 of 110

X

KAT Toolkit (3rdparty)

X

PA

X
X
X

X
X
PA

X
X
PA

PA

Web Front-end

Platform Management

Resource Deployement Tool

Pre-Processing (VE/IoT)

Post-Processing (VE/IoT)

Rule-based Reasoner

Analytics (VE/IoT)

Machine Learning

Resource Manager

Task Execution Engine

Processing Optomizatiom

task Deployment

Task Composer

Kem

Identity Management

AuthZ

AuthN

VE Service Endpoint

VE Semantic Integration

VE & IoT Service Monitoring

VE Resolution

VE Registry

Semantic VE Data Repository

IoT Service

IoT Semantic Integration

IoT Service & Resource
Registry
Live Data Manager

Semantic Data Repository

Communication Channel

Deliverable D3.5
CPaaS.io System Architecture (v3)

Table 4: Mapping table for the FIWARE-based architectureDeliverable D3.5

CPaaS.io System Architecture (v3)

SocIoTal FIWARE
based
Authentication

X

SocIoTal FIWARE
based
Authorization

X

X

SocIoTal FIWARE
based Identity
Management

X

ML component

X

X: covers the FC currently
NR: covers the FC in Next Release of the concrete FC
PA: covers PArtly the FC

H2020 EUJ-02-2016

CPaaS.io

Page 91 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

6.2.4 Deployment and Operation View
In this last architecture view of the European platform we show how the FIWARE-based platform isdeployed, giving hints about hardware & software used (computers, networking, databases, (web-) servers,etc.).
We also give information for selected scenarios (see sub-sections below) showing the architecture used at
the data producer side (e.g. the TTN infrastructure residing outside the platform for the Waterproof
Amsterdam scenario).
6.2.4.1 FIWARE-based platform deployment and operation view

Figure 39: FIWARE-based platform deployment and operation view

Figure 39 shows a static view of the run-time configuration of processing nodes and components that run
on those nodes in the FIWARE-based platform. On this deployment view, there is a central node
(Application server 1) hosting IoT Broker (AeronBroker), IoT Discovery (ConfMan), IoT Knowledge Server
and the NGSI to RDF mapping service. Additionally, CouchDB and PostgreSQL databases store data related
to sensor values from IoT devices and NGSI-9 registrations, respectively. “Application server 2” hosts theContext Broker and security components that communicates to IoT Broker server. Another node hosts the
LoRaWAN component and a proxy to communicate to “Application server 1”. Finally, the Deployment tool
H2020 EUJ-02-2016

CPaaS.io

Page 92 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

is integrated to their storage components and the Semantic Data Repository also communicates to thecentral node. FogFlow integration is still in progress and its components are placed in a separate node.

H2020 EUJ-02-2016

CPaaS.io

Page 93 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

6.2.4.2 Waterproof Amsterdam deployment and operation view
6.2.4.2.1.1 Architecture

Figure 40: Waterproof architecture and usage

H2020 EUJ-02-2016

CPaaS.io

Page 94 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

6.2.4.2.1.2 Deployment

Figure 41: Waterproof deployment view

The waterproof application is deployed via FogFlow and a service topology. The topology contains all
the necessary information for the services to start and be configured for a designated city.
CPaaS.io is in charge a maintaining the dashboard up.
6.2.4.3 MyExperience deployment and operation view
6.2.4.3.1.1 Architecture
Figure 42 depicts the My Events architecture using the European CPaaS.io platform instance. In laterdeliverables we will describe the interaction with the Japanese platform.
The MyEvents app can use three interfaces:•••

GraphQL to semantically access data stored in AGT’s IoTA platform,
NGSI 10 to access data stored in the IoTBroker (not shown in Figure 42), or
SPARQL to access data in the Semantic Data Repository.

H2020 EUJ-02-2016

CPaaS.io

Page 95 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 42: My Events Architecture

All of the raw data and analytics collected via the ColorRun is available in IoTA and can be accessed via its
GraphQL interface. In addition the data is replicated in the IoTBroker to make it accessible to all CPaaS.io
applications. In a previous deliverable we described that the MyEvents application can be configured touse the NGSI 10 interface or the native IoTA interface. In this updated version, we do not show the directaccess to the IoT Broker anymore, as all data access is done via the semantic interfaces. For this purpose
the MyEvents app uses the NGSI to RDF mapper described in D6.3. For instance Twitter data is inserted in
the IoTBroker and made accessible into the Semantic Data repository. Then the MyEvents app can directly
access the Twitter data via a SPARQL query to the Semantic Data repository in the Semantic Integration
Layer.
6.2.4.3.1.2 Use Cases Diagrams
Figure 43 shows the use case diagram for accessing data. The end users can log in and out of theapplication. After log in the experience log, a dashboard showing cross event information including event
highlights, a button for managing data related to the events (Manage Event Data use case), and thepossibility to see event specific highlights by selecting an event (View Event Use Case). The View Event Use
Case displays a map in which the user can retrieve additional information about detected highlights (View
Running Highlights Use Case).
As indicated in the use case diagram each of the app use cases depends on the retrieve data use case of
the CPaaS.io platform that allows to retrieve data from IoTA, the Semantic Data Repository or the
Deployment Knowledge Base.

H2020 EUJ-02-2016

CPaaS.io

Page 96 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 43: Use Case Diagram My Events Application

6.2.4.3.1.3 Deployment Information
The My Event app is deployed on a virtual machine on AGT’s data center. The virtual machine also includes
Mongo DB that is used for managing users data.
The IoTA platform is for commercial purposes usually deployed in the cloud such as AWS. But for testing
and costs reasons we deployed IoTA on a local machine. The IoTA platform contains all the master dataand provides selected information to the IoTBroker of the European CPaaS.io platform instance.
The NGSI mapping service is deployed on a virtual machine on AGT’s data centre and proxied by an NGINX
instance deployed on a AWS EC2 instance that inserts the data in the CPaas.io Semantic Data Repository.
The NGSI mapping service is currently configured to use an Allegrograph Triple Store deployed on a virtual
machine at AGT’s data centre.
The deployment knowledge base is a separate Allegrograph Triple Store instance that is also deployed ona separate VM in AGT’s data centre.
6.2.5 Concrete System Use-cases
In this section we revisit some of the System Use-cases that have been already described in Section 4.3.1
in order to illustrate typical operation usage patterns in the form of interactions taking place between“logical” function components and actors that stand outside the CPaaS.io platform. We focus here on
describing how such interactions between logical FCs and external actors derives into interactions between
those actors and the concrete FCs as introduced in this chapter. While section 4.3.1 refers to different
classes of Raw Data Producers we will in this section refer more explicitly to the project scenarios (e.g.
Waterproof Amsterdam or ColorRun) in order to 1/ give a concrete grounding of the architecture workwithin the project scenarios and actual platform development and 2/ give more support to theimplementation and integration phase running in parallel to this architecture paperwork activity.

H2020 EUJ-02-2016

CPaaS.io

Page 97 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

6.2.5.1 Configuration phases
This section revisits Section 4.3.1.2 and describes few concrete system UCs dealing with system
configuration where the system consists of the CPaaS.io platform and platform clients (actors defined in
the scenarios). Most of those UCs are relevant to all scenarios. This ‘catalogue’ of UCs will be extended
within the next iterations of the CPaaS.io architecture document.
6.2.5.1.1 Register a user/actor to the CPaaS.io platform
As already expressed before in this document the architecture of our platform contains a specific element
for managing the properties and attributes of its users. This component receives the name of Identity
Management.
So, in order to register a new user/actor into the CpaaS.io platform, first we need to interact with thiscomponent in order to define the different parameters of the user’s profile. Specifically, we have defined
the following attributes for it:
•
•
•
•
•
•
•
•
•

NickName nickName: the casual way to address an entity user in real life
Name name: the components of the user’s nameArrayList<Address> addresses: the physical mailing addresses of an entity user
ArrayList<Email> emails: the e-mail addresses of an entity user
Organization organization: it identifies the name of an organization
Department department: it identifies the name of a department
ArrayList< X509Certificate> x509Certificates: the X.509 certificates associated with the entity
String password: the entity's clear text password
boolean active: a value indicating the entity's administrative status

To do so, the Identity Management provides and endpoint to receive such registration operations using a
RESTful API and the POST method. The URL that will handle such registrations is similar to the followingone:
https://URLIdentityManagement:443/v3/OS-SCIM/v2/Users/id_user
The body of this request should contain a JSON text that must meet the specification of SCIM core (RFC7643 SCIM Core Schema). Since this operation must be done by the administrators of the platform, suchoperation requires also the addition of a certificate in order to securely validates the origin of such request.

6.2.5.1.2 Create and assign security credential
Although after applying the previous operation the user has been registered in the CPaaS.IO platform, hedoes not have any access rights over the information stored in it. So, we need to establish the security
policies for such information. This is done thanks to the XACML component which comprises the following
entities: Policy Administration Point (PAP), Policy Decision Point (PDP) and Policy Enforcement Point (PEP).
Thanks to an administration web page, the administrator can establish the different security policies thatwill be applied to the user and the resources stored in the platform.

H2020 EUJ-02-2016

CPaaS.io

Page 98 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Figure 44. PAP Web configuration interface

After having logged in, the administrator will be able to generate new XACML policies. These are identified
by a triplet (resource, subject, action) which means that for a specific resource or resources, the selectedsubjects or users will be able to perform the specified actions over them. Applied to our platform, theresources will be the different stored entities with their corresponding attributes, the subjects are thedifferent users of the platform, and finally, the actions could be register, updating or requesting theinformation.
Thanks to the definition of these policies, the Capability Manager, after receiving an authorization request
will forward it to the PDP which will carry out the validation operation over it. If the validation process is
successful, it will answer the Capability Manager that will generate the Capability Token that will allow therequester of such information to access to it.
6.2.5.1.3 A CPaaS.io user / RDP creates a privacy/security policy
Another kind of authorization that the platform can perform is the authorization over the broadcast
information. In this sense, a specific authorization policy can be applied over the transmitted informationin such a way that only the receivers with the appropriate credentials will be able to reveal it.
Such authorization or privacy policy is based on Attribute Based Encryption (ABE) so, the users and RDPs
which are intended to apply this authorization policy must specify the combination of attributes that will
be able to decrypt such information, i.e. organization = OdinS and department = R&D. Such combination
implies that only the users which are employed by OdinS and are working on R&D will be able to decrypt
the information. If there are any users from OdinS which working in other areas, they will not be able todecrypt it.
The following example describes how the information must be registered in our CPaaS.IO platform.
"contextElements": [H2020 EUJ-02-2016

CPaaS.io

Page 99 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3){"type": "Test","isPattern": "false","id": "Test:1","attributes": [{"name": "cipheredAttribute","type": "ciphertext","value": "hello","metadatas": [{"name": "cpabe-policy","type": "string","value": "organization = OdinS and department = R&D"
}]
}]
}
]

According to it, the information to be stored in our platform is an entity whose id is Test:1 of the type Test.
It only contains one attribute whose name is cipheredAttribute of the type ciphertext. The security
information is included in the metadata field where we specify that this attribute should be encrypted usinga CP-ABE policy using the combination of aforementioned attributes.
This information is included in the NGSI request to register information into our platform. It will be received
by our PEP_Proxy which will make the validation tests first, and afterwards it will proceed to encrypt the
information using the appropriate CP-ABE key.
On the other hand, the registered users will have received a specific CP-ABE key which is based on theattributes of their identities stored in the Identity Management component. This way, after receiving thisinformation, only the one with the appropriate attributes will be able to decrypt it.
6.2.5.2 Data production
6.2.5.2.1 An RDP Class-I pushes semantic data to the CPaaS.io platform
Semantic data can be pushed to CPaaS.io in two ways:••

Via NGSI-10 to the Context or IoT Broker
Via SPARQL to the Semantic Data Repository

When using the NGSI-10 interface the RDP must follow certain conventions in order to enable semanticinteroperability. For instance entity types must link to RDFS classes (rdfs:class or owl:class) and entity id
must use the same identifiers as RDF instances. Similar conventions apply for attribute types and names.
Details will be described in the upcoming deliverable D6.3 [9].
Alternatively the data can directly pushed to the Semantic Data repository using SPARQL INSERT or
UPDATE requests.
H2020 EUJ-02-2016

CPaaS.io

Page 100 of 110

Deliverable D3.5

H2020 EUJ-02-2016

CPaaS.io System Architecture (v3)

CPaaS.io

Page 101 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)This third version of the architecture is a second consolidation of the CPaaS.io logical architecture(architectural Views and Perspectives with requirement tracking) and an update of the two instantiation
views that shows how this logical architecture is being instantiated using two different technologies,
namely u2 for the Japanese side and FIWARE for the European counterpart. The instantiation View features
a new layered model that complies with comments received during the 1st Project Review.
This third version of the CPaaS.io architecture provides much more content in all areas of the IoT-ARM
compliant CPaaS.io architecture and it does cover aspects like task distribution, federation and FIWAREbased / u2-based interoperability, which were not tackled yet in the previous version. It also provides
Deployment and Operation Views for three u2-based platform and scenarios and two FIWARE-based
platform and scenarios.
The final version of the CPaaS.io architecture (D3.7) will be provided in M30 and will cover all remaining
issues not yet covered in this version or not fully completed, like for instance:
•
•
•
•
•

Perspectives improvement;
Ingestion of Government or Public Data and associated FCs;
Analytics (going beyond Sentiment Analysis);
Deployment and Operation Views (few are still to be described);
Full interoperation between both platforms (incl. Semantic interoperability).

H2020 EUJ-02-2016

CPaaS.io

Page 102 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

7 References[1]

F. Carrez et al., “IoT-A Deliverable D1.5 – Final Architectural Reference Model for the IoT v3.0”,
www.iot-a.eu/public/public-documents/[2]

D2.1: CPaaS.io deliverable “Requirement Specification (V1)”, Martin Strohbach ed.

[3]

D2.2: CPaaS.io deliverable “Prototype, 1st release”, Martin Strohbach ed.

[4]

D2.5: CpaaS.io deliverable “Requirement Specification (V2)”, Martin Strohbach ed.

[5]

D3.1: CPaaS.io deliverable “Requirement Collection and Analysis”, François Carrez ed.

[6]

D5.1: CPaaS.io deliverable “Empowerment Components Definition”, Antonio Skármeta, Juan A.
Martínez ed.

[7]

D5.2: CPaaS.io deliverable “User Empowerment Architectural”, Antonio Skármeta, Juan A.
Martínez ed.

[8]

D6.1: CPaaS.io deliverable “Holistic Data Management State of the Art”, Mariane Fraefel ed.

[9]D6.3: CPaaS.io deliverable “Holistic Data Management: Initial Concepts and Models”, Adrian
Gschwend ed.

[10] ETSI TR 103 167Machine-to-Machine Communications (M2M); Threat analysis and countermeasures to M2M service layer[11] Haller, S et al: “A Domain Model for the Internet of Things”, in iTHINGS’2013 proceedings,
Beijing, China (see also IEEE eXplore)[12] Ho, E. & al., “IoT-A Deliverable D6.1 – Requirements list”, www.iot-a.eu/public/public-documents/[13] IoT Semantic Interoperability: Research Challenges, Best Practices, Recommendations and Next
Steps [IERC – European Research Cluster on the IoT], Position Paper available at www.internet-ofthings-research.eu/pdf/IERC_Position_Paper_IoT_Semantic_Interoperability_Final.pdf[14] IoT-A web site: http://www.iot-a.eu[15] oneM2M white paper, January 2015, http://www.onem2m.org/images/files/oneM2Mwhitepaper-January-2015.pdf[16] oneM2M Functional Architecture, http://www.onem2m.org/images/files/deliverables/TS-0001Functional_Architecture-V1_6_1.pdf[17] OneM2M security solutions”, oneM2M-TR-0008-Security-V1.0.0, 2014[18] Pastor, A. “Updated Requirements List”, www.iot-a.eu/public/public-documents/[19] OneM2M security solutions”, oneM2M-TR-0008-Security-V1.0.0, 2014[20] “Requirements Specification for Urban Plarforms v2.2” prepared by Demand-Side Engagement
Stream I the context of the European Innovation Partnership for Smart Cities & Communities(EIP_SCC) Integrated Infrasturcture Action Cluster – Urban Platform[21] N. Rozanski and E. Woods, “Applying Viewpoints and Views to Software Architecture” , Addison
Wesley, 2011[22] SMARTIE Project Deliverable D2.2 “Requirements”[23] SPARQL Protocol And RDF Query Language http://www.w3.org/TR/rdf-sparql-query/
H2020 EUJ-02-2016

CPaaS.io

Page 103 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)[24] UNIs: List of IoT-A UNIfied requierementS. Available at http://www.iot-a.eu/public/requirements[25] Volere Requirements Resources, http://www.volere.co.uk/[26] E. Rissanen, extensible access control markup language (xacml) version 3.0 oasis standard(2012).
[27] J. L. Hernández-Ramos, A. J. Jara, L. Marín, and A. F. Skarmeta, “Dcapbac: Embedding
authorization logic into smart things through ecc optimizations,” International Journal ofComputer Mathematics, pp. 1–22, 2014.
[28] Specification of the Identity Mixer Cryptographic Library. Version 2.3.40 IBM Research, Zurich
January 30, 2013. Available http://www.zurich.ibm.com/idemix/[29] Bethencourt, J., Sahai, A., & Waters, B. (2007, May), Ciphertext-policy attribute-based encryption.
In Security and Privacy, 2007. SP'07. IEEE Symposium on (pp. 321-334).
[30] System for Cross-domain Identity Management. (SCIM). Internet Engineering Task Force (IETF),
RFC 7643. ISSN: 2070-1721.
[31] www.viewpoints-and-perspectives.info/home/perspectives/ Last accessed 26/01/2017[32] FIWARE Internet of Things (IoT) services enablement architecture. Available
https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/Internet_of_Things_(IoT)_Servic
es_Enablement_Architecture[33] FIWARE Catalogue, Available https://catalogue.fiware.org/enablers[34] FIWARE architecture description, : IoT Broker. Available
https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/FIWARE.ArchitectureDescription.
IoT.Backend.IoTBroker[35] FIWARE architecture description, : IoT Discovery. Available
https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/FIWARE.ArchitectureDescriptio
n.IoT.Backend.IoTDiscovery[36] IoT Broker interface specification. Available
http://docs.iotbrokerngsiinterface.apiary.io/#reference/0/standard-context-query[37] FIWARE NGSI 10 Open RESTful API Specification. Available
https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/FI-WARE_NGSI10_Open_RESTful_API_Specification[38] FIWARE NGSI API v.1 Walkthrough. Available https://fiwareorion.readthedocs.io/en/master/user/walkthrough_apiv1/index.html[39] OASIS Standard. eXtensible Access Control Markup Language (XACML) Version 3.0. January
2013: http://docs.oasis-open.org/xacml/3.0[40] Gusmeroli, S., Piccione, S., &Rotondi, D. (2013). A capability-based security approach to manage
access control in the internet of things. Mathematical and Computer Modelling, 58(5), 11891205.
[41] Potocki, Alexander et al. “Federated SPARQL Query Processing Via CostFed.” International
Semantic Web Conference (2017)[42] https://www.w3.org/TR/sparql11-entailment/

H2020 EUJ-02-2016

CPaaS.io

Page 104 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)[43] Feeney, Kevin & Mendel-Gleason, Gavin & Brennan, Rob. (2017). Linked data schemata: Fixing
unsound foundations. Semantic Web. 9. 1-23. 10.3233/SW-170271.
[44] http://www.etsi.org/deliver/etsi_gs/CIM/001_099/004/01.01.01_60/gs_CIM004v010101p.pdf

H2020 EUJ-02-2016

CPaaS.io

Page 105 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)

Appendix: Requirements (Volere Template)
The following pages show a snapshot of the updated unified requirements as of June 2018.
The complete Excel document is available athttps://cpaas.bfh.ch/wp-content/uploads/2018/06/Requirements_CPaaS.io_v3.xlsx

H2020 EUJ-02-2016

CPaaS.io

Page 106 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)Volere Template

UNI ID

Requirem
Priorityent Type

NFREQ.1

NFREQ

MEDIU
M

NFREQ.2

NFREQ

HIGH

NFREQ.3

NFREQ

NFREQ.6

NFREQ

NFREQ.7

NFREQ

NFREQ.8

NFREQ

NFREQ.9

NFREQ

NFREQ.11
NFREQ.13
NFREQ.15

NFREQ
NFREQ
NFREQ

Category

Description

Rationale

Traceability regarding the architectural reference model
Owner

Fit Criterion

DependenciesConflicts

View

Perspective

Platform,
The p/f SHOULD support different service
Infrastructure level agreement

Scalability

The p/f MUST offer mechanisms for
Platform,balancing processing load (services,
Infrastructure
events, data,…)Scalability

MEDIU
M
MEDIU
M
MEDIU
M
MEDIU
M

Platform,
Quality of service SHOULD be monitored
Infrastructure at runtime
Platform,
High availability of the p/f SHOULD be
Infrastructure guaranted
Platform,
High availabiilty of the networking
Infrastructure resources SHOULD be guaranted
Platform,
The p/f SHOULD be able to provide some
Infrastructure self‐healing mechanisms
City Data, City
Data and services MUST be exposed or
HIGHServices,made available only to authorised actors
Platform
City Data,
HIGH
Data freshness MUST be ensured
Platform
City Data,
MEDIU
The p/f SHOULD provide mechanisms for
Platform,M
protecting the data transmission
Infrastructure
MEDIU
M

NFREQ.16

NFREQ

MEDIU
M

NFREQ.17

NFREQ

MEDIU
M

Platform

Trust,
Performance

The p/f SHOULD be able to detect someof the threats at runtime

The users SHOULD be able to control the
MEDIU Societal needs,
personal data they provide and how
M
Platform
their personal data is used

Security

NFREQ.21

NFREQ

MEDIU
M

Platform

Security

NFREQ.22

NFREQ

HIGH

Platform

NFREQ

MEDIU
M

NFREQ

MEDIU
M

Platform,Business

NFREQ.26

NFREQ

HIGH

Platform

NFREQ.27

NFREQ

HIGH

Platform

NFREQ.28

NFREQ

MEDIU
M

Business,
Platform

NFREQ.29

NFREQ

HIGH

Business,
Platform

NFREQ

MEDIU
M

NFREQ.30

Access control policies SHOULD be
securedThe p/f MUST provide mechanisms forrespecting user's privacy
The p/f SHOULD provide mechanisms for
ensuring the confidentiality ofcommunication

Platform

NFREQ.13

NFREQ.31

NFREQ

MEDIU
M

City Data,
Platform

NFREQ.32

NFREQ

MEDIU
M

City Data,
Platform

H2020 EUJ-02-2016

Obj.1 & Obj.3!!! To be clarified, too vague

no

Obj.2

Service MUST be provided in aninteroperable manner
Data MUST be interoperable across thedifferent parties and domains(data/service providers)
It SHOULD be possible to set‐up data
quality constraints for data producers tocomply with. In the same way it SHOULD
be possible to monitor/verify data
quality
It MUST be possible to enable the linking
of Data Sources across the platform
instancesnoto be checked. YEM‐3

Obj.2

Obj.2

yes
This functionality is not planned so far. NFREQ.18 & NFREQ.19 merged, Data
has been added. Meaning they can access services and data that are granted to
ALL.

Obj.2

Obj.3

yes
In the current implementation, policies are not encrypted. To be checkedfurther between EU and Japan

Obj.3

Obj.2 & Obj.3
yes

Obj.3

YEM‐3, TPT‐5

yes

Obj.2 & Obj.3

Evolvability

still in discusion

no

Obj.2

Extensibility,
Evolvability

TPT‐4

partly (still ODTP
issues)Obj.1 & Obj.2

Interoperability

still to be done

no

Obj.2

partly (acrossinstancies ofsame platform)

Obj.2

data quality is mostly declared but not verified. To be checked

partlyObj.2

Evolvability

still to be clarified what we mean by linking in this context.

no

Obj.2

Performance

Still to be checked !!! We're not talking about real‐time here. However there isno clear requirements about msec. to be refined later on

Interoperability

Trust

The p/f SHOULD be able to ensure a
short response‐time for data queries
Users may want to share their data via
various channels using various platform
instances

Obj.2 & Obj.3

Privacy

The p/f SHOULD provide preferably
standard interfaces to Service providers

The data producers SHOULD be able topublish his data to several different p/finstances
The p/f SHOULD be able to ingest hugeamount of data, meaning: Collecting,processing, publishing, storing andservingyes

PrivacySocial needs,
City Data,
The p/f MUST be extensible in order to
Platform,
support future technology
Infrastructure

NFREQ.25

NFREQ.9, NFREQ.10 & NFREQ.12 are merged

Trust

NFREQ

HIGH

AuthN, Authz

Obj.1 & Obj.2

Which threats are concerned is still to be discussed

NFREQ.20

NFREQ

Security

Obj.1 &Obj.2
Obj.1 & Obj.2
partlySecurity

Privacy

Obj.2

This can be linked to the flexibility in distributing tasks.

Security

NFREQ

Relation to Proj. Objectives

no real incentive so far, dropped.

To be checked if the communication channel can be encrypted. NFREQ.13 &NFREQ.14 are merged, YEM‐3

Security, Trustyes

to be discussed further. NFREQ.5 is dropped and captured by NFREQ.6 and
NFREQ.7
to be discussed further. TPT‐5. NFREQ.5 is dropped and captured by NFREQ.6
and NFREQ.7

Availability

Platform,
The p/f and infrastructure SHOULD be
Infrastructure trustable
The p/f users (including Physical people)
City Data, CityMEDIUSHOULD be able to access data andServices,
M
services anonymously (under certain
Platform
restriction)

NFREQ.24

Service
Service Orchestrator,
Organisation, Task Deployment, task
NFREQ.2 & NFREQ.4 SHOULD ‐> MUSTIoT Processcomposer, processing
Management
Optimization

Availability

Security

Covered in d3.5

Dropped as no rationale has been provided

Scalability

The p/f SHOULD provide a trusted andPlatform,
secured communication and information
Infrastructure
management (incl. storage)

Platform

Functional Component Comments

Availability

NFREQ.18

NFREQ.23

Functionality
Group

Interoperability

Scalability

CPaaS.io

interop across different technologies (u2 / FIWARE) not yet fully solved out

EUE‐10EUE‐12 (few millions at least). Scalability is still to be benchmarked

no

Obj.2

yes (data can be
published to both
platforms)

Obj.1 & Obj.2

partlyObj.1 & Obj.2

Page 107 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)Volere Template

UNI ID

Requirem
Priorityent Type

Category

Description

Rationale

Fit Criterion

DependenciesConflicts

View

Perspective

Functionality
Group

Functional Component Comments

The p/f SHOULD provide a level of
ergonomy, smartness and self‐
management that minimize theintervention of the platform users inmanagement duties or minimize
interaction of the p/f user with theplatform itself.

For scenario, the plaform users need toconcentrate on the specifics of the
scenario while forgetting about any
constraints pertaining to p/f operation

Resilience

YEM‐4

Different user groups can exert different
levels of control over a device, so ahierarchy between groups is established

Security

To be checked further. WA‐3. As a result accountability must consider not only
the identity of the action performer but also the role under which the action
was undertaken

NFREQ.33

NFREQ

MEDIU
M

NFREQ.34

NFREQ

MEDIU
M

The p/f SHOULD be able to deal with
Platform,
user roles and assignment of roles toManagement
user groups.

NFREQ.35

NFREQ

MEDIU
M

Platform,
The p/f SHOULD be usable by any citizen In an international context, there is a
Management,
regardless to the spoken tongue
need for multilingual support.
GUI

NFREQ.36

NFREQ

HIGH

Platform

NFREQ.37

NFREQ

MEDIU
M

Platform

FREQ.1FREQ

HIGH

Discovery,
lookup

FREQ.2FREQ

HIGH

Discovery,
lookup

FREQ.3FREQ

HIGH

Discovery,
lookupThe IoT system MUST enable thedynamic discovery of IoT Resources,
Virtual Entities and all services (VEService and IoT Service) based on
respective specifications.

FREQ.5FREQ

HIGH

Discovery,
lookupThe IoT system MUST enable the lookup
of service descriptions of specified
services for Virtual Entities with the VE
identifier as key for the lookup

FREQ.9FREQ

HIGH

Discovery, Object (Virtual Entities), VE‐ & IoT‐
lookup,services and resources shall beInteroperability semantically described and registered

FREQ.10

FREQ

HIGH

Platform

Traceability regarding the architectural reference model
Owner

The architecture MUST favour the reuseof wide‐spread standards for Data andAPI
The p/f SHOULD facilitate thedevelopment of applications reusing its
enablers
Discovery and lookup MUST allow the
Like Time‐Stamp, geographicalselection of physical entities (via VEs)
information can be used for scoping
and services based on geographicalpurpose ('spacial' in this particular case)parameters
The look‐up service of CPaaS.io MUST
withhold or grant information depending
on context such as application involved,
requesting entity, and security
permissions.

NFREQ.25

Evolvability

TPT‐2. multi‐lingual dropped, only english and japanese are planned

Extensibility,
Evolvability

TPT‐4

Extensibility,
Evolvability

TPT‐6 (partly, TPT‐8). Standard API, powerful discovery and rich data queries(to name just a few) are a way to go

Covered in d3.5

Relation to Proj. Objectives

yes (interactions
between enduser
and p/f arethrough thedashboard)

Obj.1 & Obj.2 & Obj.3

partlyObj.3

yes (only english
and Japanese
covered)Obj.1 & Obj.3

yes

Obj.1 & Obj.2

Obj.1

Functional
View,
Information
View

IoT Service,
Virtual Entity

IoT Service & Resource
to be checked
Registry, VE Registry

partlyObj.1

NFREQ.9

Functional
View

IoT Service,
Virtual Entity

IoT Service & Resource
Registry, VE Registry

yes

Obj.1

FREQ.1

Functional
View

IoT Service,
Virtual Entity,
Management

IoT Service & Resource
Registry, VE Registry,same as for below
Resource Deployment
Tool

partlyObj.1

Functional
View

Virtual Entity

no discovery service for IoT Service (see below), some service discovery for Ves
in FIWARE (NGSI.9)

partlyObj.1

FREQ.1,
FREQ.13

Information
View

IoT Service,
Virtual Entity,
Management

IoT Service & Resource
Registry, VE Registry, IoT service won’t be, due to a lack of incentive (so the functionality is dropped).
Resource Deployment VE can be described into FIWARE (but not semantically)ToolpartlyObj.1

Allows to select data and data sources
Discovery, Any data at the platform level shall haveaccording to the application and
Lookup, Trust data quality annotations
scenario

FREQ.1,NFREQ.28

Information
View

yes

Obj.2

FREQ.13

Functional
View,
Information
View

In order to enable semantic‐based
selection

Needed for powerful semantic
discovery and look‐up

FREQ.11

FREQ

HIGH

Data search and retrieval shall beachieved upon a collection of criteria
Using meta‐data as criteria for data
Data Query, that includes location (of the Physicalqueries allows to filter out data which isInteroperability entity concerned), characteristics of theof no interest
underlying IoT Resource reputation andthe quality of information.

FREQ.12

FREQ

HIGH

The platform shall provide a SPARQL end‐ SPARQL is the currently the best option
Interoperability point for accessing semantic data (either for querying data, It requires someannotated data or semantic descriptions) expertise though

FREQ.13

Functional
View

Sensor data can only be processed if it isannotated with additional information
relating to the data itself (unit, phydical
phenomenon,…), quality and accurancyof measurement, origin, location, whoowns the devices, etc…

FREQ.1

Information
Interoperability
View

FREQ.13

FREQ

HIGH

Any data at the platform level shall beInteroperability following a accepted set of standard
schemas (ontologies) for annotation

FREQ.14

FREQ

HIGH

The platform shall be able to aggregate
Interoperability data from various sources using LOD
principles

FREQ.20

FREQ

HIGH

User anonymity MUST be provided in
Security,order to enforce privacy (e.g. at
Privacy & Trustcommunication level)

H2020 EUJ-02-2016

In order to expose private data it isnecessary to garanty that the data can't
be traced back to its owner.

NFREQ.18&
NFREQ.22

Interoperability

VE Registry

IoT Service,
Virtual Entity

Semantic Data
Repository, Semantic T&R mechanisms are not planed, however we have data quality metadata
VE Data Repository

yes

Obj.1 & Obj.2

IoT Service,
Virtual Entity

Semantic VE Data
Repository, VE
Registry, Semantic EUE‐13, WA‐11. Semantic data can be queried through SPARQL. data can be
Data Repository, IoT also access via NGSI.10 (which is not semantic)
Service & Resource
Registryyes

Obj.1 & Obj.2

yes (CPaaS.io
ontologies)

Obj.1 & Obj.2

yes (semantic
integration layer)

Obj.1 & Obj.2

Semantic Integration EUE‐2, EUE‐11, WA‐2

Functional
View

Interoperability

IoT Service,
Virtual Entity

Semantic Integration,
Semantic VE data
EUE‐11, WA‐11
repository, Semantic
Data Repository

Functional
View

Privacy

Security

Identity Management not planned so far

CPaaS.io

Obj.3

Page 108 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)Volere Template

UNI ID
FREQ.21Requirem
Priorityent Type

FREQ

Category

Description

Rationale

Fit Criterion

Dependencies

NFREQ.13&
NFREQ.16

MEDIU
Security,
Personal data in servers should be
MPrivacy & Trust ciphered by a private key

MEDIU
Security,
Secure storage of data should be
MPrivacy & Trust ensured.

Traceability regarding the architectural reference model
Owner

Conflicts

View

Perspective

Functional
Security, Privacy
View

Functionality
Group

Security

Functional Component Comments

KEM

to be checked between EU and Japan

Obj.3

NFREQ.9,
NFREQ.21

Functional
Security,
Security, Privacy
View
Management

AuthZ, Web Front End unclear

Obj.3

NFREQ.21

Functional
Security, Privacy
View

NFREQ.23

Functional
Security,
KEM, Communication
Security, Privacy
View
Communication
ChannelFREQ.23

FREQ

FREQ.24

FREQ

FREQ.25

FREQ

HIGH

Security,
Communicated data MUST remain
Privacy & Trust confidential if needed.

FREQ.26

FREQ

HIGH

Service providers MUST be able to set
Security,
access‐control rights/ policies (set up by
Privacy & Trust
service owners) to their services

NFREQ.9

IoT Service,
Functional
Security, Privacy
View
Virtual Entity,

FREQ.30

FREQ

HIGH

CPaaS.IO MUST be able to evaluate
Security,
access request depending on accessPrivacy & Trustcontrol policies.

NFREQ.9

Functional
Security, Privacy
View

IoT Service,
Virtual Entity

AuthN, AuthZ, VE
Service, IoT Service

FREQ.31

FREQ

HIGH

CPaaS.IO MUST provide an authorization
policy to data, object and service for the
Security,different users or devices which in turnPrivacy & Trust
will have to be authenticated andauhorised before accessing them.

Functional
View

Security

IoT Service,
Virtual Entity,
Management

AuthN, AuthZ, Web
Front End

FREQ.32

FREQ

HIGH

User (CPaaS.io client) or device as part ofManagement, the platform deployment MUST be
Needed for authentication and
Security
registered before using any services
authorisation
provided by the platform.

Functional
View

Security

Security,
Management

Identity Management,
EUE‐13
Web Front End

FREQ.33

FREQ

HIGH

Management.
Users and devices MUST be identified
Security

Functional
View

Security

Security

Privacy

For security and privacy issue it must be
possible to cypher communication

In some scenario, a formal aggrement
User's data MUST be processed only withfrom the data owner is necessary forthe user's consent.
the exploitation of personal data

FREQ.38

FREQ

HIGH

FREQ.39

FREQ

HIGH

Security,
CPaaS.io MUST support context‐aware
Privacy & Trust access policies.

FREQ.50

FREQ

HIGH

Services MUST maintain a log of the
Security,
operations done by users. This log shallPrivacy & Trustnot be modified by attackers.

FREQ.60

FREQ

HIGH

FREQ.70

FREQ

HIGH

FREQ.71FREQ

The IoT system SHOULD optimize the
MEDIU
processing of information with respect toLoad Balancing
M
a cost function, e.g. communication,
computation, energy, etc.

FREQ.72

FREQ

HIGH

FREQ.72

FREQ

HIGH

FREQ.80

FREQ

HIGH

H2020 EUJ-02-2016

AuthZ, KEM

Obj.3

yes (Capability
Token)

Obj.3

ConsentManagement,
Web Front End

yes (consent is
supported)

Obj.3

yes

Obj.3

changed from MEDIUM to HIGH. Standard semantic annotation must include
time stamp when relevant

yestechnical

Which implies some kind of peer‐authentication and provision of security
credential at the node level.

yes

Obj.2

yes (edge
computing)

Obj.2

AuthN, Identity
Management

Functional
View

Security

Security

Logging

Information
View

Performance,
Resilience

ServiceOrganisation,
IoT process
Mngt

FREQ.71

Functional
View

Performance,
Scalability,
Resilience

This basic information is needed by thedecision making process that decides
how and where tasks must be deployed

NFREQ.71

Information
View

Performance,
Scalability

Analytics and event detection is part ofbasic functionalities for leveraging raw
data and producing value‐added
knowledge

FREQ..91

Functional
View

CPaaS.io

Obj.3

yes

AuthZ

Functional
View

Obj.3

Obj.3

Security

NFREQ.2,
FREQ.72,
FREQ.70

yes (encryption)

yes

Security

Security, Trust

Obj.3

Obj.3

Functional
View

Functional
View

partlyyes

FREQ.31

FREQ.9 &FREQ.13in the current implementation policies are not encrypted. To be discuu further.

AuthN, AuthZ,

Functional
Security,
Security, Privacy
Management
View

ServiceOrganisation,
IoT process
Mngt

The CPaaS.io platform MUST be able to
Load Balancing, provide mechanisms for migrating tasks
Part of the Cloud and Edge
Bandwidth to nodes participating the CPaaS.io
programming objectives of the project
Optimization systems according to its characteristics
and availability
It MUST be possble to describe thePlatform,
capabilities of the platform nodes inManagement term of memory, CPU and network
capacity
CPaaS.io platform MUST be able toperform analytics, and event
Platform
detection/prediction using “live” andhistorical data

Security

NFREQ.20

for security reason it is important toremember whom did what, and makesure non‐repudiation is ensured

Platform,
Basic meta‐data needed for many
Discovery, Time stamps MUST be supported.
aspects like data query, time‐series
Lookupbuilding, causality detection
Social needs,
The IoT system MUST ensure that
City Data,
Only trusted nodes can be involved inprocessing of information takes place on
Platform,
CPaaS.io platform
trusted nodes.
Infrastructure

Obj.3

IoT Service,
Functional
Security, Privacy Virtual Entity,
View
Security

To guaranty data integrity and makesure the data can't be stolen or
replicated.

FREQ

Data owners shall be able to set access‐
RDPs must be able to discreminate
Security,
control rights/ policies (set up by data
between whomever is authorised or not
Privacy & Trust owners) to their data stored on
to access and use their data
resources.
Access‐control rights/ policies (set up by
MEDIU
Security,
data owners) SHOULD NOT be publishedM
Privacy & Trust
publicly.

Relation to Proj. Objectives

Semantic VE Data
Repository, VE
mechanisms are in place. The decision to go for crypted or not in optional
Registry, Semantic
Data Repository,KEM

FREQ.22

HIGH

Covered in d3.5

Task Deployment,
Processing
Optimization
Task Deployment,
Processing
Optimization

Not only the user must define access policyfor his data but the platform mustalso grant authorization to the user for using services or accessing objcts.
Meregd with FREQ.34, FREQ.35, FREQ.36 & FREQ.37

or associated with an ID, or authenticated? (to be clarified)

dropped for log part, non‐repudiation alreadu covered

Obj.1 & Obj.2

IoT Service,
Virtual Entity

Analytics, Rule‐based The CEP part is dropped because of a lack of reationale from the scenario.
Reasoner, CEP Engine Prediction is dropped for the same reason.

yes (edge
computing)

Obj.2

partlyObj.1

Page 109 of 110

Deliverable D3.5

CPaaS.io System Architecture (v3)Volere Template

UNI ID

FREQ.90

Requirem
Priorityent Type

FREQ

HIGH

FREQ.91

FREQ

HIGH

FREQ.92

FREQ

LOW

FREQ.93

FREQ

LOW

FREQ.100

FREQ

HIGH

FREQ.110

FREQ

HIGH

FREQ.111

FREQ

HIGH

FREQ.112

FREQ

HIGH

Category

Description

Platform

The CPaaS.io platform MUST provide
publish / subscribe functionality andcriteria for filtering in/out data based (atleast) on geographical area, data typeand data source

Platform

The CPaaS.io platform MUST provide
Complex Event Processing techniquesthat are able to infer high level events
out of an incoming flow of data, basedon various criteria (condition for thatevent to be triggered)

Rationale

This technique allows to infer data froma live data stream. It can be coupledwith ML for infering production

Traceability regarding the architectural reference model
Owner

Fit Criterion

Dependenci
esFREQ.117

It must be possible to assess that data
Platform,
The CPaaS.io platform MAY provide data
follows the ontology it is expected toManagement validation services
comply with
Platform

The CPaaS.io platform MAY provide afunctionality to map between common
RDF identifiers and vocabularies

Conflicts

View

Perspective

Functionality
Group

Functional
View

Communication

Communication
ChannelFunctional
View

IoT Service,
Virtual Entity

CEP Engine

Semantic Validator

Functional
View

Interoperability

Management

Functional
View

Interoperability

Obj.1 & Obj.2

Dropped as there is no scenario rationale for it

Management

Still to be discussed

Obj.2

Dropped as the rationale disappeared. Change of strategy as far as data
storage is concerned in EUE scenario

Information
View

IoT Service

The p/f MUST provide mechanisms forcollecting, publishing and storing
semantic data (historical data)

All services require the collection andstorage of real‐time data and historical
data

Functional
View

IoT Service,
Virtual Entity

In order to empower people about theCity Data, Data The platform MUST provide mechanisms management of their own data andCollection, for presenting data & personal data in a make and associated access right, thisPlatform
user friendly form
data must be presented in a user
firendly form

Functional
View

Semantic VE Data
Repository, Semantic EUE‐7, WA‐1
Data Repository

Management

WEB Front End

EUE‐3, WA‐7

Analytics, Pre‐
processing,!!! The exact nature of analytics functionalities is still e to be confirmed. EUE‐4. Post processing is captured in Analytics FC. Some form of analytics has been
covered already within the platform

City Data,
Platform

The p/f MUST provide some analytics for Before being published (and annotated),(pre/post) processing data
raw data needs some processing

Functional
View

IoT Service,
Virtual Entity,

Platform

Time synchronization is required so that
The p/f SHOULD offer means forsensor data from different sensors cansynchronizing clocks between IoT devices
be correlated by time

Functional
View

Management

City Data, Data The p/f MUST be able in certain
Collection, circumstances to pull data from the IoT
Platform
resources

In some cases the data should be pulled
directly by the platform from data
producers instead of being produced
towards the platform by data producers

Functional
View

Service
IoT Resource
Organisation,!!! To be checked if there is a need for additional FC. More form Service
Manager, IoT Service,
VE Service, IoT
Organisation FG probably. YEM‐1 & TPT‐1
VE Service End‐Point
Service

Functional
View

Management, Consent Management,
YEM‐2, covered with dashboard
Security
Web Front End

Functional
View,
Information
View

IoT Service,
Virtual Entity

FREQ.113FREQMEDIUM

FREQ.114

FREQ

HIGH

FREQ.115FREQ

MEDIUM

Platform,
The p/f SHOULD provide consent
Management management functionalities

In some scenario (medical e.g.) it isimportant to provide an App for dealing
with consent management, especiallywhen dealing with Personal
information.

FREQ.116FREQMEDIUM

City Data, Data
It SHOULD be possible to publish data
Collection,
about actuation
Platform

For some scenarios, not only sensor
data are important, but also
information about actuation (like whena pipe is opened/closed and for which
duration.

FREQ.117FREQ

MEDIUM

City Data, Data
Data of type "event" SHOULD be
Collection,
supported
Platform

Not only information about devices aremeaningful. CPaaS.io should also
support events and alert

FREQ.118

FREQ

LOW

Platform,
The p/f SHOUD be able to collect andManagement manage user 's feedback

FREQ.38

FREQ.91

DC.1

DC

HIGH

Data transmission is modulated with
Infrastructure, LoRa, operated by The Things Network Data received in application server via
Networking network server. The application needs to TTN API
be integrated with TTN API

FREQ.119

FREQ

HIGH

The p/f MUST be able to host and serve
Platform,
Infrastructure IoT Services and VE Services locallySome IoT Resource owner do not have
any infrastructure for running IoT
Services exposing their IoT Resources

Functional
View

FREQ.120FREQ

MEDIUM

End‐users SHOULD be able to perform
Platform,
managing operation using a WEB FrontManagement
End

General Usability issues like providing
the end‐user with human readable anduser friendly interfaces to the different
CPaaS.io FC

Functional
View

FREQ.121FREQ

MEDIUM

For scenario that include actuation it is
The p/f SHOULD provide non‐repudiation
highly crucial to provide thismechanisms
functionality

Functional
View

Security

H2020 EUJ-02-2016

Obj.1 & Obj.2

yes (dashboard)

Obj.1 & Obj.3

partlyObj.1!!! This functionality has not been planned for V1. Still to be discussed

technical

Obj.2

yes

When explicit actuation is performed, actuation observation should be
IoT Service, VE Service
published. Actuationobservation should also be published from the external
End‐Point
RDP. WA‐2.

Information
View

technical!!! User feedback mechanisms have not been agreed upon yet. TBD. WA‐10 &YEM‐5 & TPT‐10

Management

Obj.3

Obj.1 & Obj.2

The ontology must support the concept of event. WA‐9.

Information
View

Relation to Proj. Objectives

Obj.2

For legal reasons some data may not be
stored by the platform directly.

Usability

Covered in d3.5

Still to be discussed

Discovery, It MUST be able to describe data sets
lookup,(content‐wise and access‐wise) in orderInteroperability to allow for discovery and lookup
City Data,
Platform

Functional Component Comments

Obj.3

technical

CPaaS.io

IoT Service

IoT Service

Still under discussion?

Usability

Management

Web Front‐End

yes

Obj.1 & Obj.3

Security

Security

KEM, Accountability,
Accounting

yes

Obj.3

Page 110 of 110