Slide 1

Slide 1 text

@YoditStanton

Slide 2

Slide 2 text

Open data is data that is made available by organisations, businesses and individuals for anyone to access, use and share. Open data has to have a licence that says it is open data. Without a licence, the data can’t be reused. The licence might also say: ● that people who use the data must credit whoever is publishing it (this is called attribution) ● that people who mix the data with other data have to also release the results as open data (this is called share-alike)

Slide 3

Slide 3 text

Real Time data commons

Slide 4

Slide 4 text

Context of Scale - Traditional tech architecture will not scale to these volumes - People and devices need to find data easily “20 Billion IoT devices to be connected by 2020” — Gartner Expected no of Daily Messages - 333x the size of Twitter - 94x the size of WhatsApp IoT

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

■ HTTP like ■ Over UDP ■ Use GET, POST, PUT, DELETE ■ coap://example.se:5683/~sensors./temp1.xml CoAP

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

MQTT ■ PUB/SUB Protocol ■ Tiny Packets on the Wire ■ Suitable for low bandwidth devices

Slide 9

Slide 9 text

Topics /users/yods/home/livingroom/light1 /users/yods/work/fridge

Slide 10

Slide 10 text

Topic Matching Show me all data for my office ■ /users/yods/myoffice/* Show me all data from the lights in my office ■ /users/yods/myoffice/+/lights

Slide 11

Slide 11 text

MQTT Security - TLS - Device Authentication - Provenance (**Only OpenSensors)

Slide 12

Slide 12 text

Machine to Machine

Slide 13

Slide 13 text

Acme Car Park

Slide 14

Slide 14 text

Machine to Web

Slide 15

Slide 15 text

Transducers “composable algorithmic transformations”

Slide 16

Slide 16 text

Take one reducing fn and return another Do something with a seq of data to reuse functions on different data sources

Slide 17

Slide 17 text

(defn xform [xs] (->> xs (map #(+ 2 %)) (filter odd?))) (reduce + (xform (range 0 10)) (def xform2 (comp (map #(+ 2 %)) (filter odd?))) (transduce xform2 + (range 0 10))

Slide 18

Slide 18 text

Build pipes of channels

Slide 19

Slide 19 text

Why? Faster - XML parsing example (defn dothread [doc] (->> [doc] (mapcat :content) (filter #(= :chapter (:tag %))) (filter #(= "Introduction" (get-in % [:attrs :name]))) (mapcat :content) (filter #(= :para (:tag %))) (mapcat :content) (filter string?))) Threading Benchmark Evaluation count : 22646520 in 60 samples of 377442 calls. Execution time mean : 2.685036 µs Transducer Benchmark Evaluation count : 50155860 in 60 samples of 835931 calls. Execution time mean : 1.276018 µs

Slide 20

Slide 20 text

Why? Lightweight - Ability to create sophisticated analytics on the fly lumbering frameworks

Slide 21

Slide 21 text

Thank You @yoditstanton