Used to check for browser translation.
用于检测浏览器翻译。
ブラウザの翻訳を検出する

理解 Blocklet

ArcBlock
2023-09-07 08:18
· edited

Blocklet 生态系统中的核心概念及概念之间的关系如下图所示:


什么是 Blocklet?#

  • Blocklet 是应用开发、交付、运行的基本单位
  • Blocklet 遵循相同的协议,享受相同的服务,组合在一起时能完成非常强大的功能
  • Blocklet 是可以组合的,组合方式非常类似乐高积木
  • Blocklet 的唯一标识是 Blocklet DID,每个 Blocklet Store 里面的 DID 是不可重复的

什么是 Blocklet Component?#

  • Blocklet Component 专门指那些能够被组合使用的 Blocklet,能否被组合可以在 blocklet.yml 中声明
  • Blocklet Component 通常既能独立运行,也能被组合使用,两种模式下表现可以不同
  • Blocklet Component 可以包含其他的 Blocklet Component,这种包含关系是可以嵌套的,就好比发布在 NPM 的代码库可以依赖其他发布的 NPM 上的代码库。不过从性能的角度出发,Blocklet Component 嵌套的深度是有限制的。

什么是 Blocklet Server?#

  • Blocklet Server 是为 Blocklet 提供完整运行环境、基础服务、管理功能的软件
  • Blocklet Server 运行时产生的数据只属于 Blocklet Server 的所有者
  • Blocklet Server 的唯一标识是在 Blocklet Server 创建是产生的在其后不可更改的 DID,显示在 Blocklet Server 控制台中
  • 任何人可无需许可、无需付费在自己的电脑上运行自己的 Blocklet Server

什么是 Blocklet Bundle?#

  • Blocklet Bundle 是使用 blocklet bundle 构建得到的,能够被 Blocklet Server 消费的软件包
  • Blocklet Bundle 通常会被开发者上传并托管在 Blocklet Store 中,也可以托管在任何可以被访问的网络上。
  • Blocklet Bundle 通常包含下面两个文件:

```text
.blocklet/release
├── blocklet.json
└── static-demo-blocklet-1.4.0.tgz
```

  • blocklet.json 根据 blocklet.yml 计算出来的 Blocklet 描述文件
  • {name}-{version}.tgz 包含了 blocklet 运行时需要的各种文件包括构建后的源代码、外部依赖
  • 理论上这两个文件可以托管在不同的地方,只要 blocklet.json 里面正确包含了压缩包的地址

什么是 Blocklet App?#

  • Blocklet App 是安装、运行在 Blocklet Server 中,且能对外提供服务的实体
  • Blocklet App 背后的服务可以由单个或者多个 Blocklet Instance 组成
  • Blocklet App 的唯一标识是 appId,通过 Blocklet SDKblocklet.js 可以获取
  • 运行在不同的 Blocklet Server 中的相同 Blocklet Bundle 属于不同的 Blocklet App
  • 运行在相同 Blocklet Server 的相同 Blocklet Bundle 也属于不同的 Blocklet App
  • 一个 Blocklet App 可以有任何数量的用户,根据使用场景而不同
  • 一个 Blocklet App 只能有一个 Blocklet Owner,但可以有多个管理员

什么是 Blocklet Instance?#

  • 运行中的 Blocklet App 中的每个部件都是 Blocklet Instance,就好像根据某个类生成的实例
  • 每个 Blocklet Instance 都运行在自己独立的进程中,都有独立的进程标识、环境变量、数据目录



Sticker