专利名称::虚拟内容储存库的系统和方法
技术领域:
:本发明公开涉及内容管理,具体涉及使内容版本化(versioning)并且提供可限定的内容生命周期。
背景技术:
:内容储存库管理和提供对大容量数据存储的访问,所述大量数据存储例如报纸档案库、广告、详细目录(inventory)、图像集合等。内容储存库可以是诸如门户那样的网络应用的关键组件,其必须响应于用户的交互而迅速地提供不同类型的内容。然而,当试图整合一个以上的卖主的内容储存库时可能出现困难。每个内容储存库可能具有其自己的专有的应用程序接口和内容服务(例如,用于搜索和操纵内容、版本化、生命周期和数据格式的约定)。而且,每次将储存库添加至应用时,该应用软件必须被修改以便适应这些差异。所需要的是一种一致的系统和方法,用于与完全不同的储存库交互并且用于对所有储存库(包括那些缺少这种服务的储存库)提供一套统一的内容服务。图1是本发明的各种实施例中的功能性系统层的示例性图示。图2是本发明的各种实施例中的生命周期的示例性图示。图3是在各种实施例中调用生命周期的外部情景(scenario)的示例性图示。图4是本发明的各种实施例中的示例性用户接口。图5是在本发明的各种实施例中能被用来将储存库连接至VCR的对象/接口的示例性图示。图6是在本发明的各种实施例中能被用作服务模型的对象/接口的示例性图示。图7是根据本发明的各种实施例当禁止VCR内容服务时的内容创建的示例性图示。图8是根据本发明的各种实施例当使能VCR内容服务时的内容创建的示例性图示。图9是根据本发明的各种实施例当使能内容服务时修改VCR中的节点的示例性图示。图10是根据本发明的各种实施例当使能内容服务时在VCR中公布的节点的示例性图示。图11是根据本发明的各种实施例当使能内容服务时隐退(retire)VCR中的节点的示例性图示。具体实施例方式在附图部分的图中作为示例而不是作为限制图示本发明的方面,在附图中相似的标记表示类似的元素。应当注意在此7>开中对"一(an)"、"一个(one)"和"各种"实施例的引用未必是针对相同的实施例,并且这种引用意p未着至少一个。在下面的描述中,陈述许多特定细节以便提供对本发明的全面描述。然而,本领域的技术人员将很清楚在没有这些特定细节的情况下也可以使本发明付诸实践。在其它实例中,没有详细描述公知特征以便不使本发明难以理解。图1.是根据本发明的各种实施例的功能性系统层的示例性图示。尽管此图将组件描绘成在逻辑上是分离的,但是这样的描绘只是出于说明的目的。本领域的技术人员将很清楚此图中所绘制的组件可被任意组合或划分成分立的软件、固件和/或硬件。而且,本领域的技术人员也将很清楚这样的组件,无论它们是如何组合或划分的,都能在相同的计算设备上执行,或者能够分布在通过一个或多个网络、或其它适合的通信手段连接的不同计算设备中。内容储存库112表示可搜索的数据存储。这样的系统能够将结构化内容和非结构化内容(例如,数字扫描的纸质文档、可扩展标记语言、便携式文档格式、超文本标记语言、电子邮件、图像、视频和音频流、原始二进制数据等)关联进可搜索的语料库(corpus)。内容储存库能够耦合至内容管理系统,或者与内容管理系统整合在一起。内容管理系统能够提供内容生命周期管理、版本化、内容查看和批准、自动内容分类、事件驱动的内容处理、进程跟踪和到其它系统的内容传送。举例来说,如果用户在网络门户上填写一个货凉欠申请,那么该门户能够将该申请转发给内容储存库,内容储存库进而联系银行系统、接收货款批准的通知、在该储存库中更新该货款申请并且通过以适合该网络门户的格式呈现该批准信息来通知该用户。一虚拟或联合的内容储存库(以下称为"VCR,,)是一个或多个单独的内容储存库的逻辑表示,使得它们从应用层120的立场作为单个内容储存库出现和作为。VCR也能够将内容服务添加到自身缺少所述内容服务的储存库中。在各种实施例中并且作为说明,这能够通过使用API(应用程序接口)100和SPI(服务提供者接口)102而部分地实现。API描述所述应用层中的实体能够如何与某些程序逻辑或功能接口。应用层能够包括使用所述API的应用及其细分,诸如进程、线程、小服务程序、小门户服务程序(portlet)、对象、库和其它适合的应用组件。SPI描述服务提供者(例如,内容储存库、内容管理系统)能够如何被整合到某种系统中。所述SPI将与储存库的直接交互从API隔离。在各种实施例中,这能够在运行时实现,在运行时期间API库动态地链接至SPI库或者加载SPI库。在另一实施例中,SPI能够作为服务器进程的一部分,使得API和SPI能够通过网络通信。SPI能够使用任何数目的手段与所述储存库通信,所述手段包括但不限于共享的存储器、远程过程调用和/或通过一个或多个中间服务器进程。API和SPI能够被规定为类/接口、数据结构和/或方法/功能的集合,其共同工作以便提供一编程手段,通过其能够访问和利用(多个)VCR服务。作为说明,能够以面向对象的编程语言来详细描述API和SPI,所述面向对象的编禾呈i吾言例如Java丁M(可,人California的MountainView的SimMicrosystems有限公司得到)和C弁(可从Washington的Redmond的Microsoft公司得到)。API和SPI能够以几种方式显露(expose),包括但不限于"l争态库、动态l连接库、分布式对象、服务器、类/接口实例和其它适合的手段。在各种实施例中,API向应用层提供所有储存库的统一视图,使得从该应用层启动的导航、CRUD操作(创建、读取、更新、删除)、版本化、生命周期和搜索操作像所述储存库是一个储存库那样对它们进行操作。实现SPI的储存库能够"插入,,VCR。SPI包括在储存库等级上支持API功能的一套接口和服务。API和SPI共享内容模型,所述内容模型将所有储存库的组合内容表示为分层的节点名称空间(namespace)。假设一节点N、在层次上低于N的节点被称为N的子,而在层次上高于N的节点被称为N的父。该层次的最顶部的级别被称为联合根。对等级的深度没有限制。在各种实施例中,储存库为联合根的子。每个储存库自身能够具有子。作为说明,内容挖掘功能(miningfacility)104、进程/线程106、标记库108、集成开发环境(IDE)llO和其它库118都可以使用API以便与VCR交互。IDE可以为用户提供交互地建立生命周期和/或内容视图的能力。内容挖掘功能可以包括基于参数从VCR中自动提取内容的服务。JavaServerPages标记库使门户能够与VCR交互并且使其内容出现在网页上。(可以从SunMicrosystems有卩艮公司得到JavaServerPagesTM)。此外,本领域的技术人员将很清楚许多其它类型的应用和软件组件使用API并且同样完全落在本公开的范围和精神内。在各种实施例中,API可以包括改进与VCR的交互性能的优化。可以使用一个或多个高速緩冲存储器116来緩冲搜索结果和/或最近访问的节点。在各种实施例中,高速緩冲存储器可以包括节点高速緩冲存储器和二进制高速緩冲存储器。节点高速緩冲存储器可以被用于提供对最近访问的节点的快速访问,而二进制高速缓冲存储器可以被用来提供对与节点高速緩冲存储器中的每个节点相关联的内容/数据的快速访问。API也可以提供使应用、工具和库能够配置高速緩冲存储器和VCR的配置功能114。在各种实施例中,此功能可以作为Java扩展管理(JavaManagementExtension)(可以,人SunMicrosystems有限公司得到)而实现。在各种实施例中,在API和SPI之间共享用于表示层次信息的模型、内容和数据类型的模型。在此模型中,节点可以表示层次信息、内容或冲莫式信息。在与分层文件系统中文件子目录类似的名称空间中,层次节点可以用作与其它节点的容器。模式节点表示预定义的数据类型。内容节点表示内容/数据。节点可以具有由它们的属性所定义的形状。属性关联名称、数据类型和可选的值(一个适合于该类型的值)。在特定实施例中,内容节点的属性包含值。作为说明,类型可以是表l中所描述的任何类型。本领域的技术人员将很清楚许多类型是可能的并且完全落在本公开的范围和精神内。<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>表l:各种实施例中的示例性属性类型在各种实施例中,属性也可以指示其是否是必须的、其是否是只读的、是是否提供了默认值,以及其是否规定了属性选择。属性选择指示属性是单一非受限值、单一受限值、多重非受限值、还是多重受限值。单一属性只具有一个值而多重属性可以具有一个以上的值。如果属性是受限的,那么其(多个)值从有限的一组值中选择。但是如果属性是非受限的,可以向其提供任何(多个)值。属性也可以被指定为主属性。作为说明,节点的主属性可以被认为是其默认内容。例如,如果节点包含了保存图像的二进制属性,那么其也可以包含表示该图像的缩略图的次二进制属性。如果该缩略图是主属性,那么诸如浏览器的软件应用可以默认地将其显示。一个或多个属性类型的命名集合是模式(schema)。模式节点是模式的位置标志符(placeholder)。在各种实施例中,模式可以被用来规定节点的属性。作为说明,出于讨论的目的可以将具有三个属性(姓名、地址、出生日期(Mzme、、Da/eq/SzW/z))的人(尸e^o")才莫式4葛述3口下SchemaPerson={〈Name^Name,Type=Text>,<Name=Address,Type=Address>,<Name=Dateoffiirth,Type=Date>}各种实施例允许基于模式来定义节点。作为说明,可以将与所述模式人(尸erw")相同的属性赋予内容节点J0/2w:ContentNodeJohnisaPerson(内容节点John是人)在此情况下,节点/o/zn将具有下面的属性姓名、地址、出生日期。作为选择,节点可以使用一个或多个模式来定义各个属性。有时这称为嵌套类型。在下面的说明中,Jo/z"被定义为具有本身包含属性姓名、地址、出生日期的信息(/"/o)属性。此外,Jo/w也具有客户身份(CwWomeW力属性ContentNodeJohn-{<Name=Info,Type=Person>,<Name=CustomerId,Type=Number>}施例中,模式可以从至少一个其它模式继承属性。模式继承在深度上可以不受限。就是说,模式A可以从模式B继承,模式B本身可以从模式C继承,等等。如果数个模式包含重复的属性,那么可以配置"基(base),,模式,其它模式可以从所述基模式继承。例如,雇员(Em;/qyee)模式可以继承包含属性姓名、地址、出生日期的人^t式,雇员模式添加其自身属性(即,雇员身份、雇用曰期和薪金(五附//o,eiD、D她o///z>e(Sa/a7)):SchemaEmployeeinheritsfromPerson={<Name=EmployeeID,Type=Number>,<Name=DateofHire,Type=Date>,<Name=Salary,Type=Number>}因此,如以上所定义的,雇员模式具有下列属性姓名、地址、出生日期、雇员身份、雇用日期和薪金。如果人模式使其自身从另一模式继承了属性,那么那些属性也将属于雇员。在各种实施例中,节点具有名称/标识符,并且可以使用在VCR名称空间中指定节点位置的路径来可编程地指定或寻址所述节点。作为说明,该路径可以指定从联合根('/,)到所讨论的节点('c,)的路径/a/b/c在此示例中,开始的'/,表示联合根,'a,表示该联合根下的储存库,'b,是'a,储存库中的层次节点,而'c,是所讨-沦的节点。该路径也可以标识关于节点的属性("propertyl"):/a/b/c.propertyl在这些实施例的方面中,如果系统可以基于上下文信息推断出节点的位置,那么出现在节点名称前的路径部分可以省略。在各种实施例中,在一个储存库或VCR中定义的模式可以从在相同的储存库、不同的储存库或VCR中定义的一个或多个模式继承。在这些实施例的某些方面中,如果被继承的模式所涉及的一个或多个储存库不支持继承,那么可以在VCR中由API自动定义继承模式。在一个实施例中,默认地在VCR中定义继承模式。作为说明,位于Avitech储存库中的雇员模式从位于BEA储存库中的模式层次节点下的户e^o"模式继承<formula>formulaseeoriginaldocumentpage11</formula>在各种实施例中,链接属性类型(见表l)允许内容重用和包括可以不在VCR的控制下的内容。作为说明,与链接属性相关联的值可以引用/指向下列中的任何一个VCR中的内容节点、关于VCR中的内容节点的个体属性、文件系统上的文件、URL(统一资源定位符)所标识的对象、或任何其它适合的标识符。在各种实施例中,当编辑具有链接属性类型的内容节点时,用户可以指定《连接目的地(例如,使用浏览器型用户接口)。在这些实施例的某些方面,如果链接引用已经移动的内容节点或内容节点属性,那么该系统可以自动解析(resolve)该链接以反映新位置。在各种实施例中,类型为查找(参见表i)的值可以拥有表达式,所述表达式可以被求值以便在VCR中搜索满足该表达式的(多个)内容节点的实例。满足该表达式的节点(如果有的话)可以被用于随后的处理。在各种实施例中,查找表达式可以包含一个或多个能够替换来自以下的表达式变量的表达式包含查找属性的内容节点、用户简档(profile)、请求或会话的范围内的任何事物。在各种实施例中,表达式可以包括数学、逻辑和布尔算子、功能/方法调用、宏、SQL(结构化查询语言)和任何其它适合的查询语言。在各种实施例中,表达式可以被预处理一次或多次以便执行变量替换、常量合并和/或宏扩展。本领域的技术人员将很清楚许多其它类型的表达式是可能的并且完全落在此公开的范围和精神之内。在各种实施例中,当编辑具有查找属性类型的内容节点时,用户可以通过用户接口编辑表达式,所述用户接口允许用户通过直接将其输入和/或通过选择其组成部分来构造表达式。此外,用户接口可以使用户预览表达式求值的结果。数据库映射属性类型(参见表l)允许从一个或多个数据库表(或其它数据库对象)挑选(cull)(即映射)信息并且通过节点属性来对其进行操纵。作为说明,公司可能具有诸如在一个或多个RDBMS(关系数据库管理系统)表中成行存储的新闻文章的那样"内容"。公司可能希望通过他们的门户实现来利用此"内容"。而且,它们可能希望像此表中的信息存在于VCR中那样来对其进行管理。一旦被实例化,作为数据库映射类型的内容节点属性象其内容在VCR中(而不是在数据库表中)那样作为。在一个实施例中,对该属性的所有API操作按同样方式作为,但最终对数据表中的信息进行操作。在各种实施例中,给定的数据库映射属性类型可以具有表达式(例如SQL),其当被求值时,解析为可由该系统通过一个或多个网络访问的数据库表中的行和列(或解析为任何种类的数据库对象)。数据库映射属性将能够使用固有的数据库表/对象或关于那些表/对象的数据库^L图。本领域的技术人员将理解本公开不限于任何特定类型的数据库或解析表达式。在某些实施例的方面中,可以自动创建映射至数据库表中的任何行的模式。该系统可以检查该表的数据结构并且用对应于来自表的列的数据库映射属性来预填充该模式。该表列名称可以被用作默认属性名称,同样每列的数据类型将确定每个对应属性的数据类型。该系统也可以在该模式中指示哪些属性对应于主键(primarykey)列。如果在新模式中将不使用来自表的特定列,可以由用户或进程将他们去映射(即,取消选定)。内容节点可以基于这样的模式,并且当将内容节点实例化时,其可以被自动绑定到数据库表中的行(或其它数据库对象)。在各种实施例中,用户可以通过浏览数据库表来交互地指定数据库对象。在各种实施例中,可以使用显示模板("模板")基于模式来显示内容。模板可以实现各种"视图"。作为说明,视图可以是"完整(full)"、"缩略,,和"列表",但是附力口"视图,,可以由终端用户来定义。完整视图可以是内容的最大的或者是整页视图。缩略视图将是非常小的视图,而列表视图可以当在页面(例如,产品目录搜索结果页面)上显示作为"列表"的多个内容节点时使用。在各种实施例中,模式和模板之间的关联可以是一对多的。模板可以被指定为模式的默认模板。在这些实施例的一些中,可以借助于集成开发环境(IDE)来指定模板。在各种实施例中并且作为说明,可以使用HTML(超文本标记语言)和JSP(JavaServerPages)来实现显示模板。作为进一步的说明,可以从网页通过接收内容节点的标识符作为自变量的JSP标记来访问这样的显示模板。给定内容节点,可以导出和呈现该节点的模式和相关联的默认显示模板。作为选择,JSP标记可以采用附加的自变量来指定除了默认之外的视图。在另一实施例中,可以基于内容节点的模式(例如,事先或在运行时动态地)自动生成显示模板。在其它实施例中,可以基于HTTP请求的内容自动确定视图(例如,完整、缩略、列表)。在各种实施例中,角色是一组动态的用户。作为说明,角色可以基于由其成员所共有的功能性职责。在这些实施例的方面中,角色可以由一个或多个成员标准(membershipcriteria)来定义。角色映射是这样的进程,即通过该进程确定用户是否满足给定角色的成员标准。出于讨论的目的,可以将角色描述如下Role=PMembers+[MembershipCriteria]其中,户Mem&ra是形成服从成员标准的此角色的潜在成员的池的(多个)用户、(多个)组和/或其它(多个)角色(如果有的话)的集合。对于将要成为角色的用户或进程,他们必须属于尸7kfew&"并且满足成员标准。成员标准可以包括一个或多个条件。作为说明,这样的条件可以包括但是不限于一个或多个(可能是嵌套的和混杂的)布尔、数学、函数、关系和/或逻辑表达式。作为说明,考虑下面的管理员(A/m/"Wrator)角色Administrator=Joe,Mary,SuperUser+CurrentTime>5:00pm该角色具有作为其潜在成员的两个用户C/oe和Mar力和属于名为超级用户OS,w仏er)的用户组的用户。成员标准包括需要当前时间在下午5:00之后的条件。因此,如果用户是Joe、^fa7或属于S,er^w组,并且当前时间在下午5:00之后,那么该用户为管理员角色的成员。在各种实施例中,角色可以与(多个)资源(Resource)相关联。作为说明,资源可以是任何系统和/或应用资产(例如,VCR节点和节点属性、VCR模式和模式属性、操作系统资源、虚拟机资源、J2EE应用资源和任何其它可以被某种软件/固件所使用或者作为某种软件/固件的一部分的实体)。一般来说,资源可以被布置在一个或多个层次中以便建立父/子关系(例如,VCR分层名称空间和模式继承层次)。在这些实施例的某些中,遵循角色的容纳模型(containmentmodel),使得子资源继承与它们的父相关联的角色。此外,子资源可以用它们自身的角色覆盖它们的父角色。在各种实施例中,成员标准可以至少部分地基于节点的属性。例如,这允许这样的角色,所述角色能够将关于用户/进程的信息比作VCR中的内容。在各种实施例中,可以使用圓点记法来可编程地访问节点属性」Wc/e.CVeator是文章04Wc/e)节点的创建者(Cwator)属性。作为说明,假设^r"c/e节点,其表示新闻文章并包括两个属性创建者和状态(Stofe)。系统可以自动将创建者属性设置为创建该文章的用户的姓名。炎',悉属性从公布生命周期(publicationlifecycle)的立场指示该文章的当前状态(例如,该文章是草稿(Draft)还是已经被批准公布)。在此示例中,定义两个角色(参见表2)。<table>tableseeoriginaldocumentpage14</column></row><table>表2:实施例中的示例性角色提交者和批准者角色与文章节点相关。根据此模式实例化的内容节点将继承这些角色。如果试图访问该文章的用户是文章的创建者并且文章的状态是草稿,那么该用户可以是提交者角色。同样,如果用户属于编辑者组并且文章的状态是已提交或已批准,那么该用户可以属于批准者角色。在各种实施例中,策略(policy)可以被用来确定策略的主体(Subject)(例如,(多个)用户、(多个)组和/或(多个)角色)可以使用给定资源的什么能力或特权(Privilege)。出于讨论的目的,可以将策略描述如下Policy=Resource+Privilege(s)+Subjects+[PolicyCriteria]策略映射是这样的进程,通过其对策略标准(如果有的话)求值以确定哪些主体被授予访问资源上的一个或多个特权。策略标准可以包括一个或多个条件。作为说明,这样的条件可以包括但是不限于一个或多个(可能是嵌套的或混杂的)布尔、数学、功能、关系和/或逻辑表达式。某些实施例的方面允许策略映射正好在提出对资源的访问决定之前发生。与角色类似,在这些实施例的某些中,遵循策略的容纳模型,使得子资源能够继承与它们的父相关联的策略。此外,子资源可以用它们自身的策略覆盖它们的父策略。在各种实施例中,关于节点的策略可以控制对与节点相关联的特权的访问。作为说明,给定下列策略Policy1=Printer504+Read/View+MarketingPolicy2=Printer504+All+Engineering销售(Marfe加g)角色可以读取/查看并浏览Printer504(打印机504)资源,而设计0^g/"eer&g)角色可以对其进行充分访问("全部(ALL)")。在表3中概括了这些特权。尸o/ZqW只允许销售角色中的用户查看Printer504的属性,而户o/z'qy2允许工程角色的用户查看并修改其属性,以便基于Printer504(假设它是模式)创建内容节点,以及删除该资源。<table>tableseeoriginaldocumentpage15</column></row><table>表3:各种实施例中的"Printer504"节点的示例性特权这些实施例中的某些的方面包括特权的隐含层次,其中如果策略授予了父特权,那么自动授予父特权的子特权。举例来说,特权可以4皮认为是Printer504节点的优势最小的特权。任何其它特权的添加将隐含地包括浏览。例如,如果下一步是读取/查看能力,那么读取/查看的选择将隐含地包括浏览特权。在各种实施例中,策略和角色的容纳模型被扩展至允许节点的属性继承节点上附带的策略和角色。关于属性的角色/策略也可以覆盖被继承的角色/策略。出于说明的目的,假设关于Printer504的电源0Powe。属性的下列策略Policy3=Printer504.Power+Update+Marketing在Policy3中,销售角色被授予了更新打印机资源Printer504的电源属性的权利(例如,控制开启还是关断该打印机)。默认地,根据隐含的特权层次也授予了读取/查看属性。(对于此属性没有浏览特权。)参见表4。作为选择,如果没有隐含的特权层次,那么电源属性将从其父Printer504继承销售角色的读取/查看特权。尽管对于电源属性和工程角色没有规定策略,但是可以从父节点继承符合工程角色的特权。在表4中总结了这些特权。<table>tableseeoriginaldocumentpage15</column></row><table>表4:"Printer504"节点中的"电源"属性的示例性特权在各种实施例中,可以特许基于模式实例化节点的能力。这可以被用来控制用户或进程可以创建哪种类型的内容。为了说明,假设下面的策略Policy4=Press—Release+Instantiate+Marketing,ManagerPo"c;^规定仅可以由作为销售和/或管理者角色的成员的用户/进程来实例化基于模式通迅稿(尸re^一ie/ewe)创建的节点。在这些实施例的某些的方面中,用户接口可以使用这些策略的知识来限制可用的用户选择(choice)(例如,用户应当只能看到并选择他们对其具有实例化(/mto油'ate)特权的模式)。在各种实施例中,策略可以被置于模式上。模式的实例(例如,内容节点)可以继承这些策略除非被更局部的策略覆盖。出于说明的目的,假设下面的策略Policy5=Press—Release+Read/View+EveryonePolicy6=Press—Release+All+Public—Relation<table>tableseeoriginaldocumentpage16</column></row><table>表5:"PressRelease"模式的示例性特权参照图5并且作为说明,假设内容节点实例是基于PressRelease模式创建的。默认地,其将具有与PressRelease模式相同的角色/策略。如果将一策略添加到节点以赋予角色"Editor"更新节点的特权,那么该结果是可以附加的。就是说,每个人和公共关系将保持他们的最初的特权。在各种实施例中,策略可以被置于模式中的属性上,包括属性选择。(属性选择是给定属性的预定的一组可允许的值。例如,"色彩"属性可能具有属性选择"红"、"绿"和"蓝")。模式的实例(例如在内容节点中),将继承这些属性策略除非被更局部的策略所覆盖。在各种实施例中,内容和模式节点可以遵从下面的生命周期。在这些实施例的某些方面中,生命周期可以表述节点可以通过的一组状态;作为状态转变的一部分而发生的或由于状态转变而发生的动作;和可以参加生命周期的动作者。作为说明,生命周期可以被用来模仿组织的内容批准进程。在各种实施例中,生命周期可以嵌套在生命周期中。这允许划分复杂的生命周期以便容易地操纵和开发。各种实施例包括生命周期定义、可扩展生命周期与其它系统交互的部件。如果内容储存库不是固有地支持生命周期,那么VCR可以提供支持。在各种实施例中,生命周期可以与节点相关联或这作为节点的属性。在这些实施例的方面中,如果生命周期与层次节点相关联,那么该层次节点的子将也与该生命周期相关联。同样,如果生命周期与模式相关联,那么基于该模式实例化的节点将也与该生命周期相关联。生命周期也能够直接与内容节点相关联。在各种实施例中并且作为说明,节点可以从当前状态转变到新状态。在转变之前、期间或之后,可以执行一个或多个动作。动作可以可选地在该节点上操作和/或利用该节点。动作可以包括可以在生命周期的过程中调用的任何类型的处理。作为示例,动作可以包括函数/方法调用、远程过程调用、进程间通信、进程内通信、与硬件设备接口、将节点检入/检出版本控制、将节点指定给用户、组或角色、对节点执行某种处理(根据可以对节点定义的任何策略)、向用户、组和/或角色提供通知,和其它适合的处理。可以将动作规定为(多个)命令、(多个)指令、(多个)表达式或其它可以被解释或映射以识别所需处理的构造。例如,诸如"公布(publish),,的高级动作指令可以使得内容节点被公布,并且使得电子邮件或其它消息被发送至特定方。本领域的技术人员将明白任何动作都落在本公开的范围和精神之内。在表6和图2中图示了表示新闻文章的内容节点的示例性生命周期。状态在图2中被图示为文档图标(204、208、212、216)并且状态之间的判决点被图示为圆圈(206、210、214)。状态之间的转变被图示为线,所述线,皮定向为显示状态的次序。在这些实施例的某些的方面中,状态之间的转变可以通过一个或多个判决点。判决点是可视的占位符(例如,IDE图形编辑器中的图标),用于限制到(多个)用户、(多个)组和(多个)角色的转变;并且用于规定可以伴随状态变化的(多个)动作,如果有的话。判决点可以连接状态至至少一个其它状态。动作可以由与节点相关联的、并且以生命周期状态为键值(例如,状态可以是节点的属性)的策略和/角色来控制,以允许不同状态下的某些类用户/进程特权。<table>tableseeoriginaldocumentpage17</column></row><table>就绪以待批准拒绝批准者草稿已公布隐退编辑者创建者已隐退已公布更新创建者草稿表6:各种实施例中的示例性生命周期图2中的示例性生命周期在开始状态202开始,在生命周期中该状态不受限制地转变到下一状态,即草稿状态204。转变可以不受限或受限于(多个)用户、(多个)组和/或(多个)角色的集合。在这些实施例的方面中,可以通过委派(delegated)管理将角色委派给用户。作为示例,批准能力可以基于在委派管理模型中的能力。在一个实施例中,限制可以规定只有某些被授权的用户/进程可以使之出现到下一状态的转变。在各种实施例中,状态转变可以由通过工具与节点交互的用户和/或通过VCRAPI与节点交互的进程启动。在这些实施例的某些方面中,节点的当前状态是节点的属性。作为示例,修改状态属性(例如,将其从"开始"改变成"草稿",假设用户被授权来这样做),可以导致伴随的生命周期处理的发生,例如执行对该转变限定的动作。新闻文章在处于草稿状态时可以由(多个)用户和/或(多个)进程修改,然后被提交以待批准。作为示例,用户可以检出新闻文章(假设其在版本控制之下),对其进行修改,然后检入该具有变化的文章。在将该文章检入之前,用户可以将状态属性从"草稿"改成"就绪以待批准"以便引出到就绪以待批准208状态的转变。为了进一步说明,用户接口可以呈现按钮或菜单选项,使得当用户已经完成对文章的编辑时可以选择创建者。一定被选4奪,文章可以被自动提交至其可以前进至下一状态的生命周期。在此图示中,通过判决点ZX/206到就绪以待批准状态的转变被限制于处于创建者角色的用户。因此,只有创建该文章的用户/进程可以使该文章转变成就绪以待批准状态。从草稿到就绪以待批准的转变也具有伴随动作,即,提交。举例来说,该动作可以使通知被发送至对查看文章以便批准感兴趣的人。可替换地,或除此之外,可以将新文章指定给用户/组/角色。因此,在其处于就绪以待批准状态的同时,处于所指定的用户/组/角色中的用户/进程可以对其进行查看。自就绪以待批准状态起,存在通过判决点D2210的转变。D2判决点规定处于批准者角色的用户/进程可以引起到草稿状态204或到已公布状态212的转变。如果该转变是到草稿状态的,那么与该转变相关联的动作将是拒绝该文章。被拒绝的文章将重复从草稿到就绪以待批准的生命周期路径。然而,如果该转变是到已公布状态的,那么该动作将是接受该文章。一旦该文章处于已公布状态,处于编辑者或创建者角色的用户/进程就可以引起到已隐退状态216的转变。处于创建者角色的用户可以引起到草稿状态的转变。从已公布状态到草稿状态的转变引起更新动作,而从已公布状态到已隐退状态的转变引起隐退动作。在这些实施例的方面中,可以将角色组织进角色层次,使得高级角色可以跳过需要低级角色的状态转变。作为说明,假设批准者角色比创建者角色等级高。如果文章的当前生命周期状态是草稿,那么处于批准者角色的用户可以跳过就绪以待批准状态并且将该文章一直转变到已公布状态。在一个实施例中,即使跳过了就绪以待批准状态,也可以自动调用与判决点和相关联的动作。在各种实施例中并且作为说明,可以使用文本编辑器和/或IDE来定义生命周期。用户可以根据文本编辑器用语言(例如,XML)来创建完整的生命周期的定义。在图形环境中,用户可以创建不同的状态,然后将它们连接在一起以表示转变。在一实施例中,生命周期的图形描绘可以显现为图2中所示的那样。状态和判决节点的图形表示可以被放置到IDE画布(canvas)上并且被连接以形成转变。与图形对象相关联的属性表单(sheet)可以允许用户交互地规定与状态和/或转变相关联的角色和动作。在这些实施例的方面中,用户可以容易地在生命周期的图形和文本表示之间切换,因为这两种表示是等同的。在各种实施例中,可以调用第三方生命周期引擎。这允许附加的功能被无缝地合并到生命周期模型中。在一个实施例中,这可以从生命周期内部通过生命周期动作实现。在另一个实施例中,可以通过回调(callback)机制来调用第三方生命周期。作为说明,例如当内容节点/情景已经被修改和/或其状态属性已经改变时,VCRAPI可以响应特定事件调用第三方生命周期。在此说明中,当这些事件发生时,实现第三方生命周期的进程可以注册以便接收回调。回调通知还可以包括VCR节点标识符和选择性地包括诸如关于?1起该事件的用户/进程的信息那样的上下文信息。在各种实施例中,可以从其它进程使用生命周期。VCRAPI包括允许访问节点的生命周期定义的生命周期接口。此外,生命周期接口通过提供诸如确定节点的当前状态、基于根据当前状态可用的转变选择将该节点放置在新的状态中、并且调用与状态转变相关联的动作的能力那样的功能,允许进程驱动节点经过生命周期。图3是在各种实施例中调用生命周期的示例性外部情景的图解。如图3所示,用户可以根据IDE创建情景的可视表示。在此图解中,情景包括起始点302图标,其后跟着表示接收客户请求的进程的客户请求控件图标304。在收到该请求之后,该情景进入"while"循环306。在此循环中,表示VCR生命周期的生命周期控件图标308使得相关联的生命周期被调用。生命周期控件可以具有识别生命周期以及其将驱动通过该生命周期的节点的相关属性。在这些实施例的方面中,控件可以是JavaTM控件。生命周期控件可以使用VCRAPI的生命周期接口驱动节点通过生命周期。在该生命周期结束后,该情景调用通知控件310,其可以使得生命周期结束的通知被发送给各种用户/进程。系统的各种实施例包括可用于节点的版本控制能力,使得在节点的生命期内维护状态的历史。在各种实施例中,节点的一个版本被认为是已公布的版本。在这些实施例的某些方面,可以赋予版本名称(或其它适合的标识符)并且可以将其存储或者通过与特定节点相关联的版本列表对其进行访问。在这些实施例的方面中,如果节点持续存在于其中的储存库没有提供对版本化的支持,那么VCR可以提供该支持。在各种实施例中,节点的版本也可以包括上次修改该版本的用户/进程的标识以及描述或注释。在VCR内可以移动或复制处于版本控制下的节点。在各种实施例中,在移动或复制期间,版本的历史随节点前进。当用户或进程移动内容节点时,那个节点的历史随它移动。在退回(rollback)的情况下,可以在历史中指示退回的父版本。在各种实施例中,节点的版本可以退回(即,恢复)至先前的版本。在这些实施例的方面中,在退回时,所选择的要恢复的内容节点版本变成内容节点的最新版本。在这些实施例的方面中,自动赋予所退回的版本新的版本标识符(例如,旧版本号+1)。每个节点可以具有锁(例如,信号标志(semaphore)或者用于控制对节点的访问的其它适合的方式)。锁防止一个以上的用户/进程同时修改节点。当节点被检出版本控制时,用户获取该锁。锁获取防止他人检出与该节点相关联的版本直到其被检入为止。可以在节点级别或版本级别上运用锁。如杲运用版本级别的锁,可以同时检出节点的一个以上的版本。对于给定节点、储存库和/或VCR,可以开启/关闭版本控制。在一个实施例中,没有利用版本控制的节点在其版本列表中只有单个版本。版本化包括用户或进程检出节点版本以便编辑的能力。作为说明,用户可以点击VCR的树形浏览器视图中的项(参见图4和所附文本)。在这些实施例的方面中,用户或进程可以选择要检出节点的哪个版本。树形浏览器可以对于每个版本显示(例如,通过弹出菜单或工具提示(tooltip))以下信息版本号/标识符、上次保存版本的日期、执行上次保存的用户/进程、以及可选的(多个)注释。在各种实施例中,用户可以在诸如树形浏览器那样的用户接口的帮助下、通过交互地浏览特定节点的版本历史,来选择要检出的版本。在一个实施例中,如果没有指定版本,则默认地;险出节点的最近的版本。在一个实施例中,用户接口可以提供节点属性的呈现。例如,用户可以选择'编辑内容,按钮以便编辑节点的属性。如果被还没有检出,则此动作可以试图检出此节点。在各种实施例中,给定用户的已检出的节点出现在用户的工作空间中(参见图4)。用户可以保存它们的工作直到检入时间为止。在各种实施例中,被'保存,的节点没有改变版本或者导致版本增加。从其它用户的角度看,该节点仍然是被检出的。一旦用户已经完成编辑,就可以将任何改变丢到或检入VCR中。一旦检入,在系统中就可使用节点的新版本了。在各种实施例中,检入节点使得节点出现在VCR中而不是出现在用户的工作空间中。在检入时间期间,用户/进程可以输入对节点所作的改变的描述。该描述可以随该版本一起被保存。将节点检入到工作空间还使得相关的锁被释放(以便他人可以编辑)并且,如果开启版本化,则创建节点的新版本。然而,如果用户仅仅保存他们的工作而不是将其检入,那么该节点将保留在工作空间中并且将不产生新的版本。在这些实施例的方面中,如果生命周期与节点相关联,那么将该节点检入可以将该节点提交给该生命周期。作为说明并且参照图2,处于创建者角色的用户可以通过将新闻文章的状态改变到"就绪以待批准,,并随后将其检入来提交新闻文章以便批准。在一个实施例中,使得可以向其指定状态属性的状态的下拉列表可以为用户所用。可以基于用户的角色和/或生命周期的阶段过滤下拉列表。在检入之后,处于批准者角色的用户的工作空间更新以便将该新闻文章显示为被指定给用户的项。在各种实施例中,批准者也可能收到指示该新闻文章可用于查看的告警(例如,电子邮件、即时消息、页面等)。如果批准者选择编辑该新闻文章,那么该批准者可以将其检出。一旦批准者获得该锁,此项将从批准者角色中的其它每个的工作空间的'所指定的项'部分中消失。在各种实施例中,用户/进程可以导航至节点并且执行删除动作。在一个实施例中,删除节点改变其状态(例如,到已隐退或已删除)。用户可以在以后看到所有已删除的节点并选择永久删除它们还是对它们取消删除。在另一实施例中,删除节点永久地将其从VCR中去除。在一个实施例中,可以不管节点的生命周期状态为何而删除节点。在一个实施例中,如果节点被检出,那么不能删除该节点。在一个实施例中,删除节点导致节点的所有子被删除。在一个实施例中,只删除节点的一皮;险入的子。还是在另一实施例中,已删除的节点(可选地,和它的子)可以^皮取消删除。图4是在本发明的各种实施例中的示例性用户接口。举例来说,用户接口可以包括下列一个或多个1)图形用户接口(GUI)(例如,以超文本标记语言呈现);2)响应声音和/或语音命令的能力;3)响应来自遥控设备(例如,蜂窝电话、PDA、或其它适合的遥控)的输入的能力;4)响应姿势(例如,面部和其它)的能力;5)响应来自相同或另一计算设备上的进程的命令的能力;和6)响应来自计算机鼠标和/或键盘的输入的能力。本公开不限于任何特定用户接口。本领域的那些技术人员将认识到许多其它用户接口实施例是可能的,并且完全落在本公开的范围和精神之内。的图形树形浏览器,以允许用户对VCR和他们的工作空间进行探索(explore)并且与VCR和他们的工作空间交互。树形浏览器提供节点和模式的分层视图。节点的缩进程度指示父/子关系。在各种实施例中,树形浏览器可以提供VCR的一个或多个视图。这些视图可以包括(但不限于)已公布的节点、未公布的节点、已隐退的节点、已删除的节点、被指定的节点、被锁定的节点以及等待批准的节点。在这些实施例的方面中,用户可以将该树形浏览器定制为包括这些视图中的一个或多个。这些视图可以被呈现为分立的树或者合并的树。在各种实施例中,对于特定(多个)用户可以自动定制视图。例如,可以使用修饰节点的角色和/或策略来过滤该视图。作为说明,被指定的项的视图和等待批准的视图将只示出适用于给定用户的节点。在一个实施例中,这可以通过在生命周期转变中检查角色并且滤除给定用户不能与之交互的生命周期的节点来实现。作为说明,树形浏览器可以显露VCR400,即,联合根。其包含两个储存库(iVe^,e402和P/wto412)和公共层次节点426。在各种实施例中,可以用文件夹和相关可视符号来装饰节点以便指示它们的用途。在这些特定实施例的方面中,在该树中文件夹图标或层次节点名称的选择使得节点的内容向其下方扩展。在这些实施例的进一步的方面中,任何类型的节点的选择可以允许用户编辑该节点的属性。在一个实施例中,可以在VCR中的任何地方(包括直接位于联合根(未示出)下)定义模式。在各种实施例中,没有在储存库中定义的模式(例如,428、430和434)被认为是虚拟的。A^pm"e储存库402包含两个储存库节点通迅稿404和旧模式408。通信稿包括名称为日本帐户(JapanAccount)406的内容节点,其当前被锁定(例如,被4全出),如由紧挨着其名称的挂锁图标所指示的那样。只有已经将该节点;险出的用户可以对其进行编辑。他人可以根据角色和/或权限选择性看到它。旧模式层次节点包含当前未被锁定的名称为帐户模式410的模式。在这些实施例的方面中,可以通过选择树形浏览器中的节点而看到节点的属性。如果所选择的节点没有被锁定,那么系统可以代表用户自动试图获得锁。尸/wto储存库包括模式414和两个顶层层次节点(416、418)。层次节点之一,即,2003备忘录416,具有纯色(solidcolor)的文件夹符号,另一个具有文件夹符号418的轮廓。在一个实施例中,特殊可视符号(例如,纯色文件夹图标)可以向用户指示层次节点具有与之相关联的模式和/或生命周期。在各种实施例中,将模式和/或生命周期与层次节点相关联导致将模式和/或生命周期强加到该层次节点的子或者由该层次节点的子继承。2004备忘录层次节点包含另一层次节点420、未锁定的内容节点422和被锁定的内容节点424。在各种实施例中,用户接口可以提供逻辑工作空间文件夹436,其提供对用户的新的、已检出的和被指定的项的快速访问。被指定的项是那些根据生命周期或一些其它适合的方式指定给一个或多个用户、组和/或角色的项。在此图解中,存在指定给用户的两个节点日本帐户444和内部备忘录模式446。与当前未被检出的内部备忘录模式不同,由于日本帐户以其旁边带有挂锁的样子出现在VCIU对中,所以用户已经^^出日本帐户节点。由于职员(staff)变化模式434没有出现在他们的工作空间,所以用户没有将其检出(即,另一用户或进程已经将其检出)。在各种实施例中,通过选择职员变化模式434,用户可以发现谁持有该锁以及他们在何时得到它。在各种实施例中并且作为进一步的例证,可以创建新节点。新创建的节点可以出现在创建它们的用户的工作空间中,直到它们在VCR中被乂^布为接口使用户能够选择新的节点将驻留在哪个VCR、储存库或层次节点。用户可以指示是否应为新节点保留版本历史并且可以向其添加属性或者以模式作为其属性的基础。也可以规定新节点的生命周期。可以更新树形浏览器以反映新节点的添加。图5是各种实施例中在将储存库连接至VCR中可以使用的对象/接口的示例性图示。尽管此图将组件描绘成在逻辑上是分立的,但是这样的描绘只是出于说明的目的。本领域的技术人员将很清楚在此图中描绘的组件可以被任意组合成或被分割成分立的软件、固件和/或硬件。而且,本领域的技术人员也将很清楚,这样的组件,不管将它们如何组合或分割,都可以在相同的计算设备上执行,或者可以分布在由一个或多个网络或其它适合的通信方式连接的不同计算设备上。从应用程序500的观点看,储存库管理器502可以用作VCR的表示。在这些实施例的方面中,储存库管理器试图(可选地利用用户或进程凭证(credential))将所有可用储存库(例如512-516)都连接到VCR。在各种实施例中,这可以基于Java验证和授权服务(从SUNMicrosystems公司可以得到)。本领域的技术人员将认识到在不背离本公开的范围和精神的情况下,许多授权方案都是可能的。每个可用的内容储存库由SPI储存库对象506-510表示。储存库管理器可以在储存库对象集上调用连接方法(connect()method)。在各种实施例中,储存库管理器将储存库会话对象的列表返回至应用程序,一个对象表示试图被连接的一个储存库。可以由会话对象状态来描述连接过程中的任何错误。在另一实施例中,储存库管理器可以连接到已赋予存储库名称的特定存储库。在各种实施例中,储存库的名称可以是URI(统一资源标识符》图6是在本发明的各种实施例中可以用作服务模型的对象/接口的示例性图示。尽管此图将组件描绘成在逻辑上是分立的,但是这样的描绘只是出于说明的目的。本领域的技术人员将很清楚在此图中描绘的组件可以被任意组合成或^fe分割成分立的软件、固件和/或硬件。而且,本领域的技术人员也将很清楚,这样的组件,不管将它们如何组合或分割,都可以在相同的计算设备上执行,或者可以分布在由一个或多个网络或其它适合的通信方式连接的不同计算设备上。参照图6,虛线箭头指示箭头从其发出的对象/接口可以在运行时产生箭头指向的对象/接口。权证(ticket)602是API级对象/接口,其提供对下列VCR服务对象/接口的访问节点操作(NodeOps)604、工作空间操作(WorkspaceOps)606和搜索操作(SearchOps)608。连接到VCR的每个储存库提供作为SPI的一部分的这些对象/接口中的一些的实现。权证602对象/接口意为轻量的(light-weight)。因而,可以为每个访问VCR的应用/进程创建并且可能高速緩存一个或多个。权证可以利用用户或进程的凭证来授权服务。在各种实施例中,权证可以是节点操作604、工作空间操作606和搜索操作608的访问点。为了说明,储存库622提供节点操作610、工作空间操作612和搜索操作614。储存库624提供节点操作616、工作空间操作618和搜索操作620。API级对象/接口与它们相应的SPI级对象/接口通信。这样,对API级对象的操作可以被分送每个储存库,使得每个储存库可以并行工作以便执行所请求的操作。因此,可能花费平均时间M^N来对所有储存库依次执行的操作在理论上可能只需要时间M,其中N是VCR中储存库的数目。节点操作604提供VCR中的节点和节点属性的创建、读取、更新、删除方法。在这些实施例的方面中,可以基于标识符、VCR中的路径或通过任何其它适合的相对或绝对引用来操作节点和属性。当API节点操作604接收执行动作的请求时,其可以将请求映射到一个或多个SPI节点才喿作(610、616),其进而使用它们的相关储存库实现该请求。这样,利用该API的应用和库看到单个VCR而不是各个内容储存库。显露在API中的节点操作功能可以包括下列各项更新给定节点的属性和属性的定义。将给定节点连同所有其后辈(descendant)—起复制到给定层次中的新位置。在给定父之下创建新内容节点。在给定父之下创建新的层次节点。对给定节点执行完全层叠删除(follcascadedelete)。检索在包括其自身的给定节点的路径中的所有节点。检索给定父节点的内容节点子。检索给定父节点的层次节点子。基于节点的ID检索对其进行检索。基于节点的路径检索对其进行检索。检索给定层次节点的子节点。检索给定层次节点的父节点。检索具有给定名称的所有节点。检索给定节点和属性标识(id)的二进制数据。将节点连同所有其后辈一起移动到该层次中的新位置。重命名给定节点和隐含地重命名其所有后辈路径。得到可以被用来在层次上迭代的迭代程序(iterator)对象。在各种实施例中,工作空间操作606显露用于版本化的服务,包括对检入/检出节点、节点/属性锁定、访问节点版本历史、生命周期操纵、打标签和作业(job)的服务。当API工作空间操作606收到执行动作的请求时,它可以将该请求映射到一个或多个SPI工作空间操作(612、618),其进而使用它们相关的储存库实现该请求。在API中显露的工作空间4喿作功能可以包括检入将节点解锁并且将节点连同其工作版本一起保存。检出锁定节点使得只有锁定其的用户/进程才可以将其保存或检入并且创建新的工作版本。复制递归地将所公布的源节点复制到目的地。创建创建新节点还有其工作版本(如果附着于该节点的话)。删除删除具有给定版本的节点版本。获得获得在给定路径上的节点。获得版本返回给定虚拟节点的所有版本。保存保存节点和节点的工作版本(如果附着于该节点的话,其是节点的当前版本)。提交将节点提交给其生命周期。在各种实施例中,搜索操作608基于一个或多个搜索表达式提供用于在整个VCR上检索节点、属性和/或属性值的搜索服务。当API搜索操作608收到执行动作的请求时,它可以将该请求映射到一个或多个SPI搜索操作(614、620),其进而使用它们相关的储存库实现该请求。API搜索操作608将来自每个SPI搜索操作的搜索结果组合进结果集中。在各种实施例中,可以通过对结果集中的项执行进一步的搜索来提炼(refme)结果集。搜索表达式可以包括(但不限于)一个或多个逻辑表达式、布尔算子、嵌套表达式、变量、标识符节点名称、函数/方法调用、远端过程调用、数学函数、数学运算符、串算符、图像算符(imageoperator)和结构化查询语言(SQL)。搜索表达式还可以包括对自然语言查询、关键字搜索、模糊逻辑、近似(proximity)表达式、通配符表达式和测距(ranging)搜索类型的支持。在各种实施例中,可以根据对满足搜索表达式的项起作用的角色/策略来修整(tailor)结果集。在搜索期间或者在收集了结果之后,可以过滤用户/进程没有察看权限的那些项在这些实施例的方面中,可以根据定级(ranking)算法和准则将搜索结果定级。在一个实施例中,定级算法可以根据结果集中的项目满足搜索表达式到何种程度将结果集定级。本领域的技术人员将很清楚许多其它定级算法是可能的并且完全落在本公开的范围和精神之内。在各种实施例中,可以对结果集施加多个定级算法。在一个实施例中,可以由用户/进程来调整给定定级算法的定级准测。在各种实施例中,作业提供对节点集执行VCR操作的能力。为了说明,作业可以被用来检入和检出作为组的节点集,或者将节点组一起发送通过生命周期。在实施例的方面中,作业标识符和/或标签可以与节点相关联以便指示其包含在特定作业和/或标签集中。在一个实施例中,如果作业变为就绪以待批准,则作业中的所有节点都将达到这个状态。在各种实施例中,标签可以被用来对储存库或节点组打标记。为了说明,这提供引用(referto)具有不同版本的节点集的方法。为了进一步说明,标签可以被用在搜索表达式中。在各种实施例中,可以外部格式导出(export)VCR中的信息。在这些实施例的方面中,外部格式可以是XML或可以保持信息的分层结构的另一种适合的语言/表示(例如,HTML、自然语言、二进制文件)。所有或一些VCR节点的导出允许VCR的"瞬态(snapshot)",以便备份VCR、将VCR中的信息运送到另一储存库以及在以后的日期重载该节点。在各种实施例中,将由导出进程导出节点及其所有子。作为示例,如果选择导出联合根,那么将导出整个VCR。作为进一步的示例,导出进程可以递归地遍历VCR(例如,深度优先或宽度优先的遍历),将与被访问的每个节点(例如,内容、分层和模式节点)相关联的信息串行化。这些实施例的方面具有"预览"模式,在其中报告将输出什么信息(例如,节点、生命周期、角色、策略)。在各种实施例中,导入进程可以通过解串每个节点(和其它信息)并将其添加至VCR名称空间中的适当的地方,来进行与导出进程相反的工作。在另一实施例中,导入进程可以将节点安置在所选节点之下而不是安置在它们的原始位置。和导出进程一样,这些实施例的方面具有"预览"模式,在其中报告将导入什么信息(例如,节点、生命周期、角色、策略)。除了节点属性以外,各种实施例允许导出和导入与内容和模式节点相关联的版本历史、角色和/或图7是根据本发明的各种实施例的在禁用内容服务时内容创建的示例性图示。尽管此图将组件描绘成在逻辑上是分立的,但是这样的描绘只是出于说明的目的。本领域的技术人员将很清楚在此图中描绘的组件可以被任意组合成或被分割成分立的软件、固件和/或硬件。而且,本领域的技术人员也将很清楚,这样的组件,不管将它们如何组合或分割,都可以在相同的计算设备上执行,或者可以分布在由一个或多个网络或其它适合的通信方式连接的不同计算设备上。图7示出具有两个整合的储存库(714、716)和整合的第三方内容管理系统718的VCR700。尽管未绘出,但是每个子系统(714-718)可以实现允许其到VCR的整合的SPI。还图示了由VCR提供的内容服务,包括用户工作空间管理706、内容版本化708和生命周期管理710。除了联合之外,VCR提供一个或多个其内容服务给没有这些服务的子系统。作为说明,如果储存库W印o/本身不支持版本化,那么VCR可以自动为那个储存库中的节点提供此服务。方框702表示可以用来创建、修改和删除VCR中的信息的一个或多个内容管理工具。这些工具可以利用VCR的内容服务。方框704表示可以对储存库进行操作而无需内容服务的一个或多个工具。作为示例,这些可以包括成批(bulk)内容装入程序、内容搜索工具和内容标记。内容管理器API组件712可以被用来管理VCR和其整合子系统之间的交互。图7图示在没有使能VCR的内容服务的情况下的内容节点的创建。方框720表示位于VCR中的/储存库1(/印o7)/财政计划处的、并且存储在储存库iejw/中的名为财政计划(i^cflP/朋)的内容节点。该节点还具有默认系统属性,例如,由谁创建、创建日期、节点状态和节点类型。节点类型是被称为财政计划类型的才莫式,其具有属性财政年度(FiscalYear)和类别(Category)。在此实例中,这些属性已经分别被设为2003和"财政(Finance)"。还要注意节点状态是"已公布"。图8是根据本发明的各种实施例的在使能内容服务时内容创建的示例性图示。此示例与图7中的示例类似,只是在VCR中内容月1务是使能的。但是使用内容管理工具(其利用内容服务)来创建相同的内容节点/存储库1/财政计划。像以前那样,该系统首先在包含系统属性的iepo/中创建内容项。然而,将模式定义的属性作为节点的第一版本存储在VCR中而不是存储在iepo7中,这是因为iepo7没有版本化能力。除了版本号之外,现在节点还包括指示节点处于哪个生命周期状态的生命周期状态。在此示例中,节点的生命周期状态是"草稿"。该系统也可以为创建版本1的用户锁定版本1并且通过那个用户的工作空间提供对该节点的访问。当用户将该节点检入时,将其提交给其生命周期(如果有的话)。图9是根据本发明的各种实施例的在使能内容服务时修改VCR中的节点的示例性图示。此图跟随以上图8的讨论。在此图示中,用户检出节点/储存库l/财政计划,其具有这样的作用在VCR中创建新版本(版本2)、锁定新版本并且将其指定给该用户。这里,用户已经将生命周期状态改变成"就绪以待批准"。当检入该节点时,将其模式定义的属性保存为版本2。此外,该系统释放该锁,并且将该节点提交给其生命周期。作为说明,这可能必须起这样的作用,即将该节点放置到给定角色(例如,公布者角色)的用户的工作空间中。图10时根据本发明的实施例的在使能内容服务时公布VCR中的节点的示例性图示。此图跟随图9的讨论。在此图示中,用户再次检出节点/储存库l/财政计划,其具有这样的作用在VCR中创建新版本(版本3)、锁定新版本并且将其指定给该用户。这里,用户已经将生命周期状态改变成"已公布"。当检入该节点时,将该模式定义的属性保存为版本3。此外,该系统将该节点解锁,并且向储存库1公布来自版本3的其模式定义的属性和节点类型。图11是根据本发明的各种实施例的在使能内容服务时隐退节点的示例性图示。跟随图10,用户再次检出节点/储存库l/财政计划,其具有这样的作用消除公布(de-publish)它、在VCR中创建新版本(版本4)、锁定新版本并且将其指定给该用户。这里,用户已经将生命周期状态改变成"已隐退"。当向回检入该节点时,在VCR中将该模式定义的属性保存为版本4并且将该节点解锁。此外,该系统去除(即,消除公布)在储存库1中所找到的节点的模式定义的属性和其节点类型。计算机领域中的那些技术人员将很清楚,根据本公开的教导,可以使用传统的通用或专用数字计算机或被编程的微处理器来实现各种实施例。软件领域的那些技术人员将很清楚,基于本公开的教导,可以由熟练的程序员容易地准备适合的软件代码编写。本领域的那些技术人员将容易明白,也可以通过准备集成电路或通过互连传统的组件电路的适合的网络来实现本发明。各种实施例包括作为存储介质(媒介)的计算机程序产品,其具有存储在其上/其中的可以被用来对计算设备编程以执行在此给出的任何特征的指令。存储介质可以包括(但是不限于)任何类型的物理媒介,所述物理媒介包括软盘、光盘、DVD、CD-ROM、微驱动器、磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、快闪存储设备、磁或光卡、纳米系统(包括分子存储器IC)或适合存储指令和/或数据的任何类型的媒介或设备。各种实施例包括计算机程序产品,其可以通过一个或多个公共和/或私有网络传送,其中该传送包括可以用来对计算设备编程以执行在此给出的任何特征的指令。本发明包括存储在任何一个计算机可读介质e某介)上的软件,其用于控制通用/专用计算机或微处理器,并且用于使计算机或微处理器与人类用户或利用本发明的结果的其它机制交互。这样的软件可以包括(但不限于)设备驱动程序、操作系统、执行环境/容器和应用。已经出于说明和描述的目的提供了本发明的优选实施例的前述描述。没有打算穷尽或将本发明限制于所公开的精确形式。本领域的技术从业者将很清楚许多修改和变化。选择并描述实施例以便最佳地解释本发明地原理和其实际应用,从而使本领域的的其它技术人员理解本发明、各种实施例和适合于所预期的特定使用的各种修改。意欲使本发明的范围由后面的权利要求和它们的等同物来限定。优先权要求本申请要求下列申请的优先权,因此通过它们的全部引用将它们合并,这些申请为2004年4月13日提交的美国临时申请第60/561,819号,名称为SYSTEM发明人为RodneyMcCauley等人(代理人案号BEAS-01550US0);2004年8月10日提交的美国申请第10/915,194号,名称为SYSTEMANDMETHODFORVIRTUALCONTENTREPOSITORYDEPLOYMENT,发明人为RodneyMcCauley等人(代理人案号BEAS-10550US1);2004年4月13日提交的美国临时申请第No.60/561,780号,名称为SYSTEMANDMETHODFORCONTENTVERSIONING,发明人为RodneyMcCauley等人(代理人案号BEAS-01533US0);2004年11月1日提交的美国申请第10/910,233号,名称为SYSTEMANDMETHODFORCONTENTVERSIONTNG,发明人为RodneyMcCauley等人(代理人案号BEAS-01533US1);2004年4月13日提交的美国临时申请第60/561,796号,名称为SYSTEMANDMETHODFORCONTENTLIFECYCLES,发明人为RodneyMcCauley等人(代理人案号BEAS-01534US0);2004年8月4日才是交的美国申请第10/911,099号,名称为SYSTEMANDMETHODFORCONTENTLIFECYCLES,发明人为RodneyMcCauley等人(代理人案号BEAS-01534US1);2004年4月13日提交的美国临时申请第60/561,783号,名称为SYSTEMANDMETHODFORCONTENTANDSCHEMAVERSIONG,发明人为RodneyMcCauley等人(代理人案号BEAS-01535US0);2004年8月10日提交的美国申请第10/915,033号,名称为SYSTEMANDMETHODFORCONTENTANDSCHEMAVERSIONING,发明人为RodneyMcCauley等人(代理人案号BEAS-01535US1);2004年4月13日提交的美国临时专利申请第60/561,785号,名称为明人为RodneyMcCauley等人(代理人案号BEAS-01536US0);2004年11月1日提交的美国专利申请第10/911,287号,名称为SYSTEMANDMETHODFORCONTENTANDSCHEMALIFECYCLES,发明人为RodneyMcCauley等人(代理人案号BEAS-01536US1);2004年4月13日提交的美国临时专利申请第60/561,778号,名称为SYSTEMANDMETHODFORVIRTUALCONTENTREPOSITORYENTITLEMENTS,发明人为RodneyMcCauley等人(代理人案号BEAS--01551US0);2004年8月10日提交的美国专利申请第10/915,008号,名称为SYSTEM发明人为RodneyMcCauley等人(代理人案号BEAS-01551US1);2004年4月13日提交的美国临时专利申请第60/561,648号,名称为SYSTEMANDMETHODFORCONTENTTYPEMANAGEMENT,发明人为RodneyMcCauley等人(代理人案号BEAS-01552US0);2004年8月10日提交的美国专利申请第10/915,013号,名称为SYSTEMANDMETHODFORCONTENTTYPEMANAGEMENT,发明人为RodneyMcCauley等人(代理人案号BEAS-01552US1);2004年4月13日提交的美国临时专利申请第60/561,782号,名称为SYSTEMANDMETHODFORCUSTOMCONTENTLIFECYCLES,发明人为RodneyMcCauley等人(代理人案号BEAS-01553US0);2004年8月10日提交的美国专利申请第10/915,505号,名称为SYSTEMANDMETHODFORCUSTOMCONTENTLIFECYCLES,发明人为RodneyMcCauley等人(代理人案号BEAS-01553US1);2004年4月13日提交的美国临时专利申请第60/561,759号,名称为SYSTEMANDMETHODFORCONTENTTYPEVERSIONS,发明人为RodneyMcCauley等人(代理人案号BEAS-01554US0);2004年8月10日提交的美国专利申请第10/915,057号,名称为SYSTEMANDMETHODFORCONTENTTYPEVERSIONS,发明人为RodneyMcCauley等人(代理人案号BEAS-01554US1);2004年4月13日提交的美国临时专利申请第60/561,646号,名称为INTEGRATION,发明人为RodneyMcCauley等人(代理人案号BEAS-01555US0);2004年8月10日提交的美国专利申请第10/915,506号,名称为SYSTEMANDMETHODFORINFORMATIONLIFECYCLEWORKFLOWINTEGRATION,发明人为RodneyMcCauley等人(代理人案号BEAS-01555US1);2004年4月13日提交的美国临时专利申请第60/561,818号,名称为SYSTEMANDMETHODFORSEARCHINGAVIRTUALCONTENTREPOSITORY,发明人为RodneyMcCauley等人(代理人案号BEAS--01565US0);2004年8月10日提交的美国专利申请第10/915,504号,名称为SYSTEM明人为RodneyMcCauley等人(代理人案号BEAS-01565US1);以及2004年8月10日提交的美国专利申请第10/915,521号,名称为SYSTEMANDMETHODFORPROVIDINGCONTENTSERVICESTOAREPOSITORY,发明人为RodneyMcCauley等人(代理人案号BEAS—01729US0)。权利要求1.一种向多个储存库中的储存库提供一个或多个内容服务的方法,所述方法包括将多个储存库整合到虚拟内容储存库VCR中;维护涵盖多个储存库的逻辑名称空间;向储存库提供一个或多个内容服务;其中一个或多个内容服务包括版本化能力和生命周期能力中的至少一个;其中储存库存储内容信息和模式信息中的至少一个;以及其中可以通过涵盖多个储存库的逻辑名称空间访问内容和模式信息。2.如权利要求l所述的方法,还包括维护储存库的版本历史以便跟踪对内容信息和才莫式信息中的至少一个的改变。3.如权利要求2所述的方法,其中可以退回版本历史。4.如权利要求l所述的方法,还包括根据生命周期定义转变内容信息通过一组状态。5.如权利要求l所述的方法,其中整合包括实现与VCR兼容的服务提供者接口。6.如权利要求l所述的方法,其中名称空间是分层的。7.—种向多个储存库中的储存库提供一个或多个内容服务的系统,所述系统包括虚拟内容储存库VCR,其包括一个或多个内容服务;被整合到VCR中的多个储存库;能够涵盖多个储存库的逻辑名称空间;其中可以向储存库提供一个或多个内容服务;其中一个或多个内容服务包括版本化能力和生命周期能力中的至少一个;其中储存库存储内容信息和模式信息中的至少一个;以及其中可以通过涵盖多个储存库的逻辑名称空间访问内容和模式信息。8.如权利要求7所述的系统,还包括库的版本历史,能够跟踪对内容信息和模式信息中的至少一个的改变。9.如权利要求8所述的系统,其中可以退回版本历史。10.如权利要求7所述的系统,还包括生命周期定义,能够转变内容信息通过一组状态。11.如权利要求7所述的系统,其中整合包括实现与VCR兼容的服务提供者接口。12.如权利要求7所述的系统,其中名称空间是分层的。13.—种对表示多个内容储存库的虚拟内容储存库VCR进行操作的方法,包括创建节点,其中节点具有指示该节点在所述VCR中的位置的标识符;将该节点与l)属性和2)模式中的至少一个相关联;将该节点存储在所述VCR中,以及其中所述将该节点存储在所述VCR中将导致所迷至少一个属性和/或模式被存储在所述多个内容储存库的一个中。14.如权利要求13所述的方法,其中所述属性是名称和最少一个值之间的关联。15.如权利要求14所述的方法,其中所述至少一个值可以是文本串、数字、图像、音频/视频呈现或二进制数据。16.如权利要求13所述的方法,其中多个内容储存库中的每个显露使其能够合到VCR中的第一组服务。17.如权利要求13所述的方法,其中模式包括至少一个属性定义。18.如权利要求13所述的方法,其中节点可以是按层次与VCR中的其它节点相关的。19.一种对虚拟内容储存库VCR进行才喿作的方法,其中VCR具有节点并且其中所述节点与信息相关联,所述方法包括获得所述节点,其中所述节点具有指示在所述VCR中的唯一位置的标识符;对所述节点执行操作,其中所述操作是下列各项中的一个l)删除所述节点;2)改变所述节点在VCR中的位置;3)读取所述信息;以及4)更新所述化息;其中VCR表示多个内容储存库;以及其中所述信息包括下列各项中的至少一个l)属性;以及2)模式。20.如权利要求19所述的方法,其中属性是名称和最少一个值之间的关联。21.如权利要求19所述的方法,其中多个内容储存库中的每个显露使其能够合到VCR中的第一组服务。22.—种用于将多个内容储存库整合到虚拟内容储存库VCR中的方法,包括向所述多个内容储存库中的每个提供凭证信息;从所述多个内容储存库中的每个接收授权信息,其中该授权信息指示授权过程是否成功;将所述多个内容储存库中的其授权信息指示成功授权的每个整合到VCR中;以及其中所述多个内容储存库中的每个显露使其能够合到VCR中的第一组服务。23.如权利要求22所述的方法,其中所述第一组服务接受该凭证信息。24.如权利要求22所述的方法,其中所述第一组服务提供该授权信息。25.如权利要求22所述的方法,其中所述多个内容储存库中的每个显露与实现该内容储存库中信息的模型相关的第二组服务;以及其中该模型与VCR内容模型兼容。全文摘要本发明提供一种向多个储存库(714、716、718)中的储存库提供一个或多个内容服务的系统和方法,所述系统包括虚拟内容储存库(700),其包括一个或多个内容服务(708、710);被整合到该虚拟内容储存库中的多个储存库;能够涵盖多个储存库的逻辑名称空间(400)。文档编号G06F7/00GK101416148SQ200580011175公开日2009年4月22日申请日期2005年4月13日优先权日2004年4月13日发明者亚历山大·图圣特,克里斯托弗·E·贝尔斯,布拉德·波斯纳,罗德尼·麦考利,詹姆斯·欧文,贾尔皮什·帕塔迪亚申请人:Bea系统公司