SlideShare ist ein Scribd-Unternehmen logo
1 von 59
Downloaden Sie, um offline zu lesen
Page
Open-source tools and
frameworks for M2M
Sierra Wireless Developer Days 2013
Benjamin Cabé
Who I am
•  Benjamin Cabé
•  Open Source M2M Evangelist
•  Eclipse M2M IWG chairperson
Topics for this session
•  Open-source?
•  Eclipse Foundation
•  M2M Industry Working Group
•  Eclipse M2M projects
•  Sierra products built on OSS
50
billion
devices
by 2020
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Smart
Pill 
Box
Heartbeat
Sensor
Weight
Scale
Blood
Pressure
Medical
Services
Gateway
Near field
Blood
Sugar
Internet
of Things
Patient
Clinical Trial
Doctor
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
?
Eclipse is an open source community
f o c u s e d o n d e v e l o p i n g a
development platform of runtimes,
frameworks and exemplary tools
that make it easy and cost-effective
to build and deploy software
solutions.”
“
•  190+ organizations are members of
the Eclipse Foundation, working with
each other to leverage an open
collaboration model, as well as
marketing benefits.
•  Strategic members:
Eclipse has grown from a place where
developers have been working on
developing Open Source software,
to a place where industry leaders
work to focus, promote, and augment
Eclipse technologies to meet the
needs of specific industries.
“
Eclipse Industry Working Groups
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Our open-source strategy
IoT Building Blocks
“We provide open-source developments tools and
frameworks for M2M/IoT developers”
Our open-source strategy
IoT Building Blocks
“We provide open-source developments tools and
frameworks for M2M/IoT developers”

Interoperability
“We provide reference implementations of open
protocols and API to encourage interoperability”.
Our open-source strategy
IoT Building Blocks
“We provide open-source developments tools and
frameworks for M2M/IoT developers”

Interoperability
“We provide reference implementations of open
protocols and API to encourage interoperability”.

Open-Source Community
“We host samples, testing environments and
documentation on the m2m.eclipse.org portal”
http://m2m.eclipse.org
Open ecosystem for M2M
Third Party Ecosystem
Open M2M application
framework and runtimes
Open M2M communication
protocols
Internet of
Things
Open M2M
development tools
…
Framework
Tools
3 projects
Protocols
M2M embedded
programming
•  low-level C
•  memory
management
•  multithreaded
programming
•  read sensor values
•  control actuators
•  consolidate data
•  communicate
Example: Sending an SMS
int main()	
{	
unsigned char char1[10];	
unsigned char char_buf[8]="AT+CSQn";	
// unsigned char sms_buf[20] = "AT+CMGS="xxxxxxxxx";	
	
int wc_fd;	
/********* Init of serial port ************/	
wc_fd = init_wc(wc_fd);	
sleep(3);	
//writing to serial port	
write(wc_fd,char_buf,sizeof(char_buf));	
usleep(40000);	
//reading from serial port	
read(wc_fd,char1,sizeof(char1));	
	
sleep(2);	
close(wc_fd);	
	
return 0;	
} // end of main	
	
// initialization of serial port	
	
struct termios options;	
	
ttys5_fd = open("/dev/ttyS5", O_RDWR );	
if (ttys5_fd < 0)	
sms.send(

'+33612345678’,

'My SMS’

)
Simplify M2M programming
What is Lua?
•  High-level programming language
•  Scripting
•  Simple
•  Extensible
•  Portable
Extensible by design
•  Small
– Trivial syntax and reduced keyword set
•  Simple but not stupid
– Simple enough for new users, powerful enough
for advanced users (first-class functions,
garbage collection, closures, tail calls, coercion,
coroutines, metatables)
•  Lua core is tiny
– Compiled size is ~150kB
– Lua uses libraries for its extensions
Lua vs. other high-level languages
•  Same core features as Python, Ruby,
Javascript 
•  Better concurrency management
– Built-in – doesn’t rely on the OS
•  Cutting-edge execution technology &
performances
Lua vs. other high-level languages
•  Restricted set of libraries
– Stay simple, the developer brings his own 
•  Designed for C integration
– Performance
– Legacy
Lua for embedded and M2M?
•  High-level languages usually trade
hardware resources for development
& maintenance resources
Lua allows to reconcile high-level
languages accomplishments
with embedded constraints
You need an IDE!
•  Project structure
•  Syntax coloring
•  Content assist
•  Code navigation
•  Code formatting
•  Documentation
•  Code templates
•  Debugger
•  Remote development
•  Embedded interpreter
June 2012: first release (0.8)
Dec. 2012: 0.9 release
June 2013: 1.0 w/ Kepler
60,000 installations already!
Koneki demo
How do we
communicate?
http://www.sxc.hu/photo/1036004
M3DA*
Compact … because in the wireless world, data overhead costs money
–  Efficient in the transport of binary M2M data
Interoperable … because the M2M communication chain is heterogeneous
–  Language-independent
–  Tolerant to data schema changes
–  Agnostic to transport layer (TCP, HTTP, SMS, …)
Secure … because security is #1 concern for M2M adopters
–  Ensure integrity and confidentiality of customer data
–  Message ticket-id to enable acknowledgement
Open … because vendor lock-in hinders M2M adoption
*Micro M2M Data Access
M3DA Layered Architecture
Transport Layer M3DA Envelope	
Enables authentication, encryption, …
Application Layer M3DA Message	
Specify access to the tree-oriented data
model
Serialization Layer Bysant	
Provides an efficient binary serialization
based on contextual information
 HTTP
M3DA Transport
M3DA Payload
M3DA
Message
Command/Event/Time stamped data
Message
Command/Event/Time stamped data
…
Headers
- Device /Server Identification
- Security
auth, cipher, hmac, nonce…
- Compression 
algo, dict selection, …
TCP
 UDP
 SMS*
Transport
Bysant Serializer
M3DA = M2M data optimization
•  Object-oriented
•  Provides basic classes
–  Numbers (Integers, Floating point numbers, Boolean)
–  Strings (Binary string)
–  Container objects (List, Map)
•  User-defined objects
–  Allows to structure protocol objects (Message, Responses, DeltaVector,
…)
•  Serialization is optimized for M2M data
–  Small numbers take less bytes
–  5 ! 1 byte, 2040 ! 2 bytes
–  String size header are adaptative
–  1 byte for a 28-byte long string, but 3 bytes for 66k-byte long string.
•  Messaging protocol
•  Low-bandwidth / Low-power
•  Payload agnostic
•  Adjustable QoS
•  Large ecosystem
broker broker
(optional) bridge
publish
subscribe
keepalive
last will & testament
username/password
topic/subtopic
topic/#
Lua VM + M3DA to go?
Application framework for M2M
•  Set of libraries providing building blocks
to develop M2M applications:
– Serial and I/O management, 
– Networking (FTP, HTTP, e-mail, …),
– GPS, 
– Modbus, 
– Local storage,
– etc.
http://www.eclipse.org/mihini
Smart agent for M2M
•  M2M data queues
•  Network bearers
•  Device management
•  Application container
•  Application configuration
http://www.eclipse.org/mihini
Overall architecture
Asset management
•  User applications use an API to
communicate with Mihini
– Send data or events
– Register listeners to handle data writing or
commands
•  The Mihini agent takes care of
network connection, buffering and
reliable storage of unsent data, etc.
Asset management
local gh_asset = asset_mgt.newAsset("greenhouse")
gh_asset:start()
gh_asset:pushdata("sensors.temperature", 22, "now")
gh_asset:pushdata("sensors.humidity", 89, "hourly")
Device management
•  A Tree Manager presents device's data
as
– variables,
– organized in a hierarchical tree,
– that can be read, written, and monitored for
changes by user applications.
Device management
local devicetree = require 'devicetree'
local APN = 'system.cellular.apn.apn'
local RSSI = 'system.cellular.link.rssi'
local apn = devicetree.get (APN)
log(LOG_NAME, "INFO", "Configure APN: %s", apn)
local function print_callback (values)
for name, value in pairs(values) do
log (LOG_NAME, "INFO",
" - Variable %s changed: %s",name, value)
end
end
devicetree.register(RSSI, print_callback)
devicetree.set(APN, 'foo')
Application Management
•  Language-agnostic application
container
– install/uninstall
– start/stop, auto-start on boot
– restart on failure
•  Agent handles over-the-air software
download and update mechanism
•  Remote script execution
Let me
show you!
A very common use case
•  Greenhouse business
– Connect gardening equipment
– Remote monitoring of sensors
– Remote control
•  M2M Gateway not selected yet,
neither is the rest of the equipment
(PLCs)
DO YOU
KNOW US?
Raspberry Pi Web browser
humidity
temperature
illuminance
light ON/OFF
Modbus RTU
M3DA REST API
Web
HTML5 / JS
–  OAuth
–  AirVantage REST API
–  Displays sensor data with
a fancy UI
–  Publish command to
switch on/off the light
Two applications
Embedded

–  Uses Modbus library to
communicate w/ Arduino
–  Collects sensor data/controls
actuators
–  Publishes M3DA messages
–  Subscribe to commands
Rugged wireless
gateways
control sensors &
actuators
Mobile phones
Web applications
IT applications
Modbus
…
M2M server
Telco&
Billing& etc…&
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Hardware differentiation
ruggedness | radio certification
extensibility | services | support
Developer Zone
Software differentiation
industrial protocols
power optimization
development tools
vertical applications
real-time
professional services
…
24/7
3rd party services
security
billing
carrier integration
professional services
…
embedded server
In a nutshell
•  Prototyping made as simple as can be
•  Smooth experience for Linux-based
devices
•  New languages are coming
•  A clear path towards Sierra Wireless
offer
Thank you!
Questions?
http://m2m.eclipse.org | http://eclipse.org/koneki | http://eclipse.org/mihini

Más contenido relacionado

Andere mochten auch

Data Visualization Strategies & Open Source Tools
Data Visualization Strategies & Open Source ToolsData Visualization Strategies & Open Source Tools
Data Visualization Strategies & Open Source ToolsPhase2
 
11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack 11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack Kris Buytaert
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportYouSee
 
Mongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam HelmanMongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam HelmanHakka Labs
 
Deploying, Managing, and Leveraging Honeypots in the Enterprise using Open So...
Deploying, Managing, and Leveraging Honeypots in the Enterprise using Open So...Deploying, Managing, and Leveraging Honeypots in the Enterprise using Open So...
Deploying, Managing, and Leveraging Honeypots in the Enterprise using Open So...Jason Trost
 
oneM2M - Management, Abstraction and Semantics
oneM2M - Management, Abstraction and SemanticsoneM2M - Management, Abstraction and Semantics
oneM2M - Management, Abstraction and SemanticsoneM2M
 
Automation Open Source tools
Automation Open Source toolsAutomation Open Source tools
Automation Open Source toolsQA Club Kiev
 
Managing the Cloud with Open Source Tools
Managing the Cloud with Open Source ToolsManaging the Cloud with Open Source Tools
Managing the Cloud with Open Source ToolsNakul Ezhuthupally
 
Open Source Tool Chains for Cloud Computing
Open Source Tool Chains for Cloud ComputingOpen Source Tool Chains for Cloud Computing
Open Source Tool Chains for Cloud ComputingMark Hinkle
 
Threat Intelligence with Open Source Tools - Cornerstones of Trust 2014
Threat Intelligence with Open Source Tools - Cornerstones of Trust 2014Threat Intelligence with Open Source Tools - Cornerstones of Trust 2014
Threat Intelligence with Open Source Tools - Cornerstones of Trust 2014Santiago Bassett
 
ITIL compliant Open Source tools
ITIL compliant Open Source toolsITIL compliant Open Source tools
ITIL compliant Open Source toolsBruno Cornec
 
Achieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the EnterpriseAchieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the EnterpriseCollabNet
 
Open Source Tools & Data Science Competitions
Open Source Tools & Data Science Competitions Open Source Tools & Data Science Competitions
Open Source Tools & Data Science Competitions odsc
 
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudCloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudNew Relic
 
Development Workflow Tools for Open-Source PHP Libraries
Development Workflow Tools for Open-Source PHP LibrariesDevelopment Workflow Tools for Open-Source PHP Libraries
Development Workflow Tools for Open-Source PHP LibrariesPantheon
 

Andere mochten auch (16)

Data Visualization Strategies & Open Source Tools
Data Visualization Strategies & Open Source ToolsData Visualization Strategies & Open Source Tools
Data Visualization Strategies & Open Source Tools
 
11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack 11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology Support
 
Handout: 'Open Source Tools & Resources'
Handout: 'Open Source Tools & Resources'Handout: 'Open Source Tools & Resources'
Handout: 'Open Source Tools & Resources'
 
Mongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam HelmanMongo db - How we use Go and MongoDB by Sam Helman
Mongo db - How we use Go and MongoDB by Sam Helman
 
Deploying, Managing, and Leveraging Honeypots in the Enterprise using Open So...
Deploying, Managing, and Leveraging Honeypots in the Enterprise using Open So...Deploying, Managing, and Leveraging Honeypots in the Enterprise using Open So...
Deploying, Managing, and Leveraging Honeypots in the Enterprise using Open So...
 
oneM2M - Management, Abstraction and Semantics
oneM2M - Management, Abstraction and SemanticsoneM2M - Management, Abstraction and Semantics
oneM2M - Management, Abstraction and Semantics
 
Automation Open Source tools
Automation Open Source toolsAutomation Open Source tools
Automation Open Source tools
 
Managing the Cloud with Open Source Tools
Managing the Cloud with Open Source ToolsManaging the Cloud with Open Source Tools
Managing the Cloud with Open Source Tools
 
Open Source Tool Chains for Cloud Computing
Open Source Tool Chains for Cloud ComputingOpen Source Tool Chains for Cloud Computing
Open Source Tool Chains for Cloud Computing
 
Threat Intelligence with Open Source Tools - Cornerstones of Trust 2014
Threat Intelligence with Open Source Tools - Cornerstones of Trust 2014Threat Intelligence with Open Source Tools - Cornerstones of Trust 2014
Threat Intelligence with Open Source Tools - Cornerstones of Trust 2014
 
ITIL compliant Open Source tools
ITIL compliant Open Source toolsITIL compliant Open Source tools
ITIL compliant Open Source tools
 
Achieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the EnterpriseAchieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the Enterprise
 
Open Source Tools & Data Science Competitions
Open Source Tools & Data Science Competitions Open Source Tools & Data Science Competitions
Open Source Tools & Data Science Competitions
 
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudCloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
 
Development Workflow Tools for Open-Source PHP Libraries
Development Workflow Tools for Open-Source PHP LibrariesDevelopment Workflow Tools for Open-Source PHP Libraries
Development Workflow Tools for Open-Source PHP Libraries
 

Ähnlich wie Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days

Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013Benjamin Cabé
 
Building an Open M2M community one step at a time
Building an Open M2M community one step at a timeBuilding an Open M2M community one step at a time
Building an Open M2M community one step at a timeBenjamin Cabé
 
IoT Analytics from Edge to Cloud - using IBM Informix
IoT Analytics from Edge to Cloud - using IBM InformixIoT Analytics from Edge to Cloud - using IBM Informix
IoT Analytics from Edge to Cloud - using IBM InformixPradeep Muthalpuredathe
 
from source to solution - building a system for event-oriented data
from source to solution - building a system for event-oriented datafrom source to solution - building a system for event-oriented data
from source to solution - building a system for event-oriented dataEric Sammer
 
Mobile Email Security
Mobile Email SecurityMobile Email Security
Mobile Email SecurityRahul Sihag
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Benjamin Cabé
 
Data Capture in IBM WebSphere Premises Server - Aldo Eisma, IBM
Data Capture in IBM WebSphere Premises Server - Aldo Eisma, IBMData Capture in IBM WebSphere Premises Server - Aldo Eisma, IBM
Data Capture in IBM WebSphere Premises Server - Aldo Eisma, IBMmfrancis
 
Cloud computing security from single to multiple
Cloud computing security from single to multipleCloud computing security from single to multiple
Cloud computing security from single to multipleKiran Kumar
 
Implementing Private Clouds
Implementing Private CloudsImplementing Private Clouds
Implementing Private CloudsJohn Pritchard
 
Advanced Open IoT Platform for Prevention and Early Detection of Forest Fires
Advanced Open IoT Platform for Prevention and Early Detection of Forest FiresAdvanced Open IoT Platform for Prevention and Early Detection of Forest Fires
Advanced Open IoT Platform for Prevention and Early Detection of Forest FiresIvo Andreev
 
IRJET- Improving Data Spillage in Multi-Cloud Capacity Administration
IRJET- Improving Data Spillage in Multi-Cloud Capacity AdministrationIRJET- Improving Data Spillage in Multi-Cloud Capacity Administration
IRJET- Improving Data Spillage in Multi-Cloud Capacity AdministrationIRJET Journal
 
IRJET- Improving Data Spillage in Multi-Cloud Capacity Administration
IRJET-  	  Improving Data Spillage in Multi-Cloud Capacity AdministrationIRJET-  	  Improving Data Spillage in Multi-Cloud Capacity Administration
IRJET- Improving Data Spillage in Multi-Cloud Capacity AdministrationIRJET Journal
 
The hidden engineering behind machine learning products at Helixa
The hidden engineering behind machine learning products at HelixaThe hidden engineering behind machine learning products at Helixa
The hidden engineering behind machine learning products at HelixaAlluxio, Inc.
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeAman Kohli
 
Hands-on with AWS IoT (November 2016)
Hands-on with AWS IoT (November 2016)Hands-on with AWS IoT (November 2016)
Hands-on with AWS IoT (November 2016)Julien SIMON
 
The missing signalling layer for WebRTC
The missing signalling layer for WebRTCThe missing signalling layer for WebRTC
The missing signalling layer for WebRTCWebRTCConferenceJapan
 
An Inter-Wiki Page Data Processor for a M2M System @Matsue, 1sep., Eskm2013
An Inter-Wiki Page Data Processor for a M2M System  @Matsue, 1sep., Eskm2013An Inter-Wiki Page Data Processor for a M2M System  @Matsue, 1sep., Eskm2013
An Inter-Wiki Page Data Processor for a M2M System @Matsue, 1sep., Eskm2013Takashi Yamanoue
 
New Design Patterns in Microservice Solutions
New Design Patterns in Microservice SolutionsNew Design Patterns in Microservice Solutions
New Design Patterns in Microservice SolutionsMichel Burger
 

Ähnlich wie Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days (20)

Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013
 
Smartblitzmerker
SmartblitzmerkerSmartblitzmerker
Smartblitzmerker
 
Building an Open M2M community one step at a time
Building an Open M2M community one step at a timeBuilding an Open M2M community one step at a time
Building an Open M2M community one step at a time
 
OWF12/Java Building an Open M2M community
OWF12/Java Building an Open M2M communityOWF12/Java Building an Open M2M community
OWF12/Java Building an Open M2M community
 
IoT Analytics from Edge to Cloud - using IBM Informix
IoT Analytics from Edge to Cloud - using IBM InformixIoT Analytics from Edge to Cloud - using IBM Informix
IoT Analytics from Edge to Cloud - using IBM Informix
 
from source to solution - building a system for event-oriented data
from source to solution - building a system for event-oriented datafrom source to solution - building a system for event-oriented data
from source to solution - building a system for event-oriented data
 
Mobile Email Security
Mobile Email SecurityMobile Email Security
Mobile Email Security
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013
 
Data Capture in IBM WebSphere Premises Server - Aldo Eisma, IBM
Data Capture in IBM WebSphere Premises Server - Aldo Eisma, IBMData Capture in IBM WebSphere Premises Server - Aldo Eisma, IBM
Data Capture in IBM WebSphere Premises Server - Aldo Eisma, IBM
 
Cloud computing security from single to multiple
Cloud computing security from single to multipleCloud computing security from single to multiple
Cloud computing security from single to multiple
 
Implementing Private Clouds
Implementing Private CloudsImplementing Private Clouds
Implementing Private Clouds
 
Advanced Open IoT Platform for Prevention and Early Detection of Forest Fires
Advanced Open IoT Platform for Prevention and Early Detection of Forest FiresAdvanced Open IoT Platform for Prevention and Early Detection of Forest Fires
Advanced Open IoT Platform for Prevention and Early Detection of Forest Fires
 
IRJET- Improving Data Spillage in Multi-Cloud Capacity Administration
IRJET- Improving Data Spillage in Multi-Cloud Capacity AdministrationIRJET- Improving Data Spillage in Multi-Cloud Capacity Administration
IRJET- Improving Data Spillage in Multi-Cloud Capacity Administration
 
IRJET- Improving Data Spillage in Multi-Cloud Capacity Administration
IRJET-  	  Improving Data Spillage in Multi-Cloud Capacity AdministrationIRJET-  	  Improving Data Spillage in Multi-Cloud Capacity Administration
IRJET- Improving Data Spillage in Multi-Cloud Capacity Administration
 
The hidden engineering behind machine learning products at Helixa
The hidden engineering behind machine learning products at HelixaThe hidden engineering behind machine learning products at Helixa
The hidden engineering behind machine learning products at Helixa
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
 
Hands-on with AWS IoT (November 2016)
Hands-on with AWS IoT (November 2016)Hands-on with AWS IoT (November 2016)
Hands-on with AWS IoT (November 2016)
 
The missing signalling layer for WebRTC
The missing signalling layer for WebRTCThe missing signalling layer for WebRTC
The missing signalling layer for WebRTC
 
An Inter-Wiki Page Data Processor for a M2M System @Matsue, 1sep., Eskm2013
An Inter-Wiki Page Data Processor for a M2M System  @Matsue, 1sep., Eskm2013An Inter-Wiki Page Data Processor for a M2M System  @Matsue, 1sep., Eskm2013
An Inter-Wiki Page Data Processor for a M2M System @Matsue, 1sep., Eskm2013
 
New Design Patterns in Microservice Solutions
New Design Patterns in Microservice SolutionsNew Design Patterns in Microservice Solutions
New Design Patterns in Microservice Solutions
 

Mehr von Benjamin Cabé

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018Benjamin Cabé
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Benjamin Cabé
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?Benjamin Cabé
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Benjamin Cabé
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Benjamin Cabé
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016Benjamin Cabé
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handBenjamin Cabé
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Benjamin Cabé
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Benjamin Cabé
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTBenjamin Cabé
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Benjamin Cabé
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackBenjamin Cabé
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialBenjamin Cabé
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTBenjamin Cabé
 
Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbookBenjamin Cabé
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBenjamin Cabé
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Benjamin Cabé
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014Benjamin Cabé
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleBenjamin Cabé
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Benjamin Cabé
 

Mehr von Benjamin Cabé (20)

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in hand
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stack
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoT
 
Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbook
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetup
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day Grenoble
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013
 

Último

Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxNeo4j
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0DanBrown980551
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud DataEric D. Schabell
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfInfopole1
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...DianaGray10
 
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024Brian Pichman
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3DianaGray10
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch TuesdayIvanti
 
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIVijayananda Mohire
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosErol GIRAUDY
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingMAGNIntelligence
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applicationsnooralam814309
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdfThe Good Food Institute
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)codyslingerland1
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNeo4j
 

Último (20)

Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...
 
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch Tuesday
 
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAI
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenarios
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced Computing
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4j
 

Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days

  • 1. Page Open-source tools and frameworks for M2M Sierra Wireless Developer Days 2013 Benjamin Cabé
  • 2. Who I am •  Benjamin Cabé •  Open Source M2M Evangelist •  Eclipse M2M IWG chairperson
  • 3. Topics for this session •  Open-source? •  Eclipse Foundation •  M2M Industry Working Group •  Eclipse M2M projects •  Sierra products built on OSS
  • 13. ?
  • 14. Eclipse is an open source community f o c u s e d o n d e v e l o p i n g a development platform of runtimes, frameworks and exemplary tools that make it easy and cost-effective to build and deploy software solutions.” “
  • 15. •  190+ organizations are members of the Eclipse Foundation, working with each other to leverage an open collaboration model, as well as marketing benefits. •  Strategic members:
  • 16. Eclipse has grown from a place where developers have been working on developing Open Source software, to a place where industry leaders work to focus, promote, and augment Eclipse technologies to meet the needs of specific industries. “ Eclipse Industry Working Groups
  • 18. Our open-source strategy IoT Building Blocks “We provide open-source developments tools and frameworks for M2M/IoT developers”
  • 19. Our open-source strategy IoT Building Blocks “We provide open-source developments tools and frameworks for M2M/IoT developers” Interoperability “We provide reference implementations of open protocols and API to encourage interoperability”.
  • 20. Our open-source strategy IoT Building Blocks “We provide open-source developments tools and frameworks for M2M/IoT developers” Interoperability “We provide reference implementations of open protocols and API to encourage interoperability”. Open-Source Community “We host samples, testing environments and documentation on the m2m.eclipse.org portal”
  • 22. Open ecosystem for M2M Third Party Ecosystem Open M2M application framework and runtimes Open M2M communication protocols Internet of Things Open M2M development tools …
  • 24. M2M embedded programming •  low-level C •  memory management •  multithreaded programming •  read sensor values •  control actuators •  consolidate data •  communicate
  • 25. Example: Sending an SMS int main() { unsigned char char1[10]; unsigned char char_buf[8]="AT+CSQn"; // unsigned char sms_buf[20] = "AT+CMGS="xxxxxxxxx"; int wc_fd; /********* Init of serial port ************/ wc_fd = init_wc(wc_fd); sleep(3); //writing to serial port write(wc_fd,char_buf,sizeof(char_buf)); usleep(40000); //reading from serial port read(wc_fd,char1,sizeof(char1)); sleep(2); close(wc_fd); return 0; } // end of main // initialization of serial port struct termios options; ttys5_fd = open("/dev/ttyS5", O_RDWR ); if (ttys5_fd < 0) sms.send(
 '+33612345678’,
 'My SMS’
 )
  • 27. What is Lua? •  High-level programming language •  Scripting •  Simple •  Extensible •  Portable
  • 28. Extensible by design •  Small – Trivial syntax and reduced keyword set •  Simple but not stupid – Simple enough for new users, powerful enough for advanced users (first-class functions, garbage collection, closures, tail calls, coercion, coroutines, metatables) •  Lua core is tiny – Compiled size is ~150kB – Lua uses libraries for its extensions
  • 29. Lua vs. other high-level languages •  Same core features as Python, Ruby, Javascript •  Better concurrency management – Built-in – doesn’t rely on the OS •  Cutting-edge execution technology & performances
  • 30. Lua vs. other high-level languages •  Restricted set of libraries – Stay simple, the developer brings his own •  Designed for C integration – Performance – Legacy
  • 31. Lua for embedded and M2M? •  High-level languages usually trade hardware resources for development & maintenance resources Lua allows to reconcile high-level languages accomplishments with embedded constraints
  • 32. You need an IDE! •  Project structure •  Syntax coloring •  Content assist •  Code navigation •  Code formatting •  Documentation •  Code templates •  Debugger •  Remote development •  Embedded interpreter June 2012: first release (0.8) Dec. 2012: 0.9 release June 2013: 1.0 w/ Kepler 60,000 installations already!
  • 35. M3DA* Compact … because in the wireless world, data overhead costs money –  Efficient in the transport of binary M2M data Interoperable … because the M2M communication chain is heterogeneous –  Language-independent –  Tolerant to data schema changes –  Agnostic to transport layer (TCP, HTTP, SMS, …) Secure … because security is #1 concern for M2M adopters –  Ensure integrity and confidentiality of customer data –  Message ticket-id to enable acknowledgement Open … because vendor lock-in hinders M2M adoption *Micro M2M Data Access
  • 36. M3DA Layered Architecture Transport Layer M3DA Envelope Enables authentication, encryption, … Application Layer M3DA Message Specify access to the tree-oriented data model Serialization Layer Bysant Provides an efficient binary serialization based on contextual information HTTP M3DA Transport M3DA Payload M3DA Message Command/Event/Time stamped data Message Command/Event/Time stamped data … Headers - Device /Server Identification - Security auth, cipher, hmac, nonce… - Compression algo, dict selection, … TCP UDP SMS* Transport Bysant Serializer
  • 37. M3DA = M2M data optimization •  Object-oriented •  Provides basic classes –  Numbers (Integers, Floating point numbers, Boolean) –  Strings (Binary string) –  Container objects (List, Map) •  User-defined objects –  Allows to structure protocol objects (Message, Responses, DeltaVector, …) •  Serialization is optimized for M2M data –  Small numbers take less bytes –  5 ! 1 byte, 2040 ! 2 bytes –  String size header are adaptative –  1 byte for a 28-byte long string, but 3 bytes for 66k-byte long string.
  • 38. •  Messaging protocol •  Low-bandwidth / Low-power •  Payload agnostic •  Adjustable QoS •  Large ecosystem
  • 39. broker broker (optional) bridge publish subscribe keepalive last will & testament username/password topic/subtopic topic/#
  • 40. Lua VM + M3DA to go?
  • 41. Application framework for M2M •  Set of libraries providing building blocks to develop M2M applications: – Serial and I/O management, – Networking (FTP, HTTP, e-mail, …), – GPS, – Modbus, – Local storage, – etc. http://www.eclipse.org/mihini
  • 42. Smart agent for M2M •  M2M data queues •  Network bearers •  Device management •  Application container •  Application configuration http://www.eclipse.org/mihini
  • 44. Asset management •  User applications use an API to communicate with Mihini – Send data or events – Register listeners to handle data writing or commands •  The Mihini agent takes care of network connection, buffering and reliable storage of unsent data, etc.
  • 45. Asset management local gh_asset = asset_mgt.newAsset("greenhouse") gh_asset:start() gh_asset:pushdata("sensors.temperature", 22, "now") gh_asset:pushdata("sensors.humidity", 89, "hourly")
  • 46. Device management •  A Tree Manager presents device's data as – variables, – organized in a hierarchical tree, – that can be read, written, and monitored for changes by user applications.
  • 47. Device management local devicetree = require 'devicetree' local APN = 'system.cellular.apn.apn' local RSSI = 'system.cellular.link.rssi' local apn = devicetree.get (APN) log(LOG_NAME, "INFO", "Configure APN: %s", apn) local function print_callback (values) for name, value in pairs(values) do log (LOG_NAME, "INFO", " - Variable %s changed: %s",name, value) end end devicetree.register(RSSI, print_callback) devicetree.set(APN, 'foo')
  • 48. Application Management •  Language-agnostic application container – install/uninstall – start/stop, auto-start on boot – restart on failure •  Agent handles over-the-air software download and update mechanism •  Remote script execution
  • 50. A very common use case •  Greenhouse business – Connect gardening equipment – Remote monitoring of sensors – Remote control •  M2M Gateway not selected yet, neither is the rest of the equipment (PLCs)
  • 52. Raspberry Pi Web browser humidity temperature illuminance light ON/OFF Modbus RTU M3DA REST API
  • 53. Web HTML5 / JS –  OAuth –  AirVantage REST API –  Displays sensor data with a fancy UI –  Publish command to switch on/off the light Two applications Embedded –  Uses Modbus library to communicate w/ Arduino –  Collects sensor data/controls actuators –  Publishes M3DA messages –  Subscribe to commands
  • 54. Rugged wireless gateways control sensors & actuators Mobile phones Web applications IT applications Modbus … M2M server Telco& Billing& etc…&
  • 56. Hardware differentiation ruggedness | radio certification extensibility | services | support Developer Zone
  • 57. Software differentiation industrial protocols power optimization development tools vertical applications real-time professional services … 24/7 3rd party services security billing carrier integration professional services … embedded server
  • 58. In a nutshell •  Prototyping made as simple as can be •  Smooth experience for Linux-based devices •  New languages are coming •  A clear path towards Sierra Wireless offer
  • 59. Thank you! Questions? http://m2m.eclipse.org | http://eclipse.org/koneki | http://eclipse.org/mihini