SlideShare a Scribd company logo
Client and Server,
3 meters above the Cloud
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Ma/eo Ferroni
๏ Me
Passionate coder, so.ware architect, (Web) surfer and musician
๏ Educa)on
Ph.D., Politecnico di Milano
Visi;ng Researcher, University of California, Berkeley (UCB)
๏ Work
CTO & Co-Founder, Bo9ega52 Srl
Teaching, Politecnico di Milano & LIUC
๏ Web
maDeo@boDega52.it
@maHerroni
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Today’s talk:
Client and Server,
3 meters above the Cloud
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
IoT, the Cloud and all the Fog in between
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
BACK-END
DEVELOPERS
FRONT-END
DEVELOPERS
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Front-End vs. Back-End
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
A real world deployment
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Client-Server model
Client
Mobile
Client
Desktop
Remote
Server
Request
Response
Request
Response
“The client-server model is a distributed applica)on structure that par;;ons
tasks or workloads between the providers of a resource or service, called
servers, and service requesters, called clients.”
— "Distributed ApplicaMon Architecture", Sun Microsystem
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Server-side developers
“I tested the endpoints, they are working”
"You're sending me the wrong input"
"You have a bug in your frontend!"
A normal day in the office
Client-side developer
"The server’s endpoints are not working"
"The data you're sending back are wrong”
"You have a bug in your backend!"
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
The baPle is geQng worse: SOA
— hPp://daas.co.id/index.php?page=detail-service&id=S001
“A Service Oriented Architecture (SOA) is a flexible set of design principles
used in systems development and integra;on. SOA arose because [...] Clients
using legacy architectures typically found their solu;on increasingly difficult to
maintain as the number of systems increase above a cri;cal point.”
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
And worse: Microservices architecture
— Adrian CockcroZ, Cloud Architect at Ne[lix
“A Microservices architecture as a service-oriented architecture composed of
loosely coupled elements that have bounded contexts.”
— MarMn Fowler, Chief ScienMst at ThoughtWorks
“[…] a suite of small services, each running in its own process and
communica;ng with lightweight mechanisms, o.en an HTTP resource API.”
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Microservices: how they should look like
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Microservices: how yours actually look
— Brian Foote and Joseph Yoder, Big Ball of Mud. Fourth Conference on PaPerns
Languages of Programs (PLoP '97/EuroPLoP '97) MonMcello, Illinois, September 1997
“A Big Ball of Mud is a haphazardly structured, sprawling, sloppy, duct-tape-
and-baling-wire, spaghe^-code jungle. These systems show unmistakable signs
of unregulated growth, and repeated, expedient repair.”
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Why should I bother?
Server Architectures,
SOA/ESB,
Microservices, etc.
The
Cloud
Clients
“All that complexity
stays on your side!”
…What about the rise of Internet of Things
and Fog Compu)ng?
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Internet of Things and Fog CompuMng
— Infographic by The ConnecMvist, based on Cisco data
“The Internet of Things (IoT) comes a.er the Mobile App era, when a lot of
businesses have been enabled by digital and Internet-based services through
mobile devices. These two markets are now going to be merged in a unique
vision and ecosystem".
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Internet of Things and Fog CompuMng
— “IoT, from Cloud to Fog CompuMng”, Cisco Systems
Fog Compu)ng [...] extends Cloud compu;ng and services to the edge of the
network. […] Fog provides data, compute, storage, and applica)on services to
end-users. The dis;nguishing Fog characteris;cs are its proximity to end-users,
its dense geographical distribu;on, and its support for mobility.
Cloud
Fog node
Desktop Mobile
Fog node
Mobile
Embedded
device
Embedded
device
Sensor
Mobile
Sensor
Sensor
Embedded
device
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
If you think this is not your business, think again:
• What service are you talking with?
• Is it a Web service, a Fog node or an IoT device?
• Do you understand and support its language and data?
• Are you reading the most recent version of data you're interested in?
• Opportunis6c networks, anyone?
Why should I bother?
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
Access Control
System
ACS
HTTPS
Smart Lock
AC power
Remote control
WiFi ConnecBon
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
Access Control
System
ACS
HTTPS
Smart Lock
AC power
Remote control
WiFi ConnecBon
Open!
request
while(true)
if(open)
Open!
else
Sleep!
Client-Server
model
BUSY-WAITING
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
Access Control
System
ACS
MQTT
Smart Lock
AC power
Remote control
WiFi ConnecBon
Open!
message
Open!
request
— hPp://mqP.org/
MQTT is a machine-to-
machine (M2M)/"Internet of
Things" connecSvity protocol.
It was designed as an
extremely lightweight publish/
s u b s c r i b e m e s s a g i n g
transport.
Publish-Subscribe
model
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
HTTPS
Request
credenSals!
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
Ba;ery powered
Bluetooth Connec6on
Very low power
Mobile app
Check remote creden7als
Login/Logout & basic features
Internet Connec7on
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Access Control
System
ACS
Password
authen7ca7on
(secret sent to mobile)
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
HTTPS
Receive
credenSals!
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
Ba;ery powered
Bluetooth Connec6on
Very low power
Mobile app
Check remote creden7als
Login/Logout & basic features
Internet Connec7on
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Access Control
System
ACS
Password
authen7ca7on
(secret sent to mobile)
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
HTTPS
Receive
credenSals!
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
Ba;ery powered
Bluetooth Connec6on
Very low power
Mobile app
Check remote creden7als
Login/Logout & basic features
Internet Connec7on
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Access Control
System
ACS
Open! with
credenSals
Password
authen7ca7on
(secret sent to mobile)
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
HTTPS
Receive
credenSals!
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
Ba;ery powered
Bluetooth Connec6on
Very low power
Mobile app
Check remote creden7als
Login/Logout & basic features
Internet Connec7on
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Access Control
System
ACS
Open! with
credenSals
TRUSTED?
Password
authen7ca7on
(secret sent to mobile)
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Challenge!
request
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
Ba;ery powered
Bluetooth Connec6on
Very low power
Mobile app
Check remote creden7als
Login/Logout & basic features
Internet Connec7on
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)HTTPS
Access Control
System
ACS
Challenge–response
authen7ca7on
(secret NOT sent to mobile)
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Challenge!
request
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
Ba;ery powered
Bluetooth Connec6on
Very low power
Mobile app
Check remote creden7als
Login/Logout & basic features
Internet Connec7on
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)HTTPS
Access Control
System
ACS
Solve the challenge!
request
Challenge–response
authen7ca7on
(secret NOT sent to mobile)
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
Ba;ery powered
Bluetooth Connec6on
Very low power
Mobile app
Check remote creden7als
Login/Logout & basic features
Internet Connec7on
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)HTTPS
Access Control
System
ACS
Response
soluSon!
Challenge–response
authen7ca7on
(secret NOT sent to mobile)
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Open!
with solu;on
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
Ba;ery powered
Bluetooth Connec6on
Very low power
Mobile app
Check remote creden7als
Login/Logout & basic features
Internet Connec7on
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)HTTPS
Access Control
System
ACS
Response
soluSon!
Challenge–response
authen7ca7on
(secret NOT sent to mobile)
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)HTTPS
Access Control
System
ACS
OFFLINEOpen! with
OFFLINE
credenSals
cached/offline
credenSals
Cache-Aside
pa>ern
TRUSTED?
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Access Control
System
ACS
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
HTTPS
MQTT
HTTPS
MQTT
Introducing
Fog Compu7ng
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
HTTPS
MQTT
HTTPS
MQTT
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Access Control
System
ACS
Introducing
Fog Compu7ng
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
<virtualconnecSon>
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
HTTPS
MQTT
HTTPS
MQTT
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Access Control
System
ACS
Introducing
Fog Compu7ng
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
<virtual connecSon>
<virtual connecSon>
HTTPS
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Access Control
System
ACS
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
HTTPS
HTTPS
MQTT
HTTPS
MQTT
UNRELIABLE
Cache-Aside
pa>ern
TRUSTED
cached/offline
credenSals
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
Access Control
System
ACS
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
HTTPS
HTTPS
MQTT
HTTPS
MQTT
OFFLINE
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
HTTPS
HTTPS
MQTT
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
Opportunity to connect
1. cache new credenMals
2. remove expired ones
3. send access logs
<virtual connecSon>
Access Control
System
ACS
Opportunis7c
Networks
“[…] a form of mobile ad hoc
networks that exploit the
human social characterisScs,
such as similariSes, daily
rouSnes, mobility pa9erns,
and interests to perform the
message rou)ng and data
sharing.”
— Nikolaos Vastardis and Kun Yang,
"Mobile Social Networks: Architectures,
Social ProperMes, and Key Research
Challenges," IEEE CommunicaMons
Surveys and Tutorials, vol. 15, no. 3,
2013, pp. 1355
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
HTTPS
HTTPS
MQTT
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
<virtual connecSon>
Opportunis7c
Networks
DELAYED
Mobile app
HTTPS
Access Control
System
ACS
<virtual connecSon>…when the
connec7on
is available
a.k.a.
“piggybacking”
Opportunity to connect
1. cache new credenMals
2. remove expired ones
3. send access logs
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
When IoT Comes Knocking at Your Door... or Locks it
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
HTTPS
HTTPS
MQTT
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
<virtual connecSon>
Access Control
System
ACS
Opportunis7c
Networks
“[…] a form of mobile ad hoc
networks that exploit the
human social characterisScs,
such as similariSes, daily
rouSnes, mobility pa9erns,
and interests to perform the
message rou)ng and data
sharing.”
— Nikolaos Vastardis and Kun Yang,
"Mobile Social Networks: Architectures,
Social ProperMes, and Key Research
Challenges," IEEE CommunicaMons
Surveys and Tutorials, vol. 15, no. 3,
2013, pp. 1355
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
When IoT Comes Knocking at Your Door... or Locks it
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
HTTPS
HTTPS
MQTT
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
<virtual connecSon>
Access Control
System
ACS
Opportunis7c
Networks
“[…] a form of mobile ad hoc
networks that exploit the
human social characterisBcs,
such as similariBes, daily
rouBnes, mobility paIerns, and
interests to perform the
message rou)ng and data
sharing.”
— Nikolaos Vastardis and Kun Yang,
"Mobile Social Networks: Architectures,
Social ProperMes, and Key Research
Challenges," IEEE CommunicaMons
Surveys and Tutorials, vol. 15, no. 3,
2013, pp. 1355
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
When IoT Comes Knocking at Your Door... or Locks it
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
HTTPS
HTTPS
MQTT
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
<virtual connecSon>
Access Control
System
ACS
Opportunis7c
Networks
“[…] a form of mobile ad hoc
networks that exploit the
human social characterisBcs,
such as similariBes, daily
rouBnes, mobility paIerns, and
interests to perform the
message rou)ng and data
sharing.”
— Nikolaos Vastardis and Kun Yang,
"Mobile Social Networks: Architectures,
Social ProperMes, and Key Research
Challenges," IEEE CommunicaMons
Surveys and Tutorials, vol. 15, no. 3,
2013, pp. 1355
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
When IoT Comes Knocking at Your Door... or Locks it
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
HTTPS
MQTT
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
Access Control
System
ACS
HTTPS
MQTT
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)
HTTPS
Mobile app
…when the
connec7on
is available
Main
Storage
cached/offline
credenSals
HTTPS OUTDATED
credenSals
Cache
coherency
problem
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
SMll a Client-Server model?
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
Just a simple
Client-Server interac;on?
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
You are a part of something bigger
“No man is an island enBre of itself;
every man is a piece of the conBnent,
a part of the main.”
— John Donne
SOFTWARE
DISTRIBUTED SYSTEM
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
IntegraMon is everything
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
Mobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)HTTPS
Access Control
System
ACS
Customer
External System
IntegraCon
ERP, CMR, Legacy code
Management soVware
HTTPS
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
HTTPS
HTTPS
HTTPS
MQTT
HTTPS
MQTT
HTTPS
MQTT
OFFLINE
UNRELIABLE
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
IntegraMon is everything
Let's assume we want to open a door with a Smartphone
Smart Lock
No cable
Remote control
BaIery powered
Bluetooth ConnecBon
Very low power
HTTPS
Front-end
Grant & Revoke permissions
Login/Logout & basic features
Manage Users
Access Control Lists (ACL)HTTPS
Customer
External System
IntegraCon
ERP, CMR, Legacy code
Management soVware
HTTPS
Local Gateway
AC power plug
Bluetooth ConnecBon
WiFi/LAN ConnecBon
HTTPS
HTTPS
HTTPS
MQTT
HTTPS
MQTT
HTTPS
MQTT
OFFLINE
UNRELIABLEMobile app
Check remote credenBals
Login/Logout & basic features
Internet ConnecBon
Fingerprint reader
(Asynchronous)
Idempotent Retry
pa>ern
Access Control
System
ACS
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Introducing Sofia
• Corpo livello uno
• Corpo livello due
• Corpo livello tre
• Corpo livello quaDro
• Corpo livello cinque
Smartphone Based and
Cloud Access Control Systems
Industries
• AccomodaSon
• USliSes
• Smart Working
• LogisSc
Partners
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Some takeaways:
• Apply Design PaSerns and avoid An)-PaSerns
• So.ware should be cynical (a.k.a., bad things will happen)
• Be conserva)ve in what you send, be liberal in what you accept
(“Robustness principle")
• Every integra)on point will eventually fail in some way
• It’s not just you and your code, you are part of something bigger
Why should I bother?
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
You are building something bigger
“No man is an island enBre of itself;
every man is a piece of the conBnent,
a part of the main.”
— John Donne
SOFTWARE
DISTRIBUTED SYSTEM
DEVELOPER
TEAM
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Server-side developers
“I tested the endpoints, they are working”
"You're sending me the wrong input"
"You have a bug in your frontend!"
Please, stop fighMng
Client-side developer
"The server’s endpoints are not working"
"The data you're sending back are wrong”
"You have a bug in your backend!"
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Please, stop fighMng
THERE’S
ONE
JUST
ENEMY
END USERS
@ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud
Thank
you
Client and Server,
3 meters above
the Cloud

More Related Content

What's hot

Successful Industrial IoT patterns
Successful Industrial IoT patterns Successful Industrial IoT patterns
Successful Industrial IoT patterns
John Mathon
 
A Reference Architecture for IoT
A Reference Architecture for IoT A Reference Architecture for IoT
A Reference Architecture for IoT
WSO2
 
World of Watson - Integrating IBM Watson IOT Platform and IBM Blockchain
World of Watson - Integrating IBM Watson IOT Platform and IBM BlockchainWorld of Watson - Integrating IBM Watson IOT Platform and IBM Blockchain
World of Watson - Integrating IBM Watson IOT Platform and IBM Blockchain
Rahul Gupta
 
Identity based cryptography for client side security in web applications (web...
Identity based cryptography for client side security in web applications (web...Identity based cryptography for client side security in web applications (web...
Identity based cryptography for client side security in web applications (web...
eSAT Publishing House
 
Beacon Security
Beacon SecurityBeacon Security
Beacon Security
kontakt.io
 
Managing Identity without Boundaries
Managing Identity without BoundariesManaging Identity without Boundaries
Managing Identity without Boundaries
Ping Identity
 
9.35am robert humphrey
9.35am robert humphrey9.35am robert humphrey
9.35am robert humphrey
Argyle Executive Forum
 
Clear and Present Danger
Clear and Present DangerClear and Present Danger
Clear and Present Danger
Ping Identity
 
IoT Security: Problems, Challenges and Solutions
IoT Security: Problems, Challenges and SolutionsIoT Security: Problems, Challenges and Solutions
IoT Security: Problems, Challenges and Solutions
Liwei Ren任力偉
 
Extending Active Directory to Box for Seamless IT Management
Extending Active Directory to Box for Seamless IT ManagementExtending Active Directory to Box for Seamless IT Management
Extending Active Directory to Box for Seamless IT Management
Okta-Inc
 
Integrating IBM Watson IoT Platform IBM Blockchain Lab
Integrating IBM Watson IoT Platform IBM Blockchain LabIntegrating IBM Watson IoT Platform IBM Blockchain Lab
Integrating IBM Watson IoT Platform IBM Blockchain Lab
Rahul Gupta
 
You Can't Spell Enterprise Security without MFA
You Can't Spell Enterprise Security without MFA You Can't Spell Enterprise Security without MFA
You Can't Spell Enterprise Security without MFA
Ping Identity
 
Internet Of Things What You Need To Know - TechFuse
Internet Of Things What You Need To Know - TechFuseInternet Of Things What You Need To Know - TechFuse
Internet Of Things What You Need To Know - TechFuse
Richard Harbridge
 
Cloud Computing for SMBs
Cloud Computing for SMBsCloud Computing for SMBs
Cloud Computing for SMBs
white paper
 
iBeacons: Security and Privacy?
iBeacons: Security and Privacy?iBeacons: Security and Privacy?
iBeacons: Security and Privacy?
Jim Fenton
 
GDPR & Customer IAM: The Real Winners Won’t Stop At Compliance
GDPR & Customer IAM: The Real Winners Won’t Stop At ComplianceGDPR & Customer IAM: The Real Winners Won’t Stop At Compliance
GDPR & Customer IAM: The Real Winners Won’t Stop At Compliance
Ping Identity
 
Iot Software-As-A-Service Implementation Framework
Iot Software-As-A-Service Implementation FrameworkIot Software-As-A-Service Implementation Framework
Iot Software-As-A-Service Implementation Framework
Chandrashekhar More
 
1. Introduction to IoT
1. Introduction to IoT1. Introduction to IoT
1. Introduction to IoT
Abhishek Das
 
Design Patterns for Ontologies in IoT
Design Patterns for Ontologies in IoTDesign Patterns for Ontologies in IoT
Design Patterns for Ontologies in IoT
Mark Underwood
 
IDENTITY IN THE WORLD OF IOT
IDENTITY IN THE WORLD OF IOTIDENTITY IN THE WORLD OF IOT
IDENTITY IN THE WORLD OF IOT
ForgeRock
 

What's hot (20)

Successful Industrial IoT patterns
Successful Industrial IoT patterns Successful Industrial IoT patterns
Successful Industrial IoT patterns
 
A Reference Architecture for IoT
A Reference Architecture for IoT A Reference Architecture for IoT
A Reference Architecture for IoT
 
World of Watson - Integrating IBM Watson IOT Platform and IBM Blockchain
World of Watson - Integrating IBM Watson IOT Platform and IBM BlockchainWorld of Watson - Integrating IBM Watson IOT Platform and IBM Blockchain
World of Watson - Integrating IBM Watson IOT Platform and IBM Blockchain
 
Identity based cryptography for client side security in web applications (web...
Identity based cryptography for client side security in web applications (web...Identity based cryptography for client side security in web applications (web...
Identity based cryptography for client side security in web applications (web...
 
Beacon Security
Beacon SecurityBeacon Security
Beacon Security
 
Managing Identity without Boundaries
Managing Identity without BoundariesManaging Identity without Boundaries
Managing Identity without Boundaries
 
9.35am robert humphrey
9.35am robert humphrey9.35am robert humphrey
9.35am robert humphrey
 
Clear and Present Danger
Clear and Present DangerClear and Present Danger
Clear and Present Danger
 
IoT Security: Problems, Challenges and Solutions
IoT Security: Problems, Challenges and SolutionsIoT Security: Problems, Challenges and Solutions
IoT Security: Problems, Challenges and Solutions
 
Extending Active Directory to Box for Seamless IT Management
Extending Active Directory to Box for Seamless IT ManagementExtending Active Directory to Box for Seamless IT Management
Extending Active Directory to Box for Seamless IT Management
 
Integrating IBM Watson IoT Platform IBM Blockchain Lab
Integrating IBM Watson IoT Platform IBM Blockchain LabIntegrating IBM Watson IoT Platform IBM Blockchain Lab
Integrating IBM Watson IoT Platform IBM Blockchain Lab
 
You Can't Spell Enterprise Security without MFA
You Can't Spell Enterprise Security without MFA You Can't Spell Enterprise Security without MFA
You Can't Spell Enterprise Security without MFA
 
Internet Of Things What You Need To Know - TechFuse
Internet Of Things What You Need To Know - TechFuseInternet Of Things What You Need To Know - TechFuse
Internet Of Things What You Need To Know - TechFuse
 
Cloud Computing for SMBs
Cloud Computing for SMBsCloud Computing for SMBs
Cloud Computing for SMBs
 
iBeacons: Security and Privacy?
iBeacons: Security and Privacy?iBeacons: Security and Privacy?
iBeacons: Security and Privacy?
 
GDPR & Customer IAM: The Real Winners Won’t Stop At Compliance
GDPR & Customer IAM: The Real Winners Won’t Stop At ComplianceGDPR & Customer IAM: The Real Winners Won’t Stop At Compliance
GDPR & Customer IAM: The Real Winners Won’t Stop At Compliance
 
Iot Software-As-A-Service Implementation Framework
Iot Software-As-A-Service Implementation FrameworkIot Software-As-A-Service Implementation Framework
Iot Software-As-A-Service Implementation Framework
 
1. Introduction to IoT
1. Introduction to IoT1. Introduction to IoT
1. Introduction to IoT
 
Design Patterns for Ontologies in IoT
Design Patterns for Ontologies in IoTDesign Patterns for Ontologies in IoT
Design Patterns for Ontologies in IoT
 
IDENTITY IN THE WORLD OF IOT
IDENTITY IN THE WORLD OF IOTIDENTITY IN THE WORLD OF IOT
IDENTITY IN THE WORLD OF IOT
 

Similar to [Droidcon Italy 2017] Client and server, 3 meters above the cloud

Offline and Online Bank Data Synchronization System
Offline and Online Bank Data Synchronization SystemOffline and Online Bank Data Synchronization System
Offline and Online Bank Data Synchronization System
ijceronline
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone Developer
Sam Basu
 
Cloud computing in iot seminar report
Cloud computing in iot seminar reportCloud computing in iot seminar report
Cloud computing in iot seminar report
SKS
 
cloud computing is the delivery of computing services
cloud computing is the delivery of computing servicescloud computing is the delivery of computing services
cloud computing is the delivery of computing services
abidhassan225
 
INTERNET OF THINGS
INTERNET OF THINGSINTERNET OF THINGS
INTERNET OF THINGS
akashkumar1540
 
What Web 2.pdf
What Web 2.pdfWhat Web 2.pdf
What Web 2.pdf
Marnusharris
 
Machine learning presentation in using pyhton
Machine learning presentation in using pyhtonMachine learning presentation in using pyhton
Machine learning presentation in using pyhton
masukmia.com
 
mumble: Framework for Seamless Message Transfer on Smartphones
mumble: Framework for Seamless Message Transfer on Smartphonesmumble: Framework for Seamless Message Transfer on Smartphones
mumble: Framework for Seamless Message Transfer on Smartphones
Anand Bhojan
 
Creating An E-Commerce web application using Blockchain
Creating An E-Commerce web application using BlockchainCreating An E-Commerce web application using Blockchain
Creating An E-Commerce web application using Blockchain
IRJET Journal
 
Securing mobile cloud using finger print authentication
Securing mobile cloud using finger print authenticationSecuring mobile cloud using finger print authentication
Securing mobile cloud using finger print authentication
IJNSA Journal
 
Nt1310 Unit 1 Assignment 1
Nt1310 Unit 1 Assignment 1Nt1310 Unit 1 Assignment 1
Nt1310 Unit 1 Assignment 1
Lisa Brown
 
(MBL204) State of The Union: IoT Powered by AWS
(MBL204) State of The Union: IoT Powered by AWS(MBL204) State of The Union: IoT Powered by AWS
(MBL204) State of The Union: IoT Powered by AWS
Amazon Web Services
 
Io t technologies_ppt-2
Io t technologies_ppt-2Io t technologies_ppt-2
Io t technologies_ppt-2
achakracu
 
Securing Mobile Cloud Using Finger Print Authentication
Securing Mobile Cloud Using Finger Print AuthenticationSecuring Mobile Cloud Using Finger Print Authentication
Securing Mobile Cloud Using Finger Print Authentication
IJNSA Journal
 
Seminar report on cloud computing
Seminar report on cloud computingSeminar report on cloud computing
Seminar report on cloud computing
Jagan Mohan Bishoyi
 
How io t is changing our world
How io t is changing our worldHow io t is changing our world
How io t is changing our world
manoharparakh
 
MULTI-FACTOR AUTHENTICATION SECURITY FRAMEWORK USING BlOCKCHAIN IN CLOUD COMP...
MULTI-FACTOR AUTHENTICATION SECURITY FRAMEWORK USING BlOCKCHAIN IN CLOUD COMP...MULTI-FACTOR AUTHENTICATION SECURITY FRAMEWORK USING BlOCKCHAIN IN CLOUD COMP...
MULTI-FACTOR AUTHENTICATION SECURITY FRAMEWORK USING BlOCKCHAIN IN CLOUD COMP...
IRJET Journal
 
Blockchain in Cloud computing.pptx
Blockchain in Cloud computing.pptxBlockchain in Cloud computing.pptx
Blockchain in Cloud computing.pptx
Nickjohn33
 
RISE OF THE MACHINES: IRM IN AN IOT WORLD
RISE OF THE MACHINES: IRM IN AN IOT WORLDRISE OF THE MACHINES: IRM IN AN IOT WORLD
RISE OF THE MACHINES: IRM IN AN IOT WORLD
ForgeRock
 
Evolution of blockchain protocols & Towards Mass Adoption
Evolution of blockchain protocols & Towards Mass AdoptionEvolution of blockchain protocols & Towards Mass Adoption
Evolution of blockchain protocols & Towards Mass Adoption
Tom Ding
 

Similar to [Droidcon Italy 2017] Client and server, 3 meters above the cloud (20)

Offline and Online Bank Data Synchronization System
Offline and Online Bank Data Synchronization SystemOffline and Online Bank Data Synchronization System
Offline and Online Bank Data Synchronization System
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone Developer
 
Cloud computing in iot seminar report
Cloud computing in iot seminar reportCloud computing in iot seminar report
Cloud computing in iot seminar report
 
cloud computing is the delivery of computing services
cloud computing is the delivery of computing servicescloud computing is the delivery of computing services
cloud computing is the delivery of computing services
 
INTERNET OF THINGS
INTERNET OF THINGSINTERNET OF THINGS
INTERNET OF THINGS
 
What Web 2.pdf
What Web 2.pdfWhat Web 2.pdf
What Web 2.pdf
 
Machine learning presentation in using pyhton
Machine learning presentation in using pyhtonMachine learning presentation in using pyhton
Machine learning presentation in using pyhton
 
mumble: Framework for Seamless Message Transfer on Smartphones
mumble: Framework for Seamless Message Transfer on Smartphonesmumble: Framework for Seamless Message Transfer on Smartphones
mumble: Framework for Seamless Message Transfer on Smartphones
 
Creating An E-Commerce web application using Blockchain
Creating An E-Commerce web application using BlockchainCreating An E-Commerce web application using Blockchain
Creating An E-Commerce web application using Blockchain
 
Securing mobile cloud using finger print authentication
Securing mobile cloud using finger print authenticationSecuring mobile cloud using finger print authentication
Securing mobile cloud using finger print authentication
 
Nt1310 Unit 1 Assignment 1
Nt1310 Unit 1 Assignment 1Nt1310 Unit 1 Assignment 1
Nt1310 Unit 1 Assignment 1
 
(MBL204) State of The Union: IoT Powered by AWS
(MBL204) State of The Union: IoT Powered by AWS(MBL204) State of The Union: IoT Powered by AWS
(MBL204) State of The Union: IoT Powered by AWS
 
Io t technologies_ppt-2
Io t technologies_ppt-2Io t technologies_ppt-2
Io t technologies_ppt-2
 
Securing Mobile Cloud Using Finger Print Authentication
Securing Mobile Cloud Using Finger Print AuthenticationSecuring Mobile Cloud Using Finger Print Authentication
Securing Mobile Cloud Using Finger Print Authentication
 
Seminar report on cloud computing
Seminar report on cloud computingSeminar report on cloud computing
Seminar report on cloud computing
 
How io t is changing our world
How io t is changing our worldHow io t is changing our world
How io t is changing our world
 
MULTI-FACTOR AUTHENTICATION SECURITY FRAMEWORK USING BlOCKCHAIN IN CLOUD COMP...
MULTI-FACTOR AUTHENTICATION SECURITY FRAMEWORK USING BlOCKCHAIN IN CLOUD COMP...MULTI-FACTOR AUTHENTICATION SECURITY FRAMEWORK USING BlOCKCHAIN IN CLOUD COMP...
MULTI-FACTOR AUTHENTICATION SECURITY FRAMEWORK USING BlOCKCHAIN IN CLOUD COMP...
 
Blockchain in Cloud computing.pptx
Blockchain in Cloud computing.pptxBlockchain in Cloud computing.pptx
Blockchain in Cloud computing.pptx
 
RISE OF THE MACHINES: IRM IN AN IOT WORLD
RISE OF THE MACHINES: IRM IN AN IOT WORLDRISE OF THE MACHINES: IRM IN AN IOT WORLD
RISE OF THE MACHINES: IRM IN AN IOT WORLD
 
Evolution of blockchain protocols & Towards Mass Adoption
Evolution of blockchain protocols & Towards Mass AdoptionEvolution of blockchain protocols & Towards Mass Adoption
Evolution of blockchain protocols & Towards Mass Adoption
 

More from Matteo Ferroni

Fight data gravity with event-driven architectures
Fight data gravity with event-driven architecturesFight data gravity with event-driven architectures
Fight data gravity with event-driven architectures
Matteo Ferroni
 
[EWiLi2016] Towards a performance-aware power capping orchestrator for the Xe...
[EWiLi2016] Towards a performance-aware power capping orchestrator for the Xe...[EWiLi2016] Towards a performance-aware power capping orchestrator for the Xe...
[EWiLi2016] Towards a performance-aware power capping orchestrator for the Xe...
Matteo Ferroni
 
[EUC2016] DockerCap: a software-level power capping orchestrator for Docker c...
[EUC2016] DockerCap: a software-level power capping orchestrator for Docker c...[EUC2016] DockerCap: a software-level power capping orchestrator for Docker c...
[EUC2016] DockerCap: a software-level power capping orchestrator for Docker c...
Matteo Ferroni
 
[EUC2016] FFWD: latency-aware event stream processing via domain-specific loa...
[EUC2016] FFWD: latency-aware event stream processing via domain-specific loa...[EUC2016] FFWD: latency-aware event stream processing via domain-specific loa...
[EUC2016] FFWD: latency-aware event stream processing via domain-specific loa...
Matteo Ferroni
 
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
Matteo Ferroni
 
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
Matteo Ferroni
 
[EUC2014] cODA: An Open-Source Framework to Easily Design Context-Aware Andro...
[EUC2014] cODA: An Open-Source Framework to Easily Design Context-Aware Andro...[EUC2014] cODA: An Open-Source Framework to Easily Design Context-Aware Andro...
[EUC2014] cODA: An Open-Source Framework to Easily Design Context-Aware Andro...
Matteo Ferroni
 

More from Matteo Ferroni (7)

Fight data gravity with event-driven architectures
Fight data gravity with event-driven architecturesFight data gravity with event-driven architectures
Fight data gravity with event-driven architectures
 
[EWiLi2016] Towards a performance-aware power capping orchestrator for the Xe...
[EWiLi2016] Towards a performance-aware power capping orchestrator for the Xe...[EWiLi2016] Towards a performance-aware power capping orchestrator for the Xe...
[EWiLi2016] Towards a performance-aware power capping orchestrator for the Xe...
 
[EUC2016] DockerCap: a software-level power capping orchestrator for Docker c...
[EUC2016] DockerCap: a software-level power capping orchestrator for Docker c...[EUC2016] DockerCap: a software-level power capping orchestrator for Docker c...
[EUC2016] DockerCap: a software-level power capping orchestrator for Docker c...
 
[EUC2016] FFWD: latency-aware event stream processing via domain-specific loa...
[EUC2016] FFWD: latency-aware event stream processing via domain-specific loa...[EUC2016] FFWD: latency-aware event stream processing via domain-specific loa...
[EUC2016] FFWD: latency-aware event stream processing via domain-specific loa...
 
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
 
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
 
[EUC2014] cODA: An Open-Source Framework to Easily Design Context-Aware Andro...
[EUC2014] cODA: An Open-Source Framework to Easily Design Context-Aware Andro...[EUC2014] cODA: An Open-Source Framework to Easily Design Context-Aware Andro...
[EUC2014] cODA: An Open-Source Framework to Easily Design Context-Aware Andro...
 

Recently uploaded

8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 

Recently uploaded (20)

8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 

[Droidcon Italy 2017] Client and server, 3 meters above the cloud

  • 1. Client and Server, 3 meters above the Cloud
  • 2. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Ma/eo Ferroni ๏ Me Passionate coder, so.ware architect, (Web) surfer and musician ๏ Educa)on Ph.D., Politecnico di Milano Visi;ng Researcher, University of California, Berkeley (UCB) ๏ Work CTO & Co-Founder, Bo9ega52 Srl Teaching, Politecnico di Milano & LIUC ๏ Web maDeo@boDega52.it @maHerroni
  • 3. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Today’s talk: Client and Server, 3 meters above the Cloud
  • 4. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud IoT, the Cloud and all the Fog in between
  • 5. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud BACK-END DEVELOPERS FRONT-END DEVELOPERS
  • 6. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Front-End vs. Back-End
  • 7. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud A real world deployment
  • 8. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Client-Server model Client Mobile Client Desktop Remote Server Request Response Request Response “The client-server model is a distributed applica)on structure that par;;ons tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients.” — "Distributed ApplicaMon Architecture", Sun Microsystem
  • 9. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Server-side developers “I tested the endpoints, they are working” "You're sending me the wrong input" "You have a bug in your frontend!" A normal day in the office Client-side developer "The server’s endpoints are not working" "The data you're sending back are wrong” "You have a bug in your backend!"
  • 10. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud The baPle is geQng worse: SOA — hPp://daas.co.id/index.php?page=detail-service&id=S001 “A Service Oriented Architecture (SOA) is a flexible set of design principles used in systems development and integra;on. SOA arose because [...] Clients using legacy architectures typically found their solu;on increasingly difficult to maintain as the number of systems increase above a cri;cal point.”
  • 11. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud And worse: Microservices architecture — Adrian CockcroZ, Cloud Architect at Ne[lix “A Microservices architecture as a service-oriented architecture composed of loosely coupled elements that have bounded contexts.” — MarMn Fowler, Chief ScienMst at ThoughtWorks “[…] a suite of small services, each running in its own process and communica;ng with lightweight mechanisms, o.en an HTTP resource API.”
  • 12. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Microservices: how they should look like
  • 13. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Microservices: how yours actually look — Brian Foote and Joseph Yoder, Big Ball of Mud. Fourth Conference on PaPerns Languages of Programs (PLoP '97/EuroPLoP '97) MonMcello, Illinois, September 1997 “A Big Ball of Mud is a haphazardly structured, sprawling, sloppy, duct-tape- and-baling-wire, spaghe^-code jungle. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair.”
  • 14. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Why should I bother? Server Architectures, SOA/ESB, Microservices, etc. The Cloud Clients “All that complexity stays on your side!” …What about the rise of Internet of Things and Fog Compu)ng?
  • 15. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Internet of Things and Fog CompuMng — Infographic by The ConnecMvist, based on Cisco data “The Internet of Things (IoT) comes a.er the Mobile App era, when a lot of businesses have been enabled by digital and Internet-based services through mobile devices. These two markets are now going to be merged in a unique vision and ecosystem".
  • 16. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Internet of Things and Fog CompuMng — “IoT, from Cloud to Fog CompuMng”, Cisco Systems Fog Compu)ng [...] extends Cloud compu;ng and services to the edge of the network. […] Fog provides data, compute, storage, and applica)on services to end-users. The dis;nguishing Fog characteris;cs are its proximity to end-users, its dense geographical distribu;on, and its support for mobility. Cloud Fog node Desktop Mobile Fog node Mobile Embedded device Embedded device Sensor Mobile Sensor Sensor Embedded device
  • 17. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud If you think this is not your business, think again: • What service are you talking with? • Is it a Web service, a Fog node or an IoT device? • Do you understand and support its language and data? • Are you reading the most recent version of data you're interested in? • Opportunis6c networks, anyone? Why should I bother?
  • 18. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS Access Control System ACS HTTPS Smart Lock AC power Remote control WiFi ConnecBon
  • 19. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS Access Control System ACS HTTPS Smart Lock AC power Remote control WiFi ConnecBon Open! request while(true) if(open) Open! else Sleep! Client-Server model BUSY-WAITING
  • 20. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS Access Control System ACS MQTT Smart Lock AC power Remote control WiFi ConnecBon Open! message Open! request — hPp://mqP.org/ MQTT is a machine-to- machine (M2M)/"Internet of Things" connecSvity protocol. It was designed as an extremely lightweight publish/ s u b s c r i b e m e s s a g i n g transport. Publish-Subscribe model
  • 21. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud HTTPS Request credenSals! When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control Ba;ery powered Bluetooth Connec6on Very low power Mobile app Check remote creden7als Login/Logout & basic features Internet Connec7on Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Access Control System ACS Password authen7ca7on (secret sent to mobile)
  • 22. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud HTTPS Receive credenSals! When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control Ba;ery powered Bluetooth Connec6on Very low power Mobile app Check remote creden7als Login/Logout & basic features Internet Connec7on Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Access Control System ACS Password authen7ca7on (secret sent to mobile)
  • 23. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud HTTPS Receive credenSals! When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control Ba;ery powered Bluetooth Connec6on Very low power Mobile app Check remote creden7als Login/Logout & basic features Internet Connec7on Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Access Control System ACS Open! with credenSals Password authen7ca7on (secret sent to mobile)
  • 24. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud HTTPS Receive credenSals! When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control Ba;ery powered Bluetooth Connec6on Very low power Mobile app Check remote creden7als Login/Logout & basic features Internet Connec7on Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Access Control System ACS Open! with credenSals TRUSTED? Password authen7ca7on (secret sent to mobile)
  • 25. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Challenge! request When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control Ba;ery powered Bluetooth Connec6on Very low power Mobile app Check remote creden7als Login/Logout & basic features Internet Connec7on Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL)HTTPS Access Control System ACS Challenge–response authen7ca7on (secret NOT sent to mobile)
  • 26. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Challenge! request When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control Ba;ery powered Bluetooth Connec6on Very low power Mobile app Check remote creden7als Login/Logout & basic features Internet Connec7on Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL)HTTPS Access Control System ACS Solve the challenge! request Challenge–response authen7ca7on (secret NOT sent to mobile)
  • 27. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control Ba;ery powered Bluetooth Connec6on Very low power Mobile app Check remote creden7als Login/Logout & basic features Internet Connec7on Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL)HTTPS Access Control System ACS Response soluSon! Challenge–response authen7ca7on (secret NOT sent to mobile)
  • 28. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Open! with solu;on When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control Ba;ery powered Bluetooth Connec6on Very low power Mobile app Check remote creden7als Login/Logout & basic features Internet Connec7on Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL)HTTPS Access Control System ACS Response soluSon! Challenge–response authen7ca7on (secret NOT sent to mobile)
  • 29. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL)HTTPS Access Control System ACS OFFLINEOpen! with OFFLINE credenSals cached/offline credenSals Cache-Aside pa>ern TRUSTED?
  • 30. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Access Control System ACS Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon HTTPS MQTT HTTPS MQTT Introducing Fog Compu7ng
  • 31. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon HTTPS MQTT HTTPS MQTT When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Access Control System ACS Introducing Fog Compu7ng Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power <virtualconnecSon>
  • 32. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud HTTPS MQTT HTTPS MQTT When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Access Control System ACS Introducing Fog Compu7ng Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon <virtual connecSon> <virtual connecSon> HTTPS
  • 33. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Access Control System ACS Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon HTTPS HTTPS MQTT HTTPS MQTT UNRELIABLE Cache-Aside pa>ern TRUSTED cached/offline credenSals
  • 34. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) Access Control System ACS Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon HTTPS HTTPS MQTT HTTPS MQTT OFFLINE
  • 35. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power HTTPS HTTPS MQTT Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon Opportunity to connect 1. cache new credenMals 2. remove expired ones 3. send access logs <virtual connecSon> Access Control System ACS Opportunis7c Networks “[…] a form of mobile ad hoc networks that exploit the human social characterisScs, such as similariSes, daily rouSnes, mobility pa9erns, and interests to perform the message rou)ng and data sharing.” — Nikolaos Vastardis and Kun Yang, "Mobile Social Networks: Architectures, Social ProperMes, and Key Research Challenges," IEEE CommunicaMons Surveys and Tutorials, vol. 15, no. 3, 2013, pp. 1355
  • 36. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power HTTPS HTTPS MQTT Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon <virtual connecSon> Opportunis7c Networks DELAYED Mobile app HTTPS Access Control System ACS <virtual connecSon>…when the connec7on is available a.k.a. “piggybacking” Opportunity to connect 1. cache new credenMals 2. remove expired ones 3. send access logs
  • 37. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS When IoT Comes Knocking at Your Door... or Locks it Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power HTTPS HTTPS MQTT Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon <virtual connecSon> Access Control System ACS Opportunis7c Networks “[…] a form of mobile ad hoc networks that exploit the human social characterisScs, such as similariSes, daily rouSnes, mobility pa9erns, and interests to perform the message rou)ng and data sharing.” — Nikolaos Vastardis and Kun Yang, "Mobile Social Networks: Architectures, Social ProperMes, and Key Research Challenges," IEEE CommunicaMons Surveys and Tutorials, vol. 15, no. 3, 2013, pp. 1355
  • 38. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS When IoT Comes Knocking at Your Door... or Locks it Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power HTTPS HTTPS MQTT Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon <virtual connecSon> Access Control System ACS Opportunis7c Networks “[…] a form of mobile ad hoc networks that exploit the human social characterisBcs, such as similariBes, daily rouBnes, mobility paIerns, and interests to perform the message rou)ng and data sharing.” — Nikolaos Vastardis and Kun Yang, "Mobile Social Networks: Architectures, Social ProperMes, and Key Research Challenges," IEEE CommunicaMons Surveys and Tutorials, vol. 15, no. 3, 2013, pp. 1355
  • 39. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS When IoT Comes Knocking at Your Door... or Locks it Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power HTTPS HTTPS MQTT Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon <virtual connecSon> Access Control System ACS Opportunis7c Networks “[…] a form of mobile ad hoc networks that exploit the human social characterisBcs, such as similariBes, daily rouBnes, mobility paIerns, and interests to perform the message rou)ng and data sharing.” — Nikolaos Vastardis and Kun Yang, "Mobile Social Networks: Architectures, Social ProperMes, and Key Research Challenges," IEEE CommunicaMons Surveys and Tutorials, vol. 15, no. 3, 2013, pp. 1355
  • 40. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader When IoT Comes Knocking at Your Door... or Locks it Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power HTTPS MQTT Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon Access Control System ACS HTTPS MQTT HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL) HTTPS Mobile app …when the connec7on is available Main Storage cached/offline credenSals HTTPS OUTDATED credenSals Cache coherency problem
  • 41. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud SMll a Client-Server model? Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader Just a simple Client-Server interac;on?
  • 42. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud You are a part of something bigger “No man is an island enBre of itself; every man is a piece of the conBnent, a part of the main.” — John Donne SOFTWARE DISTRIBUTED SYSTEM
  • 43. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud IntegraMon is everything Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power Mobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL)HTTPS Access Control System ACS Customer External System IntegraCon ERP, CMR, Legacy code Management soVware HTTPS Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon HTTPS HTTPS HTTPS MQTT HTTPS MQTT HTTPS MQTT OFFLINE UNRELIABLE
  • 44. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud IntegraMon is everything Let's assume we want to open a door with a Smartphone Smart Lock No cable Remote control BaIery powered Bluetooth ConnecBon Very low power HTTPS Front-end Grant & Revoke permissions Login/Logout & basic features Manage Users Access Control Lists (ACL)HTTPS Customer External System IntegraCon ERP, CMR, Legacy code Management soVware HTTPS Local Gateway AC power plug Bluetooth ConnecBon WiFi/LAN ConnecBon HTTPS HTTPS HTTPS MQTT HTTPS MQTT HTTPS MQTT OFFLINE UNRELIABLEMobile app Check remote credenBals Login/Logout & basic features Internet ConnecBon Fingerprint reader (Asynchronous) Idempotent Retry pa>ern Access Control System ACS
  • 45. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Introducing Sofia • Corpo livello uno • Corpo livello due • Corpo livello tre • Corpo livello quaDro • Corpo livello cinque Smartphone Based and Cloud Access Control Systems Industries • AccomodaSon • USliSes • Smart Working • LogisSc Partners
  • 46. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Some takeaways: • Apply Design PaSerns and avoid An)-PaSerns • So.ware should be cynical (a.k.a., bad things will happen) • Be conserva)ve in what you send, be liberal in what you accept (“Robustness principle") • Every integra)on point will eventually fail in some way • It’s not just you and your code, you are part of something bigger Why should I bother?
  • 47. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud You are building something bigger “No man is an island enBre of itself; every man is a piece of the conBnent, a part of the main.” — John Donne SOFTWARE DISTRIBUTED SYSTEM DEVELOPER TEAM
  • 48. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Server-side developers “I tested the endpoints, they are working” "You're sending me the wrong input" "You have a bug in your frontend!" Please, stop fighMng Client-side developer "The server’s endpoints are not working" "The data you're sending back are wrong” "You have a bug in your backend!"
  • 49. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Please, stop fighMng THERE’S ONE JUST ENEMY
  • 51. @ma$erroni | www.bo/ega52.itClient and Server, 3 meters above the Cloud Thank you Client and Server, 3 meters above the Cloud