CN109117425A - 管理被存储为组件和打包文件的数字资产 - Google Patents

管理被存储为组件和打包文件的数字资产 Download PDF

Info

Publication number
CN109117425A
CN109117425A CN201810369218.2A CN201810369218A CN109117425A CN 109117425 A CN109117425 A CN 109117425A CN 201810369218 A CN201810369218 A CN 201810369218A CN 109117425 A CN109117425 A CN 109117425A
Authority
CN
China
Prior art keywords
component
digital asset
file
packaging file
manager
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810369218.2A
Other languages
English (en)
Other versions
CN109117425B (zh
Inventor
S·J·斯韦泽
R·霍恩斯
O·I·戈德曼
M·维特拉诺
J·R·威克森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN109117425A publication Critical patent/CN109117425A/zh
Application granted granted Critical
Publication of CN109117425B publication Critical patent/CN109117425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开涉及管理被存储为组件和打包文件的数字资产。本公开内容涉及一种数字资产同步系统,其提供改进的数字资产管理以及被存储在组件数据库或打包文件内的数字资产的同步。例如,数字资产同步系统使得组成数字资产的组件集合能够看起来为单一的打包文件,同时还维持使数字资产由组件组成的益处。以这种方式,数字资产同步系统提供了以打包文件格式存储的数字资产与以传统文件格式存储的数字资产之间的桥接。此外,数字资产同步系统还提供数字资产管理以及客户端设备与云存储系统之间的改进的同步。

Description

管理被存储为组件和打包文件的数字资产
背景技术
计算机和计算机技术的出现提供了许多益处。一些益处包括个体访问个体使用的各个计算设备之间的文件的能力。例如,各种文件管理系统使得个体或个体群组能够跨多个客户端设备同步文件以及(例如,经由因特网)访问他们在云上的文件。尽管有这些和其他优点,但是传统文件管理系统仍然存在若干缺点。
为了说明一些缺点,一些传统文件管理系统使个体能够在计算设备与远程服务器之间同步文件。然而,任何时候发生对文件的改变时,一些传统文件管理系统都会重新同步整个修改文件。例如,如果用户对大型文件执行小的改变,则一些传统文件管理系统重新同步整个文件。同样地,任何时候在远程服务器上检测到对文件的改变时,计算设备都会下载修改的文件的完整副本,这会导致对带宽和内存资源的低效使用。另外,当附加的设备同步文件时,这个问题进一步复杂化,这是因为文件管理系统将文件的完整副本发送到每个设备。
作为另一示例缺点,传统文件管理系统通常会限制多个设备或多个应用同时访问文件的能力,特别是在并发编辑正被执行时。例如,传统文件管理系统常常会在文件也被一个设备/应用访问时防止另一设备/应用修改文件。具体地,一些传统文件管理系统将读写访问限制于一个设备/应用,并允许其他设备的只读访问。
作为又一缺点,许多传统文件管理系统在相同文件的多个版本之间提供较差的冲突解决方案。例如,当存在相同文件的不同版本时,传统文件管理系统通常会创建文件的完整副本。创建文件的完整副本不仅需要附加的存储器资源,而且这些文件的多个副本通常会生成冲突。例如,个体自己决定哪些副本包含哪些修改、是否合并多个副本之间的修改、和/或是否删除一个或多个副本作为复本或过期版本。此外,这些文件副本使设备杂乱(例如,相同文件的多个副本开始出现在文件夹和目录中)。因此,个体对如何处理每个文件副本感到困惑,并且在一些情况下错误地移除包含正确修订的文件。
因此,关于传统文件管理系统的这些以及附加的难题和问题都存在。因此,仍然存在在计算设备内以及计算设备之间的文件管理领域中进行改进的需要。
发明内容
本公开内容的一个或多个实施例包括提供改进的数字资产管理以及被存储在组件数据库或打包文件内的数字资产之间的同步的系统和方法。具体地,在一个或多个实施例中,该系统和方法通过将每个数字资产(数字图像、文件等)分离成组成数字资产(层、页面等)的固有组件并将组件存储为单独的单个文件来管理数字资产。组件包括在数字资产的定义的边界内的并且在不影响数字资产的其他组件(诸如图像的层或文档的页面)的情况下可修改的内容。数字资产的基于组件的管理允许该方法和系统在对数字资产进行改变时单个地存储和同步组件,而不是整个数字资产。
此外,该系统和方法使组成数字资产的组件集合能够对用户看起来为单个文件(被称为打包文件)。以这种方式,该系统和方法通过将数字资产呈现为单个打包文件来改进用户的体验,同时还利用通过在打包文件内存储和同步单个组件提供的益处。此外,该系统和方法提供数字资产管理以及在客户端设备与云存储系统之间的改进的同步。
为了简要说明,所公开的系统和方法在客户端设备上维持组件数据库,其中,组件数据库存储针对每个数字资产的组件和清单。具体地,组件数据库中的清单中的每个清单指示组件数据库中的哪些组件组成数字资产。此外,组件数据库将组件存储为跨组件数据库和/或计算设备分布的独立文件。另外,每个数字资产都具有映射,该映射指示数字资产的每个组件位于组件数据库内的何处和/或组件是否被包括在打包文件内。
此外,该系统和方法生成数字资产的打包文件。具体地,该系统和方法从组件数据库复制属于数字资产的每个组件。该系统和方法然后将组件复制打包成打包文件。在生成打包文件时,该系统和方法更新针对数字资产中的每个组件的映射(例如,路径)以引用打包文件而不是被存储在组件数据库中的文件。在更新数字资产映射以引用打包文件的位置之后,该系统和方法能够移除被存储在组件数据库中的对应组件以消除组件的重复副本。
在一些实施例中,所公开的系统和方法检测对数字资产的组件的修改。例如,客户端设备上的云存储系统或应用提供关于对数字资产的一个或多个组件的修改的通知。在检测到对组件的修改时,该系统和方法在组件数据库中创建或存储包括对组件的修改的组件的更新的副本(即分离的文件)。
另外,该系统和方法在针对数字资产的清单中利用组件的更新的副本替换该组件(例如,创建标识与数字资产相关联的组件的更新的副本的新清单)以及生成包括组件的更新的副本的修改的打包文件。此外,该系统和方法更新数字资产的映射以指示组件的更新的副本被存储在修改的打包文件中。在更新映射并生成修改的打包文件后,该系统和方法能够可选择地从组件数据库中移除该组件的副本。在一些实施例中,在从组件数据库中移除那些文件之前,该系统和方法使组件和组件的副本与云存储系统同步。
本公开内容的一个或多个实施例的这些和附加的特征和优点被概述在随后的说明书中,并且部分将从说明书显而易见,或者可以通过对这样的示例实施例的实践而被学习到。
附图说明
本公开内容通过使用如下面简单描述的附图以附加的特性和细节描述一个或多个实施例。
图1图示了根据一个或多个实施例的由多个组件组成的数字资产的示例性打包文件。
图2图示了根据一个或多个实施例的数字资产同步系统能够操作在其中的环境的框图。
图3-12图示了根据一个或多个实施例的数字资产同步系统在组件数据库与打包文件之间对数字资产的组件进行管理和同步的各种序列图。
图13图示了根据一个或多个实施例的数字资产同步系统维持数字资产的一个或多个组件在组件数据库与打包文件之间的存储的状态图。
图14图示了根据一个或多个实施例的用于从被存储为独立文件的数字资产的组件生成打包文件的方法的示例流程图。
图15图示了根据一个或多个实施例的用于生成修改的打包文件的方法的示例流程图。
图16图示了根据一个或多个实施例的示例性计算设备的框图。
具体实施方式
本公开内容的一个或多个实施例包括提供数字资产的改进的本地和远程同步的数字资产同步系统。具体地,数字资产同步系统通过将每个数字资产分成其固有组件,并且单个地管理/同步组件而不是整个数字资产,来管理数字资产。为了说明,在一个或多个实施例中,数字资产同步系统标识数字资产的组件。在标识数字资产的组件时,数字资产同步系统分配独特地标识每个组件的标识符。数字资产同步系统将数字资产的组件中的每个组件作为独立文件存储在组件数据库中,而不是作为整体文件存储。当组件被修改时,数字资产同步系统存储组件的更新的版本并同步组件的更新的版本。
另外,数字资产同步系统使组成数字资产的组件集合能够看起来为单一的打包文件,同时还维持管理和同步组件的益处而不是整个文件。以这种方式,数字资产同步系统提供在组成数字资产的个体地管理和同步的组件以及传统文件格式与文件的呈现之间的桥接。
为了说明,在一个或多个实施例中,数字资产同步系统在客户端设备上维持组件数据库,其中组件数据库存储针对数字资产的组件和一个或多个清单。每个清单指示组成数字资产的组件集合。此外,每个清单与指示组件位于组件数据库中何处或客户端设备上的其他地方(例如,打包文件中)的映射相关联。以这种方式,组件数据库指示组件数据库中的哪些组件组成数字资产以及组件位于何处。另外,组件数据库将组件存储为跨组件数据库和/或计算设备分布的独立文件。
基于存储在组件数据库中的数字资产的组件,在一个或多个实施例中,数字资产同步系统生成数字资产的打包文件。具体地,数字资产同步系统从组件数据库复制属于数字资产的每个组件。数字资产同步系统然后将组件副本打包成打包文件(例如,CREATIVE 包(“CCP”)、zip文件、PDF文件、另一压缩文件格式或另一打包文件格式)。在生成打包文件时,数字资产同步系统更新针对数字资产的每个组件的映射以引用打包文件而不是组件数据库。在更新针对每个组件的映射之后,数字资产同步系统移除被存储在组件数据库中的组件,以消除客户端设备上的组件的重复副本。
在一些实施例中,数字资产同步系统还在从组件数据库中移除数字资产的组件之前同步数字资产的组件。例如,在从组件数据库中移除数字资产的组件之前,数字资产同步系统将组件同步到云存储系统。以这种方式,在发生打包错误时,诸如组件缺少或被损坏,则数字资产同步系统能够从云存储系统中取回缺少或损坏的组件,并将数字资产重新打包为打包文件。
另外,数字资产同步系统能够检测对数字资产的组件的修改。例如,云存储系统向客户端设备上的数字资产同步系统指示组件已被更新。再例如,客户端设备上的应用或操作系统进程向数字资产同步系统提供关于数字资产的一个或多个更新的组件的通知。在检测到对组件的修改时,数字资产同步系统在包括修改的组件的组件数据库内创建或存储该组件的更新的副本(即分离的文件)。
另外,数字资产同步系统通过利用更新的组件(例如,与更新的组件副本相关联的标识符)替换旧组件(例如,与该组件相关联的标识符)来更新数字资产的清单。此外,数字资产同步系统通过将更新的组件副本附加到原始打包文件,或通过使用更新的组件副本代替组件来生成新打包文件来生成包括更新的组件副本的修改的打包文件。而且,数字资产同步系统更新映射,以引用新打包文件而不是组件数据库中的更新的组件副本。在更新映射并生成修改的打包文件之后,数字资产同步系统从组件数据库中移除组件副本(和组件)。如上所述,在一些实施例中,数字资产同步系统在从组件数据库中移除那些组件之前将组件和组件副本与云存储系统同步。
在一些实施例中,数字资产同步系统维持一个或多个数字资产的先前版本。例如,组件数据库存储与数字资产的先前版本对应的清单。另外,组件数据库和/或云存储系统能够存储指示在先前数字资产版本中使用的组件的数字资产的清单。当数字资产同步系统追踪数字资产的版本时,数字资产同步系统能够确保打包文件表示数字资产的最新版本。以这种方式,如果用户将打包文件移动或复制到数字资产同步系统之外的位置(诸如将打包文件通过电子邮件发送给另一用户),则数字资产同步系统确保用户使用最新版本的数字资产进行工作。
在使组件与云存储系统同步时,数字资产同步系统只需使数字资产的新组件或更新的组件与云存储系统同步,而不是组成数字资产的每个组件。换句话说,当数字资产被更新或被修改时,数字资产同步系统只需同步数字资产的一小部分。另外,由于打包文件由组件组成,所以当同步被表示为打包文件的更新的数字资产时,数字资产同步系统采用这些相同的带宽节省技术。
如上所述,在一些情况下,用户将打包文件移动到数字资产同步系统之外。同样地,在各种实施例中,用户将打包文件移动到数字资产同步系统中。作为概述,数字资产同步系统在客户端设备上维持包括一个或多个子目录(例如文件夹内的文件夹)的受监视文件目录(例如,文件夹)。数字资产同步系统将受监视目录内的每个文件与云存储系统进行同步。此外,数字资产同步系统监视受监视文件目录内的每个文件以检测组件何时改变(例如,在打包文件或组件数据库内)。因此,如下面进一步描述的,当文件被移动到受监视文件目录之外时数字资产同步系统能够脱离(例如,停止监视)打包文件,并且附接或重新附接被移动到受监视文件目录中的打包文件。
在附加的实施例中,当关于数字资产出现冲突时,数字资产同步系统提供智能的冲突解决方案。如下面进一步描述的,当数字资产同步系统基于比较与每个版本对应的清单而检测到在不同版本的数字资产之间的冲突时,数字资产同步系统能够从针对数字资产的最近清单中标识并包含先前清单中缺少的组件。另外,当数字资产同步系统检测到数字资产的相同组件的不同版本之间(例如,在组件分支与云分支之间)的冲突时,数字资产同步系统能够包括数字资产中的组件的两个版本。以这种方式,数字资产同步系统使用户能够快速标识和改正数字资产内的冲突。
如以上简单地描述的,数字资产同步系统提供了超越传统文件管理系统的多个优点。例如,数字资产同步系统通过在由组件数据库中的组件与对用户看起来为整体文件的打包文件表示的数字资产之间创建桥接来为客户端设备提供增加的灵活性,但其提供了客户端设备更快的访问和呈现。
为了说明,由于打包文件由组件组成,数字资产同步系统能够利用通过仅同步数字资产的修改的组件而不是同步整个数字资产而获得的效率。如本文中详述的,数字资产同步系统通过减少客户端设备同步和存储数字资产所需要的计算资源来向客户端设备提供改进的效率。另外,通过采用被存储为组件的数字资产,无论是在组件数据库还是打包文件中,数字资产同步系统提供对数字资产的更快的访问(例如,更快的搜索)和呈现,其导致数字资产同步系统改进客户端设备本身的功能(例如,数字资产同步系统比传统系统和方法更快地访问、显示和编辑数字资产)。
作为附加的优点,数字资产同步系统通过使多个用户、应用和/或设备能够同时访问和编辑相同的数字资产来提供增加的灵活性和改进的计算功能。当数字资产同步系统检测到数字资产的一个组件的改变时,数字资产同步系统自动地将改变传播给同时访问数字资产的其他用户、应用和/或设备。传统系统和方法不能使多个用户、应用和/或设备同时访问和编辑相同的数字资产。此外,当检测到与组件的冲突时,数字资产同步系统智能地解决上述冲突。
此外,由于数字资产同步系统在客户端设备上的应用之间提供对组件的同时访问,所以当组件在应用内改变时,个体应用不需要提供进程间通信(IPC)。相反,数字资产同步系统跨多个应用检测、管理和协调修改的组件。该特征在沙盒系统和类似环境中尤其相关,其中阻止应用使用IPC与客户端设备上的其他应用进行通信。下面参照描述数字资产同步系统的一个或多个实施例的附图描述数字资产同步系统的其他益处、优点、特征和特性。
现在参考附图,图1图示了数字资产102的示例性打包文件100。如所示的,打包文件100包括组成数字资产102的多个组件104。在一些实施例中,数千个组件104组成数字资产102。数字资产同步系统还能够生成清单,其列出组成数字资产102的每个组件。通过采用打包文件,数字资产同步系统使数字资产102看起来为单个整体文件,而不是组成数字资产102的组件104的汇集。换句话说,客户端设备将数字资产102显示为用户能够选择、打开、移动、复制等的单个文件,而不需要用户感知到数字资产102是多个组件文件的汇集。
为清楚起见,如本文中使用的术语“数字资产”通常是指具有对应的使用权的数字数据。例如,用户被授权以创建、查看、修改和/或删除数字资产。数字资产的示例包括但不限于文档,诸如word文档、电子表格和演示文稿;电子消息;诸如图示、动画和照片的图像;视频;音频内容;三维数据;以及用户能够在计算设备之间传送的其他数字数据。
术语“组件”是指数字资产的一部分。组件的特定集合或汇集组成数字资产(例如,数字资产版本)。一般而言,数字资产的每个组件在不影响数字资产的其他组件的情况下都是能修改的。因此,一个文件能够与其他数据文件分开地被访问、修改、传送、和/或移除。由于组件是数字资产的分立部分,所以每个组件能够在计算设备上作为单个文件被存储在不依赖于数字资产的其他组件被存储在何处的文件位置或目录中。因此,与将属于该文件的所有数据存储在单个位置中的整体文件相反,数字资产的组件能够被存储为跨存储介质分布(诸如在一个或多个客户端设备和/或远程服务器设备上的)的文件。然而,在一些情况下,有限数量的组件被链接,并且对一个组件的改变影响有限数量的其他组件。此外,组件的风格(例如,框架)基于数字资产内的边界,并且通常基于数字资产的类型。例如,图像包括层和子层作为组件;视频或视频项目包括较短的视频片段、标题和静态图形作为组件;文档包括页面、画布、画板、文本和图像框、行、列和/或图形作为组件;而三维模型包括网格、地图、场景和皮肤作为组件。在其他情况下,用户能够为数字资产的组件定义边界/参数。
此外,每个组件在某个时间或其他时间都是独立的文件。如本文中所使用的,术语“独立文件”(或简称“文件”)通常是指单独地被记录在存储介质中的数字数据。因此,一个文件能够与其他数据文件分开地被访问、修改、传送和/或与移除。由于组件是数字资产的分立部分,所以每个组件能够在计算设备上被存储为个体文件、在不依赖于数字资产的其他组件被存储在何处的文件位置或目录中。因此,数字资产的组件能够被存储为跨存储介质(诸如在一个或多个客户端设备和/或远程服务器设备上的)分布的文件。
在一些实施例中,如本文中所描述的,多个组件一起被存储在打包文件中。如本文中所使用的,术语“打包文件”通常是指组成数字资产并将数字资产描述为单个整体文件的组件的汇集。一般来说,数字资产的组件的汇集被分组在描述数字资产的单个文件内。
此外,打包文件能够包括数字资产的压缩组件或存档组件。例如,打包文件是CREATIVE 包(“CCP”)、zip文件或PDF(便携式文档格式)文件。此外,在各种实施例中,打包文件与由特定文件扩展名指示的特定文件类型相关联。另外,打包文件能够包括表述数字资产的最新版本的数字资产的组件。然而,在一些情况下,打包文件还包括属于数字资产的一个或多个先前版本的组件。术语“打包文件”能够与术语“打包组件文件”、“快照”、“快照文件”、“组件快照”、“数字资产快照”、“头版本”、“文件表示”、“单一视图文件”、“合成文件”和“合成”同义。
回到图1,如上所述,打包文件100将数字资产102描述为整体文件,而不是被存储为独立文件的组件104的汇集。以这种方式,客户端设备将数字资产102显示为文件目录内的单个文件。另外,将数字资产102表示为打包文件100使用户可以将数字资产102从客户端设备的一个目录移动和/或复制到另一目录或另一组件设备(服务器设备或其他客户端设备)。因此,打包文件100为用户提供使用传统文件(即,不具有组件的单个整体文件)进行工作的熟悉的经验。具体地,一个或多个实施例从计算系统(例如WINDOWS EXPLORER、FINDER、AUTILUS、DOLPHIN、XFE或THUNAR)的组件文件生成打包文件100,同时仍然提供管理和同步单个组件的益处。
尽管数字资产102看起来为单一的整体文件,但是打包文件100保留通过使用组件组成数字资产而提供的益处,这是传统文件缺乏的。作为一个示例,组件使多个用户、客户端设备和/或应用能够同时访问数字资产。再例如,组件使数字资产同步系统能够有效地在客户端设备与云存储系统之间或在多个客户端设备之间同步数字资产的小部分。此外,组件使数字资产同步系统能够维持数字资产的多个版本,而无需存储每个版本的完整副本。下面结合下面的附图进一步描述采用针对数字资产的组件的这些和其他益处。
图2图示了根据一个或多个实施例的其中具有数字资产同步系统210的数字资产管理系统208能够操作于其中的环境200的框图。如图2所示,环境200包括经由网络240与服务器设备230通信的两个客户端设备(例如,第一客户端设备202和第二客户端设备204)。将认识到,环境200能够以各种配置来布置并且包括更多或更少的元件。例如,环境200能够包括任何数量的客户端设备。一个或多个计算设备(例如,客户端设备和/或服务器设备)能够实现数字资产管理系统。
图2所示的客户端设备中的每个客户端设备包括数字资产管理系统208和一个或多个应用226。为便于解释,关于第一客户端设备202描述数字资产管理系统208和一个或多个应用226的元件。然而,将认识到的是,数字资产管理系统208和一个或多个应用226的元件在第二客户端设备204以及未示出的其他客户端设备上执行类似的功能。
一般而言,客户端设备可以各自表示各种类型的客户端设备。例如,在一些实施例中,第一客户端设备202和/或第二客户端设备204是移动设备,诸如移动电话、智能电话、PDA、平板电脑、膝上型计算机、可穿戴设备等。在其他实施例中,第一客户端设备202和/或第二客户端设备204是非移动设备,诸如台式机或服务器、或者另一类型的客户端设备。关于客户端设备的附加细节在下面参考图16进行讨论。
数字资产管理系统208和数字资产同步系统210能够包括计算机可执行指令,该计算机可执行指令当由一个或多个计算设备运行时使对应的一个或多个计算设备执行多个动作,如下面更详细讨论的。此外,在一个或多个实施例中,数字资产管理系统208提供数字合成(或组成)技术(称为“DCX”),其促进如本文中描述的用于创建组件集合(即,打包文件)的框架。因此,关于数字资产管理系统208的大部分以下描述与提供DCX有关。
如图2所示,第一客户端设备202上的数字资产管理系统208包括具有组件管理器212、监视代理220、打包管理器222和打包文件224的同步系统210。组件管理器212还包括存储数字资产的组件216和对应的数字资产清单218的组件数据库214(例如,同步存储库)。将认识到,数字资产管理系统208能够包括执行下面进一步描述的功能的附加或更少的元件。
为了提供上下文,数字资产管理系统208和数字资产同步系统210维持(至少)两类数字资产。第一类包括其组件被存储在组件数据库214中的数字资产。第二类包括其组件通常被存储在打包文件224中的数字资产。此外,数字资产同步系统还能够存储作为传统整体文件的数字资产,其不包括组件。
一般而言,第一类数字资产由组件管理器212管理,而第二类数字资产由监视代理220(例如,核心同步代理)和打包管理器222管理。然而,在管理打包文件224的同时,在组件管理器212、监视代理220和打包管理器222之间通常发生通信和重叠。
此外,客户端设备在文件目录(例如,受监视文件目录)内显示打包文件224的图标(或其他图形文件表示)。与此相反,非打包文件是仅通过应用界面大体可视的。例如,应用提供被存储在组件数据库中但不能直接在文件目录中找到的数字资产列表。现在提供关于每类数字资产的附加细节。
一般而言,组件管理器212促进在组件数据库214内被存储为组件的数字资产的存储、访问和同步。例如,组件管理器212将数字资产的组件216存储为跨组件数据库214分布的独立文件。此外,组件管理器212创建一个或多个数字资产清单218,每个数字资产清单218将数字资产的一个或多个版本与组件216相关联。因此,当数字资产被存储在组件数据库214中时,数字资产通常不被表示为文件目录内的单一文件,而是作为独立的组件文件。然而,当用户在应用内查看数字资产时,组件管理器212使应用能够将数字资产显示为单一的整体文件,如下面进一步描述的。
如上所述,组件管理器212生成、存储和修改一个或多个数字资产的数字资产清单218(或简称为“清单218”)。具体地,每个清单218包括组成数字资产的组件216的清单。在一些实施例中,清单定义了数字资产的组件的顺序、优先级或布置,如下所述。例如,针对数字图像(即,数字资产)的清单指示组成数字图像的层(即,组件)。另外,清单标识数字图像内的每层的顺序和/或优先级。
针对数字资产的清单218中的每个清单都能够包括标识符(即,“ID”),并且在一些情况下能够包括映射(例如,路径)。一般而言,标识符独特地标记组成数字资产的每个组件。组件管理器212使用组件标识符来列出组成清单中的数字资产的组件。该映射指示正在存储组件的打包文件的数据库位置和/或文件路径。在一些实施例中,组件管理器212将每个数字资产的映射存储在组合数据库214中。如上所述,组件被存储为跨诸如组件数据库214之类的存储介质或第一客户端设备202上的其他地方分布的独立文件。
如刚刚提到的,在一些实施例中,组件数据库214维持指示组件何时被存储在打包文件中而不是组件数据库214中的映射。以下描述了这些实施例。在其他实施例中,映射指示组件被存储在云同步系统232中。例如,组件数据库214维持数字资产的先前清单并且包括一个或多个废弃组件。在从组件数据库214和/或第一客户端设备202中移除组件之前,组件管理器212将组件与云同步系统232同步,而不是将废弃组件存储在组件数据库214中。此外,组件管理器212更新映射以指示废弃组件被存储在组件管理器232上。
如上所述,组件管理器212能够基于存储数字资产的先前版本的清单来保存数字资产的版本历史。以举例的方式说明,假设数字资产包含三个组件。组件管理器212创建标识三个组件及其对应映射的清单。该清单表示数字资产的版本1。在接收到对数字资产的第一组件的更新时,组件管理器212生成更新的清单,其利用与新创建的文件对应的更新的第一组件的标识符/映射来替换原始的第一组件的标识符/映射,更新的清单包括以其更新形式的第一组件并且更新的清单被单独地存储在组件数据库214中。更新的清单表示数字资产的版本2。
在这个示例中,组件管理器212通过存储针对数字资产的仅一个附加的组件(例如,原始的三个组件和更新的第一组件)来维持数字资产的多个版本。如果用户想要查看数字资产的版本1,则组件管理器212使用原始的清单和对应的映射来访问原始的三个组件。如果用户想要查看数字资产的版本2,则组件管理器212使用更新的清单和对应的映射来访问更新的第一组件以及原始的第二组件和原始的第三组件。
在一些实施例中,组件管理器212从组件数据库214和/或第一客户端设备202移除先前组件以释放第一客户端设备202上的存储器空间。例如,组件管理器212从组件数据库214中删除原始第一组件。然而,在移除原始第一组件之前,组件管理器212确保原始的第一组件的备份副本存储在云同步系统232中。例如,组件管理器212在从组件数据库214中移除原始的第一组件之前确保原始的第一组件与云存储系统同步。
当组件管理器212从客户端设备移除先前组件时,如上述实施例所述,组件管理器212能够在第一客户端设备202上维持与数字资产的先前版本对应的多个清单218。针对数字资产的清单218通常是需要很少的存储器来存储的较小文本文件(或数据库条目)。附加地和/或可选地,组件管理器212将针对数字资产的先前版本的每个清单的副本提供给云同步系统232以进行存储。在一些实施例中,组件数据库214维护针对数字资产的有限数量的先前版本清单,而云同步系统232存储针对数字资产的更大数量的先前版本清单。
在一个或多个实施例中,组件管理器212使用包括在数字资产中使用的每个先前组件的清单。为了说明,根据上面的示例,更新的清单包括附加的字段,该附加的字段将原始的第一组件列为更新的第一组件的先前版本。以这种方式,用户能够请求组件管理器212将特定组件恢复到先前版本,同时使数字资产中的其他组件不受影响。
如上所述,组件管理器212促进与云同步系统232的同步。具体地,在创建数字资产或单个组件时,组件管理器212确保每个组件被存储在云同步系统232中。此外,组件管理器212能够提供事务担保,诸如接收每个组件已经被云同步系统232成功接收的验证。另外,在第一客户端设备202上的组件管理器212对云存储系统232上传数字资产的组件之后,第二客户端设备204上的组件管理器212从云存储系统232下载数字资产的组件。
在初始地同步数字资产之后,组件管理器212只需在单个组件被修改时同步单个组件。根据以上示例,在第一组件更新时,组件管理器212仅将更新的第一组件提供(例如,推送)到云同步系统232(并且在一些情况下,表示数字资产的版本2的更新的清单)。以这种方式,组件管理器212不需将整个数字资产冗余地上传到云同步系统232。
同样地,如果云同步系统232向第一客户端设备202上的组件管理器212指示组件已经被更新(例如,已经被修改、添加或删除),则组件管理器212与云同步系统232通信以下载更新的组件。例如,根据上述示例,组件管理器212检测到第四组件被添加到云同步系统232上的数字资产。因此,组件管理器212从云同步系统232请求(例如,提取)该组件,并且更新数字资产的清单以反映第一客户端设备202上的更新。如将认识到,组件管理器212能够并行地将针对一个或多个数字资产的多个组件与云同步系统232同步。
在某些情况下,在数字资产的组件之间出现冲突。例如,当执行与云同步系统232的并行同步时,组件管理器212能够检测到在数字资产的分支(例如,清单)之间的冲突。作为概述,分支表示位于特定设备上的数字资产的版本,该特定设备将其认为是正确的版本。例如,数字资产可以具有云分支、第一客户端设备分支、第二客户端设备分支以及验证的同步分支。作为附加的示例,相同的客户端设备能够具有基础分支、第一应用分支和第二应用分支。由于数字资产管理系统208和数字资产同步系统210允许从各种设备访问数字资产以及来自相同的客户端设备的并发访问,所以能够导致在数字资产的组件之间的冲突。
另外,值得注意的是,下面描述的冲突解决方案原理能够是可插拔的,这意味着数字资产同步系统210能够可选地应用下面提供的实施例中的一个或多个实施例。或者,数字资产同步系统210能够采用不同于所描述的冲突解决方案的冲突解决方案的不同实施例。在一些实施例中,数字资产同步系统210基于打包文件的格式类型或文件类型采用不同类型的冲突解决方案。例如,数字资产同步系统210将不同的冲突解决方案应用于打包的图像文件而不是打包的文档文件。
当数字资产的不同分支中的组件之间出现冲突时,组件管理器212也能够采用一种或多种方法和/或技术来解决冲突。一般而言,当相同数字资产的不同版本之间出现冲突时,冲突在数字资产的不同组件之间,因为数字资产通常由大量的组件组成。因此,组件管理器212能够通过将每个组件的最近更新的版本合并成数字资产的单个版本来调解冲突,然后使更新的版本与云同步系统232同步。
为了使用新示例进行说明,假设数字图像(即,数字资产)包括50层(例如,组件)。最初,第一客户端设备202和云同步系统232各自具有数字图像的经验证的同步版本(即,匹配版本)。在更新数字图像的第一层之后,组件管理器212尝试使本地更新的版本与云同步系统232同步。然而,在执行同步的同时,组件管理器212检测到云同步系统232具有第十层被修改的云更新的版本(例如,第二客户端设备204更新并上传了现在云更新的版本),其中第一层与经验证的同步版本保持不变。
为了解决该冲突,在一个或多个实施例中,组件管理器212首先接收数字资产的云更新的版本,其包括仅下载修改的组件(即,更新的第十层)。接下来,组件管理器212确定本地更新版本与云更新的版本之间的冲突是由于不同的组件正在被更新而造成的。因此,组件管理器212将来自云更新的版本(例如,更新的第十层)的更新的组件合并到本地更新的版本中,本地更新的版本现在是数字资产的最新版本。
另外,组件管理器212将更新的第一层发送到云同步系统232,使得云同步系统232具有数字资产的最新版本。换言之,由于云更新的版本包括更新的第十层,但缺少更新的第一层,所以组件管理器212仅需要将更新的第一层发送到云同步系统232(以及更新的清单,其包括引用更新的第一层和第十层)。在发送更新的第一段时,组件管理器212能够与云同步系统232进行通信以确保数字资产的本地版本与数字资产的云版本匹配,其然后成为新的经验证的同步资本。将认识到的是,相同的原理和技术应用于解决在相同客户端设备上的数字资产的两个版本之间的冲突。
在备选实施例中,组件管理器212基于数字资产的每个版本的更新何时发生来选择使用数字资产的最新版本,而不是合并来自数字资产的不同未同步版本的最新组件。在另一示例中,组件管理器212将冲突组件的副本添加到本地版本。例如,根据以上示例,组件管理器212在原始的第十层之前或之后添加更新的第十层(如下面进一步描述的)。在另外的实施例中,组件管理器212创建单独的数字资产的副本(即,单独的打包文件),每个副本具有第十层的版本。
然而,在某些情况下,数字资产的相同组件的不同版本之间会出现冲突。在这些情况下,组件管理器212采用智能技术和方法来解决冲突。在一个或多个实施例中,组件管理器212通过创建包括冲突修改的一个或多个附加组件来解决冲突。
为了使用另一示例说明,假设数字PDF文档(即,数字资产)具有五个页面(例如,组件)并且正在同时由两个应用226在本地或远程访问。在组件管理器212检测到由第一应用对第三页面的改变(例如,“第一更新的第三页面”)时,组件管理器212在组件数据库214中创建反映第一更新的第三页面的新组件。在通过第一应用同步更新的行页面之前,组件管理器212通过第二应用(例如,“第二更新的第三行”)检测到第三页面中的不同改变。同样地,组件管理器212在组件数据库214中创建反映第二更新的行页面的另一新组件。
在一个或多个实施例中,组件管理器212通过将新创建的组件添加到数字资产的打包文件中来解决冲突。为了说明,根据上面的示例,组件管理器212利用第一更新的第三页面和第二更新的第三页面两者替换原始第三页面。例如,组件管理器212利用第一更新的第三页面替换原始第三页面,然后将第二更新的第三页面添加为恰好在第一更新的第三页面之下的新页面(例如,当沿着其他行向下移动时作为第四行)。备选地,组件管理器212保存原始第三页面并且将第一更新的第三页面添加为第四页面以及将第二更新的第三页面添加为第五页面。在将新创建的组件添加到数字资产的打包文件中之后,如上所述,组件管理器212能够在应用之间并且与云同步系统232同步更新的数字资产。
通过将冲突组件的每个版本添加到数字资产中,组件管理器212为用户提供容易检测在数字资产中包括相同组件的多个版本的能力。与此相反,传统文件管理系统通常将整个数字资产复制为不同版本,并使用户发现每个版本中的改变发生在何处以及哪些改变是最新的。
在一些实施例中,组件管理器212提供通知或以其他方式指示何时已经将一个或多个冲突组件添加到数字资产(例如,组件管理器212突出显示、加粗、倾斜或改变冲突的组件字体颜色)。此外,组件管理器212能够显示指示每个冲突组件的源和时间戳的元数据(例如,组件管理器212在用户将输入选择器悬停在每个冲突组件上时显示弹出图形)。以这种方式,用户能够通过移除、编辑或合并冲突组件中的一个或多个来快速标识并容易地改正任何错误。
如上所述,组件管理器212管理在组件数据库214内被存储为组件的对同步系统的改变。另外,组件管理器212为在数字资产同步系统210内被存储为打包文件的组件执行许多相同功能中。在关于存储为打包文件的数字资产描述了附加的上下文之后,提供关于组件管理器212的关于这些功能的进一步细节。
如前所述,存储为打包文件的数字资产是数字资产的单一整体文件表示。具体地,打包文件包括组成数字资产的组件的汇集。打包文件类似于具有存储在组件数据库214中的组件的数字资产,除了组件被共同定位在打包文件中,而不是作为独立文件跨组件数据库214和/或第一客户端设备202而被分布。
如前所述,存储为打包文件的数字资产位于文件目录中。因此,用户能够像他或她利用传统文件那样查看打包文件并与其进行交互。在许多实施例中,打包文件224被存储在由数字资产管理系统208和/或数字资产同步系统210监视的文件目录中(例如,具有位于其中的文件和孩子/子文件夹的受监视父/根文件夹)。以这种方式,数字资产同步系统210能够追踪和同步在文件目录内发生的改变。因此,如图2所示,数字资产同步系统210包括监视代理220。
监视代理220追踪并同步位于与数字资产同步系统210相关联的受监视文件目录中的文件。具体地,监视代理220与第一客户端设备202的操作系统以及云同步系统232进行通信以检测在受监视文件目录内的文件(例如,打包文件和传统文件)何时发生外部改变。例如,第一客户端设备202上的操作系统通知监视代理220打包文件已经被添加到受监视文件目录中。再如,监视代理220检测到打包文件中的组件何时在云同步系统232上被修改。在一些实施例中,监视代理220还监视位于受监视目录之外的文件,诸如已被移动到用户客户端设备的桌面的文件,或被放置在受监视目录之外的临时文件夹中的文件。
如上所述,监视代理220监视受监视文件目录内的打包文件224以检测组成数字资产的一个或多个组件何时改变。当监视代理220在打包文件中检测到对组件的改变时,监视代理220与组件管理器212和打包管理器222进行通信,以在数字资产同步系统210内实现修改。以这种方式,监视代理220、组件管理器212和打包管理器222共同工作来监视和实现对打包文件224的改变。
举例来说,在检测到对数字资产的打包文件的改变时,监视代理220向组件管理器212提醒改变的数字资产和/或组件。例如,在监视代理220检测到云同步系统232上的打包文件已被修改时,监视代理220将数字资产的标识符和/或修改后的组件传送给组件管理器212,组件管理器212取回并更新针对数字资产的清单。组件管理器212然后将修改后的组件传送给打包管理器222以更新打包文件。下面进一步描述打包管理器222。
当已经位于受监视文件目录中的打包文件发生修改时,监视代理220能够检测到该改变并通知组件管理器212该修改。组件管理器212然后能够开始更新打包文件。例如,用户在应用中打开数字资产的打包文件。因此,应用访问存储在打包文件中的数字资产的组件,并将数字资产显示为整体文件(以类似于应用访问并显示直接存储在组件数据库214中的数字资产的组件的方式)。另外,应用能够从监视代理220请求应用正在访问的特定打包文件的标识符。应用和/或监视代理220然后能够使用该标识符来通知组件管理器212。
当用户想要在应用内改变(例如,编辑或添加)组件时,应用将改变提供给监视代理220和/或组件管理器212,并且组件管理器212在组件数据库214中创建该组件的副本(例如,写时备份)。此外,组件管理器212将修改应用于组件副本而不是组件本身。组件管理器212然后将修改后的组件提供给打包管理器222以包括在针对数字资产的打包文件中。
如果用户在打包文件中删除了组件,则监视代理220检测到删除,并且组件管理器212指令打包管理器222更新针对数字资产的打包文件以移除/停用删除的组件。当应用创建要包括在打包文件中的组件的新集合时,监视代理220检测到删除,并且组件管理器212首先在组件数据库214中创建独立文件,并为组件中的每个分配标识符。然后,组件管理器212将数字资产的组件的副本发送给打包管理器222以生成针对数字资产的打包文件。
如上所述,监视代理220促进了组件与第一客户端设备202以及云同步系统232的同步。通常,监视代理220维持存储在受监视文件目录中的所有数字资产/组件的全局注册表。(例如,监视代理220在数字资产同步系统210和/或数字资产管理系统208内注册每个组件)。因此,监视代理220控制每个组件发生同步的时间。在一些实施例中,监视代理220采用组件管理器212以在第一客户端设备202和云同步系统232之间同步组件。
返回到组件管理器212,在一个或多个实施例中,在创建要包括在打包文件中的组件的新的或修改的副本时,如前所述,组件管理器212在组件数据库214内创建新的或修改的组件的副本。换句话说,当打包文件内(例如,在应用内)的组件发生改变时,组件管理器212在组件数据库214内创建新组件的临时副本。组件管理器212然后将组件副本发送到打包管理器222以生成针对数字资产的新打包文件,如下所述。
此外,在打包管理器222成功地创建或更新针对数字资产的打包文件之后,组件管理器212从组件数据库214中移除新组件。如上所述,组件管理器212将一个或多个组件的副本发送到打包管理器222以供打包管理器222包括在针对数字资产的打包文件。因此,当打包管理器222创建针对数字资产的打包文件时,针对数字资产的组件的一个副本被存储在组件数据库214中,并且该组件的第二副本被存储在针对数字资产的打包文件中。因此,组件管理器212删除存储在组件数据库214中的组件以避免在第一客户端设备202上存储相同组件的重复副本。
作为发送数字资产的组件的副本并从组件数据库214中移除重复副本的部分,组件管理器212还更新针对数字资产的映射以引用打包文件中的组件。换句话说,为了准备从组件数据库214中移除数字资产的组件,组件管理器212改变与每个组件相关联的映射(例如,路径)以指向由打包管理器222创建的打包文件。接下来,当应用访问数字资产时,组件管理器212向应用提供对对存储在针对数字资产的打包文件中的组件的访问,而不是来自组件数据库214的组件的访问。
现在转向打包管理器222,如上所述,打包管理器222生成针对数字资产(包括组成数字资产的所有组件)的包。数字资产的打包文件使数字资产能够被表示为单一的整体文件。更具体而言,打包管理器222创建新打包文件、修改现有的打包文件、替换打包文件并移除废弃的打包文件。
在创建新打包文件时,在一个或多个实施例中,打包管理器222从组件管理器212接收组件的副本以包括在打包文件中。打包管理器222将接收到的组件打包成位于数字资产同步系统210的受监视文件目录中的打包文件。此外,当数字资产被成功打包成打包文件时,打包管理器222能够向组件管理器212报告。
在一些实施例中,打包管理器222通过将组件压缩成打包文件来打包组件。例如,打包管理器222应用一种或多种压缩算法来生成针对数字资产的打包文件,该打包文件的尺寸减小并且易于导出。在另外或备选的示例中,打包管理器222采用一种或多种存档算法来将数字资产的组件包括在针对数字资产的打包文件中。在一个或多个实施例中,打包管理器222将从组件管理器212接收到的数字资产的组件打包在CCP文件或PDF文件中。
当打包管理器222接收到新组件以包括在现有的打包文件中时,打包管理器222能够将该组件添加到打包文件。例如,打包管理器222将新组件附加到打包文件中的其他组件。在一些实施例中,打包管理器222还能够将新的或附加的元数据(例如,清单或其他元数据)附加到打包文件以指示新组件如何适合数字资产的现有组件。
作为在打包文件内附加新组件的备选方案,打包管理器222生成新打包文件以替换打包文件。例如,如果包装管理器222接收到新组件以替换现有组件,则包装管理器222能够生成包括新组件并排除原始组件的新打包文件。打包管理器222可以采用该选项来重新生成打包文件,因为诸如压缩的一些打包方法不允许打包管理器222直接利用该组件的更新的版本替换过期组件而无不重新压缩打包文件。在生成新打包文件后,打包管理器222能够从第一客户端设备202删除或移除针对数字资产的先前打包文件。
在直接替换可用的实施例中,打包管理器222通过直接将旧组件交换为组件的更新的版本来更新打包文件。具体地,打包管理器222将新组件添加到打包文件,向组件管理器212指示新组件已经被添加,使得组件管理器212能够向访问数字资产的任何应用通知更新为新组件,从而解锁对旧组件的访问。然后,打包管理器222能够删除旧组件并完成对针对数字资产(目前更新的数字资产)的打包文件的更新。
在一些情况下,打包管理器222从组件管理器212接收从针对数字资产的打包文件中移除或删除组件的请求。如上所述,在删除组件之前,打包管理器222确认该组件当前没有正在被应用访问。在一个或多个实施例中,当作为选项可用时,打包管理器222直接删除组件。在其他实施例中,诸如在压缩打包文件的情况下,打包管理器222将元数据附加到打包文件,该元数据指示该组件目前已经废弃(例如,直到打包文件被重新生成才时从打包文件中移除废弃组件)。在其他实施例中,打包管理器222重新打包了打包文件(例如,生成新打包文件)以排除移除的组件,在这时,打包管理器222删除针对数字资产的旧打包文件。
如上所述,在一个或多个实施例中,打包管理器222通过将新组件或元数据附加到打包文件来替换或删除打包文件中的旧组件。在这些实施例中,打包管理器222保持组件和/或元数据的较旧版本。一方面,将新组件或新元数据附加到当前打包文件通常比生成新打包文件和删除旧打包文件需要更少的时间和计算资源。另一方面,将新组件(和元数据)附加到打包文件而不移除废弃组件需要附加的存储空间。例如,在打包管理器222将若干组件附加到打包文件之后,打包文件中的废弃组件的数目超过组成数字资产的当前版本的组件。
因此,打包管理器222能够采用一种或多种启发法来确定是将新组件附加到打包文件还是生成针对数字资产的新打包文件。例如,打包管理器222在附加新组件之前或之后确定是否基于当前打包文件是否超过冗余阈值来生成新打包文件。如果是的话,则包装管理器222生成包括新组件和排除任何过期组件和元数据的新打包文件。
在一个或多个实施例中,冗余阈值基于数据大小。例如,如果来自旧组件和/或元数据的废弃数据的数据大小超过阈值大小(例如,500千字节、1兆字节或10兆字节),则打包管理器222确定生成新打包文件。否则,如果冗余阈值未被满足,则打包管理器222将该新组件附加到现有的打包文件。作为另一示例,如果废弃数据的数据大小超过数据大小比率或百分比(例如,打包文件的10%、30%或50%是废弃数据),则打包管理器222确定生成新打包文件并删除旧打包文件。
附加地和/或备选地,冗余阈值基于打包文件内的旧组件和/或有用组件的数量。例如,如果旧组件的数量达到阈值数量(例如,3、5、10),则打包管理器222确定生成新打包文件。在另一示例中,如果废弃组件与当前组件的比率达到阈值比率或百分比(例如,打包文件中的组件的25%或50%是废弃的),则打包管理器222确定生成新打包文件。当确定打包文件是否超过(例如,满足)一个或多个冗余阈值时,打包管理器222能够采用上述启发法中的一种或多种。
在一些实施例中,打包管理器222确定首先将新组件附加到针对数字资产的打包文件,然后稍后生成针对数字资产的新打包文件。例如,当数字资产正在被访问时,打包管理器222使用第一(例如,更严格的)冗余阈值来确定是否生成打包文件的新组件。然后,当未被访问时,打包管理器222使用第二较低(例如,不严格的)冗余阈值来确定是否生成打包文件的新组件,以移除废弃数据或保持打包文件原样。
作为另一示例,当附加的计算资源可用时,诸如当第一客户端设备202空闲时,打包管理器222等待生成针对数字资产的新打包文件。在另一示例中,打包管理器222使用调度来例程地标识超过冗余阈值的针对数字资产的打包文件,并生成针对那些数字资产的新打包文件。在另一示例中,打包管理器222通过在从用户接收到输入后生成针对数字资产的新打包文件来移除废弃数据。
值得注意的是,打包管理器222根据组件数据库214中首先创建的组件生成打包文件。同样地,在一些实施例中,打包管理器222能够与组件管理器212通信以将针对数字资产的打包文件转换成存储在组件数据库214中的组件,反之亦然。例如,用户收到包括针对数字资产的打包文件的电子邮件。在打开数字资产时,数字资产管理系统208和数字资产同步系统210可以提示用户将数字资产保存在组件数据库214内或作为打包文件保存在受监视文件目录中。取决于用户的选择,组件管理器212将数字资产的组件存储在组件数据库214中或将打包文件移动到期望的文件目录。稍后,用户可以提供输入来将打包文件转换成组件数据库214,反之亦然。为了在打包文件与组件数据库214之间进行转换,打包管理器222结合删除(或存储)组件数据库214中的数字资产的组件来创建(或删除)针对数字资产的打包文件。
取决于数字资产类型,将数字资产存储在组件数据库214中可以提供访问数字资产的附加的优点(例如,更快的访问速度和对编辑的实时更新)。因此,在一些实施例中,当用户正在编辑数字资产时,数字资产管理系统208和数字资产同步系统210将数字资产转换到组件数据库214,然后在用户保存和/或关闭数字资产时,组件管理器212将组件发送给打包管理器222以生成针对数字资产的新打包文件。
如图2所示,第一客户端设备202包括一个或多个应用226。一个或多个应用226能够与数字资产管理系统208和数字资产同步系统210通信以访问来自组件数据库214的一个或多个数字资产或打包文件224。如上所述,一个或多个应用226使用户能够创建、查看、复制、修改和/或删除数字资产。在一些情况下,一个或多个应用226涉及特定类型的数字资产。例如,应用是与数字文档对接的文字处理应用。作为另一示例,应用是与数字图像对接的图像编辑/创建应用。
如提到的,一个或多个应用226访问数字资产。在第一示例中,组件子管理器从用户接收打开数字资产的请求。组件子管理器与数字资产管理系统208和数字资产同步系统210进行通信,以打开、访问和显示数字资产,以及使用户能够修改数字资产的组件,组件子管理器将这些修改传送给数字资产同步系统210。例如,在访问数字资产的组件中,组件子管理器与数字资产同步系统210连接以获得针对数字资产的清单。使用清单,组件子管理器标识组成数字资产的组件、组件被显示的顺序和/或访问每个组件被存储在何处(例如,在组件数据库214内或打包文件224中的一个内)的映射(例如,路径)。通过访问组件,应用将数字资产作为单一的整体文件呈现(例如显示)给用户,同时允许用户单独地与数字资产的每个组件进行交互。
如还提到的,在一个或多个实施例中,应用使用户能够修改(例如,创建、改变或删除)数字资产的一个或多个组件。例如,如果数字资产是具有多层的图像,则应用使用户能够编辑层内的内容。此外,应用能够使用户添加或移除层。如上所述,在应用基于用户输入创建或修改数字资产时,数字资产同步系统210的组件管理器212检测对数字资产的组件的改变、更新针对数字资产的清单、以及在组件数据库214中创建一个或多个新组件。然后,如果数字资产由打包文件表示,则组件管理器212将新组件发送到打包管理器222以包括在针对数字资产的打包文件中,使新组件与云同步系统232同步,更新映射并从组件数据库214中移除新组件,如上所述。
如所示的,在一个或多个实施例中,每个客户端设备能够包括多个应用。因此,第一客户端设备202使用户能够同时地使用两个或更多个应用访问相同的数字资产。如前所述,当用户在一个应用内修改组件时,数字资产管理系统208和数字资产同步系统210使其他应用更新并显示修改的组件。
以类似的方式,在数字资产同步系统210从云同步系统232接收到对数字资产的更新时,数字资产同步系统210能够使一个或多个应用226自动显示更新的数字资产。例如,用户正在第一客户端设备202上使用应用查看数字视频,并且另一用户在第二客户端设备204上更新数字视频。在第一客户端设备202上的数字资产同步系统210接收到更新的组件(例如,视频片段、图形或标题)时,第一客户端设备202上的数字资产同步系统210通知应用更新的组件,使得应用将更新的数字视频提供给第一客户端设备202的用户。在一些情况下,应用在第一客户端设备202的用户正在观看视频时更新数字视频,而不需要用户附加的动作。
数字资产管理系统208的元件210-224能够包括软件、硬件或两者。例如,元件210-224能够包括存储在计算机可读存储介质上并且能够由一个或多个计算设备(诸如客户端设备或服务器设备)的处理器运行的一个或多个指令。当由一个或多个处理器运行时,数字资产管理系统208的计算机可执行指令能够使(一个或多个)计算设备执行本文中描述的特征学习方法。备选地,元件210-224能够包括硬件(诸如专用处理设备)来执行某个功能或某组功能。或者,数字资产管理系统208的元件210-224能够包括计算机可执行指令和硬件的组合。
此外,数字资产管理系统208的元件210-224可以例如被实现为一个或多个操作系统、一个或多个独立应用、应用的一个或多个模块、一个或多个插件、一个或多个库函数、或可以由其他应用调用的函数,和/或云计算模型。因此,元件210-224可以被实现为独立应用,诸如桌面或移动应用。此外,元件210-224可以被实现为远程服务器上托管的一个或多个基于网络的应用。元件210-224还可以被实现在一套移动设备应用或“app”中。为了说明,元件210-224可以被实现在应用中,包括但不限于ADOBE CREATIVE CLOUD软件。“ADOBE”和“CREATIVE CLOUD”是Adobe系统公司在美国和/或其他国家中的注册商标或商标。
图2还图示了云同步系统232,其包括远程组件数据库234。如所示的,云同步系统232位于服务器设备230上。然而,将认识到的是,云同步系统232能够跨多个服务器设备而被分布。例如,远程组件数据库234位于与云同步系统232分离的一个或多个服务器设备上。
总体上,云同步系统232存储数字资产的组件的远程副本,包括与数字资产的先前版本对应的组件。以这种方式,当完全同步时,存储在客户端设备上的数字资产也将被存储在远程组件数据库234中。在一些实施例中,云同步系统232为存储在远程组件数据库中的每个组件分配云标识符234。此外,云同步系统232充当客户端设备之间(例如,在第一客户端设备202与第二客户端设备204之间)同步数字资产的公共中心。在一些实施例中,云同步系统232还提供在线服务,诸如使用户能够查看和编辑数字资产的在线应用。
此外,远程组件数据库234通常包括比在客户端设备上发现的数字资产更多的数字资产。例如,客户端设备通常不会在本地同步用户的整个数字资产汇集。另外,服务器设备230通常比客户端设备(尤其是移动客户端设备)具有更大的存储容量,因此能够比客户端设备存储更多的数字资产和数字资产的版本。以这种方式,云同步系统232能够根据请求将数字资产的一些或全部先前版本提供给客户端设备。
客户端设备上的云同步系统232与同步系统210之间的一个区别在于云同步系统232不需要将数字资产存储为打包文件。总体上,用户不直接与云同步系统232上的数字资产进行对接。因此,云同步系统232能够将数字资产(包括先前版本)存储在远程组件数据库234内。另外,云同步系统232能够将属于不同用户的数字资产存储在相同的远程组件数据库234中,只要云同步系统232维持针对每个数字资产的恰当的许可和用户授权。
在一些实施例中,云同步系统232向用户提供对数字资产的远程访问,诸如经由网络浏览器。如上所述,云同步系统232提供在线服务,诸如使用户能够查看和编辑数字资产的在线应用。在附加的实施例中,云同步系统232提供用户的数字资产的在线文件目录,该目录匹配或包括第一客户端设备202和/或第二客户端设备204上的受监视文件目录中的所有数字资产。在这些实施例中,云同步系统232不需要像在客户端设备上那样创建针对数字资产的打包文件,而是能够象征性地向用户表示数字资产,使得数字资产在在线文件目录内显现为单一的整体文件。
另外,云同步系统232能够结合数字资产向用户呈现数字资产的一个或多个先前版本。以类似的方式,云同步系统232能够显示被包括在远程组件数据库234中的所有数字资产的清单,还包括先前版本。
如上所述,图2图示了关于针对数字资产的打包文件的同步系统210(具有数字资产管理系统208)的框架。继续向前,图3-12图示了数字资产管理系统208和数字资产同步系统210创建、更新、打开和移除针对数字资产的打包文件的示例实现方式和操作。在一个或多个实施例中,图3-12涉及为组件管理器212(例如,使用DCX)和监视代理220(例如,经由CoreSync)提供应用编程接口(API)的数字资产同步系统208。具体地,图3-5图示了数字资产管理系统208和数字资产同步系统210创建针对数字资产的新打包文件,图6-8图示了数字资产管理系统208和数字资产同步系统210更新针对数字资产的打包文件,图9图示了数字资产管理系统208和数字资产同步系统210打开数字资产的打包文件,以及图10-12图示了数字资产管理系统208和数字资产同步系统210移除数字资产的打包文件。为了简洁起见并在适当的情况下,伴随图3-12的描述参考返回到图2,其更全面地描述了数字资产同步系统和/或云存储系统所执行的动作、步骤、操作和/或方法。
图3-12中的每幅图包括具有数字资产管理系统208和数字资产同步系统210(或简称为“同步系统210”)的客户端设备202。客户端设备202可以是关于图2描述的第一客户端设备202的实施例。同样地,数字资产管理系统208和数字资产同步系统210能够分别体现前述的数字资产管理系统208和数字资产同步系统210的一个或多个实施例。例如,图3-12中的数字资产同步系统210均包括组件管理器212和监视代理220,如上所述。
另外,图4、7和11还包括与客户端设备202一起的应用226,客户端设备202体现了上述的一个或多个应用226。此外,图3-8和10-12还包括托管云同步系统232的服务器设备230。服务器设备230和云同步系统232都能够体现先前描述的服务器设备230和云同步系统232的一个或多个实施例。
如上所述,图3-5图示了数字资产同步系统210创建针对数字资产的新打包文件。具体地,图3图示了数字资产同步系统210在检测到新数字资产时创建针对数字资产的新打包文件的序列图。例如,数字资产同步系统210检测被放置在受监视文件目录中的新数字资产。
如图3所示,数字资产同步系统210的监视代理220检测302新数字资产。例如,用户将数字资产从客户端设备202上的非监视文件目录移动到受监视文件目录中。在另一示例中,用户将在电子邮件消息中接收到的数字资产保存到受监视文件目录,或者用户以其他方式将从互联网下载的数字资产保存到受监视文件目录。在附加的示例中,使用不与组件对接的应用的用户(例如,应用未被配置为访问数字资产的组件或将数字资产的组件显示为单个文件)将数字资产保存在受监视文件目录内。在这些示例中的每个中,在数字资产被移动或保存到受监视文件目录后,监视代理220检测到新数字资产。
一般而言,监视代理220检测将新数字资产何时添加到受监视文件目录。然而,监视代理220不检测数字资产是否是包括组件或传统文件的打包文件。例如,数字资产是如上所提到的新添加的数字资产。在另一示例中,数字资产是来自组件的新创建的打包文件。因此,监视代理220将所有检测到的新文件或更新的文件提供给组件管理器212,组件管理器212确定数字资产是否是打包文件。
如提到的,在检测到新数字资产时,监视代理220将检测到的数字资产报告304给组件管理器212。在一些实施例中,报告数字资产包括提供新添加的数字资产到组件管理器212的文件映射,使得组件管理器212能够访问数字资产。
然后组件管理器212验证306数字资产是打包文件。例如,组件管理器212标识数字资产包括组件的汇集。在另一示例中,组件管理器212标识与数字资产相关联的指示数字资产是打包文件的元数据。备选地,组件管理器212确定数字资产是不包含存储的组件的传统文件。在一些实施例中,组件管理器212基于数字资产的文件扩展名(例如.ccp、.zip或.pdf)来确定数字资产是打包文件。
在确定数字资产是打包文件后,组件管理器212将数字资产的组件存储308在组件数据库中。作为存储数字资产的部分,组件管理器212将记录id分配给数字资产。此外,在一个或多个实施例中,组件管理器212使用来自打包文件的元数据来存储针对数字资产的组件的标识符。例如,组件管理器212将来自包括在打包文件中的清单中的标识符传输到组件数据库。备选地,组件管理器212生成针对被包括在打包文件中的数字资产的组件中的每个组件的新标识符。
在一些实施例中,使用与数字资产的组件相关联的标识符,组件管理器212生成针对数字资产的清单和对应的映射。例如,组件管理器212将每个组件的位置映射回到打包文件。如上所述,通过生成新的清单和对应的映射,组件管理器212能够追踪并实现对数字资产的未来改变。在备选实施例中,组件管理器212从打包文件接收清单并更新接收到的清单以引用组件的新映射(例如,路径)。
在将数字资产的组件存储在组件数据库内之后,组件管理器212提供310针对数字资产的标识符(例如记录id)。虽然未示出,但是一旦组件管理器212提供标识符,监视代理220就能够访问并在将来调用组件管理器212时使用记录id。如下所述,监视代理220在检测到数字资产中的改变时将记录id传送给组件管理器212。
组件管理器212还能够可选地将数字资产的组件与云同步系统232同步312。具体地,组件管理器212将数字资产的清单和组件发送到云同步系统232。如以上结合图2所述,数字资产同步系统210能够将组件与云同步系统232同步,云同步系统232存储数字资产的远程副本,包括数字资产的多个版本。
图4图示了数字资产同步系统210创建针对客户端设备202上的数字资产的新打包文件的序列图。例如,用户在客户端设备202上的应用226内创建新数字资产,数字资产同步系统210该新数字资产存储为打包文件。
如所示的,应用226创建402使用组件来组成数字资产的新数字资产。例如,响应于用户请求新数字图像(即,数字资产),应用226向用户提供由背景层(即,组件)、前景层以及包含针对数字图像的元数据的一个或多个隐藏层组成的空白画布。
结合应用226创建针对新数字资产的组件的汇集,应用226执行404与组件管理器212的握手并将标识符分配给新组件。如上所述,组件管理器212为新组件分配和登记标识符。因此,握手包括组件管理器212为数字资产创建记录id,并存储新数字资产。以这种方式,握手包括为新组件分配标识符的组件管理器212。
在一个或多个实施例中,数字资产同步系统210采用诸如VULCAN远程过程调用(RPC)请求的一个或多个进程间通信(IPC),以促进应用226与数字资产同步系统210之间的握手。在一些实施例中,握手必须在数字资产同步系统210执行关于数字资产的附加的动作(诸如,将新组件存储在组件数据库中或同步新组件)之前成功完成。
在完成握手后,组件管理器212将数字资产的新组件存储406到组件数据库中。例如,组件管理器212从应用226接收新组件、将新组件与所分配的标识符相关联、映射并将新组件注册在组件数据库中。如上所述,组件管理器212还能够为数字资产创建新清单,其包括组件和组件的映射。
组件管理器212还能够可选地与云同步系统232同步408数字资产的新组件。具体地,组件管理器212将数字资产的清单和新组件发送到云同步系统232。如上面结合图2所述,数字资产同步系统210在存储新组件之后立即将新组件与云同步系统232同步,以确保新组件被安全地备份。
如图4所示,组件管理器212创建410数字资产的打包文件。更具体地,如上面结合图2所述,组件管理器212将该组件的副本发送到生成打包文件的打包管理器。然而,为简单起见,图4-12中未示出打包管理器,但是打包管理器的功能被并入在所示的组件管理器212中。
组件管理器212然后存储412针对数字资产的新创建的打包文件。如上所述,在打包文件被创建之后,组件管理器212更新映射以在打包文件中引用新组件,并从组件数据库中移除组件。监视代理220然后监视受监视文件目录中的新存储的数字资产,并在对数字资产的改变发生时向组件管理器212报告,如上所述。
值得注意的是,根据用户创建具有应用226上的组件的新数字资产来描述图4。另外,图4中提供的动作也适用于新数字资产何时重写先前数字资产。具体地,当新数字资产重写先前数字资产时,数字资产同步系统210将新数字资产识别为新的并且遵循上面提供的动作。此外,数字资产同步系统210删除重写的数字资产,其将在下面参考图10-12进行描述。
图5图示了数字资产同步系统210基于从云同步系统232接收到数字资产的组件来创建针对数字资产的新打包文件的序列图。例如,另一客户端设备上的同步系统创建数字资产并将数字资产上传到云同步系统232,云同步系统232然后与客户端设备202同步。
如所示的,云同步系统232经由监视代理220向数字资产同步系统210指示502数字资产的新组件。例如,云同步系统232向监视代理220提供消息,该消息指示新数字资产正被存储在云同步系统232上。备选地,监视代理220与云同步系统232进行周期性地通信以报告改变并发现云同步系统232上的新的或修改的数字资产何时准备与客户端设备202同步。
如上所述,在检测到新数字资产后,监视代理220将新组件报告504给组件管理器212。同样如上所述,组件管理器212为新组件分配标识符506以及为数字资产分配标识符(例如,记录id),组件管理器212能够将其中的每个提供给监视代理220。
然后,组件管理器212与云同步系统232同步508以接收新组件。例如,云同步系统232将数字资产的新组件推送到组件管理器212。在备选示例中,云同步系统232通知组件管理器212新数字资产,并且组件管理器212从云同步系统232提取组件并将组件临时存储在组件数据库中。
在接收到新组件之后,组件管理器212使用所分配的标识符将数字资产的新组件存储510到组件数据库中。如前所述,组件管理器212还创建针对数字资产的清单。此外,如上所述,组件管理器212(结合打包管理器)创建512针对数字资产的打包文件。另外,如前所述,组件管理器212存储514针对数字资产的新创建的打包文件。
图6图示了数字资产同步系统210更新客户端设备202上的打包文件的序列图。一般而言,图6描述了利用打包文件的新副本替换打包文件。例如,与应用交互的用户改变数字资产的一个或多个组件,这触发数字资产同步系统210生成针对数字资产的新打包文件。
更具体地,图6图示了监视代理220检测602针对数字资产的打包文件中的改变。例如,监视代理220检测到应用访问存储为打包文件的数字资产。在另一示例中,监视代理220检测到用户正在更新(例如,添加、编辑、移除)针对数字资产的打包文件内的一个或多个组件。在一些实施例中,如上所述,组件管理器212检测对针对数字资产的打包文件内的一个或多个组件的改变。
如上所述,在创建针对数字资产的新打包文件之后,组件管理器212向监视代理220提供一个或多个标识符。然后,当监视代理220向组件管理器212报告修改的数字资产时,监视代理220使用与修改的数字资产对应的标识符。为了说明,图6图示了监视代理220在检测到针对数字资产的打包文件中的变化时查找604针对数字资产的标识符。监视代理220然后使用该标识符向组织管理器212报告606修改的数字资产。
如所示的,组件管理器212验证608对数字资产的修改。具体地,组件管理器212验证已经对针对数字资产的打包文件内的一个或多个组件进行了改变。在一些情况下,监视代理220基于组件管理器212先前创建打包文件或对打包文件进行写入来指示对打包文件的改变。在这些情况下,组件管理器212忽略来自监视代理220的通知,因为针对数字资产的打包文件实际上没有改变。
在验证针对数字资产的打包文件的一个或多个组件已经改变(例如,除了组件管理器212之外的另一参与者实施了改变)后,组件管理器212必须同步数字资产同步系统210内的打包文件。具体地,图示的实施例示出了组件管理器212请求610更新针对数字资产的打包文件。在备选实施例中,组件管理器212向监视代理220提供调度更新的请求。例如,如上所述,监视代理220具有关于所有未决的同步操作(均在数字资产同步系统210和云同步系统232内)的全局知识。因此,在这些备选实施例中,组件管理器212将打包文件更新资产的调度委托给监视代理220。
当准备好更新针对数字资产的打包文件时,监视代理220向组件管理器212提供612数字资产标识符,该组件管理器212启动包更新过程。在一个或多个实施例中,监视代理220还提供数字资产位于受监视文件目录中的映射(例如,路径)。组件管理器212使用标识符来标识数字资产以及哪些组件已经在打包文件内被更新。
如所示的,在一些实施例中,在更新针对数字资产的打包文件之前,组件管理器212与云同步系统232同步614修改的组件。此外,如前所述,组件管理器212(结合打包管理器)更新616打包文件。另外,如前所述,组件管理器212存储618针对数字资产的更新的打包文件。例如,组件管理器212和/或打包管理器附加或重新生成针对数字资产的打包文件,如以上结合图2所详细描述的。
在一些实施例中,当更新组件管理器212中的组件时,监视代理220确定在云同步系统232上对数据资产的附加改变是可获得的。例如,当与云同步系统232同步时,组件管理器212确定在另一客户端设备上发生针对数字资产的附加修改。因此,数字资产同步系统210接收更新的组件并重复更新打包文件的过程,如本文中所描述的。
图7图示了在应用226修改打包文件内的组件时数字资产同步系统210更新打包文件的序列图。例如,用户使用应用226编辑数字资产,这导致应用修改针对数字资产的打包文件的一个或多个组件。
如所示的,应用226将数字资产的组件显示702为整体文件。例如,应用226在打包文件内定位和访问数字资产的组件,以在应用226内显示数字资产,如上所述。因此,应用226能够显示数字资产的组件,使得数字资产显现为单一的文件。
接下来,如图所示,应用226修改704数字资产的组件。例如,响应于用户输入,应用226添加、改变或移除数字资产的组件。另外,应用226能够向组件管理器212指示改变,如所示的。如上所述,如果组件正在被改变或被添加,则组件管理器212创建包括修改的组件的新副本,并将新组件副本临时存储在组件数据库中。
如图7所示,组件管理器212然后指示706修改的组件以及修改708针对数字资产的打包文件,如上所述。另外,组件管理器212存储710针对数字资产的修改的打包文件。在一些实施例中,监视代理220检测到数字资产已经在受监视文件目录内改变,如前所述。
一旦组件管理器212(和/或打包管理器)生成并存储针对数字资产的修改的打包文件,组件管理器212就与云同步系统232同步712数字资产的修改的组件。如上所述,在一些实施例中,当与云同步系统232同步时,组件管理器212检测对数字资产的附加改变。因此,数字资产同步系统210接收更新的组件并重复更新打包文件的过程,如本文描述的,这能够包括进一步重新生成针对数字资产的打包文件。
此外,如所示的,组件管理器212向应用226提供714针对数字资产的修改的打包文件。然后,应用226向用户显示716修改的数字资产。在一个或多个实施例中,并且如上所述,组件管理器212与应用226进行通信以使组件访问附加到现有的打包文件的更新的组件的新创建的打包文件,在这时,组件管理器212从组件数据库中删除旧组件。
图8图示了数字资产同步系统210基于从云同步系统232接收到的更新的数字资产来更新打包文件的序列图。例如,数字资产同步系统210检测到云同步系统232上的数字资产是比存储在客户端设备202上的版本更新的版本。
如所示的,云同步系统232向监视代理220指示802数字资产的更新的组件在云同步系统232上可获得。作为响应,监视代理220查找804组件标识符。例如,监视代理220访问查找表以标识更新的组件对应于哪个数字资产。另外,监视代理220将组件标识符提供806给组件管理器212。
在图示的实施例中,组件管理器212使用组件标识符从云同步系统232取回808更新的组件。例如,组件管理器212从云同步系统232提取更新的组件,如上所述。在下载更新的组件后,组件管理器212将更新的组件暂时存储在组件数据库中。
在一些实施例中,由组件管理器212取回的修改的组件与客户端设备202上最近更新的组件之间的数字资产的组件之间出现一个或多个冲突。因此,如图8所示,组件管理器212可选地解决810与数字资产的冲突。更具体地,在取回和更新打包文件的同时,可能已经对相同的数字资产进行了另一改变,这导致了数字资产的不同版本之间的冲突。上面结合图2提供了关于解决数字资产的相同或不同组件之间的冲突的详细解释。此外,组件管理器212能够在解决过程期间进一步更新和/或修改客户端设备202上的针对数字资产的打包文件。
在组件管理器212解决数字资产的组件之间的冲突的实施例中,组件管理器212再次将解决的组件与云同步系统232同步812。如上所述,在同步后,组件管理器212能够验证云同步系统232上的版本与客户端设备202上的版本匹配(例如,云分支与本地分支匹配)。如果云同步系统232包括附加的修改,则数字资产同步系统210能够迭代地取回并且并入附加的修改,如前所述。
在解决组件冲突并且组件与云同步系统232同步之后,组件管理器(和/或打包管理器)创建814针对数字资产的更新的打包文件。如前所述,组件管理器212和/或打包管理器(未示出)将修改的组件附加到现有的打包文件或生成新打包文件。在更新针对数字资产的打包文件时,组件管理器212将针对数字资产的打包文件存储816在受监视文件目录中。组件管理器212也能够从组件数据库中移除修改的组件。
图9图示了数字资产同步系统210打开客户端设备202上的打包文件的序列图。如上所述,应用(例如应用226)被配置为正确地显示由组件组成的数字资产,使得数字资产作为单一的整体文件被显示给用户。具体地,应用与数字资产同步系统210的组件管理器212进行通信以访问组件数据库中的每个组件,以及指示用户输入何时对数字资产组件的进行修改。
如图9所示,应用226接收902对于打开数字资产的请求。例如,用户请求应用226在应用226内打开针对数字资产的打包文件。作为接收打开数字资产的请求的部分,应用226接收数字资产的映射(例如,文件位置路径)。在一些实施例中,应用包括组件子管理器,其促进与数字资产的组件进行交互以及与数字资产同步系统210的其他组件进行通信,如上所述。
在接收到请求后,应用226确定904数字资产是由组件组成的。如上所述,在一个或多个实施例中,应用226被配置为与数字资产的组件进行交互。因此,应用226能够确定同步系统210是否是包括数字资产的组件的打包文件,或者数字资产是否是传统文件。在一些实施例中,应用226仅与存储在打包文件或组件数据库中的由组件组成的数字资产进行交互。
在验证数字资产是由组件组成的之后,应用226执行906与监视代理220的握手以接收针对数字资产的标识符(例如,记录id)。具体地,应用226将数字资产的路径提供给监视代理220,监视代理220查找数字资产的记录id并将其提供回到应用226。在各种实施例中,应用226内的组件交互界面(例如,组件子管理器)能够采用具有监视代理220的IPC来发起握手。
另外,通过与监视代理220执行握手,通知监视代理220应用226正在访问数字资产。因此,监视代理220能够通知组件管理器212与应用226进行通信以实现对数字资产的组件的改变。当数字资产发生改变时,监视代理220还能够检测改变并向云同步系统232报告改变。
在一些实施例中,监视代理220最初不定位针对数字资产的记录id。例如,数字资产是新的并且尚未在监视代理220中登记。如关于图3和图4所描述的,监视代理220不是向应用226返回空标识符(这将导致应用226中的打开失败),而是调用函数以创建针对数字资产的新打包文件。因此,如果打包文件存在,则监视代理220将识别数字资产并与组件管理器212一起注册数字资产。监视代理220然后将新分配的数字资产标识符返回给应用226。如果不是的话,则监视代理220返回空标识符,如上所述。
使用针对数字资产的标识符,应用226结合组件管理器212访问908组件。例如,当应用226从针对数字资产的打包文件加载组件时,应用226还与组件管理器212通信以指示用户何时执行对数字资产的一个或多个组件的改变。以这种方式,并且如前所述,组件管理器212(和/或打包管理器)能够更新打包文件以反映接收到的修改。
此外,应用226将数字资产作为整体文件显示910给用户。正如最近所述,应用226从针对数字资产的打包文件加载组件,并将该数字资产作为单个文件提供给用户。在一些实施例中,应用226使用户能够显示/隐藏单个组件或查看隐藏的组件(例如,包括针对数字资产的元数据的组件)。
现在转到图10-12,给出了关于数字资产同步系统210删除打包文件的附加示例。具体地,图10图示了用户删除数字资产(例如,针对数字资产的打包文件)。更具体地,图10图示了数字资产同步系统210基于用户输入请求数字资产同步系统210从直接在客户端设备202上的受监视文件中移除数字资产来从客户端设备删除数字资产。
如所示的,监视代理220检测1002针对数字资产的移除的打包文件。例如,用户通过将数字资产移动到垃圾目录中来删除数字资产。在另一示例中,用户将数字资产从受监视文件目录中移动出来并移动到非受监视目录中。在一些实施例中,当打包文件被重写时,触发移除打包文件的命令。例如,如上面结合图3和图4所述,重写数字资产首先创建新数字资产,然后删除较旧的数字资产。
在检测到针对数字资产的移除的打包文件时,监视代理220将移除的打包文件报告1004给组件管理器212。例如,监视代理220查找针对数字资产的标识符并将数字资产标识符与移除指令一起传送到组件管理器212。
组件管理器212标记1006针对数字资产的打包文件中的组件以从客户端设备202上的数字资产同步系统210进行移除。以这种方式,组件管理器212防止将来对数字资产进行添加或修改。例如,如果在下一同步周期期间移除数字资产,则可能不会立即移除数字资产。由于移除文件的延迟,在一些实施例中,在组件管理器212检测到对数字资产的添加或其他修改时,组件管理器212创建针对数字资产的新打包文件,如上面图3和图4中所述。例如,如果应用具有当前打开的数字资产,则组件管理器212可以继续存储数字资产的组件的副本直到冲突解决步骤完成为止,如上所述。
此外,组件管理器212向监视代理220确认数字资产是打包文件而不是存储在组件数据库中的传统文件类型或数字资产。如果数字资产被存储为打包文件,则组件管理器212返回针对数字资产的数字资产标识符以及调度/启动从数字资产同步系统210中移除数字资产的指示。如所示的,组件管理器212在标记用于移除的数字资产时,向监视代理220指示1008移除状态。
另外,组件管理器212向监视代理220提供1010移除/存档针对数字资产的打包文件的组件的指示。具体地,组件管理器212向云同步系统232指示数字资产正在从客户端设备202中被移除。因此,在删除针对数字资产的打包文件的组件之前,云同步系统232应当存储/存档针对数字资产的打包文件的组件至少一段时间(例如,30天、6个月、1年)。以这种方式,用户能够在期望时访问和恢复数字资产。或者,云同步系统232在从组件管理器212接收到指示时移除组件。
云同步系统232确认将数字资产的组件移除/存档到组件管理器212。当从云同步系统232接收到1012确认时,组件管理器212向监视代理220指示1014云同步系统232成功地移除/存档数字资产的组件。监视代理220然后从受监视文件目录移除1016数字资产的打包文件。此外,组件管理器212能够从组件数据库移除与数字资产相关联的任何组件和/或元数据。
图11图示了用户从应用中移除被存储为打包文件的数字资产。如所示的,应用226将打包文件(即,数字资产)的组件作为整体文件显示1102给用户。例如,如上结合图9所述的,应用226打开并显示数字资产。
当用户正在查看应用226内的数字资产时,应用226从用户接收1104删除打包文件的请求。例如,用户在应用226内选择选项以删除数字资产或打包文件的所有组件。在另一示例中,用户利用另一数字资产替换或重写打包文件,如上所述。作为响应,应用226向组件管理器212指示1106打包文件的删除。
在接收到删除指示时,组件管理器212标记1108用于删除的组件。例如,组件管理器212将元数据与组件数据库中的组件相关联,该元数据标记用于从数字资产同步系统210移除的组件。此外,组件管理器212可以在数字资产同步系统210内的下一同步周期上调度打包文件以用于移除。
如图11所示,组件管理器212还执行1110对针对数字资产的打包文件的组件的删除/存档。如以上结合图10所述,组件管理器212向云同步系统232指示正在从客户端设备202移除数字资产。作为响应,云同步系统232存储、存档、移除和/或删除针对数字资产的打包文件的组件。此外,云同步系统232确认组件何时已经被存档。另外,如所示的,如上面结合图10所述的,监视代理220从受监视文件目录中删除1112打包文件。
图12图示了数字资产同步系统210接收已经从云同步系统232中删除打包文件(即,数字资产)的指示。例如,用户删除另一客户端设备上的打包文件,然后该客户端设备与云同步系统232同步并且使云同步系统232存档/删除打包文件。继而,云同步系统232通知客户端设备202删除的打包文件,使得指令客户端设备202上的数字资产同步系统210移除针对数字资产的打包文件。
具体地,图12图示了云同步系统232在服务器设备230上删除1202打包文件。如上所述,在一个或多个实施例中,云同步系统232删除或存档打包文件的组件。当存档与数字资产相关联的组件时,云同步系统232将组件存储在远程组件数据库内(至少一段时间)。此外,云同步系统232还使客户端设备与云同步系统232同步以删除/移除针对数字资产的打包文件,包括被存储在打包文件中的所有组件。
在删除或移除打包文件后,云同步系统232向监视代理220提供1204删除客户端设备202上的打包文件的指示。在接收到该指示时,监视代理220查找1206针对打包文件的数字资产标识符,如前所述。如以上还描述的,监视代理220将数字资产标识符与移除打包文件的指令一起提供1208给组件管理器212。另外,如上所述,组件管理器212标记1210数字资产的组件以用于删除。
在一个或多个实施例中,打包文件正由应用或以其他方式在客户端设备202上被主动地使用。在这些实施例中,组件管理器212首先等待解决1212与数字资产的冲突,其包括更新组件数据库和/或针对数字资产的打包文件。如上所述,解决冲突可以包括组件管理器212创建针对数字资产的新打包文件(其包括修改),其中在组件管理器212接收到删除打包文件的指令之后检测到修改。在这些实施例中,如上所述,组件管理器212然后将解决的组件与云同步系统232同步1214。
在组件管理器212接收到标记用于删除的打包文件的指令时,监视代理220删除1216针对数字资产的打包文件。例如,如上所述,组件管理器212向监视代理220指示云同步系统232成功地删除/存档数字资产。在这时,监视代理220然后从受监视文件目录中移除针对数字资产的打包文件。此外,组件管理器212能够从组件数据库中移除与数字资产相关联的任何组件和/或元数据。
图13图示了数字资产同步系统210在客户端设备上执行用于维持组件数据库与打包文件之间的组件的子集的存储的步骤的状态图1300。组件数据库包括作为独立文件跨客户端设备存储的组件。为了解释的目的,将参考上述的数字资产同步系统210、云同步系统232和客户端设备202。此外,图13的描述引用以上关于由数字资产同步系统210执行的步骤、动作、操作和/或功能的以上描述附图。
如所示的,数字资产同步系统210从云同步系统232接收1302打包文件的清单和组件(例如,接收到的清单指示组件)。例如,如上所述,数字资产同步系统210从云同步系统232请求、提取和/或下载(在接收到的打包文件的清单中指示的)数字资产的一个或多个组件。备选地,云同步系统232将一个或多个组件发送或推送到客户端设备202上的数字资产同步系统210。
值得注意的是,图13的描述说明了数字资产同步系统210结合接收到的清单从云同步系统232接收单个组件。将认识到的是,云同步系统232能够提供附加的组件。然而,意图是云同步系统232提供少于数字资产的所有的组件(例如,仅仅从先前清单改变的修改的组件)。换句话说,如下所述,当针对存储为组成数字资产的组件的打包文件的现有数字资产接收到少于所有的组件(即,子集)时,数字资产同步系统210创建针对数字资产的新打包文件。
接下来,数字资产同步系统210标识1304接收到的组件的组件标识符。例如,数字资产同步系统210从清单内查找针对接收到的组件的标识符。在一些实施例中,数字资产同步系统210为接收到的组件分配新本地组件标识符。此外,数字资产同步系统210为接收到的清单和组合所属的数字资产查找数字资产标识符(例如,记录id)。
数字资产同步系统210确定接收到的清单是否指示特定数字资产的不同版本。例如,数字资产同步系统210确定接收到的数字资产的清单包括比位于客户端设备202上的现有清单中包括的组件新的组件或修改版本的组件(例如,接收到的组件)。当数字资产同步系统210在接收到的清单与客户端设备202上的现有清单之间检测到针对相同数字资产的不同清单(即,版本)时,如图13所示,数字资产同步系统210确定1306接收到的清单是否为数字资产创建版本冲突。
如果接收到的清单不产生版本冲突(例如,接收到的清单向位于客户端设备202上的现有清单提供更新),则数字资产同步系统210基于接收到的清单生成1308具有接收到的组件的新打包文件。例如,数字资产同步系统210生成新打包文件或将接收到的组件附加到针对数字资产的现有打包文件。关于数字资产同步系统210生成新打包文件的描述在上面结合图2-5进行了详细说明。附加地和/或备选地,数字资产同步系统210采用图6-8中提供的动作,其中数字资产同步系统210基于被修改的数字资产的组件来更新针对数字资产的打包文件。
在生成针对数字资产的新打包文件时,数字资产同步系统210从本地数据库中移除1310接收到的组件。具体地,数字资产同步系统210从组件数据库中移除接收到的组件。如以上至少结合图2和图7所述的,数字资产同步系统210在接收到组件后将接收到的组件临时存储在组件数据库内,直到接收到的组件被成功地打包在针对数字资产的更新的或新的打包文件内。
如果数字资产同步系统210确定接收到的清单与针对数字资产的客户端设备上的现有清单冲突(例如,在接收到接收到的组件之前对应的组件已经在客户端设备202上被修改,但是没有与云同步系统232同步),则数字资产同步系统210解决1312多个清单版本之间的冲突(例如,接收到的清单以及客户端设备202上的尚未与云同步系统232同步的现有清单)。例如,数字资产同步系统210采用上面结合图2描述的动作来解决数字资产的不同清单版本之间的冲突。作为解决组件冲突的部分并且如所示的,数字资产同步系统210能够选择指示对接收到的组件的使用的接收到的清单,并生成1308具有接收到的组件的新打包文件,如上所述。
备选地,数字资产同步系统210选择现有的清单并与云同步系统232同步1314现有清单和对应组件(例如,在客户端设备202上更新的组件),其缺少现有清单的副本和/或组件。在其他实施例中,数字资产同步系统210合并针对两个不同清单版本的一个或多个对应的组件以包括在打包文件的新清单中。在这些实施例中,数字资产同步系统210仍然将现有组件与云同步系统232同步,因为现有组件尚未被存储在云同步系统232中。另外,数字资产同步系统210同步更新的映射,其指示接收到的组件和现有组件两者都已经被添加到针对数字资产的更新的打包文件。
根据一个或多个实施例,图1-13、对应的文本和示例提供了数字资产同步系统的多个不同系统和设备。除了以上描述之外,还能够根据包括用于实现特定结果的方法中的动作的流程图来描述一个或多个实施例。例如,图14和图15图示了根据本文中描述的一个或多个实施例的示例性方法的流程图。
图14图示了用于根据被存储为独立文件的数字资产的组件生成打包文件的方法1400的示例流程图。在一个或多个实施例中,方法1400被实现在一个或多个计算设备(诸如客户端设备和/或服务器设备)上。另外,在一些实施例中,方法1400被实现在用于执行在计算设备与云存储介质之间的数字资产管理的数字环境中。
方法1400包括维持指示存储组成数字资产的组件216被存储在何处的数字资产映射的动作1410。例如,动作1410包括在客户端设备202上维持具有数字资产映射的数据库214,该数字资产映射指示组成数字资产的组件216被存储在数据库214内何处,其中组件216跨数据库214(和/或客户端设备202)被存储为独立文件。在一些实施例中,动作1410还包括生成将组件与数字资产相关联的数字资产清单。此外,数据库能够包括数字资产的一个或多个先前的数字资产清单,其中每个先前的数字资产清单对应于数字资产的先前版本,并且其中与数字资产的先前版本对应的一个或多个组件被维持在云存储设备230上。
方法1400还包括生成数字资产102的打包文件100的动作1420。具体地,动作1420能够涉及在客户端设备202上生成数字资产102的打包文件100,其包括打包文件100内的组件104中的每个组件的副本。在一个或多个实施例中,动作1420还包括在生成数字资产102的打包文件100之前使数字资产102的组件104和云存储设备230上的数字资产清单同步。在一些实施例中,生成数字资产的打包文件包括将数字资产的组件中的每个压缩成打包文件。
如图14所示,方法1400还包括生成更新的数字资产映射的动作1430。具体地,动作1430能够涉及生成更新的数字资产映射以引用打包文件100内的数字资产102的组件104。在一些实施例中,动作1430包括将所生成的打包文件内的数字资产的更新的映射进行关联。附加地和/或备选地,动作1430涉及在生成的打包文件内包括其他/附加的元数据。
方法1400还能够包括许多附加的动作。在一些实施例中,方法1400还包括移除作为被存储为跨数据库214分布的独立文件的组件216的动作。具体地,该动作能够涉及在更新数字资产映射之后移除被存储为跨数据库214(和/或客户端设备202)分布的独立文件的组件216。在一些实施例中,该动作包括删除也被包括在打包文件中的组件数据库内的重复组件。
在一个或多个实施例中,方法1400包括以下动作:检测对数字资产的组件的修改;响应于检测到对组件的修改,在数据库中存储包括检测到的对组件的修改的组件的更新的副本;修改数字资产的打包文件以包括组件的更新的副本;并在修改打包文件时从数据库中移除组件的更新的副本。该方法还能够包括以下动作:在数字资产清单内利用将组件的更新的副本与数字资产相关联的标识符来替换将组件与数字资产相关联的标识符;以及在修改打包文件时更新修改的数字资产映射以反映被存储为修改的打包文件的一部分的组件的更新的副本。
在一些实施例中,方法1400包括基于从云存储设备接收到组件的更新的副本来检测对数字资产的组件的修改的动作。另外,方法1400包括以下动作:在修改数字资产的打包文件之前将组件的更新的副本与云存储设备同步而不同步数字资产的其他未修改的组件,并且在执行同步之后从数据库中移除组件的更新的副本。
在各种实施例中,修改数字资产的打包文件以包括组件的更新的副本的动作还涉及生成数字资产的附加的打包文件,其包括代替组件的组件的更新的副本,以及从客户端设备中移除打包文件。在备选实施例中,上述动作还涉及将组件的更新的副本的压缩副本附加到打包文件以创建修改的打包文件并在创建修改的打包文件时从客户端设备移除打包文件,包括从客户端设备移除组件。
在一个或多个实施例中,方法1400包括基于冗余阈值被超出来确定生成附加的打包文件的动作。例如,当由于将一个或多个修改的组件附加到打包文件而导致打包文件包括阈值量(例如,数目)的过期组件时,冗余阈值被超出。在一些实施例中,阈值量是过期组件与当前组件的数据大小比率或数目比率。
在各种实施例中,方法1400包括监视位于客户端设备的受监视文件目录中的数字资产的动作。在这些动作中,受监视文件目录内的数字资产中的每个都被注册到数据库。此外,受监视文件目录内的数字资产中的每个都与云存储设备同步。
图15图示了用于生成修改的打包文件的方法1500的示例流程图。在一个或多个实施例中,方法1500被实现在一个或多个计算设备(诸如客户端设备和/或服务器设备)上。例如,方法1500被实现在客户端设备202上,客户端设备202具有存储清单218的数据库214,清单218标识组成数字资产102的组件104。具体地,数字资产102的组件104中的每个组件被存储在打包文件100中。此外,每个组件在数字资产内具有能修改的预定义边界,而不影响数字资产的其他组件。
如所示的,方法1500包括检测对组件的修改的动作1510。具体地,动作1510能够包括检测对数字资产102的组件的修改。在一个或多个实施例中,动作1510包括在位于客户端设备202上的应用226处检测对数字资产的组件的修改202,其中应用将数字资产的打包文件显示为整体文件。在各种实施例中,动作1510包括从应用接收指示数字资产的一个或多个组件已经被修改的进程间通信(IPC)。
方法1500还包括创建组件的更新的副本的动作1520。具体地,动作1520可以涉及响应于检测到对组件的修改而在数据库214中创建包括检测到的对组件的修改的组件的更新的副本。在一些实施例中,动作1520包括在创建组件的更新的副本时将组件的更新的副本发送到云存储设备。
此外,方法1500包括利用组件的更新的副本来替换组件的动作1530。具体地,动作1530能够涉及在清单中利用将组件的更新的副本与数字资产相关联的标识符来替换将组件与数字资产相关联的标识符。在一些实施例中,替换标识符还包括修改与组件的更新的副本相关联的映射。
另外,方法1500包括生成修改的打包文件的动作1540。具体地,动作1540能够涉及生成包括组件的更新的副本的数字资产102的修改的打包文件。在一个或多个实施例中,动作1540涉及利用新生成的打包文件来替换较旧的打包文件。在一些实施例中,动作1540涉及将组件的更新的副本附加到打包文件。
方法1500还能够包括许多附加的动作。在一个或多个实施例中,方法1500还包括移除组件的更新的副本的动作。具体地,该动作能够涉及在生成修改的打包文件时从数据库214中移除组件的更新的副本。在一个或多个实施例中,该动作涉及在生成修改的打包文件之前,同步数字资产的组件的更新的副本和云存储设备上的修改的清单。
在一些实施例中,方法1500还包括以下动作:基于第一应用访问数字资产的打包文件来在第一应用内将数字资产显示为整体文件;向第一应用指示数字资产已经被第二应用修改,这导致第一应用访问修改的打包文件;以及基于第一应用访问修改的打包文件来更新第一应用内的显示以显示修改的数字资产。此外,显示器被自动更新,而无需用户交互。
如本文中使用的术语“数字环境”通常是指例如被实现为独立应用(例如,在计算设备上运行的个人计算机或移动应用)、应用的元件、应用的插件、库函数或函数、服务器设备、和/或云计算系统的环境。数字介质环境允许数字资产同步系统执行计算设备之间和跨计算设备的数字资产管理和同步。
本公开内容的实施例可以包括或利用包括计算机硬件的专用计算机或通用计算机,计算机硬件例如一个或多个处理器和系统存储器,如下面附加详细地讨论的。本公开内容的范围内的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理介质和其他计算机可读介质。具体地,本文中描述的过程中的一个或多个可以至少部分地被实施为被实现在非暂态计算机可读介质并可由一个或多个计算设备(例如,本文中描述的介质内容访问设备中的任何)执行的指令。总体上,处理器(例如,微处理器)从非暂态计算机可读介质(例如,存储器等)接收指令并执行那些指令,由此执行一个或多个过程,包括本文中描述的过程中的一个或多个。
计算机可读介质能够是可由通用计算机系统或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非暂态计算机可读存储介质(设备)。承载计算机可执行指令的计算机可读介质是是传输介质。因此,通过举例而非限制性的方式,本公开内容的实施例能够包括至少两种截然不同的种类的计算机可读介质:非暂态计算机可读存储介质(设备)和传输介质。
非暂态计算机可读存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器、闪速存储器、相位变化存储器、其他类型的存储器、其他光盘存储装置、磁盘存储装置或其他磁性存储设备、或用于存储以计算机可执行指令或数据结构的形式的期望程序代码单元并且可由通用计算机或专用计算机访问的任何其他介质。
计算机可执行指令包括例如当由处理器运行时使通用计算机、专用计算机、或用于执行特定功能或功能组的专用处理设备的指令和数据。在一些实施例中,通用计算机运行计算机可执行指令以将通用计算机转变成实现本公开内容的元件的专用计算机。计算机可执行指令可以例如为二进制、诸如汇编语言的中间格式指令或甚至源代码。尽管已经以对结构特征和/或方法特定的语言描述了本主题,但是应理解在权利要求中限定的主题不必限于以上说明书的所描述的特征或动作。相反,所描述的特征和动作被公开为实施权利要求的示例形式。
图16图示了可以被配置为执行以上描述的过程中的一个或多个的示例性计算设备1600的框图。将认识到,一个或多个计算设备,例如计算设备1600可以表示以上描述的客户端设备和服务器设备。在一个或多个实施例中,计算设备1600可以为移动设备(例如,移动电话、智能电话、PDA、平板电脑、膝上型计算机、相机、跟踪器、手表、可穿戴设备,等等)。在一些实施例中,计算设备1600可以为非移动设备(例如,台式计算机或另一类型的客户端设备)。另外,计算设备1600可以为包括基于云的处理器和存储能力的服务器设备。
如图16所示,计算设备1600能够包括一个或多个处理器1602、存储器1604、存储装置1606、输入/输出(“I/O”)接口1608以及通信接口1610,通信接口610可以借助于通信基础设施(例如,总线1612)通信耦合。尽管计算设备1600被示出在图16中,但是图16中图示的组件不旨在为限制性的。可以在其他实施例中使用附加的或备选的组件。另外,在一些实施例中,计算设备1600包括比图16中示出的组件更少的组件。现在将以附加的细节描述图16中示出的计算设备1600的组件。
在具体实施例中,(一个或多个)处理器1602包括用于执行指令的硬件,指令例如构成计算机程序的那些指令。作为示例并且不是通过限制的方式,为了运行指令,(一个或多个)处理器1602可以从内部寄存器、内部高速缓存、存储器1604、或存储装置1606取回(或取得)指令并对它们进行译码和运行。
计算设备1600包括存储器1604,存储器1604被耦合到(一个或多个)处理器1602。存储器1604可以用于存储数据、元数据和用于由(一个或多个)处理器运行的程序。存储器1604可以包括以下中的一个或多个:易失性存储器和非易失性存储器,诸如随机访问存储器(“RAM”)、只读存储器(“ROM”)、固态盘(“SSD”)、闪存、相位变化存储器(“PCM”)、或其他类型的数据存储整整。存储器1604可以为内部存储器或分布式存储器。
计算设备1600包括存储装置1606,存储装置1606包括用于存储数据或指令的存储。作为示例并且不是通过限制的方式,存储装置1606能够包括以上描述的非暂态存储介质。存储装置1606可以包括硬盘驱动器(HDD)、闪存存储器、通用串行总线(USB)驱动器或这些或其他存储设备的组合。
如所示的,计算设备1600包括一个或多个I/O接口1608,其被提供以允许用户将输入(例如用户笔画)提供到计算设备1600,从计算设备1600接收输出,以及将数据传输到计算设备1600和从计算设备1600传输数据。这些I/O接口1608可以包括鼠标、键盘或小键盘、触摸屏、相机、光学扫描器、网络接口、调制解调器、其他已知的I/O设备或这样的I/O接口1608的组合。触摸屏可以利用触笔或手指来激活。
I/O接口1608可以包括用于将输出呈现给用户的一个或多个设备,包括但不限于图形引擎、显示器(例如显示屏)、一个或多个输出驱动器(例如显示驱动器)、一个或多个音频扬声器、以及一个或多个音频驱动器。在一些实施例中,I/O接口1608被配置为将图形数据提供到显示器以用于呈现给用户。图形数据可以表示一个或多个图形用户接口和/或如可以用作特定实现方式的任何其他图形内容。
计算设备1600还能够包括通信接口1610。通信接口1610能够包括硬件、软件、或两者。通信接口1610提供一个或多个接口以用于在计算设备与一个或多个其他计算设备或一个或多个网络之间的通信(例如,基于分组的通信)。作为示例并且不是通过限制的方式,通信接口1610可以包括用于与以太网或其他基于线缆的网络或无线NIC(WNIC)进行通信的网络接口控制器(NIC)或网络适配器或者用于与诸如WI-FI的无线网络进行通信的无线适配器。计算设备1600还能够包括总线1612。总线1612能够包括将计算设备1600的组件耦合到彼此的硬件、软件、或两者。
在前面的说明书中,已经参考本发明的具体示例性实施例描述了本公开内容。参考本文中讨论的细节来描述本发明的各种实施例和方面,并且附图图示各种实施例。以上的说明书和附图对本发明是说明性的并且不应被解释为限制本发明。描述了许多具体细节以提供对本发明的各种实施例的透彻理解。
可以在不脱离本发明的精神或必要特性的情况下,以其他具体形式来实现本发明。所描述的实施例应在所有方面仅仅被认为是说明性的而非限制性的。例如,本文中描述的方法可以以更少或更多的步骤/动作来执行或者步骤/动作可以以不同的顺序来执行。附加地,本文中描述的步骤/动作可以彼此并行地或与相同的或相似的步骤/动作的不同实例并行地来重复或执行。本发明的范围因此由所附的权利要求来指示,而非由前述描述指示。在权利要求的等价性的意义和范围内出现的所有改变应被包含在其范围内。

Claims (20)

1.在用于执行计算设备与云存储介质之间的数字资产管理的数字介质环境中,一种用于在所述计算设备上提供同步的数字资产的计算机实现的方法,所述方法包括:
在客户端设备上维持具有数字资产映射的数据库,所述数字资产映射指示组成数字资产的组件被存储在所述数据库内的何处,其中所述组件被存储为跨所述数据库分布的独立文件;
在所述客户端设备上生成所述数字资产的打包文件,所述打包文件包括所述数字资产的所述组件中的每个组件的副本;以及
生成更新的数字资产映射以指示所述数字资产的所述组件被存储在所述打包文件内。
2.根据权利要求1所述的方法,还包括:
生成将所述组件与所述数字资产相关联的数字资产清单;
在生成所述数字资产的所述打包文件之前,在云存储设备上同步所述数字资产的所述组件以及所述数字资产清单;以及
在更新所述数字资产映射之后,从所述数据库移除被存储为跨所述数据库分布的独立文件的所述组件。
3.根据权利要求2所述的方法,还包括:
检测对所述数字资产的组件的修改;
响应于检测到对所述组件的所述修改,在所述数据库中存储包括检测到的对所述组件的所述修改的所述组件的更新的副本;
修改所述数字资产的所述打包文件以包括所述组件的所述更新的副本;以及
在修改所述打包文件时,从所述数据库移除所述组件的所述更新的副本。
4.根据权利要求3所述的方法,还包括:
在存储所述组件的所述更新的副本之后,在所述数字资产清单内利用将所述组件的所述更新的副本与所述数字资产相关联的标识符来替换将所述组件与所述数字资产相关联的标识符;以及
在修改所述打包文件时,更新经修改的所述数字资产映射以反映被存储为经修改的所述打包文件的一部分的所述组件的所述更新的副本。
5.根据权利要求3所述的方法,还包括在位于所述客户端设备上的应用处检测对所述数字资产的所述组件的所述修改,其中所述应用将所述数字资产的所述打包文件显示为整体文件。
6.根据权利要求5所述的方法,还包括从所述应用接收指示所述数字资产的一个或多个组件已经被修改的进程间通信。
7.根据权利要求3所述的方法,还包括:基于从所述云存储设备接收到所述组件的所述更新的副本,检测对所述数字资产的所述组件的所述修改。
8.根据权利要求3所述的方法,还包括:
在修改所述数字资产的所述打包文件之前,使所述组件的所述更新的副本与所述云存储设备同步,而不同步所述数字资产的其他未修改的组件;以及
从所述数据库移除所述组件的所述更新的副本。
9.根据权利要求3所述的方法,其中生成所述数字资产的所述打包文件包括:将所述数字资产的所述组件中的每个组件压缩成所述打包文件。
10.根据权利要求9所述的方法,其中修改所述数字资产的所述打包文件以包括所述组件的所述更新的副本包括:
生成所述数字资产的附加打包文件,所述附加打包文件包括代替所述组件的所述组件的所述更新的副本;以及
从所述客户端设备移除所述打包文件。
11.根据权利要求9所述的方法,其中修改所述数字资产的所述打包文件以包括所述组件的所述更新的副本包括:
将所述组件的所述更新的副本的压缩副本附加到所述打包文件以创建经修改的所述打包文件;以及
在创建经修改的所述打包文件时,从所述客户端设备移除所述打包文件,包括从所述客户端设备移除所述组件。
12.根据权利要求11所述的方法,还包括:基于冗余阈值被超出来确定生成附加的打包文件,其中当由于将一个或多个经修改的组件附加到所述打包文件而导致所述打包文件包括阈值数量的过期组件时,所述冗余阈值被超出。
13.根据权利要求12所述的方法,其中所述阈值量是过期组件与当前组件的数据大小比率或数目比率。
14.根据权利要求2所述的方法,还包括:监视位于所述客户端设备的受监视文件目录中的数字资产,其中所述受监视文件目录内的所述数字资产中的每个数字资产被注册到所述数据库并且与所述云存储设备同步。
15.根据权利要求2所述的方法,其中所述数据库包含所述数字资产的一个或多个先前数字资产清单,其中每个先前数字资产清单对应于所述数字资产的先前版本,并且其中与所述数字资产的先前版本相对应的一个或多个组件被维持在所述云存储设备上。
16.一种用于提供数字资产的有效同步的系统,所述系统包括:
一个或多个计算机可读存储器,其包括具有清单的数据库,所述清单标识组成数字资产的组件,其中所述数字资产的所述组件中的每个组件被存储在打包文件中,并且其中每个组件在所述数字资产内具有可修改而不影响所述数字资产的其他组件的预定义边界;以及
计算设备,其上存储有指令,所述指令在由所述计算设备运行时使得所述系统:
检测对所述数字资产的组件的修改;
响应于检测到对所述组件的所述修改,在所述数据库中创建包括检测到的对所述组件的所述修改的所述组件的更新的副本;
在所述清单中,利用将所述组件的所述更新的副本与所述数字资产相关联的标识符来替换将所述组件与所述数字资产相关联的标识符;以及
生成包括所述组件的所述更新的副本的所述数字资产的经修改的打包文件。
17.根据权利要求16所述的系统,还包括其上的指令,所述指令在由所述计算设备运行时,使得所述系统:
基于第一应用访问所述数字资产的所述打包文件,将所述数字资产显示为所述第一应用内的整体文件;
向所述第一应用指示所述数字资产已经由第二应用修改,使得所述第一应用访问经修改的所述打包文件;以及
更新所述第一应用内的所述显示,以基于所述第一应用访问经修改的所述打包文件来显示经修改的数字资产,其中所述显示在没有用户交互的情况下被自动更新。
18.根据权利要求16所述的系统,还包括其上的指令,所述指令在由所述计算设备运行时使得所述系统:在生成经修改的所述打包文件时从所述数据库移除所述组件的所述更新的副本。
19.在用于执行在计算设备与云存储介质之间的数字资产管理的数字介质环境中,一种用于在所述计算设备上提供所述数字资产的计算机实现的方法,所述方法包括:
从云存储系统接收数字资产的组件的子集;
在客户端设备上执行用于在组件数据库与打包文件之间维持组件的所述子集的存储的步骤,其中所述组件数据库包括被存储为跨所述客户端设备的独立文件的组件;以及
基于所述打包文件,在所述客户端设备的文件目录内将所述数字资产作为单个整体文件提供给用户。
20.根据权利要求19所述的方法,其中执行用于维持组件的所述子集的存储的所述步骤包括:在生成所述打包文件之后,从所述客户端设备移除来自所述组件数据库的组件的所述子集。
CN201810369218.2A 2017-06-22 2018-04-23 用于数字资产同步的方法、系统和介质 Active CN109117425B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/630,767 US11635908B2 (en) 2017-06-22 2017-06-22 Managing digital assets stored as components and packaged files
US15/630,767 2017-06-22

Publications (2)

Publication Number Publication Date
CN109117425A true CN109117425A (zh) 2019-01-01
CN109117425B CN109117425B (zh) 2024-05-10

Family

ID=

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026437A (zh) * 2019-12-26 2020-04-17 珠海金山网络游戏科技有限公司 一种基于Unity的资源包处理方法及装置
CN112394981A (zh) * 2020-12-03 2021-02-23 政采云有限公司 一种前端组件处理方法、装置、设备及介质
CN112732314A (zh) * 2020-12-30 2021-04-30 北京一亩田新农网络科技有限公司 基于android插件化差分打包方法、装置、电子设备及计算机可读介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246387A1 (en) * 2004-04-07 2005-11-03 Mcchrystal Peter S Method and apparatus for managing and manipulating digital files at the file component level
CN101304360A (zh) * 2007-05-08 2008-11-12 艾岩 一种虚拟化用户数字终端的系统与方法
US20110161723A1 (en) * 2009-12-28 2011-06-30 Riverbed Technology, Inc. Disaster recovery using local and cloud spanning deduplicated storage system
US20120236201A1 (en) * 2011-01-27 2012-09-20 In The Telling, Inc. Digital asset management, authoring, and presentation techniques
US20130226876A1 (en) * 2012-02-29 2013-08-29 Construcs, Inc. Synchronizing local clients with a cloud-based data storage system
CN104050216A (zh) * 2013-03-13 2014-09-17 梦工厂动画公司 用于定制化资源分配的文件系统管理器
US20150186431A1 (en) * 2006-11-14 2015-07-02 Accenture Global Services Limited Digital asset management data model
CN104885076A (zh) * 2012-05-10 2015-09-02 以太存储股份有限公司 分布式存储的系统和方法
US20160253352A1 (en) * 2015-02-27 2016-09-01 Barracuda Networks, Inc. Method and apparatus for file synchronization and sharing with cloud storage
CN106686411A (zh) * 2015-11-10 2017-05-17 中兴通讯股份有限公司 流媒体频道录制方法、装置及回看方法、装置及服务器

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246387A1 (en) * 2004-04-07 2005-11-03 Mcchrystal Peter S Method and apparatus for managing and manipulating digital files at the file component level
US20150186431A1 (en) * 2006-11-14 2015-07-02 Accenture Global Services Limited Digital asset management data model
CN101304360A (zh) * 2007-05-08 2008-11-12 艾岩 一种虚拟化用户数字终端的系统与方法
US20110161723A1 (en) * 2009-12-28 2011-06-30 Riverbed Technology, Inc. Disaster recovery using local and cloud spanning deduplicated storage system
US20120236201A1 (en) * 2011-01-27 2012-09-20 In The Telling, Inc. Digital asset management, authoring, and presentation techniques
US20130226876A1 (en) * 2012-02-29 2013-08-29 Construcs, Inc. Synchronizing local clients with a cloud-based data storage system
CN104885076A (zh) * 2012-05-10 2015-09-02 以太存储股份有限公司 分布式存储的系统和方法
CN104050216A (zh) * 2013-03-13 2014-09-17 梦工厂动画公司 用于定制化资源分配的文件系统管理器
US20160253352A1 (en) * 2015-02-27 2016-09-01 Barracuda Networks, Inc. Method and apparatus for file synchronization and sharing with cloud storage
CN106686411A (zh) * 2015-11-10 2017-05-17 中兴通讯股份有限公司 流媒体频道录制方法、装置及回看方法、装置及服务器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026437A (zh) * 2019-12-26 2020-04-17 珠海金山网络游戏科技有限公司 一种基于Unity的资源包处理方法及装置
CN112394981A (zh) * 2020-12-03 2021-02-23 政采云有限公司 一种前端组件处理方法、装置、设备及介质
CN112732314A (zh) * 2020-12-30 2021-04-30 北京一亩田新农网络科技有限公司 基于android插件化差分打包方法、装置、电子设备及计算机可读介质

Also Published As

Publication number Publication date
US11635908B2 (en) 2023-04-25
GB201806362D0 (en) 2018-06-06
DE102018002899A1 (de) 2018-12-27
US20180373434A1 (en) 2018-12-27
AU2018202512A1 (en) 2019-01-17
GB2564923B (en) 2021-01-13
GB2564923A (en) 2019-01-30
AU2018202512B2 (en) 2022-01-27
US20230244404A1 (en) 2023-08-03

Similar Documents

Publication Publication Date Title
US20230244404A1 (en) Managing digital assets stored as components and packaged files
AU2018395858B2 (en) Violation resolution in client synchronization
US10360536B2 (en) Implementing a consistent ordering of operations in collaborative editing of shared content items
JP6171104B2 (ja) モバイルデバイス上での、クラウドベースのコンテンツマネージメントシステムへのアクセスの提供
JP6243038B2 (ja) 複数のデバイス及び複数のユーザにわたるサーバサイドのストレージと断続的なネットワーク接続中のローカルの仮想的な状態を維持するシステム及び方法
JP6774499B2 (ja) オフラインでのハイブリッドアプリケーションへのアクセスの提供
US11829853B2 (en) Systems and methods for tracking and representing data science model runs
EP3595243B1 (en) Email integration with shared folder based integrated workspaces
CN108345482A (zh) 动态页面自定义编辑方法、装置、电子设备及存储介质
WO2018125358A1 (en) Managing tasks in a content management system
WO2018063470A1 (en) Document differences analysis and presentation
US20240031316A1 (en) Managing message attachments
WO2018125395A1 (en) Managing projects in a content management system
CN109118358A (zh) 数字资产的基于分量的同步
US20220164743A1 (en) Managing projects in a content management system
CN110069454A (zh) 一种网络文件管理方法、终端及计算机可读存储介质
US10747643B2 (en) System for debugging a client synchronization service
US10970193B2 (en) Debugging a client synchronization service
US10860184B2 (en) Sharing groups for capturing digital media
US20140337284A1 (en) Synchronizing folders using a shadow folder hierarchy
JP2006031608A (ja) 計算機、ストレージシステム、計算機が行うファイル管理方法、およびプログラム
US8965940B2 (en) Imitation of file embedding in a document
US11593098B2 (en) Synchronization of source code under development in multiple concurrent instances of an integrated development environment
CN114840232A (zh) 升级应用的方法及装置
US10452683B2 (en) Selectively synchronizing data on computing devices based on selective sync templates

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant