draft-ietf-apex-presence-01.txt   draft-ietf-apex-presence-02.txt 
Network Working Group M. Rose Network Working Group M. Rose
Internet-Draft Invisible Worlds, Inc. Internet-Draft Invisible Worlds, Inc.
Expires: November 5, 2001 G. Klyne Expires: November 28, 2001 G. Klyne
Baltimore Technologies Baltimore Technologies
D. Crocker D. Crocker
Brandenburg Consulting Brandenburg Consulting
May 7, 2001 May 30, 2001
The APEX Presence Service The APEX Presence Service
draft-ietf-apex-presence-01 draft-ietf-apex-presence-02
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 35 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on November 5, 2001. This Internet-Draft will expire on November 28, 2001.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2001). All Rights Reserved. Copyright (C) The Internet Society (2001). All Rights Reserved.
Abstract Abstract
This memo describes the APEX presence service, addressed as the well- This memo describes the APEX presence service, addressed as the well-
known endpoint "apex=presence". The presence service is used to known endpoint "apex=presence". The presence service is used to
manage presence information for APEX endpoints. manage presence information for APEX endpoints.
skipping to change at page 2, line 27 skipping to change at page 2, line 27
4.4 The Publish Operation . . . . . . . . . . . . . . . . . . . . 20 4.4 The Publish Operation . . . . . . . . . . . . . . . . . . . . 20
4.5 The Terminate Operation . . . . . . . . . . . . . . . . . . . 22 4.5 The Terminate Operation . . . . . . . . . . . . . . . . . . . 22
4.6 The Notify Operation . . . . . . . . . . . . . . . . . . . . . 23 4.6 The Notify Operation . . . . . . . . . . . . . . . . . . . . . 23
4.7 The Reply Operation . . . . . . . . . . . . . . . . . . . . . 23 4.7 The Reply Operation . . . . . . . . . . . . . . . . . . . . . 23
5. Registration: The Presence Service . . . . . . . . . . . . . . 24 5. Registration: The Presence Service . . . . . . . . . . . . . . 24
6. The Presence Service DTD . . . . . . . . . . . . . . . . . . . 25 6. The Presence Service DTD . . . . . . . . . . . . . . . . . . . 25
7. Security Considerations . . . . . . . . . . . . . . . . . . . 28 7. Security Considerations . . . . . . . . . . . . . . . . . . . 28
References . . . . . . . . . . . . . . . . . . . . . . . . . . 29 References . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 29 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 29
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 30 A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 30
B. Changes from draft-ietf-apex-presence-00 . . . . . . . . . . . 31 B. Changes from draft-ietf-apex-presence-01 . . . . . . . . . . . 31
Full Copyright Statement . . . . . . . . . . . . . . . . . . . 32 C. Changes from draft-ietf-apex-presence-00 . . . . . . . . . . . 32
Full Copyright Statement . . . . . . . . . . . . . . . . . . . 33
1. Introduction 1. Introduction
This memo describes a presence service that is built upon the APEX This memo describes a presence service that is built upon the APEX
[1] "relaying mesh". The APEX presence service is used to manage [1] "relaying mesh". The APEX presence service is used to manage
presence information for APEX endpoints. presence information for APEX endpoints.
APEX, at its core, provides a best-effort datagram service. Within APEX, at its core, provides a best-effort datagram service. Within
an administrative domain, all relays must be able to handle messages an administrative domain, all relays must be able to handle messages
for any endpoint within that domain. APEX services are logically for any endpoint within that domain. APEX services are logically
skipping to change at page 11, line 17 skipping to change at page 11, line 17
+-------+ +-------+ +-------+ +-------+
| | <------- data -- | | | | <------- data -- | |
| relay | | pres. | | relay | | pres. |
| | -- ok ---------> | svc. | | | -- ok ---------> | svc. |
+-------+ +-------+ +-------+ +-------+
C: <data content='#Content'> C: <data content='#Content'>
<originator identity='apex=presence@example.com' /> <originator identity='apex=presence@example.com' />
<recipient identity='fred@example.com' /> <recipient identity='fred@example.com' />
<data-content Name='Content'> <data-content Name='Content'>
<notify subscriber='wilma@example.com' transID='2' /> <notify subscriber='wilma@example.com' transID='2'
duration='86000' action='subscribe' />
</data-content> </data-content>
</data> </data>
S: <ok /> S: <ok />
Subsequently, for up to the specified "duration", the service sends Subsequently, for up to the specified "duration", the service sends
new notify operations whenever an application subscribes new notify operations whenever an application subscribes successfully
successfully. If the "duration" is zero-valued, a one time poll of or a subscription is terminated. If the "duration" is zero-valued, a
the watcher information is achieved; otherwise, at the end of the one time poll of the watcher information is achieved; otherwise, at
"duration", a terminate operation is sent. the end of the "duration", a terminate operation is sent.
Either the watcher or the service may cancel the request by sending a Either the watcher or the service may cancel the request by sending a
terminate operation, e.g., terminate operation, e.g.,
+-------+ +-------+ +-------+ +-------+
| | -- data -------> | | | | -- data -------> | |
| appl. | | relay | | appl. | | relay |
| | <--------- ok -- | | | | <--------- ok -- | |
+-------+ +-------+ +-------+ +-------+
skipping to change at page 19, line 33 skipping to change at page 19, line 33
5. If the "transID" attribute refers to an in-progress subscribe or 5. If the "transID" attribute refers to an in-progress subscribe or
watch operation for the originator, a "reply" element having code watch operation for the originator, a "reply" element having code
555 is sent to the originator. 555 is sent to the originator.
6. Otherwise: 6. Otherwise:
1. A "reply" element having code 250 is sent to the originator. 1. A "reply" element having code 250 is sent to the originator.
2. For each endpoint currently subscribing to the subject's 2. For each endpoint currently subscribing to the subject's
presence information, a "notify" element is immediately sent presence information, a "notify" element is immediately sent
to the originator (c.f., Section 4.6). Finally, when the to the originator (c.f., Section 4.6).
amount of time indicated by the "duration" attribute expires,
a terminate operation (Section 4.5) is sent to the
originator.
3. For up to the amount of time indicated by the "duration" 3. For up to the amount of time indicated by the "duration"
attribute of the "watch" element, whenever a subscribe attribute of the "watch" element, whenever a subscribe
operation succeeds, a "notify" element is sent to the operation succeeds or a subscription is terminated, a
originator. Finally, when the amount of time indicated by "notify" element is sent to the originator. Finally, when
the "duration" attribute expires, the a terminate operation the amount of time indicated by the "duration" attribute
(Section 4.5) is sent to the originator. expires, a terminate operation (Section 4.5) is sent to the
originator.
Note that if the duration is zero-valued, then the watch Note that if the duration is zero-valued, then the watch
operation is making a one-time poll of the presence information. operation is making a one-time poll of the presence information.
Accordingly, Step 6.3 above does not occur. Accordingly, Step 6.3 above does not occur.
Regardless of whether a "notify" or "reply" element is sent to the Regardless of whether a "notify" or "reply" element is sent to the
originator, the "transID" attribute is identical to the value found originator, the "transID" attribute is identical to the value found
in the "presence" element sent by the originator. in the "presence" element sent by the originator.
4.4 The Publish Operation 4.4 The Publish Operation
skipping to change at page 23, line 12 skipping to change at page 23, line 12
no further updates after processing a terminate operation and sending no further updates after processing a terminate operation and sending
the reply operation, earlier updates may be in transit. the reply operation, earlier updates may be in transit.
4.6 The Notify Operation 4.6 The Notify Operation
The service sends a "notify" element to endpoints that are watching The service sends a "notify" element to endpoints that are watching
other endpoints subscribed to presence information (c.f., Section other endpoints subscribed to presence information (c.f., Section
4.3). 4.3).
The "notify" element has a "subscriber" attribute, a "transID" The "notify" element has a "subscriber" attribute, a "transID"
attribute, and no content: attribute, a "duration" attribute, an "action" attribute, and no
content:
o the "subscriber" attribute specifies the endpoint that is o the "subscriber" attribute specifies the endpoint that is
subscribed to presence information; and, subscribed to presence information; and,
o the "transID" attribute specifies the transaction-identifier o the "transID" attribute specifies the transaction-identifier
associated with the watch operation that caused this "notify" associated with the watch operation that caused this "notify"
element to be sent. No reply is sent by the receiving endpoint. element to be sent;
o the "action" attribute specifies whether a subscription or its
termination has occurred; and,
o if a subscription is being reported, the "duration" attribute
specifies the requested duration of the subscription.
No reply is sent by the receiving endpoint.
4.7 The Reply Operation 4.7 The Reply Operation
While processing operations, the service may respond with a "reply" While processing operations, the service may respond with a "reply"
element. Consult Sections 10.2 and 6.1.2 of [1], respectively, for element. Consult Sections 10.2 and 6.1.2 of [1], respectively, for
the syntax and semantics of the reply operation. the syntax and semantics of the reply operation.
5. Registration: The Presence Service 5. Registration: The Presence Service
Well-Known Endpoint: apex=presence Well-Known Endpoint: apex=presence
skipping to change at page 25, line 8 skipping to change at page 25, line 8
Access Control Tokens: presence:subscribe, presence:watch, Access Control Tokens: presence:subscribe, presence:watch,
presence:publish presence:publish
Contact Information: c.f., the "Authors' Addresses" section of this Contact Information: c.f., the "Authors' Addresses" section of this
memo memo
6. The Presence Service DTD 6. The Presence Service DTD
<!-- <!--
DTD for the APEX presence service, as of 2000-12-12 DTD for the APEX presence service, as of 2001-05-08
Refer to this DTD as: Refer to this DTD as:
<!ENTITY % APEXPRESENCE PUBLIC "-//IETF//DTD APEX PRESENCE//EN" <!ENTITY % APEXPRESENCE PUBLIC "-//IETF//DTD APEX PRESENCE//EN"
"http://xml.resource.org/profiles/APEX/apex-presence.dtd"> "http://xml.resource.org/profiles/APEX/apex-presence.dtd">
%APEXPRESENCE; %APEXPRESENCE;
--> -->
<!ENTITY % APEXCORE PUBLIC "-//IETF//DTD APEX CORE//EN" <!ENTITY % APEXCORE PUBLIC "-//IETF//DTD APEX CORE//EN"
"http://xml.resource.org/profiles/APEX/apex-core.dtd"> "http://xml.resource.org/profiles/APEX/apex-core.dtd">
skipping to change at page 26, line 29 skipping to change at page 26, line 26
<!-- publisher attributes must match in publish and presence --> <!-- publisher attributes must match in publish and presence -->
<!ELEMENT publish (presence)> <!ELEMENT publish (presence)>
<!ATTLIST publish <!ATTLIST publish
publisher %ENDPOINT; #REQUIRED publisher %ENDPOINT; #REQUIRED
transID %UNIQID; #REQUIRED transID %UNIQID; #REQUIRED
timeStamp %TIMESTAMP; #REQUIRED> timeStamp %TIMESTAMP; #REQUIRED>
<!ELEMENT notify EMPTY> <!ELEMENT notify EMPTY>
<!ATTLIST notify <!ATTLIST notify
subscriber %ENDPOINT; #REQUIRED subscriber %ENDPOINT; #REQUIRED
transID %UNIQID; #REQUIRED> transID %UNIQID; #REQUIRED
duration %SECONDS; "0"
action (subscribe|terminate)
"subscribe">
<!-- <!--
presence entries presence entries
--> -->
<!ELEMENT presence (tuple+)> <!ELEMENT presence (tuple+)>
<!ATTLIST presence <!ATTLIST presence
publisher %ENDPOINT; #REQUIRED publisher %ENDPOINT; #REQUIRED
lastUpdate %TIMESTAMP; #REQUIRED lastUpdate %TIMESTAMP; #REQUIRED
publisherInfo publisherInfo
%URI; ""> %URI; "">
skipping to change at page 27, line 4 skipping to change at page 27, line 21
lastUpdate %TIMESTAMP; #REQUIRED lastUpdate %TIMESTAMP; #REQUIRED
publisherInfo publisherInfo
%URI; ""> %URI; "">
<!ELEMENT tuple (capability*)> <!ELEMENT tuple (capability*)>
<!ATTLIST tuple <!ATTLIST tuple
destination %URI; #REQUIRED destination %URI; #REQUIRED
availableUntil availableUntil
%TIMESTAMP; #REQUIRED %TIMESTAMP; #REQUIRED
tupleInfo %URI; ""> tupleInfo %URI; "">
<!-- e.g., baseline='rfc2533' --> <!-- e.g., baseline='rfc2533' -->
<!ELEMENT capability (#PCDATA)> <!ELEMENT capability (#PCDATA)>
<!ATTLIST capability <!ATTLIST capability
baseline NMTOKEN #REQUIRED> baseline NMTOKEN #REQUIRED>
7. Security Considerations 7. Security Considerations
Consult Section [1]'s Section 11 for a discussion of security issues. Consult [1]'s Section 11 for a discussion of security issues.
References References
[1] Rose, M., Klyne, G. and D. Crocker, "The Application Exchange [1] Rose, M., Klyne, G. and D. Crocker, "The Application Exchange
Core", draft-ietf-apex-core-01 (work in progress), May 2001. Core", draft-ietf-apex-core-02 (work in progress), May 2001.
[2] Rose, M., "The Blocks Extensible Exchange Protocol Core", RFC [2] Rose, M., "The Blocks Extensible Exchange Protocol Core", RFC
3080, March 2001. 3080, March 2001.
[3] Rose, M., Klyne, G. and D. Crocker, "The APEX Access Service", [3] Rose, M., Klyne, G. and D. Crocker, "The APEX Access Service",
draft-ietf-apex-access-01 (work in progress), May 2001. draft-ietf-apex-access-02 (work in progress), May 2001.
Authors' Addresses Authors' Addresses
Marshall T. Rose Marshall T. Rose
Invisible Worlds, Inc. Invisible Worlds, Inc.
131 Stony Circle 131 Stony Circle
Suite 500 Suite 500
Santa Rosa, CA 95401 Santa Rosa, CA 95401
US US
skipping to change at page 30, line 8 skipping to change at page 30, line 8
Sunnyvale, CA 94086 Sunnyvale, CA 94086
US US
Phone: +1 408 246 8253 Phone: +1 408 246 8253
EMail: dcrocker@brandenburg.com EMail: dcrocker@brandenburg.com
URI: http://www.brandenburg.com/ URI: http://www.brandenburg.com/
Appendix A. Acknowledgements Appendix A. Acknowledgements
The authors gratefully acknowledge the contributions of: Neil Cook, The authors gratefully acknowledge the contributions of: Neil Cook,
Eric Dixon, Darren New, and Scott Pead. Eric Dixon, Darren New, Scott Pead, and Bob Wyman.
Appendix B. Changes from draft-ietf-apex-presence-00 Appendix B. Changes from draft-ietf-apex-presence-01
o Grammar error in Security Considerations.
o Extraneous sentence in Step 6.2 of Section 4.3.
o Notifications are now sent when a subscription is terminated.
Appendix C. Changes from draft-ietf-apex-presence-00
o Change "subaddress" convention from RFC 2846 to APEX's custom o Change "subaddress" convention from RFC 2846 to APEX's custom
ABNF. ABNF.
Full Copyright Statement Full Copyright Statement
Copyright (C) The Internet Society (2001). All Rights Reserved. Copyright (C) The Internet Society (2001). All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
 End of changes. 19 change blocks. 
29 lines changed or deleted 49 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/