实现多个内容管理服务操作的方法和装置与流程

文档序号:11842848阅读:158来源:国知局
实现多个内容管理服务操作的方法和装置与流程

本公开的实施例总体涉及多个操作的执行,具体涉及一种用于实现多个内容管理服务操作的方法和设备。



背景技术:

表述性状态传递(REST)软件架构是用于设计新的可编程产品(例如,EMC公司企业内容管理部门(ECG)的内容管理解决方案)以及用于将预置型(on-premise)产品应用到云中的通用技术。在满足REST原则(RESTful)的服务中,批处理服务具有独特价值,因为它创造了将多个操作汇集到一个用户事务中的能力,从而提高服务效率减少通信开销。RESTful服务中的批处理指使用特定批处理资源执行对RESTful服务的一系列资源操作。

在计算机科学中,存在多种通用的批处理超文本传输协议(HTTP)的应用程序接口(API),例如描述如何创建和访问RESTful服务的结构化信息标准促进组织(OASIS)标准的开放数据协议(ODATA)。但是这些API都不是专门针对内容管理系统而设计,因此不具有内容服务系统要求的完整的批处理特征选项,例如,事务性选项、错误处理选项、内容二进制传输选项等。此外,这些API依赖于特定的消息格式,例如可扩展标示语言(XML)或者基于JavaScript语言的轻量级的数据交换格式(JSON)。其他的内容管理系统仅当在其底层系统中具有内置批处理能力时,具有RESTful批处理API。

因此,本领域中需要一种用于实现多个内容管理服务操作的通用批处理方法,以应用于在RESTful层以下不具有内置批处理能力的现有内容管理系统。



技术实现要素:

本公开的实施例旨在提供一种用于实现多个内容管理服务操作的方法和装置,以解决上述问题。

根据本公开的一个方面,提供了一种用于实现多个内容管理服务操作的方法,该方法包括:发送针对批处理的批处理服务请求,其中所述批处理包括多个内容管理服务操作;以及接收批处理服务响应,其中所述批处理服务响应指示所述批处理的状态和执行的结果中的至少一个。

在一个实施例中,发送针对批处理的批处理服务请求包括发送以下批处理服务请求中的一种:创建并执行新的批处理;获取已创建的全部批处理;获取支持的批处理特征;获取批处理;改变批处理的状态;以及移除批处理。

在另一实施例中,获取支持的批处理特征包括获取以下特征中的一种或多种:事务性、非事务性或者两者;同步、异步或者两者;顺序、非顺序或者两者;错误即终止执行、错误仍继续执行或者两者;结束即移除、结束仍保留或者两者;允许或者不允许暂停异步批处理;以及允许或者不允许哪些资源用于批处理。

在又一实施例中,所述批处理的状态包括初始状态、运行状态、暂停状态以及结束状态中的其中一种。

在再一实施例中,发送针对批处理的批处理服务请求包括发送指示所述批处理的运行模式的批处理服务请求,其中所述运行模式包括以下一种或者多种:事务性模式或者非事务性模式;同步模式或者异步模式;顺序模式或者非顺序模式;错误即终止执行模式或者错误仍继续执行模式;以及结束即移除模式或者结束仍保留模式。

在再一实施例中,在所述批处理服务请求中包括针对每个内容管理服务操作的请求,其中所述请求包括附件元素,所述附件元素使得与所述每个内容管理服务操作相关的内容能够被分离地上传或者下载

在再一实施例中,与所述每个内容管理服务操作相关的内容是 文本类型或者其他媒体类型。

在再一实施例中,接收批处理服务响应包括接收以下批处理服务响应中的一种:对于创建并执行新的批处理的响应;对于获取已创建的全部批处理的响应;对于获取支持的批处理特征的响应;对于获取批处理的响应;对于改变批处理的状态的响应;以及对于移除批处理的响应。

根据本公开的另一方面,提供了一种用于实现多个内容管理服务操作的方法,该方法包括:接收针对批处理的批处理服务请求,其中所述批处理包括多个内容管理服务操作;响应于所述批处理服务请求,执行所述批处理;以及发送批处理服务响应,其中所述批处理服务响应指示所述批处理的状态和执行的结果中的至少一个。

在一个实施例中,响应于所述批处理服务请求,执行所述批处理包括根据所述批处理服务请求指示的所述批处理的运行模式,执行所述批处理,其中所述运行模式包括以下一种或者多种:事务性模式或者非事务性模式;同步模式或者异步模式;顺序模式或者非顺序模式;错误即终止执行模式或者错误仍继续执行模式;以及结束即移除模式或者结束仍保留模式。

根据本公开的又一方面,提供了一种用于实现多个内容管理服务操作的装置,该装置包括:请求发送单元,被配置为发送针对批处理的批处理服务请求,其中所述批处理包括多个内容管理服务操作;以及响应接收单元,被配置为接收批处理服务响应,其中所述批处理服务响应指示所述批处理的状态和执行的结果中的至少一个。

在一个实施例中,所述请求发送单元发送以下批处理服务请求中的一种:创建并执行新的批处理;获取已创建的全部批处理;获取支持的批处理特征;获取批处理;改变批处理的状态;以及移除批处理。

在另一实施例中,获取支持的批处理特征包括获取以下特征中的一种或多种:事务性、非事务性或者两者;同步、异步或者两者;顺序、非顺序或者两者;错误即终止执行、错误仍继续执行或者两者; 结束即移除、结束仍保留或者两者;允许或者不允许暂停异步批处理;以及允许或者不允许哪些资源用于批处理。

在又一实施例中,所述批处理的状态包括初始状态、运行状态、暂停状态以及结束状态中的其中一种。

在再一实施例中,所述请求发送单元被配置为发送指示所述批处理的运行模式的批处理服务请求,其中所述运行模式包括以下一种或者多种:事务性模式或者非事务性模式;同步模式或者异步模式;顺序模式或者非顺序模式;错误即终止执行模式或者错误仍继续执行模式;以及结束即移除模式或者结束仍保留模式。

在再一实施例中,在所述批处理服务请求中包括针对每个内容管理服务操作的请求,其中所述请求包括附件元素,所述附件元素使得与所述每个内容管理服务操作相关的内容能够被分离地上传或者下载。

在再一实施例中,与所述每个内容管理服务操作相关的内容是文本类型或者其他媒体类型。

在再一实施例中,所述响应接收单元接收以下批处理服务响应中的一种:对于创建并执行新的批处理的响应;对于获取已创建的全部批处理的响应;对于获取支持的批处理特征的响应;对于获取批处理的响应;对于改变批处理的状态的响应;以及对于移除批处理的响应。

根据本公开的再一方面,提供了一种用于实现多个内容管理服务操作的装置,该装置包括:请求接收单元,被配置为接收针对批处理的批处理服务请求,其中所述批处理包括多个内容管理服务操作;批处理执行单元,被配置为响应于所述批处理服务请求,执行所述批处理;以及响应发送单元,被配置为发送批处理服务响应,其中所述批处理服务响应指示所述批处理的状态和执行的结果中的至少一个。

在一个实施例中,所述批处理执行单元被配置为根据所述批处理服务请求指示的所述批处理的运行模式,执行所述批处理,其中所述运行模式包括以下一种或者多种:事务性模式或者非事务性模式; 同步模式或者异步模式;顺序模式或者非顺序模式;错误即终止执行模式或者错误仍继续执行模式;以及结束即移除模式或者结束仍保留模式。

根据本公开的再一方面,提供了一种用于实现多个内容管理服务操作的计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行一种方法的任意步骤。

根据本公开的再一方面,提供了一种用于实现多个内容管理服务操作的计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行另一种方法的任意步骤。

与现有技术相比,本公开的实施例在不需要底层系统具有内置批处理能力的情况下能够将多个内容管理服务操作汇集到一个批处理中并且提供完整的批处理特征选项以支持不同的内容管理需求,同时本公开的实施例能够通过使用批处理附件来支持批处理中内容的二进制上传及下载,因此可以被广泛地应用于RESTful服务中。

附图说明

在此所述的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:

图1图示了根据本公开的实施例的用于实现多个内容管理服务操作的方法100的流程图;

图2图示了根据本公开的实施例的用于实现多个内容管理服务操作的方法200的流程图;

图3图示了根据本公开的实施例的针对批处理的状态转换300的示图;

图4图示了根据本公开的实施例的用于实现多个内容管理服务操作的装置400的框图;

图5图示了根据本公开的实施例的用于实现多个内容管理服务操作的装置500的框图;以及

图6图示了适于实现本公开的示例实施例的计算机系统600的框图。

在各个附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

在下文中,将参考附图详细描述本公开的各个示例性实施例。应当注意,这些附图和描述涉及的仅仅是作为示例性的实施例。应该指出的是,根据随后描述,很容易设想出此处公开的结构和方法的替换实施例,并且可以在不脱离本公开要求保护的原理的情况下使用这些替代实施例。

应当理解,给出这些示例性实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。

在此使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。

在本文中,将以RESTful服务中的批处理为例来具体描述本公开的实施例。RESTful服务中的批处理指使用特定批处理资源执行对RESTful服务的一系列资源操作。在计算机科学中的任何批处理系统具有一些通用行为,然而它们还具有其自身的特征。批处理的需求可以针对不同的资源操作、不同的用户场景或者不同的产品而不同。

根据本公开的实施例,在RESTful服务中的批处理具有以下特征:

·事务性对非事务性

事务允许操作集合被当作单个单元。如果一些请求成功而其他请 求失败,那么底层持久性系统可能处于不一致的状态,该不一致的状态是复杂的或者不可能修正的。事务还可以确保由一个过程执行的操作集合不被另一过程打断。RESTful服务中的批处理可以具有指示批处理实例可以是事务性或者非事务性的属性。

·同步对异步

同步API要求客户端等待响应直到在服务器侧完成操作。当批处理请求被发送至服务器时,服务器仅当全部操作被完成时对客户端做出响应。全部操作的结果将一次全部返回至客户端。异步API允许操作以非阻塞的方式来执行。当批处理请求被发送至服务器时,服务器不等待所有操作的完成。相反,服务器立刻向客户端返回具有批处理执行状态和链接的响应。当允许延时时,客户端检查批处理执行状态并且收集在单独的请求中的结果。RESTful服务中的批处理可以具有指示批处理实例可以是同步或者异步的属性。

·批处理操作中的请求语义必须与个体资源相同

所有的个体资源具有针对操作请求和响应的其自身的语义,即媒体类型、请求格式、响应格式等。当将资源操作放入批处理时,针对该批处理中的多个操作的语义必须与在个体资源操作上的语义相同。

·基于系统能力接受或者拒绝批处理

服务器可以具有能力限制,例如,服务器仅能在单个批处理内处理有限数量的操作、或者仅能处理有限消息大小的批处理请求、或者能够在服务器侧将异步状态保留固定的时间段。还可以存在基于媒体类型的有效性规则。

·描述性操作名称

在批处理中的所有操作应当具有描述性操作名称,该描述性操作名称指示这些操作的真实含义,例如,创建文档、删除目录等。

·错误即终止执行(fail-on-error)对错误仍继续执行(continue-on-error)

故障机制定义了当批处理中的一个或者多个操作已经失败时整个批处理继续执行还是终止执行。

·批处理执行的通信量

RESTful服务中的批处理执行将经由多个HTTP请求完成。可能存在对批处理执行的性能和延时上的担心。然而,提供了在一个HTTP请求中提交的方式,该方式明确地降低了批处理执行的通信量。

·顺序对非顺序

顺序要求批处理中的操作以提交的次序来执行。操作的顺序对于一些特定用户场景是重要的。当批处理操作中的操作不是顺序执行时,服务器可以自由确定顺序地或者并行地执行操作。

·结束即移除(remove-on-complete)对结束仍保留(retain-on-complete)

在批处理中的所有操作完成以后,服务器可以选择保留批处理实例(及其操作结果)直到客户端明确地删除它,或者选择在完整的结果由客户端检索一次即立刻移除批处理实例。

此外,还存在一些其他的关于批处理的功能及其扩展性的考虑,例如,在批处理内的多个操作间的依赖性。在批处理内的多个操作间的依赖性例如如下情况:创建资源,然后基于响应状态来选择如何执行;创建资源,然后在另一资源中对其进行链接;以及创建资源,然后在相同批处理中更新该资源等。

现在参考图1,图1图示了根据本公开的实施例的用于实现多个内容管理服务操作的方法100的流程图。方法100包括步骤S101至S102。

在步骤S101,客户端向服务器发送针对批处理的批处理服务请求,其中所述批处理包括多个内容管理服务操作。

根据本公开的实施例,发送针对批处理的批处理服务请求包括发送以下批处理服务请求中的一种:创建并执行新的批处理;获取已创建的全部批处理;获取支持的批处理特征;获取批处理;改变批处理的状态;以及移除所述批处理。

为了详细描述本公开的实施例,在此首先引入与批处理相关的资源的概念。根据本公开的实施例,与批处理相关的资源包括:批处 理集合资源;批处理能力资源;以及批处理资源。

批处理集合资源是在RESTful服务中的顶层资源。它是在资源库或者租户(tenant)中创建的所有批处理的集合容器。它允许用户在集合中创建新的批处理,还可以允许用户检索批处理集合。

根据本公开的实施例,利用批处理集合资源来创建并执行新的批处理,以及获取已创建的全部批处理。例如,在现有的主文档资源、资源库资源或者租户资源中,可以存在指向批处理资源的新的链接关系:http://identifiers.emc.com/linkrel/batches。基于该链接关系,客户端可以使用HTTP方法中的GET方法来获取已创建的全部批处理;或者为了创建并执行新的批处理,客户端可以向批处理集合POST新的批处理。

批处理能力资源描述了针对特定实现方式支持的批处理特征。根据本公开的实施例,可以通过批处理能力资源获得系统支持的以下批处理特征中的一种或者多种:事务性、非事务性或者两者;同步、异步或者两者;顺序、非顺序或者两者;错误即终止执行、错误仍继续执行或者两者;结束即移除、结束仍保留或者两者;允许或者不允许暂停异步批处理;以及允许或者不允许哪些资源用于批处理。对于各种批处理特征的解释可以参考以上的描述。

除了整体的批处理特征,在RESTful服务中的部分的个体资源可能不允许执行批处理,这样的信息也应当通过批处理能力资源来发现。可以存在链接至批处理能力资源的链接关系:http://identifiers.emc.com/linkrel/batch-capabilities。客户端可以使用HTTP方法中的GET方法来获取支持的批处理特征。以下给出批处理能力资源的JSON表示的示例代码(1)和XML表示的示例代码(2):

示例代码(1)

示例代码(2)

此外,可以在客户端向服务器发送的批处理服务请求中指定批处理的运行模式,可以设置的批处理的运行模式包括以下一种或者多种:事务性模式或者非事务性模式;同步模式或者异步模式;顺序模式或者非顺序模式;错误即终止执行模式或者错误仍继续执行模式;以及结束即移除模式或者结束仍保留模式。如果客户端指定了一些RESTful服务不支持的批处理特征,那么服务器将返回状态码400(即,客户端请求错误)。

批处理资源是在资源库或者租户中由特定用户创建的批处理的单个实例。批处理资源包括以下的一种或多种属性:描述批处理的通用目的的属性;指示批处理运行在事务性模式或者非事务性模式的属性;指示批处理运行在同步模式或者异步模式的属性;指示批处理运行在顺序模式或者非顺序模式的属性;指示批处理运行在错误即终止执行模式或者错误仍继续执行模式的属性;指示批处理运行在结束即移除模式或者结束仍保留模式的属性;描述批处理的状态的属性;描述所述批处理的所有者的属性;描述批处理的创建时间的属性;描述批处理的结束时间的属性;以及描述在批处理中包含的多个操作的总数量的属性。

每个批处理资源具有其自身的状态。运行中的批处理可以根据其特征和能力被停止或者删除,可以利用批处理资源来获取批处理、改变批处理的状态以及移除批处理。根据本公开的实施例,批处理的状态包括初始状态、运行状态、暂停状态以及结束状态中的其中一种。 以下详细解释每一种状态的含义及状态转换条件。

·初始状态

客户端在服务器侧创建了批处理后,该批处理立刻处于初始状态。仅对于异步批处理可以看到该状态。针对同步批处理,客户端等待响应直到所有的操作完成。

·运行状态

在服务器开始执行批处理后,该批处理处于运行状态。当服务器具有执行批处理的能力时,服务器必须在没有客户端交互的情况下自动地将批处理状态从初始状态转换为运行状态。针对同步批处理,客户端等待响应直到所有的操作完成。

·暂停状态

在客户端明确地暂停批处理后,该批处理处于暂停状态。仅异步批处理能够被停止。这与移除批处理的不同之处在于移除操作彻底地在服务器侧删除批处理及其状态。为了移除暂停的(或者处于任何其他状态)批处理,客户端应当明确地发送删除(DELETE)请求。

·结束状态

这是指示批处理实例已经被结束的中立状态。针对事务性批处理,结果将是完全地成功或者完全地失败。针对非事务性批处理,响应可以包含一些成功的操作结果以及一些其他未成功的操作结果。

每个批处理实例具有多个操作(即,多个内容服务操作),每个操作(即,每个内容服务操作)具有单独的资源调用。每个操作可以包括对单独的资源调用的请求、响应和操作状态。多个操作与特定批处理实例相关联,每个操作包含以下信息:指示操作的唯一标识符的属性;描述操作的通用目的的属性;指示在操作的响应中是否需要包括该操作的原始请求消息的属性;描述对于单个资源的请求的元素;描述操作的状态的属性;描述对于单个资源的响应的元素;描述操作的开始执行时间的属性;以及描述操作的结束执行时间的属性。其中,每个操作的状态可以是:等待状态,该等待状态说明操作尚未被执行;运行状态,该运行状态说明操作正在被执行但尚未结束;以及结束状 态,该结束状态说明操作已结束并且结果是成功的或者失败的。针对正在等待或者运行的操作,不需要在该操作内返回响应。

以下给出批处理资源的JSON表示的示例代码(3)和XML表示的示例代码(4):

示例代码(3)

示例代码(4)

在之前给出的所有示例代码中,可以看到,所有的操作请求通过XML或者JSON格式被嵌入到一个批处理资源中。然而,如果操作具有相关的二进制内容,例如,用户希望同时创建对象和内容,那么前述的批处理数据模型将不能处理这种情况。以下给出根据前述的批处理数据模型每个操作的请求中带有内容类型头部(content-type)的XML示例代码(5):

示例代码(5)

从上述示例可以想到,将内容和批处理一同发送具有很多限制:内容被嵌入到批处理表示中,所以它必须使文本类型;不能够支持串流,意味着仅非常小的文本能够被嵌入批处理表示中;可能在一个批处理中存在多个操作,那么如果所有操作都具有嵌入的内容将存在缓冲区问题。

因此,根据本公开的实施例,针对每个操作(即,每个内容服务操作)的请求可以具有附件元素,该附件元素使得与每个操作相关的内容能够被分离地上传或者下载。附加地或者备选地,与每个操作相关的内容是文本类型或者其他媒体类型。通过这种方式,能够支持串流,并且客户端可以在一个批处理中创建很多大的文件而没有缓冲 区大小的担忧。以下给出引用了现有的XML二进制优化封装协议(XOP)的示例代码(6)。本领域的技术人员可以基于XOP的扩展得到JSON表示。

示例代码(6)

根据本公开的实施例,还可以针对所述多个操作设置唯一认证头,所述唯一认证头指示所述多个操作由单个用户所有并执行。附加地或者备选地,可以针对所述多个操作中的每个操作设置各自的认证头,所述各自的认证头指示所述每个操作由各自的用户所有并执行。

根据本公开的实施例,可以针对所述多个操作中的每个操作设置各自的媒体类型,所述各自的媒体类型可以是相同的或者不同的。

接下来,方法100进行至步骤S102。在步骤S102,客户端从服务器接收批处理服务响应,其中所述批处理服务响应指示批处理的状态和执行的结果中的至少一个。

如上所述,根据本公开的实施例,批处理服务响应指示了批处理的状态,其中批处理的状态包括初始状态、运行状态、暂停状态以及结束状态中的其中一种。此外,批处理响应指示了批处理的所有者、创建时间、结束时间、包含的操作的总数等信息。此外,在批处理服务响应中还包括对批处理中包括的多个操作中的每个操作的状态的指示、每个操作对单个资源的请求的响应、每个操作的开始执行时间 以及每个操作结束执行时间等信息。即,批处理服务响应还指示了批处理中包括的多个操作中的每个操作的状态和/或执行的结果。

根据本公开的实施例,在对批处理中的每个操作的响应上,可以设置与web缓存相关的头部,比如etag、最后修改的日期(last-modified-date)等,指示了客户端可以利用HTTP缓存机制以提高性能。例如,对于异步批处理,客户端可以多次获取批处理以获得异步结果。如果这些操作已经完成,没有必要重复地向客户端发送单个操作的响应。在这种情况下,web缓存机制可以发挥巨大的作用。

根据本公开的实施例,批处理服务响应还可以指示在与批处理相关的资源上可以执行的操作,该操作通过在批处理服务响应中包括的链接关系来指示。链接关系用来指示客户端可以根据批处理的状态对批处理执行哪些操作。REST客户端遵循链接关系来改变批处理的状态。例如:当批处理处于初始状态或者运行状态时,链接关系http://identifiers.emc.com/linkrel/hal可以出现在异步批处理资源上,客户端遵循该链接关系以暂停该异步批处理。当批处理处于任何状态时,链接关系http://identifiers.emc.com/linkrel/delete可以出现在批处理资源上,客户端遵循该链接关系以移除该批处理等等。此外,链接关系可以包括链接至批处理集合资源、批处理能力资源、批处理资源本身的链接关系。例如,客户端可以基于链接至批处理资源本身的链接关系来获取特定批处理、改变特定批处理的状态或者移除特定批处理。应当理解,上述链接关系仅作为示例的目的,而不旨在穷尽所有可能的链接关系。

基于以上描述的与批处理相关的各种资源(包括批处理集合资源、批处理能力资源以及批处理资源,也可统称为批处理数据模型),以下给出创建批处理的请求和响应的示例代码(7)、获取异步批处理的请求和响应的示例代码(8)、暂停异步批处理的请求和响应的示例代码(9)以及移除批处理的请求和响应的示例代码(10)

创建批处理请求

创建批处理响应

示例代码(7)

获取异步批处理请求

GET<base URI>/batches/b5912d81/operations HTTP/1.1

Authorization:<encoded user credential>

Accept:application/atom+xml

获取异步批处理响应

示例代码(8)

暂停异步批处理请求

PUT<base URI>/batches/b5912d71HTTP/1.1

Authorization:<encoded user credential>

Accept:application/vnd.emc.documentum+xml

暂停异步批处理响应

示例代码(9)

移除异步批处理请求

DELETE<base URI>/batches/b5912d77HTTP/1.1

Authorization:<encoded user credential>

移除异步批处理响应

HTTP/1.1204No Content

示例代码(10)

至此,方法100结束。

下面参考图2,图2图示了根据本公开的实施例的用于实现多个内容管理服务操作的方法200的流程图。方法200包括步骤S201至S202。

在步骤S201,服务器从客户端接收针对批处理的批处理服务请求,其中所述批处理包括多个内容管理服务操作。

根据本公开的实施例,服务器从客户端接收的批处理服务请求包括以下批处理服务请求中的一种:创建并执行新的批处理;获取已创建的全部批处理;获取支持的批处理特征;获取批处理;改变批处 理的状态;以及移除批处理。这些批处理服务请求可以参考前述描述和示例代码(1)至(10)来理解,在此不再作再次的详细描述。

接下来,方法200进行至步骤S202。在步骤S202,服务器响应于所述批处理服务请求,执行所述批处理。

在步骤S201中接收到的批处理服务请求指示了批处理的运行模式,其中所述运行模式包括以下一种或者多种:事务性模式或者非事务性模式;同步模式或者异步模式;顺序模式或者非顺序模式;错误即终止执行模式或者错误仍继续执行模式;以及结束即移除模式或者结束仍保留模式。

根据本公开的实施例,服务器因此将根据所指示的批处理运行模式来执行所述批处理。例如,当指示批处理以事务性模式运行时,服务器将批处理包含的操作集合被当作单个单元,并且确保由一个过程执行的操作集合不被另一过程打断。又如,当指示批处理以同步模式运行时,服务器仅当全部操作被完成时才对客户端做出响应,并且全部操作的结果将一次全部返回至客户端;而当指示批处理以异步模式运行时,服务器立刻向客户端返回具有批处理执行状态和链接的响应。例如,当指示批处理以非顺序模式运行时,服务器可以自由确定顺序地或者并行地执行批处理中包括的多个操作。又如,当指示批处理以结束仍保留模式运行时,服务器可以选择保留批处理实例(及其操作结果)直到客户端明确地删除它;或者当指示批处理以结束即移除模式运行时,服务器可以选择在完整的结果由客户端检索一次即立刻移除批处理实例。

根据本公开的实施例,服务器还将负责批处理的状态转换中的一部分,例如当响应于创建批处理的请求而创建了新的批处理后,该批处理立刻处于初始状态。例如,当服务器具有执行批处理的能力时,服务器必须在没有客户端交互的情况下自动地将批处理状态从初始状态转换为运行状态等。

接下来,方法200进行至步骤S203。在步骤S203,服务器向客户端发送批处理服务响应,其中所述批处理服务响应指示了批处理 的状态和执行的结果中的至少一个。

如上所述,根据本公开的实施例,服务器向客户端发送指示了批处理的状态的批处理服务响应,其中批处理的状态包括初始状态、运行状态、暂停状态以及结束状态中的其中一种。此外,批处理响应还指示了批处理的所有者、创建时间、结束时间、包含的操作的总数等信息。此外,在批处理服务响应中还包括对批处理中包括的多个操作中的每个操作的状态的指示、每个操作对单个资源的请求的响应、每个操作的开始执行时间以及每个操作结束执行时间等信息。即,批处理服务响应还指示了批处理中包括的多个操作中的每个操作的状态和/或执行的结果。

根据本公开的实施例,批处理服务响应还可以指示在与批处理相关的资源上可以执行的操作,该操作通过在批处理服务响应中包括的链接关系来指示。链接关系用来指示客户端可以根据批处理的状态对批处理执行哪些操作。REST客户端遵循链接关系来改变批处理的状态。

根据本公开的实施例,服务器向客户端发送的批处理服务响应包括以下批处理服务响应中的一种:对于创建并执行新的批处理的响应;对于获取已创建的全部批处理的响应;对于获取支持的批处理特征的响应;对于获取批处理的响应;对于改变批处理的状态的响应;以及对于移除批处理的响应。

基于以上描述的批处理数据模型(包括与批处理相关的各种资源等),参考前述描述和以上给出的创建批处理的请求和响应的示例代码(7)、获取异步批处理的请求和响应的示例代码(8)、暂停异步批处理的请求和响应的示例代码(9)以及移除批处理的请求和响应的示例代码(10)可以清楚地理解服务器发送的各种响应的规则和形式。

至此,方法200结束。

下面参考图3,图3示出了根据本公开的实施例的针对批处理的状态转换300的示图。

如上所述,批处理的状态包括初始状态、运行状态、暂停状态以及结束状态(由于“已移除”表示批处理实例已经被服务器移除,此时可以理解为批处理不存在,因为“已移除”不作为批处理的状态之一)。当客户端在服务器侧创建了批处理后(即图中的POST@BatchFeed),该批处理立刻处于初始状态。REST客户端遵循链接关系来改变批处理的状态。例如:当批处理处于初始状态或者运行状态时,链接关系http://identifiers.emc.com/linkrel/halt出现在异步批处理资源上,客户端遵循该链接关系以暂停该异步批处理(即图中的PUT@REL(halt))。当批处理处于任何状态时,链接关系http://identifiers.emc.com/linkrel/delete出现在批处理资源上,客户端遵循该链接关系以移除该批处理(即图中的DELETE@REL(delete))。

下面参考图4,图4示出了根据本公开的实施例的用于实现多个内容管理服务操作的装置400的框图。装置400包括:请求发送单元401,被配置为发送针对批处理的批处理服务请求,其中所述批处理包括多个内容管理服务操作;以及响应接收单元402,被配置为接收批处理服务响应,其中所述批处理服务响应指示所述批处理的状态和执行的结果中的至少一个。

根据本公开的实施例,请求发送单元401发送以下批处理服务请求中的一种:创建并执行新的批处理;获取已创建的全部批处理;获取支持的批处理特征;获取批处理;改变批处理的状态;以及移除批处理。

根据本公开的实施例,获取支持的批处理特征包括获取以下特征中的一种或多种:事务性、非事务性或者两者;同步、异步或者两者;顺序、非顺序或者两者;错误即终止执行、错误仍继续执行或者两者;结束即移除、结束仍保留或者两者;允许或者不允许暂停异步批处理;以及允许或者不允许哪些资源用于批处理。

根据本公开的实施例,批处理的状态包括初始状态、运行状态、暂停状态以及结束状态中的其中一种。

根据本公开的实施例,请求发送单元401被配置为发送指示所 述批处理的运行模式的批处理服务请求,其中所述运行模式包括以下一种或者多种:事务性模式或者非事务性模式;同步模式或者异步模式;顺序模式或者非顺序模式;错误即终止执行模式或者错误仍继续执行模式;以及结束即移除模式或者结束仍保留模式。

根据本公开的实施例,在所述批处理服务请求中包括针对每个内容管理服务操作的请求,其中所述请求包括附件元素,所述附件元素使得与所述每个内容管理服务操作相关的内容能够被分离地上传或者下载。

根据本公开的实施例,与所述每个内容管理服务操作相关的内容是文本类型或者其他媒体类型。

根据本公开的实施例,响应接收单元402接收以下批处理服务响应中的一种:对于创建并执行新的批处理的响应;对于获取已创建的全部批处理的响应;对于获取支持的批处理特征的响应;对于获取批处理的响应;对于改变批处理的状态的响应;以及对于移除批处理的响应。

下面参考图5,图5示出了根据本公开的实施例的用于实现多个内容管理服务操作的装置500的框图。装置500包括:请求接收单元501,被配置为接收针对批处理的批处理服务请求,其中所述批处理包括多个内容管理服务操作;批处理执行单元502,被配置为响应于所述批处理服务请求,执行所述批处理;以及响应发送单元503,被配置为发送批处理服务响应,其中所述批处理服务响应指示所述批处理的状态和执行的结果中的至少一个。

根据本公开的实施例,所述批处理执行单元被配置为根据所述批处理服务请求指示的所述批处理的运行模式,执行所述批处理,其中所述运行模式包括以下一种或者多种:事务性模式或者非事务性模式;同步模式或者异步模式;顺序模式或者非顺序模式;错误即终止执行模式或者错误仍继续执行模式;以及结束即移除模式或者结束仍保留模式。

下面参考图6,其图示了适于实现本公开的示例实施例的计算 机系统600的框图。如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有装置400或者装置500操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分409经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本公开的实施例,参考图1描述的方法100和参考图2描述的方法200可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行方法100的任意步骤。例如,本公开的实施例还包括一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行方法200的任意步骤。

综上所述,根据上述本公开的实施例,提供了一种用于实现多个内容管理服务操作的方法和装置。与现有技术相比,本公开的实施例在不需要底层系统具有内置批处理能力的情况下能够将多个内容管理服务操作汇集到一个批处理中并且提供完整的批处理特征选项以支持不同的内容管理需求,同时本公开的实施例能够通过使用批处 理附件来支持批处理中内容的二进制上传及下载,因此可以被广泛地应用于RESTful服务中。

一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。

而且,流程图中的各框可以被看作是方法步骤,和/或计算机程序代码的操作生成的操作,和/或理解为执行相关功能的多个耦合的逻辑电路元件。例如,本公开的实施例包括计算机程序产品,该计算机程序产品包括有形地实现在机器可读介质上的计算机程序,该计算机程序包含被配置为实现上文描述方法的程序代码。

在公开的上下文内,机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存取存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。

用于实现本公开的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算 机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。

另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。

针对前述本公开的示例实施例的各种修改、改变将在连同附图查看前述描述时对相关技术领域的技术人员变得明显。任何及所有修改将仍落入非限制的和本公开的示例实施例范围。此外,前述说明书和附图存在启发的益处,涉及本公开的这些实施例的技术领域的技术人员将会想到此处阐明的本公开的其他实施例。

将会理解,本公开的实施例不限于公开的特定实施例,并且修改和其他实施例都应包含于所附的权利要求范围内。尽管此处使用了特定的术语,但是它们仅在通用和描述的意义上使用,而并不用于限制目的。

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