Introduction Design Goals Architecture Layout Protocol Overview HTCPCP An Example Schema Subtype
Design Goals Internet scale Generalized Event Notification Leverage XML Extensibility Leverage existing infrastructure HTTP Proxy Servers and Firewalls Use HTTP Object Model and Functionality Fit into HTTP extension framework Strong Security Lightweight / High Performance
Scenarios for Base Protocol Simple, Lightweight Subscriptions Minimum requirements (HTTP only) Asynchronous event delivery Synchronous (Polled) delivery Lightweight UDP delivery Variable use of infrastructure intelligence Events can carry entity bodies or resource data
Architecture Layout GENA Base Protocol Layer model diagram GENA Extension Schemas GENA Fan-out Aggregation Routing Protocol Base protocol provides an easily implemented functionality set but allows clear and easy extensibility for complex applications.
Solutions Security is via TLS/SSL and Digest Auth Pattern / Search View subscriptions via DASL Batching notifications via XML or MIME UDP Notifications can provoke secure Polling. UDP Notifications can be Multicast Extensible schemas with XML Integration with DAV.
Building upon GENA An application specifies an XML schema Register a schema subtype identifier “plug in” to notification subtype Application specific schema is cleanly layered on top of GENA messages. Application schemas exist as message bodies or sub-bodies.
Existing Infrastructure Proxy Servers / Firewalls Administrators can effectively filter GENA message by using any of: HTTP Extension ID (Mandatory) HTTP Method Resource URI / Call-back URI When policy allows, existing proxies/firewalls can already deal with GENA/HTTP messages Mail Servers mailto callbacks end up in mailbox Simple filters (procmail, exchange) can process incoming event notifications
Intelligent Infrastructure GENA aware Proxy Servers Fan-Out and Aggregation of Subscriptions Subscriptions and Event Notifications become Hop-by-Hop Allows multi-transport delivery. Long haul SMTP, medium haul TCP/HTTP and short haul/LAN UDP/HTTP over multicast GENA Aware Message Bus Mail Server, Proxy, etc Allows extended queuing of events
Work in Progress Proxy routing with Fan-out / Aggregation Message encryption and authentication Collaborating with SIP Authors DAV Property Notification Defining a subtype schema for PROPCHANGE DASL based search result change notify
HTCPCP Schema HyperText Coffee Pot Control Protocol Schema ID: http://www.iana.org/gena/htcpcp Decaf Caffeine regular French Vanilla idle brewing ready
HTCPCP Subscription Start a subscription for an event which indicates readiness of regular french vanilla coffee SUBSCRIBE http://masinter/pot1 HTTP/1.1 Notification-Type: update; subtype=http://www.iana.org/gena/htcpcp Call-Back: http://sleepy/help mailto:email@example.com Content-Type: text/xml ready French-Vanilla caffeine
RVP is a GENA-based protocol for Instant Messaging Extends GENA based on DAV functionality Leverages DAV property model for rich notification functionality Uses DAV MKCOL, DELETE, PROPFIND, PROPPATCH methods Implemented by Microsoft for the Exchange Instant Messaging Server Distributed notifications and status information between users, distribution lists, and generic “resources”, across the Internet Strong security features, e.g. SSL Microsoft is working with ISPs, telecommunications vendors to design interoperable notifications systems based on RVP
Conclusion GENA is being implemented by Microsoft Products Our wish is to collaborate to agree on a standard. GENA or other, we will comply. Interested in GENA? Join us. Majordomo@egg.microsoft.com Subscribe gena http://egg.microsoft.com/gena/