zoran regvart - foss-backstage.de · dht11 + esp8266 mqtt mqtt api “25,67” convert to json...
TRANSCRIPT
![Page 1: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/1.jpg)
Integrate everythingZoran Regvart
@zregvart
![Page 2: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/2.jpg)
System integration
![Page 3: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/3.jpg)
Integration patterns
Book by Gregor Hohpe and Bobby Woolf
Common patterns and best practices
![Page 4: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/4.jpg)
Not invented here
![Page 5: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/5.jpg)
Enterprise Service Bus (ESB)
Microservices
![Page 6: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/6.jpg)
Apache Camel
Integrates with ~300 different systems using best practice patterns
Developed in Java, needs Java Virtual Machine to run
Actually an acronym: Concise Application Message Exchange Language
11 year anniversary coming this July
![Page 7: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/7.jpg)
CC Image courtesy of University of Liverpool Faculty of Health & Life Sciences
![Page 9: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/9.jpg)
Concepts
how to reuse integration best practices
how to integrate with systems
how to integrate with specific systems
how to adapt data
how to define the flow of data
Patterns
Components
Endpoints
Data transformation
Route
![Page 10: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/10.jpg)
PatternsAggregate
Circuit breaker
Delay
Dynamic routing
Enrich
Failover
Filter
Idempotency
Load balancing
Marshall/Unmarshall
Multicast
Resequence
Saga
Service call
Split
Throttle
![Page 11: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/11.jpg)
Aggregate pattern
![Page 12: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/12.jpg)
Components~300 systems/technologies you can integrate with
HTTP, message systems, APNS, Amazon *, AS2, Box, Braintree, Cassandra, CMIS, Consul, CouchDB, DNS, Docker, ElasticSearch, Facebook, File system, FTP *, GIT, GitHub, Google *, Hadoop, Hipchat, HL7, Kafka, Kubernetes, LDAP, LinkedIn, Mail, MongoDB, Nagios, OData, Openshift, Printer, REST, RSS, Salesforce, Scheduling, ServiceNow, SIP, Slack, SMS, SOAP, Solr, Spark, Splunk, SSH, SQL, Telegram, Twitter, Weather, Websocket, XMPP, Yammer, Zookeeper
![Page 13: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/13.jpg)
Endpoints
One component can have many endpoints
Endpoints can receive (consume) or send (produce)
"file:/data/orders?recursive=true"
schema path query
Endpoint URI
![Page 14: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/14.jpg)
Routes
Route defines the flow of datafrom("file:/data/orders") .unmarshal().json() .choice() .when() .jsonpath("$.[?(@.backorder==true)]") .to("sjms:queue:back_orders") .otherwise() .to("sql:INSERT INTO ORDERS...")
![Page 15: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/15.jpg)
<route> <from uri="file:/data/order" /> <unmarshal> <json /> </unmarshal> <choice> <when> <jsonpath>$...</jsonpath> <to uri="sjms:queue:..." /> </when> <otherwise> <to uri="sql:INSERT..." /> </otherwise> </choice></route>
from("file:/data/orders") .unmarshal() .json() .choice() .when() .jsonpath("$...") .to("sjms:queue:...") .otherwise() .to("sql:INSERT...")
![Page 16: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/16.jpg)
Demo
![Page 17: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/17.jpg)
DHT11 + ESP8266
MQTT APIMQTT
“25,67” Convert to JSON
“25,67”
![Page 18: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/18.jpg)
Runtime
Include in your own application: use as a library
Within standalone runtimes: Camel Main, Spring Boot, Vert.x
Application server: JEE - Wildfly or OSGI - Apache Karaf
![Page 19: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/19.jpg)
Camel and IoT
Data coming from various devices, in various formats over various protocols
IoT is an integration problem
![Page 20: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/20.jpg)
On device
Constrained
Low power
Specialised
At the edge
Connectivity
Messaging
Computing
At scale
Distribution
Scheduling
Insights
![Page 21: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/21.jpg)
IoT components in CamelCoAP
Eclipse Kura
Eclipse Milo (OPC UA): client, server
IEC 60870: client, server
MQTT (Eclipse Paho, FuseSource MQTT client, *JMS and Apache ActiveMQ)
PubNub
SNMP
![Page 22: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/22.jpg)
JBoss Camel Developer Tools
![Page 23: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/23.jpg)
Hawt.io
![Page 24: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/24.jpg)
More tooling
Camel IDEA plugin
Camel LSP server (Eclipse IDE, Visual Studio Code, Eclipse Che)
Route test coverage
![Page 25: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/25.jpg)
Camel community
~400 contributors
63 comitters (~15 companies)
31 PMC members
~120 releases
~1000 subscribers on users@ mailing list
![Page 26: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/26.jpg)
ResourcesCamel website and the new documentation on GitHub
Books: Camel in Action 2nd edition (⭐free IoT chapter⭐), Apache Camel Developer's Cookbook, Camel Design Patterns, Apache Camel Essentials
IRC #apache-camel on Freenode
Gitter https://gitter.im/apache/apache-camel
Mailing list [email protected]
![Page 27: Zoran Regvart - foss-backstage.de · DHT11 + ESP8266 MQTT MQTT API “25,67” Convert to JSON “25,67” RuntimeInclude in your own application: use as a library Within standalone](https://reader030.vdocuments.mx/reader030/viewer/2022040422/5e124cac092a0f71bb77cd90/html5/thumbnails/27.jpg)
Photo by nastya from Pexels
Thank you!
Questions?