SlideShare a Scribd company logo
1 of 44
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?
Evolution of Drupal architectures
How it’s actually done?
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 new devices currently increasingly
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
From a WCMS to so
much more
Drupal is built to be a Web Content Management
System
Due to its flexibility, it’s slowly become much more
As a platform, it can be used in multiple roles
Drupal as a back-end
When removing the front-end from Drupal, it becomes
much more
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
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
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.
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
How is it
actually done?
Serving machines
Drupal 7 has modules for serving all data out via
RESTWS or Services modules
Drupal 8 ships with a REST module in core
Restify and Drupal 8’s REST module are similar and are
both directed at accessing Drupal programmatically, for
example as a headless backend
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
I’d suggest you edit the REST interface for serving a
particular purpose instead of using the default REST
interface
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
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 they get edited
To a MongoDB, SOLR, Elasticsearch, Redis or
whatever serves your purpose
Writes happen either separated or are queued in the
acceleration layer
Acceleration layer is built performance-oriented, with
e.g. Node.JS, Go or Rust
Remember this?
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 and let Drupal stay outside, handling only
the sites
We need more reference implementations where Drupal
is taking control of serving all public-facing content of an
enterprise
Easy said.
Simply done.
“There’s service for that”
Luckily these days, there’s also a SaaS service for
everything
IFTTT or IF is the service of automating the internet of
things
On the Drupal end
IFTTT can read e.g. RSS feeds and you can easily
publish those e.g. with Views
You can push it via email to IFTTT
As far as I know, there’s NO open API for IFTTT, though
Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015:

More Related Content

What's hot

Eliminating End Game - How to be a hero and streamline documentation production
Eliminating End Game - How to be a hero and streamline documentation productionEliminating End Game - How to be a hero and streamline documentation production
Eliminating End Game - How to be a hero and streamline documentation production
WebWorks
 
Why Drupal 8 Is a Game Changer for Higher Education
Why Drupal 8 Is a Game Changer for Higher EducationWhy Drupal 8 Is a Game Changer for Higher Education
Why Drupal 8 Is a Game Changer for Higher Education
Acquia
 

What's hot (20)

Agriya services
Agriya servicesAgriya services
Agriya services
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a Service
 
Decoupled Drupal: What This Means for Developers
Decoupled Drupal: What This Means for DevelopersDecoupled Drupal: What This Means for Developers
Decoupled Drupal: What This Means for Developers
 
Business benefits of Drupal 8
Business benefits of Drupal 8Business benefits of Drupal 8
Business benefits of Drupal 8
 
Introduction to drupal
 Introduction to drupal Introduction to drupal
Introduction to drupal
 
Eliminating End Game - How to be a hero and streamline documentation production
Eliminating End Game - How to be a hero and streamline documentation productionEliminating End Game - How to be a hero and streamline documentation production
Eliminating End Game - How to be a hero and streamline documentation production
 
Choosing Between Cross Platform of Native Development
Choosing	Between Cross Platform of Native DevelopmentChoosing	Between Cross Platform of Native Development
Choosing Between Cross Platform of Native Development
 
Mobile apps with Umbraco and Phonegap
Mobile apps with Umbraco and PhonegapMobile apps with Umbraco and Phonegap
Mobile apps with Umbraco and Phonegap
 
Publishing in an Agile World
Publishing in an Agile WorldPublishing in an Agile World
Publishing in an Agile World
 
Drupal's competition
Drupal's competitionDrupal's competition
Drupal's competition
 
Strapi Meetup whitepaper
Strapi Meetup whitepaperStrapi Meetup whitepaper
Strapi Meetup whitepaper
 
Let Non-Developers Develop your Site. Manu Raivio
Let Non-Developers Develop your Site. Manu RaivioLet Non-Developers Develop your Site. Manu Raivio
Let Non-Developers Develop your Site. Manu Raivio
 
Tipping the Scale - Eyal Eizenberg
Tipping the Scale - Eyal EizenbergTipping the Scale - Eyal Eizenberg
Tipping the Scale - Eyal Eizenberg
 
Drupal 8 Vocabulary Lesson
Drupal 8 Vocabulary LessonDrupal 8 Vocabulary Lesson
Drupal 8 Vocabulary Lesson
 
Drupal As A Jigsaw
Drupal As A JigsawDrupal As A Jigsaw
Drupal As A Jigsaw
 
Strapi Meetup Presentation
Strapi Meetup PresentationStrapi Meetup Presentation
Strapi Meetup Presentation
 
Why Drupal 8 Is a Game Changer for Higher Education
Why Drupal 8 Is a Game Changer for Higher EducationWhy Drupal 8 Is a Game Changer for Higher Education
Why Drupal 8 Is a Game Changer for Higher Education
 
Microsoft loves PHP. Seriously.
Microsoft loves PHP. Seriously.Microsoft loves PHP. Seriously.
Microsoft loves PHP. Seriously.
 
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
 
The latest tools for developing your IBM i systems
The latest tools for developing your IBM i systemsThe latest tools for developing your IBM i systems
The latest tools for developing your IBM i systems
 

Viewers also liked

Viewers also liked (13)

Ridha Ajroun :Systèmes de transport intelligents - IoT Tunisia 2016
Ridha Ajroun  :Systèmes de transport intelligents - IoT Tunisia 2016Ridha Ajroun  :Systèmes de transport intelligents - IoT Tunisia 2016
Ridha Ajroun :Systèmes de transport intelligents - IoT Tunisia 2016
 
Tony Velin : plateforme coopérative pour la recherche et l’innovation - IoT ...
Tony Velin :  plateforme coopérative pour la recherche et l’innovation - IoT ...Tony Velin :  plateforme coopérative pour la recherche et l’innovation - IoT ...
Tony Velin : plateforme coopérative pour la recherche et l’innovation - IoT ...
 
Khaled Ouali : fabrication et prototypage d’objets communicants- IoT Tunisia...
Khaled Ouali :  fabrication et prototypage d’objets communicants- IoT Tunisia...Khaled Ouali :  fabrication et prototypage d’objets communicants- IoT Tunisia...
Khaled Ouali : fabrication et prototypage d’objets communicants- IoT Tunisia...
 
Olivier Jannot : présentation iot ardia - IoT Tunisia 2016
Olivier Jannot :  présentation iot ardia - IoT Tunisia 2016Olivier Jannot :  présentation iot ardia - IoT Tunisia 2016
Olivier Jannot : présentation iot ardia - IoT Tunisia 2016
 
Mohamed Hamdi: smart energy monitoring IoT -oriented vision - IoT Tunisia 2016
Mohamed Hamdi:  smart energy monitoring IoT -oriented vision - IoT Tunisia 2016Mohamed Hamdi:  smart energy monitoring IoT -oriented vision - IoT Tunisia 2016
Mohamed Hamdi: smart energy monitoring IoT -oriented vision - IoT Tunisia 2016
 
Roberto Minerva: iot challenges - IoT Tunisia 2016
Roberto Minerva:  iot challenges  - IoT Tunisia 2016Roberto Minerva:  iot challenges  - IoT Tunisia 2016
Roberto Minerva: iot challenges - IoT Tunisia 2016
 
Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...
Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...
Bilel Jamoussi - Driving Internet of Ihings (IoT) standardization - IoT Tunis...
 
Imed Ammar: réseaux bas débit iot - IoT Tunisia 2016
Imed Ammar:  réseaux bas débit iot  - IoT Tunisia 2016Imed Ammar:  réseaux bas débit iot  - IoT Tunisia 2016
Imed Ammar: réseaux bas débit iot - IoT Tunisia 2016
 
Laurent Toutain internet the future of lpwa- IoT Tunisia 2016
Laurent Toutain   internet the future of lpwa- IoT Tunisia 2016Laurent Toutain   internet the future of lpwa- IoT Tunisia 2016
Laurent Toutain internet the future of lpwa- IoT Tunisia 2016
 
Haythem Tebourbi: Smart Parking - IoT Tunisia 2016
Haythem Tebourbi: Smart Parking - IoT Tunisia 2016Haythem Tebourbi: Smart Parking - IoT Tunisia 2016
Haythem Tebourbi: Smart Parking - IoT Tunisia 2016
 
Farouk Kamoun smart cities, innovative applications - IoT Tunisia 2016
Farouk Kamoun   smart cities, innovative applications  - IoT Tunisia 2016Farouk Kamoun   smart cities, innovative applications  - IoT Tunisia 2016
Farouk Kamoun smart cities, innovative applications - IoT Tunisia 2016
 
Internet of Things presentation
Internet of Things presentationInternet of Things presentation
Internet of Things presentation
 
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-gInternet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
 

Similar to Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015:

Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009
pauldix
 
Current state of affairs cloud computing
Current state of affairs   cloud computingCurrent state of affairs   cloud computing
Current state of affairs cloud computing
Chirag Jog
 

Similar to Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 2015: (20)

Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015
Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015
Serving the Internet of Things (IoT) with Drupal - DrupalCon Barcelona 2015
 
REST full API Design
REST full API DesignREST full API Design
REST full API Design
 
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
 
Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009
 
Modern Web Development (2018)
Modern Web Development (2018)Modern Web Development (2018)
Modern Web Development (2018)
 
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
 
Aws vs azure bakeoff
Aws vs azure bakeoffAws vs azure bakeoff
Aws vs azure bakeoff
 
Frequently asked MuleSoft Interview Questions and Answers from Techlightning
Frequently asked MuleSoft Interview Questions and Answers from TechlightningFrequently asked MuleSoft Interview Questions and Answers from Techlightning
Frequently asked MuleSoft Interview Questions and Answers from Techlightning
 
Above the cloud joarder kamal
Above the cloud   joarder kamalAbove the cloud   joarder kamal
Above the cloud joarder kamal
 
Current state of affairs cloud computing
Current state of affairs   cloud computingCurrent state of affairs   cloud computing
Current state of affairs cloud computing
 
Cloud Computing basic
Cloud Computing basicCloud Computing basic
Cloud Computing basic
 
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
 
Cfalfresco
CfalfrescoCfalfresco
Cfalfresco
 
Gluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container InfrastructureGluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container Infrastructure
 
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
 
The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservices
 
AWS DevOps: Introduction to DevOps on AWS
  AWS DevOps: Introduction to DevOps on AWS  AWS DevOps: Introduction to DevOps on AWS
AWS DevOps: Introduction to DevOps on AWS
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingCrash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing
 
Big Data, Ingeniería de datos, y Data Lakes en AWS
Big Data, Ingeniería de datos, y Data Lakes en AWSBig Data, Ingeniería de datos, y Data Lakes en AWS
Big Data, Ingeniería de datos, y Data Lakes en AWS
 

More from 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

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 

Serving the Internet of Things (IoT) with Drupal - DrupalCamp Baltics 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? Evolution of Drupal architectures How it’s actually done?
  • 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 new devices currently increasingly 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. From a WCMS to so much more Drupal is built to be a Web Content Management System Due to its flexibility, it’s slowly become much more As a platform, it can be used in multiple roles
  • 12. Drupal as a back-end When removing the front-end from Drupal, it becomes much more 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
  • 13. 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. Let’s take a plunge with Drupal architectures
  • 15. There was a time when just a Drupal website was enough. There are still times like that.
  • 16. But then we needed a couple of integrations.
  • 17. And then a mobile app, which we would serve with ready- made HTML or a JSON view.
  • 18. But then we wanted a Javascript front-end and opted to go with a headless Drupal.
  • 19. And suddenly, we could just open our REST interface to the world and let everything on the internet integrate.
  • 20. 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.
  • 22. 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
  • 23. 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
  • 24. 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
  • 26. Serving machines Drupal 7 has modules for serving all data out via RESTWS or Services modules Drupal 8 ships with a REST module in core Restify and Drupal 8’s REST module are similar and are both directed at accessing Drupal programmatically, for example as a headless backend
  • 27. 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 I’d suggest you edit the REST interface for serving a particular purpose instead of using the default REST interface
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 33. 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
  • 34. Building an external API In this approach you’ll index all your content outside Drupal every time they get edited To a MongoDB, SOLR, Elasticsearch, Redis or whatever serves your purpose Writes happen either separated or are queued in the acceleration layer Acceleration layer is built performance-oriented, with e.g. Node.JS, Go or Rust
  • 36. 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
  • 37.
  • 38. 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 and let Drupal stay outside, handling only the sites We need more reference implementations where Drupal is taking control of serving all public-facing content of an enterprise
  • 40. “There’s service for that” Luckily these days, there’s also a SaaS service for everything IFTTT or IF is the service of automating the internet of things
  • 41.
  • 42.
  • 43. On the Drupal end IFTTT can read e.g. RSS feeds and you can easily publish those e.g. with Views You can push it via email to IFTTT As far as I know, there’s NO open API for IFTTT, though