复合文档访问的制作方法

文档序号:12167257阅读:213来源:国知局
复合文档访问的制作方法与工艺

为了效率目的以及环境目的两者,数字文档的创建、分配和交换已经变为被普遍接受的打印文档的替代方式。可以被创建、分配或另外被交换的数字文档的示例例如包括电子字(word)处理文档、电子表格、电子演示、电子图纸、便携式文档格式(PDF)文件,以及例如HTML、CSS的web页面或者其他web格式文件。数字文档可以是机密的或高度地机密的,并且在一些情况下,用户可能希望控制此类文档的分配。

许多数字文档已经变为以不同文件格式创建的单独的部分的混合或者复合。可以通过诸如ZIP存档或TAR存档的各种序列化机制将不同的部分组合在一起。复合文档的一个示例是商业计划文档,包括:作为JPEG文件的产品图像、作为MOV文件的营销视频剪辑、作为PPT文件的幻灯片展示和作为XLS文件的财务细节电子表格。可以通过可编辑的、可浏览的、可搜索的、可批准的或可用的单个文档的专业软件来向用户展示复合文档。

附图说明

图1根据本公开的示例图示了数字文档工作流程的简化框图;

图2根据本公开的示例图示了包括创作环境和参与者访问环境的数字文档系统的简化框图;

图3根据本公开的示例图示了访问复合文档的内容部分的流程图;并且

图4根据本公开的示例图示了可以用作实施或执行在图3中描绘的处理中的至少一个处理的平台的计算设备的示意性表示。

具体实施方式

在示例中,复合文档、创作环境和具有受信访问工具/模块的工作流程参与者访问环境规定复合文档的保密内容部分的访问、修改、同步和撤销。

更具体地,在示例中,复合文档访问使得能够基于处理指令或状态标识符集合来撤销和或修改复合文档或复合文档的内容部分。撤销内容部分例如可以允许文档作者在内容部分被工作流程参与者(或“用户”)基于时间或事件型属性读取之前撤销对内容部分的访问。在一些示例中,撤销内容部分还可以允许文档作者在内容部分已经被工作流程参与者(或“用户”)根据基于时间或事件型属性读取之后撤销对内容部分的访问。

作为另一示例,修改内容部分可以通过将内容部分与更新的或版本化的内容部分进行同步以允许文档作者在内容部分被工作流程参与者读取之前、或者在内容部分已经被工作流程参与者读取之后修改内容部分。

在一些示例中,撤销或修改内容部分可以规定内容部分或文档的清除,增加保密感和/或私密感。甚至可以在将内容部分进行传输之后,或在内容部分已经被读取之后发生此类情况中的撤销或修改。在一些示例中,修改内容部分还可以确保工作流程参与者根据最新版本工作。

在撤销或修改内容部分的任一情况中,可以为文档作者提供在“最后一分钟”作出改变或撤销的机会,即,撤销或修改已经被传送或者甚至被打开和/或读取的复合文档的内容部分。

图1图示了根据本公开的示例的数字文档工作流程的简化框图。应当理解的是,图1中的描绘的图表示一般化图示,并且可以在不背离数字文档工作流程100的总体范围的情况下添加其他组件,或可以移除、修改或重新布置现存的组件。

在示例中,数字文档工作流程100包括数字文档102、创作环境106、复合文档108、参与者访问环境118、受信访问工具/模块120和时间引擎122。

如以下更详细地讨论的,创作环境106、参与者访问环境118、受信访问工具/模块120和时间引擎122可以包括利用机器可读指令进行配置以用于在数字文档工作流程100中执行各种功能的诸如计算机、服务器、数据库、处理器、存储器和/或电路等的硬件设备。此外,或者可替代地,组件可以包括存储在计算机可读介质上的机器可读指令。

在示例中,创作环境106可以将数字文档102的内容部分104a-n进行打包、加密和签名,以使得导致不能对复合文档108中的保密内容部分110a-n(主要形式)进行访问,除非工作流程参与者具有访问保密内容部分110a-n的合适的密钥(分配形式)。更具体地,创作环境106可以生成或派生所需要的加密和签名密钥以将内容部分104a-n加密和签名为保密内容部分110a-n。另外,在示例中,可能需要工作流程参与者使用不同的密钥集合来对复合文档108进行读取和/或写入。

此外,创作环境106可以考虑到对处理指令、状态字段或者其他属性的创建或编辑以用于访问、修改或撤销复合文档108中的内容部分。在示例中,处理指令或状态可以嵌入到内容部分110a-n中,或可以存储在复合文档108外部,诸如存储在具有参考标识符的外部数据库中。外部数据库可以是平面文件或关系数据库以最小化数据冗余,并且可以与例如以下更详细地讨论的内容部分一起处于内容部分所处的位置。可以将处理指令和状态加密,以使得在没有保密访问的情况下不可以对它们进行读取,或者使得仅由受信访问工具/模块来读取和/或执行。

在处理指令存储在内容部分110a-n中的示例中,内容部分表格110a-n可以包括字段,该字段诸如内容部分的部分ID、内容部分数据(或对存储于外部的内容的索引)、将内容更新链接到内容部分位置的更新位置、日期时间戳和签名。在一些示例中,更新位置或日期时间签章可被单独地或与状态字段结合地考虑为处理指令。

复合文档108可以包括数字文档,该数字文档包含可能已经被加密和签名的内容部分以充分地防止对该内容部分的非授权访问和/或修改。内容部分可以包括单独的文件或可寻址的文件片段形式的各种可独立地寻址和访问的部分。例如,内容部分可以包括独立的文件、文件组,或者包括例如标签、节点、要素、页、单元、幻灯片、图像、视频等的文件片段,和/或不同类型的文件部分的组合。

在一个示例中,复合文档可以例如在公共位置或公共服务器上公开发布,或具有公共级别的访问。例如,复合文档可以在公共服务器上,但不是可公开访问的,或者反之亦然。在另一示例中,可以在企业内部或秘密地使用复合文档,和/或在(机构间或机构内的)混合工作流程中使用复合文档。

在一个示例中,可以为工作流程参与者提供对复合文档的初/高级访问而不需要由例如受信访问工具来检索或处理处理指令。例如,可以为工作流程参与者呈现复合文档的目录,但是需要由受信访问工具处理的处理指令来访问通过目录表示或索引的内容部分。

复合文档108被描绘为包含多个示例性的保密内容部分110a-n和处于密钥映射表112中的多个示例性的加密的密钥映射条目。在本文使用的术语“保密”旨在指示内容部分110a-n和密钥映射表中的密钥映射条目是被加密和/或签名的。可以通过为工作流程参与者分配密钥映射表112中的相应的密钥映射条目中所包含的各种密钥集合来控制工作流程参与者对保密内容部分110a-n的访问。

存储在条目表114中的数据可以包括解密密钥映射条目以访问复合文档108的保密内容部分所需要的信息。签名表116可以包括复合文档108中的表的签名,例如,条目表114和/或密钥映射表112的签名。如以上所提及的,可以通过例如SQLite的各种序列化机制将各种保密内容部分和复合文档的元素组合在一起。

参与者访问环境118可以表示示例性计算设备或软件程序,工作流程参与者通过该示例性计算设备或软件程序接收或初步访问复合文档108,或者文档作者可以通过该示例性计算设备或软件程序修改或撤销内容部分。计算设备可以包括比如个人计算机、台式计算机、膝上型计算机、平板式计算机、个人数字助理、蜂窝式电话、智能电话和消费者电子设备等。软件程序可以包括或包含用于访问复合文档108的前端软件工具或图形用户界面(“GUI”)。当被准许充分的访问时,工作流程参与者可以通过参与者访问环境118查看、编辑、复制、打印和/或确收复合文档108。

在示例中,在工作流程100期间,参与者访问环境118可以接收复合文档,该符合文档包含针对每个工作流程参与者的一个或多个密钥映射条目,其中密钥映射条目已经使用每个工作流程参与者的密钥K进行了加密。此外,参与者访问环境118可以使用密钥来解密被加密的密钥映射条目。在示例中,密钥可以是用于加密和解密两者的秘密的、对称的加密密钥。在示例中,还可以在解密之前对复合文档或内容部分进行认证。

参与者访问环境118还可以:对参与者进行认证;用作文档保密性和安全性检查站;随着工作流程在各个点备份复合文档108;随着工作流程在各个点对复合文档108加时间戳;以及对复合文档108进行扫描以确定复合文档108是否遵守保密规则。

可以通过比如非保密电子邮件、共享服务器、直接文件传输器、可移动储存媒体或云服务等来向工作流程参与者供复合文档108,并且复合文档108可以在多个工作流程参与者之间通过非保密电子邮件、共享服务器、直接文件传输器、可移动存储媒体或云服务等提供。在工作流程参与者的控制下,复合文档然后可以被存储在工作流程参与设备上。

在一示例中,参与者访问环境118还包括文档作者信任的受信访问模块120以保证基于时间或基于事件地执行命令,例如撤销和/或同步命令。

受信访问工具120可以是参与者访问环境118的一部分,或者可以是单独的模块、程序、逻辑或硬件。在示例中,受信访问工具120可以被运行为可由工作流程参与者在例如膝上计算机、台式机或者其他设备的参与者设备上进行访问的软件、服务或软件和服务的组合。在示例中,受信访问工具120可以具有受信访问工具120自己的密钥,受信访问工具120自己的密钥可以用于向工作流程参与者的密钥映射条目发放访问令牌,直到发放了该访问令牌时才可以访问该密钥映射条目。

在工作流程100期间,在示例中,受信访问工具120可以从例如复合文档108的内容部分表格110a-n接收更新位置和日期时间戳。如下面更详细地所讨论的,更新位置和日期时间戳可以单独地使用,或者与另一处理指令或状态字段结合地使用,以控制对内容部分的访问、修改和/或撤销。也可以与例如日期时间戳来结合地使用可以是时间源的时间引擎122,例如,因特网时钟或原子钟。

部分位置可以是例如具有更新后的内容部分、引用的资源位置、用于内容部分的处理指令和/或用于内容部分的状态字段的外部服务器。在一些示例中,参与者访问环境118或受信访问工具120可以访问部分位置124。在其他的示例中,创作环境106可以访问部分位置124。如以上讨论的,部分ID或其他唯一标识符可以用于识别内容部分。受信访问模块120可以认证存储在部分位置124的数据中的任何数据或所有数据,例如,受信访问模块120可以在基于处理指令和/或状态字段确定动作之前来认证处理指令或状态字段。

图2根据本公开的示例图示了包括创作环境和参与者访问环境118的数字文档系统的简化框图。

应当理解的是,在不背离图2的系统的范围的情况下,在图2中的描绘的框图表示一般化图示,并且可以添加其他组件,或者可以移除、修改或重新安排现存的组件。

如图2中所示,在示例中,创作环境106可以包括用户界面模块210、文档序列化模块212、加密模块214、签名模块216和密钥生成模块218。除了创作环境的其他操作之外,该多个模块可以:支持用户界面,将内容部分添加(或“序列化”)到复合文档中,对内容部分或者全部复合文档进行加密,对内容部分或者全部复合文档进行签名,以及生成在复合文档中使用的密钥。

在示例中,参与者访问环境118可以包括用户界面模块220、文档读取/写入模块222、加密/解密模块224、签名/验证模块226、密钥访问模块228和受信访问模块230。除了参与者访问环境118的其他操作之外,包括除了在本文讨论的那些操作之外,该多个模块可以:支持用户界面,对内容部分进行读取和/或写入,对内容部分进行加密和解密,对内容部分进行签名或验证,访问密钥,以及规定如以上关于受信访问模块230讨论的受信访问。

模块210-218和220-230可以表示机器可读指令、逻辑、硬件或者可以表示包含机器可读指令和硬件的模块的组合。因此,在一个示例中,模块210-218和/或220-230中的至少一个包括电路组件。在另一示例中,模块210-218和/或220-230中的至少一个包括存储在可由处理器执行的计算机可读存储媒介上的机器可读指令。

可以通过可以联接到存储器204、输入装置206以及输入/输出接口208的相应的处理器或处理器202来实施和/或执行创作环境106和参与者访问环境118。举例来说,参与者访问环境118可以包括计算机可读存贮设备,在该计算机可读存贮设备上存储用于模块220-230中的每个模块的机器可读指令,并且在该计算机可读贮存设备上由可以联接到存储器204的处理器202来执行该用于模块220-230中的每个模块的机器可读指令。

创作环境106和参与者访问环境118和/或诸如受信访问工具120的其他模块可以直接地彼此进行通信,或者可以通过例如接口208之类的输入/输出接口来彼此进行通信,或者通过使用令牌或密钥或其它数字通信方法来彼此进行通信。

图3根据本公开实施例图示了对复合文档的内容部分进行访问的流程图。

在框302中,在示例中,文档作者在被传播到例如部分位置124的创作环境106中设置或创建诸如修改或撤销之类的触发。触发可以立即执行,触发可以是基于时间的,或者触发可以是基于事件的。在其他示例中,触发可以由工作流程参与者来设置,或者响应于条件、发生、改变、事件、通知或轮询等而发生。在一些示例中,触发仅可由具有所要求级别的读取/写入访问的文档作者或工作流程参与者来创建或编辑。

在框304中,在第一示例中,在触发之后,针对特定内容部分接收或者检索复合文档中的处理指令和来自部分位置的状态码。在另一示例中,可以根据触发来实施或确定处理指令和/或状态码。在一示例中,处理指令和/或状态码可以用于确定动作。

例如,状态字段0可以指示内容部分没有改变;状态字段1可以指示在工作流程参与者访问内容部分之前撤销该内容部分;状态字段2可以指示在特定时间或在特定事件情况下从工作流程参与者撤销内容部分;状态字段3可以指示在工作流程参与者访问内容部分之前对该内容部分进行修改;以及状态字段4可以指示在工作流程参与者访问内容部分之后对该内容部分进行修改。以下与相关联的动作一起更详细地讨论这五个状态字段或处理指令中的每一个。此外,可以使用其他状态字段或代码。

在框306中,接收到的处理指令或状态字段,例如代码0,可以指示不对内容部分作出改变。在框308中,可以显示或传送内容部分,或者,如果例如工作流程参与者已经具有在工作流程参与者的设备上的未改变的、传送的内容部分,则可以不进行动作。

在框310中,接收到的处理指令或状态字段,例如代码1,可以指示在工作流程参与者访问内容部分之前撤销该内容部分。在此类示例中,工作流程参与者可能未接收到或未读取内容部分,或者可能已经接收到但是还没有读取内容部分。在任一情况中,撤销内容部分,即,从复合文档108中移除内容部分。在一些情况下,可以仅针对内容部分的版本来撤销内容部分。例如,文档作者可以撤销文档的版本5,而不撤销版本1-4。

在框314中,接收到的处理指令或状态字段,例如代码2,可以指示基于时间,例如绝对时间或相对时间来撤销内容部分,或者基于事件来撤销内容部分。在此类示例中,工作流程参与者可能未接收到或读取内容部分,或者可能已经接收但是还没有读取内容部分,或者可能已经接收到并且读取了内容部分。如下面更详细地讨论的,在任何情况下,当时间或事件到达或出现在框316-322中时,撤销内容部分,即,从复合文档108中移除内容部分。如上,在一些情况下,可以仅根据内容部分的版本来撤销内容部分。在一些情况下,工作流程参与者可以关于即将进行的撤销而接收警告。

在一个示例中,在框316中,受信访问工具120确定用于复合文档108的日期时间戳处理指令是相对时间。相对时间可以是例如在内容部分的初始访问之后20分钟的时间。因此,在框316中,受信访问工具120记录内容部分被首次访问的时间,并且在相对时间段流逝或已经满足相对时间时,在框318中撤销内容部分。

在另一示例中,在框320中,受信访问工具120确定用于复合文档108的日期时间戳处理指令是已过去的绝对时间,或者与当前时间匹配的时间。因此,流程直接继续到内容部分被撤销的框320。

在另一示例中,在框322中,可信访问工具120确定日期时间戳是在将来的绝对时间。因此,当内容部分已经被工作流程参与者请求并且还没有被显示或传送,则受信访问工具120显示内容部分,并且等待日期时间被满足。当日期时间已经满足时,例如当时间达到时,撤销内容部分。

在以上的示例中,当撤销内容部分时,可以立即从工作流程参与者,例如,工作流程参与设备撤销内容部分,或者当工作流程参与者离线或非立即可用时,则可以将撤销命令排队以在例如工作流程参与设备恢复在线时执行。在一些示例中,在工作流程参与者下线时,参与者访问环境118可以使用例如受信访问模块120来撤销内容部分。撤销还可以包括将与撤销的内容部分相关联的磁盘驱动器区域或扇区保密地擦除,以增加保密性和私密性,并且确保撤销不能被逆转。

在框324中,接收到的处理指令或状态字段,例如代码3,可以指示在工作流程参与者访问内容部分之前对该内容部分进行修改。在此类示例中,在工作流程参与者访问内容部分时,或者在工作流程参与设备可用或在线时,可以例如立即在框326中将内容部分同步。

在框328中,接收到的处理指令或状态字段,例如代码4,可以指示在工作流程参与者访问内容部分之后对该内容部分进行修改。在此类示例中,在框330中,可以将内容部分同步。在此类示例中,由于工作流程参与者已经访问了内容部分并且可能主动地编辑或读取内容部分,在各个示例中,内容部分可以被立即修改、在警告工作流程参与者之后和/或在修改内容部分之前向工作流程参与者提供一段时间之后被修改,或者询问工作流程参与者修改版本是否是期望的。

图4根据本公开的实施例图示了可以用作实施或执行在图3中描绘处理中的至少一个处理的平台的计算设备的示意性表示。

可以将在附图中阐述的一些或所有操作作为工具、程序或者子程序包含在任何期望的计算机可读存储媒介中,或者嵌入在硬件上。另外,可以通过机器可读指令实施操作。例如,它们可以以源代码、目标代码、可执行代码或者其他格式的机器可读指令而存在。

计算设备400可以表示包括创作环境106、参与者访问环境118、受信访问工具120和/或时间引擎122的计算设备。设备400可以包括:诸如中央处理单元之类的处理器402;诸如监视器或其他数字显示器之类的显示设备404;诸如局域网LAN卡、无线802.11x LAN卡、3G或4G移动WAN或WiMax WAN卡之类的网络接口406;以及计算机可读媒介410。这些组件中的每个组件可以可操作地联接到总线408。例如,总线408可以是增强工业标准架构(EISA)、外部连接接口(PCI)、通用串行总线(USB)、火线(FireWire)、新总线(NuBus),或者个人数字系统(PDS)。

计算机可读媒介410可以是参与向处理器(多个)402提供指令以用于执行的任何适当的媒介。例如,计算机可读媒介410可以是诸如光学或磁盘之类的非易失性介质;以及诸如存储器之类的易失性介质。传输介质还能够采取声学、光或者射频波的形式。计算机可读媒介410还可以存储其他机器可读指令,包括从网络或因特网下载的指令。

计算机可读媒介410还可以存储:诸如微软Windows、Mac OS、Unix,或者Linux之类的操作系统412;网络应用414;以及保密内容管理应用416。操作系统412可以是多用户的、多处理的、多任务的、多线程的、实时的,等等。操作系统412还可以执行基本任务,诸如:辨识来自诸如键盘或小键盘之类的输入设备的输入;向显示器404发送输出;保持跟踪媒介410上的文件和目录;控制诸如驱动器、打印机或图像捕捉设备之类的外围设备;以及管理总线408上的业务。网络应用414可以包括用于建立和维持网络连接的各种组件,诸如实施包括但不限于TCP/IP、HTTP、以太网、USB,和FireWire的通信协议的机器可读指令。

如上所述,创作环境106、参与者访问环境118、受信访问工具120和/或时间引擎122可以提供用于管理对保密内容的访问的各种机器可读指令。在特定示例中,所执行的处理中的一些或所有处理可以被集成到操作系统412中。在特定示例中,可以在数字电子电路中、在计算机硬件中、在机器可读指令(诸如固件和/或软件)中或者在其任何组合中至少部分地实施处理。

在本文中描述和图示的是本公开的各种示例以及他们的变体。在本文使用的术语、描述和图仅以示例的形式阐述,并且并不旨在进行限制。在本公开的精神和范围内,许多变体是可能的,其中,本公开旨在由所附权利要求和它们的等同物来进行限定,其中,除非另有指示,否则所有术语意指他们最宽泛合理的意义。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1