Upload
arianna-leblanc
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
Internet Peer-to-Peer Application Infrastructure
Darren New
Invisible Worlds, Inc
BEEP and APEX
• Blocks Extensible Exchange Protocol• draft-ietf-beep-framework-11.txt
• draft-ietf-beep-tcpmapping-06.txt
• Application Exchange framework• draft-mrose-apex-core-00.txt
• draft-mrose-apex-access-00.txt
• draft-mrose-apex-presence-00.txt
Why BEEP?
• Stop Reinventing the Wheel
• Design the Application, Not the Support
• Framing, Encoding, Reporting
• Parallelism, Synchronization, Flow-Control
• Authentication, Privacy
• Extensible but Simple (but not too simple!)• draft-mrose-beep-design-01.txt
BEEP Introduction
• Connection-Oriented
• Message-Oriented
• Peer-to-Peer
BEEP is Connection-Oriented
• Ordered Delivery of Messages
• Reliable Delivery
• Flow-Controlled
• Multiple Sub-connections (“channels”) per Connection (“session”)
BEEP is Message-Oriented
• Loosely-Coupled
• Application-Specific Syntax
• 1 <-> 1 or 1 <-> N Messaging
BEEP is Peer-to-Peer
• Bi-directional Channel Initiation
• Bi-directional Message Delivery
• Multiple Independent Channels
• Asynchronous Message Delivery
• Can be Client-Server
BEEP Architecture
• Sessions
• Channels
• Profiles
• Privacy and Authentication
• Other Goodies
• No Naming or Authorization
BEEP Sessions
• One or More Underlying Connections• (Right now, just a single TCP connection)
• One User Identity
• One Privacy Policy
• One or More Channels• (One for control, many for application)
BEEP Channels
• Control Channel Always Open
• Zero or More Data Exchange Channels
• Messages Pass Both Ways on Channels
• Intra-Channel is Sequential
• Inter-Channel is Unsynchronized
BEEP Profiles
• Messages on Control Channel Open and Close Other Channels
• Greeting Offers Multiple Profiles
• Profiles Define Syntax and Semantics
• Profiles Are Extensibility Mechanism
• Tuning Profiles vs Data Exchange Profiles
Privacy and Authentication
• Use Initial Tuning Profiles First
• Greeting Can Offer TLS• (All channels closed, encryption starts, new greeting sent)
• Greeting Can Offer Any SASL Mechanism• (All channels take on new identity)
• Either Peer Can Start TLS
• Either or Both Peers Can Start SASL
Other BEEP Goodies
• Standardized Error-Reporting Available
• Segmentation of Messages
• Flow-Control of Delivery
• Implementation-Checking Redundancy
Naming and Authorization
• Not Directly Addressed by BEEP
• Each Profile Will Have Different Naming Requirements
• Authorization Depends On Naming
BEEP Tools
• SpaceKits in Tcl, Java, Perl, Python
• Ethereal and TCPDump modules
• SEP, ASP, APEX, IDWG (maybe), reliable syslog, XRP, WCIP
• Eventually, Apache2 Module, C library
APplication EXchange Framework (APEX)
• Extensible Asynchronous Application Message Relaying
• Built on Top of BEEP
• Applications Inject Requests to be Delivered to Other Applications
• Relay Mesh Delivers Messages
• Provides Naming, Authorization, Presence
APEX Addresses
• Addresses Are URIs in “im:”
• Multiple Applications Per User• im:fred/[email protected]
• Services Have Special Addresses• im:[email protected]
APEX Messages
• XML: Sender, Receivers, Flags, Content• (Internal or external reference to content)
• Best-Effort Store-and-Forward Datagrams• (Applications generally use time-outs and cancellations)
• Can Request Delivery Receipts, Traces
• Routing Based on DNS SRV Records
• Soon, End-System Reliable Multicast
APEX Access Service
• Determines Which Services May Do What For Each User Combination
• Accessed via im:apex=access@domain
• Get and Set Permissions for Data Delivery and Each Service’s Operations
• Relay Mesh Enforces Permissions
APEX Presence Service
• Determines Available Communication Protocols and Applications for a User
• Accessed via im:apex=presence@domain
• Each User Specifies Set of • Destination URI (I.e., end-point identifier)
• Application Info URI (defines protocol)
• “Available Until” and “Capabilities”
• Publish, Subscribe, Watch
APEX Applications
• Instant Messaging
• Wide Area Multi-cache
Summary
• BEEP - High-Quality Standardized Framework for Peer-to-Peer Connection-Oriented Internet Protocols
• APEX - High-Quality Standardized Application for Peer-to-Peer Datagram-Oriented Internet Protocols
• http://www.bxxp.org/ for More Info