RVP Protocol for Real-Time Presence Information Sonu Aggarwal Lead Program Manager, Exchange Instant Messaging Microsoft Corporation
RVP is a platform for notification applications Instant Messaging Instant Messages between users, distribution lists (“instances” or “classes”) Online presence tracking tracking status ( “Online”, “Offline”, etc.) in real time Distributed Notifications Infrastructure e.g. pager apps, package tracking
Design requirements Internet scale Federated architecture Organizations want control of their messaging Meet demanding enterprise requirements Compatibility with existing proxy and firewall infrastructure Strong security & access control, even for cross- domain communication IP addresses cannot be disseminated outside an organization High performance Extensible
The federated model ENTERPRISE INTRANETS ISP Clients ISP Server Network Enterprise Server Network Clients Enterprise Server Network Clients Internet users/philc users/scottm microsoft.com acmewidgets.com msn.com
RVP is based on existing standards and efforts Based on the GENA framework Strict extension of HTTP/1.1 SUBSCRIBE, UNSUBSCRIBE, NOTIFY, POLL Adopts the DAV property model Uses the DAV MKCOL, PROPFIND, PROPPATCH methods User resources have an “online-status” property, besides others Users, lists, resources have URIs: e.g. “ or “ ments/”
Protocol examples: IM and status subscriptions A user subscribes to his “home node” to receive incoming notifications: SUBSCRIBE /users/bruceb/ HTTP/1.1 Host: im.acmewidgets.com From: Man: Notification-Type: update; subtype = Call-Back: Subscription-Lifetime: A user subscribes to another user’s properties, including online status: SUBSCRIBE /users/stevem/ HTTP/1.1 Host: im.microsoft.com From: Man: Notification-Type: update; subtype = Call-Back: Subscription-Lifetime: 86400
Protocol example: set online status PROPPATCH /users/bruceb/ HTTP/1.1 Host: im.acmewidgets.com From: Man: Content-Type: text/xml Content-Length: xxxx <D:propertyupdate> <Z:leased-value> online online offline offline </Z:leased-value> </D:propertyupdate>
Protocol example: instant message notification NOTIFY /users/bruceb/ HTTP/1.1 Host: im.acmewidgets.com From: Man: Notification-Type: update; subtype = Content-Type: text/xml Content-length: xxxx <Z:notification> <Z:notification-to> </Z:notification-to><Z:msgbody> </Z:mime-data></Z:msgbody>
RVP security mechanisms Every security principal (user, server, etc.) has an X.509v3 Certificate Connections are SSL-secured (encryption, authentication) Security can be administered at the method level e.g. authentication for NOTIFYs but not for UNSUBSCRIBE Security performance tradeoffs can be made by administrators
RVP is being deployed for a variety of interoperable applications MS Exchange 6.0 Instant Messaging Server Clients on a variety of platforms Preview Beta - Fall ‘98 Instant Messaging Client SDK ISP custom applications Wireless device notifications
Status RVP drafts published Latest draft at drafts/draft-calsyn-rvp-01.txt Next draft will reflect implementation Microsoft is committed to developing an interoperable standard for Instant Messaging through the PIP (“Presence Information Protocol”) effort Held BOF at last IETF Asking for WG at August IETF