Skip to main content

MIMI Terminology
draft-ralston-mimi-terminology-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Active".
Author Travis Ralston
Last updated 2023-04-11
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ralston-mimi-terminology-00
More Instant Messaging Interoperability                       T. Ralston
Internet-Draft                          The Matrix.org Foundation C.I.C.
Intended status: Informational                             11 April 2023
Expires: 13 October 2023

                            MIMI Terminology
                   draft-ralston-mimi-terminology-00

Abstract

   This document introduces a set of terminology to use when discussing
   or describing concepts within MIMI.

About This Document

   This note is to be removed before publishing as an RFC.

   The latest revision of this draft can be found at
   https://turt2live.github.io/ietf-mimi-terminology/draft-ralston-mimi-
   terminology.html.  Status information for this document may be found
   at https://datatracker.ietf.org/doc/draft-ralston-mimi-terminology/.

   Discussion of this document takes place on the More Instant Messaging
   Interoperability Working Group mailing list (mailto:mimi@ietf.org),
   which is archived at https://mailarchive.ietf.org/arch/browse/mimi/.
   Subscribe at https://www.ietf.org/mailman/listinfo/mimi/.

   Source for this draft and an issue tracker can be found at
   https://github.com/turt2live/ietf-mimi-terminology.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 13 October 2023.

Ralston                  Expires 13 October 2023                [Page 1]
Internet-Draft              MIMI Terminology                  April 2023

Copyright Notice

   Copyright (c) 2023 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   2
     2.1.  Diagram Reference . . . . . . . . . . . . . . . . . . . .   4
   3.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   4.  Normative References  . . . . . . . . . . . . . . . . . . . .   5
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   5

1.  Introduction

   The More Instant Messaging Interoperability (MIMI) working group is
   chartered to specify the minimal set of mechanisms to make modern
   instant messaging applications interoperable.  Through prior
   discussions and upcoming documents, it's become important to have a
   shared understanding for what is being discussed specifically.

   This document expands upon MLS's [I-D.ietf-mls-protocol]
   [I-D.ietf-mls-architecture] terminology by defining terms specific to
   MIMI's purpose.  Document authors SHOULD prefix terms from the MLS
   specification with "MLS" to denote that the term is specifically
   coming from the MLS specification.  For example, "MLS Group" versus
   "Group".  This document defines terms which are non-conflicting to
   help ensure clarity when the MLS prefix is missing, however.

   Documents within the MIMI working group may introduce their own
   terminology to explain concepts within their context.  Those
   documents SHOULD NOT override or change the terminology described in
   this document or from MLS.

2.  Terminology

   MIMI defines:

Ralston                  Expires 13 October 2023                [Page 2]
Internet-Draft              MIMI Terminology                  April 2023

   *User*: A (normally) human operator of a _client_. _Users_ have a
   *User ID* to identify them canonically within the system.

   *Client*: A user interface for messaging, performing encryption as
   needed.  Presents _conversations_ to the _user_ to interact with.
   Synonymous with _MLS Client_. _Clients_ have a *Client ID* to
   canonically identify them among a _user's_ other _clients_.

   *Conversation*: The place where _users_ communicate.  Depending on
   design, this may be synonymous with an _MLS Group_. The default
   assumption if not clarified is that the _conversation_ and _group_
   are different concepts/entities. _Conversations_ have a *Conversation
   ID* to canonically identify them within the system, which may be a
   *Group ID* if the concepts are synonymous.

   *Conversation Member*: A _user's_ membership in relation to a
   _conversation_. If the concepts of _conversation_ and _MLS Group_ are
   synonymous, this will be no different than an _MLS Member_, however
   if different then this will be which represents the _MLS Member_ to
   the _conversation_.

   *Event*: The container for an encrypted _MLS Message_, sent over the
   wire between _servers_ and _clients_ (through their local _servers_).
   _Events_ have an *Event ID* to canonically identify them at least
   within the _conversation_.

   *Conversation Property*: Information stored in the _conversation_,
   such as the name, topic, avatar, _conversation membership_, etc.
   This may be in the shape of an _event_. Note that _conversation
   properties_ are different from what is needed to construct an _MLS
   Group Context_.

   *Message*: Synonymous with an _MLS Message_. _Messages_ have a
   *Message ID* to canonically identify them at least within the
   _group_.

   *Server*: Synonymous with an _MLS Delivery Service (DS)_. Responsible
   for routing _events_ to other _servers_ and local _clients_. Note
   that the role of a _server_ can be accomplished in the same logical
   place as a _client_ (i.e.: in peer-to-peer environments), however the
   default assumption if not clarified is that the _client_ and _server_
   are two different entities.

   *Client-Server API*: The interface between a _client_ and _server_.
   This may be nothing more than a function call if the _client_ and
   _server_ are the same logical entity.

Ralston                  Expires 13 October 2023                [Page 3]
Internet-Draft              MIMI Terminology                  April 2023

   *Server-Server API*: The interface between a _server_ and another
   _server_.

   *Transport*: The method and format for moving information between
   entities.  For example, a _Client-Server API_ might describe HTTPS
   and JSON as its _transport_. For added clarity, documents should
   clarify which API surface they are defining a _transport_ for
   ("Server-Server Transport", for example).

   *Access Control*: The set of algorithms which determine whether an
   _event_ or _MLS Message_ is permitted in the _conversation_/_group_.
   For instance, this may define whether an _MLS Proposal_ is accepted
   or whether the _user_ is able to become a _conversation member_.

   *Message Format*: The specific format that _clients_ use within the
   encrypted body of an _MLS Message_. Sometimes this will also be
   called the *Content Format*.

   *User Identity*: A mapping of *User ID* to external identifier, such
   as a phone number.  In some cases, the _user identity_ can be
   synonymous with the _user ID_, however the default assumption if not
   clarified is that they are different concepts.

   *Messaging Provider* or *Provider*: A service offering instant
   messaging to _users_. Typically a _provider_ will have a _server_ to
   route _events_ between _users_ (or _clients_, specifically).

2.1.  Diagram Reference

   In the simplest possible form, interoperable messaging between two
   end users looks as such:

+----------+       +------------+       +------------+       +----------+
|          |   A   |            |   B   |            |   C   |          |
| Client 1 |<----->| Provider 1 |<----->| Provider 2 |<----->| Client 2 |
|          |       |            |       |            |       |          |
+----------+       +------------+       +------------+       +----------+
     ^                                                             ^
     |                              D                              |
     +-------------------------------------------------------------+

   Figure 1: Typical, simplified, architecture for interoperability

   In this figure, Client 1 is directly connected to Provider 1 over
   channel A.  A is a provider-specific Client-Server API and transport.
   Similarly, Client 2 is directly connected to Provider 2 over channel
   C.  C is also a provider-specific Client-Server API and transport.

Ralston                  Expires 13 October 2023                [Page 4]
Internet-Draft              MIMI Terminology                  April 2023

   Provider 1 and 2 talk to each other with a Server-Server API over a
   transport.  This is B in the figure.

   Clients additionally have an implicit channel (D in the figure) where
   they use a shared Message Format.  There is no transport for D in
   this figure: the figure is denoting that servers/providers are unable
   to assist with a format conversion due to the event's content (an MLS
   message) being encrypted.

3.  IANA Considerations

   This document has no IANA actions.

4.  Normative References

   [I-D.ietf-mls-architecture]
              Beurdouche, B., Rescorla, E., Omara, E., Inguva, S., and
              A. Duric, "The Messaging Layer Security (MLS)
              Architecture", Work in Progress, Internet-Draft, draft-
              ietf-mls-architecture-10, 16 December 2022,
              <https://datatracker.ietf.org/doc/html/draft-ietf-mls-
              architecture-10>.

   [I-D.ietf-mls-protocol]
              Barnes, R., Beurdouche, B., Robert, R., Millican, J.,
              Omara, E., and K. Cohn-Gordon, "The Messaging Layer
              Security (MLS) Protocol", Work in Progress, Internet-
              Draft, draft-ietf-mls-protocol-20, 27 March 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-mls-
              protocol-20>.

Author's Address

   Travis Ralston
   The Matrix.org Foundation C.I.C.
   Email: travisr@matrix.org

Ralston                  Expires 13 October 2023                [Page 5]