View
13.188
Download
2
Category
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
Thank You
inoel@adobe.com Twitter: @immanuelnoel
http://blog.inoel.in
Recommended