CARRIOTS TECHNICAL PRESENTATION Alvaro Everlet, CTO alvaro.everlet@carriots.com @aeverlet Oct 2013
CARRIOTS TECHNICAL PRESENTATION 1. WHAT IS CARRIOTS 2. BUILDING AN IOT PROJECT 3. DEVICES 4. PLATFORM 5. FRONTEND 6. INTEGRATION 7. CARRIOTS KEY BENEFITS 8. WHERE TO GO NEXT
CARRIOTS TECHNICAL PRESENTATION 1. WHAT IS CARRIOTS 2. BUILDING AN IOT PROJECT 3. DEVICES 4. PLATFORM 5. FRONTEND 6. INTEGRATION 7. CARRIOTS KEY BENEFITS 8. WHERE TO GO NEXT
WHAT IS CARRIOTS Platform as a Service (Paas) designed for Internet of Things (IoT) and Machine to Machine (M2M) projects What you can do with Carriots Collect and store any kind of data from your devices Build powerful solutions with our application engine Deploy and scale from tiny prototypes to thousands of devices
CARRIOTS TECHNICAL PRESENTATION 1. WHAT IS CARRIOTS 2. BUILDING AN IOT PROJECT 3. DEVICES 4. PLATFORM 5. FRONTEND 6. INTEGRATION 7. CARRIOTS KEY BENEFITS 8. WHERE TO GO NEXT
BUILDING AN IOT PROJECT PROJECT STACK FRONTEND CUSTOM IT SYSTEMS PRESENTATION (MONITOR & REPORT) Internet PLATFORM Connectivity Internet APPLICATION (DB & MIDDLEWARE & RULE ENGINE) HARDWARE SENSORS & ACTUATORS (THINGS)
BUILDING AN IOT PROJECT Users INTEGRATION Custom interface FRONTEND Custom Dashboard & control panel Users Custom IT Servers HTTPS PUSH/PULL Webservices HTTPS REST Webservices Custom Reporting & data download HTTPS Web interface REST API RS 485 RS 485 SECURITY RS 485 Gateway LOGS & DEBUG Gateway BIG DATA STORAGE HTTP 3G / Ethernet Gateway HTTP 3G / Ethernet PROJECT & DEVICE MANAGEMENT HTTP 3G / Ethernet CONNECTED DEVICES & PRODUCTS REST API HTTP 3G / Ethernet EVENT PROCESSING Gateway Zigbee / Radio Zigbee / Radio Zigbee / Radio BUSINESS RULES CONTROL PANEL EXTERNAL COMMUNICATION MODULE HTTP API HTTP API HTTP API Other APIs EXTERNAL APIS
BUILDING AN IOT PROJECT COMPLEX OR POWERFUL? LET S DO A QUICK TOUR OF IOT PROJECT ELEMENTS FOLLOWING AN EXAMPLE: SMART PARKING (SMART CITY USE CASE)
BUILDING AN IOT PROJECT DEVICES They have sensors collecting raw data, e.g.: Magnetic car detection in a parking place. They have actuators to control things, e.g.: LED display panel in the streets They need Internet connectivity, e.g.: a gateway or embedded 3G modem PLATFORM Store all the raw data: Big data DB that can be queried to perform analysis and BI Contains and execute all the application logic: rules, alarms, etc. Provides device and its software management, e.g.: device provisioning, enabling and disabling devices, change its firmware, etc. FRONTEND To make an application usable the frontend provides the interface with final users, e.g.: custom control panel, dashboard, reporting, etc. INTEGRATION Carriots can integrate with other systems and PUSH or PULL data to/from CRMs, ERPs or any available HTTP API, e.g.: IBM s IOC, Dropbox, Zoho, Twitter, etc.
CARRIOTS TECHNICAL PRESENTATION 1. WHAT IS CARRIOTS 2. BUILDING AN IOT PROJECT 3. DEVICES 4. PLATFORM 5. FRONTEND 6. INTEGRATION 7. CARRIOTS KEY BENEFITS 8. WHERE TO GO NEXT
SENSORS & ACTUATORS Sensors collect raw data that must be read by a device. Sensors can measure temperature, presence, wind, magnetic fields, energy, liquid flow, air quality, liquid properties, vibrations, geographical position, altitude, pressure, etc. DEVICES Asset + Gateway connectivity Serial (e.g. RS232 or RS485) or radio (e.g. 868MHz) device-gateway communication Sensor network + Gateway WIFI or ethernet devices-gateway local communication Actuators can interact with the physical world. They can open or close doors, show messages, switch lights, send signals, control liquid flow, manage HVAC machines, switch on/off engines, etc. COMMUNICATION PROTOCOL Devices interact with Carriots with standard protocol HTTP / HTTPS for the Internet layer and JSON or XML format in app layer (REST API) CONNECTIVITY To be part of an IoT project, the devices must be connected to the Internet to interact. HTTP 3G / Ethernet HTTP 3G / Ethernet Gateway Standalone connectivity Embedded 3G / GPRS modems in device RS 485 Gateway Zigbee
DEVICES EXAMPLE: sending parking place data from a device HTTP request POST /streams HTTP/1.1! Host: api.carriots.com! Accept: application/json! User-Agent: place_524@smartparking! Content-Type: application/json! carriots.apikey:98346673a637...5a0d83045425407ab4! Content-Length: 182! Connection: close!! Data (PAYLOAD) {! "protocol":"v2",! "at":"now",! "device":"place_524@smartparking",! "data":{"parking":"on"},! "checksum":"2c0766329b4d4b3beb08...97ae7b7de2160be"! } REST API URL (POST request) JSON FORMAT SECURITY (APIKEY) Checksum (HMAC) validation Carriots automatic data timestamping Device (Apikey must allow it) Custom information to be sent 1: HTTP request DEVICE REST API 2: REST API response
CARRIOTS TECHNICAL PRESENTATION 1. WHAT IS CARRIOTS 2. BUILDING AN IOT PROJECT 3. DEVICES 4. PLATFORM 5. FRONTEND 6. INTEGRATION 7. CARRIOTS KEY BENEFITS 8. WHERE TO GO NEXT
REST API Following an Internet standard, Carriots implements a REST API over HTPPS to: Receive massive amount of data from the devices. Fully interact with Carriots entities to build custom control panels, dashboards and reporting tools. E.g.: Parking sensors send parking status (free or taken) to Carriots REST API with a simple HTTP query. Custom control panel uses the REST API for full management. BIG DATA STORAGE Massive amount of data is stored in big data architecture in a schemaless structure. It PLATFORM provides IoT projects the flexibility to manage heterogeneous data from different devices. E.g.: Temperature, geographical position, parking place status, etc. PROJECT & DEVICE MANAGEMENT IoT projects can be organized to fulfill any requirement. Carriots starts with a simple ready to use hierarchy and offers the power to set custom complexity level. Firmware update and remote device configuration are also available. E.g.: adjust parking sensor sampling frequency or led display default message. REST API SECURITY LOGS & DEBUG BIG DATA STORAGE PROJECT & DEVICE MANAGEMENT REST API EVENT PROCESSING BUSINESS RULES CONTROL PANEL EXTERNAL COMMUNICATION MODULE
BUSINESS RULES & EVENT PROCESSING IoT project logic is held and run at the platform. Groovy scripts executed in the SDK engine are launched (and isolated) on a event based if-then-else approach. From simple scripts to full complex business rules. E.g.: If parking_sensor= occupied then parking_area.places -1. If parking_area.places=0 then display.message= Parking full SECURITY IoT projects must consider security issues from its design phase. Carriots approach: Apikeys to define privileges and visibility. HTTPS to encrypt REST API requests & responses. HMAC hash and pre-shared password to re-authenticate and content verification. Custom encryption or additional security PLATFORM measures (custom script code). LOGS & DEBUG Log messages (accessible from the control panel) and debug console are tools to ease IoT projects development. CONTROL PANEL Carriots control panel grants all IoT project management from a web interface, even if custom control panels are developed to final users. EXTERNAL COMMUNICATION MODULE Send emails, send SMS, interact with external systems integration, etc. Carriots platform offers this features with a powerful dedicated module. REST API SECURITY LOGS & DEBUG BIG DATA STORAGE PROJECT & DEVICE MANAGEMENT REST API EVENT PROCESSING BUSINESS RULES CONTROL PANEL EXTERNAL COMMUNICATION MODULE
PLATFORM EXAMPLE: Groovy logic that reacts when a parking place data is received // Libraries! import com.carriots.sdk.device;! import com.carriots.sdk.utils.basichttp;!! // Free places counter update! def device = Device.find('ParkingControl@smartparking');! def places = new Integer(device.device_properties.FreePlaces);! device.device_properties.freeplaces=places-1;! device.update();!!! // Place update! def place = Device.find(context.device);! place.device_properties['free']='no';! place.update();!! // Display location! def led = Device.find('LedDisplay-12@smartparking');! def address = led.device_properties.address;! def token = led.device_properties.token;!! // Display update! def basichttp = new BasicHttp();! basichttp.url = "http://"+address+"/message";! basichttp.params=["text":"free places: "+device.device_properties.freeplaces, "token":token];! basichttp.send();! SDK LIBRARIES IMPORT DATA BASE ACCESS CUSTOM PROPERTIES MANAGEMENT CARRIOTS -> DEVICE COMMUNICATION IP address stored as device property
PLATFORM CARRIOTS CONTROL PANEL SCREENSHOT LISTENER CREATION EXAMPLE ENTITY SURVEILLANCE EVENT TO WATCH IF-THEN-ELSE APPROACH PRE-WRITTEN SCRIPTS GROOVY SCRIPTS
CARRIOTS TECHNICAL PRESENTATION 1. WHAT IS CARRIOTS 2. BUILDING AN IOT PROJECT 3. DEVICES 4. PLATFORM 5. FRONTEND 6. INTEGRATION 7. CARRIOTS KEY BENEFITS 8. WHERE TO GO NEXT
CARRIOTS CONTROL PANEL Built-in control Carriots control panel is the first tool needed to build an IoT project. Create project hierarchy to arrange its particular configurations, manage apikeys to define fine grained privileges and visibility, manage all project s data, use debug tools, etc. E.g.: Define parking areas, set display message, etc. FRONTEND MONITORING Monitoring techniques & tools: REST API pooling for data exploitation. Data file download Custom Carriots generated charts Event based data PUSH FRONTEND Custom Dashboard & control panel Users DASHBOARD & CONTROL PANEL Custom dashboards and control panels built upon Carriots REST API are the final user interfaces, what customers really see and use. Web based or mobile apps. E.g.: Custom maps showing parking places, custom availability charts, visual led display management, etc. HTTPS REST Webservices REST API Custom Reporting & data download CONTROL PANEL HTTPS Web interface
CARRIOTS TECHNICAL PRESENTATION 1. WHAT IS CARRIOTS 2. BUILDING AN IOT PROJECT 3. DEVICES 4. PLATFORM 5. FRONTEND 6. INTEGRATION 7. CARRIOTS KEY BENEFITS 8. WHERE TO GO NEXT
INTEGRATION EXTERNAL IT SYSTEMS Carriots REST API (data PULL), full customizable PUSH approach and full customizable HTTP/s requests (RESTful) grants the true IoT projects potential. E.g.: Custom ERP, Zoho CRM, ArcGIS, custom data warehouses, IBM s Intelligent Operation center, Weather forecasts, External environmental APIs, etc. BUILT-IN Carriots SDK engine has built-in libraries to make easier and faster integration: Dropbox Twitter Massive mailing International SMS Sockets Users INTEGRATION Custom interface Other APIs EXTERNAL APIS Custom IT Servers HTTPS PUSH/PULL Webservices HTTP API HTTP API HTTP API REST API EXTERNAL COMMUNICATION MODULE
CARRIOTS TECHNICAL PRESENTATION 1. WHAT IS CARRIOTS 2. BUILDING AN IOT PROJECT 3. DEVICES 4. PLATFORM 5. FRONTEND 6. INTEGRATION 7. CARRIOTS KEY BENEFITS 8. WHERE TO GO NEXT
CARRIOTS KEY BENEFITS LESSONS LEARNED FROM DEVELOPING IOT SOLUTIONS The main benefits of using Carriots as a M2M App Platform are: TIME Development time can be reduced by 10X. MONEY Lower cost of development (10X) Lower cost of operation (10X) RELIABILITY Follow best practices in IoT project development proven to work Security Features specially designed for IoT Single Framework for IoT project development
CARRIOTS TECHNICAL PRESENTATION 1. WHAT IS CARRIOTS 2. BUILDING AN IOT PROJECT 3. DEVICES 4. PLATFORM 5. FRONTEND 6. INTEGRATION 7. CARRIOTS KEY BENEFITS 8. WHERE TO GO NEXT
WHERE TO GO NEXT FREE ACCOUNT Free account, up to 10 devices: carriots.com/joinus Documentation, tutorials, first steps and much more: carriots.com/developers CONSULTANCY SERVICES Product definition, architecture, specification, design and integration requirements (connectivity, electronics, etc.) Product development (custom web front-ends, mobile apps or back-end development on Carriots platform) Technical assessments on Carriots development platform. Hire consultants. CORPORATE AND PRIVATE CLOUD Use Carriots PaaS on a Public Cloud. Pay as you grow model based on used devices. Run Carriots software on a Private Cloud, remotely installed and maintained. carriots.com/pricing
CARRIOTS TECHNICAL PRESENTATION Alvaro Everlet, CTO alvaro.everlet@carriots.com @aeverlet Oct 2013