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.
Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015
Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015
Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015
Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015
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
Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015
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 (19)

PDF
Usable REST APIs. Jrubyconf Edition. Javier Ramirez @ teowaki
javier ramirez
 
PPT
Digital Business: Communication and Collaboration Introduction
Digital Business
 
PPTX
Microsoft Flow session : tips, pitfalls, warnings to be known before starting...
serge luca
 
PDF
Building a Scalable Application on Cloud
Edureka!
 
PDF
How to choose the right Integration Framework - Apache Camel (JBoss, Talend),...
Kai Wähner
 
PDF
Immersion Day - Como a AWS apoia a estratégia analítica de sua empresa
Amazon Web Services LATAM
 
PPTX
IntelliMedia Netwoks Services
Raj Shah
 
PDF
Varnishtest
Varnish Software
 
PPTX
Google cloud platform
ARWA ALSAIF
 
PDF
Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013
Kai Wähner
 
PDF
PaaS Emerging Technologies - October 2015
Krishna-Kumar
 
PPT
Cloud computing in libraries, a case study
Erik Mitchell
 
PDF
Use the PnP SharePoint Starter Kit to create your intranet in a box
Fabio Franzini
 
PDF
Azure fundamentals
Alexandre BERGERE
 
PPTX
Microsoft Azure - Office 365 Overwrite
Mücahid Akçay
 
PPTX
When Your CISO Says No - Security & Compliance in Office 365
Ricardo Wilkins
 
PDF
Taming the ever-evolving Compliance Beast : Lessons learnt at LinkedIn [Strat...
Shirshanka Das
 
PDF
SemTech 2010: Pelorus Platform
Clark & Parsia LLC
 
PDF
Redington Value Journal - July 2017
Redington Value Distribution
 
Usable REST APIs. Jrubyconf Edition. Javier Ramirez @ teowaki
javier ramirez
 
Digital Business: Communication and Collaboration Introduction
Digital Business
 
Microsoft Flow session : tips, pitfalls, warnings to be known before starting...
serge luca
 
Building a Scalable Application on Cloud
Edureka!
 
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
Amazon Web Services LATAM
 
IntelliMedia Netwoks Services
Raj Shah
 
Varnishtest
Varnish Software
 
Google cloud platform
ARWA ALSAIF
 
Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013
Kai Wähner
 
PaaS Emerging Technologies - October 2015
Krishna-Kumar
 
Cloud computing in libraries, a case study
Erik Mitchell
 
Use the PnP SharePoint Starter Kit to create your intranet in a box
Fabio Franzini
 
Azure fundamentals
Alexandre BERGERE
 
Microsoft Azure - Office 365 Overwrite
Mücahid Akçay
 
When Your CISO Says No - Security & Compliance in Office 365
Ricardo Wilkins
 
Taming the ever-evolving Compliance Beast : Lessons learnt at LinkedIn [Strat...
Shirshanka Das
 
SemTech 2010: Pelorus Platform
Clark & Parsia LLC
 
Redington Value Journal - July 2017
Redington Value Distribution
 

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

PDF
Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015:
Exove
 
PPTX
RESTful application with Drupal 8
Patrick Morin
 
PDF
Beyond websites using drupal for digital signs
Acquia
 
PDF
With Drupal Your Website is an API
Charlie Morris
 
PDF
RESTful with Drupal - in-s and out-s
Kalin Chernev
 
PDF
[Srijan Wednesday Webinar] Decoupled Demystified: The Present & Future of Dr...
Srijan Technologies
 
PPTX
Decoupling Drupal 8.x: Drupal’s Web Services Today and Tomorrow
Acquia
 
PDF
How to Successfully Implement Headless Drupal
Acquia
 
PPT
Drupal As A RESTful Backend For Client Side Applications
Myplanet Digital
 
PPTX
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
DrupalCamp Kyiv
 
PDF
Introduction to drupal
Pedro Cambra
 
PDF
How we leveraged Drupal to build a leading SaaS product
Invotra
 
PPTX
Built for Integration: Why Drupal 8 Should Be the Glue to Your Stack
Acquia
 
PPTX
Drupal 8 Deep Dive: What It Means for Developers Now that REST Is in Core
Acquia
 
PDF
Services in Drupal 8
Andrei Jechiu
 
PPTX
Drupal Introduction - Why enterprises should use it
Manish Garg
 
PPTX
Why Enterprises Choose Drupal for Futuristic Web App Development?
Helios Solutions
 
PDF
Drupal 8 as a mobile backend
Alkuvoima
 
PPTX
Drupal 7 Web Services Crash Course
Noah Lively
 
PDF
Drupal South 2015: Introduction to Web Services. Services in Drupal 8.
TechnocratAu
 
Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015:
Exove
 
RESTful application with Drupal 8
Patrick Morin
 
Beyond websites using drupal for digital signs
Acquia
 
With Drupal Your Website is an API
Charlie Morris
 
RESTful with Drupal - in-s and out-s
Kalin Chernev
 
[Srijan Wednesday Webinar] Decoupled Demystified: The Present & Future of Dr...
Srijan Technologies
 
Decoupling Drupal 8.x: Drupal’s Web Services Today and Tomorrow
Acquia
 
How to Successfully Implement Headless Drupal
Acquia
 
Drupal As A RESTful Backend For Client Side Applications
Myplanet Digital
 
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
DrupalCamp Kyiv
 
Introduction to drupal
Pedro Cambra
 
How we leveraged Drupal to build a leading SaaS product
Invotra
 
Built for Integration: Why Drupal 8 Should Be the Glue to Your Stack
Acquia
 
Drupal 8 Deep Dive: What It Means for Developers Now that REST Is in Core
Acquia
 
Services in Drupal 8
Andrei Jechiu
 
Drupal Introduction - Why enterprises should use it
Manish Garg
 
Why Enterprises Choose Drupal for Futuristic Web App Development?
Helios Solutions
 
Drupal 8 as a mobile backend
Alkuvoima
 
Drupal 7 Web Services Crash Course
Noah Lively
 
Drupal South 2015: Introduction to Web Services. Services in Drupal 8.
TechnocratAu
 
Ad

More from Exove (20)

PDF
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
PDF
Data security in the age of GDPR – most common data security problems
Exove
 
PDF
Provisioning infrastructure to AWS using Terraform – Exove
Exove
 
PDF
Advanced custom fields in Wordpress
Exove
 
PDF
Introduction to Robot Framework – Exove
Exove
 
PDF
Jenkins and visual regression – Exove
Exove
 
PDF
Server-side React with Headless CMS – Exove
Exove
 
PDF
WebSockets in Bravo Dashboard – Exove
Exove
 
PDF
Diversity in recruitment
Exove
 
PDF
Saavutettavuus liiketoimintana
Exove
 
PDF
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Exove
 
PDF
Mitä saavutettavuusdirektiivi pitää sisällään
Exove
 
PDF
Creating Landing Pages for Drupal 8
Exove
 
PDF
GDPR for developers
Exove
 
PDF
Managing Complexity and Privacy Debt with Drupal
Exove
 
PDF
Life with digital services after GDPR
Exove
 
PDF
GDPR - no beginning no end
Exove
 
PDF
Developing truly personalised experiences
Exove
 
PDF
Customer Experience and Personalisation
Exove
 
PDF
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Exove
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Data security in the age of GDPR – most common data security problems
Exove
 
Provisioning infrastructure to AWS using Terraform – Exove
Exove
 
Advanced custom fields in Wordpress
Exove
 
Introduction to Robot Framework – Exove
Exove
 
Jenkins and visual regression – Exove
Exove
 
Server-side React with Headless CMS – Exove
Exove
 
WebSockets in Bravo Dashboard – Exove
Exove
 
Diversity in recruitment
Exove
 
Saavutettavuus liiketoimintana
Exove
 
Saavutettavuus osana Eläkeliiton verkkosivu-uudistusta
Exove
 
Mitä saavutettavuusdirektiivi pitää sisällään
Exove
 
Creating Landing Pages for Drupal 8
Exove
 
GDPR for developers
Exove
 
Managing Complexity and Privacy Debt with Drupal
Exove
 
Life with digital services after GDPR
Exove
 
GDPR - no beginning no end
Exove
 
Developing truly personalised experiences
Exove
 
Customer Experience and Personalisation
Exove
 
Adventures In Programmatic Branding – How To Design With Algorithms And How T...
Exove
 
Ad

Recently uploaded (20)

PPTX
CapCut Pro PC Crack Latest Version Free Free
josanj305
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
Pipeline Industry IoT - Real Time Data Monitoring
Safe Software
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PPTX
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
PPTX
Securing Model Context Protocol with Keycloak: AuthN/AuthZ for MCP Servers
Hitachi, Ltd. OSS Solution Center.
 
PDF
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
PDF
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
PDF
Sound the Alarm: Detection and Response
VICTOR MAESTRE RAMIREZ
 
PDF
FME in Overdrive: Unleashing the Power of Parallel Processing
Safe Software
 
PDF
5 Things to Consider When Deploying AI in Your Enterprise
Safe Software
 
PDF
Understanding The True Cost of DynamoDB Webinar
ScyllaDB
 
PDF
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
PDF
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
99 Bottles of Trust on the Wall — Operational Principles for Trust in Cyber C...
treyka
 
PDF
DoS Attack vs DDoS Attack_ The Silent Wars of the Internet.pdf
CyberPro Magazine
 
CapCut Pro PC Crack Latest Version Free Free
josanj305
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Pipeline Industry IoT - Real Time Data Monitoring
Safe Software
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
Securing Model Context Protocol with Keycloak: AuthN/AuthZ for MCP Servers
Hitachi, Ltd. OSS Solution Center.
 
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
Sound the Alarm: Detection and Response
VICTOR MAESTRE RAMIREZ
 
FME in Overdrive: Unleashing the Power of Parallel Processing
Safe Software
 
5 Things to Consider When Deploying AI in Your Enterprise
Safe Software
 
Understanding The True Cost of DynamoDB Webinar
ScyllaDB
 
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
99 Bottles of Trust on the Wall — Operational Principles for Trust in Cyber C...
treyka
 
DoS Attack vs DDoS Attack_ The Silent Wars of the Internet.pdf
CyberPro Magazine
 

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.
  • 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
  • 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