SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
Reactive Programming 
Models for IoT 
Todd L. Montgomery 
@toddlmontgomery
Already Here! Not New! 
Internet of Things? 
Just a Silicon Valley buzzword?
Also Not New! 
Reactive Programming? 
Just another buzzword?
Connecting “Things” 
…Reactively…
Request 
Response 
What most of us think happens
And if not, we’ll make it! 
Request 
Response 
What really happens
But… Who does this? 
Request 
Response 
What also really happens
Request 
Response 
@toddlmontgomery 
Support 
(UI/Device) 
Security 
(Challenge) 
Keep-Alive 
or Watchdog 
User State 
Query
News, Stocks, Texts/SMS, 
Video, Audio, Social, … 
Stream 
What also really happens
Temperature, Heart Rate, Web Logs, Sensor 
Data, Seismic Readings, Steps, Stairs, Gyro 
Data, GPS, Acceleration, Breathing, EKG, EEG, 
… 
Ingest 
What also really happens
Pretty much how everything 
actually works… 
Request 
Stream & Ingest 
Response 
What also really happens
What also REALLY happens
Request, Response, Stream, 
and Ingest are really types 
Message 
Message 
The Break Down 
Message-Driven 
Message-Driven
Message Driven 
Reactive Applications 
Elastic 
Responsive Resilient 
http://www.reactivemanifesto.org/
Distributed Systems Evolution 
REST 
RPC 
Function Call 
Message-Driven 
LISP 
?
IoT…
HTCPCP 
RFC 2324, Extended by RFC 7168 
"there is a strong, dark, rich requirement for a protocol designed 
espressoly [sic] for the brewing of coffee" 
http://en.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Control_Protocol 
@toddlmontgomery
@toddlmontgomery
courtesy of
Sometimes it is good to 
reinvent the wheel
What History Has Taught Us 
@toddlmontgomery
THE IoT Language!
THE IoT Protocol!
THE IoT Runtime!
THE IoT ______!
Internet of Things 
Multi-Lingual 
(and Polyglot) 
Multi-Protocol & 
Multi-Standard 
Multi-“Platform” Huge Scale 
Highly Integrated
Connected. Integrated. 
Great time to be a protocol geek!
Nuklei 
Multi-Lingual 
(and Polyglot) 
Connected. Services. Tools. 
Location 
Transparency 
Multi-Protocol 
& Data Format 
Basic 
Low-Level API
Protocols 
Deployment Container 
Nuklei 
Logic 
Reactive 
Message Stream 
Depends on language, 
runtime, platform, etc. 
Asynchronous 
Binary 
“Loose” Ordering
Choice of protocols becomes 
deployment concern 
Protocols 
Simple, consistent usage 
allows functional 
composition of protocols 
Deployment Container 
Nuklei 
Logic 
Reactive 
Message Stream 
Basic 
read/write 
API 
Various 
Protocol 
Options 
Asynchronous Binary Boundary
HTTP/1.1 
Protocols? 
Shared Memory IPC 
CoAP AMQP 
WebSocket 
JMS 
WebRTC 
Not just in the traditional sense… 
MQTT 
HTTP/2 
TCP/UDP/IP 
Aeron 0MQ
pro·to·col noun ˈprō-tə-ˌkȯl, -ˌkōl, -ˌkäl, -kəl 
@toddlmontgomery 
! 
... 
! 
3 b : a set of conventions governing the treatment and especially the 
formatting of data in an electronic communications 
system <network protocols> 
... 
3 a : a code prescribing strict adherence to correct etiquette 
and precedence (as in diplomatic exchange and in the military 
services) <a breach of protocol> 
!
Protocols are the key to Integration 
REST has demonstrated this! 
@toddlmontgomery
Packet/Frame is common 
building block (Ethernet, 
ATM, etc.) 
Functional Protocol Composition 
@toddlmontgomery 
e.g. HTTP over TCP looks 
same as HTTP over IPC or 
HTTP over WebSocket or 
HTTP over JMS 
e.g. Streams over Messages 
is a form of Fragmentation/ 
Reassembly 
Layering becomes natural & 
trivial. Also forces 
boundaries & decoupling 
Not New
@toddlmontgomery 
TCP 
HTTP 
Shared Memory WebSocket … JMS 
Everything below the 
boundary can change even 
at runtime 
Everything above the 
boundary can assume a 
constant interface 
… … … 
Boundary might be 
asynchonrous
FIX / SBE CBOR 
HPACK 
XML JMS 
Data Format 
Divorced from Data Association 
@toddlmontgomery 
JSON 
Message 
YAML 
Map<> and other native 
associations are better than 
format specific APIs
Addressing 
Define an Endpoint 
for Connectivity 
URIs - Just, but not only Strings 
https://www.ietf.org Think about how much 
@toddlmontgomery 
context this contains! 
Simple, Natural, 
& Familiar
Endpoint can be 
anywhere 
Location Transparency 
More Forced Decoupling 
@toddlmontgomery 
Bind 
Address to “Proxy” 
“Proxy” Object Migration
Isolation & 
Deployment Containment 
OS level isolation, don’t duplicate 
at the application layer 
VM 
AMI 
App Server
BSD Sockets has it right 
Read/Write BLOBs 
Basic Low-Level API 
“Common” 
Message/Packet/Frame -based 
read(buffer, offset, length) 
write(buffer, offset, length) 
@toddlmontgomery
In Process or Out 
/mikro1 
Nuklei 
/mikro2 
Proxy 
Proxy 
https://localhost:80 
https://example.com 
https://localhost:80/mikro2 
https://example.com
Struct Overlays Semi-Stateful Parsers 
Flyweights 
Know how to access fields efficiently 
Prefer to access via dead reckoning (stateless) 
@toddlmontgomery
Flow Control… Security… 
Additionally… 
Polyglot?… Schedulers… 
@toddlmontgomery 
Java, then JavaScript, C, iOS, …
Message 
Message 
To Sum Up
https://github.com/kaazing/nuklei 
Connected. Services. Tools. 
Very Early & Still Evolving
@toddlmontgomery 
Questions? 
• Kaazing http://www.kaazing.com 
• GitHub https://github.com/kaazing 
• Slideshare http://www.slideshare.com/toddleemontgomery 
• Twitter @toddlmontgomery 
Thank You!

Más contenido relacionado

La actualidad más candente

Reliability extensions and multi hop evaluation of distributed protocol stacks
Reliability extensions and multi hop evaluation of distributed protocol stacksReliability extensions and multi hop evaluation of distributed protocol stacks
Reliability extensions and multi hop evaluation of distributed protocol stacksPeter Rothenpieler
 
Lenar Gabdrakhmanov (Provectus): Speech synthesis
Lenar Gabdrakhmanov (Provectus): Speech synthesisLenar Gabdrakhmanov (Provectus): Speech synthesis
Lenar Gabdrakhmanov (Provectus): Speech synthesisProvectus
 
Design & Check Cyclic Redundancy Code using VERILOG HDL
Design & Check Cyclic Redundancy Code using VERILOG HDLDesign & Check Cyclic Redundancy Code using VERILOG HDL
Design & Check Cyclic Redundancy Code using VERILOG HDLijsrd.com
 
FEC & File Multicast
FEC & File MulticastFEC & File Multicast
FEC & File MulticastYoss Cohen
 
Devoxx traitement automatique du langage sur du texte en 2019
Devoxx   traitement automatique du langage sur du texte en 2019 Devoxx   traitement automatique du langage sur du texte en 2019
Devoxx traitement automatique du langage sur du texte en 2019 Alexis Agahi
 
An Effective Privacy-Preserving Data Coding in Peer-To-Peer Network
An Effective Privacy-Preserving Data Coding in Peer-To-Peer NetworkAn Effective Privacy-Preserving Data Coding in Peer-To-Peer Network
An Effective Privacy-Preserving Data Coding in Peer-To-Peer NetworkIJCNCJournal
 
Analysis of Searchable Encryption
Analysis of Searchable EncryptionAnalysis of Searchable Encryption
Analysis of Searchable EncryptionNagendra Posani
 
A Compression & Encryption Algorithms on DNA Sequences Using R 2 P & Selectiv...
A Compression & Encryption Algorithms on DNA Sequences Using R 2 P & Selectiv...A Compression & Encryption Algorithms on DNA Sequences Using R 2 P & Selectiv...
A Compression & Encryption Algorithms on DNA Sequences Using R 2 P & Selectiv...IJMERJOURNAL
 
Lossless LZW Data Compression Algorithm on CUDA
Lossless LZW Data Compression Algorithm on CUDALossless LZW Data Compression Algorithm on CUDA
Lossless LZW Data Compression Algorithm on CUDAIOSR Journals
 
Analysis and improvement of pairing free certificate-less two-party authentic...
Analysis and improvement of pairing free certificate-less two-party authentic...Analysis and improvement of pairing free certificate-less two-party authentic...
Analysis and improvement of pairing free certificate-less two-party authentic...ijsptm
 
Exploiting tls to disrupt privacy of web application's traffic
Exploiting tls to disrupt privacy of web application's trafficExploiting tls to disrupt privacy of web application's traffic
Exploiting tls to disrupt privacy of web application's trafficSandipan Biswas
 
Combined 2 Bank Compiled Post: SO(IT) Date: 25.09.2021 Taker: AUST
Combined 2 Bank Compiled Post: SO(IT)  Date: 25.09.2021  Taker: AUSTCombined 2 Bank Compiled Post: SO(IT)  Date: 25.09.2021  Taker: AUST
Combined 2 Bank Compiled Post: SO(IT) Date: 25.09.2021 Taker: AUSTEngr. Md. Jamal Uddin Rayhan
 
Cryptography Using Laplace Transform
Cryptography Using Laplace TransformCryptography Using Laplace Transform
Cryptography Using Laplace TransformIJERA Editor
 
A critical reassessment of
A critical reassessment ofA critical reassessment of
A critical reassessment ofijcisjournal
 

La actualidad más candente (17)

Reliability extensions and multi hop evaluation of distributed protocol stacks
Reliability extensions and multi hop evaluation of distributed protocol stacksReliability extensions and multi hop evaluation of distributed protocol stacks
Reliability extensions and multi hop evaluation of distributed protocol stacks
 
Lenar Gabdrakhmanov (Provectus): Speech synthesis
Lenar Gabdrakhmanov (Provectus): Speech synthesisLenar Gabdrakhmanov (Provectus): Speech synthesis
Lenar Gabdrakhmanov (Provectus): Speech synthesis
 
Design & Check Cyclic Redundancy Code using VERILOG HDL
Design & Check Cyclic Redundancy Code using VERILOG HDLDesign & Check Cyclic Redundancy Code using VERILOG HDL
Design & Check Cyclic Redundancy Code using VERILOG HDL
 
FEC & File Multicast
FEC & File MulticastFEC & File Multicast
FEC & File Multicast
 
Intake 37 12
Intake 37 12Intake 37 12
Intake 37 12
 
Devoxx traitement automatique du langage sur du texte en 2019
Devoxx   traitement automatique du langage sur du texte en 2019 Devoxx   traitement automatique du langage sur du texte en 2019
Devoxx traitement automatique du langage sur du texte en 2019
 
An Effective Privacy-Preserving Data Coding in Peer-To-Peer Network
An Effective Privacy-Preserving Data Coding in Peer-To-Peer NetworkAn Effective Privacy-Preserving Data Coding in Peer-To-Peer Network
An Effective Privacy-Preserving Data Coding in Peer-To-Peer Network
 
Chapter 6 pc
Chapter 6 pcChapter 6 pc
Chapter 6 pc
 
Analysis of Searchable Encryption
Analysis of Searchable EncryptionAnalysis of Searchable Encryption
Analysis of Searchable Encryption
 
A Compression & Encryption Algorithms on DNA Sequences Using R 2 P & Selectiv...
A Compression & Encryption Algorithms on DNA Sequences Using R 2 P & Selectiv...A Compression & Encryption Algorithms on DNA Sequences Using R 2 P & Selectiv...
A Compression & Encryption Algorithms on DNA Sequences Using R 2 P & Selectiv...
 
CS6601 DISTRIBUTED SYSTEMS
CS6601 DISTRIBUTED SYSTEMSCS6601 DISTRIBUTED SYSTEMS
CS6601 DISTRIBUTED SYSTEMS
 
Lossless LZW Data Compression Algorithm on CUDA
Lossless LZW Data Compression Algorithm on CUDALossless LZW Data Compression Algorithm on CUDA
Lossless LZW Data Compression Algorithm on CUDA
 
Analysis and improvement of pairing free certificate-less two-party authentic...
Analysis and improvement of pairing free certificate-less two-party authentic...Analysis and improvement of pairing free certificate-less two-party authentic...
Analysis and improvement of pairing free certificate-less two-party authentic...
 
Exploiting tls to disrupt privacy of web application's traffic
Exploiting tls to disrupt privacy of web application's trafficExploiting tls to disrupt privacy of web application's traffic
Exploiting tls to disrupt privacy of web application's traffic
 
Combined 2 Bank Compiled Post: SO(IT) Date: 25.09.2021 Taker: AUST
Combined 2 Bank Compiled Post: SO(IT)  Date: 25.09.2021  Taker: AUSTCombined 2 Bank Compiled Post: SO(IT)  Date: 25.09.2021  Taker: AUST
Combined 2 Bank Compiled Post: SO(IT) Date: 25.09.2021 Taker: AUST
 
Cryptography Using Laplace Transform
Cryptography Using Laplace TransformCryptography Using Laplace Transform
Cryptography Using Laplace Transform
 
A critical reassessment of
A critical reassessment ofA critical reassessment of
A critical reassessment of
 

Similar a Reactive Programming Models for IoT

IoTaConf 2014 - IoT Connectivity, Standards, and Architecture
IoTaConf 2014 - IoT Connectivity, Standards, and ArchitectureIoTaConf 2014 - IoT Connectivity, Standards, and Architecture
IoTaConf 2014 - IoT Connectivity, Standards, and ArchitectureTodd Montgomery
 
QCon NY 2014 - Evolving REST for an IoT World
QCon NY 2014 - Evolving REST for an IoT WorldQCon NY 2014 - Evolving REST for an IoT World
QCon NY 2014 - Evolving REST for an IoT WorldTodd Montgomery
 
RestMS Introduction
RestMS IntroductionRestMS Introduction
RestMS Introductionpieterh
 
SOAP:Simple Object Access Protocol -XML-RPC
SOAP:Simple Object Access Protocol-XML-RPCSOAP:Simple Object Access Protocol-XML-RPC
SOAP:Simple Object Access Protocol -XML-RPCelliando dias
 
API Design and WebSocket
API Design and WebSocketAPI Design and WebSocket
API Design and WebSocketFrank Greco
 
Splunk Stream - Einblicke in Netzwerk Traffic
Splunk Stream - Einblicke in Netzwerk TrafficSplunk Stream - Einblicke in Netzwerk Traffic
Splunk Stream - Einblicke in Netzwerk TrafficSplunk
 
Real-Time with Flowdock
Real-Time with FlowdockReal-Time with Flowdock
Real-Time with FlowdockFlowdock
 
Socket programming with php
Socket programming with phpSocket programming with php
Socket programming with phpElizabeth Smith
 
Basics of tcp ip
Basics of tcp ipBasics of tcp ip
Basics of tcp ipKumar
 
0 mq the guide
0 mq   the guide0 mq   the guide
0 mq the guidehik_lhz
 
aibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madridaibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@MadridTomoya Fujita
 
Ethereum Devcon1 Report (summary writing)
Ethereum Devcon1 Report (summary writing)Ethereum Devcon1 Report (summary writing)
Ethereum Devcon1 Report (summary writing)Tomoaki Sato
 
Django in enterprise world
Django in enterprise worldDjango in enterprise world
Django in enterprise worldSimone Federici
 
Smart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and ExploitationSmart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and ExploitationTom Eston
 
LogChaos: Challenges and Opportunities of Security Log Standardization
LogChaos: Challenges and Opportunities of Security Log StandardizationLogChaos: Challenges and Opportunities of Security Log Standardization
LogChaos: Challenges and Opportunities of Security Log StandardizationAnton Chuvakin
 
Hacking Robotics(English Version)
Hacking Robotics(English Version)Hacking Robotics(English Version)
Hacking Robotics(English Version)Kensei Demura
 
Wifi Security, or Descending into Depression and Drink
Wifi Security, or Descending into Depression and DrinkWifi Security, or Descending into Depression and Drink
Wifi Security, or Descending into Depression and DrinkSecurityTube.Net
 

Similar a Reactive Programming Models for IoT (20)

IoTaConf 2014 - IoT Connectivity, Standards, and Architecture
IoTaConf 2014 - IoT Connectivity, Standards, and ArchitectureIoTaConf 2014 - IoT Connectivity, Standards, and Architecture
IoTaConf 2014 - IoT Connectivity, Standards, and Architecture
 
QCon NY 2014 - Evolving REST for an IoT World
QCon NY 2014 - Evolving REST for an IoT WorldQCon NY 2014 - Evolving REST for an IoT World
QCon NY 2014 - Evolving REST for an IoT World
 
RestMS Introduction
RestMS IntroductionRestMS Introduction
RestMS Introduction
 
SOAP:Simple Object Access Protocol -XML-RPC
SOAP:Simple Object Access Protocol-XML-RPCSOAP:Simple Object Access Protocol-XML-RPC
SOAP:Simple Object Access Protocol -XML-RPC
 
API Design and WebSocket
API Design and WebSocketAPI Design and WebSocket
API Design and WebSocket
 
Splunk Stream - Einblicke in Netzwerk Traffic
Splunk Stream - Einblicke in Netzwerk TrafficSplunk Stream - Einblicke in Netzwerk Traffic
Splunk Stream - Einblicke in Netzwerk Traffic
 
Real-Time with Flowdock
Real-Time with FlowdockReal-Time with Flowdock
Real-Time with Flowdock
 
Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
Socket programming with php
Socket programming with phpSocket programming with php
Socket programming with php
 
Routing_Article
Routing_ArticleRouting_Article
Routing_Article
 
Basics of tcp ip
Basics of tcp ipBasics of tcp ip
Basics of tcp ip
 
0 mq the guide
0 mq   the guide0 mq   the guide
0 mq the guide
 
aibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madridaibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madrid
 
Ethereum Devcon1 Report (summary writing)
Ethereum Devcon1 Report (summary writing)Ethereum Devcon1 Report (summary writing)
Ethereum Devcon1 Report (summary writing)
 
Django in enterprise world
Django in enterprise worldDjango in enterprise world
Django in enterprise world
 
soap toolkit
soap toolkitsoap toolkit
soap toolkit
 
Smart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and ExploitationSmart Bombs: Mobile Vulnerability and Exploitation
Smart Bombs: Mobile Vulnerability and Exploitation
 
LogChaos: Challenges and Opportunities of Security Log Standardization
LogChaos: Challenges and Opportunities of Security Log StandardizationLogChaos: Challenges and Opportunities of Security Log Standardization
LogChaos: Challenges and Opportunities of Security Log Standardization
 
Hacking Robotics(English Version)
Hacking Robotics(English Version)Hacking Robotics(English Version)
Hacking Robotics(English Version)
 
Wifi Security, or Descending into Depression and Drink
Wifi Security, or Descending into Depression and DrinkWifi Security, or Descending into Depression and Drink
Wifi Security, or Descending into Depression and Drink
 

Último

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Último (20)

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Reactive Programming Models for IoT

  • 1. Reactive Programming Models for IoT Todd L. Montgomery @toddlmontgomery
  • 2. Already Here! Not New! Internet of Things? Just a Silicon Valley buzzword?
  • 3. Also Not New! Reactive Programming? Just another buzzword?
  • 5. Request Response What most of us think happens
  • 6. And if not, we’ll make it! Request Response What really happens
  • 7. But… Who does this? Request Response What also really happens
  • 8. Request Response @toddlmontgomery Support (UI/Device) Security (Challenge) Keep-Alive or Watchdog User State Query
  • 9. News, Stocks, Texts/SMS, Video, Audio, Social, … Stream What also really happens
  • 10. Temperature, Heart Rate, Web Logs, Sensor Data, Seismic Readings, Steps, Stairs, Gyro Data, GPS, Acceleration, Breathing, EKG, EEG, … Ingest What also really happens
  • 11. Pretty much how everything actually works… Request Stream & Ingest Response What also really happens
  • 12. What also REALLY happens
  • 13. Request, Response, Stream, and Ingest are really types Message Message The Break Down Message-Driven Message-Driven
  • 14. Message Driven Reactive Applications Elastic Responsive Resilient http://www.reactivemanifesto.org/
  • 15. Distributed Systems Evolution REST RPC Function Call Message-Driven LISP ?
  • 17.
  • 18. HTCPCP RFC 2324, Extended by RFC 7168 "there is a strong, dark, rich requirement for a protocol designed espressoly [sic] for the brewing of coffee" http://en.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Control_Protocol @toddlmontgomery
  • 20.
  • 22. Sometimes it is good to reinvent the wheel
  • 23. What History Has Taught Us @toddlmontgomery
  • 28. Internet of Things Multi-Lingual (and Polyglot) Multi-Protocol & Multi-Standard Multi-“Platform” Huge Scale Highly Integrated
  • 29. Connected. Integrated. Great time to be a protocol geek!
  • 30. Nuklei Multi-Lingual (and Polyglot) Connected. Services. Tools. Location Transparency Multi-Protocol & Data Format Basic Low-Level API
  • 31. Protocols Deployment Container Nuklei Logic Reactive Message Stream Depends on language, runtime, platform, etc. Asynchronous Binary “Loose” Ordering
  • 32. Choice of protocols becomes deployment concern Protocols Simple, consistent usage allows functional composition of protocols Deployment Container Nuklei Logic Reactive Message Stream Basic read/write API Various Protocol Options Asynchronous Binary Boundary
  • 33. HTTP/1.1 Protocols? Shared Memory IPC CoAP AMQP WebSocket JMS WebRTC Not just in the traditional sense… MQTT HTTP/2 TCP/UDP/IP Aeron 0MQ
  • 34. pro·to·col noun ˈprō-tə-ˌkȯl, -ˌkōl, -ˌkäl, -kəl @toddlmontgomery ! ... ! 3 b : a set of conventions governing the treatment and especially the formatting of data in an electronic communications system <network protocols> ... 3 a : a code prescribing strict adherence to correct etiquette and precedence (as in diplomatic exchange and in the military services) <a breach of protocol> !
  • 35. Protocols are the key to Integration REST has demonstrated this! @toddlmontgomery
  • 36. Packet/Frame is common building block (Ethernet, ATM, etc.) Functional Protocol Composition @toddlmontgomery e.g. HTTP over TCP looks same as HTTP over IPC or HTTP over WebSocket or HTTP over JMS e.g. Streams over Messages is a form of Fragmentation/ Reassembly Layering becomes natural & trivial. Also forces boundaries & decoupling Not New
  • 37. @toddlmontgomery TCP HTTP Shared Memory WebSocket … JMS Everything below the boundary can change even at runtime Everything above the boundary can assume a constant interface … … … Boundary might be asynchonrous
  • 38. FIX / SBE CBOR HPACK XML JMS Data Format Divorced from Data Association @toddlmontgomery JSON Message YAML Map<> and other native associations are better than format specific APIs
  • 39. Addressing Define an Endpoint for Connectivity URIs - Just, but not only Strings https://www.ietf.org Think about how much @toddlmontgomery context this contains! Simple, Natural, & Familiar
  • 40. Endpoint can be anywhere Location Transparency More Forced Decoupling @toddlmontgomery Bind Address to “Proxy” “Proxy” Object Migration
  • 41. Isolation & Deployment Containment OS level isolation, don’t duplicate at the application layer VM AMI App Server
  • 42. BSD Sockets has it right Read/Write BLOBs Basic Low-Level API “Common” Message/Packet/Frame -based read(buffer, offset, length) write(buffer, offset, length) @toddlmontgomery
  • 43. In Process or Out /mikro1 Nuklei /mikro2 Proxy Proxy https://localhost:80 https://example.com https://localhost:80/mikro2 https://example.com
  • 44. Struct Overlays Semi-Stateful Parsers Flyweights Know how to access fields efficiently Prefer to access via dead reckoning (stateless) @toddlmontgomery
  • 45. Flow Control… Security… Additionally… Polyglot?… Schedulers… @toddlmontgomery Java, then JavaScript, C, iOS, …
  • 47. https://github.com/kaazing/nuklei Connected. Services. Tools. Very Early & Still Evolving
  • 48. @toddlmontgomery Questions? • Kaazing http://www.kaazing.com • GitHub https://github.com/kaazing • Slideshare http://www.slideshare.com/toddleemontgomery • Twitter @toddlmontgomery Thank You!