• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 分布式数据对象概述
2
3分布式数据对象管理框架是一款面向对象的内存数据管理框架。向应用开发者提供内存对象的创建、查询、删除、修改、订阅等基本数据对象的管理能力;同时具备分布式能力,满足超级终端场景下,相同应用多设备间的数据对象协同需求。
4
5
6## 基本概念
7
8- **分布式内存数据库**
9
10  分布式内存数据库将数据缓存在内存中,以便应用获得更快的数据存取速度,不会将数据进行持久化。若数据库关闭,则数据不会保留。
11
12
13- **分布式数据对象**
14
15  分布式数据对象是一个JS对象型的封装。每一个分布式数据对象实例会创建一个内存数据库中的数据表,每个应用程序创建的内存数据库相互隔离,对分布式数据对象的“读取”或“赋值”会自动映射到对应数据库的get/put操作。
16
17  分布式数据对象的生命周期包括以下状态:
18
19  - **未初始化**:未实例化,或已被销毁。
20  - **本地数据对象**:已创建对应的数据表,但是还无法进行数据同步。
21  - **分布式数据对象**:已创建对应的数据表,设备在线且组网内设置同样sessionId的对象数>=2,可以跨设备同步数据。若设备掉线或将sessionId置为空,分布式数据对象退化为本地数据对象。
22
23
24## 运作机制
25
26分布式数据对象生长在分布式内存数据库之上,在分布式内存数据库上进行了JS对象型的封装,能像操作本地变量一样操作分布式数据对象,数据的跨设备同步由系统自动完成。
27
28**图1** 分布式数据对象运行机制
29
30![how-distributedobject-works](figures/how-distributedobject-works.png)
31
32
33
34
35## 约束与限制
36
37- 不同设备间只有相同bundleName的应用才能直接同步。
38
39- 不建议创建过多的分布式数据对象,每个分布式数据对象将占用100-150KB内存。
40
41- 每个分布式数据对象大小不超过500KB。
42
43- 如对复杂类型的数据进行修改,仅支持修改根属性,暂不支持下级属性修改。
44
45- 支持JS接口间的互通,与其他语言不互通。
46
47