220 likes | 354 Views
Internet Peer-to-Peer Application Infrastructure. Darren New Invisible Worlds, Inc <dnew@invisible.net>. 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
E N D
Internet Peer-to-Peer Application Infrastructure Darren New Invisible Worlds, Inc <dnew@invisible.net>
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/appl=wb@example.com • Services Have Special Addresses • im:apex=presence@example.com
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