SlideShare a Scribd company logo
1 of 59
Download to read offline
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
Smart
Pill 
Box
Heartbeat
Sensor
Weight
Scale
Blood
Pressure
Medical
Services
Gateway
Near field
Blood
Sugar
Internet
of Things
Patient
Clinical Trial
Doctor
?
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
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…&
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

More Related Content

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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
 

Similar to 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
 

More from 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é
 

More from 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
 

Recently uploaded

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Recently uploaded (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

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
  • 5.
  • 6.
  • 7.
  • 8.
  • 10.
  • 11.
  • 12.
  • 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
  • 17.
  • 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…&
  • 55.
  • 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