复合文档引用资源的制作方法

文档序号:12288018阅读:251来源:国知局
复合文档引用资源的制作方法与工艺

数字文档的创建、分发和交换既出于效率的目的又出于环境目的而已经成为对打印文档的通常接受的可替换方案。可以被创建、分发或以其它方式交换的数字文档的示例包括例如,电子文字处理文档、电子表格、电子演示、电子制图、便携式文档格式(PDF)文件,以及网页,例如HTML、CSS或其它web(网络)格式文件。数字文档在文件大小方面可以范围从小数目的字节到大数目的太字节或更大。

许多数字文档已经成为以不同文件格式创建的分离部分的混合物或复合物。不同部分可以通过各种串行化机制而组合在一起,诸如Java jar存档,或HP DLF文件。复合文档的一个示例是包括产品图片作为JPEG文件、营销视频片段作为MOV文件、PowerPoint演示作为PPT文件以及财务细节电子表格作为XLS文件的商业提案文档。复合文档可以通过专用软件向用户呈现为单个可编辑、可浏览、可搜索、可核准或可使用文档。

附图说明

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

图2图示了包括编写环境、安全内容管理器和引用资源(referenced resource)或内容部分的数字文档系统的简化框图;

图3图示了根据本公开的示例的用于存储用于复合文档的内容部分的方法的流程图;

图4图示了根据本公开的示例的用于访问复合文档的内容部分的方法的流程图;以及

图5图示了根据本公开的示例的可以用作用于实现或执行图3和4中描绘的过程中的至少一个的平台的计算设备的示意性表示。

具体实施方式

在示例中,公开了一种复合文档、编写环境、安全内容管理器以及用于访问具有引用位置(referenced location)(即引用资源)的复合文档的一个或多个安全内容部分的方法。

更具体地,在一些示例中,本文所公开的系统和方法一般使得复合文档能够被创建、访问、加载和/或编辑有存储在引用位置中而不是嵌入到复合文档中的复合文档的一个或多个内容部分。例如,复合文档可以包括作为统一资源标识符(“URI”)、统一资源定位符(“URL”)、文件路径或到复合文档外部(即未嵌入到复合文档中)的数据的其它指针的一个或多个引用位置。在一些示例中,除了引用资源之外,复合文档的其它内容部分也可以被嵌入到复合文档中。在其它示例中,内容部分可以既存储为引用资源又被嵌入。在这样的情况下,当由参与者访问时可以使用内容部分的最新版本。

如遍及本公开所使用的,复合文档可以包括包含内容部分的数字文档,所述内容部分已经被加密和签名以大体上防止对内容部分的未授权访问。内容部分可以包括以分离的文件或可寻址文件片段的形式的各种可单独寻址和访问的部分。例如,单元可以包括单独的文件、文件分组或文件片段,其包括例如HTML标签、XML节点和元素、文字处理页、电子表格单元、演示幻灯片、包含制图的电子对象、具有视频能力的电子对象等和/或不同类型的文件部分的组合。在一些示例中,复合文档可以是文件夹、容器、分组或其它数据结构。

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

复合文档内的诸如URI之类的引用位置可以消除冗余下载和上传,减少总体业务并且改进复合文档沿工作流的传播。引用位置还可以约束特定工作流参与者(或“参与者”或“用户”)不具有对其的读取访问的内容部分的非必要下载,或者在其中参与者不具有有资格访问内容部分的设备的情况下,诸如不能够访问诸如多媒体文件之类的特定文件类型的设备。引用位置还可以提供对复合文档的一些元素的立即访问,即内容表格,而同时接连或在稍后时间下载其它内容部分,例如当需要时或当请求时。引用位置还可以允许工作流参与者之间的内容部分的编辑而没有例如嵌入的内容部分的交换。引用位置还可以允许版本化或版本相关访问,其中策略针对特定工作流参与者准许对某个版本的访问,例如针对雇员或开发者的beta文档,而由最终用户访问稳定版本。

在示例中,特定参与者或特定复合文档的各种属性可以用于确定是否当访问复合文档时立即地或者例如仅在参与者请求对特定内容部分的访问时下载引用位置。这样的属性可以涉及例如加载偏好(例如“懒惰加载”或“渴求式加载”);参与者是否具有读取和/或写入访问;设备资格,例如参与者的设备是否能够下载存储在引用位置中的特定内容部分;和/或带宽资格,例如参与者的网络连接是否能够下载存储在引用位置中的特定内容部分。

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

在示例中,数字文档工作流100包括数字文档102、编写环境106、复合文档108、参与者120a-n和引用位置118a-n。将引用位置118a-n描绘为URI,但是如之前所提到的,其可以是URI、文件路径或到复合文档外部的数据(即未嵌入到复合文档中的数据)的其它指针。

将复合文档108描绘为包含示例性多个安全内容部分110a-n和在密钥映射表112中的示例性多个经加密的密钥映射条目。如本文所使用的,术语“安全”旨在表示内容部分110a-n和密钥映射表112中的密钥映射条目被加密和/或签名。

密钥映射表112可以包括用于每一个资源(例如每一个内容部分)的一行或多行。例如,密钥映射表112可以包括用于被嵌入、被引用以及被嵌入和/或引用的内容部分的行。类型字段可以使用在密钥映射表112中以定义特定行是否与被嵌入或被引用的内容部分有关,并且许可可以指示针对特定内容部分的读取、写入或修改访问级别。可以在密钥映射表112中表述许可或访问控制。密钥映射表112可以包括诸如用户ID、部分ID、类型、签名验证密钥、解密密钥、加密密钥和/或签名密钥之类的字段。

在各种示例中,密钥映射表112可以表示许可,其例如允许具有只读访问的参与者读取URI并且检索内容部分;允许具有对URI的读取/写入访问的参与者修改URI以将内容部分放置到新位置中;允许具有对仅内容部分的读取/写入访问的参与者修改内容部分而非URI;允许具有对仅URI的读取/写入访问的参与者修改URI而非内容部分;允许具有对URI的读取/写入访问的参与者导出引用资源;或允许具有对URI的读取/写入访问的参与者将引用资源转换成嵌入的内容部分。

在示例中,内容部分104a-n可以表示数字文档102内的可单独寻址或可分离的元素。例如,内容部分104a-n可以是行、段落、文本框、单元、排、列、图形或其它对象,诸如可填入文本字段或签名框。内容部分104a-n还可以扩展到字节级别,例如作为相同文件的不同元素。作为另一示例,内容部分104a-n可以包括来自多个数字文档的部分的逻辑聚合。

内容部分104a-n中的每一个可以存储在数字文档102内或在数字文档102外部的例如计算机、服务器、web服务器、存储设备、云服务或其它设备或服务上。

在示例中,编写环境106可以对数字文档102的内容部分104a-n进行封装、加密和签名使得参与者120a-n不能访问所得到的安全内容部分110a-n(以主机形式),除非参与者120a-n具有访问安全内容部分110a-n的适当密钥(以分发形式)。更具体地,编写环境106可以生成或得出所需要的加密和签名密钥以将内容部分104a-n加密和签名成安全内容部分110a-n。而且,在示例中,可能要求参与者120a-n使用不同的密钥集合来对复合文档108读取和/或写入。

此外,编写环境106可以创建或生成针对被存储或将被存储在复合文档108外部而非被嵌入的内容部分110a-n的引用位置,例如URI。编写环境106还可以允许与针对内容部分的特定引用位置相关联的属性(诸如加载属性)的创建或编辑,并且可以将这样的属性嵌入到复合文档108中。加载属性(诸如是否立即显示内容部分)可以例如存储在复合文档中,或者在复合文档外部。

例如URI(诸如URI 118a-n)的引用位置可以存储在内容部分110a-n中,或者在与内容部分110a-n相关联的表或其它存储机制内,其可以例如利用指针来解析。例如,内容部分110a-n表可以包括部分ID、部分名称、诸如URI之类的引用位置(或嵌入的数据,如果不是引用资源的话)以及至少一个签名。

在示例中,复合文档108还可以包括密钥映射表112中的示例性多个经加密的密钥映射条目。由参与者120a-n对安全内容部分110a-n的访问(包括读取/写入许可)可以通过针对参与者的包含在密钥映射表112中的相应密钥映射条目中的各种密钥集合的分发来控制。更特别地,条目的子集可以包含在复合文档内的密钥映射条目中,其中针对每一个参与者至少一个密钥映射条目。

存储在条目表114和签名116中的数据可以包括解密、加密、验证或以其它方式认证复合文档108的安全内容部分所需要的附加信息。如以上提到的,各种安全内容部分可以通过各种串行化机制组合在一起,诸如Java jar存档、HP DLF文件或其它文件类型。

参与者120a-n可以表示参与者120a-n通过其接收或最初访问复合文档108的计算设备。当被授予充足访问时,参与者120a-n还可以查看、编辑、拷贝、打印和/或确认接收复合文档108。计算设备可以包括例如个人计算机、台式计算机、膝上型计算机、平板计算机、个人数字助理、蜂窝电话、智能电话、零售销售点、工作站、游戏设备、科学仪器和消费者电子设备。

复合文档108可以通过例如电子邮件、共享服务器、直接文件输送、可移除存储介质或云服务等被供给到参与者120a-n和在其之间供给。引用位置(例如URI 118a-n)可以由复合文档108直接访问,或者可以经由安全内容管理器(例如以下更加详细讨论的图2的安全内容管理器220)访问。

图2图示了根据本公开的示例的包括编写环境、安全内容管理器和引用内容部分的数字文档系统的简化框图。

应当理解的是,图2中所描绘的框图表示一般化图示,并且在不脱离图2的系统的范围的情况下可以添加其它组件,或者移除、修改或重布置现有组件。

如图2中所示,在示例中,以上讨论的编写环境106可以包括用户接口模块210、文档串行化模块212、加密模块214、签名模块216和密钥生成模块218。除包括本文所讨论的那些的编写环境的其它操作之外,模块可以支持用户接口、将复合文档的内容部分串行化成复合文档、对内容部分或整个复合文档加密、对内容部分或整个复合文档签名以及生成用于使用在复合文档中的密钥。

在示例中,安全内容管理器220允许参与者120a-n访问复合文档108的安全内容部分。例如,安全内容管理器220可以包括或包含用于访问复合文档108的前端软件工具或图形用户接口(“GUI”)。

在示例中,安全内容管理器220通过参与者120a-n的工作流接收复合文档108。将理解的是,安全内容管理器220可以定位在工作流中的任何参与者120a-n之间以及在多个参与者120a-n之间。

还将理解的是,在示例中,安全内容管理器220可以在工作流期间接收复合文档108多于一次,如针对参与者120a-n的情况一样。然而,与参与者120a-n相反,安全内容管理器220不需要读取或编辑复合文档108的安全内容部分110a-n。

安全内容管理器220可以认证参与者;建立针对参与者的对应可信公共密钥;充当文档安全性和安全检查点;在沿工作流的各种点处备份复合文档108;在沿工作流的各种点处对复合文档108加时间戳;扫描可由安全内容管理器220排他访问的复合文档108的一部分以确定复合文档108是否依从安全依从性规则;并且执行编写环境106、参与者120a-n和引用位置服务器118a-n之间的其它功能。

在示例中,安全内容管理器220还可以访问或读取与是否创建位置引用、或者一旦被创建是否访问或加载它们有关的属性。在各种示例中,可以为每一个参与者120a-n、为参与者的不同分组或为所有工作流参与者分配不同属性。属性可以通过或/与运算符结合,或者可以默认成与运算符。安全内容管理器220还可以访问密钥映射表112以确定针对特定参与者或内容部分的读取/写入访问或许可级别。

在示例中,安全内容管理器220可以包括用户接口模块222、文档读取/写入模块224、加密/解密模块226、文档供给模块228、密钥访问模块230和签名/验证模块232。除包括本文所讨论的那些的安全内容管理器的其它操作之外,模块可以支持用户接口,读取复合文档的内容部分和在编辑之后将其写入或重写到复合文档中、对内容部分或整个复合文档加密和解密,供给或呈现内容部分或整个复合文档,访问用于使用在复合文档中的密钥,和/或签名或验证。

在示例中,引用位置服务器118a-n可以包括在复合文档108中引用的任何内容部分。例如,引用位置服务器118a可以是用于存储文档的web服务器、共享储存器、共享服务或在线云储存器,而引用位置服务器118b可以是存储影片文件的媒体服务器。在一个示例中,引用位置服务器118c可以存储Flash内容,其可以或可以不是在特定参与者设备上可播放的,如以下更加详细讨论的。将理解的是,引用位置服务器118a-n可以包括充当数据服务器的盘存储系统或阵列或者其它储存器。

编写环境106、安全内容管理器220和引用位置服务器118a-n可以通过相应的一个或多个处理器202实现和/或执行,所述一个或多个处理器202可以耦合到一个或多个存储器204、输入装置206和输入/输出接口208。因此,例如,编写环境106可以包括包含处理器202的计算设备的集成和/或附加硬件设备。作为另一示例,安全内容管理器220可以包括计算机可读存储设备,用于模块222-232中的每一个的机器可读指令在其上被存储和由处理器202执行,所述处理器202可以耦合到存储器204。

在示例中,引用位置服务器118a-n可以包括硬盘或固态盘,或者易失性和/或非易失性存储器,诸如DRAM、EEPROM、MRAM、相变RAM(PCRAM)、忆阻器和闪速存储器等。

编写环境106、安全内容管理器220和引用位置服务器118a-n可以直接与彼此通信,或通过输入/输出接口(例如接口208)、通过使用令牌或密钥或数字通信的其它手段彼此通信。

图3图示了根据本公开的示例的用于存储用于复合文档的内容部分的方法的流程图。

在示例中,在块302中,通过例如编写环境106创建或导入新的内容部分,例如内容部分104a-n。在块304中,通过例如安全内容管理器220为内容部分创建新密钥。在块306中,通过例如安全内容管理器220使用例如部分特定密钥来对内容部分加密和签名。

在块308中,做出关于是否已经接收到充足的信息以确定用于新内容部分的优选存储位置的确定。在示例中,安全内容管理器220可以通过例如将其嵌入到复合文档108中来将内容部分存储在复合文档108内,或者安全内容管理器220可以将内容部分在外部存储在例如服务器或其它位置上,并且仅将引用位置存储到复合文档108中的资源。块308的决定可以基于复合文档108的已知属性或与工作流参与者120a-n中任一个有关的属性。

在块310中,如果充足的信息不可用于确定在哪里存储新内容部分,存储可以被挂起,例如安全内容管理器220可以将内容部分本地存储在临时位置中。在这样的情况下,当充足的信息可用于确定在哪里存储新内容部分时,流程可以返回到块308。

在块312中,如果充足的信息可用于确定在哪里存储新内容部分,流程可以进行到块314,其中将内容部分存储在复合文档108外部,或者进行到块322,其中将内容部分嵌入在复合文档108中。

在块314中,对于存储在复合文档108外部(例如在引用位置服务器118a-n上)的内容部分,确定URI位置。在示例中,位置可以基于诸如要求对特定内容部分的访问的所有工作流参与者可访问的位置之类的属性来确定。例如,可以确定将内容部分存储在伦敦是对于被确定为位于遍及欧洲的工作流参与者而言合适的位置。在另一示例中,仅需要在企业组织内被访问的内容部分可以在内部URI处。

在块316中,对所确定的位置的URI加密和签名。例如,URI可以是包括前缀、网站名称和顶级域的特定网站的统一资源定位符,和/或在字符串内具有或没有诸如用户名、口令或唯一标识符等之类的变量的文件路径。在示例中,然后在块318中利用部分ID、部分名称、URI和至少一个签名(例如URI签名和部分签名)来更新内容部分110a-n的表。在块320中,然后将经加密的内容部分存储在引用位置中,例如在URI位置118a-n处。在一些示例中,内容部分可以不被加密,例如当特定内容部分不是机密的时。

在块322中,对于嵌入到复合文档108中的内容部分,内容部分连同用于内容部分的签名一起被嵌入。在示例中,利用部分ID、部分名称、嵌入的数据和至少一个签名来更新内容部分110a-n的表。

图4图示了根据本公开的示例的用于访问复合文档的内容部分的方法的流程图。在块402中,在例如来自工作流参与者的请求之后通过例如安全内容管理器220接收或访问复合文档108。

在块404中,做出关于是否可以验证复合文档108的可靠性的确定。可靠性的验证可以基于例如签名或其它验证手段。如果不能验证可靠性,安全内容管理器可能不尝试打开复合文档108,并且在块406中可以向工作流参与者显示或传输错误消息或其它指示。在一些示例中,可能不要求可靠性的验证。在这样的示例中,可以提示参与者指定参与者是否希望打开尚未被认证的复合文档。

在块408中,如果可以验证复合文档108的可靠性,处理针对复合文档108中的每一个内容部分基于内容部分是被引用还是被嵌入而继续。将理解的是,图4的元素可以针对包含多于一个内容部分的复合文档循环。

在块410中,对于作为引用资源的每一个内容部分,例如存储在复合文档108外部,在示例中,做出关于工作流参与者是否具有对内容部分的访问的确定,例如是否可以利用参与者的密钥映射文件内的提供给工作流参与者的对应内容部分密钥来解密URI。如果URI不能被解密,流程返回到块408。

如果URI可以被解密,流程继续到块412,其中做出关于与URI相关联的内容部分是否要被立即向工作流参与者显示或传输的确定。如果与URI相关联的内容部分不要被立即显示,例如如果工作流参与者将在稍后时间访问与URI相关联的内容部分,流程返回到块408。在一些示例中,可以针对特定设备设置默认值。例如,参与者的移动设备可以被设置成默认不显示任何内容部分,或者不立即显示某些文件类型,例如多媒体片段。

关于是否要立即显示引用内容部分的确定可以基于诸如复合文档或工作流参与者属性之类的属性,例如详细读取/写入/访问许可、可用带宽或设备设置或能力。换言之,在示例中,安全内容管理器220仅下载对于特定参与者120a-n而言必要的引用位置内容部分。在一些示例中,这样的属性可以被视为“懒惰加载”和/或“渴求式加载”以例如优化带宽使用和效率。这样的效率在移动环境中和/或当复合文档包含文本和多媒体的大量使用二者时可能特别关键。

例如,关于嵌入或引用资源,可以做出关于工作流参与者的设备是否被配置成接收、处理、显示、执行或“播放”特定内容部分的确定。根据一个示例,如果内容部分是Flash影片,安全内容管理器220可以确定参与者设备120a-n是否能够播放Flash影片。如果不能,可以不访问、下载或加载引用。

在与URI相关联的内容部分要被立即显示的情况下,在块414中从URI检索或提取内容部分并且在块416中显示它。在一些示例中,内容部分在被提取之后被解密。将理解的是,URI自身可以是引用位置、反映器机构、自动重定向或其它参照机构,使得URI位置从其它源提取内容并且向安全内容管理器220返回所提取的内容。

在块422中,检查参与者的密钥映射表以确定参与者是否具有对内容部分、URI或二者的写入访问。如果是这样,参与者可以在块424中编辑内容部分、URI或二者。在一个示例中,具有对URI的写入访问的参与者可以将嵌入的内容部分转换成引用资源,例如使用以上讨论的用于创建引用资源的过程。在另一示例中,具有写入访问的参与者可以通过删除URI并且相应地嵌入内容部分来将引用资源转换成嵌入的内容部分。在又一示例中,具有对URI的写入访问的参与者可以利用新的引用资源位置来修改URI,将内容部分移动到新的引用资源位置。在其中参与者不具有写入访问的情况下,流程可以进行到块426。

在块418中,对于作为嵌入的资源的每一个内容部分,例如存储在复合文档108内部,在示例中,做出关于工作流参与者是否具有对内容部分的访问的确定,例如是否可以利用工作流参与者的密钥来解密内容部分。如果内容部分不能被解密,流程返回到块408。

如果内容部分可以被解密,流程继续到块420,其中做出关于内容部分是否要向工作流参与者立即显示或传输的确定。如果不立即显示内容部分,例如如果工作流参与者将在稍后时间访问内容部分,流程返回到块408。在内容部分要被立即显示的情况下,在块416中显示内容部分。

如以上,关于是否要立即显示嵌入的内容部分的确定可以基于诸如复合文档或工作流参与者属性之类的属性。换言之,在示例中,安全内容管理器220仅打开对于特定参与者120a-n而言必要的引用位置内容部分。类似地,如以上,如果参与者具有写入访问,流程可以进行到块422以供编辑。

图5图示了根据本公开的示例的可以用作用于实现或执行图3和4中描绘的过程中的至少一个的平台的计算设备的示意性表示。

在图中阐述的一些或全部操作可以作为实用程序、程序或子程序而被包含在任何所期望的计算机可读存储介质中。此外,操作可以通过机器可读指令体现。例如,它们可以以源代码、目标代码、可执行代码或其它格式作为机器可读指令存在。以上中的任一个可以体现在包括存储设备的计算机可读存储介质上。

计算机可读存储介质的示例包括常规计算机系统RAM、ROM、EPROM、EEPROM和磁性或光学盘或带。前述的有形示例包括程序在CD ROM上或经由因特网下载的分发。因此要理解的是,能够执行以上描述的功能的任何电子设备可以执行以上枚举的那些功能。

计算设备500可以表示包括编写环境106、安全内容管理器222和/或引用位置服务器118a-n的计算设备。设备500可以包括处理器502,诸如中央处理单元;显示设备504,诸如监视器或其它数字显示器;网络接口506,诸如局域网LAN卡、无线802.11xLAN卡、3G或4G移动WAN或WiMax WAN卡;以及计算机可读介质508。这些组件中的每一个可以操作地耦合到总线510。例如,总线510可以是EISA、PCI、USB、FireWire、NuBus或PDS。

计算机可读介质508可以是参与向一个或多个处理器502提供指令以供执行的任何合适的介质。例如,计算机可读介质508可以是非易失性介质(诸如光盘或磁盘)或易失性介质(诸如存储器)。传输介质还可以采取声波、光波或射频波的形式。计算机可读介质508还可以存储其它机器可读指令。

计算机可读介质508还可以存储操作系统512,诸如Microsoft Windows、Mac OS、Unix或Linux;网络应用514;以及访问管理应用516,诸如安全内容管理器220。操作系统512可以是多用户、多处理、多任务、多线程、实时的等等。操作系统512还可以执行基本任务,诸如识别来自诸如键盘或小键盘之类的输入设备的输入;向显示器504发送输出;在介质508上保持文件和目录的追踪;控制诸如驱动器、打印机或图像捕获设备之类的外围设备;以及管理总线510上的业务。网络应用514可以包括用于建立和维持网络连接的各种组件,诸如用于实现包括TCP/IP、HTTP、以太网、USB和FireWire的通信协议的机器可读指令。

编写环境106、安全内容管理器220和/或引用位置服务器110a-n提供用于管理对安全内容的访问的各种机器可读指令,如以上所描述。在某些示例中,所执行的一些或全部过程可以被集成到操作系统512中。在某些示例中,过程可以至少部分地实现在数字电子电路中、在计算机硬件中、在机器可读指令中(诸如固件和/或软件)或在其任何组合中。

本文已经描述和说明的是本公开的各种示例连同其一些变型。本文所使用的术语、描述和附图仅通过说明的方式来阐述而不被意指为限制。在本公开的精神和范围内许多变型是可能的,其中本公开旨在由随附权利要求及其等同物限定,其中所有术语以其最宽泛的合理含义进行意指,除非另行指示。

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