1 / 21

GENA Framework

GENA Framework. Generalized Event Notification Architecture over HTTP Josh Cohen <joshco@microsoft.com> http://egg.microsoft.com/gena/. Introduction. Design Goals Architecture Layout Protocol Overview HTCPCP An Example Schema Subtype. Design Goals. Internet scale

monty
Download Presentation

GENA Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GENA Framework Generalized Event Notification Architecture over HTTP Josh Cohen <joshco@microsoft.com> http://egg.microsoft.com/gena/

  2. Introduction • Design Goals • Architecture Layout • Protocol Overview • HTCPCP • An Example Schema Subtype

  3. 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

  4. 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

  5. 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.

  6. RVP GENA subtype schema XML GENA base DAV HTTP/1.1 Architecture Overview

  7. 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.

  8. New Verbs SUBSCRIBE UNSUBSCRIBE POLL NOTIFY New Headers Subscription-ID: Notification-Type: Delivery-Control: Call-Back: Protocol Overview

  9. Protocol Messages

  10. Subscribing to a resource SUBSCRIBE http://server/resource HTTP/1.1 Man: http://www.iana.org/http/gena Subscription-Type: update Call-Back: http://mypc:8000/listener mailto: joshco@microsoft.com Delivery-Control: poll-interval=60 HTTP/1.1 200 Ok Extended-Response: 20041 ; comment=“Subscribed” Subscription-ID: ABADCAFE Call-Back: http://mypc:8000/listener mailto: joshco@microsoft.com

  11. Event Notification NOFITY http://mypc:8000/listener HTTP/1.1 Man: http://www.iana.org/http/gena Subscription-Type: update Subscription-ID: ABADCAFE HTTP/1.1 200 Ok Extended-Response: 20042 ; comment=“Notification Acknowledged”

  12. Polling a Subscription POLL http://server/resource HTTP/1.1 Man: http://www.iana.org/http/gena Subscription-Type: update Subscription-ID: ABADCAFE Delivery-Control: poll-interval=60; batch-mode=multipart/related HTTP/1.1 200 Ok Extended-Response: 20043 ; comment=“Events Pending” Content-Type: multipart/related Delivery-Control: poll-interval=60; batch-mode=multipart/related

  13. 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.

  14. 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

  15. 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

  16. 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

  17. Example Application

  18. HTCPCP Schema • HyperText Coffee Pot Control Protocol • Schema ID: http://www.iana.org/gena/htcpcp <htcpcp> <coffeeType>Decaf</coffeeType> <coffeeType>Caffeine</coffeeType> <flavor>regular</flavor> <flavor>French Vanilla</flavor> <status>idle</status> <status>brewing</status> <status>ready</status> </htcpcp>

  19. 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:sleepy@microsoft.com Content-Type: text/xml <? XML version=“1.0”> <HTCPCP> <Status>ready</status> <flavor>French-Vanilla</flavor> <type>caffeine</type> <HTCPCP>

  20. 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

  21. 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/

More Related