P2P for mobile devices

Preview:

DESCRIPTION

The slidedeck for my talk on Peer to Peer for Mobile devices at Adobe Flash Platform Summit 2011, Bangalore

Citation preview

P2P for Mobile Devices Immanuel Noel | Platform Evangelist, Adobe blog.inoel.in

What ?

P2P – File sharing? Distributed application architecture Live, Real Time connectivity for devices Flash Platform support

Why ?

• Scalability • Network Efficiency • Secure • Cloud Sourcing Information • Better User Experience • Take advantage of P2P capabilities of AIR for

Mobile

Where ?

Everything from application-level video multicasting to swarming file delivery and multiuser games without a server ! Corporate enterprise, social media, and entertainment applications

Demos Link on the last slide

The Entities

Peer RTMFP Group – Super Set of neighbors Neighbors – Directly connected peers

How ?

RTMFP Capable Server

Group

Infrastructure

• FMS Server rtmfp://<SERVER>

• Cirrus service (non-commercial), rtmfp://p2p.rtmfp.net/ + DEVELOPER+KEY

• Isolated LAN rtmfp://

Why connect to a external server?

• Facilitate connectivity • Directory of connected devices • Authenticity • Manage topology • Self managed P2P groups – No Manual Peer ID

Exchange

Real Time Media Flow Protocol

• Protocol • Enables Live, Real time connectivity • Not File Sharing, Best for streaming • Unlike RTMP, based on the UDP protocol • Rapid Connection Restore • IP Mobility • 128-bit AES encryption

Routing

Multicast Many to Many

Directed Routing One to Many

Object Replication Best effort techniques to transfer large data

Group Specifier • Define a P2P group • Specify capabilities

– Multicast – ipMulticastMemberUpdatesEnabled – MulticastEnabled – RoutingEnabled – PostingEnabled – ObjectReplicationEnabled, and more ! (Group Name + Group Capabilities) = Group Identifier

Events NetConnection.Connect.Success

NetGroup.Connect.Success

NetGroup.Neighbor.Connect

netGroup.sendToNeighbor(data) NetGroup.SendTo.Notify (event.info.message)

NetStream - Audio and Video Sender var camera:Camera = Camera.getCamera(); var mic:Microphone = Microphone.getMicrophone(); _outgoingStream.attachAudio(mic); _outgoingStream.attachCamera(camera); _outgoingStream.publish( "P2PVideo" );

Listener NetGroup.MulticastStream.PublishNotify

Receiver _incomingStream.play("P2PVideo");

Where Next

Cirrus http://labs.adobe.com/technologies/cirrus/

Sample Code

http://inoel.in/p2p

Where Right Now

Ekalavya http://bit.ly/ekalavya

Thank You

inoel@adobe.com Twitter: @immanuelnoel

http://blog.inoel.in

Recommended