W3C 提案规范,2018 年 1 月 23 日发布
本版本: https://www.w3.org/TR/2018/PR-activitypub-20180123/
最新版本: https://www.w3.org/TR/activitypub/

标准化身份制作、内容创建和交互行为,使能开放、分享和合作。

ActivityPub 是开放社交网络的分布式网络协议并且基于现有通用语言的概念建立在 ActivityStreams2.0标准上。该标准使得在不同服务和用户之间的开放数据交换和分布式交互成为可能,构建一个统一的社交网络。 它简化了实现复杂度,通过共享的消息传递机制消除了服务之间建立专用连接的必要性。

本文档定义了一组 API 端点、消息格式、签名方式和传输机制,组成 ActivityPub 的规范。ActivityPub设计用于实现开放、分布式和联合的社交网络,其中包含内容创建、社交互动和网络联通服务。它继续了旨在促进竞争、创新并为用户带来选择自由的可互操作性概念。

标准宗旨

  1. 使不同的社交应用和服务之间可以轻易地相互操作和连接。这些应用和服务被称为“服务器”。
  2. 使个人能在不同服务器之间自由交互和参与。通过在服务器之间传递信息,可以构建开放和联合的社交网络。
  3. 基于现有开源社交网络应用的工作,而不是重新开始。ActivityPub 构建在已被多个应用广泛采用的 ActivityStreams 2.0 格式上。
  4. 简化服务器实现的复杂性。无需各实现之间建立双向连接,使用共享的消息传递协议替代。
  5. 鼓励竞争和创新。通过标准化接口和数据格式,不同服务器实现可以相互操作,且个人可以自由选择使用。
  6. 赋权给个人和社区。个人应该有权访问和控制他们自己的数据。服务器应对社区负责并考虑他们的需求。
  7. 支持不同级别的联合。从最基本的信息交换到完全联合的社交网络。
    为了实现这些目标,本标准定义了:
  8. 一组 API 端点,用于服务器之间和个人之间的交互。
  9. 一组 JSON 消息格式,代表个人和社交内容及其上下文。这基于ActivityStreams 2.0。
  10. 一种签名机制,用于验证消息及其发布者。
  11. 一组传输和交换机制,用于在端点和参与者之间传递消息。
  12. 一组用户界面元素和交互模式,作为可选实现指南。
    除了技术细节,本标准还包含一些非规范性指南材料,解释了标准背后一些选择的理念。

术语与缩略语

下面是ActivityPub规范中用到的一些关键术语和缩略语:

  • 资源:ActivityPub网络中的实体,如用户、内容项、组织等等。资源由 URI 标识。
  • 对象:一种资源,代表可以在 ActivityPub 网络上交换和代表的实体,如文章、评论、图片等。
  • 主体:活动的发起者。可以是一个用户、一个组织或者一个应用程序。主体由 URI 标识。
  • 用户:一个人使用的账号。用户由 URI 标识,用户可能拥有多个账号,每个账号都代表一个用户。
  • 发布:一种通知其他主体一个新对象已经创建或更新的活动。
  • 关注:一种订阅另一个主体的公开活动的活动。
  • 喜欢:一种表示用户赞赏某对象的活动。
  • 活动:主体执行的一个动作,如创建、更新或删除一个对象。 活动通过“活动”对象来代表。
  • 谓词:用来形容对象的属性或动作的词。ActivityPub 使用谓词来表示对象与活动之间的关系。
  • 服务器:实现ActivityPub协议并托管用户、对象和活动的数据存储的服务。
  • 工具:用于 ActivityPub 网络中进行消息传送和信息交换的应用程序或服务。
  • 端点:接收和发送ActivityPub消息的服务器API接口。
  • 寻址:用于在ActivityPub网络内标识和定位资源的机制。
  • 传输:用于在ActivityPub 网络中节点和参与者之间发送消息的机制。
  • 社交网络:通过 ActivityPub 协议联通的服务器和用户构成的联合网络。
  • 联合:服务器之间紧密合作以共同构建社交网络的程度。从最基本的消息交换到完全的用户和数据共享均在范围内。

标准结构

  1. 概述:标准的目标和范围,相关工作的概述。
  2. 要求:对实现细节提出的强制要求。
  3. 术语与缩略语:标准中使用到的关键术语和缩略语。
  4. 活动和对象:标准中使用的主要 JSON 消息格式的定义。
  5. API:ActivityPub网络中用于发布和交换消息的API端点。
  6. 传输:消息在网络中的传输机制。
  7. 签名:用于验证消息来源和内容的数字签名机制。
  8. 寻址:在ActivityPub网络内标识和定位资源的机制。
  9. 联合:服务器间不同程度的合作与集成。
  10. 用户界面和交互:与ActivityPub交互的可选UI元素和模式。
  11. 安全考量:使用标准时需要考虑的安全问题和威胁。
  12. 可扩展性:标准未来可能发展的方向。

后续将针对该协议发布更细的解读和一些示例代码。


willin
213 声望12 粉丝

欢迎在各平台 Follow 我。