ACCESS RULES: constraints on how a PRESENCE SERVICE makes PRESENCE
INFORMATION available to WATCHERS. For each PRESENTITY's PRESENCE
INFORMATION, the applicable ACCESS RULES are manipulated by the
PRESENCE USER AGENT of a PRINCIPAL that controls the PRESENTITY.
Motivation: We need some way of talking about hiding presence
information from people.
CLOSED: a distinguished value of the STATUS marker. In the context of
INSTANT MESSAGES, this value means that the associated INSTANT
INBOX ADDRESS, if any, corresponds to an INSTANT INBOX that is
unable to accept an INSTANT MESSAGE. This value may have an
analogous meaning for other COMMUNICATION MEANS, but any such
meaning is not defined by this model. Contrast with OPEN.
COMMUNICATION ADDRESS: consists of COMMUNICATION MEANS and CONTACT
ADDRESS.
COMMUNICATION MEANS: indicates a method whereby communication can
take place. INSTANT MESSAGE SERVICE is one example of a
COMMUNICATION MEANS.
CONTACT ADDRESS: a specific point of contact via some COMMUNICATION
MEANS. When using an INSTANT MESSAGE SERVICE, the CONTACT ADDRESS
is an INSTANT INBOX ADDRESS.
DELIVERY RULES: constraints on how an INSTANT MESSAGE SERVICE
delivers received INSTANT MESSAGES to INSTANT INBOXES. For each
INSTANT INBOX, the applicable DELIVERY RULES are manipulated by
the INBOX USER AGENT of a PRINCIPAL that controls the INSTANT
INBOX.
Motivation: We need a way of talking about filtering instant
messages.
FETCHER: a form of WATCHER that has asked the PRESENCE SERVICE to for
the PRESENCE INFORMATION of one or more PRESENTITIES, but has not
asked for a SUBSCRIPTION to be created.
INBOX USER AGENT: means for a PRINCIPAL to manipulate zero or more
INSTANT INBOXES controlled by that PRINCIPAL.
Motivation: This is intended to isolate the core functionality of
an INSTANT INBOX from how it might appear to be manipulated by a
product. This manipulation includes fetching messages, deleting
messages, and setting DELIVERY RULES. We deliberately take no
position on whether the INBOX USER AGENT, INSTANT INBOX, and
INSTANT MESSAGE SERVICE are colocated or distributed across
machines.
INSTANT INBOX: receptacle for INSTANT MESSAGES intended to be read by
the INSTANT INBOX's PRINCIPAL.
INSTANT INBOX ADDRESS: indicates whether and how the PRESENTITY's
PRINCIPAL can receive an INSTANT MESSAGE in an INSTANT INBOX. The
STATUS and INSTANT INBOX ADDRESS information are sufficient to
determine whether the PRINCIPAL appears ready to accept the
INSTANT MESSAGE.
Motivation: The definition is pretty loose about exactly how any
of this works, even leaving open the possibility of reusing parts
of the email infrastructure for instant messaging.
INSTANT MESSAGE: an identifiable unit of data, of small size, to be
sent to an INSTANT INBOX.
Motivation: We do not define "small" but we seek in this
definition to avoid the possibility of transporting an arbitrary-
length stream labelled as an "instant message."
INSTANT MESSAGE PROTOCOL: The messages that can be exchanged between
a SENDER USER AGENT and an INSTANT MESSAGE SERVICE, or between an
INSTANT MESSAGE SERVICE and an INSTANT INBOX.
INSTANT MESSAGE SERVICE: accepts and delivers INSTANT MESSAGES.
-- May require authentication of SENDER USER AGENTS and/or INSTANT
INBOXES.
-- May have different authentication requirements for different
INSTANT INBOXES, and may also have different authentication
requirements for different INSTANT INBOXES controlled by a
single PRINCIPAL.
-- May have an internal structure involving multiple SERVERS
and/or PROXIES. There may be complex patterns of redirection
and/or proxying while retaining logical connectivity to a
single INSTANT MESSAGE SERVICE. Note that an INSTANT MESSAGE
SERVICE does not require having a distinct SERVER -- the
service may be implemented as direct communication between
SENDER and INSTANT INBOX.
-- May have an internal structure involving other INSTANT MESSAGE
SERVICES, which may be independently accessible in their own
right as well as being reachable through the initial INSTANT
MESSAGE SERVICE.
NOTIFICATION: a message sent from the PRESENCE SERVICE to a
SUBSCRIBER when there is a change in the PRESENCE INFORMATION
of some PRESENTITY of interest, as recorded in one or more
SUBSCRIPTIONS.
Motivation: We deliberately take no position on what part of
the changed information is included in a NOTIFICATION.
OPEN: a distinguished value of the STATUS marker. In the context of
INSTANT MESSAGES, this value means that the associated INSTANT
INBOX ADDRESS, if any, corresponds to an INSTANT INBOX that is
ready to accept an INSTANT MESSAGE. This value may have an
analogous meaning for other COMMUNICATION MEANS, but any such
meaning is not defined by this model. Contrast with CLOSED.
OTHER PRESENCE MARKUP: any additional information included in the
PRESENCE INFORMATION of a PRESENTITY. The model does not define
this further.
POLLER: a FETCHER that requests PRESENCE INFORMATION on a regular
basis.
PRESENCE INFORMATION: consists of one or more PRESENCE TUPLES.
PRESENCE PROTOCOL: The messages that can be exchanged between a
PRESENTITY and a PRESENCE SERVICE, or a WATCHER and a PRESENCE
SERVICE.
PRESENCE SERVICE: accepts, stores, and distributes PRESENCE
INFORMATION.
-- May require authentication of PRESENTITIES, and/or WATCHERS.
-- May have different authentication requirements for different
PRESENTITIES.
-- May have different authentication requirements for different
WATCHERS, and may also have different authentication
requirements for different PRESENTITIES being watched by a
single WATCHER.
-- May have an internal structure involving multiple SERVERS
and/or PROXIES. There may be complex patterns of redirection
and/or proxying while retaining logical connectivity to a
single PRESENCE SERVICE. Note that a PRESENCE SERVICE does not
require having a distinct SERVER -- the service may be
implemented as direct communication among PRESENTITY and
WATCHERS.
-- May have an internal structure involving other PRESENCE
SERVICES, which may be independently accessible in their own
right as well as being reachable through the initial PRESENCE
SERVICE.
PRESENCE TUPLE: consists of a STATUS, an optional COMMUNICATION
ADDRESS, and optional OTHER PRESENCE MARKUP.
PRESENCE USER AGENT: means for a PRINCIPAL to manipulate zero or more
PRESENTITIES.
Motivation: This is essentially a "model/view" distinction: the
PRESENTITY is the model of the presence being exposed, and is
independent of its manifestation in any user interface. In
addition, we deliberately take no position on how the PRESENCE
USER AGENT, PRESENTITY, and PRESENCE SERVICE are colocated or
distributed across machines.
PRESENTITY (presence entity): provides PRESENCE INFORMATION to a
PRESENCE SERVICE.
Motivation: We don't like to coin new words, but "presentity"
seemed worthwhile so as to have an unambiguous term for the entity
of interest to a presence service. Note that the presentity is not
(usually) located in the presence service: the presence service
only has a recent version of the presentity's presence
information. The presentity initiates changes in the presence
information to be distributed by the presence service.
PRINCIPAL: human, program, or collection of humans and/or programs
that chooses to appear to the PRESENCE SERVICE as a single actor,
distinct from all other PRINCIPALS.
Motivation: We need a clear notion of the actors outside the
system. "Principal" seems as good a term as any.
PROXY: a SERVER that communicates PRESENCE INFORMATION, INSTANT
MESSAGES, SUBSCRIPTIONS and/or NOTIFICATIONS to another SERVER.
Sometimes a PROXY acts on behalf of a PRESENTITY, WATCHER, or
INSTANT INBOX.
SENDER: source of INSTANT MESSAGES to be delivered by the INSTANT
MESSAGE SERVICE.
SENDER USER AGENT: means for a PRINCIPAL to manipulate zero or more
SENDERS.
SERVER: an indivisible unit of a PRESENCE SERVICE or INSTANT MESSAGE
SERVICE.
SPAM: unwanted INSTANT MESSAGES.
SPOOFING: a PRINCIPAL improperly imitating another PRINCIPAL.
STALKING: using PRESENCE INFORMATION to infer the whereabouts of a
PRINCIPAL, especially for malicious or illegal purposes.
STATUS: a distinguished part of the PRESENCE INFORMATION of a
PRESENTITY. STATUS has at least the mutually-exclusive values OPEN
and CLOSED, which have meaning for the acceptance of INSTANT
MESSAGES, and may have meaning for other COMMUNICATION MEANS.
There may be other values of STATUS that do not imply anything
about INSTANT MESSAGE acceptance. These other values of STATUS may
be combined with OPEN and CLOSED or they may be mutually-exclusive
with those values.
Some implementations may combine STATUS with other entities. For
example, an implementation might make an INSTANT INBOX ADDRESS
visible only when the INSTANT INBOX can accept an INSTANT MESSAGE.
Then, the existence of an INSTANT INBOX ADDRESS implies OPEN,
while its absence implies CLOSED.
SUBSCRIBER: a form of WATCHER that has asked the PRESENCE SERVICE to
notify it immediately of changes in the PRESENCE INFORMATION of
one or more PRESENTITIES.
SUBSCRIPTION: the information kept by the PRESENCE SERVICE about a
SUBSCRIBER's request to be notified of changes in the PRESENCE
INFORMATION of one or more PRESENTITIES.
VISIBILITY RULES: constraints on how a PRESENCE SERVICE makes WATCHER
INFORMATION available to WATCHERS. For each WATCHER's WATCHER
INFORMATION, the applicable VISIBILITY RULES are manipulated by
the WATCHER USER AGENT of a PRINCIPAL that controls the WATCHER.
Motivation: We need a way of talking about hiding watcher
information from people.
WATCHER: requests PRESENCE INFORMATION about a PRESENTITY, or WATCHER
INFORMATION about a WATCHER, from the PRESENCE SERVICE. Special
types of WATCHER are FETCHER, POLLER, and SUBSCRIBER.
WATCHER INFORMATION: information about WATCHERS that have received
PRESENCE INFORMATION about a particular PRESENTITY within a
particular recent span of time. WATCHER INFORMATION is maintained
by the PRESENCE SERVICE, which may choose to present it in the
same form as PRESENCE INFORMATION; that is, the service may choose
to make WATCHERS look like a special form of PRESENTITY.
Motivation: If a PRESENTITY wants to know who knows about it, it
is not enough to examine only information about SUBSCRIPTIONS. A
WATCHER might repeatedly fetch information without ever
subscribing. Alternately, a WATCHER might repeatedly subscribe,
then cancel the SUBSCRIPTION. Such WATCHERS should be visible to
the PRESENTITY if the PRESENCE SERVICE offers WATCHER INFORMATION,
but will not be appropriately visible if the WATCHER INFORMATION
includes only SUBSCRIPTIONS.
WATCHER USER AGENT: means for a PRINCIPAL to manipulate zero or more
WATCHERS controlled by that PRINCIPAL.
Motivation: As with PRESENCE USER AGENT and PRESENTITY, the
distinction here is intended to isolate the core functionality of
a WATCHER from how it might appear to be manipulated by a product.
As previously, we deliberately take no position on whether the
WATCHER USER AGENT, WATCHER, and PRESENCE SERVICE are colocated or
distributed across machines.
loop's blog