GENA Framework

Download Report

Transcript GENA Framework

GENA Framework

Generalized Event Notification Architecture over HTTP Josh Cohen http://egg.microsoft.com/gena/

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.

Architecture Overview

RVP GENA subtype schema

XML

GENA base DAV HTTP/1.1

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.

Protocol Overview

New Verbs 

SUBSCRIBE

  

UNSUBSCRIBE POLL NOTIFY

New Headers 

Subscription-ID:

  

Notification-Type: Delivery-Control: Call-Back:

Protocol Messages

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: [email protected]

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: [email protected]

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”

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

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

Example Application

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 protected]

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.

[email protected]

 

Subscribe gena http://egg.microsoft.com/gena/