SlideShare a Scribd company logo
The WoTKit
A Lightweight Tookit for the Web of Things


           Mike Blackstock, Rodger Lea

     Media and Graphics Interdisciplinary Centre
           University of British Columbia
                Vancouver, Canada
Position Overview
•   Lack of effective toolkits is a significant barrier to
    adoption of the web of things
    •   Balance between functionality and simplicity
•   Context
    •   WoTKit and application experience
    •   Raised questions related to approach and
        features
•   Goal: guidelines for WoT toolkit developers
    toward basic requirements and approaches
Many Other Toolkits
• High end M2M systems
 • Custom solutions
 • Not focused on web, sharing
• Similar web-centric toolkits
• Key differences
 • what is included
 • how services are delivered
Experience
•   Remote monitor of pulse oximeter
•   Transport and air quality mobile
    apps
•   Social sustainability applications
•   Phidget, Arduino integration
•   Zigbee gateways
•   CPU monitors
•   Power monitoring
•   Social network integration
Toolkit Requirements
Toolkit Requirements

• Integration
Toolkit Requirements

• Integration
• Sharing
Toolkit Requirements

• Integration
• Sharing
• Visualizations   100
                    75
                    50
                    25
                     0
                     12:05 12:10 12:15 12:20
Toolkit Requirements

• Integration
• Sharing
• Visualizations   100
                    75

• Processing        50
                    25
                     0
                     12:05 12:10 12:15 12:20
Toolkit Requirements

• Integration
• Sharing
• Visualizations   100
                    75

• Processing        50
                    25

• RESTful APIs       0
                     12:05 12:10 12:15 12:20
Integration
 • Basic function of all toolkits
 • Easy thing-integration using web servers
    and clients
 • Toolkit acts as aggregator for thing (meta)
    data
 • Relay for for actuator control
 • Gateways, often simple scripts, update
    toolkit with state, connect actuators
Sharing
• Sharing things, data
  and components
• Saves integration task
  for others
• Allows easy creation
  of mashups
• Most existing systems
Visualizations

• Often first task after integration:
  see your data
  • Sen.se dashboards
  • Google Charts, Maps
  • ThingSpeak iFrames
  • Pachube graphs
Processing

• Pachube triggers
• Sen.se applications
• Paraimpu
  connections and
  filters
• Pipes and modules
RESTful APIs

• Allows developers to
  process and visualize
  data in new ways
• incorporate into
  complex applications
• integrate “non-thing”
  data sources
WoTKit
•   Data model: sensors (actuators) with meta data:
    •   owner
    •   id, names
    •   location
    •   description
    •   field schema
•   Sensor data
    •   named fields (some defaults)
    •   server timestamp
    •   client timestamp
Architecture
•   Management and
    visualization
•   Processing engine
•   RESTful API
•   Shared data model
•   Database and message
    broker
•   Google Charts, jQuery
    UI, Flot, Spring
    Framework, ActiveMQ,
    MySQL
Processing Engine
•   Pipes consist of linked stateful
    modules
•   Routing table of connected
    modules from pipe descriptions.
•   Dispatcher thread gets next
    task from queue
•   Multithreaded executor
    performs tasks
•   Tasks may add new tasks to the
    queue
Open Questions

• Given other emerging systems, and WoTKit
  experience
• What are the key requirements for WoT
  Toolkits?
• How should these requirements be met?
Thing Model
•   Naming things
    •   human readable names (dns)?
    •   hierarchical or flat namespace?
    •   tagging, searching
•   Thing representations and schema
    •   What meta data is shared by things?
    •   What types of data can they emit and receive?
    •   what control messages can be sent?
Integration Points
•   Sensor data input and output API
•   Actuator control API: URL callbacks, long polling, WebSockets
•   Visualizations & widgets
    •   dashboards & widgets?
    •   apps?
    •   simple line charts?
•   Data processing integration
    •   apps?
    •   pipe modules?
    •   connectors?
Processing and Interaction
•   Push or Pull?
    •   Push: firewall friendly, but events no one is interested in
    •   Pull: infrastructure polling for unnecessary updates
    •   Current state and stream of historical values?
•   Processing Model
    •   Event based: alerting and filtering, but no historical data
        access
    •   Query based: historical data, but need to check for change
        regularly
    •   What are the appropriate programming approaches and
        APIs? Simple alerts, filters, apps, pipes?
Sharing and Interoperability
 • Sharing
  • Share via social networks, or do things
     have other relationships?
 • Toolkit Integration and Standards
  • Should we be working for toolkit
     interoperability?
   • What is the fundamental programming
     model and services for all WoT toolkits?
Conclusions
• Exposing things to the web allows
  developers to more quickly build IoT
  applications.
• Experience with WoTKit has allowed us to
  explore toolkit requirements.
• What does it mean to “include batteries”
  for a WoT toolkit for rapid mashup
  development?

More Related Content

What's hot

Sbrc 2014 Painel SDN
Sbrc 2014 Painel SDNSbrc 2014 Painel SDN
Sbrc 2014 Painel SDN
Christian Esteve Rothenberg
 
SDN :: Software Defined Networking –2017 Executive Overview
SDN :: Software Defined Networking –2017 Executive OverviewSDN :: Software Defined Networking –2017 Executive Overview
SDN :: Software Defined Networking –2017 Executive Overview
Christian Esteve Rothenberg
 
IoT heap 1
IoT heap 1IoT heap 1
IoT heap 1
SushrutaMishra1
 
Bahrain ch9 introduction to docker 5th birthday
Bahrain ch9 introduction to docker 5th birthday Bahrain ch9 introduction to docker 5th birthday
Bahrain ch9 introduction to docker 5th birthday
Walid Shaari
 
Kick starting Network Automation
Kick starting Network AutomationKick starting Network Automation
Kick starting Network Automation
Walid Shaari
 
Why we got to Docker
Why we got to DockerWhy we got to Docker
Why we got to Docker
allingeek
 
DEVNET-1114 Automated Management Using SDN/NFV
DEVNET-1114	Automated Management Using SDN/NFVDEVNET-1114	Automated Management Using SDN/NFV
DEVNET-1114 Automated Management Using SDN/NFV
Cisco DevNet
 
Microprocessors & microcontrollers- The design Context
Microprocessors & microcontrollers- The design ContextMicroprocessors & microcontrollers- The design Context
Microprocessors & microcontrollers- The design Context
Debasis Das
 
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Benjamin Cabé
 
IoT material revised edition
IoT material revised editionIoT material revised edition
IoT material revised edition
pavan penugonda
 
Web API Management meets the Internet of Things
Web API Management meets the Internet of ThingsWeb API Management meets the Internet of Things
Web API Management meets the Internet of Things
Paul Fremantle
 
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Benjamin Cabé
 
Building Open Source IoT Cloud
Building Open Source IoT CloudBuilding Open Source IoT Cloud
Building Open Source IoT Cloud
dejanb
 
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario KusekJavantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloud
Srinivasan Nanduri
 
Mob324 Windows IoT Core Dave Glover Microsoft Australia
Mob324 Windows IoT Core Dave Glover Microsoft AustraliaMob324 Windows IoT Core Dave Glover Microsoft Australia
Mob324 Windows IoT Core Dave Glover Microsoft Australia
Dave Glover
 
Fiware, the future internet
Fiware, the future internetFiware, the future internet
Fiware, the future internet
Fernando Lopez Aguilar
 
Grid computiing
Grid computiingGrid computiing
Grid computiing
Aamir chouhan
 
Compact models for compact devices: Visualisation of SAR using mobile apps
Compact models for compact devices: Visualisation of SAR using mobile appsCompact models for compact devices: Visualisation of SAR using mobile apps
Compact models for compact devices: Visualisation of SAR using mobile apps
Alex Clark
 

What's hot (19)

Sbrc 2014 Painel SDN
Sbrc 2014 Painel SDNSbrc 2014 Painel SDN
Sbrc 2014 Painel SDN
 
SDN :: Software Defined Networking –2017 Executive Overview
SDN :: Software Defined Networking –2017 Executive OverviewSDN :: Software Defined Networking –2017 Executive Overview
SDN :: Software Defined Networking –2017 Executive Overview
 
IoT heap 1
IoT heap 1IoT heap 1
IoT heap 1
 
Bahrain ch9 introduction to docker 5th birthday
Bahrain ch9 introduction to docker 5th birthday Bahrain ch9 introduction to docker 5th birthday
Bahrain ch9 introduction to docker 5th birthday
 
Kick starting Network Automation
Kick starting Network AutomationKick starting Network Automation
Kick starting Network Automation
 
Why we got to Docker
Why we got to DockerWhy we got to Docker
Why we got to Docker
 
DEVNET-1114 Automated Management Using SDN/NFV
DEVNET-1114	Automated Management Using SDN/NFVDEVNET-1114	Automated Management Using SDN/NFV
DEVNET-1114 Automated Management Using SDN/NFV
 
Microprocessors & microcontrollers- The design Context
Microprocessors & microcontrollers- The design ContextMicroprocessors & microcontrollers- The design Context
Microprocessors & microcontrollers- The design Context
 
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
 
IoT material revised edition
IoT material revised editionIoT material revised edition
IoT material revised edition
 
Web API Management meets the Internet of Things
Web API Management meets the Internet of ThingsWeb API Management meets the Internet of Things
Web API Management meets the Internet of Things
 
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
 
Building Open Source IoT Cloud
Building Open Source IoT CloudBuilding Open Source IoT Cloud
Building Open Source IoT Cloud
 
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario KusekJavantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloud
 
Mob324 Windows IoT Core Dave Glover Microsoft Australia
Mob324 Windows IoT Core Dave Glover Microsoft AustraliaMob324 Windows IoT Core Dave Glover Microsoft Australia
Mob324 Windows IoT Core Dave Glover Microsoft Australia
 
Fiware, the future internet
Fiware, the future internetFiware, the future internet
Fiware, the future internet
 
Grid computiing
Grid computiingGrid computiing
Grid computiing
 
Compact models for compact devices: Visualisation of SAR using mobile apps
Compact models for compact devices: Visualisation of SAR using mobile appsCompact models for compact devices: Visualisation of SAR using mobile apps
Compact models for compact devices: Visualisation of SAR using mobile apps
 

Viewers also liked

Cosmos, Big Data GE implementation in FIWARE
Cosmos, Big Data GE implementation in FIWARECosmos, Big Data GE implementation in FIWARE
Cosmos, Big Data GE implementation in FIWARE
Fernando Lopez Aguilar
 
ABA Maschinenbau, Elektronik und Mechatronik in Österreich
ABA Maschinenbau, Elektronik und Mechatronik in ÖsterreichABA Maschinenbau, Elektronik und Mechatronik in Österreich
ABA Maschinenbau, Elektronik und Mechatronik in Österreich
ABA - Invest in Austria
 
ABTophockeytoernooi 27 En 28 Augustus 2011
ABTophockeytoernooi 27 En 28 Augustus 2011ABTophockeytoernooi 27 En 28 Augustus 2011
ABTophockeytoernooi 27 En 28 Augustus 2011
businessquivive
 
Unternehmensfinanzierung mit Banken
Unternehmensfinanzierung mit BankenUnternehmensfinanzierung mit Banken
Unternehmensfinanzierung mit Banken
förderbar GmbH Die Fördermittelmanufaktur
 
¿Cómo funciona una red social anónima? Duvamis
¿Cómo funciona una red social anónima? Duvamis¿Cómo funciona una red social anónima? Duvamis
¿Cómo funciona una red social anónima? Duvamis
José Luis Arriaza Sanjurjo
 
Hotelera organización de hospedajes
Hotelera   organización de hospedajesHotelera   organización de hospedajes
Hotelera organización de hospedajes
REYES contadores
 
MPC Zweite Reefer Flottenfonds: Schadenersatz wegen Falschberatung durch die ...
MPC Zweite Reefer Flottenfonds: Schadenersatz wegen Falschberatung durch die ...MPC Zweite Reefer Flottenfonds: Schadenersatz wegen Falschberatung durch die ...
MPC Zweite Reefer Flottenfonds: Schadenersatz wegen Falschberatung durch die ...
Mathias Nittel
 
Low cost_platform_a_direct_worldwide_t_our
 Low cost_platform_a_direct_worldwide_t_our Low cost_platform_a_direct_worldwide_t_our
Low cost_platform_a_direct_worldwide_t_our
Karl Ziegler
 
Introduccion a project adriana y alejandra talavera
Introduccion a project adriana y alejandra talaveraIntroduccion a project adriana y alejandra talavera
Introduccion a project adriana y alejandra talavera
Adrii Liiz
 
CV & social media workshop at BEABLE Job Day
CV & social media workshop at BEABLE Job DayCV & social media workshop at BEABLE Job Day
CV & social media workshop at BEABLE Job Day
Stéphane Califice
 
vNAP Session 5 Slides
vNAP Session 5 SlidesvNAP Session 5 Slides
vNAP Session 5 Slides
Niall Hardie
 
Chapter 8 Consumer Attitude Formation And Change
Chapter 8 Consumer Attitude Formation And ChangeChapter 8 Consumer Attitude Formation And Change
Chapter 8 Consumer Attitude Formation And Change
Avinash Kumar
 
Plötzlich Führungskraft
Plötzlich FührungskraftPlötzlich Führungskraft
Plötzlich Führungskraft
BusinessVillage GmbH
 
Comment optimiser le régime fiscal des hedge fund managers en Suisse ?
Comment optimiser le régime fiscal des hedge fund managers en Suisse ?Comment optimiser le régime fiscal des hedge fund managers en Suisse ?
Comment optimiser le régime fiscal des hedge fund managers en Suisse ?
Boitelle
 
Com es distribueix la corrupció política a Espanya
Com es distribueix la corrupció política a EspanyaCom es distribueix la corrupció política a Espanya
Com es distribueix la corrupció política a Espanya
Ramir De Porrata-Doria
 
Präsentation Energiefachstelle Luzern
Präsentation Energiefachstelle LuzernPräsentation Energiefachstelle Luzern
Präsentation Energiefachstelle Luzern
Vorname Nachname
 
Crowdfunding esg 4-advice
Crowdfunding esg 4-adviceCrowdfunding esg 4-advice
Crowdfunding esg 4-advice
slides4media
 
Net Land Art 3
Net Land Art 3Net Land Art 3
Net Land Art 3
Renaud Favier
 

Viewers also liked (20)

Cosmos, Big Data GE implementation in FIWARE
Cosmos, Big Data GE implementation in FIWARECosmos, Big Data GE implementation in FIWARE
Cosmos, Big Data GE implementation in FIWARE
 
ABA Maschinenbau, Elektronik und Mechatronik in Österreich
ABA Maschinenbau, Elektronik und Mechatronik in ÖsterreichABA Maschinenbau, Elektronik und Mechatronik in Österreich
ABA Maschinenbau, Elektronik und Mechatronik in Österreich
 
Factsheet victor
Factsheet victorFactsheet victor
Factsheet victor
 
ABTophockeytoernooi 27 En 28 Augustus 2011
ABTophockeytoernooi 27 En 28 Augustus 2011ABTophockeytoernooi 27 En 28 Augustus 2011
ABTophockeytoernooi 27 En 28 Augustus 2011
 
Unternehmensfinanzierung mit Banken
Unternehmensfinanzierung mit BankenUnternehmensfinanzierung mit Banken
Unternehmensfinanzierung mit Banken
 
¿Cómo funciona una red social anónima? Duvamis
¿Cómo funciona una red social anónima? Duvamis¿Cómo funciona una red social anónima? Duvamis
¿Cómo funciona una red social anónima? Duvamis
 
Hotelera organización de hospedajes
Hotelera   organización de hospedajesHotelera   organización de hospedajes
Hotelera organización de hospedajes
 
MPC Zweite Reefer Flottenfonds: Schadenersatz wegen Falschberatung durch die ...
MPC Zweite Reefer Flottenfonds: Schadenersatz wegen Falschberatung durch die ...MPC Zweite Reefer Flottenfonds: Schadenersatz wegen Falschberatung durch die ...
MPC Zweite Reefer Flottenfonds: Schadenersatz wegen Falschberatung durch die ...
 
Low cost_platform_a_direct_worldwide_t_our
 Low cost_platform_a_direct_worldwide_t_our Low cost_platform_a_direct_worldwide_t_our
Low cost_platform_a_direct_worldwide_t_our
 
Introduccion a project adriana y alejandra talavera
Introduccion a project adriana y alejandra talaveraIntroduccion a project adriana y alejandra talavera
Introduccion a project adriana y alejandra talavera
 
CV & social media workshop at BEABLE Job Day
CV & social media workshop at BEABLE Job DayCV & social media workshop at BEABLE Job Day
CV & social media workshop at BEABLE Job Day
 
id-ee Blog Session 2 - Basics
id-ee Blog Session 2 - Basicsid-ee Blog Session 2 - Basics
id-ee Blog Session 2 - Basics
 
vNAP Session 5 Slides
vNAP Session 5 SlidesvNAP Session 5 Slides
vNAP Session 5 Slides
 
Chapter 8 Consumer Attitude Formation And Change
Chapter 8 Consumer Attitude Formation And ChangeChapter 8 Consumer Attitude Formation And Change
Chapter 8 Consumer Attitude Formation And Change
 
Plötzlich Führungskraft
Plötzlich FührungskraftPlötzlich Führungskraft
Plötzlich Führungskraft
 
Comment optimiser le régime fiscal des hedge fund managers en Suisse ?
Comment optimiser le régime fiscal des hedge fund managers en Suisse ?Comment optimiser le régime fiscal des hedge fund managers en Suisse ?
Comment optimiser le régime fiscal des hedge fund managers en Suisse ?
 
Com es distribueix la corrupció política a Espanya
Com es distribueix la corrupció política a EspanyaCom es distribueix la corrupció política a Espanya
Com es distribueix la corrupció política a Espanya
 
Präsentation Energiefachstelle Luzern
Präsentation Energiefachstelle LuzernPräsentation Energiefachstelle Luzern
Präsentation Energiefachstelle Luzern
 
Crowdfunding esg 4-advice
Crowdfunding esg 4-adviceCrowdfunding esg 4-advice
Crowdfunding esg 4-advice
 
Net Land Art 3
Net Land Art 3Net Land Art 3
Net Land Art 3
 

Similar to WoTKit: a Lightweight Toolkit for the Web of Things

Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia Davis
VMware Tanzu
 
Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
cornelia davis
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open source
Tech Triveni
 
The Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systemsThe Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systems
Simware
 
Kontent.ai DevMeetup #1 - Evoluce prvního veřejného API v hotelovém světě
Kontent.ai DevMeetup #1 - Evoluce prvního veřejného API v hotelovém světěKontent.ai DevMeetup #1 - Evoluce prvního veřejného API v hotelovém světě
Kontent.ai DevMeetup #1 - Evoluce prvního veřejného API v hotelovém světě
Peter Sedlařík
 
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOAGuidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
Steven Davelaar
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
Comsysto Reply GmbH
 
Viper architecture
Viper architectureViper architecture
Viper architecture
*instinctools
 
Neotys PAC - Ian Molyneaux
Neotys PAC - Ian MolyneauxNeotys PAC - Ian Molyneaux
Neotys PAC - Ian Molyneaux
Neotys_Partner
 
Introduction to Conductor
Introduction to ConductorIntroduction to Conductor
Introduction to Conductor
Jason Gleason
 
OpenDaylight Update (June 2018)
OpenDaylight Update (June 2018)OpenDaylight Update (June 2018)
OpenDaylight Update (June 2018)
Michelle Holley
 
How a Data Mesh is Driving our Platform | Trey Hicks, Gloo
How a Data Mesh is Driving our Platform | Trey Hicks, GlooHow a Data Mesh is Driving our Platform | Trey Hicks, Gloo
How a Data Mesh is Driving our Platform | Trey Hicks, Gloo
HostedbyConfluent
 
Power bi vs tableau
Power bi vs tableauPower bi vs tableau
Power bi vs tableau
Affirma Consulting
 
Power BI vs Tableau
Power BI vs TableauPower BI vs Tableau
Power BI vs Tableau
Don Hyun
 
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
Ashwini Kuntamukkala
 
Making Data Scientists Productive in Azure
Making Data Scientists Productive in AzureMaking Data Scientists Productive in Azure
Making Data Scientists Productive in Azure
Valdas Maksimavičius
 
Integrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio LightswitchIntegrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio Lightswitch
Rob Windsor
 
Orchestrating Cloud Workloads with RightScale Self-Service
Orchestrating Cloud Workloads with RightScale Self-Service Orchestrating Cloud Workloads with RightScale Self-Service
Orchestrating Cloud Workloads with RightScale Self-Service
RightScale
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 

Similar to WoTKit: a Lightweight Toolkit for the Web of Things (20)

Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia Davis
 
Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open source
 
The Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systemsThe Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systems
 
Kontent.ai DevMeetup #1 - Evoluce prvního veřejného API v hotelovém světě
Kontent.ai DevMeetup #1 - Evoluce prvního veřejného API v hotelovém světěKontent.ai DevMeetup #1 - Evoluce prvního veřejného API v hotelovém světě
Kontent.ai DevMeetup #1 - Evoluce prvního veřejného API v hotelovém světě
 
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOAGuidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Viper architecture
Viper architectureViper architecture
Viper architecture
 
Neotys PAC - Ian Molyneaux
Neotys PAC - Ian MolyneauxNeotys PAC - Ian Molyneaux
Neotys PAC - Ian Molyneaux
 
Introduction to Conductor
Introduction to ConductorIntroduction to Conductor
Introduction to Conductor
 
OpenDaylight Update (June 2018)
OpenDaylight Update (June 2018)OpenDaylight Update (June 2018)
OpenDaylight Update (June 2018)
 
How a Data Mesh is Driving our Platform | Trey Hicks, Gloo
How a Data Mesh is Driving our Platform | Trey Hicks, GlooHow a Data Mesh is Driving our Platform | Trey Hicks, Gloo
How a Data Mesh is Driving our Platform | Trey Hicks, Gloo
 
Power bi vs tableau
Power bi vs tableauPower bi vs tableau
Power bi vs tableau
 
Power BI vs Tableau
Power BI vs TableauPower BI vs Tableau
Power BI vs Tableau
 
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Making Data Scientists Productive in Azure
Making Data Scientists Productive in AzureMaking Data Scientists Productive in Azure
Making Data Scientists Productive in Azure
 
Integrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio LightswitchIntegrating SharePoint 2010 and Visual Studio Lightswitch
Integrating SharePoint 2010 and Visual Studio Lightswitch
 
Orchestrating Cloud Workloads with RightScale Self-Service
Orchestrating Cloud Workloads with RightScale Self-Service Orchestrating Cloud Workloads with RightScale Self-Service
Orchestrating Cloud Workloads with RightScale Self-Service
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
 

More from Michael Blackstock

CQRS and Event Sourcing for IoT applications
CQRS and Event Sourcing for IoT applicationsCQRS and Event Sourcing for IoT applications
CQRS and Event Sourcing for IoT applications
Michael Blackstock
 
FRED: A Hosted Data Flow Platform for the IoT
FRED: A Hosted Data Flow Platform for the IoTFRED: A Hosted Data Flow Platform for the IoT
FRED: A Hosted Data Flow Platform for the IoT
Michael Blackstock
 
iot-and-smart-cities-lea-blackstock
iot-and-smart-cities-lea-blackstockiot-and-smart-cities-lea-blackstock
iot-and-smart-cities-lea-blackstock
Michael Blackstock
 
IoT Interoperability: a Hub-based Approach
IoT Interoperability: a Hub-based ApproachIoT Interoperability: a Hub-based Approach
IoT Interoperability: a Hub-based Approach
Michael Blackstock
 
WoT 2013 Thingbroker
WoT 2013 ThingbrokerWoT 2013 Thingbroker
WoT 2013 Thingbroker
Michael Blackstock
 
WoT 2013 Interop
WoT 2013 InteropWoT 2013 Interop
WoT 2013 Interop
Michael Blackstock
 
Wo t 2013-thingbroker
Wo t 2013-thingbrokerWo t 2013-thingbroker
Wo t 2013-thingbroker
Michael Blackstock
 
Blackstock wo t 2011
Blackstock wo t 2011Blackstock wo t 2011
Blackstock wo t 2011
Michael Blackstock
 

More from Michael Blackstock (8)

CQRS and Event Sourcing for IoT applications
CQRS and Event Sourcing for IoT applicationsCQRS and Event Sourcing for IoT applications
CQRS and Event Sourcing for IoT applications
 
FRED: A Hosted Data Flow Platform for the IoT
FRED: A Hosted Data Flow Platform for the IoTFRED: A Hosted Data Flow Platform for the IoT
FRED: A Hosted Data Flow Platform for the IoT
 
iot-and-smart-cities-lea-blackstock
iot-and-smart-cities-lea-blackstockiot-and-smart-cities-lea-blackstock
iot-and-smart-cities-lea-blackstock
 
IoT Interoperability: a Hub-based Approach
IoT Interoperability: a Hub-based ApproachIoT Interoperability: a Hub-based Approach
IoT Interoperability: a Hub-based Approach
 
WoT 2013 Thingbroker
WoT 2013 ThingbrokerWoT 2013 Thingbroker
WoT 2013 Thingbroker
 
WoT 2013 Interop
WoT 2013 InteropWoT 2013 Interop
WoT 2013 Interop
 
Wo t 2013-thingbroker
Wo t 2013-thingbrokerWo t 2013-thingbroker
Wo t 2013-thingbroker
 
Blackstock wo t 2011
Blackstock wo t 2011Blackstock wo t 2011
Blackstock wo t 2011
 

Recently uploaded

High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
bhumivarma35300
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
313mohammedarshad
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024
Nicolás Lopéz
 
Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10
ankush9927
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
Safe Software
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
Jimmy Lai
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
DianaGray10
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
shyamraj55
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
alexjohnson7307
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
SynapseIndia
 
Step-By-Step Process to Develop a Mobile App From Scratch
Step-By-Step Process to Develop a Mobile App From ScratchStep-By-Step Process to Develop a Mobile App From Scratch
Step-By-Step Process to Develop a Mobile App From Scratch
softsuave
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Muhammad Ali
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
aslasdfmkhan4750
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
bellared2
 
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
shanihomely
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Networks
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
DianaGray10
 
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
sunilverma7884
 
(CISOPlatform Summit & SACON 2024) Workshop _ Most Dangerous Attack Technique...
(CISOPlatform Summit & SACON 2024) Workshop _ Most Dangerous Attack Technique...(CISOPlatform Summit & SACON 2024) Workshop _ Most Dangerous Attack Technique...
(CISOPlatform Summit & SACON 2024) Workshop _ Most Dangerous Attack Technique...
Priyanka Aash
 

Recently uploaded (20)

High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024
 
Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
 
Step-By-Step Process to Develop a Mobile App From Scratch
Step-By-Step Process to Develop a Mobile App From ScratchStep-By-Step Process to Develop a Mobile App From Scratch
Step-By-Step Process to Develop a Mobile App From Scratch
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
 
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
 
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
 
(CISOPlatform Summit & SACON 2024) Workshop _ Most Dangerous Attack Technique...
(CISOPlatform Summit & SACON 2024) Workshop _ Most Dangerous Attack Technique...(CISOPlatform Summit & SACON 2024) Workshop _ Most Dangerous Attack Technique...
(CISOPlatform Summit & SACON 2024) Workshop _ Most Dangerous Attack Technique...
 

WoTKit: a Lightweight Toolkit for the Web of Things

  • 1. The WoTKit A Lightweight Tookit for the Web of Things Mike Blackstock, Rodger Lea Media and Graphics Interdisciplinary Centre University of British Columbia Vancouver, Canada
  • 2. Position Overview • Lack of effective toolkits is a significant barrier to adoption of the web of things • Balance between functionality and simplicity • Context • WoTKit and application experience • Raised questions related to approach and features • Goal: guidelines for WoT toolkit developers toward basic requirements and approaches
  • 3. Many Other Toolkits • High end M2M systems • Custom solutions • Not focused on web, sharing • Similar web-centric toolkits • Key differences • what is included • how services are delivered
  • 4. Experience • Remote monitor of pulse oximeter • Transport and air quality mobile apps • Social sustainability applications • Phidget, Arduino integration • Zigbee gateways • CPU monitors • Power monitoring • Social network integration
  • 8. Toolkit Requirements • Integration • Sharing • Visualizations 100 75 50 25 0 12:05 12:10 12:15 12:20
  • 9. Toolkit Requirements • Integration • Sharing • Visualizations 100 75 • Processing 50 25 0 12:05 12:10 12:15 12:20
  • 10. Toolkit Requirements • Integration • Sharing • Visualizations 100 75 • Processing 50 25 • RESTful APIs 0 12:05 12:10 12:15 12:20
  • 11. Integration • Basic function of all toolkits • Easy thing-integration using web servers and clients • Toolkit acts as aggregator for thing (meta) data • Relay for for actuator control • Gateways, often simple scripts, update toolkit with state, connect actuators
  • 12. Sharing • Sharing things, data and components • Saves integration task for others • Allows easy creation of mashups • Most existing systems
  • 13. Visualizations • Often first task after integration: see your data • Sen.se dashboards • Google Charts, Maps • ThingSpeak iFrames • Pachube graphs
  • 14. Processing • Pachube triggers • Sen.se applications • Paraimpu connections and filters • Pipes and modules
  • 15. RESTful APIs • Allows developers to process and visualize data in new ways • incorporate into complex applications • integrate “non-thing” data sources
  • 16. WoTKit • Data model: sensors (actuators) with meta data: • owner • id, names • location • description • field schema • Sensor data • named fields (some defaults) • server timestamp • client timestamp
  • 17. Architecture • Management and visualization • Processing engine • RESTful API • Shared data model • Database and message broker • Google Charts, jQuery UI, Flot, Spring Framework, ActiveMQ, MySQL
  • 18. Processing Engine • Pipes consist of linked stateful modules • Routing table of connected modules from pipe descriptions. • Dispatcher thread gets next task from queue • Multithreaded executor performs tasks • Tasks may add new tasks to the queue
  • 19. Open Questions • Given other emerging systems, and WoTKit experience • What are the key requirements for WoT Toolkits? • How should these requirements be met?
  • 20. Thing Model • Naming things • human readable names (dns)? • hierarchical or flat namespace? • tagging, searching • Thing representations and schema • What meta data is shared by things? • What types of data can they emit and receive? • what control messages can be sent?
  • 21. Integration Points • Sensor data input and output API • Actuator control API: URL callbacks, long polling, WebSockets • Visualizations & widgets • dashboards & widgets? • apps? • simple line charts? • Data processing integration • apps? • pipe modules? • connectors?
  • 22. Processing and Interaction • Push or Pull? • Push: firewall friendly, but events no one is interested in • Pull: infrastructure polling for unnecessary updates • Current state and stream of historical values? • Processing Model • Event based: alerting and filtering, but no historical data access • Query based: historical data, but need to check for change regularly • What are the appropriate programming approaches and APIs? Simple alerts, filters, apps, pipes?
  • 23. Sharing and Interoperability • Sharing • Share via social networks, or do things have other relationships? • Toolkit Integration and Standards • Should we be working for toolkit interoperability? • What is the fundamental programming model and services for all WoT toolkits?
  • 24. Conclusions • Exposing things to the web allows developers to more quickly build IoT applications. • Experience with WoTKit has allowed us to explore toolkit requirements. • What does it mean to “include batteries” for a WoT toolkit for rapid mashup development?

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. Remote monitor of pulse oximeter\n Bluetooth to laptop to WoTKit\n monitor patients during transport\n Air quality monitor for Android\n City air quality sensors scraped, aggregated by platform\n app pulls data and aggregates\n Transportation\n cell phone transport mode on phone\n sent to platform for data aggregation, crowd sourcing\n Airport arrivals and departures\n Phidget integration\n Both Sensors and actuators\n Zigbee gateway\n CPU Monitors\n Power meter applications\n Social network feeds\n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n