本发明涉及计算机文档技术领域,尤其涉及一种多客户端实时同步编辑和显示方法。
背景技术:
随着庭审过程数字化进程的深入,越来越多的法院部署了数字法庭系统。目前的数字法庭系统采用这样的方式部署:法庭内部有多台计算机设备(台式机),书记员电脑安装书记员客户端软件,法官电脑安装法官客户端软件,当事人电脑安装当事人客户端软件,同时,还有负责显示的客户端软件供参与庭审的旁听人员观看庭审情况。另外,针对庭审过程公开透明的要求,庭审情况同时提供直播观看。
在参与庭审的人员中,书记员是负责记录庭审过程的,他需要把法官、当事人、证人等所说的话记录下来并进行保存,以保证对庭审的记录和以后的查看。庭审过程中,其他参与庭审的人员需要实时的查看到书记员对当前庭审的记录情况。既然需要实时的看到书记员的记录,就需要把书记员的记录情况实时的传输到各个人员的设备上展示,同时法官可以对书记员的记录提出异议,进行批注,以供书记员订正笔录。
然而,现有的数字法庭系统尚不能完全满足上述庭审过程的需求。
技术实现要素:
本发明提供一种多客户端实时同步编辑和显示方法,以满足庭审过程中记录、查看及订正笔录等需求。
本发明提供一种多客户端实时同步编辑和显示方法,包括:实时获取输入设备对文档所作动作的消息,并根据所述所作动作的消息分析得到对所述文档编辑的动作类型;从文档接口获取对所述文档编辑的动作内容;将所述动作类型和所述动作内容发送到至少一个消费者端,以使所述消费者端实时显示所述文档;将所述动作类型和所述动作内容发送到至少一个消费者端之前,还包括:获取同步服务器的通信地址,并根据所述通信地址向所述同步服务器注册生产者信息,以与所述同步服务器建立通信连接;将所述动作类型和所述动作内容发送到至少一个消费者端,包括:通过所述同步服务器将所述动作类型和所述动作内容转发至与所述同步服务器建立通信连接的所述消费者端;将所述动作类型和所述动作内容发送到至少一个消费者端,包括:根据所述动作类型和所述动作内容生成网络协议,所述网络协议包括对所述文档编辑的操作的MD5值;将所述网络协议发送到所述消费者端。
一个实施例中,实时获取输入设备对文档所作动作的消息,并根据所述所作动作的消息分析得到对所述文档编辑的动作类型之前,还包括:接收所述同步服务器的文档发送命令,并根据所述文档发送命令通过所述同步服务器将当前文档整体发送至所述消费者端;所述方法,还包括:接收所述消费者端的校验命令,并根据所述校验命令将整体的当前文档或包含当前光标位置的设定位置范围的当前文档内容发送至所述消费者端。
本发明还提供一种基于多客户端实时同步编辑和显示方法,包括:实时获取生产者端的文档编辑的动作类型及动作内容;根据所述的动作类型及动作内容调用文档接口执行文档编辑操作,以实时显示所述生产者端的文档;实时获取生产者端的文档编辑的动作类型及动作内容之前,还包括:获取同步服务器的通信地址,并根据所述通信地址向所述同步服务器注册消费者信息,以与所述同步服务器建立通信连接;实时获取生产者端的文档编辑的动作类型及动作内容,包括:通过所述同步服务器实时获取与所述同步服务器建立通信连接的生产者端的文档编辑的动作类型及动作内容。
一个实施例中,实时获取生产者端的文档编辑的动作类型及动作内容,包括:实时接收来自所述生产者端的网络协议;解析所述网络协议得到所述的动作类型及动作内容和相应的MD5值;所述方法,还包括:根据执行的文档编辑操作生成MD5值;比较生成的MD5值和所述网络协议中的MD5值是否一致;若否,则发送校验命令至所述生产者端,以获取所述生产者端的最新文档内容,并利用所述最新文档内容更新执行所述文档编辑操作后的文档。
一个实施例中,还包括:在执行文档编辑操作后的文档添加标签,并将所述标签的标签位置、标签名以及标签样式信息发送至其他消费者端和所述生产者端。
本发明再提供一种基于多客户端实时同步编辑和显示方法,包括:生产者端实时获取输入设备对所述生产者端的文档所作动作的消息,并根据所述所作动作的消息分析得到对所述生产者端的文档编辑的动作类型;所述生产者端从其文档接口获取对所述生产者端的文档编辑的动作内容;所述生产者端通过同步服务器将所述动作类型和所述动作内容转发到至少一个消费者端;所述消费者端根据所述动作类型和所述动作内容调用所述消费者端的文档接口对所述消费者端的文档执行编辑操作。
一个实施例中,生产者端实时获取输入设备对所述生产者端的文档所作动作的消息,并根据所述所作动作的消息分析得到对所述生产者端的文档编辑的动作类型之前,还包括:所述客户端根据所述同步服务器的通信地址向所述同步服务器注册客户端信息;所述同步服务器根据所述客户端信息中的身份标识判断所述客户端是所述生产者端还是所述消费者端;若所述客户端是所述生产者端,所述同步服务器根据所述客户端信息中的组ID检测所述生产者端所在客户端组中的所述消费者端是否与其建立通信连接,若是,通知所述生产者端将其当前文档发送至所述消费者端;若所述客户端是所述消费者端,所述同步服务器保存所述客户端信息,并根据所述客户端信息中的组ID检测所述消费者端所在客户端组中的所述生产者端是否与其建立通信连接,若是,则通知所述生产者端将其当前文档发送至所述消费者端。
一个实施例中,通知所述生产者端将其当前文档发送至所述消费者端,包括:所述同步服务器发送文档发送命令至所述生产者端;所述生产者端根据所述文档发送命令将其当前文档发送至所述同步服务器;所述同步服务器保存所述生产者端的当前文档一设定时长,并将所述生产者端的当前文档转发至所述消费者端,所述同步服务器保存的当前文档用于转发至在所述设定时长内与所述同步服务器建立通信连接的消费者端。
一个实施例中,所述生产者端通过同步服务器将所述动作类型和所述动作内容转发到至少一个消费者端,包括:所述生产者端根据所述动作类型和所述动作内容生成网络协议,并将所述网络协议发送到所述同步服务器,所述网络协议包括所述生产者端的文档编辑所对应的MD5值;所述同步服务器保存所述网络协议中的MD5值,并将所述网络协议转发到所述消费者端;所述方法,还包括:各所述消费者端根据其执行的编辑操作生成各自的MD5值,并比较各自的MD5值和所述网络协议中的MD5值是否一致;若否,各所述消费者端分别发送校验命令和所述网络协议中的MD5值至所述同步服务器;所述同步服务器将最先收到的校验命令转发至所述生产者端,并比较其保存的MD5值和与后续收到的校验命令一同收到的MD5值是否一致,若是,则不将后续收到的校验命令转发至所述生产者端;所述生产者端根据收到的校验命令将其最新文档通过所述同步服务器转发至各所述消费者端;所述消费者端利用所述最新文档更新所述消费者端的当前文档。
一个实施例中,所述消费者端为被封装成OCX控件的客户端,以供网页调用。
本发明实施例的多客户端实时同步编辑和显示方法,通过实时获取生产者端对文档编辑的动作类型和动作类型,并将该动作类型和动作类型发送至消费者端,从而消费者端可以得知生产者端对文档编辑操作的类型、位置及字符等信息,该动作类型和动作类型可使生产者端据其实时执行相同的操作,从而可保持消费者端显示的文档与生产者端的文档一致,从而实现跨平台文档的同步。进而,通过跨平台文档同步能够满足庭审过程中记录、查看等各种需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例的多客户端实时同步编辑和显示方法的流程示意图;
图2是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图;
图3是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图;
图4是本发明一实施例中文档编辑的动作类型和动作内容发送到消费者端的方法流程示意图;
图5是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图;
图6是本发明一实施例的基于多客户端实时同步编辑和显示方法的流程示意图;
图7是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图;
图8是本发明一实施例中获取生产者端的文档编辑的动作类型及动作内容的方法流程示意图;
图9是本发明另一实施例的多客户端实时同步编辑和显示方法流程示意图;
图10是本发明另一实施例的多客户端实时同步编辑和显示方法;
图11是本发明一实施例的基于多客户端实时同步编辑和显示方法的流程示意图;
图12是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图;
图13是本发明一实施例中同步服务器通知生产者端将其当前文档发送至消费者端的方法流程示意图;
图14是本发明一实施例中生产者端通过同步服务器将动作类型和动作内容发送到消费者端的方法流程示意图;
图15是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明基于庭审过程中的情况,利用现有的笔录文档,例如WORD编辑文档,基于客户端软件和/或直播页面,提出了多种多客户端实时同步编辑和显示方法,能够实现以书记员为驱动的文档实时同步编辑与显示。下述各实施例的方法,在不存在冲突的情况下,可组合实施。
本发明各实施例中所提及的生产者端、消费者端、客户端组和同步服务器可具有以下含义:
生产者端:以书记员为例,可以对文档进行编辑,即产生文档操作的客户端,生产者端的文档可以是嵌入至其客户端的文档。
消费者端:以法官、当事人为例,可实时看到文档操作的客户端,消费者端的文档可以是嵌入至其客户端的文档。
客户端组:一个生产者端和多个消费者端组成一个客户端组,生产者端是组内的驱动者(Leader)负责产生文档操作,生产者端产生的文档操作一般只在客户端组内传播。
同步服务器:消费者端与生产者端可以通过同步服务器中转协议进行通信,同步服务器可以对消费者端与生产者端进行管理。
本发明的多客户端可以是生产者端、消费者端及网页端等。
本发明提供一种多客户端实时同步编辑和显示方法,使生产者端实施以下各实施例的技术方案,能够使消费者端实时显示生产者端的文档。
图1是本发明一实施例的多客户端实时同步编辑和显示方法的流程示意图。如图1所示,本发明实施例的多客户端实时同步编辑和显示方法,可包括步骤:
S110:实时获取输入设备对文档所作动作的消息,并根据所述所作动作的消息分析得到对所述文档编辑的动作类型;
S120:从文档接口获取对所述文档编辑的动作内容;
S130:将所述动作类型和所述动作内容发送到至少一个消费者端,以使所述消费者端实时显示所述文档。
在上述步骤S110中,该输入设备可使用户对文档进行编辑操作,例如可以是键盘、鼠标、触摸屏等设备。该文档可以是各种现有文档,例如WORD文档、记事本等。文档编辑的动作类型例如可以是插入、删除及光标移动等操作。
在上述步骤S120中,该文档编辑的动作内容例如可以插入、删除的字符,以及在什么位置进行插入和删除。该文档接口例如可以是WORD接口、记事本接口等。
本发明实施例中,通过生产者端实时获取输入设备对生产者端的文档所作动作的消息,并根据该所作动作的消息分析得到对生产者端的文档编辑的动作类型,从文档接口获取对生产者端的文档编辑的动作内容,并将该动作类型和该动作内容发送到至需要实时显示的消费者端,能够使该消费者端实时显示生产者端的文档。书记员利用生产者端编辑笔录时,能够获得书记员编辑的位置和内容,然后在其他需要同步显示的消费者端也在相同的位置插入相同的内容,从而能保证文档内容同步。
图2是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图。如图2所示,图1所示的多客户端实时同步编辑和显示方法,在步骤S130之前,即将所述动作类型和所述动作内容发送到至少一个消费者端之前,还可包括步骤:
S140:获取同步服务器的通信地址,并根据所述通信地址向所述同步服务器注册生产者信息,以与所述同步服务器建立通信连接。
具体地,例如上述步骤S140可位于步骤S110之前。本实施例中,生产者端获取同步服务器的通信地址,并根据该通信地址向该同步服务器注册生产者信息,能够使该生产者端与该同步服务器建立通信连接。该生产者信息可以包括与生产者端相关的各种信息,例如生产者标识、生产者端所述客户端组的ID等。通过该客户端组的ID可使同步服务器得知该生产者端和哪些生产者端及消费者端属于一个客户端组,以此便于同步服务器对客户端组内的客户端进行统一管理。
一些实施例中,上述步骤S130中,将所述动作类型和所述动作内容发送到至少一个消费者端的方法,具体实施方式可为:通过所述同步服务器将所述动作类型和所述动作内容转发至与所述同步服务器建立通信连接的所述消费者端。
本实施例中,每个生产者端上线后,向同步服务器注册自己的信息,同步服务器根据注册信息可以对他们进行管理,以此可以减少生产者端的管理开支,实现统一管理。消费者端与生产者端通过同步服务器中转协议进行通信,而不需要消费者端与生产者端直接进行通信,以此,可以减少生产者端的通信压力。
图3是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图。如图3所示,图2所示的多客户端实时同步编辑和显示方法,在步骤S110之前,即实时获取输入设备对文档所作动作的消息,并根据所述所作动作的消息分析得到对所述文档编辑的动作类型之前,还可包括步骤:
S150:接收所述同步服务器的文档发送命令,并根据所述文档发送命令通过所述同步服务器将当前文档整体发送至所述消费者端。
该文档发送命令可以是同步服务器检测到有生产者端和消费者端上线时发送给生产者端的命令。该当前文档可以是生产者端执行步骤S110和步骤S120中文档编辑操作之前的文档。
本实施例中,生产者端将该文档发送命令通过同步服务器将生产者端的当前文档整体发送至消费者端,可在生产者端和消费者端刚与同步服务器建立通信连接即刚上线时,就保持生产者端和消费者端上的文档一致,在以后生产者端执行新的编辑操作时,可以仅将新的编辑操作内容(上述动作类型和动作内容)发送至消费者端,以使消费者端上的文档实时更新,从而可以避免生产者端实时传送整个文档副本至消费者端,减小了通信压力。
图4是本发明一实施例中文档编辑的动作类型和动作内容发送到消费者端的方法流程示意图。如图4所示,在上述步骤S130中,将所述动作类型和所述动作内容发送到至少一个消费者端的方法,可包括步骤:
S131:根据所述动作类型和所述动作内容生成网络协议,所述网络协议包括对所述文档编辑的操作的MD5值;
S132:将所述网络协议发送到所述消费者端。
该网络协议可以利用多种不同的现有的协议生成,例如TCP协议。可以通过在上述网络协议中定义字符表示不同的动作类型,例如插入和删除可以用不同的字符进行定义,对应不同类型的上述网络协议。可以在上述网络协议中按现有的协议格式描述上述动作内容。对于每个文档的编辑操作都可对应一个特定的MD5值,该MD5值是根据五段校验法生成,例如对当前段落的前三段文字、当前段文字及当前段的后一段文字进行校验。在该网络协议中带着位置的相关属性,例如在某一段的某个位置插入内容。
本实施例中,通过根据所述动作类型和所述动作内容生成网络协议,并使所述网络协议包括对所述文档编辑的操作的MD5值,可以利用该MD5值描述通过输入装置对生产者端的文档的编辑操作。通过将所述网络协议发送到所述消费者端,可以使消费者端利用该MD5值进行文档编辑操作一致性校验。
图5是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图。如图5所示,图1所示的多客户端实时同步编辑和显示方法,还可包括步骤:
S160:接收所述消费者端的校验命令,并根据所述校验命令将整体的当前文档或包含当前光标位置的设定位置范围的当前文档内容发送至所述消费者端。
该当前文档可以是生产者端执行步骤S110和步骤S120中的编辑操作后的文档。当生产者端接收到来自消费者端的校验命令时,可以将整个当前文档保存一份发送至消费者端;或者可以将当前光标位置的设定位置范围的当前文档内容保存成一个单独的文档发送至消费者端。例如,只传输当前光标位置的前20段文字及后10段文字,把这些文字整体加上特殊标签,保存成一个文档进行传输,发送到消费者端后,消费者端可根据该特殊标签获取文字内容,并替换相应段落的内容以保证文档同步。
一些实施例中,可以在上述当前文档大于设定页数时将整体的当前文档发送至所述消费者端,可以在上述当前文档大于设定页数时将包含当前光标位置的设定位置范围的当前文档内容发送至所述消费者端。例如,若当前生产者端需要传输的文档小于100页,则传输整个文档,若大于100页,则只传输当前光标位置的前20段文字及后10段文字。
本实施例中,根据所述校验命令将整体的当前文档或包含当前光标位置的设定位置范围的当前文档内容发送至所述消费者端,可以在文档将大时,仅传输与最近操作相关的部分文档内容,从针对校验引发的文档传输,采取了优化方式传输文件,能够减小通信压力。通过针对校验命令反馈当前文档,能够进一步保证生产者端和消费者端的文档一致。
基于与上述基于多客户端实时同步编辑和显示方法相同的发明构思,本发明另提供一种多客户端实时同步编辑和显示方法,使消费者端实施以下各实施例的技术方案,能够使消费者端实时显示生产者端的文档。该生产者端可以是上述各实施例所述的生产者端。
图6是本发明一实施例的基于多客户端实时同步编辑和显示方法的流程示意图。如图6所示,本发明实施例的基于多客户端实时同步编辑和显示方法,可包括步骤:
S210:实时获取生产者端的文档编辑的动作类型及动作内容;
S220:根据所述的动作类型及动作内容调用文档接口执行文档编辑操作,以实时显示所述生产者端的文档。
在上述步骤S210中,该文档可以是各种现有文档,例如WORD文档、记事本等。文档编辑的动作类型例如可以是插入、删除及光标移动等操作。
生产者端的文档编辑的动作类型可以通过获取生产者端的输入设备对生产者端的文档所作动作的消息,并由生产者端根据该所作动作的消息分析得到。具体参见上述生产者端各实施例中实施的多客户端实时同步编辑和显示方法。
在上述步骤S220中,该文档接口可以是消费者端的文档接口,例如可以是WORD接口、记事本接口等。
本发明实施例中,通过消费者客户端实时获取生产者端的文档编辑的动作类型及动作内容,并根据所述的动作类型及动作内容调用消费者端的文档接口执行文档编辑操作,能够使消费者端实时显示生产者端的文档。法官、当事人等利用消费者端查看生产者端文档编辑,能够得知生产者端文档编辑的类型、字符、位置等,从而能够得知庭审笔录的记录情况。
图7是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图。如图7所示,图6所示的多客户端实时同步编辑和显示方法,在上述步骤S210之前,即实时获取生产者端的文档编辑的动作类型及动作内容之前,还可包括步骤:
S230:获取同步服务器的通信地址,并根据所述通信地址向所述同步服务器注册消费者信息,以与所述同步服务器建立通信连接。
在消费者端上线后,通过根据同步服务器的通信地址向同步服务器注册消费者信息,可以与该同步服务器建立通信连接。生产者端和消费者端可以通过该同步服务器的中转协议进行通信。本实施例中,消费者端获取同步服务器的通信地址,并根据该通信地址向该同步服务器注册消费者信息,能够使该消费者端与该同步服务器建立通信连接。该消费者信息可以包括与消费者端相关的各种信息,例如消费者标识、消费者端所述客户端组的ID等。通过该客户端组的ID可使同步服务器得知该消费者端和哪些生产者端及消费者端属于一个客户端组,以此便于同步服务器对客户端组内的客户端进行统一管理。
一些实施例中,上述步骤S210,实时获取生产者端的文档编辑的动作类型及动作内容的方法,具体实施方式可为:通过所述同步服务器实时获取与所述同步服务器建立通信连接的生产者端的文档编辑的动作类型及动作内容。
本实施例中,每个消费者端上线后,向同步服务器注册自己的信息,同步服务器根据注册信息可以对他们进行管理,以此可以减少生产者端的管理开支,实现统一管理。消费者端与生产者端通过同步服务器中转协议进行通信,而不需要消费者端与生产者端直接进行通信,以此,可以减少生产者端的通信压力。
图8是本发明一实施例中获取生产者端的文档编辑的动作类型及动作内容的方法流程示意图。如图8所示,在上述步骤S210中,实时获取生产者端的文档编辑的动作类型及动作内容的方法,可包括步骤:
S211:实时接收来自所述生产者端的网络协议;
S212:解析所述网络协议得到所述的动作类型及动作内容和相应的MD5值。
该网络协议可以由生产者端利用多种不同的现有的协议生成,例如TCP协议。可以通过在上述网络协议中定义字符表示不同的动作类型,例如插入和删除可以用不同的字符进行定义,对应不同类型的上述网络协议。生产者端可以在上述网络协议中按现有的协议格式描述上述动作内容。对于每个文档的编辑操作都可对应一个特定的MD5值。
生产者端的网络协议可以直接或通过同步服务器发送至消费者端。消费者端解析该网络协议得到可以得到生产者端对其文档编辑的动作类型及动作内容和相应的MD5值。该相应的MD5值对应生产者端对其文档的本次编辑操作,即与上述动作类型及动作内容对应。该网络协议到达消费者端后,消费者根据协议类型(例如插入或删除类型的网络协议)和相关属性,可以执行相应的文档编辑操作。
本实施例中,消费者端通过实时接收来自所述生产者端的网络协议,并解析所述网络协议得到所述的动作类型及动作内容和相应的MD5值,可以利用该动作类型及动作内容执行文档编辑操作,在执行编辑操作后可以利用该MD5值进行文档一致性校验。
图9是本发明另一实施例的多客户端实时同步编辑和显示方法流程示意图。如图9所示,图6所示的多客户端实时同步编辑和显示方法,还可包括步骤:
S240:根据执行的文档编辑操作生成MD5值;
S250:比较生成的MD5值和所述网络协议中的MD5值是否一致;
S260:若否,则发送校验命令至所述生产者端,以获取所述生产者端的最新文档内容,并利用所述最新文档内容更新执行所述文档编辑操作后的文档。
该最新文档可以是生产者端接收到上述校验命令时的当前文档。消费者端执行编辑操作后,文档同步逻辑执行完成。消费者端可根据生产者端的文档编辑操作的MD5值生成方式,即例如五段校验法,再次产生一个MD5值,即根据消费者端利用文档接口所执行的编辑操作生成一个MD5值。然后将生成的MD5值跟网络协议里发送过来的MD5值进行比较,若相同可表示操作完成后消费者端的文档与生产者端文档是一致的,若不相同,则可发出校验命令,直接或通过同步服务器将该校验命令发送到生产者端。生产者端可把其当前文档的整体或部分保存一份,直接或通过同步服务器发送到指定的消费者端,消费者端则可替换其当前的文档,以保证生产者端和消费者端文档同步。
本实施例中,消费者端通过根据执行的文档编辑操作生成MD5值,并通过比较生成的MD5值和所述网络协议中的MD5值是否一致校验文档是否一致,若不一致,通过发送校验命令至所述生产者端,获取所述生产者端的最新文档内容,可以利用所述最新文档内容更新执行所述文档编辑操作后的文档,以保证消费者端的文档与生产者端的文档一致。
图10是本发明另一实施例的多客户端实时同步编辑和显示方法。如图10所示,图6所示的多客户端实时同步编辑和显示方法,还可包括步骤:
S270:在执行文档编辑操作后的文档添加标签,并将所述标签的标签位置、标签名以及标签样式信息发送至其他消费者端和所述生产者端。
该标签可以利用消费者端的客户端功能实现。该标签可以通过多种方式添加,例如画笔、批注等。标签位置可以是在消费者端的文档的各种不同段落或字符位置。标签名可以用于标识该标签。标签样式例如可以是画笔的颜色,不同的消费者端可以使用不同的标签样式,例如使用不同颜色的画笔,以此根据标签样式可以得知是哪个客户端添加的标签。
利用标签或批注可以使消费者端给生产者端的当前文档一个反馈,比如法官觉得这段文字有问题,需要书记员进行修改,就会在此段添加标签或打上批注。消费者端在某一段使用画笔添加标签或进行批注,则在相应段落利用文档接口打上特殊标签,并可将该标签发送至例如同一客户端组内的其他客户端(其他消费者端和生产者端),其他客户端在文档相应位置可使用例如画笔画出批注。可以对消费者端的画笔颜色进行设置,这样书记员可以根据颜色判断是哪个参庭人员做的批注。
本实施例中,消费者端在文档添加标签,并将所述标签的标签位置、标签名以及标签样式信息发送至其他消费者端和所述生产者端,可以对生产者端的文档进行反馈,并能让其他消费者端和生产者端得知其反馈内容。
基于与上述基于多客户端实时同步编辑和显示方法相同的发明构思,本发明还提供一种多客户端实时同步编辑和显示方法,使生产者端和消费者端实施以下各实施例的技术方案,能够使消费者端实时显示生产者端的文档。该生产者端可以是上述各实施例所述的生产者端。该消费者端可以是上述各实施例所述的消费者端。
图11是本发明一实施例的基于多客户端实时同步编辑和显示方法的流程示意图。如图11所示,本发明实施例的基于多客户端实时同步编辑和显示方法,可包括步骤:
S310:生产者端实时获取输入设备对所述生产者端的文档所作动作的消息,并根据所述所作动作的消息分析得到对所述生产者端的文档编辑的动作类型;
S320:所述生产者端从其文档接口获取对所述生产者端的文档编辑的动作内容;
S330:所述生产者端通过同步服务器将所述动作类型和所述动作内容转发到至少一个消费者端;
S340:所述消费者端根据所述动作类型和所述动作内容调用所述消费者端的文档接口对所述消费者端的文档执行编辑操作。
在上述步骤S310中,该输入设备可使用户对文档进行编辑操作,例如可以是键盘、鼠标、触摸屏等设备。该文档可以是各种现有文档,例如WORD文档、记事本等。文档编辑的动作类型例如可以是插入、删除及光标移动等操作。
在上述步骤S320中,该文档编辑的动作内容例如可以插入、删除的字符,以及在什么位置进行插入和删除。该文档接口例如可以是WORD接口、记事本接口等。
在上述步骤S330中,所述生产者端可先将所述动作类型和所述动作内容发送至同步服务器,同步服务器再将所述动作类型和所述动作内容转发到至少一个消费者端。
本发明实施例中,通过生产者端实时获取输入设备对生产者端的文档所作动作的消息,并根据该所作动作的消息分析得到对生产者端的文档编辑的动作类型,从文档接口获取对生产者端的文档编辑的动作内容,并将该动作类型和该动作内容发送到至需要实时显示的消费者端,消费者端根据所述动作类型和所述动作内容调用所述消费者端的文档接口对所述消费者端的文档执行编辑操作,能够使该消费者端实时显示生产者端的文档。消费者端与生产者端通过同步服务器中转协议进行通信,而不需要消费者端与生产者端直接进行通信,以此,可以减少生产者端的通信压力。
图12是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图。如图12所示,本发明实施例的多客户端实时同步编辑和显示方法,在上述步骤S310之前,即生产者端实时获取输入设备对所述生产者端的文档所作动作的消息,并根据所述所作动作的消息分析得到对所述生产者端的文档编辑的动作类型之前,还可包括步骤:
S360:所述客户端根据所述同步服务器的通信地址向所述同步服务器注册客户端信息;
S370:所述同步服务器根据所述客户端信息中的身份标识判断所述客户端是所述生产者端还是所述消费者端;
S380:若所述客户端是所述生产者端,所述同步服务器根据所述客户端信息中的组ID检测所述生产者端所在客户端组中的所述消费者端是否与其建立通信连接,若是,通知所述生产者端将其当前文档发送至所述消费者端;若所述客户端是所述消费者端,所述同步服务器保存所述客户端信息,并根据所述客户端信息中的组ID检测所述消费者端所在客户端组中的所述生产者端是否与其建立通信连接,若是,则通知所述生产者端将其当前文档发送至所述消费者端。
在上述步骤S360中,同步服务器的地址可以在客户端配置好,或者向从同步服务器端获取。所述客户端根据所述通信地址向所述同步服务器注册客户端信息,可以保证客户端和同步服务器之间建立通信连接。
在上述步骤S370中,该客户端信息中的身份标识可以表明该客户端是生产者端还是消费者端。其他实施例中,该客户端信息还可包括客户端组ID,比表明该客户端所属的客户端组,同步服务器可以利用客户端组ID对多个客户端进行分组管理。
在上述步骤S380中,客户端上线管理可以由同步服务器对客户端进行管理,根据一个客户端组,可分为两种情况,第一种是生产者端先上线,第二种是消费者端先上线,上线意味着与同步服务器建立通信连接。若所述客户端是所述生产者端,可以在生产者端与同步服务器建立连接时,使同步服务器根据客户端信息中的组ID随后检测组内消费者端是否与其建立通信连接,若消费者端上线了,可让身份为生产者端的客户端将其整个文档发送至上线的消费者端。若所述客户端是所述消费者端,可以先保存身份为消费者端的客户端的信息,以待组内生产者端上线后,让该生产者端将其文档转发至之前上线的消费者端。
图13是本发明一实施例中同步服务器通知生产者端将其当前文档发送至消费者端的方法流程示意图。如图13所示,在上述步骤S380中,通知所述生产者端将其当前文档发送至所述消费者端的方法,可包括步骤:
S381:所述同步服务器发送文档发送命令至所述生产者端;
S382:所述生产者端根据所述文档发送命令将其当前文档发送至所述同步服务器;
S383:所述同步服务器保存所述生产者端的当前文档一设定时长,并将所述生产者端的当前文档转发至所述消费者端,所述同步服务器保存的当前文档用于转发至在所述设定时长内与所述同步服务器建立通信连接的消费者端。
在上述步骤S382中,该当前文档可以是该生产者端收到文档发送命令时的文档。在上述步骤S383中,同步服务器保存所述生产者端的当前文档一设定时长。通过保存文档可使得当较短时间内有多个消费者端新上线时,同步服务器可直接将其保存的文档发送至消费者端,而不必重复通知生产者端重复发送同样的文档,以此可以减小通信压力。保存文档设定时长后,可以删除文档,以此可以减小同步服务器的存储压力。
图14是本发明一实施例中生产者端通过同步服务器将动作类型和动作内容发送到消费者端的方法流程示意图。如图14所示,在上述步骤S330中,所述生产者端通过同步服务器将所述动作类型和所述动作内容转发到至少一个消费者端的方法,可包括步骤:
S331:所述生产者端根据所述动作类型和所述动作内容生成网络协议,并将所述网络协议发送到所述同步服务器,所述网络协议包括所述生产者端的文档编辑所对应的MD5值;
S332:所述同步服务器保存所述网络协议中的MD5值,并将所述网络协议转发到所述消费者端。
在上述步骤S331中,该网络协议可以利用多种不同的现有的协议生成,例如TCP协议。可以通过在上述网络协议中定义字符表示不同的动作类型,例如插入和删除可以用不同的字符进行定义,对应不同类型的上述网络协议。可以在上述网络协议中按现有的协议格式描述上述动作内容。对于每个文档的编辑操作都可对应一个特定的MD5值,该MD5值是根据五段校验法生成,例如对当前段落的前三段文字、当前段文字及当前段的后一段文字进行校验。在该网络协议中带着位置的相关属性,例如在某一段的某个位置插入内容。
本实施例中,通过将所述网络协议发送到所述消费者端,可以使消费者端利用该MD5值进行文档编辑操作一致性校验。
图15是本发明另一实施例的多客户端实时同步编辑和显示方法的流程示意图。如图15所示,图11所示的多客户端实时同步编辑和显示方法,还可包括步骤:
S390:各所述消费者端根据其执行的编辑操作生成各自的MD5值,并比较各自的MD5值和所述网络协议中的MD5值是否一致;
S3100:若否,各所述消费者端分别发送校验命令和所述网络协议中的MD5值至所述同步服务器;
S3110:所述同步服务器将最先收到的校验命令转发至所述生产者端,并比较其保存的MD5值和与后续收到的校验命令一同收到的MD5值是否一致,若是,则不将后续收到的校验命令转发至所述生产者端;
S3120:所述生产者端根据收到的校验命令将其最新文档通过所述同步服务器转发至各所述消费者端;
S3130:所述消费者端利用所述最新文档更新所述消费者端的当前文档。
生产者端的文档编辑操作是通过输入设备实现,其操作对应一个MD5值,消费者端的文档编辑操作是通过文档接口实现,该操作也可对应一个MD5值,通过比较两个MD5值可以知道生产者端对文档的操作和消费者端对文档的操作是否一致。
本实施例中,可以存在多个消费者端需要实时显示生产者端的文档。每个消费者端均可以校验其文档与生产者端文档的一致性。当同步服务器将最先收到的校验命令转发至所述生产者端(步骤S332中,事先保存的生产者端的本次操作的MD5值)。比较同步服务器保存的MD5值(即生产者端的本次操作的MD5值)和同步服务器后续收到的校验命令对应的MD5值(与校验命令一同收到)是否一致,若一致,可说明已有消费者端对生产者端的本次操作进行校验,此时可不将后续收到的校验命令转发至所述生产者端,而是让生产者端根据收到的校验命令(同步服务器最先收到的校验命令)将其最新文档通过所述同步服务器转发至各个消费者端,此时,其他校验命令未被同步服务器转发至生产者端的消费者端的文档也可得到更新。简言之,针对生产者端的同一操作,当同时有多个消费者端对该操作进行校验时,可仅让生产者端发送一次最新文档用于更新所有消费者端的文档,避免让生产者端重复发送同样的文档,可以减小生产者端的通信压力。
一些实施例中,所述消费者端为被封装成OCX控件的客户端,以供网页调用。本实施例中,将消费端封装成OCX控件供网页调用,供网页端使用,可以实现在网页直播使用消费者端。不在庭审中的人员可以通过庭审直播的网页实时观看当前庭审的笔录情况。
一些实施例中,可以使用钩子技术得到输入设备的消息。例如利用钩子技术得到生产者端的鼠标和键盘消息。分析钩子够到的消息,可以得到生产者的操作。
一些实施例中,可以使用DSO Framer Control控件来承载WORD文档,同时可通过引用OFFICE库来调用WORD文档的内部接口。
一些实施例中,在书记员客户端监听设备的键盘和鼠标消息,分析键盘和鼠标消息,得到书记员的动作类型,例如:插入、删除以及光标移动操作;同时结合WORD的接口,获得插入、删除的字符,以及在什么位置进行插入和删除;然后把这些内容同过网络协议传给各个需要实时展示的客户端,各个客户端在收到协议后进行解析,解析之后根据协议内容,再次调用WORD接口执行相同的操作,如果能够确认操作一致,一定能够保证文档是实时同步的。
一些实施例中,客户端登录后,得到同步服务器的通信地址,向同步服务器注册自己的信息,同步服务器根据注册的信息对客户端进行分组管理;生产者端产生操作,把操作的详细信息通过网络通信发送到同步服务器端,同步服务器找到客户端组的其他成员,向他们转发协议,其他客户端收到协议后解析并执行,执行后判断文档是否一致,不一致发出校验命令,经同步服务器端转发到生产者端,生产者端处理校验命令保证文档同步。
一些实施例中,客户端分组:同步服务器实现功能,每个客户端上线后,向服务器注册自己的信息,保证同步服务器可以与之进行通信,信息中有一特殊的字符串,表示自己所在的客户端组ID,同步服务器根据此ID值判断哪些客户端是一个客户端组,而且客户端注册信息里会标识自己是否是组内的Leader成员。
一些实施例中,客户端上线管理:客户端上线管理是同步服务器对客户端的管理工作,根据一个客户端组,分为两种情况,第一种情况,生产者端先上线,也就是组内Leader先上线,同步服务器在得到一个客户端组内的Leader上线后,会检测同组内其他消费端是否上线,若有,则通知该组的生产者端把当前的文档发送给服务器端,经服务器端转发给每个组内的其他消费者端,保证文档一致;另一种情况,消费者端先上线,服务器端只保存消费者端的信息,并且根据组ID把它跟组内其他消费者端放在同一个组内进行管理,等待组内Leader上线后,执行Leader上线逻辑保证文档同步。
一些实施例中,文档同步:一个客户端组组成后,Leader客户端,也就是生产者端产生操作,经过分析,产生不同类型的网络协议,例如插入或者删除;并在协议中带着位置的相关属性,例如在某一段的某个位置插入内容,注意每个操作都有一个特定的MD5值,根据五段校验法生成(当前段落的前三段文字,当前段文字,当前段的后一段文字);协议由生产者端发送到同步服务器,同步服务器向所有在线的组内消费者端转发该协议,协议到达消费者端后,消费者根据协议类型和相关属性,执行相应的操作。
一些实施例中,文档一致性校验:同步逻辑执行完成后,消费者端会根据该操作的MD5值生产方式,也就是五段校验法,再次产生一个MD5值,然后跟网络协议里发送过来的MD5值进行比较,若相同表示操作完成后消费者端的文档与生产者端文档是一致的,若不相同,则发出校验命令给同步服务器,同步服务器把校验指令转发到生产者端,生产者端会把当前文档保存一份,转发到同步服务器,同步服务器再把文档转到指定的消费者端,消费者端则替换当前的文档保证文档同步。
一些实施例中,消费者端添加批注:批注是消费者端给生产者端的当前文档的一个反馈,比如法官觉得这段文字有问题,需要书记员进行修改,就会在此段打上批注。消费者端在某一段使用画笔进行批注,则在相应段落利用WORD接口打上特殊标签,并通过网络协议传输该段落位置和书签名,以及画笔的相关信息到同步服务器,同步服务器转发协议到组内的其他客户端,其他客户端解析协议后在文档相应位置方使用画笔画出批注,可以对消费者的画笔颜色进行设置,这样书记员可以根据颜色判断是哪个参庭人员做的批注。
一些实施例中,对文档传输优化:针对校验引发的文档传输,采取优化方式传输文件,若当前生产者端需要传输的文档小于100页,则传输整个文档,若大于100页,则只传输当前光标位置的前20段文字及后10段文字,把这些文字整体加上特殊标签,保存成一个文档进行传输,经同步服务器转发到消费者端后,消费者端根据特殊标签获取文字,并替换相应段落的内容以保证同步,若小于100页则直接替换整个文档。
一些实施例中,文档一致性校验优化:经过测试发现,若一个操作在某个消费者端执行后产生校验,在其他的消费者端同样会产生校验,因此若对每一次校验命令同步服务器都转发到生产者端,生产者端每次都要保存文档并发送,而且随着消费者端的增多校验会成倍的增长,为了减少一个操作引发多次校验,因此,在同步服务器端会记录下已经向生产者端发送校验命令的操作的MD5值,等到下次某个消费者端再产生校验命令,若已经向生产者端转发过校验命令,则不再进行处理,直接丢掉。而且为了减少同步服务器端内存压力,只对每组消费者端和生产者端的最新的五个校验操作的MD5值进行保存。
一些实施例中,文档暂存优化:每当有新的消费者端上线时,同步服务器都会向生产者端要一份文档,然后再中转到消费者端保证文档同步,这样如果在极端情况下,不同的消费者的同时上线,会引起生产者端产生多次的保存全部文档操作,并把文档转发到同步服务器端,为了避免这种情况,针对全文文档的转发在同步服务器端保存一段时间(目前为3s),在这段时间内,再次发生全文文档转发操作,只需把同步服务器端的文档转发给消费者端即可,不需要再次向生产者端发送全文文档转发协议。
本发明实施例,给出了多客户端同步编辑与显示技术的实现,根据对生产者端的设备消息监听,分析生产者端的操作,然后通过协议转发给消费者端,消费者端执行同样的操作来确保文档实时同步;设置同步服务器实现了对生产者端和消费者端的统一管理,并根据组ID对客户端进行分组,按组管理客户端;同时采用文档传输、校验、文档暂存优化设计对整个解决方案进行优化,避免了不必要的通讯流量,减少了生产者端的通信压力。
本发明实施例的多客户端实时同步编辑和显示方法,通过实时获取生产者端对文档编辑的动作类型和动作类型,并将该动作类型和动作类型发送至消费者端,从而消费者端可以得知生产者端对文档编辑操作的类型、位置及字符等信息,该动作类型和动作类型可使生产者端据其实时执行相同的操作,从而可保持消费者端显示的文档与生产者端的文档一致,从而实现跨平台文档的同步。进而,通过跨平台文档同步能够满足庭审过程中记录、查看等各种需求。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。