27
Microservice-oriented computing for IoT applications development Stefano Pio Zingaro Università di Bologna

Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

Microservice-oriented computing for IoT applications

developmentStefano Pio Zingaro

Università di Bologna

Page 2: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

• Digital Infrastructure*

• Smart Buildings management systems — e.g. surveillance, environmental quality, monitoring, etc.

• Smart Mobility system— e.g. smart parking (IoV), smart routing system for public transports, etc.

IoT Applications some examples…

Page 3: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

• Digital Wellbeing a.k.a. eHealth*

• Smart diagnoses systems — e.g. including data from bio-instrumentation (or user’s smart-devices) in EHR

IoT Applications some examples…

Page 4: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

IoT Applications some examples…

• Digital Education*

• Learning analytics systems — i.e. the use of learner-produced data to discover information for advising people's learning

* identified as key drivers for the smart city in UE H2020

Page 5: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

smart +

IoT Applications some examples…

Page 6: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

IoT: some context architectural POV

• distributed systems of heterogeneous platforms

• delocalized topologies

• decomposed application logic (for free)

Page 7: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

Cloud

Fog/Edge*

Thing*This works focus on the Edge Computing Layer

with cross and inter-layer communication

IoT: some context architectural POV

Page 8: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

What you need to dev IoT Apps

developer POV

Page 9: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

• Scalability (e.g. SaaS)

• Agility (QoS compliant)

• Modularity (updatable)

• Consistency (secure)

Service Oriented Microservices

+

What you need to dev IoT Apps

Page 10: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

What we need…

Cloud

Fog/Edge*

Thing*This works focus on the Edge Computing Layer

Page 11: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

… what we have

Cloud

Being web-driven and born from SOA, reference architecture is cloud-centric

Page 12: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

Things some definition

• Devices equipped with Sensors/Actuators and (wireless) communication technologies.

Page 13: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

Edge Devices some definition

• A device with computational powers for local data process

• In compliance with GDPR

• “no data leaves the building” policy

• Things controllers

• Things collectors

Disclaimer: definitions have not enough consensus to be considered “standards”

Page 14: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

Fog nodes some definition

• Communication middlewares

• Proxy and API Gateways

• Brokers

Disclaimer: definitions have not enough consensus to be considered “standards”

Page 15: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

Given this context, which solution would help the development of an IoT Application?

Page 16: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

when people was thinking of me as a bioinformatician…

some background on me

Page 17: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing
Page 18: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

Computer science deals with programming languages so …

…we could chose to extend an existing programming language, or to build it from scratch

PROGRAMMING LANGUAGE

Page 19: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

Jolie why?

Beacuse it already supports technologies for integration.

Application Protocols

TCP/IP, bluetooth, RMI, unix socket

Mediums HTTP, HTTPs, SOAP, SOAPs, JSON/RPC, XML/RPC

Data Representation Format

XML, JSON, Binary

Page 20: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

Jolie extension the JIoT project

to support IoT application development addressing the reference architecture we (concretely) integrated into the Jolie (forked) interpreter:

• Message Queuing Telemetry Transport (MQTT) — a Publish/Subscribe application protocol

• Constrained Application Protocol (CoAP) — a REST-based connection-less lightweight protocol

Page 21: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

Remarks

• We used netty.io — an asynchronous event-driven Java library to implement network protocols —> to speed-up the development and increase the performance of the interpreter in modern applications scenarios.

• We extended the medium of Jolie with the support for UDP.

• We provided a end-to-end implementation of the publish/subscribe pattern.

Page 22: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

main {backHome( );toggle@Light( true )}

behaviour

Page 23: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

inputPort Door {Location: "socket://localhost:8001"Protocol: httpOneWay: backHome( undefined )}outputPort Light {Location: "datagram://localhost:5683"Protocol: coapOneWay: toggle( bool )} deployment

Page 24: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

inputPort Backdoor {Location: "socket://localhost:1883"Protocol: mqtt {.broker = "socket://iot.eclipse.org:1883"}OneWay: backHome( undefined )}

deployment

Page 25: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

discussion

PROs

• easy to program for non-experts

• it becomes easy to emulate lower-level components

CONs

• still need extensions specifically crafted for Jolie

Page 27: Microservice-oriented computing for IoT applications ... · Microservice-oriented computing for IoT applications development ... to support IoT application development addressing

References

• SaaS - Sensing as a Service

• JIoT - Jolie for the Internet of Things project