The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily...

25
Open Source. Open Possibilities. The AllJoyn™ Open Source Project Marcello Lioy Director, Engineering, Qualcomm Innovation Center, Inc.

Transcript of The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily...

Page 1: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

PAGE 1 Open Source. Open Possibilities.

Open Source. Open Possibilities.

The AllJoyn™ Open Source ProjectMarcello LioyDirector, Engineering, Qualcomm Innovation Center, Inc.

Page 2: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

PAGE 2 Open Source. Open Possibilities.

Agenda

AllJoyn Overview

Architecture and Security Concepts

Performance/Deployment Considerations

Availability/Open Source

Q&A

Page 3: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

PAGE 3 Open Source. Open Possibilities.

Open Source Open Possibilities

AllJoyn Overview

Page 4: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

PAGE 8 Open Source. Open Possibilities.

Open Source Open Possibilities

Architecture andSecurity Concepts

Page 9: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

PAGE 15 Open Source. Open Possibilities.

Open Source Open Possibilities

Performance/Deployment Considerations

Page 16: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

PAGE 19 Open Source. Open Possibilities.

Open Source Open Possibilities

Availability/Open Source

Page 20: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

PAGE 24 Open Source. Open Possibilities.

Questions?

Spørgsmål?

Questions?

Cwestiynau?

Questions?

Spørgsmål?

Questions?

Cwestiynau?

Page 25: The AllJoyn™ Open Source Project 9 Open Source. Open Possibilities. Overview Designed to be easily portable to new hardware and OS platforms AllJoyn is a distributed software bus

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