CN107870814B - 用于内容管理批处理的方法和设备 - Google Patents
用于内容管理批处理的方法和设备 Download PDFInfo
- Publication number
- CN107870814B CN107870814B CN201610847714.5A CN201610847714A CN107870814B CN 107870814 B CN107870814 B CN 107870814B CN 201610847714 A CN201610847714 A CN 201610847714A CN 107870814 B CN107870814 B CN 107870814B
- Authority
- CN
- China
- Prior art keywords
- batch
- template
- request
- content management
- batch template
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例公开了一种用于对包括多个内容管理服务操作的批处理进行处理的方法和设备。该方法包括:在客户端处,确定与批处理相关联的批处理模板,批处理模板包括多个内容管理服务操作的可共享信息和可变字段;确定可变字段的值;基于批处理模板和值,生成用于执行批处理模板的第一请求;以及向服务器发送第一请求。本公开的实施例还提供相对应的在服务器侧执行的方法,以及相应的设备。
Description
技术领域
本公开的实施例总体上涉及内容管理服务的处理,并且具体地,涉及一种用于内容管理批处理的方法和设备。
背景技术
在大数据应用环境下,尤其在内容管理系统中,表述性状态传递(REST)软件构架得到越来越多关注。在满足REST原则(RESTful)的服务中,批处理服务具有独特优势,其将多个操作(例如内容管理服务操作)汇集到一个用户事务中,从而提高了服务效率并且降低了通信开销。另一方面,批处理服务还使得用户能够控制整个批处理的行为,这在某些应用场景中是尤为有利的。然而,目前采用的批处理服务方式,仍然存在一定的制约。例如,批处理无法重复使用,或者有些情况下,包含所有操作请求及其信息的批处理成为太过“庞大”的请求,等等。因此,需要改进批处理过程以应对这些制约,提供更易于使用并且更灵活和高效的内容管理批处理方案。
发明内容
总体上,本公开的实施例通过改进内容管理批处理而提供一种优化内容管理服务的处理的解决方案。
根据本公开的第一方面,提供一种用于对包括多个内容管理服务操作的批处理进行处理的方法。该方法包括:在客户端处,确定与批处理相关联的批处理模板,批处理模板包括多个内容管理服务操作的可共享信息和可变字段;确定可变字段的值;基于批处理模板和值,生成用于执行批处理模板的第一请求;以及向服务器发送第一请求。
根据本公开的第二方面,提供一种用于对包括多个内容管理服务操作的批处理进行处理的方法。该方法包括:从客户端接收用于执行批处理模板的第一请求,第一请求包括批处理模板的标识,批处理模板包括针对多个内容管理服务操作的可共享信息和可变字段;基于第一请求,确定可变字段的值;将值填入标识所指示的批处理模板以用于执行批处理模板。
根据本公开的第三方面,提供一种电子设备。该设备包括:处理单元;存储器,耦合至处理单元,存储器和处理单元一起被配置为使得电子设备执行动作,动作包括:确定与批处理相关联的批处理模板,批处理模板包括多个内容管理服务操作的可共享信息和可变字段;确定可变字段的值;基于批处理模板和值,生成用于执行批处理模板的第一请求;以及向服务器发送第一请求。
根据本公开的第四方面,提供一种电子设备。该设备包括:处理单元;存储器,耦合至处理单元,存储器和处理单元一起被配置为使得电子设备执行动作,动作包括:接收用于执行批处理模板的第一请求,第一请求包括批处理模板的标识,批处理模板包括针对多个内容管理服务操作的可共享信息和可变字段;基于第一请求,确定可变字段的值;以及将值填入标识所指示的批处理模板以用于执行批处理模板。
根据本公开的第五方面,提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程度指令用于执行根据本公开的第一方面和第二方面所描述的方法。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1图示根据本公开的一个实施例的批处理模板处理的过程;
图2图示根据本公开的一个实施例的在客户端处实施的方法的流程图;
图3图示根据本公开的一个实施例的在服务器处实施的方法的流程图;
图4示出根据本公开的实施例的客户端设备的示意性框图;
图5示出根据本公开的实施例的服务器端设备的示意性框图;以及
图6根据本公开的另一实施例的设备的适宜性框图。
具体实施方式
现将结合附图对本公开的实施例进行具体的描述。应当注意的是,附图中对相似的部件或者功能组件可能使用同样的数字标示。所附附图仅仅旨在说明本公开的实施例。本领域的技术人员可以在不偏离本公开精神和保护范围的基础上从下述描述得到替代的实施方式。
如本文中所述,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”。术语“基于”可以被理解为“至少部分地基于”。术语“一个实施例”可以被理解为“至少一个实施例”。术语“另一实施例”可以被理解为“至少一个其它实施例”。
为讨论方便起见,在本文中,将以RESTful服务以及其中的批处理为例来具体描述本公开的实施例。RESTful服务中的批处理指使用特定批处理资源执行对RESTful服务的一系列资源操作。下面首先介绍在RESTful服务中的批处理。可以理解,批处理的需求可以针对不同的资源操作、不同的用户场景或者不同的产品而不同,本文中仅以内容管理服务作为示例对本公开的基本构思进行描述。另外,仅以可扩展标记语言(XML)来给出示例,可以理解,也可以采用基于JavaScript语言的轻量级的数据交换(JSON)或者其他格式。
为了能够实现批处理服务,需要相应的批处理协议支持,用以“批处理”地执行若干单个操作。批处理协议例如包括批处理相关的资源定义、批处理相关的操作定义等等。在本文中对此将不再详细展开。示例(1)示出创建多个文件的批处理,以下为其相应示例代码。
示例代码(1)
在示例(1)中,批处理包括1000个操作用以创建1000个文件。同时可以看到,批处理具有“同步(synchronous)”、“事务性(transactional)”、“顺序(sequential)”、“错误即终止(on-error)”等属性或选项。作为示例,该批处理具有以下属性值:
·“同步”属性值为“真”,即客户端等待响应直到在服务器完成操作。当批处理请求被发送到服务器时,服务器仅当全部操作完成时对客户端做出响应。全部操作的结果将一次全部返回至客户端。
·“事务性”属性值为“真”,即操作集合被当做单个单元处理,由一个过程执行的操作集合不被另一过程中断,并且对批处理中的所有操作可以进行全局控制,例如,如果一个文件创建失败,则可以中止所有其他文件创建。
·“顺序”属性值为“真”,即批处理中的操作将以提交的次序来执行。
·“错误即终止”属性值为“失败”,即当批处理中的一个或多个操作失败时,整个批处理将终止执行而不是继续执行。
从以上示例(1)可以看到,利用批处理协议,若干操作在一个请求中发送,并且使得用户能够控制整个批处理的行为。然而也可以看到,这种批处理方式存在一些缺陷,例如,存在大量的冗余信息,比发送单个请求复杂得多,包含了所有操作及其相关信息以至于批处理请求成为一个“庞大”的请求,批处理无法重复使用等。这不仅影响了执行效率,给用户带来了使用上的困难,在有些情况下还可能对内容管理系统性能产生不利影响。例如,由于无法重复使用批处理,不同应用场景的用户不得不构造不同的批处理,这些批处理同样包含影响性能的参数。即,如果请求是事务性的、同步的或以并行处理的。用户设置的不正确的参数将造成不必要的性能下降,甚至在最差情况下产生不正确的行为。
缓解或解决以上问题的一种方式是扩展批处理协议,将批处理中的公共信息提取到一起。示例(2)示出了这样的一种增强型批处理,以下为其相应的示例代码。
示例代码(2)
在示例(2)中,通过增加公共部分“批处理请求(batch-request)”,去除了重复信息。该增强型批处理相比示例(1)更为简洁,但其一个关键制约是,这个批处理仅支持一个类型的操作。利用“批处理请求(batch-request)”,仅支持具有相同的“方法(method)”、资源“统一资源标识符(URI)”、“头部(headers)”等的相同操作。如果有两种不同的操作,甚至相同的操作但具有不同的id,例如,需要在文件夹a下创建500个文件,在文件夹b下创建另500个文件,那么在一个批处理中无法实现。而事实上,任何所支持的操作都应该能在一个批处理中执行。
为了解决以上内容管理服务批处理的潜在问题,本公开的实施例提供一种对包括多个内容管理服务操作的批处理进行改进的解决方案。在本公开的实施例中,通过仅发送一次重复信息,使得各种操作可以共享这些信息,以实现更灵活、高效的批处理。这些重复的信息例如可以以模板的形式预先进行配置,在需要对内容管理服务进行处理时,客户端仅需要向服务器提供模板中的一些变值,服务器然后应用这些变值到模板中并相应地执行批处理。
下面首先对本公开的实施例中所采用的批处理模板以及与批处理模板相关的资源进行描述。根据本公开的实施例,批处理模板有两种模型或称表示(representation),一个模型用于管理批处理模板本身,另一个模型用于提交针对待被执行的模板的值。除了一些值可变的特征或字段,批处理模板应该与批处理模型共享相同的模型,以便与现有的批处理模型更好地兼容。示例代码(3)示出了批处理模板表示,以下为其相应的示例代码。
示例代码(3)
从批处理模板表示中可以看到,批处理模板包括多个内容管理服务操作的可共享信息和可变字段(也称之为变量)。可共享信息例如是批处理的操作属性或特征,如示例(3)中的“同步”、“事务性”等属性,或者是各个操作中其值固定的字段,例如其值固定的“方法”、“URI”等。
为了执行批处理模板,应该提供变量值,以便填入到模板中而执行批处理模板。引入批处理模板值模型来将值传递给模板。批处理模板定义了几种变量,这些变量可以在操作定义中的任何位置使用(除了只读值)。例如,定义如下三种变量:
·值单一变量:变量仅有一个值,并且其将被用于定义有该变量的所有操作,但其不会扩展操作模板。在一个示例中,值单一变量在批处理模板可以用例如'${}'表示。
·值重复变量:变量定义了一系列的值,每个值都将扩展到定义该变量的操作模板。在一个示例中,值重复变量在批处理模板可以用例如'$[]'表示。
·系统定义变量:由系统(服务器)按照预定义自动给出值的变量。在一个示例中,系统定义变量在批处理模板可以用例如'$dctm_xx'表示。
以上三种变量中,用户需要提供值单一变量和值重复变量以便执行批处理模板。示例(4)示出了批处理模板值表示,以下为其相应的示例代码。
示例代码(4)
对于系统定义变量,在某些应用场景中非常有益。一个示例是针对媒体类型例如Content-Type和Accept。假设批处理模板是以application/vnd.emc.documentum+xml提交,在批处理模板中,Content-Type和Accept为application/vnd.emc.documentum+xml。当用户以JSON格式提交批处理时,Content-Type和Accept可能具有不正确的值,而客户端无法来对它们进行设置。针对这种情况,批处理模板可以提供系统定义变量,例如$dctm_mediatype_single,$dctm_mediatype_collection。然后,用户可以创建示例(5)的模板,以下为其相应的示例代码。
示例代码(5)
当用户以XML格式提交批处理时,变量$dctm_mediatype_single将自动被替换为application/vnd.emc.documentum+xml,同时,变量$dctm_mediatype_collection将自动被替换为application/atom+xml。另一方面,如果批处理是以JSON格式提交,$dctm_mediatype_single和$dctm_mediatype_collection都将为application/vnd.emc.documentum+json。
另一系统定义变量的示例是操作id。一般情况下,每个批处理操作都需要操作id。利用模板的批处理也提供这样的行为。当定义批处理模板时,操作id也随之被定义。可以定义两种操作id:一种是操作id由服务器以序列升序自动生成,此时可以使用$dctm_id。当提交批处理变量,操作id不需要发送到服务器;另一种是定义操作id为正常的值重复变量,并提交自定义值。示例(6)示出了第一种情况的操作id,示例(7)示出了第二种情况的操作id,以下分别为其相应的示例代码。
示例代码(6)
示例代码(7)
由此,服务器根据系统定义变量的类型,针对多个内容管理服务操作而确定系统定义类字段的字段值。例如,对于以上描述的媒体类型,根据不同情况确定内容管理服务操作的媒体类型;对于操作id,同样地例如根据上述的两种情况,对多个内容管理服务操作的每个操作确定操作id值。
RESTful服务定义了一系列的资源,并且通过HTTP方法来操纵这些资源。根据本公开的实施例,与批处理模板相关的资源主要包括两种:批处理模板集合资源和批处理模板资源。批处理模板集合资源是RESTful服务中的顶层资源,其是在资源库或者租户(tenant)中创建的所有批处理模板的集合容器。批处理模板集合资源允许用户在集合中创建新的批处理模板,还可以允许用户检索批处理模板集合。
可以利用批处理模板集合资源来创建新的批处理模板以及获取已创建的全部批处理模板。例如,在现有的主文档资源、资源库资源或者租户资源中,可以存在指向批处理资源的新的链接关系:http://identifiers.emc.com/linkrel/batch-templates。基于该链接关系,客户端可以使用HTTP方法中的GET方法来获取已创建的全部批处理模板;或者为了创建新的批处理模板,客户端可以向批处理模板集合POST新的批处理模板。
批处理模板资源是在资源库或者租户中由特定用户创建的批处理模板的单个实例。批处理模板可以是公共的或者私有的,也可以被修改或删除。为了便于使用,批处理模板优选地与批处理具有相同的表示。需要注意的是,批处理选项是不可由变量替代的。批处理选项将由批处理模板直接用于新创建的批处理。下次当客户端创建批处理时,只需要提供所有需要的变量值。
可以利用批处理模板资源来执行具有变量值的批处理模板、获取单个批处理模板、更新单个批处理模板以及移除单个批处理模板。例如,客户端可以使用HTTP方法中的GET方法来获取单个批处理模板;客户端可以使用HTTP方法中的PUT方法来对单个批处理模板进行更新;客户端可以使用HTTP方法中的DELETE方法来对单个批处理模板进行移除;或者为了执行批处理模板,客户端可以向批处理模板POST变量值和批处理模板相关信息。
下面结合图1对本公开的一个具体实施例进行描述。图1图示了根据本公开的一个实施例的批处理模板处理的过程100,过程100主要基于客户端-服务器操作模式。在该实施例中,以内容管理服务的批处理为例,也即内容管理系统包括客户端10和服务器20。如以上所描述的批处理模板可以被存储在例如服务器20中,客户端10可以如以上所描述的使用不同的HTTP方法向服务器20发送批处理模板操作请求,服务器20相应地返回对这些请求的响应。
在过程100中,示出了客户端10生成(101)批处理模板。在一个实施例中,该生成(101)可以如下进行:基于内容管理服务操作的不同用例,确定多个内容管理服务操作的可共享信息和可变字段,并基于这些可共享信息和可变字段,生成批处理模板。然后,向服务器发送(102)用于创建批处理模板的请求,该请求中至少包括生成的批处理模板的表示。发送该请求可以例如通过HTTP方法的POST方法,向批处理模板集合资源POST新的批处理模板。示例(8)示出了创建批处理模板,以下为其相应的示例代码。
示例代码(8)
在示例(8)中,由于只有一种类型的操作,因此批处理模板中仅包括一个操作模板。在该示例中,批处理模板的可共享信息除了批处理的选项之外,还包括一些操作信息,例如“headers”、“method”。批处理模板的变量(可变字段)包括“id”、“uri”和“entity”,并且“id”为系统定义变量,“uri”为值单一变量,“entity”为值重复变量。创建批处理模板的过程在下文中还将结合多个具体用例进一步描述。
服务器20接收到该请求后,存储(104)该批处理模板,并且可选地可以为批处理模板指派标识,该标识唯一地与该批处理模板相关联,从而在批处理模板集合资源中创建新的批处理模板。随后,服务器20向客户端10返回(105)相应的响应。
可以理解,尽管过程100示出了生成(101)批处理模板是在客户端,也可以在其他合适之处生成批处理模板,例如在服务器20处等。相应地,在服务器20创建批处理模板之后,可以将批处理模板信息自动地或定期地或基于客户端10的请求而传递给客户端10。
当客户端10需要执行批处理模板时,确定(108)所要使用的批处理模板,并确定(108)可变字段(变量)的值。客户端10可以有多种方式来确定所要使用的批处理模板,例如,可以通过HTTP方法的GET方法获取批处理模板信息,或者可以从其他实体获取批处理模板;或者可以基于客户端10本地所存储的批处理模板,等等。客户端10还需要确定例如值可变字段的值以及值重复字段的值。
客户端10然后向服务器20发送(116)用于执行批处理模板的请求。在一个实施例中,客户端10通过HTTP方法的POST方法对服务器20的批处理资源进行操控,将批处理模板的可变字段的值以及确定的待执行的批处理模板信息通过POST方法传递给服务器20,以便服务器20能够执行相应的批处理模板。在一个实施例中,所请求要执行的批处理模板可以以其标识来指示。示例(9)示出了执行批处理模板,要执行的批处理模板如示例(8),以下为其相应的示例代码。
示例代码(9)
在示例(9)中,批处理模板的标识即为示例(8)所创建的批处理模板,示例(9)还提供了与示例(8)的批处理模板相对应的变量值。例如,“uri”的值为“http://localhost/folders/folder_xx/documents”。另外,由于“id”为系统定义变量,客户端10不需要传递该变量的值。
服务器20接收到执行批处理模板的请求,可以从该请求中确定可变字段的值以及所请求要执行的批处理模板。然后服务器20可以执行(120)批处理模板,例如,将可变字段的值填入批处理模板标识所指示的批处理模板,执行批处理,从而对多个内容管理服务操作进行处理。随后,服务器20向客户端10返回(124)相应的响应。
由此,实现了以批处理模板的形式执行多个内容管理服务操作的批处理。客户端10还可以向服务器20发送(128)其他的批处理模板操作请求,对批处理模板集合资源或批处理资源或二者进行操作。这些模板操作请求可以包括:针对单个批处理模板的获取请求;针对已创建的全部批处理模板的获取请求;批处理模板更新请求;以及批处理模板移除请求等。具体地,例如通过如上所描述的HTTP方法,利用HTTP方法中的GET方法来获取已创建的全部批处理模板,利用HTTP方法中的GET方法来获取单个批处理模板;利用HTTP方法中的PUT方法来对单个批处理模板进行更新;利用HTTP方法中的DELETE方法来对单个批处理模板进行移除,等等。
服务器20接收到这些批处理模板操作请求,相应地操作(132)请求中所指示的批处理模板。随后,服务器20可以向客户端10返回(136)相应的响应。可以理解,过程100中服务器20向客户端10返回(105,124,136)的相应的响应是针对各批处理模板操作请求的,并且是将执行相应批处理操作模板的结果信息反馈给客户端10,可以根据实际用例有不同的内容体现,本文中对此不再赘述。
为了进一步说明批处理模板的构建,以下对若干具体用例在不使用批处理模板和使用批处理模板两种情形下分别进行描述。这些具体用例以可扩展标记语言(XML)来表示,可以理解,也可以采用基于JavaScript语言的轻量级的数据交换(JSON)或者其他格式。
第一用例是将多个用户添加到组中。示例代码(10)示出了不使用批处理模板情形的批处理中的操作;示例代码(11)和示例代码(12)示出了使用批处理模板情形的批处理中的操作。
示例代码(10)
示例代码(11)
示例代码(12)
从示例(10)到示例(12)对比可以看出,在将多个用户添加到组中时,批处理内的多个操作的“uri”(用户组uri)、“方法”相同,“请求主体”不同。因此,在示例(11)所示的批处理模板表示中,将“方法”确定为固定“POST”方法,将“uri”确定为值单一变量以便灵活设置用户组,而“请求主体”中的“用户uri”则被确定为值重复变量。另外,将“操作id”确定为如上文所描述的针对操作id的系统定义变量,将媒体类型确定为如上文所描述的针对媒体类型的系统定义变量。生成了示例(11)的批处理模板后,可以如过程100中结合102步骤所描述的,将批处理模板POST到批处理模板集合资源,以创建批处理模板。
另一方面,在示例(12)所示的相应的批处理模板值表示中,提供除了系统定义变量之外的变量的值,即提供用户组的uri和用户的uri的值。随后,可以如过程100中结合116步骤所描述的,将批处理模板变量值POST到批处理模板资源,以执行批处理模板。
第二用例是删除多个对象。示例代码(13)示出了不使用批处理模板情形的批处理中的操作;示例代码(14)和示例代码(15)示出了使用批处理模板情形的批处理中的操作。
示例代码(13)
示例代码(14)
示例代码(15)
从示例(13)到示例(15)对比可以看出,在删除多个对象时,可以将“方法”确定为固定“DELETE”方法,将“操作id”确定为如上文所描述的针对操作id的系统定义变量,将媒体类型确定为如上文所描述的针对媒体类型的系统定义变量,而将“uri”(对象的uri)确定为值重复变量以便对多个对象操作。生成了示例(14)的批处理模板后,可以如过程100中结合102步骤所描述的,将批处理模板POST到批处理模板集合资源,以创建批处理模板。另一方面,在示例(15)所示的相应的批处理模板值表示中,提供除了系统定义变量之外的变量的值,即提供对象的uri的值。随后,可以如过程100中结合116步骤所描述的,将批处理模板变量值POST到批处理模板资源,以执行批处理模板。
第三用例是在同一文件夹下创建多个对象。示例代码(16)示出了不使用批处理模板情形的批处理中的操作;示例代码(17)和示例代码(18)示出了使用批处理模板情形的批处理中的操作。
示例代码(16)
示例代码(17)
示例代码(18)
从示例(16)到示例(18)对比可以看出,在同一个文件夹下创建多个对象时,可以将“方法”确定为固定“POST”方法,将“操作id”确定为如上文所描述的针对操作id的系统定义变量,将媒体类型确定为如上文所描述的针对媒体类型的系统定义变量,而将“uri”(文件夹对象的uri)确定为值单一变量,将作为附件的对象“href”以及对象的属性“objectname”确定为值重复变量。生成了示例(17)的批处理模板后,可以如过程100中结合102步骤所描述的,将批处理模板POST到批处理模板集合资源,以创建批处理模板。另一方面,在示例(18)所示的相应的批处理模板值表示中,提供除了系统定义变量之外的变量的值,即提供对象的属性“object name”以及“href”的值。随后,可以如过程100中结合116步骤所描述的,将批处理模板变量值POST到批处理模板资源,以执行批处理模板。
第四用例是将一个用户添加到多个组中。示例代码(19)示出了不使用批处理模板情形的批处理中的操作;示例代码(20)和示例代码(21)示出了使用批处理模板情形的批处理中的操作。
示例代码(19)
示例代码(20)
示例代码(21)
第五用例是将多个用户从一个组移除并将他们添加到另一组中中。示例代码(22)和示例代码(23)分别示出了批处理模板表示和相应的批处理模板值表示。
示例代码(22)
示例代码(23)
从示例(19)到示例(23)可以看出,使用批处理模板可以很灵活地将多个不同的操作方法包含在批处理模板中,并且灵活地确定不同类型的变量,从而适应各种不同的用例场景。
以上结合各种示例和过程100详细描述了本公开的实施例。下面参考图2和图3简要描述客户端10和服务器20处的操作。具体地,图2示出了在客户端10处实施的方法200的流程图,而图3示出了相应地在服务器20处实现的方法300的流程图。
如图2所示,在202,在客户端处,确定与批处理相关联的批处理模板,批处理模板包括多个内容管理服务操作的可共享信息和可变字段。如上文所描述的,客户端10可以有多种方式来确定所要使用的批处理模板,例如,可以通过HTTP方法的GET方法获取批处理模板信息,或者可以从其他实体获取批处理模板;或者可以基于客户端10本地所存储的批处理模板,等等。
接着,在204,确定可变字段的值。客户端10根据模板中定义的不同类型的可变字段(变量),还需要确定例如值可变字段的值以及值重复字段的值。在206,基于批处理模板和可变字段值,生成用于执行批处理模板的第一请求。然后在208,向服务器发送第一请求,以执行批处理模板及相应地执行多个内容管理服务操作。在一个实施例中,客户端10将批处理模板的可变字段的值以及确定的待执行的批处理模板信息通过POST方法传递给服务器20,以便服务器20能够执行相应的批处理模板。
在服务器20处,如图3所示,在302,从客户端接收用于执行批处理模板的第一请求,第一请求包括批处理模板的标识,批处理模板包括针对多个内容管理服务操作的可共享信息和可变字段。在304,基于第一请求,确定可变字段的值。在一个实施例中,第一请求中可以携带有可变字段的值,服务器20可以从第一请求中直接获取可变字段的值。在另一实施例中,第一请求中可以指示与可变字段值关联的信息,服务器20可以基于第一请求而获取或者导出可变字段的值。
然后,在306,将可变字段的值填入标识所指示的批处理模板以用于执行批处理模板。服务器20可以基于第一请求而检索批处理模板,并将相应的可变字段的值填入到该批处理模板,从而批处理地执行多个内容管理服务操作。
图4示出根据本公开的实施例的用于对多个内容服务操作的批处理进行处理的装置400的示例性结构图。在一个实施例中,装置400可以被实施为客户端设备(例如,客户端10)或其的一部分。装置400可操作用于执行参照图1所描述的过程100和图2所描述的方法200以及任何其他的处理和方法。
为此,装置400包括:第一确定单元402,被配置为确定与批处理相关联的批处理模板,批处理模板包括多个内容管理服务操作的可共享信息和可变字段;第二确定单元404,被配置为确定可变字段的值;生成单元406,被配置为基于批处理模板和可变字段值而生成用于执行批处理模板的第一请求;发送单元408,被配置为向服务器发送第一请求,以执行批处理模板及相应地执行多个内容管理服务操作。
图5示出根据本公开的实施例的用于对多个内容服务操作的批处理进行处理的装置500的示例性结构图。在一个实施例中,装置500可以被实施为服务器侧设备(例如,服务器20)或其的一部分。装置500可操作用于执行参照图1所描述的过程100和图3所描述的方法300以及任何其他的处理和方法。
为此,装置500包括:接收单元502,被配置为从客户端接收用于执行批处理模板的第一请求,第一请求包括批处理模板的标识,批处理模板包括针对多个内容管理服务操作的可共享信息和可变字段;确定单元504,被配置为确定可变字段的值;填值单元506,被配置为基于批处理模板和可变字段值而生成用于执行批处理模板的第一请求;发送单元408,被配置为将可变字段的值填入标识所指示的批处理模板以用于执行批处理模板。
应当理解,装置400和500中记载的每个单元与参考图1、图2和图3所描述的方法和/或通信过程100、200和300中的每个步骤相对应。因此,上文结合图1、图2和图3所描述的操作和特征同样适用于装置400和500及其中包含的单元,并且具有同样的效果,具体细节不再赘述。
图6示出了一个可以用来实施本公开的实施例的设备600的示意性框图,设备600可以用来实现用于进行随机接入过程通信的设备,其例如包括上文描述的客户端10或服务器20。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元1408加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
在某些实施例中,处理单元601可被配置为执行上文所描述的各个过程和处理,例如方法/过程100、200以及300。例如,在一些实施例中,方法/过程100、200以及300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法/过程100、200以及300的一个或多个步骤。
根据本公开的一个实施例,提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行根据本公开的方法/过程100、200以及300。
本公开的实施例提供的基于批处理模板对多个内容管理服务操作进行批处理的方案,可以至少具有以下优点:批处理模板可以被存储并重复使用,这使得批处理模板能够被更有效地维护,而在使用时可以仅提供一些变量值,不仅促进了高效的工作流程,还能降低数据处理错误;采用模板扩展,用户不需要针对同一类操作而定义很多个操作,从而使得模板设置更为容易。操作模板由值重复变量而扩展,每个值重复变量的值产生一个实际的操作;另外显见地,批处理模板也易于使用,并且具有很高的灵活性和兼容性。
通过以上描述和相关附图中所给出的教导,这里所给出的本公开的许多修改形式和其它实施方式将被本公开相关领域的技术人员所意识到。因此,所要理解的是,本公开的实施方式并不局限于所公开的具体实施方式,并且修改形式和其它实施方式意在包括在本公开的范围之内。此外,虽然以上描述和相关附图在部件和/或功能的某些示例组合形式的背景下对示例实施方式进行了描述,但是应当意识到的是,可以由备选实施方式提供部件和/或功能的不同组合形式而并不背离本公开的范围。就这点而言,例如,与以上明确描述的有所不同的部件和/或功能的其它组合形式也被预期处于本公开的范围之内。虽然这里采用了具体术语,但是它们仅以一般且描述性的含义所使用而并非意在进行限制。
Claims (18)
1.一种用于对包括多个内容管理服务操作的批处理进行处理的方法,包括:
在客户端处,从多个批处理模板中选择与所述批处理相关联的批处理模板,所述批处理模板包括所述多个内容管理服务操作的可共享信息和至少一个可变字段,其中所述可共享信息至少包括:根据针对所述多个内容管理服务操作的处理要求而得到的所述批处理的操作特征;
确定所述至少一个可变字段的值;
在所述客户端处基于确定的所述批处理模板和所述值,生成用于执行批处理模板的第一请求;
向服务器发送所述第一请求;以及
通过以下方式创建所述批处理模板:
确定所述可共享信息和所述至少一个可变字段,所述至少一个可变字段包括基于所述多个内容管理服务操作的内容项而得到的系统定义类,所述系统定义类由所述服务器按照预定义自动给出值;
基于所述可共享信息和所述至少一个可变字段,生成所述批处理模板;以及
向所述服务器发送用于创建批处理模板的第二请求,所述第二请求至少包括生成的所述批处理模板的表示。
2.根据权利要求1所述的方法,还包括:
向所述服务器发送以下模板操作请求中的至少一项:
针对单个批处理模板的获取请求;
针对已创建的全部批处理模板的获取请求;
批处理模板更新请求;以及
批处理模板移除请求。
3.根据权利要求1所述的方法,其中确定所述批处理模板包括:
发送用于获取批处理模板的第三请求;
接收针对所述第三请求的响应,所述响应包括至少一个批处理模板;以及
基于所述响应,确定所述批处理模板。
4.根据权利要求1所述的方法,其中所述可共享信息还包括:基于所述多个内容管理服务操作的内容项而得到的所述多个内容管理服务操作所共享的共有信息。
5.根据权利要求1所述的方法,其中所述至少一个可变字段包括基于所述多个内容管理服务操作的内容项而得到的不同类别的可变字段,所述不同类别包括以下至少一项:值单一类、值重复类。
6.一种用于对包括多个内容管理服务操作的批处理进行处理的方法,包括:
从客户端接收用于执行批处理模板的第一请求,所述第一请求包括批处理模板的标识,并且所述批处理模板包括针对所述多个内容管理服务操作的可共享信息和至少一个可变字段,其中所述可共享信息至少包括:根据针对所述多个内容管理服务操作的处理要求而得到的所述批处理的操作特征;
基于所述第一请求,确定所述至少一个可变字段的值,所述至少一个可变字段包括系统定义类,所述系统定义类由用于处理所述批处理操作的服务器按照预定义自动给出值;
将所述值填入所述标识所指示的所述批处理模板以用于执行所述批处理模板;
接收用于创建批处理模板的第二请求,所述第二请求至少包括待创建的批处理模板的表示;
向所述待创建的批处理模板指派标识,所述标识唯一地与所述待创建的批处理模板相关联;以及
存储与所述待创建的批处理模板相关的信息。
7.根据权利要求6所述的方法,其中执行所述批处理模板还包括:
响应于所述批处理模板的所述至少一个可变字段包括所述系统定义类字段,针对所述多个内容管理服务操作确定所述系统定义类字段的值。
8.根据权利要求6所述的方法,还包括:
从所述客户端接收以下模板操作请求中的至少一项:
针对单个批处理模板的获取请求;
针对已创建的全部批处理模板的获取请求;
批处理模板更新请求;以及
批处理模板移除请求。
9.一种电子设备,包括:
处理单元;
存储器,耦合至所述处理单元,所述存储器和所述处理单元一起被配置为使得所述电子设备执行动作,所述动作包括:
从多个批处理模板中选择与所述批处理相关联的批处理模板,所述批处理模板包括多个内容管理服务操作的可共享信息和至少一个可变字段,其中所述可共享信息至少包括:根据针对所述多个内容管理服务操作的处理要求而得到的所述批处理的操作特征;
确定所述至少一个可变字段的值;
基于所述批处理模板和确定的所述值,生成用于执行批处理模板的第一请求;
向服务器发送所述第一请求;
确定所述可共享信息和所述至少一个可变字段,所述至少一个可变字段包括基于所述多个内容管理服务操作的内容项而得到的系统定义类,所述系统定义类由所述服务器按照预定义自动给出值;
基于所述可共享信息和所述至少一个可变字段,生成所述批处理模板;以及
向所述服务器发送用于创建批处理模板的第二请求,所述第二请求至少包括生成的所述批处理模板的表示。
10.根据权利要求9所述的设备,所述动作还包括:
向所述服务器发送以下模板操作请求中的至少一项:
针对单个批处理模板的获取请求;
针对已创建的全部批处理模板的获取请求;
批处理模板更新请求;以及
批处理模板移除请求。
11.根据权利要求9所述的设备,其中确定所述批处理模板包括:
发送用于获取批处理模板的第三请求;
接收针对所述第三请求的响应,所述响应包括至少一个批处理模板;以及
基于所述响应,确定所述批处理模板。
12.根据权利要求9所述的设备,其中所述可共享信息还包括:基于所述多个内容管理服务操作的内容项而得到的所述多个内容管理服务操作所共享的共有信息。
13.根据权利要求9所述的设备,其中所述至少一个可变字段包括基于所述多个内容管理服务操作的内容项而得到的不同类别的所述可变字段,所述不同类别包括以下至少一项:值单一类、值重复类。
14.一种电子设备,包括:
处理单元;
存储器,耦合至所述处理单元,所述存储器和所述处理单元一起被配置为使得所述电子设备执行动作,所述动作包括:
接收用于执行批处理模板的第一请求,所述第一请求包括批处理模板的标识,所述批处理模板包括针对多个内容管理服务操作的可共享信息和至少一个可变字段,其中所述可共享信息至少包括:根据针对多个内容管理服务操作的处理要求而得到的批处理的操作特征;
基于所述第一请求,确定所述至少一个可变字段的值,所述至少一个可变字段包括系统定义类,所述系统定义类由所述电子设备按照预定义自动给出值;以及
将所述值填入所述标识所指示的所述批处理模板以用于执行所述批处理模板;
接收用于创建批处理模板的第二请求,所述第二请求至少包括待创建的批处理模板的表示;
向所述待创建的批处理模板指派标识,所述标识唯一地与所述待创建的批处理模板相关联;以及
存储与所述待创建的批处理模板相关的信息。
15.根据权利要求14所述的设备,其中执行所述批处理模板还包括:
响应于所述批处理模板的所述至少一个可变字段包括所述系统定义类字段,针对所述多个内容管理服务操作确定所述系统定义类字段的值。
16.根据权利要求14所述的设备,所述动作还包括:
从客户端接收以下模板操作请求中的至少一项:
针对单个批处理模板的获取请求;
针对已创建的全部批处理模板的获取请求;
批处理模板更新请求;以及
批处理模板移除请求。
17.一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,所述计算机可读程度指令用于执行根据权利要求1-5中任一项所述的方法。
18.一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,所述计算机可读程度指令用于执行根据权利要求6-8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610847714.5A CN107870814B (zh) | 2016-09-23 | 2016-09-23 | 用于内容管理批处理的方法和设备 |
US15/710,111 US10936360B2 (en) | 2016-09-23 | 2017-09-20 | Methods and devices of batch process of content management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610847714.5A CN107870814B (zh) | 2016-09-23 | 2016-09-23 | 用于内容管理批处理的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107870814A CN107870814A (zh) | 2018-04-03 |
CN107870814B true CN107870814B (zh) | 2022-02-22 |
Family
ID=61686283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610847714.5A Active CN107870814B (zh) | 2016-09-23 | 2016-09-23 | 用于内容管理批处理的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10936360B2 (zh) |
CN (1) | CN107870814B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110741617B (zh) * | 2018-12-14 | 2022-06-10 | Oppo广东移动通信有限公司 | 资源更新方法、装置、计算机设备和存储介质 |
CN110309538B (zh) * | 2019-05-24 | 2023-05-12 | 北京卫星制造厂有限公司 | 航天器工艺模板及其实现系统、方法和应用 |
CN110191182B (zh) * | 2019-05-30 | 2023-04-21 | 深圳前海微众银行股份有限公司 | 分布式文件批处理方法、装置、设备与可读存储介质 |
CN111782517B (zh) * | 2020-06-23 | 2021-06-04 | 浙江保融科技股份有限公司 | 一种自动化文件校验方法 |
CN114745296B (zh) * | 2020-12-23 | 2023-08-15 | 北京首信科技股份有限公司 | 数据上报方法及装置 |
CN113190408B (zh) * | 2021-05-07 | 2024-03-26 | 北京金融资产交易所有限公司 | 数据运维系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1989489A (zh) * | 2004-05-20 | 2007-06-27 | Sap股份公司 | 在运行时系统中共享对象 |
CN101604437A (zh) * | 2009-07-22 | 2009-12-16 | 阿里巴巴集团控股有限公司 | 账户批量实时处理系统及账户批量实时处理方法 |
CN102473095A (zh) * | 2010-03-04 | 2012-05-23 | 塔塔咨询服务有限公司 | 用于开发以数据库为中心的企业业务应用的可配置、可扩展的gui的高效计算系统 |
CN102880487A (zh) * | 2012-09-10 | 2013-01-16 | 曙光信息产业(北京)有限公司 | 一种一键式烧录网卡固件的方法 |
CN104123239A (zh) * | 2008-01-31 | 2014-10-29 | 甲骨文国际公司 | 用于事务缓存的系统和方法 |
CN104199869A (zh) * | 2014-08-18 | 2014-12-10 | 中国建设银行股份有限公司 | 一种业务批处理方法、业务服务器以及系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6801926B1 (en) * | 1996-11-05 | 2004-10-05 | Peoplesoft, Inc. | Platform-independent programmable batch processing engine |
US20010051962A1 (en) * | 2000-06-08 | 2001-12-13 | Robert Plotkin | Presentation customization |
US7277855B1 (en) * | 2000-06-30 | 2007-10-02 | At&T Corp. | Personalized text-to-speech services |
US8346803B2 (en) * | 2003-12-12 | 2013-01-01 | Knapp Investment Company Limited | Dynamic generation of target files from template files and tracking of the processing of target files |
US8108673B2 (en) * | 2005-04-29 | 2012-01-31 | Cisco Technology, Inc. | Configuring interfaces of a switch using templates |
US8280917B1 (en) * | 2007-12-21 | 2012-10-02 | Emc Corporation | Batching content management operations to facilitate efficient database interactions |
US8806357B2 (en) * | 2008-08-29 | 2014-08-12 | Sap Ag | Plug-ins for editing templates in a business management system |
JP2010113479A (ja) * | 2008-11-05 | 2010-05-20 | Canon Inc | 情報処理装置及び情報処理方法 |
US9606970B2 (en) * | 2012-01-05 | 2017-03-28 | Data Record Science | Web browser device for structured data extraction and sharing via a social network |
US8788439B2 (en) * | 2012-12-21 | 2014-07-22 | InsideSales.com, Inc. | Instance weighted learning machine learning model |
US9154296B1 (en) | 2012-09-28 | 2015-10-06 | Emc Corporation | Secure and anonymous distributed authentication |
US9432484B1 (en) | 2013-12-19 | 2016-08-30 | Emc Corporation | CIM-based data storage management system having a restful front-end |
US10761685B2 (en) | 2017-10-30 | 2020-09-01 | EMC IP Holding Company LLC | Intelligent REST client for operating a data storage system |
-
2016
- 2016-09-23 CN CN201610847714.5A patent/CN107870814B/zh active Active
-
2017
- 2017-09-20 US US15/710,111 patent/US10936360B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1989489A (zh) * | 2004-05-20 | 2007-06-27 | Sap股份公司 | 在运行时系统中共享对象 |
CN104123239A (zh) * | 2008-01-31 | 2014-10-29 | 甲骨文国际公司 | 用于事务缓存的系统和方法 |
CN101604437A (zh) * | 2009-07-22 | 2009-12-16 | 阿里巴巴集团控股有限公司 | 账户批量实时处理系统及账户批量实时处理方法 |
CN102473095A (zh) * | 2010-03-04 | 2012-05-23 | 塔塔咨询服务有限公司 | 用于开发以数据库为中心的企业业务应用的可配置、可扩展的gui的高效计算系统 |
CN102880487A (zh) * | 2012-09-10 | 2013-01-16 | 曙光信息产业(北京)有限公司 | 一种一键式烧录网卡固件的方法 |
CN104199869A (zh) * | 2014-08-18 | 2014-12-10 | 中国建设银行股份有限公司 | 一种业务批处理方法、业务服务器以及系统 |
Also Published As
Publication number | Publication date |
---|---|
US10936360B2 (en) | 2021-03-02 |
CN107870814A (zh) | 2018-04-03 |
US20180088984A1 (en) | 2018-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870814B (zh) | 用于内容管理批处理的方法和设备 | |
JP5007339B2 (ja) | ウェブシンジケーションを介した双方向マルチマスタ同期 | |
US7484219B2 (en) | Synchronizing centralized data store from distributed independent data stores using fixed application programming interfaces | |
CN105472045A (zh) | 数据库迁移的方法和装置 | |
CN110119292B (zh) | 系统运行参数查询方法、匹配方法、装置及节点设备 | |
CN105760397B (zh) | 物联网本体模型处理方法及装置 | |
CN101098248A (zh) | 一种基于配置描述文件实现通用网络管理的方法及系统 | |
CN108304531B (zh) | 一种数字对象标识符引用关系的可视化方法及装置 | |
CN116955361A (zh) | 存储器内密钥范围搜索方法和系统 | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
CN112182014A (zh) | 数据库查询方法、装置、设备及存储介质 | |
CN102456004B (zh) | 一种页面数据查询控制方法及系统 | |
CN108139927A (zh) | 联机事务处理系统中事务的基于动作的路由 | |
CN110020243A (zh) | 物联网数据的查询方法、装置、物联网服务器和存储介质 | |
CN111008220A (zh) | 数据源的动态识别方法及装置、存储介质和电子装置 | |
CN110555178B (zh) | 数据代理方法及装置 | |
EP2889789A1 (en) | Replication description model for data distribution | |
JP2015197810A (ja) | サーバー装置、情報処理方法及びプログラム | |
CN111814020A (zh) | 一种数据的获取方法和装置 | |
US20080244382A1 (en) | Autonomic generation of document structure in a content management system | |
US20110055279A1 (en) | Application server, object management method, and object management program | |
CN102741829A (zh) | 用于移动业务对象的基于消息的同步 | |
CN107666499B (zh) | 用于服务器的信息存储方法和装置 | |
CN115422184A (zh) | 一种数据获取方法、装置、设备及存储介质 | |
WO2018108010A1 (en) | System, device and method for data update notification |
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 | ||
GR01 | Patent grant |