SlideShare a Scribd company logo
Serving the Internet of
Things (IoT) with Drupal
Kalle Varisvirta
Technology Director
Exove
In this session
What’s Internet of Things? (briefly)
What does my fridge need Drupal for?
How is it actually done?
Content as a service
What’s the
Internet
of Things?
Internet of Things
Internet of things usually refers just to all things gaining
internet access, from smartwatches to toasters
In this presentation, the definition of the Internet of
Things is based on everyday things gaining internet
connections
home automation, energy equipment, wearables etc.
What does
my fridge need
Drupal for?
What does Drupal offer?
Drupal offers a platform for content
Drupal offers a platform for easily controllable data
structures and data in it
Drupal offers fine-grained user access control
Drupal offers an online store
Drupal offers user-generated content and the storage
for it
Drupal as a back-end
Until Drupal 8, all Drupals returned HTML when getting
GET or POST requests
Drupal 8 changes this in the core, but earlier Drupals
could be made to do the same
When removing the front-end from Drupal, it becomes a
content and service platform that can do more than just
web pages
Drupal as a back-end
Decoupling the HTML layer from the content was
originally aimed for flexibility for the front-end, essentially
headless Drupal
It also makes Drupal fully capable of connecting to any
display system, whether HTML-based or native
Examples
Example: A health
monitoring service
All textual content across
devices, with language
versions, can be easily
stored to Drupal
Changes to content as
well as news and
notifications can be
delivered straight to
people’s wrists from
Example: Self-service

gym
A mobile site, where
people could extend
their membership
Drupal can bill monthly,
or support pay-per-use
Smart lock would open
door for to a certain
Drupal user role
Example: Online store
for connected fridges
An app in a connected
fridge
A back-end as a Drupal
online store for groceries
Connected to a card
payment system, ERP for
product and balances and
logistics for orders
Real world?
We’ve done mutiple implementations with different IoT
devices
Most of them use Drupal for some resources
How is it
actually done?
Serving machines
Easiest approach is to create a REST API
Drupal 7 has modules for serving (or helping to serve)
all data out via a REST API
Services, RestWS, RESTful and JS module or
Endpoint for those looking for something more exotic
Drupal 8 ships with a REST module in core
Serving machines
Any service directed to behead a Drupal might not be
suitable as is for serving any machine out there
For example Drupal 8’s REST API is very Drupal-specific
out-of-the-box
You should separate your Drupal’s internal data
structure from the data you’re serving out
Not to make a point by separation, but to allow
versioning and smooth control of the API evolution
Serving machines
A proper REST API needs to follow the rules (stateless,
cacheable, layered, uniform)
It also needs to be well-documented for integrations
Security, both by access and transit, need to be
considered
Also, take into account possibly needed changes by
versioning your REST feed
Serving machines
An Open API with proper documentation is a good way
to open up your resources for all the networked things
out there, but it’s not at all always enough
Many times you’ll have to integrate to a machine - even
if you might feel the architecture would be better served
if done the other way
Connecting to machines
Integrating to machines is different than integrating to
other services running on servers in server halls
It’s combining appalling reliability with poor to useless
network performance
And you’ll be connecting to 1 or 10 000 units
Connecting to machines
For connecting to machines, you’ll always have
implement a proper connection architecture
Simplest architectures would use queuing to prevent
failed connections from losing data
More elegant approach would be some kind of
messaging system, observer or publish/subscribe
design patterns
Content
as a
service
Let’s take a plunge
with Drupal
architectures
There was a
time when
just a Drupal
website was
enough.
There are still
times like
that.
But then we
needed a
couple of
integrations.
And then a
mobile app,
which we
would serve
with ready-
made HTML
or a JSON
view.
But then we
wanted a
Javascript
front-end
and opted to
go with a
headless
Drupal.
And suddenly,
we could just
open our REST
interface to the
world and let
everything on
the internet
integrate.
And if Drupal
couldn’t perform
to take care of
all the traffic,
we’d move it as
the enterprise
content
management
storage and
delivery system.
Content
as a
service
Building an external API
Sometimes the only solution is to not use Drupal for the
API, but serve the content to a separate system building
the API
I’ve talked about this in my “Accelerating headless
Drupal with Node.JS” presentation
Building an external API
In this approach you’ll index all your content outside
Drupal every time it’s edited
To a MongoDB, SOLR, Elasticsearch, Redis or
whatever serves your purpose
Writes pass through to Drupal or are queued in the
external API layer and then executed to Drupal
External API layer is built performance-oriented, with
e.g. Node.JS or Go
Building an external API
Serving just content might not be enough, you might
also need to front some Drupal services, like
authentication or authorization
All services that can be, should be cached on the
external API layer
Building an external API
Enables you to have full control over the API
Enables you to aggregate and mix data from multiple
sources, like adding pricing information to Drupal’s
products from ERP - this is one of the principes of REST
And you’ll get blazing performance, if you do it right
Taking Drupal to
enterprise
When trying to get Drupal to that “enterprise
background system” -level, you’ll might find resistance
Enterprise architects would like to keep to world
Microsoft-only or traditional enterprise software-only and
let Drupal stay outside, handling only the sites
Recap
Internet of things
Is a buzzword and means a lot of things, but usually just
devices not originally designed to be connected, but
that are getting connected these days
Can use Drupal for content or for a variety of services,
like authentication and authorization
How to do it?
Creating a REST API is the most straightforward of
solutions
Drupal 7 has a couple of really good REST API
modules, but Drupal 8 has REST in core
API should be versioned or backwards compatible
Sometimes a REST API isn’t enough, but you need to
adapt to the client’s (bad) way of connecting
And then…?
Move your API outside of Drupal for performance, better
control or aggregation of services
Index Drupal’s content outside to MongoDB and front
the services with a Node.JS layer
Thank you!
Questions?
Thank you!

More Related Content

What's hot

Usable REST APIs. Jrubyconf Edition. Javier Ramirez @ teowaki
Usable REST APIs. Jrubyconf Edition. Javier Ramirez @ teowakiUsable REST APIs. Jrubyconf Edition. Javier Ramirez @ teowaki
Usable REST APIs. Jrubyconf Edition. Javier Ramirez @ teowaki
javier ramirez
 
Digital Business: Communication and Collaboration Introduction
Digital Business: Communication and Collaboration IntroductionDigital Business: Communication and Collaboration Introduction
Digital Business: Communication and Collaboration Introduction
Digital Business
 
Microsoft Flow session : tips, pitfalls, warnings to be known before starting...
Microsoft Flow session : tips, pitfalls, warnings to be known before starting...Microsoft Flow session : tips, pitfalls, warnings to be known before starting...
Microsoft Flow session : tips, pitfalls, warnings to be known before starting...
serge luca
 
Building a Scalable Application on Cloud
Building a Scalable Application on CloudBuilding a Scalable Application on Cloud
Building a Scalable Application on Cloud
Edureka!
 
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
Kai Wähner
 
Immersion Day - Como a AWS apoia a estratégia analítica de sua empresa
Immersion Day - Como a AWS apoia a estratégia analítica de sua empresaImmersion Day - Como a AWS apoia a estratégia analítica de sua empresa
Immersion Day - Como a AWS apoia a estratégia analítica de sua empresa
Amazon Web Services LATAM
 
IntelliMedia Netwoks Services
IntelliMedia Netwoks ServicesIntelliMedia Netwoks Services
IntelliMedia Netwoks ServicesRaj Shah
 
Varnishtest
VarnishtestVarnishtest
Varnishtest
Varnish Software
 
Google cloud platform
Google cloud platform   Google cloud platform
Google cloud platform
ARWA ALSAIF
 
Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013
Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013
Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013Kai Wähner
 
How Telstra Went Cloud First, and How You Should Too - Session Sponsored by T...
How Telstra Went Cloud First, and How You Should Too - Session Sponsored by T...How Telstra Went Cloud First, and How You Should Too - Session Sponsored by T...
How Telstra Went Cloud First, and How You Should Too - Session Sponsored by T...
Amazon Web Services
 
PaaS Emerging Technologies - October 2015
PaaS Emerging Technologies - October 2015PaaS Emerging Technologies - October 2015
PaaS Emerging Technologies - October 2015
Krishna-Kumar
 
Cloud computing in libraries, a case study
Cloud computing in libraries, a case studyCloud computing in libraries, a case study
Cloud computing in libraries, a case study
Erik Mitchell
 
Use the PnP SharePoint Starter Kit to create your intranet in a box
Use the PnP SharePoint Starter Kit to create your intranet in a boxUse the PnP SharePoint Starter Kit to create your intranet in a box
Use the PnP SharePoint Starter Kit to create your intranet in a box
Fabio Franzini
 
Azure fundamentals
Azure fundamentalsAzure fundamentals
Azure fundamentals
Alexandre BERGERE
 
Microsoft Azure - Office 365 Overwrite
Microsoft Azure - Office 365 OverwriteMicrosoft Azure - Office 365 Overwrite
Microsoft Azure - Office 365 Overwrite
Mücahid Akçay
 
When Your CISO Says No - Security & Compliance in Office 365
When Your CISO Says No - Security & Compliance in Office 365When Your CISO Says No - Security & Compliance in Office 365
When Your CISO Says No - Security & Compliance in Office 365
Ricardo Wilkins
 
Extend your Datacentre with the AWS Cloud
Extend your Datacentre with the AWS Cloud Extend your Datacentre with the AWS Cloud
Extend your Datacentre with the AWS Cloud
Amazon Web Services
 
Taming the ever-evolving Compliance Beast : Lessons learnt at LinkedIn [Strat...
Taming the ever-evolving Compliance Beast : Lessons learnt at LinkedIn [Strat...Taming the ever-evolving Compliance Beast : Lessons learnt at LinkedIn [Strat...
Taming the ever-evolving Compliance Beast : Lessons learnt at LinkedIn [Strat...
Shirshanka Das
 
SemTech 2010: Pelorus Platform
SemTech 2010: Pelorus PlatformSemTech 2010: Pelorus Platform
SemTech 2010: Pelorus Platform
Clark & Parsia LLC
 

What's hot (20)

Usable REST APIs. Jrubyconf Edition. Javier Ramirez @ teowaki
Usable REST APIs. Jrubyconf Edition. Javier Ramirez @ teowakiUsable REST APIs. Jrubyconf Edition. Javier Ramirez @ teowaki
Usable REST APIs. Jrubyconf Edition. Javier Ramirez @ teowaki
 
Digital Business: Communication and Collaboration Introduction
Digital Business: Communication and Collaboration IntroductionDigital Business: Communication and Collaboration Introduction
Digital Business: Communication and Collaboration Introduction
 
Microsoft Flow session : tips, pitfalls, warnings to be known before starting...
Microsoft Flow session : tips, pitfalls, warnings to be known before starting...Microsoft Flow session : tips, pitfalls, warnings to be known before starting...
Microsoft Flow session : tips, pitfalls, warnings to be known before starting...
 
Building a Scalable Application on Cloud
Building a Scalable Application on CloudBuilding a Scalable Application on Cloud
Building a Scalable Application on Cloud
 
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
 
Immersion Day - Como a AWS apoia a estratégia analítica de sua empresa
Immersion Day - Como a AWS apoia a estratégia analítica de sua empresaImmersion Day - Como a AWS apoia a estratégia analítica de sua empresa
Immersion Day - Como a AWS apoia a estratégia analítica de sua empresa
 
IntelliMedia Netwoks Services
IntelliMedia Netwoks ServicesIntelliMedia Netwoks Services
IntelliMedia Netwoks Services
 
Varnishtest
VarnishtestVarnishtest
Varnishtest
 
Google cloud platform
Google cloud platform   Google cloud platform
Google cloud platform
 
Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013
Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013
Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013
 
How Telstra Went Cloud First, and How You Should Too - Session Sponsored by T...
How Telstra Went Cloud First, and How You Should Too - Session Sponsored by T...How Telstra Went Cloud First, and How You Should Too - Session Sponsored by T...
How Telstra Went Cloud First, and How You Should Too - Session Sponsored by T...
 
PaaS Emerging Technologies - October 2015
PaaS Emerging Technologies - October 2015PaaS Emerging Technologies - October 2015
PaaS Emerging Technologies - October 2015
 
Cloud computing in libraries, a case study
Cloud computing in libraries, a case studyCloud computing in libraries, a case study
Cloud computing in libraries, a case study
 
Use the PnP SharePoint Starter Kit to create your intranet in a box
Use the PnP SharePoint Starter Kit to create your intranet in a boxUse the PnP SharePoint Starter Kit to create your intranet in a box
Use the PnP SharePoint Starter Kit to create your intranet in a box
 
Azure fundamentals
Azure fundamentalsAzure fundamentals
Azure fundamentals
 
Microsoft Azure - Office 365 Overwrite
Microsoft Azure - Office 365 OverwriteMicrosoft Azure - Office 365 Overwrite
Microsoft Azure - Office 365 Overwrite
 
When Your CISO Says No - Security & Compliance in Office 365
When Your CISO Says No - Security & Compliance in Office 365When Your CISO Says No - Security & Compliance in Office 365
When Your CISO Says No - Security & Compliance in Office 365
 
Extend your Datacentre with the AWS Cloud
Extend your Datacentre with the AWS Cloud Extend your Datacentre with the AWS Cloud
Extend your Datacentre with the AWS Cloud
 
Taming the ever-evolving Compliance Beast : Lessons learnt at LinkedIn [Strat...
Taming the ever-evolving Compliance Beast : Lessons learnt at LinkedIn [Strat...Taming the ever-evolving Compliance Beast : Lessons learnt at LinkedIn [Strat...
Taming the ever-evolving Compliance Beast : Lessons learnt at LinkedIn [Strat...
 
SemTech 2010: Pelorus Platform
SemTech 2010: Pelorus PlatformSemTech 2010: Pelorus Platform
SemTech 2010: Pelorus Platform
 

Similar to Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015

Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015:
Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015: Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015:
Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015:
Exove
 
RESTful application with Drupal 8
RESTful application with Drupal 8RESTful application with Drupal 8
RESTful application with Drupal 8
Patrick Morin
 
Transform your Intranet with Drupal and Alfresco - by Optaros
Transform your Intranet with Drupal and Alfresco - by OptarosTransform your Intranet with Drupal and Alfresco - by Optaros
Transform your Intranet with Drupal and Alfresco - by Optaros
Alfresco Software
 
The Power of Drupal and Alfresco Together
The Power of Drupal and Alfresco TogetherThe Power of Drupal and Alfresco Together
The Power of Drupal and Alfresco Together
Jeff Potts
 
Building applications-with-drupal
Building applications-with-drupalBuilding applications-with-drupal
Building applications-with-drupal
Phase2
 
REST full API Design
REST full API DesignREST full API Design
REST full API Design
Christian Guenther
 
Empowering Non Profits with Drupal CMS
Empowering Non Profits with Drupal CMSEmpowering Non Profits with Drupal CMS
Empowering Non Profits with Drupal CMS
Piyush Poddar
 
In the Pursuit of Headless with Contenta
In the Pursuit of Headless with ContentaIn the Pursuit of Headless with Contenta
In the Pursuit of Headless with Contenta
OpenSense Labs
 
Joomla in a world of ubiquitous computing
Joomla in a world of ubiquitous computingJoomla in a world of ubiquitous computing
Joomla in a world of ubiquitous computing
Chris Davenport
 
RESTful Web services in Drupal 8
RESTful Web services in Drupal 8RESTful Web services in Drupal 8
RESTful Web services in Drupal 8
valuebound
 
Aws vs azure bakeoff
Aws vs azure bakeoffAws vs azure bakeoff
Aws vs azure bakeoff
SoHo Dragon
 
Applied progressive decoupling weather.com, angular, and drupal
Applied progressive decoupling  weather.com, angular, and drupalApplied progressive decoupling  weather.com, angular, and drupal
Applied progressive decoupling weather.com, angular, and drupal
Acquia
 
Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)
Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)
Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)
Rittman Analytics
 
Cakefest higher education
Cakefest higher educationCakefest higher education
Cakefest higher educationtherealphpdiddy
 
The 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for JavaThe 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for Java
David Chandler
 
PHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudPHP and Platform Independance in the Cloud
PHP and Platform Independance in the Cloud
ZendCon
 
Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8
Robert Carr
 
Drupalcon Mumbai
Drupalcon MumbaiDrupalcon Mumbai
Drupalcon Mumbai
Sumit Kataria
 
Future Trends of Drupal Development for 2024.pdf
Future Trends of Drupal Development for 2024.pdfFuture Trends of Drupal Development for 2024.pdf
Future Trends of Drupal Development for 2024.pdf
JPLoft Solutions
 
Gluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container InfrastructureGluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container Infrastructure
rhirschfeld
 

Similar to Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015 (20)

Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015:
Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015: Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015:
Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015:
 
RESTful application with Drupal 8
RESTful application with Drupal 8RESTful application with Drupal 8
RESTful application with Drupal 8
 
Transform your Intranet with Drupal and Alfresco - by Optaros
Transform your Intranet with Drupal and Alfresco - by OptarosTransform your Intranet with Drupal and Alfresco - by Optaros
Transform your Intranet with Drupal and Alfresco - by Optaros
 
The Power of Drupal and Alfresco Together
The Power of Drupal and Alfresco TogetherThe Power of Drupal and Alfresco Together
The Power of Drupal and Alfresco Together
 
Building applications-with-drupal
Building applications-with-drupalBuilding applications-with-drupal
Building applications-with-drupal
 
REST full API Design
REST full API DesignREST full API Design
REST full API Design
 
Empowering Non Profits with Drupal CMS
Empowering Non Profits with Drupal CMSEmpowering Non Profits with Drupal CMS
Empowering Non Profits with Drupal CMS
 
In the Pursuit of Headless with Contenta
In the Pursuit of Headless with ContentaIn the Pursuit of Headless with Contenta
In the Pursuit of Headless with Contenta
 
Joomla in a world of ubiquitous computing
Joomla in a world of ubiquitous computingJoomla in a world of ubiquitous computing
Joomla in a world of ubiquitous computing
 
RESTful Web services in Drupal 8
RESTful Web services in Drupal 8RESTful Web services in Drupal 8
RESTful Web services in Drupal 8
 
Aws vs azure bakeoff
Aws vs azure bakeoffAws vs azure bakeoff
Aws vs azure bakeoff
 
Applied progressive decoupling weather.com, angular, and drupal
Applied progressive decoupling  weather.com, angular, and drupalApplied progressive decoupling  weather.com, angular, and drupal
Applied progressive decoupling weather.com, angular, and drupal
 
Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)
Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)
Data Integration for Big Data (OOW 2016, Co-Presented With Oracle)
 
Cakefest higher education
Cakefest higher educationCakefest higher education
Cakefest higher education
 
The 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for JavaThe 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for Java
 
PHP and Platform Independance in the Cloud
PHP and Platform Independance in the CloudPHP and Platform Independance in the Cloud
PHP and Platform Independance in the Cloud
 
Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8
 
Drupalcon Mumbai
Drupalcon MumbaiDrupalcon Mumbai
Drupalcon Mumbai
 
Future Trends of Drupal Development for 2024.pdf
Future Trends of Drupal Development for 2024.pdfFuture Trends of Drupal Development for 2024.pdf
Future Trends of Drupal Development for 2024.pdf
 
Gluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container InfrastructureGluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container Infrastructure
 

More from Exove

Data security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problemsData security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problems
Exove
 
Provisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – ExoveProvisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – Exove
Exove
 
Advanced custom fields in Wordpress
Advanced custom fields in WordpressAdvanced custom fields in Wordpress
Advanced custom fields in Wordpress
Exove
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – Exove
Exove
 
Jenkins and visual regression – Exove
Jenkins and visual regression – ExoveJenkins and visual regression – Exove
Jenkins and visual regression – Exove
Exove
 
Server-side React with Headless CMS – Exove
Server-side React with Headless CMS – ExoveServer-side React with Headless CMS – Exove
Server-side React with Headless CMS – Exove
Exove
 
WebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – ExoveWebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – Exove
Exove
 
Diversity in recruitment
Diversity in recruitmentDiversity in recruitment
Diversity in recruitment
Exove
 
Saavutettavuus liiketoimintana
Saavutettavuus liiketoimintanaSaavutettavuus liiketoimintana
Saavutettavuus liiketoimintana
Exove
 
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistustaSaavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Exove
 
Mitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisälläänMitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisällään
Exove
 
Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8
Exove
 
GDPR for developers
GDPR for developersGDPR for developers
GDPR for developers
Exove
 
Managing Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with DrupalManaging Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with Drupal
Exove
 
Life with digital services after GDPR
Life with digital services after GDPRLife with digital services after GDPR
Life with digital services after GDPR
Exove
 
GDPR - no beginning no end
GDPR - no beginning no endGDPR - no beginning no end
GDPR - no beginning no end
Exove
 
Developing truly personalised experiences
Developing truly personalised experiencesDeveloping truly personalised experiences
Developing truly personalised experiences
Exove
 
Customer Experience and Personalisation
Customer Experience and PersonalisationCustomer Experience and Personalisation
Customer Experience and Personalisation
Exove
 
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Exove
 
Dataohjattu asiakaskokemus
Dataohjattu asiakaskokemusDataohjattu asiakaskokemus
Dataohjattu asiakaskokemus
Exove
 

More from Exove (20)

Data security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problemsData security in the age of GDPR – most common data security problems
Data security in the age of GDPR – most common data security problems
 
Provisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – ExoveProvisioning infrastructure to AWS using Terraform – Exove
Provisioning infrastructure to AWS using Terraform – Exove
 
Advanced custom fields in Wordpress
Advanced custom fields in WordpressAdvanced custom fields in Wordpress
Advanced custom fields in Wordpress
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – Exove
 
Jenkins and visual regression – Exove
Jenkins and visual regression – ExoveJenkins and visual regression – Exove
Jenkins and visual regression – Exove
 
Server-side React with Headless CMS – Exove
Server-side React with Headless CMS – ExoveServer-side React with Headless CMS – Exove
Server-side React with Headless CMS – Exove
 
WebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – ExoveWebSockets in Bravo Dashboard – Exove
WebSockets in Bravo Dashboard – Exove
 
Diversity in recruitment
Diversity in recruitmentDiversity in recruitment
Diversity in recruitment
 
Saavutettavuus liiketoimintana
Saavutettavuus liiketoimintanaSaavutettavuus liiketoimintana
Saavutettavuus liiketoimintana
 
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistustaSaavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
 
Mitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisälläänMitä saavutettavuusdirektiivi pitää sisällään
Mitä saavutettavuusdirektiivi pitää sisällään
 
Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8Creating Landing Pages for Drupal 8
Creating Landing Pages for Drupal 8
 
GDPR for developers
GDPR for developersGDPR for developers
GDPR for developers
 
Managing Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with DrupalManaging Complexity and Privacy Debt with Drupal
Managing Complexity and Privacy Debt with Drupal
 
Life with digital services after GDPR
Life with digital services after GDPRLife with digital services after GDPR
Life with digital services after GDPR
 
GDPR - no beginning no end
GDPR - no beginning no endGDPR - no beginning no end
GDPR - no beginning no end
 
Developing truly personalised experiences
Developing truly personalised experiencesDeveloping truly personalised experiences
Developing truly personalised experiences
 
Customer Experience and Personalisation
Customer Experience and PersonalisationCustomer Experience and Personalisation
Customer Experience and Personalisation
 
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
 
Dataohjattu asiakaskokemus
Dataohjattu asiakaskokemusDataohjattu asiakaskokemus
Dataohjattu asiakaskokemus
 

Recently uploaded

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015

  • 1. Serving the Internet of Things (IoT) with Drupal Kalle Varisvirta Technology Director Exove
  • 2. In this session What’s Internet of Things? (briefly) What does my fridge need Drupal for? How is it actually done? Content as a service
  • 4. Internet of Things Internet of things usually refers just to all things gaining internet access, from smartwatches to toasters In this presentation, the definition of the Internet of Things is based on everyday things gaining internet connections home automation, energy equipment, wearables etc.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. What does my fridge need Drupal for?
  • 10. What does Drupal offer? Drupal offers a platform for content Drupal offers a platform for easily controllable data structures and data in it Drupal offers fine-grained user access control Drupal offers an online store Drupal offers user-generated content and the storage for it
  • 11. Drupal as a back-end Until Drupal 8, all Drupals returned HTML when getting GET or POST requests Drupal 8 changes this in the core, but earlier Drupals could be made to do the same When removing the front-end from Drupal, it becomes a content and service platform that can do more than just web pages
  • 12. Drupal as a back-end Decoupling the HTML layer from the content was originally aimed for flexibility for the front-end, essentially headless Drupal It also makes Drupal fully capable of connecting to any display system, whether HTML-based or native
  • 14. Example: A health monitoring service All textual content across devices, with language versions, can be easily stored to Drupal Changes to content as well as news and notifications can be delivered straight to people’s wrists from
  • 15. Example: Self-service
 gym A mobile site, where people could extend their membership Drupal can bill monthly, or support pay-per-use Smart lock would open door for to a certain Drupal user role
  • 16. Example: Online store for connected fridges An app in a connected fridge A back-end as a Drupal online store for groceries Connected to a card payment system, ERP for product and balances and logistics for orders
  • 17. Real world? We’ve done mutiple implementations with different IoT devices Most of them use Drupal for some resources
  • 19. Serving machines Easiest approach is to create a REST API Drupal 7 has modules for serving (or helping to serve) all data out via a REST API Services, RestWS, RESTful and JS module or Endpoint for those looking for something more exotic Drupal 8 ships with a REST module in core
  • 20. Serving machines Any service directed to behead a Drupal might not be suitable as is for serving any machine out there For example Drupal 8’s REST API is very Drupal-specific out-of-the-box You should separate your Drupal’s internal data structure from the data you’re serving out Not to make a point by separation, but to allow versioning and smooth control of the API evolution
  • 21. Serving machines A proper REST API needs to follow the rules (stateless, cacheable, layered, uniform) It also needs to be well-documented for integrations Security, both by access and transit, need to be considered Also, take into account possibly needed changes by versioning your REST feed
  • 22. Serving machines An Open API with proper documentation is a good way to open up your resources for all the networked things out there, but it’s not at all always enough Many times you’ll have to integrate to a machine - even if you might feel the architecture would be better served if done the other way
  • 23. Connecting to machines Integrating to machines is different than integrating to other services running on servers in server halls It’s combining appalling reliability with poor to useless network performance And you’ll be connecting to 1 or 10 000 units
  • 24. Connecting to machines For connecting to machines, you’ll always have implement a proper connection architecture Simplest architectures would use queuing to prevent failed connections from losing data More elegant approach would be some kind of messaging system, observer or publish/subscribe design patterns
  • 26. Let’s take a plunge with Drupal architectures
  • 27. There was a time when just a Drupal website was enough. There are still times like that.
  • 28. But then we needed a couple of integrations.
  • 29. And then a mobile app, which we would serve with ready- made HTML or a JSON view.
  • 30. But then we wanted a Javascript front-end and opted to go with a headless Drupal.
  • 31. And suddenly, we could just open our REST interface to the world and let everything on the internet integrate.
  • 32. And if Drupal couldn’t perform to take care of all the traffic, we’d move it as the enterprise content management storage and delivery system.
  • 34. Building an external API Sometimes the only solution is to not use Drupal for the API, but serve the content to a separate system building the API I’ve talked about this in my “Accelerating headless Drupal with Node.JS” presentation
  • 35. Building an external API In this approach you’ll index all your content outside Drupal every time it’s edited To a MongoDB, SOLR, Elasticsearch, Redis or whatever serves your purpose Writes pass through to Drupal or are queued in the external API layer and then executed to Drupal External API layer is built performance-oriented, with e.g. Node.JS or Go
  • 36. Building an external API Serving just content might not be enough, you might also need to front some Drupal services, like authentication or authorization All services that can be, should be cached on the external API layer
  • 37. Building an external API Enables you to have full control over the API Enables you to aggregate and mix data from multiple sources, like adding pricing information to Drupal’s products from ERP - this is one of the principes of REST And you’ll get blazing performance, if you do it right
  • 38.
  • 39. Taking Drupal to enterprise When trying to get Drupal to that “enterprise background system” -level, you’ll might find resistance Enterprise architects would like to keep to world Microsoft-only or traditional enterprise software-only and let Drupal stay outside, handling only the sites
  • 40. Recap
  • 41. Internet of things Is a buzzword and means a lot of things, but usually just devices not originally designed to be connected, but that are getting connected these days Can use Drupal for content or for a variety of services, like authentication and authorization
  • 42. How to do it? Creating a REST API is the most straightforward of solutions Drupal 7 has a couple of really good REST API modules, but Drupal 8 has REST in core API should be versioned or backwards compatible Sometimes a REST API isn’t enough, but you need to adapt to the client’s (bad) way of connecting
  • 43. And then…? Move your API outside of Drupal for performance, better control or aggregation of services Index Drupal’s content outside to MongoDB and front the services with a Node.JS layer