Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
CARRIOTS TECHNICAL PRESENTATION BUILDING AN INTERNET OF THINGS PROJECT
Oct 2013
Alvaro Everlet, CTO [email protected]
@aeverlet
BUILDING AN INTERNET OF THINGS PROJECT
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 INTERNET OF THINGS PROJECT
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 INTERNET OF THINGS PROJECT
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
BUILDING AN INTERNET OF THINGS PROJECT
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 INTERNET OF THINGS PROJECT
BUILDING AN IOT PROJECT
PROJECT STACK
FRONTEND
PLATFORM
CUSTOM IT SYSTEMS
PRESENTATION(MONITOR & REPORT)
APPLICATION(DB & MIDDLEWARE
& RULE ENGINE)
SENSORS & ACTUATORS(THINGS)HARDWARE
Connectivity
InternetInternet
BUILDING AN INTERNET OF THINGS PROJECT
BUILDING AN IOT PROJECT
HTTPSREST
Webservices
Zigbee / Radio
HTTP3G / Ethernet
HTTP3G / Ethernet
HTTP3G / Ethernet
HTTP3G / Ethernet
Zigbee / Radio
Zigbee / Radio
REST API
GatewayRS 485 Gateway
RS 485 Gateway
RS 485 Gateway
BIG DATA STORAGE
BUSINESS RULES
REST API
PROJECT & DEVICE
MANAGEMENT
EVENT PROCESSING
HTTPSPUSH/PULLWebservicesCustom
ITServers
Custom Dashboard & control panel
Custom Reporting &
data download
UsersUsers
CONTROL PANEL
SECURITY
CONNECTED DEVICES & PRODUCTS
INTEGRATION
HTTPSWeb interface
Custom interface
FRONTEND
LOGS & DEBUG
EXTERNAL COMMUNICATION
MODULE
Other APIs
HTTPAPI
HTTPAPI
HTTPAPI
EXTERNALAPIS
BUILDING AN INTERNET OF THINGS 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
BUILDING AN INTERNET OF THINGS 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.
BUILDING AN IOT PROJECT
BUILDING AN INTERNET OF THINGS PROJECT
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 INTERNET OF THINGS PROJECT
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. 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. CONNECTIVITY To be part of an IoT project, the devices must be connected to the Internet to interact. Standalone connectivity Embedded 3G / GPRS modems in device
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 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)
DEVICES
Zigbee
HTTP3G / Ethernet
HTTP3G / Ethernet
Gateway
RS 485 Gateway
BUILDING AN INTERNET OF THINGS PROJECT
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"!}
DEVICES
REST APIDEVICE
1: HTTP request
2: REST API response
REST API URL (POST request)
JSON FORMAT
SECURITY (APIKEY)
Carriots automatic data timestamping
Checksum (HMAC) validation
Device (Apikey must allow it)
Custom information to be sent
BUILDING AN INTERNET OF THINGS PROJECT
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 INTERNET OF THINGS PROJECT
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
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.
PLATFORM
REST API
BIG DATA STORAGE
BUSINESS RULES
REST API
PROJECT & DEVICE
MANAGEMENT
EVENT PROCESSING
CONTROL PANEL
SECURITY
LOGS & DEBUG
EXTERNAL COMMUNICATION
MODULE
BUILDING AN INTERNET OF THINGS PROJECT
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
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.
PLATFORM
REST API
BIG DATA STORAGE
BUSINESS RULES
REST API
PROJECT & DEVICE
MANAGEMENT
EVENT PROCESSING
CONTROL PANEL
SECURITY
LOGS & DEBUG
EXTERNAL COMMUNICATION
MODULE
BUILDING AN INTERNET OF THINGS PROJECT
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();!
PLATFORM
SDK LIBRARIES IMPORT
DATA BASE ACCESS
CUSTOM PROPERTIES MANAGEMENT
CARRIOTS -> DEVICE COMMUNICATION IP address stored as device property
BUILDING AN INTERNET OF THINGS PROJECT
PLATFORM
IF-THEN-ELSE APPROACH
GROOVY SCRIPTS
CARRIOTS CONTROL PANEL SCREENSHOT LISTENER CREATION EXAMPLE
EVENT TO WATCH
PRE-WRITTEN SCRIPTS
ENTITY SURVEILLANCE
BUILDING AN INTERNET OF THINGS PROJECT
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 INTERNET OF THINGS PROJECT
FRONTEND 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. 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.
MONITORING Monitoring techniques & tools: • REST API pooling for data exploitation. • Data file download • Custom Carriots’ generated charts • Event based data PUSH
HTTPSREST
Webservices
REST API
Custom Dashboard & control panel
Custom Reporting &
data download
UsersFRONTEND
CONTROL PANEL
HTTPSWeb interface
BUILDING AN INTERNET OF THINGS PROJECT
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 INTERNET OF THINGS PROJECT
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
INTEGRATION
REST API
HTTPSPUSH/PULLWebservices
Custom IT
Servers
Users INTEGRATION
Custom interface
EXTERNAL COMMUNICATION
MODULE
Other APIs
HTTPAPI
HTTPAPI
HTTPAPI
EXTERNALAPIS
BUILDING AN INTERNET OF THINGS PROJECT
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 INTERNET OF THINGS PROJECT
LESSONS LEARNED FROM DEVELOPING IOT SOLUTIONS The main benefits of using Carriots as a M2M App Platform are:
CARRIOTS KEY BENEFITS
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
BUILDING AN INTERNET OF THINGS PROJECT
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 INTERNET OF THINGS PROJECT
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.
WHERE TO GO NEXT
carriots.com/pricing
CARRIOTS TECHNICAL PRESENTATION BUILDING AN INTERNET OF THINGS PROJECT
Oct 2013
Alvaro Everlet, CTO [email protected]
@aeverlet