Talk that I gave about the intersection of Eclipse, open source, and open standards in machine-to-machine (M2M) and Internet of Things (IoT). This was given at the MSTF of the GSC meeting in Atlanta.
2. Agenda
• Brief introduction to Eclipse
• What we’re doing in M2M
• Future steps
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 2
3. Members of Eclipse
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 3
4. 190 members
10 Strategic Members
1 Enterprise Member
1017 committers, representing 100+ organizations
The Members of Eclipse
Strategic Members
Enterprise Members
7-May-2013 4Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0
7. Transparency
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 7
Andrew Magill – flickr.com
8. Openness
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 8
Chris J. Fry – flickr.com
9. Predictability
7-May-2013 9Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0
Eclipse 3.0 Eclipse 3.1 Callisto Europa Ganymede Galileo Helios Indigo Juno
0
10
20
30
40
50
60
70
80
3
7
10
21
23
33
39
62
72
17 18
24
33
46
55
Projects Million LOC
13. However…
The market is fragmented
– Hardware, software, protocols…
all different, independent
– Lack of integration…
between devices, to enterprise systems
M2M development is complex
– Many different skills required…
Hardware, Embedded, IT network, Telecom, web
– No common architectural guidelines
Current options are closed
– Monolithic solutions…
device specific, app specific, market specific
– Proprietary SDKs, protocols, potential vendor lock-in
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 13
14. Open ecosystem for M2M
Third Party Ecosystem
Open M2M application
framework and runtimes
Open M2M communication
protocols
Internet of
Things
Open M2M
development tools
…
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 14
16. hardware abstraction
server communication
application container
scripting engine
framework toolsprotocols
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 16
19. MQTT in a Nutshell
■ MQTT == MQ Telemetry Transport
■ In a nutshell
“A light weight event and message oriented
protocol allowing devices to asynchronously
communicate efficiently across constrained
networks to remote systems”
20. MQTT - Publish Subscribe Messaging
A Publish Subscribe messaging protocol allowing a message to be published once and multiple
consumers (applications / devices) to receive the message providing decoupling between the producer
and consumer(s)
A producer sends (publishes) a message (publication) on a topic (subject)
A consumer subscribes (makes a subscription) for messages on a topic (subject)
A message server / broker matches publications to subscriptions
• If no matches the message is discarded
• If one or more matches the message is delivered to each matching subscriber/consumer
21. Benefits of MQTT verses HTTP
■ Push delivery of messages / data / events
– MQTT – low latency push delivery of messages from client to server and server
to client
• Helps bring an event oriented architecture to the web
– HTTP – push from client to server but poll from server to client
• Efficient use of network
– For an M2M project the number of bytes with MQTT was 137130 bytes per device per month
with HTTP the number of bytes was 801000 bytes per device per month
• Reliable delivery over fragile network
– MQTT will deliver message to QOS even across connection breaks
• Decoupling and publish subscribe – one to many delivery
Source: http://stephendnicholas.com/archives/1217
22. M3DA Layered Architecture
Application Layer – M3DA::Message
– Specify access to the tree-oriented data
model
Transport Layer – M3DA::Envelope
– Enables authentication, encryption,
compression, …
Serialization Layer – Bysant
– Provides an efficient binary
serialization based on contextual
information
Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public
License 1.0
22
HTTP
M3DA Transport
M3DA Payload
M3DA
Message
Command/Event/Data
Message
Command/Event/Data
…
Headers
- Device /Server Identification
- Security
auth, cipher, hmac, nonce…
- Compression
algo, dict selection, …
TCP UDP SMS*
Transport
Bysant Serializer
7-May-2013
23. • M3DA is an open-source, royalty-free
protocol
• Specifications and client reference
implementation of the protocol is available in
the Eclipse Mihini project (EPL license)
• Reference server implementation is available
on GitHub: M3DA server
M3DA Open-source
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 23
24. Open Protocols
• MQTT has always been available royalty-free
– Now an OASIS TC
– operates under the Non-Assertion Mode of the
OASIS IPR Policy
• M3DA
– Specification and implementation are made
available under the Eclipse Public License
– Royalty-free patent license
– See http://wiki.eclipse.org/Mihini/M3DA_Specification
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 24
29. Open Source is the Freedom to
Control Your Own Destiny
OSS Freedoms*
Freedom 0
to run the program,
for any purpose
Freedom 1
to study how the program works,
and change it to
make it do what you wish
Freedom 2
to redistribute copies
Freedom 3
to distribute copies of your
modified versions to others
(*) As defined by the Free Software Foundation
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 29
30. OSI: Open Standards Definition
• Goals:
– Any license (free, open or closed)
– Any implementation
– Any implementor
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 30
31. OSI: Open Standards Definition
• No intentional secrets preventing
interoperable implementations
• Freely and publicly available
• Essential patents
– Royalty free or
– Non-assertion when practiced by open source
• No agreements on deployments
• Dependencies
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 31
32. How to Win
• Open standards and open source are
complementary
• Open source implementations drive
– Developer adoption
• Essential to all adoption
– Interoperability
– Customer freedom
7-May-2013 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0 32