Citrix Octoblu Architecture Breakdown

17
© 2014 Citrix. Confidential. ‹#› Octoblu connects everything to everything. Everything is a Node whether a Person, Service, Thing, Sensor, Flow, etc. Every Node is uniquely addressable with a UUID and accessible with a Token. JSON addressed by UUID can be sent and received to / from any node. Flows can automate anything by connecting nodes and adding logic. Cross-protocol APIs are available for machine-to-machine messaging w/o flows. Deployed anyway that meets your security and connectivity needs.

Transcript of Citrix Octoblu Architecture Breakdown

Page 1: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Octoblu connects everything to everything.

Everything is a Node whether a Person, Service, Thing, Sensor, Flow, etc.

Every Node is uniquely addressable with a UUID and accessible with a Token.

JSON addressed by UUID can be sent and received to / from any node.

Flows can automate anything by connecting nodes and adding logic.

Cross-protocol APIs are available for machine-to-machine messaging w/o flows.

Deployed anyway that meets your security and connectivity needs.

Page 2: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Architecture Overview

Page 3: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Deployed Your Way!

Isolated Deployment

OctobluFlow Engine

Your Gateway Device (s)

OctobluFlow Engine Your Gateway Device (s)

Our Cloud Deployment

Our Cloud

OctobluFlow Engine Your Gateway Device (s)

Your Cloud Deployment

Your CloudOur cloud deployments are cloud portable because they run on node.js in docker containers on VMs.

Even isolated gateways can mesh together because Meshblu supports highly distributed mesh deployments.

Meshblu

Meshblu

Gateblu

Gateblu

Meshblu Gateblu

Page 4: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Architecture

Page 5: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Page 6: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Octoblu• User interface for device and channel

management• User interface for security

configuration of devices• Visual designer for flow design and

deployment• User interface supports mobile tablets• Process monitoring of devices and

flows• BigData analytics and basic machine

learning• Scalable. Deployable as private/public

clouds or on a small appliance

Page 7: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Meshblu• Cross-protocol messaging platform (HTTPS,

COAP, MQTT, WebSockets)• Device Registry / Directory• Security authentication with UUID / Token • Security authorization with device ownership,

permissions with whitelists and blacklists• Secure message encryption for devices with

public/private keys• Scalable. Deployable as private/public

clouds or on a small appliance• Open source

Page 8: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Gateblu & Mobiblu

• Device plugin manager• Allows device plugins to be

configured and run on the edge• Platform agnostic (Windows,

Linux, Mac, IOS, and Android)• Supports native device protocols

including BLE & AllJoyn• Open source (Gateblu)

Page 9: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Flow Engine (Octo)• Flow automation engine that

runs flows in secure containers in Octoblu’s cloud

• Allows custom automations to be run 24 X 7 once deployed

• Can run multiple user automations concurrently

Page 10: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Securely – With your encryption or ours. It’s your data after all!!

Payloads can now be encrypted too!

Page 11: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Message Routing

Page 12: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Meshblu – Device Registration and Message Routing 1. Register Sensor (CoAP)POST coap://meshblu.octoblu.com/devices {"type": "sensor"} => {"uuid":"8f8ad80b-ffae-4495-a63e-81b89ffd9ddf", "type":"sensor"}

2. Register Arduino (Websocket)POST https://meshblu.octoblu.com/devices {"type": "arduino"} = {"uuid":"2daac3bd-9b5a-472b-a78e-4294623e7f35", "type": "arduino"}

3. Register Hue (HTTP)POST https://meshblu.octoblu.com/devices {"type": "hue"} = {"uuid":"91204397-b701-4415-a3c7-190bfd14559d", "type": "hue"}

4. Arduino subscribes to sensor broadcast (Websocket)meshblu.subscribe("8f8ad80b-ffae-4495-a63e-81b89ffd9ddf")

5. Sensor sends broadcast messagecoap POST coap://meshblu.octoblu.com/messages {"fromUUid": "8f8ad80b-ffae-4495-a63e-81b89ffd9ddf", "devices": "*", "payload": {"temp":100}}

6. Arduino queries device registry for hue devicesmeshblu.devices({"type":"hue"}) => [{"uuid":"91204397-b701-4415-a3c7-190bfd14559d","type":"hue"}]

7. Sends direct message to hue: turn greenmeshblu.send({"fromUUid": "2daac3bd-9b5a-472b-a78e-4294623e7f35", "devices": "*", "payload": {"color":"green"}})

Page 13: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Meshblu – Device Security 1. Register Arduino (Websocket)POST https://meshblu.octoblu.com/devices {"type": "arduino"} => {"uuid":"2daac3bd-9b5a-472b-a78e-4294623e7f35", "type": "arduino"}

2. Register Hue A (HTTP)POST https://meshblu.octoblu.com/devices {"type": "hue"} => {"uuid":"91204397-b701-4415-a3c7-190bfd14559d", "type": "hue"}

3. Register Hue B (HTTP)POST https://meshblu.octoblu.com/devices {"type": "hue", "discoveryWhitelist": ["e78ed30b-aa8b-41b0-98dc-eac49bb59d28"]} => {"uuid":"17e95928-f361-46a6-89df-82308608e590", "type": "hue", "discoveryWhitelist": ["e78ed30b-aa8b-41b0-98dc-eac49bb59d28"]}

4. Arduino queries device registry for hue devices, only Hue A is returnedmeshblu.devices({"type":"hue"}) => [{"uuid":"91204397-b701-4415-a3c7-190bfd14559d","type":"hue"}]

Page 14: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Meshblu – Encrypted Payload 1. Register Gateway with a Public Key (base64 encoded) (Websocket)POST https://meshblu.octoblu.com/devices {"type": "gateway", "publicKey":"LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JR2ZNQTBHQ1NxR1NJYjNEUUV...MDRaWndJREFRQUINCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ=="} = {"uuid":"6d56961a-5725-4a64-a4f9-d68a8f17216c", "type": "gateway"}

2. Register Arduino owned by Gateway (Websocket)POST https://meshblu.octoblu.com/devices {"type": "arduino", "owner": "6d56961a-5725-4a64-a4f9-d68a8f17216c"} = {"uuid":"2daac3bd-9b5a-472b-a78e-4294623e7f35", "type": "arduino"}

3. Arduino sends Gateway encrypted messageGET https://meshblu.octoblu.com/devices/6d56961a-5725-4a64-a4f9-d68a8f17216c/publickey => {"publicKey" : "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JR2ZNQTBHQ1NxR1NJYjNEUUV...MDRaWndJREFRQUINCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ=="}meshblu.send({"fromUUid": "2daac3bd-9b5a-472b-a78e-4294623e7f35", "devices": ["6d56961a-5725-4a64-a4f9-d68a8f17216c"], "payload": {"metadata":"not a secret"}, "encryptedPayload":"U2hoaGhoaGhoaGggc2VjcmV0Cg=="})

Page 15: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Octoblu – User Signup and Device Management 1. Sign Up For Octoblu / Create Meshblu device (HTTP)POST https://meshblu.octoblu.com/devices {"type": "user",} = {"uuid":"6d56961a-5725-4a64-a4f9-d68a8f17216c", "type": "user"}

2. Get Device ListGET https://meshblu.octoblu.com/devices => []

3. Register WeMo owned by User (Websocket)POST https://meshblu.octoblu.com/devices {"type": "wemo", "owner": "6d56961a-5725-4a64-a4f9-d68a8f17216c"} = {"uuid":"2daac3bd-9b5a-472b-a78e-4294623e7f35", "type": "wemo"}

4. Connect Twitter5. Create Flow, Tweet to Turn Off Lights6. View status/activity of flow/devices

Page 16: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Octoblu – Start an “Octo” 1. Deploy flow, register with MeshbluPOST https://meshblu.octoblu.com/devices {"type": "octoblu:flow"} => {"uuid":"8f8ad80b-ffae-4495-a63e-81b89ffd9ddf", "type":"octoblu:flow"}

2. Start an Octo3. Octo allows node to node communication4. Emit pulse to Octoblu designermeshblu.send({"fromUUid": "8f8ad80b-ffae-4495-a63e-81b89ffd9ddf", "devices": "*", "topic": "pulse", "payload": {"node": "a403a485-25bb-4e8f-9c55-23042b58761c"}}

5. Stop Flow shuts down Octo

Page 17: Citrix Octoblu Architecture Breakdown

© 2014 Citrix. Confidential.‹#›

Core Technologies

Operational Partners