大道至简,新一代企业应用无栈开发

平台之上,一种语言,可视化、脚本化、全端一体化开发

Location: 概念

站点内容模型

docutils document without title

站点是内容存储管理的中心。理解站点对象模型,是理解平台开发接口的基础。

1   理解站点 (Site)

  1. 账户 (Account) 和 站点

    每个公司对应一个账户,可管理通讯录,并可创建多个站点。

    使用 账户名 唯一标识账户,系统默认的账户(Account)名是 zopen 。易工作中可注册使用其他的账户名。

    站点名是站点的唯一标识代号,默认是 default 。新建站点的时候,可选择其他的名字。

  2. 站点服务(Service)

    每个站点使用了一组服务,提供开放的对外接口,主要包括:

    • 站点内容服务(workonline):负责管理文件、表单等内容,可定制开发应用
    • 消息服务(message) :负责消息通讯
    • 下载转换服务(viewer):负责文件下载、转换、查看
  3. 站点服务实例(Instance)

    各Service为每个站点创建独立的数据区,每个数据区叫做一个实例(Instance)。

    实例的名字分三部分:站点名称、账户名称、运营商名称,如: default.zopen.test

    其中运营商名称,线下版本是 standalone ,易工作是 test (历史原因), 易开发是 dev

2   站点内容对象

上面的站点内容服务(workonline)包含的站点实例,存放了站点所有内容。

最顶层的是站点根对象(对象类型:Root),下面使用 root 指代。

站点根``root`` 下树状存放各种内容,每种内容有自己类型(object_types),分4类:

  1. 个人区 root['desks'],存放站点成员工作台

    站点为每个登录用户分配一个工作台(对象类型: Home ),用于存放个人的数据和设置。

    所有站点成员的工作台,统一存放在个人区中 (对象类型: HomeContainer) 。

    工作台,以每个用户的唯一ID来命名,对于用户 zhangsan ,工作台为 : root['desks']['users.zhangsan']

  2. 更多区 root['more'] ,统一存放一些站点工具型的应用

    更多 是站点的一个内置栏目,是一个空间类型的对象(对象类型: AppContainer )。

    更多 ,通常存放 微信连接设置、站点统计 等工具。

  3. 软件包区 root['packages'] ,存放站点安装或定制开发的应用代码

    每个站点可以在应用市场安装一组应用到站点,代码统一存放到这个软件包区。

    每个软件包有唯一的名字,由开发者账户 和 软件包名字组成,比如 zopen.sendfile

  4. 站点栏目,存放正式的站点内容,比如文件库、空间等

    站点栏目,包括三种:

    • 文件库(对象类型: Folder): 分层树状存放文件(对象类型: File)、快捷方式
    • 表单库(对象类型: DataContainer):类似数据库的表,存放表单(对象类型: DataItem)
    • 栏目容器(也叫空间,对象类型: AppContainer):分栏目组织站点内容的容器,上面的 更多区 就是一个空间,站点根、个人区、工作台都是特殊的空间。

3   内容对象的地址和唯一标识

3.1   对象路径(path)

站点内容逐层存放,每个内容都有一个名字 name ,组成了站点内容存放的路径,可以用来定位站点内容.

比如上面zhangsan的工作台,在站点的路径是 desks/users.zhangsan

可以通过如下网络地址访问:

http://站点地址/desks/users.zhangsan

一旦对象发生移动,对象路径就发生变化。这样会导致之前的对象地址失效。

3.2   唯一标识(uid)

站点中每个对象都有唯一标识,类型为整数,如 1231231442

可以通过如下地址访问:

http://站点地址/++intid++1231231442

移动对象,唯一标识不会发生变化。

4   内容对象的属性

内容对象自身,可以附加存放一些数据,也就是属性信息。分为3种:

  1. 基础属性

    比如标题(title)、描述(description)、创建时间(created)等,所有内容对象都有这一组通用的基础属性

  2. 设置信息

    每个内容上可以存放一些系统级设置属性,比如是否允许评注。

  3. 扩展属性

    每个内容,可附加存放多组属性,比如文档的档案信息、合同信息。扩展属性有应用来定义,用于特定应用场景。

5   工作流

工作流分2部分:

  1. 工作流定义,位于应用软件包中

    系统采用基于活动的工作流引擎。每个工作流分多个步骤,进入步骤有多个操作项,用户点击操作项按钮,进入下一步骤。

  2. 工作流运行,产生工作项(内容类型:WorkItem),附加在表单库的各个表单中

    工作项进入每个人的待办事项,完成之后成为工作历史,工作项在日历中展示就是日程。

评注(0)