The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily...
Transcript of The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily...
PAGE 1 Open Source. Open Possibilities.
Open Source. Open Possibilities.
The AllJoyn™ Open Source ProjectMarcello LioyDirector, Engineering, Qualcomm Innovation Center, Inc.
PAGE 2 Open Source. Open Possibilities.
Agenda
AllJoyn Overview
Architecture and Security Concepts
Performance/Deployment Considerations
Availability/Open Source
Q&A
PAGE 3 Open Source. Open Possibilities.
Open Source Open Possibilities
AllJoyn Overview
PAGE 4 Open Source. Open Possibilities.
AllJoyn enables ad hoc, proximity based, peer-to-peer, platform and bearer agnostic networking between devices and applications
What is AllJoyn?
PAGE 5 Open Source. Open Possibilities.
Why Peer-to-peer (P2P) Is Hard
P2P Friction Developers Face Today
Device Discovery
Security
Platforms
ServiceDiscovery
Ad HocNetworking
Radios
TransientDevices
Pairing
PAGE 6 Open Source. Open Possibilities.
Adaptto devices coming
and going
Managetransports
like Bluetooth and Wi-Fi
and message routing
across them
ExchangeInformation in a secure
manner
Discover devices and applications around you
Interoperateacross
disparate operating
systems and bearers
AllJoyn Makes Peer-to-peer Frictionless
PAGE 7 Open Source. Open Possibilities.
MEDIA SHARINGTrade pictures,
videos or business cards
MULTI-PLAYER GAMING
Play head-to-head
PROXIMAL AWARENESS
Notification ofothers nearby
SOCIALFind people
nearby to followor places to like
CHATExchange tips, ask questions or taunt
your opponent
PROXIMAL SERVICES
Coupons & rewards
What new experiences can AllJoyn enable?
PAGE 8 Open Source. Open Possibilities.
Open Source Open Possibilities
Architecture andSecurity Concepts
PAGE 9 Open Source. Open Possibilities.
Overview
Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus Each device runs a bus daemon Applications communicate directly with daemon Daemons handle cross device communication A client library is used by applications to interact with the daemon
Bus formation is ad hoc Based on proximal discovery of applications/services Abstracts link specific discovery mechanisms
Protocol is link independent Ground-up implementation of the D-Bus wire-protocol with extensions Supports Wi-Fi and Bluetooth currently WiFi Direct being worked on
PAGE 10 Open Source. Open Possibilities.
Device 3
Daemon
AppY AppZ
Device 2
Daemon
AppX AppZ
Distributed Software Bus
TCP or BluetoothLocal socket
Conceptually peers are applications not devices. Applications communicate
with a local daemon Daemons handle routing
between devices
Device 1
Daemon
AppX AppY
PAGE 11 Open Source. Open Possibilities.
DBus Compatibility
Distributed Bus
Management
Distributed Bus
Management
Peer sessionsPeer sessionsService
Advertisement & Discovery
Service Advertisement
& Discovery
Device-to-device message routing
Device-to-device message routing
Authentication&
Encryption
Authentication&
Encryption
Header Compression
Header Compression
Message Expiration (TTL)
Message Expiration (TTL)
“Raw” Sessionsupport
“Raw” Sessionsupport
BluetoothBluetooth
Topology management
Topology management
Wire-protocolWire-protocol
Object modelObject model
Routing rulesRouting rules
Client-bus authentication
Client-bus authentication SignalsSignals
Name spaceName space
IntrospectionIntrospection Remote procedure call
Remote procedure call
WiFiWiFi
PAGE 12 Open Source. Open Possibilities.
DBus Compatibility
Distributed Bus
Management
Distributed Bus
Management
Peer sessionsPeer sessionsService
Advertisement & Discovery
Service Advertisement
& Discovery
Device-to-device message routing
Device-to-device message routing
Authentication&
Encryption
Authentication&
Encryption
Header Compression
Header Compression
Message Expiration (TTL)
Message Expiration (TTL)
“Raw” Sessionsupport
“Raw” Sessionsupport
BluetoothBluetooth
Topology management
Topology management
Wire-protocolWire-protocol
Object modelObject model
Routing rulesRouting rules
Client-bus authentication
Client-bus authentication SignalsSignals
Name spaceName space
IntrospectionIntrospection Remote procedure call
Remote procedure call
WiFiWiFi
DBus Compatibility
PAGE 13 Open Source. Open Possibilities.
Object Model
AllJoyn applications expose their functionality via objects These are typically organized in a hierarchy
Objects implement interfaces (one or more) Interfaces are composed of members, which fall into three categories Methods — classic OO object interaction Signals — asynchronous event notification
– Can be broadcast, multicast or point-to-point
Properties — data members
Application
BusObject TreeEvent
handler ProxyObject
Bus
Signal Signal
Application
PAGE 14 Open Source. Open Possibilities.
Design of Security Framework
Authentication and encryption is designed to be app-to-app The bus is not involved other than to route Trust relationship established between the applications Device pairing not required unless the transport requires it In case of Bluetooth AllJoyn does not normally trigger pairing
Security is enabled per-interface Authentication and key exchange initiated on demand
Security-enabled interface Authentication is required to make method calls Authentication required to receive signals All messages are encrypted
PAGE 15 Open Source. Open Possibilities.
Open Source Open Possibilities
Performance/Deployment Considerations
PAGE 16 Open Source. Open Possibilities.
Message Optimizations
Header compression Designed to significantly reduce the size of message headers
Time to live Designed to support isochronous data (e.g. real-time streaming/gaming)
Multipoint sessions Bounds the scope of broadcast signals to session members Provides mechanism for deciding when radios are no longer in use
These target an optimized experience on embedded devices
PAGE 17 Open Source. Open Possibilities.
Deployment Options
AllJoyn applications require the daemon to be running on the device There are three options for daemon deployment: Platform integration
– Single daemon for system, can use WiFi as well as BT today and WiFi Direct in future– Started at system startup via initialization scripts
Downloadable APK– Single daemon for system, restricted to WiFi only– Launched via intent
Bundled daemon– Daemon is bundled with the application– Also launched by intent
» Will only be used if neither other two is available
– Each application will have it’s own daemon instance
PAGE 18 Open Source. Open Possibilities.
AllJoyn enabled Android App
Integrating AllJoyn into Android
Android/Linux
Bluetooth Daemon
Android Framework
AllJoyn Daemon
D-Bus Daemon
AllJoyn Java Binding
AllJoyn JNI
AllJoyn Client Library
NDK
BT DriverWiFiInit Scripts
PAGE 19 Open Source. Open Possibilities.
Open Source Open Possibilities
Availability/Open Source
PAGE 20 Open Source. Open Possibilities.
AllJoyn Open Source Project: www.alljoyn.org
AllJoyn is an Open source project Accepting 3rd party contributions Source available on GitHub http://alljoyn.github.com
Binary SDKs available on alljoyn.org Currently have Android Soon will have Windows
Recently released 2.3 Licensed using Apache 2.0 Free to use and modify
PAGE 21 Open Source. Open Possibilities.
AllJoyn Open Source Project: www.alljoyn.org
AllJoyn is an Open source project Accepting 3rd party contributions Source available on GitHub http://alljoyn.github.com
Binary SDKs available on alljoyn.org Currently have Android Soon will have Windows
Recently released 2.3 Licensed using Apache 2.0 Free to use and modify
PAGE 22 Open Source. Open Possibilities.
AllJoyn Open Source Project: www.alljoyn.org
AllJoyn is an Open source project Accepting 3rd party contributions Source available on GitHub http://alljoyn.github.com
Binary SDKs available on alljoyn.org Currently have Android Soon will have Windows
Recently released 2.3 Licensed using Apache 2.0 Free to use and modify
PAGE 23 Open Source. Open Possibilities.
AllJoyn Open Source Project: www.alljoyn.org
AllJoyn is an Open source project Accepting 3rd party contributions Source available on GitHub http://alljoyn.github.com
Binary SDKs available on alljoyn.org Currently have Android Soon will have Windows
Recently released 2.3 Licensed using Apache 2.0 Free to use and modify
PAGE 24 Open Source. Open Possibilities.
Questions?
Spørgsmål?
Questions?
Cwestiynau?
Questions?
Spørgsmål?
Questions?
Cwestiynau?
PAGE 25 Open Source. Open Possibilities.
Copyright © 2012 Qualcomm Innovation Center, Inc. All rights reserved. AllJoyn is a trademark of Qualcomm Innovation Center, Inc. Other product and brand names may be trademarks or registered trademarks of their respective owners.
Disclaimer