peer-to-peer technology: driving innovative user …assets.en.oreilly.com/1/event/61/peer-to-peer...

29
PAGE 1 Open Source. Open Possibilities. Open Source. Open Possibilities. Peer-to-Peer Technology: Driving Innovative User Experiences in Mobile Marcello Lioy Director, Engineering, Qualcomm Innovation Center, Inc.

Upload: dangcong

Post on 11-Mar-2018

219 views

Category:

Documents


1 download

TRANSCRIPT

PAGE 1 Open Source. Open Possibilities.

Open Source. Open Possibilities.

Peer-to-Peer Technology: Driving Innovative User Experiences in Mobile

Marcello Lioy

Director, Engineering,

Qualcomm Innovation Center, Inc.

PAGE 2 Open Source. Open Possibilities.

Agenda

AllJoyn Overview

Architecture and Security Concepts

Performance Considerations

Open Source

Q&A

PAGE 3 Open Source. Open Possibilities.

AllJoyn Overview

PAGE 4 Open Source. Open Possibilities.

AllJoyn enables ad hoc, proximity based, peer-to-peer, bearer

agnostic networking between devices and applications

What is AllJoyn?

PAGE 5 Open Source. Open Possibilities.

What is peer-to-peer and why is it important?

Enables devices and applications to

communicate with each other without the

need of a server

Mobile peer-to-peer will enable a new

generation of proximal experiences

PAGE 6 Open Source. Open Possibilities.

TRANSPORTS LIKE BLUETOOTH® AND WI-FI ARE NOT ENOUGH

Radio technologies alone

have not made P2P easy.

(ex: Bluetooth® pairing)

P2P enablers have

not become

ubiquitous or open

P2P via the cloud is not

proximal, adds latency,

requires a WWAN, and

subjects the user to

data charges

Why Peer-to-Peer (P2P) Is Hard

PAGE 7 Open Source. Open Possibilities.

Adaptto devices

coming and going

Manage transports like Bluetooth® and

Wi-Fi and message routing

across them

Interoperate across disparate

Operating Systems and

bearers

Exchange Information in a secure manner

AllJoyn Makes Peer-to-Peer Simple

Discover devices and applications around you

PAGE 8 Open Source. Open Possibilities.

MEDIA

SHARINGTrade pictures,

videos or business

cards

MULTI-PLAYER

GAMINGPlay head-to-head

PROXIMAL

AWARENESSNotification of others

nearby

SOCIAL

Find people nearby to

follow or places to like

CHATExchange tips, ask

questions or taunt your

opponent

PROXIMAL

SERVICESCoupons & rewards

What new experiences can AllJoyn enable?

PAGE 9 Open Source. Open Possibilities.

Architecture and Security Concepts

PAGE 10 Open Source. Open Possibilities.

Overview

AllJoyn is a distributed software bus

Each device runs a bus daemon

Applications communicate directly with daemon

Daemons on each device communicate with daemons on other devices

Daemons do message routing and namespace management

Bus formation is ad hoc

Based on proximal discovery

Abstracts multiple discovery mechanisms

Protocol is transport independent

Ground-up implementation of the D-Bus wire-protocol with extensions

Supports Wi-Fi and Bluetooth currently

PAGE 11 Open Source. Open Possibilities.

Why the D-Bus Wire Protocol?

Why reinvent the wheel?

www.freedesktop.org/wiki/Software/dbus

IPC mechanisms used on many Linux distributions

Deeply integrated with system services and session management

Supports RPCs as well as unicast and multicast events

Message bus architecture

RPC and events implemented as messages

P2P came from extending bus cross device; messages flow over bigger bus

Object oriented

Objects, interfaces, methods, and properties

Language neutral

Bindings for C, Java, Python, Perl, etc.

PAGE 12 Open Source. Open Possibilities.

DBus Compatibility

Distributed

Bus

Management

Peer sessionsService

Advertisement

& Discovery

Device-to-device

message

routing

Authentication

&

Encryption

Header

Compression

Message

Expiration (TTL)

“Raw” Session

support

Bluetooth

Topology

management

Wire-protocol

Object model

Routing rules

Client-bus

authenticationSignals

Name space

IntrospectionRemote

procedure call

WiFi

DBus Compatibility

PAGE 13 Open Source. Open Possibilities.

Device 1

Daemon

App X App Y

Device 3

Daemon

App Y

Device 2

Daemon

Distributed Software Bus

TCP or Bluetooth

Local socket

Conceptually peers are

applications, not devices.

Applications communicate

with a local daemon.

Daemons handle routing

between devices.

App ZApp X App Z

PAGE 14 Open Source. Open Possibilities.

Ad-hoc Bus Formation

Actual discovery mechanism is transport dependent

On Wi-Fi a lightweight IP multicast protocol

On Bluetooth device discovery with EIR and SDP query

Device

Eureka!

Advertise-Name

request

Find-Name

request Device

Daemon

Service AppClient App

Daemon

PAGE 15 Open Source. Open Possibilities.

Device Device

Ad-hoc Bus Formation

Once connected daemons form single bus with shared namespace

Peers can discover when other peers join or leave bus

Peers can make RPC calls and send and receive events

Session reference counting keeps device-to-device connections alive

Multicast events can be sent to all peers in the session

Peer Session

Distributed bus DaemonDaemon

Service AppClient App

PAGE 16 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

Bus

Object

TreeEvent

handler Proxy

Object

Bus

Signal Signal

Application

PAGE 17 Open Source. Open Possibilities.

Language Bindings

Native implementation for AllJoyn is C++

Java binding is available for Android

Binding for JavaScript is under development

Considering bindings for C, C# and Python

Object model is similar for all bindings

PAGE 18 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

PAGE 19 Open Source. Open Possibilities.

AllJoyn

Application

Security Model—Authentication and Encryption

Application

can allow a

mix of security-

enabled and

non-secure

interfaces.

Maintain own

key store—can

use password.

Method calls to security-enabled

interface are designed to be

encrypted and authenticated. If

call encrypted, so is reply.

AllJoyn

Distributed

Bus

AllJoyn

Application

AllJoyn

Application

Key

Store

Key

Store

Key

StoreSignals from a

security-enabled

interface are

designed to be

encrypted and

authenticated.

PAGE 20 Open Source. Open Possibilities.

Performance Considerations

PAGE 21 Open Source. Open Possibilities.

Message Efficiency

Header compression

Designed to significantly reduce the size of message headers

Intended for messages that are sent frequently

Designed to allow short messages to fit into single-slot Bluetooth packets

Time to live

Added for multi-player games and streaming where stale data is useless

Expired messages are silently discarded

Mainly applies to signals

Introduces a new message header field

Multipoint sessions

Bounds the scope of broadcast signals to session members

Provides mechanism for deciding when radios are no longer in use

PAGE 22 Open Source. Open Possibilities.

Direct Point-to-Point Bulk Data Exchange

Raw Sessions

Removes overhead by providing direct access to underlying socket

Application can read/write any data to the socket

1. AllJoyn sets up a regular peer-to-peer session

2. Peers call daemon to obtain the file descriptor for socket

3. Daemon returns open file descriptors to peers, closes session

4. Session is gone but sockets remain open

Process

Available in current 2.0 release

PAGE 23 Open Source. Open Possibilities.

Open Source

PAGE 24 Open Source. Open Possibilities.

Why Open Source AllJoyn?

Qualcomm Innovation Center, Inc. (QuIC)

Brings together dedicated group of engineers focused on OSS

Enables and optimizes open source software with Qualcomm technology

QuIC is a large contributor to WebKit and other OSS projects

Peer-to-peer success relies on network effect

Must be on as many devices as possible

Not practical for QuIC to port to every platform

Allow OSS community to add platforms

– As well as features, and fixes! All contributions are welcome!

To further enable this chose Apache 2.0 license

– It is a common and well accepted OSS license

– Provides flexibility to licensees and developers

PAGE 25 Open Source. Open Possibilities.

AllJoyn Open Source Project: www.alljoyn.org

Launched Jan. 2011

GitHub hosts source

alljoyn.github.com

Apache 2 License

Download

Documentation

SDK

Contribute Code

Participate

Get Source

PAGE 26 Open Source. Open Possibilities.

Open Source Status

Publishing updates to the source all weekdays

Publish a binary SDK when we do major releases

Released version 2.0 mid May

Have process in place for accepting third party contributions

Building user community

Lots of discussions on the forums

Broad range of questions and topics

PAGE 27 Open Source. Open Possibilities.

Summary

Easier P2P Development

OS and platform independent

Multiple language bindings

Multiple transports

Launched January 2011

SDK download and forums at www.alljoyn.org

Source code available on GitHub at www.github.com/alljoyn

Open Source Sponsored by QuIC

Download SDK Download Source Code Contribute

PAGE 28 Open Source. Open Possibilities.

Questions?

Spørgsmål?

Questions?

Cwestiynau?

Questions?

Spørgsmål?

Questions?

Cwestiynau?

PAGE 29 Open Source. Open Possibilities.

Copyright © 2011 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