一种实现文档共享编辑的方法

文档序号:6608811阅读:271来源:国知局
专利名称:一种实现文档共享编辑的方法
技术领域
本发明涉及电子文档互操作领域,特别涉及一种实现文档共享编辑的方法。
背景技术
对电子文档的共享编辑是在实际工作中经常出现的应用场景,目前在文档库系统中,通常实现共享编辑的方法是借助于电子邮件系统或者办公自 动化系统把需要共享编辑的文档来回的传递, 一个用户编辑完成后发送到另 一个用户处,由另一个用户继续对文档进行编辑。上述实现文档共享编辑的方法有几个弊端 一、多个用户不能同时编辑 文档,必须象接力一样轮流编辑,造成编辑效率低下,并且可能在流转过程 中造成文档内容丢失或失真等问题;二、在流转过程中产生了文档的大量拷 贝,不利于文档的集中管理,如果对文档的安全性要求较高,不允许对文档 的大量拷贝时,则无法实现文档的共享编辑。目前,在某些文档存储系统中,多个用户端可以同时打开并浏览同一文 档。但由于用户端无法得知其它访问同 一文档的用户端对文档进行的修改, 从而在多个用户端均对同一文档进行修改后会导致保存沖突和混乱,致使文 档安全性大大降低。总之,目前对于文档共享编辑的问题尚没有很好的解决方案。发明内容有鉴于此,本发明提供一种实现文档共享编辑的方法,能够利用文档库 系统实现对其中保存文档的共享编辑。为实现上述目的,本发明采用如下的技术方案5一种实现文档共享编辑的方法,包括a、 利用文档库系统存储文档;b、 需要编辑同一文档页的不同用户端,从文档库系统中选择该文档页 的不同层进行编辑,并对编辑内容进行保存;c、 所有打开所述文档页的用户端获取并显示步骤b中保存的内容。 较佳地,任意一个用户端从文档库系统中选择所述文档页的层为 用户端在该文档页中新建一层;或者,文档库系统为该用户端分配预先指定的一层;或者,该用户端选择该文档页中已经存在、且允许编辑的任意一层,并在该用户端选定该层后,文档库系统禁止其它用户端编辑该层。较佳地,所述文档库系统为该用户端分配预先指定的一层为文档库系统建立用户与层的对应关系,参照该对应关系,将与在该用户端上登录的用户名对应的层分配给该用户端;或者,文档库系统按照请求顺序依次将不同层分配给不同用户端。较佳地,所述文档库系统禁止其它用户端编辑该层为文档库系统对所述层进行锁定,并禁止其它用户端选择被锁定的层进行编辑。较佳地,步骤c中所述保存操作为响应用户的保存请求进行,和/或 根据预设的保存条件进行。较佳地,所述预设的保存条件为达到预设的时间间隔,和/或检测到 层的内容发生改变,和/或检测到层内容的修改量达到指定量。较佳地,所述预设的时间间隔为固定的时间间隔或实时更新的时间间隔。较佳地,所述修改量达到指定量为修改完成与预先设定的修改量相等 的文档内容。较佳地,所述获取步骤b中保存的内容包括用户端每隔预设的时间间隔查询文档库系统,判断其打开页中的各层内容是否发生改变,若是则获取步骤b中编辑的内容并进行显示,否则结束本 流程。较佳地,所述预设的时间间隔为固定的时间间隔或实时更新的时间间隔。较佳地,所述判断其打开页中的任意一层的内容是否发生改变为 用户端判断所述层的当前层数据与文档库系统中保存的层数据是否一 致,若是,则判定所述层内容未发生改变;否则,判定所述层内容发生改变; 和/或,用户端判断所述层的保存时间与文档库系统中记录的该层保存时间是 否一致,若是,则判定所述层内容未发生改变;否则,判定所述层内容发生 改变。较佳地,所述判断所述层的当前层数据与文档库系统中保存的层数据是 否 一 致为判断所述层的层数据摘要与文档库系统中的层数据摘要是否一 致,若一致,则判定层数据一致;否则判定层数据不一致。较佳地,所述获取步骤b中保存的内容包括在保存编辑内容后,文档库系统通知用户端所述文档页中层内容发生改 变的消息,接收到该通知消息的用户端获取步骤b中编辑后的内容。较佳地,所述文档库系统通知用户端为所述文档库系统向该系统中的 所有用户端广播所述文档页中层内容发生改变的消息;所述接收到该通知消息的用户端获取步骤b中编辑后的内容前,该方法 进一步包括用户端判断自身打开的内容是否发生改变,若是,则继续执行 所述获取步骤b中编辑后内容的操作,否则结束本流程。较佳地,该方法进一步包括文档库系统中保存用户端打开文档页和层 的记录;所述文档库系统通知用户端为所述文档库系统向所有打开所述文档页 的用户端发送该页中层内容发生改变的消息。较佳地,所述文档库系统中保存用户端打开文档页和层的记录为用户端在打开和关闭文档页和层时,向文档库系统发送通知消息; 和/或,
用户端在打开任意文档页和层时,文档库系统自动记录该用户端已打开
文档页和层;用户端在打开下一个文档页和层时,文档库系统自动记录该用 户端已关闭上一个打开的文档页和层、并自动记录打开所述下一个文档页和 层。
较佳地,所述显示步骤b中保存的内容为根据编辑后的显示次序和透 明度显示该层编辑后的内容。
由上述技术方案可见,本发明中,利用文档库系统统一管理文档,并将 文档按页进行分层存储,当用户端需要对文档进行编辑时,选择文档页中的 某层进行编辑。具体地,通过不同的用户编辑不同层的方式实现共享编辑,。 这样,就可以实现利用文档库系统,多个用户同时对同一文档进行编辑,并 保证将每个用户对文档的修改完整保存。同时,因为文档是通过文档库系统
集中进行管理,所以也非常有效的解决了文档安全性的问题。文档库系统在 对某层的修改进行保存后,其它打开同一页的用户端能够获取该修改内容, 并更新目前正在访问的该文档,从而使所有打开同 一文档的用户了解该文档 内容的修改。


图1为本发明中实现文档共享编辑方法的总体流程图。
图2为本发明实施例中实现文档共享编辑方法的具体流程图。
具体实施例方式
为使本发明的目的、技术手段和优点更加清楚明白,以下结合附图,对 本发明作进一 步详细说明。
在本发明中,实现共享编辑的基本思想是利用文档库系统统一管理其中 的文档,并将文档按页分层存储,对文档编辑时也是以层为单位进行编辑。具体地,不同用户在编辑文档时,选择文档页中的不同层进行,从而从根本 上避免了用户对文档编辑的沖突。
其中,文档库系统是一种复杂的软件系统,提供大量电子文档的组织、 管理、安全、存储和展示等功能。在本申请人在先提交的申请号为
CN200510131072.0的基础专利申请说明书中提供了 一种包括文档库系统、 存储器、应用软件的文档处理系统,其中,文档库的数据存储在存储器中, 文档库系统和应用软件通过一种标准调用接口连接起来,该标准调用接口根 据预先定义的动作和对象而定义。应用软件对文档的操作都统一成对一种预 定义的通用文档模型进行的操作,并通过该标准调用接口向文档库系统发出 指令,文档库系统按照应用软件的指令,对存储在存储器中的文档库执行相 应的操作。通用文档模型可以具体包括文档集、文档、页、层、对象组、版 面对象等多个层次。
图1为本发明中实现文档共享编辑方法的总体流程图。如图l所示,该 方法包括
步骤101,利用文档库系统存储文档。
步骤102,需要编辑相同文档页的不同用户端,从文档库系统中选择该 文档页的不同层进行编辑,并对编辑内容进行保存。
步骤103,所有打开所述文档页的用户端获取并显示步骤102中保存的 内容。
上述即为本发明提供的实现文档共享编辑方法的总体概述,下面通过具 体实施例说明该方法的具体实施。图2为本发明实施例中实现文档共享编辑 方法的具体流程图。如图2所示,该方法包括
步骤201 ,利用文档库系统存储文档。
本步骤中,文档库系统可以对其中的文档按页进行分层存储,每层包括 层数据和层属性。
在文档库系统中对文档按页进行分层存储为将文档中页数据的分组, 每组数据为一层,各层顺序排列存储。该文档库系统对各层分别进行管理和控制。为方便对各层的管理,文档页中的每层可以包括层数据和层属性。其
中,层数据包括文字、图元和图像以及他们的属性数据;层属性包括层标识、
显示次序、透明度、当前层数据摘要、当前编辑用户以及开始编辑时间等。 当前层数据摘要是表征当前层数据内容的特定字符串,它是利用 一定的算法 对当前层数据处理后得到的。应用该算法对当前层数据处理后,只要当前层 数据不同,得到的字符串也一定不同,利用当前层数据摘要能够简化两组大
规模数据间的比较。算法可以采用MD5等。
在进行文档分层时,各个页面间的分层关系是相互独立的。如,第1页 分两层,第2页分三层等。在有新文档加入到该文档库系统中时,文档库系 统对该文档的分层通常为 一层。
现在假定某用户A通过用户端使用编辑软件打开文档库系统中的某个 文档进行编辑。在下面的描述中,为简便起见,将用户A通过用户端执行 的操作统称为用户A进行的操作。
步骤202 ,需要编辑相同文档页的不同用户端,从文档库系统中选择该 文档页的不同层进行编辑。
本步骤中,对于任意一个用户,选择文档页中的编辑层的方式可以包括 以下四种文档库系统负责为该用户分配与其它用户不同的编辑层;用户新 建一层进行编辑;用户自主选择该文档页中已存在的、允许编辑的一层。
在文档库系统负责为用户分配与其它用户不同编辑层的方式中,可以通 过预先约定的方式,例如,文档库系统中记录每个用户的对应层,每次均为 该用户分配与其对应的层进行编辑;或者,也可以文档库系统根据各层的使 用状况随:机为用户分配编辑层。
在用户自主选择文档页中的编辑层时,需要预先在文档库系统中记录各 层的分配和使用状况,当有用户编辑某层时,文档库系统即将该层锁定,不 再允许其它用户对该层进行编辑。当用户端选择文档页中的层时,能够确认 哪些层是可编辑的(例如文档库系统可以将可编辑的层显示给用户端,或者 将该层是否可编辑的信息显示给用户端),用户端在这些允许编辑的层中选择某层进行编辑,从而保证不同的用户端一定对不同的层进行编辑。
在实际用户端选择编辑层时,可以根据情况任意选择上述三种方式进行。
步骤203,用户对选"t奪的层进行编辑。
本步骤中,用户A可以借助于编辑软件在层中添加文本、图元和图像 数据,并可以设置这些对象的属性,例如设置文本的字体、字号和颜色等; 设置图元对象为线、矩形或椭圓等等。
步骤204,用户对编辑后的内容进行保存。
本步骤中,保存操作的执行可以为应用户随时提出的请求而进行保存, 和/或,根据预先设定的保存条件进行保存。
其中,根据预先设定的保存条件进行保存时,可以预先设置保存条件, 当满足该条件时,自动进行保存操作。预先设定的保存条件可以为 一定的 时间间隔,该时间间隔可以是等长的间隔,也可以是#>据状况自适应调整的 时间间隔,例如,设定每2分钟进行一次保存,在进行n次保存后,发现每 次保存时内容均有更新,于是缩短保存时间为1分钟,继续进行n次保存后, 发现并不是每次保存内容均有更新,于是增加保存时间间隔为1.5分钟,这 样即能实现根据实时的状况动态调整保存的时间间隔。设定的保存条件还可 以是当检测到层内容发生改变时,即进行保存;或者也可以是检测到层内 容的修改量达到指定量,例如,完成了一行的修改即进行保存等。
步骤205,所有打开同一页的用户获取并显示步骤204中保存的内容。
所有打开同一页的用户获取步骤204中保存的内容的方式具体可以包 括两种主动通知方式和用户端定时查询的方式。
主动通知方式的具体实现为在步骤304中对文档页中某层的编辑内容
进行保存后,文档库系统向所有与用户A打开相同文档的用户发送通知消
息,通知用户该文档的第M页的层B已经发生了变化。如果某用户正在浏
览第M页,编辑软件会重新获取层B的数据,并根据显示次序属性和透明
度属性显示层B,这样,该用户即可以看到用户A对层B的修改。其中,文档库系统可以通过两种方式发送通知消息 一、广^番方式;二、 指定对象发送方式。
在广播方式下,文档库系统是以广播的方式向所有用户端发送文档内容 发生改变的消息,在该消息中携带内容发生改变的文档页和层的标识信息, 用户端接收到该消息后,判断自身打开的文档页和层是否是发生改变的文档 页和层,若是,则根据目前文档库系统中的内容进行更新,否则,丟弃该消 息或不对该消息作任何处理。
在指定对象发送方式下,文档库系统中记录每个用户端打开的文档页和 层,文档库系统在发送文档内容发生改变的消息时,向所有打开与该修改内 容相关内容的用户端(例如,打开同一页)发送文档内容已发生改变的消息, 接收到该消息的用户端根据目前文档库系统中的内容进行更新。在上述过程 中,文档库系统中记录每个用户端打开文档页和层的方式可以分为显式记录 或隐式记录。在显式记录方式中,每当用户端打开文档页或层时,均会向文 档库系统发送一个消息,在文档库系统中记录该用户端当前打开的文档页或 层;每当用户端关闭文档页或层是,也会向文档库系统发送一个消息,在文 档库系统中记录该用户端当前关闭了某文档页或层。在隐式记录方式中,每 当每当用户端打开文档页或层时,文档库系统自动记录该用户端当前打开的 文档页或层;当该用户端重新打开新的文档页或层时,文档库系统自动记录 该用户端打开了该新的文档页或层,并且关闭了之前打开的文档页或层。例 如,用户A打开文档页M,文档库系统记录用户A当前打开的文档页为M, 当用户A打开文档页M+l时,文档库系统记录用户A当前打开的文档页为 M+l,并且关闭了文档页为M。
用户端定时查询的具体实现方式为用户端每隔预设的时间间隔查询文 档库系统,判断其打开页中的各层内容是否发生改变,若是则获取步骤204 中编辑的内容并进行显示,否则结束本流程。
其中,预设的时间间隔可以是等长的,也可以根据状况实时更新该时间 间隔,具体方式与步骤204中保存间隔的更新方式相同,这里就不再赘述。当前层数据与文档库系统中保存的层数据是否一致,或者,用户端判断当前 层的保存时间与文档库系统中记录的保存时间是否一致,当二者一致时,则
判定层内容未发生改变;否则,判定层内容发生改变。
用户端在判断当前层数据与文档库系统中保存的层数据是否一致时,优 选的方式可以为根据步骤201中层属性的当前层数据摘要判断数据是否发 生改变,这样,能够节省比较的时间。
通过上述方式获取到步骤204中的保存内容后,对该内容进行显式,具 体的方式可以为根据编辑后的显示次序和透明度显示该层编辑后的内容。
至此,本发明实施例的文档共享编辑方法结束。下面通过一个具体的例 子说明本发明实施例中各种操作步骤的执行。
假设有文档库系统DocbaseA, DocbaseA可以由UOML文档库系统构 建。在DocbaseA中有文档DocumentA,现在有用户A ( UserA )和用户B (UserB )两个用户使用编辑软件打开DocumentA进行编辑。
UserA打开文档的第M页,第M页被分成了 LayerMNum个层,UserA 可以通过查看每个层的内容和属性,决定修改可编辑的某层;或者由文档库 系统为UserA分配一个与其它用户不同的编辑层;或者UserA也可以新建 一层进行编辑;假定UserA选择修改第M页的第LayerMIndex个层。此时 若UserB选择要编辑的层,则不能再选择第M页第LayerMIndex个层进行 编辑,需要选^奪该页面的其它层进行编辑,或新建一层编辑,或由文档库系 统为UserB分配一层。
UserA可以借助于编辑软件在层中添加文本、图元和图像数据,并可以 设置这些对象的属性,例如设置文本的字体、字号和颜色等;设置图元对象 为线、矩形或椭圓等等。当编辑软件认为用户已经编辑完成一个对象时,会 自动执行保存,用户也可以在任何时间自己执行保存或者设定每隔一定时间 自动保存。々i设UserA添加了一个文本对象TextObj。保存时,编辑软件可 以直接把TextObj添加到LayerMIndex中。TextObj保存完成后,可以更新DocbaseA中LayerMIndex层的最后保存用户和最后保存时间,以及层数据 摘要LayerMIndexHash,并把这些数据更新到编辑软件所在的客户端,并在 UserA确定不再编辑该层时,文档库系统允i午其它用户编辑该层。
当保存到DocbaseA中时,DocbaseA可以向所有的用户端发送一个文档 内容发生改变的消息,并在该消息中携带DocumentA的第M页第 LayerMIndex个层的标识,此时UserB将会收到这个消息,UserB使用的用 户端判断自身打开的页是否为DocumentA的第M页,若是,则编辑软件会 重新获取LayerMIndex的数据,并根据LayerMIndex中的显示次序属性 LayerMIndexZOrder 和透明度属性 LayerMIndexOp 决定如4可绘制 LayerMIndex层。这样,UserB也看到了 UserA对LayerMIndex层的修改。
或者,DocbaseA也可以向所有打开DocumentA的第M页的用户发送 一个消息,通知客户端DocumentA的第M页第LayerMIndex个层已经发生 了变化,此时UserB也会收到这个消息。如果UserB也在浏览第M页,则 编辑软件按照前述的方式绘制LayerMIndex层。这样,UserB也同样能看到 UserA对LayerMIndex层的修改。UserB也可以依照上述方式对选4奪的层进 行编辑和保存,同样,UserA也能看到UserB的修改。
在上例中,当然UserA和UserB也可以定时查询文档库系统,获耳又第 M页的最新数据,从而更新自身浏览的内容。
由上例可以看出,UserA和UserB可以通过编辑不同的层实现对 DocumentA的共享编辑。UserA对DocumentA进行了修改后,UserB能够实 时接收到UserA对DocumentA的修改信息,从而保证文档数据内容的安全 性和互操作性。总之,应用本发明提供的文档共享编辑方法,多个用户可以 同时打开一个文档进行编辑,可以保证每个用户对文档的^^改完整的保存到 文档中,并保证所有用户都可以看到每个用户对文档的修改。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应 包含在本发明的保护范围之内。
权利要求
1、一种实现文档共享编辑的方法,其特征在于,该方法包括a、利用文档库系统存储文档;b、需要编辑同一文档页的不同用户端,从文档库系统中选择该文档页的不同层进行编辑,并对编辑内容进行保存;c、所有打开所述文档页的用户端获取并显示步骤b中保存的内容。
2、 根据权利要求1所述的方法,其特征在于,任意一个用户端从文档库系 统中选择所述文档页的层为用户端在该文档页中新建一层; 或者,文档库系统为该用户端分配预先指定的一层; 或者,该用户端选择该文档页中已经存在、且允许编辑的任意一层,并在 该用户端选定该层后,文档库系统禁止其它用户端编辑该层。
3、 根据权利要求2所述的方法,其特征在于,所述文档库系统为该用户端 分配预先指定的一层为文档库系统建立用户与层的对应关系,参照该对应关 系,将与在该用户端上登录的用户名对应的层分配给该用户端;或者,文档库系统按照请求顺序依次将不同层分配给不同用户端。
4、 根据权利要求2所述的方法,其特征在于,所述文档库系统禁止其它用 户端编辑该层为文档库系统对所述层进行锁定,并禁止其它用户端选捐"故锁定的层进行编辑。
5、 根据权利要求1所述的方法,其特征在于,步骤c中所述保存操作为 响应用户的保存请求进行,和/或根据预设的保存条件进行。
6、 根据权利要求5所述的方法,其特征在于,所述预设的保存条件为达 到预设的时间间隔,和/或检测到层的内容发生改变,和/或检测到层内容的修改 量达到指定量。
7、 根据权利要求6所述的方法,其特征在于,所述预设的时间间隔为固定的时间间隔或实时更新的时间间隔。
8、 根据权利要求6所述的方法,其特征在于,所述修改量达到指定量为修改完成与预先设定的修改量相等的文档内容。
9、 根据权利要求1所述的方法,其特征在于,所述获取步骤b中保存的内 容包括用户端每隔预设的时间间隔查询文档库系统,判断其打开页中的各层内容 是否发生改变,若是则获取步骤b中编辑的内容并进行显示,否则结束本流程。
10、 才艮据权利要求9所述的方法,其特征在于,所述预设的时间间隔为固 定的时间间隔或实时更新的时间间隔。
11、 根据权利要求9所述的方法,其特征在于,所述判断其打开页中的任 意一层的内容是否发生改变为用户端判断所述层的当前层数据与文档库系统中保存的层数据是否一致, 若是,则判定所述层内容未发生改变;否则,判定所述层内容发生改变; 和/或,用户端判断所述层的保存时间与文档库系统中记录的该层保存时间是否一 致,若是,则判定所述层内容未发生改变;否则,判定所述层内容发生改变。
12、 根据权利要求11所述的方法,其特征在于,所述判断所述层的当前层 数据与文档库系统中保存的层数据是否一致为判断所述层的层数据摘要与文 档库系统中的层lt悟摘要是否一致,若一致,则判定层数据一致;否则判定层 数据不一致。
13、 根据权利要求1所述的方法,其特征在于,所述获取步骤b中保存的 内容包括在保存编辑内容后,文档库系统通知用户端所述文档页中层内容发生改变 的消息,接收到该通知消息的用户端获取步骤b中编辑后的内容。
14、 根据权利要求13所述的方法,其特征在于,所述文档库系统通知用户 端为所述文档库系统向该系统中的所有用户端广播所述文档页中层内容发生 改变的消息;所述接收到该通知消息的用户端获取步骤b中编辑后的内容前,该方法进 一步包括用户端判断自身打开的内容是否发生改变,若是,则继续执行所述 获取步骤b中编辑后内容的操作,否则结束本流程。
15、 根据权利要求13所述的方法,其特征在于,该方法进一步包括文档 库系统中保存用户端打开文档页和层的记录;所述文档库系统通知用户端为所述文档库系统向所有打开所述文档页的 用户端发送该页中层内容发生改变的消息。
16、 根据权利要求15所述的方法,其特征在于,所述文档库系统中保存用 户端打开文档页和层的记录为用户端在打开和关闭文档页和层时,向文档库系统发送通知消息; 和/或,用户端在打开任意文档页和层时,文档库系统自动记录该用户端已打开文 档页和层;用户端在打开下一个文档页和层时,文档库系统自动记录该用户端 已关闭上一个打开的文档页和层、并自动记录打开所述下一个文档页和层。
17、 根据权利要求1所述的方法,其特征在于,所述显示步骤b中保存的 内容为根据编辑后的显示次序和透明度显示该层编辑后的内容。
全文摘要
本发明公开了一种实现文档共享编辑的方法,包括a.利用文档库系统存储文档;b.需要编辑同一文档页的不同用户端,从文档库系统中选择该文档页的不同层进行编辑,并对编辑内容进行保存;c.所有打开所述文档页的用户端获取并显示步骤b中保存的内容。这样,就可以实现利用文档库系统,多个用户同时对同一文档进行编辑,并保证将每个用户对文档的修改完整保存。同时,因为文档是通过文档库系统集中进行管理,所以也非常有效的解决了文档安全性的问题。文档库系统在对某层的修改进行保存后,其它打开同一页的用户端能够获取该修改内容,并更新目前正在访问的该文档,从而使所有打开同一文档的用户了解该文档内容的修改。
文档编号G06F17/30GK101315621SQ20071009973
公开日2008年12月3日 申请日期2007年5月29日 优先权日2007年5月29日
发明者侯月文, 王东临 申请人:北京书生国际信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1