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 Services Have Special Addresses
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 Get and Set Permissions for Data Delivery and Each Services Operations Relay Mesh Enforces Permissions
APEX Presence Service Determines Available Communication Protocols and Applications for a User Accessed via 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 for More Info