gena framework generalized event notification architecture over http josh cohen josh cohen

21
GENA Framework GENA Framework Generalized Event Notification Generalized Event Notification Architecture over HTTP Architecture over HTTP Josh Cohen <[email protected]> Josh Cohen <[email protected]> http://egg.microsoft.com/gena/ http://egg.microsoft.com/gena/

Upload: toby-russell

Post on 15-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

GENA FrameworkGENA Framework

Generalized Event Notification Generalized Event Notification Architecture over HTTPArchitecture over HTTP

Josh Cohen <[email protected]>Josh Cohen <[email protected]>

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

IntroductionIntroduction

Design GoalsDesign Goals Architecture LayoutArchitecture Layout Protocol OverviewProtocol Overview HTCPCPHTCPCP

An Example Schema SubtypeAn Example Schema Subtype

Design GoalsDesign Goals

Internet scaleInternet scale Generalized Event NotificationGeneralized Event Notification Leverage XML ExtensibilityLeverage XML Extensibility Leverage existing infrastructureLeverage existing infrastructure

HTTP Proxy Servers and FirewallsHTTP Proxy Servers and Firewalls

Use HTTP Object Model and FunctionalityUse HTTP Object Model and Functionality Fit into HTTP extension frameworkFit into HTTP extension framework Strong SecurityStrong Security Lightweight / High PerformanceLightweight / High Performance

Scenarios for Base ProtocolScenarios for Base Protocol

Simple, Lightweight SubscriptionsSimple, Lightweight Subscriptions Minimum requirements (HTTP only)Minimum requirements (HTTP only) Asynchronous event deliveryAsynchronous event delivery Synchronous (Polled) deliverySynchronous (Polled) delivery Lightweight UDP deliveryLightweight UDP delivery Variable use of infrastructure intelligenceVariable use of infrastructure intelligence Events can carry entity bodies or resource Events can carry entity bodies or resource

datadata

Architecture LayoutArchitecture Layout

GENA Base ProtocolGENA Base Protocol Layer model diagramLayer model diagram GENA Extension SchemasGENA Extension Schemas GENA Fan-out Aggregation Routing ProtocolGENA Fan-out Aggregation Routing Protocol Base protocol provides an easily Base protocol provides an easily

implemented functionality set but allows implemented functionality set but allows clear and easy extensibility for complex clear and easy extensibility for complex applications.applications.

Architecture OverviewArchitecture Overview

HTTP/1.1

GENA base DAV

GENA subtype schema

RVP

XML

SolutionsSolutions

Security is via TLS/SSL and Digest AuthSecurity is via TLS/SSL and Digest Auth Pattern / Search View subscriptions via DASLPattern / Search View subscriptions via DASL Batching notifications via XML or MIMEBatching notifications via XML or MIME UDP Notifications can provoke secure Polling.UDP Notifications can provoke secure Polling. UDP Notifications can be MulticastUDP Notifications can be Multicast Extensible schemas with XMLExtensible schemas with XML Integration with DAV.Integration with DAV.

Protocol OverviewProtocol Overview

New VerbsNew Verbs SUBSCRIBESUBSCRIBE UNSUBSCRIBEUNSUBSCRIBE POLLPOLL NOTIFYNOTIFY

New HeadersNew Headers Subscription-ID:Subscription-ID: Notification-Type:Notification-Type: Delivery-Control:Delivery-Control: Call-Back:Call-Back:

Protocol MessagesProtocol Messages

Subscribing to a resourceSubscribing to a resourceSUBSCRIBE http://server/resource HTTP/1.1Man: http://www.iana.org/http/genaSubscription-Type: updateCall-Back: http://mypc:8000/listener mailto: [email protected]: poll-interval=60

HTTP/1.1 200 OkExtended-Response: 20041 ;

comment=“Subscribed”Subscription-ID: ABADCAFECall-Back: http://mypc:8000/listener mailto: [email protected]

Event NotificationEvent NotificationNOFITY http://mypc:8000/listener HTTP/1.1Man: http://www.iana.org/http/genaSubscription-Type: updateSubscription-ID: ABADCAFE

HTTP/1.1 200 OkExtended-Response: 20042 ; comment=“Notification Acknowledged”

Polling a SubscriptionPolling a Subscription

POLL http://server/resource HTTP/1.1Man: http://www.iana.org/http/genaSubscription-Type: updateSubscription-ID: ABADCAFEDelivery-Control: poll-interval=60;

batch-mode=multipart/related

HTTP/1.1 200 OkExtended-Response: 20043 ;

comment=“Events Pending”Content-Type: multipart/relatedDelivery-Control: poll-interval=60;

batch-mode=multipart/related

Building upon GENABuilding upon GENA

An application specifies an XML schemaAn application specifies an XML schema Register a schema subtype identifierRegister a schema subtype identifier ““plug in” to notification subtypeplug in” to notification subtype Application specific schema is cleanly Application specific schema is cleanly

layered on top of GENA messages.layered on top of GENA messages. Application schemas exist as message Application schemas exist as message

bodies or sub-bodies.bodies or sub-bodies.

Existing InfrastructureExisting Infrastructure

Proxy Servers / FirewallsProxy Servers / Firewalls Administrators can effectively filter GENA Administrators can effectively filter GENA

message by using any of:message by using any of: HTTP Extension ID (Mandatory)HTTP Extension ID (Mandatory) HTTP MethodHTTP Method Resource URI / Call-back URIResource URI / Call-back URI When policy allows, existing proxies/firewalls can When policy allows, existing proxies/firewalls can

already deal with GENA/HTTP messagesalready deal with GENA/HTTP messages

Mail ServersMail Servers mailto callbacks end up in mailboxmailto callbacks end up in mailbox Simple filters (procmail, exchange) can process Simple filters (procmail, exchange) can process

incoming event notificationsincoming event notifications

Intelligent InfrastructureIntelligent Infrastructure

GENA aware Proxy ServersGENA aware Proxy Servers Fan-Out and Aggregation of SubscriptionsFan-Out and Aggregation of Subscriptions Subscriptions and Event Notifications become Subscriptions and Event Notifications become

Hop-by-HopHop-by-Hop Allows multi-transport delivery. Long haul SMTP, Allows multi-transport delivery. Long haul SMTP,

medium haul TCP/HTTP and short haul/LAN medium haul TCP/HTTP and short haul/LAN UDP/HTTP over multicastUDP/HTTP over multicast

GENA Aware Message BusGENA Aware Message Bus Mail Server, Proxy, etcMail Server, Proxy, etc Allows extended queuing of eventsAllows extended queuing of events

Work in ProgressWork in Progress

Proxy routing with Fan-out / AggregationProxy routing with Fan-out / Aggregation Message encryption and authenticationMessage encryption and authentication

Collaborating with SIP AuthorsCollaborating with SIP Authors

DAV Property NotificationDAV Property Notification Defining a subtype schema for PROPCHANGEDefining a subtype schema for PROPCHANGE

DASL based search result change notifyDASL based search result change notify

Example ApplicationExample Application

HTCPCP SchemaHTCPCP Schema

HyperText Coffee Pot Control ProtocolHyperText Coffee Pot Control Protocol Schema ID: http://www.iana.org/gena/htcpcpSchema 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>

HTCPCP SubscriptionHTCPCP Subscription Start a subscription for an event which Start a subscription for an event which

indicates readiness of regular french vanilla indicates readiness of regular french vanilla coffeecoffee

SUBSCRIBE http://masinter/pot1 HTTP/1.1Notification-Type: update;

subtype=http://www.iana.org/gena/htcpcpCall-Back: http://sleepy/help

mailto:[email protected]: text/xml

<? XML version=“1.0”><HTCPCP> <Status>ready</status> <flavor>French-Vanilla</flavor> <type>caffeine</type><HTCPCP>

RVP is a GENA-based protocol RVP is a GENA-based protocol for Instant Messagingfor Instant Messaging

Extends GENA based on DAV functionalityExtends GENA based on DAV functionality Leverages DAV property model for rich notification Leverages DAV property model for rich notification

functionalityfunctionality Uses DAV MKCOL, DELETE, PROPFIND, PROPPATCH Uses DAV MKCOL, DELETE, PROPFIND, PROPPATCH

methodsmethods Implemented by Microsoft for the Exchange Instant Implemented by Microsoft for the Exchange Instant

Messaging ServerMessaging Server Distributed notifications and status information between Distributed notifications and status information between

users, distribution lists, and generic “resources”, across the users, distribution lists, and generic “resources”, across the InternetInternet

Strong security features, e.g. SSLStrong security features, e.g. SSL Microsoft is working with ISPs, telecommunications Microsoft is working with ISPs, telecommunications

vendors to design interoperable notifications systems vendors to design interoperable notifications systems based on RVPbased on RVP

ConclusionConclusion

GENA is being implemented by Microsoft GENA is being implemented by Microsoft ProductsProducts

Our wish is to collaborate to agree on a Our wish is to collaborate to agree on a standard. GENA or other, we will comply.standard. GENA or other, we will comply.

Interested in GENA? Join us.Interested in GENA? Join us. [email protected]@egg.microsoft.com Subscribe genaSubscribe gena http://egg.microsoft.com/gena/http://egg.microsoft.com/gena/