Title: RVP Protocol for Real-Time Presence Information Sonu Aggarwal Lead Program Manager, Exchange Instant Messaging Microsoft Corporation sonuag@microsoft.com
1RVP Protocol for Real-Time Presence
InformationSonu AggarwalLead Program Manager,
Exchange Instant MessagingMicrosoft
Corporationsonuag_at_microsoft.com
2RVP 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
3Design 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
4The federated model
ENTERPRISE INTRANETS
ISP
http//im.microsoft.com/ users/philc
microsoft.com
Internet
msn.com
http//im.acmewidgets.com/ users/scottm
acmewidgets.com
5RVP 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. http//im.microsoft.com/users/sonuag/ or
http//im.microsoft.com/lists/product_announcemen
ts/
6Protocol 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 http//im.acmewidgets.com/users/bruceb/
- Man http//extensions.iana.org/http/rvp/0/8/
- Notification-Type update subtype
http//extensions/iana.org/http/rvp/0/8/notificati
on-type/notifications/ - Call-Back http//bb5.us.acmewidgets.com/imclient
/notifications/ - Subscription-Lifetime 43200
- A user subscribes to another users properties,
including online status - SUBSCRIBE /users/stevem/ HTTP/1.1
- Host im.microsoft.com
- From http//im.acmewidgets.com/users/bruceb/
- Man http//extensions.iana.org/http/rvp/0/8/
- Notification-Type update subtype
http//extensions/iana.org/http/rvp/0/8/notificati
on-type/properties/ - Call-Back http//im.acmewidgets.com/users/bruceb
/ - Subscription-Lifetime 86400
7Protocol example set online status
- PROPPATCH /users/bruceb/ HTTP/1.1
- Host im.acmewidgets.com
- From http//im.acmewidgets.com/users/bruceb/
- Man http//extensions.iana.org/http/rvp/0/8/
- Content-Type text/xml
- Content-Length xxxx
- lt?xml version"1.0"?gtlt?xmlnamespace ns"DAV"
prefix"D"?gt - lt?xmlnamespace ns"http//www.microsoft.com/proto
col_schemas/rvp/" prefix"Z" ?gt - ltDpropertyupdategt
- ltDsetgt
- ltDpropgt
- ltZonline-statusgt
- ltZleased-valuegt
- ltZvaluegtonlinelt/Zvaluegt
- ltZdefault-valuegtofflinelt/Zdefault-valuegt
- ltZtimeoutgt600lt/Ztimeoutgt
- lt/Zleased-valuegt
- lt/Zonline-statusgt
8Protocol example instant message notification
- NOTIFY /users/bruceb/ HTTP/1.1
- Host im.acmewidgets.com
- From http//im.microsoft.com/users/stevem/
- Man http//extensions.iana.org/http/rvp/0/8/
- Notification-Type update subtype
http//extensions/iana.org/http/rvp/0/8/notificati
on-type/notifications/ - Content-Type text/xml
- Content-length xxxx
- lt?xml version"1.0"?gtlt?xmlnamespace ns"DAV"
prefix"D"?gt - lt?xmlnamespace ns"http//www.microsoft.com/proto
col_schemas/rvp/ prefix"Z" ?gt - ltZnotificationgt
- ltZmessagegt
- ltZnotification-togt
- ltDhrefgt http//im.acmewidgets.com/users/bruceb/
lt/Dhrefgt - lt/Znotification-togt
- ltZmsgbodygt
- ltZmime-datagtlt!CDATAMime-Version
1.0Content-Type text/plainContent-Length
xxxxLet's have lunch.gt - lt/Zmime-datagt
9RVP 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 lt-gt performance tradeoffs can be made by
administrators
10RVP 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
11Status
- RVP drafts published
- Latest draft at http//ds.internic.net/internet-dr
afts/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