Click here to load reader
Upload
immanuelnoel
View
13.188
Download
2
Embed Size (px)
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