专利名称:批处理系统的制作方法
技术领域:
本发明涉及数据处理领域。尤其地,本发明提供一种处理包括多块数据的批数据的系统和方法。这种系统和方法可用作文本翻译系统的一部分。
背景技术:
在数据处理领域,使用队列结构实现了很多批处理系统。典型地,待处理的作业或数据由实体接收并加入到队列结构以等候处理。在简单的批处理系统中,处理元件将依次 地从队列结构中选择作业或数据以进行处理。在具有大量作业的批处理系统中,发现在批处理系统内的单个处理元件将会产生“瓶颈”,其中某些作业将会垄断系统的处理资源。尤其地,大块数据的处理经常会以有害方 式使系统慢下来。本领域中,这个问题的折衷解决方案是把单个处理元件分成多个处理元件以创建 并行处理系统。当使用设定数量的硬件或处理资源(例如,设定数量的中央处理元件)实 现时,并行处理系统能够使处理资源分布于这些处理元件。这种系统中,由于每个处理元件 现在使用对于单个处理元件可用的一定比例的处理资源,与单个处理元件相比,所述多个 处理元件中的每个处理元件通常花费更长的时间来完成给定的处理作业。这一有害影响是 通过希望垄断处理能力的作业将会仅有害地影响批量作业内的处理元件之一来进行弥补。然而,实现这种并行处理系统时,当存在大量待处理的作业和/或当接收的作业 之中各个作业所需的资源差别很大时,发现这种系统并未有效地处理数据。例如,当处理大 量的各种大小的数据文件时,这种系统通常工作欠佳。另外,即使这种并行处理系统可以客 观地针对给定数量的作业减小总处理时间,这些无法转化为感知的(即,主观的)处理效率 的增加,例如,即使总吞吐量很高,处理等待时间可能也很高。因此,本领域需要一种能够有效地处理大量不同质量的作业的处理作业或数据的 改进系统。
发明内容
根据本发明的第一方面,提供一种处理一批作业的系统,该系统包括多个处理元 件,其中每个处理元件配置为依次处理具有各自分配的值范围内的估计处理时间的作业。通过使用这个系统,两个或更多的处理元件能够有效地并行处理一批作业或数 据。为了增加感知效率,通常对第一处理元件可分派较大的作业,例如,那些包括需要较长 处理时间的大量数据的作业,对第二处理元件可分派较小的作业。没有这种系统,较大的作 业会阻塞系统,这意味着较小的作业(例如,那些具有少量待处理的数据的作业)在处理之 前会经历较长的时间延迟。然而,通过使用一个处理元件(诸如,该处理元件适于依次处 理具有小于预定值的数据量的一批作业或数据的数据量),具有少量数据的多个数据部分 (quantum ofdata)可以并行于由第一处理元件执行的大量数据的处理而被快速处理,增加 了所述批数据的实际处理速度和感知处理速度。如果第一处理元件和第二处理元件都使用共同的资源,本发明的系统提供一种有效地平衡这些资源的方法。 某些实施例中,各个处理元件的分配的值范围可以是可配置的,例如,可以是能够 由用户设置的XML文件中的变量。所述值范围可以实现为小于预设阈值的正值范围,其中 所述阈值可以作为变量存储在XML文件。优选地,本发明的系统还包括作业或数据管理器,适于设置所述批中的作业或数 据量的状态,其中所述状态包括“等待”和“处理”之一。各个处理元件随后优选地被工作 管理器分派给所述批中与它的相关标准匹配的“等待”作业或数据部分,并把所述数据部分 的状态设置为“处理”。作业或数据管理器还适于在处理之后从所述批中移除已处理的作业 或数据部分。特定实施例中,作业或数据管理器适于从客户装置(诸如,翻译计算机系统或 FTP服务器)接收数据部分,并且可包括适当编程语言的脚本。这些情况下,数据管理器还 适于在接收到数据部分时把所述数据部分加入到所述批中,并把所述数据部分的状态设置 为“等待”。优选地,系统还包括队列结构,对所述批内的作业或数据部分分类以用于后续处 理。这种情况下,每个处理元件被分派来自队列结构的作业,其中队列结构可实现为数据 库,其中根据分派的优先级对作业排序。其它实施例中,基于作业的优先级,诸个处理元件 被分派来自总作业池的作业。在两个作业具有相同优先级的情况下,可以基于时间戳确定 选择作业的次序,所述时间戳指示所述工作被添加到队列结构的时间。某些实施例中,每个处理元件包括PERL脚本,其中使用XML控制脚本来设置每个 适当的处理元件的预定值。本发明的优选应用涉及处理与软件应用相关的文本翻译部分。因此,本发明的优 选实施例中,每个数据部分包括已从第一语言翻译成第二语言的一个或多个文本片段。这 种情况下,各个处理元件执行的处理过程可包括,使用所述一个或多个已翻译文本片段更 新翻译数据库,所述一个或多个已翻译文本片段对应于第一语言的原始文档的片段。通过 使用翻译数据库,增加了重新使用,并且减少了需要分发给翻译者以及从翻译者接收的数 据量。因此,本发明的系统可用于实现翻译系统,其中待翻译的文本片段可能使用文件 传输协议系统而被分发给全世界不同地区的翻译者。本发明的批处理系统随后能够以有效 方式处理已翻译文本片段(在从所述翻译者接收到它们时),增加了翻译过程的速度。根据 实施例,本发明的批处理系统可以用于翻译之前的处理或翻译之后的处理。某些实施例中, 处理过程包括验证步骤,所述验证步骤包括重新分割原始文档,并从翻译数据库检索与原 始文档的被重新分割的部分相对应的匹配翻译段。需要这种检查以便确认翻译的准确性。根据本发明的第二方面,提供一种处理批作业的方法,该方法包括从所述批中选择作业;为被选择的作业确定估计处理时间;根据所述估计处理时间是否落在分配给多个处理元件中的一个处理元件的值范 围内,把该工作分派给该处理元件,使用分派的处理元件处理所述作业。这种方法提供与本发明的第一方面类似的优点,允许由多个处理元件基于每个作 业所需的估计处理时间选择一批中的作业或数据部分以进行处理。某些实施例中,可基于包括数据部分或作业的数据的数量来估计所述处理时间。在两方面的某些实施例中,数据 部分可包括数据文件,其中基于文件大小执行对于由处理元件处理的文件的选择。其它实 施例中,数据部分可包括文本数据的块,诸如特定数量的字节。在第二方面的某些实施例中,该方法还包括把所述估计处理时间与一个或多个 处理元件的分配的值范围进行比较;如果估计处理时间未落在所述一个或多个处理元件的 分配的值范围内,把该工作分派给适于依次处理所述批内的任何作业的处理元件。该方法还可以包括接收一个或多个作业,并把所述作业加入到所述批中。其它或补充实施例中,该方法还可以包括当接收到作业或数据部分时,把所述 批中的所述作业或所述数据部分的状态设置为等待或处理之一,其中从所述批中选择具有 “等待”的状态的任何作业或数据部分。该方法还可以包括当选择作业或数据部分以由处 理元件进行处理时,把所述作业或数据部分的状态设置为“处理”,当完成处理作业或数据 部分时,从所述批中移除所述已处理的作业或数据部分。在特定实施例中,所述作业或数据 部分包括使用文件传输协议(FTP)服务器下载的文件或文件的各部分。优选地,接收作业的步骤包括把作业加入到队列结构,队列结构适于在后续处理 之前对所述批内的作业分类,其中每个处理元件从队列结构选择作业。这种情况下,分类可 包括把属性信息记录在与作业对应的数据库中,然后基于一个或多个属性在数据结构内 对作业和/或与作业相关的数据记录进行排序。这种队列结构可实现为数据库,在数据库 内可对每个作业分派相关的优先级,以便适当的处理元件选择作业之前对数据进行排序。 通常,处理元件将会选择队列结构中具有最高优先级的作业。如果两个作业具有相同的优 先级,通常选择具有较早的时间戳的数据部分。本发明第二方面的方法的优选应用涉及已翻译文本片段的处理。因此在优选实施 例中,每个作业或数据部分可包括已从第一语言翻译成第二语言的一个或多个文本片段。 这种情况下,处理过程可包括使用所述一个或多个已翻译文本片段来更新翻译数据库。翻 译数据库允许重新使用已翻译文本片段,由此增加了翻译系统的效率。优选地,所述一个或 多个已翻译文本片段对应于第一语言的原始文档的片段,处理过程还包括再分割原始文 档,并从翻译数据库检索与原始文档的再分割的各部分对应的匹配翻译段。因此,处理元件 执行的处理包括验证从一个或多个翻译者接收的译文。根据本发明的第三方面,提供一种存储指令的计算机可读存储介质,所述指令在计算机执行时使计算机执行如上所述的批处理作业或数据的任一方法。
现在将参照附图作为例子描述本发明的实施例,其中图1显示可与根据本发明第二实施例的软件应用相关的可能的文本信息;图2示意性地表示可包括本发明的批量系统的第二实施例的翻译系统;图3显示可包括第二实施例的方法的翻译文本处理方法;图4显示可实现为翻译系统的一部分的、根据本发明第二实施例的批处理系统;图5表示根据本发明第二实施例的批处理数据的方法;图6表示可结合本发明的第二实施例使用的处理已翻译数据的方法;图7示意性地表示根据本发明第一实施例的批处理系统。
具体实施例方式图7示意性地表示本发明的第一实施例。图7的系统包括多个处理元件730。处理元件730适于处理等待处理的一批作业710内的作业。“作业(job)”可包括由硬件元件 (诸如中央处理单元(CPU))直接处理的数据或通过在硬件元件上执行的方法间接处理的 数据。例如,每个处理元件可包括处理应用的“线程(thread)”,即适于与其它实例同时运 行的应用实例,其中硬件装置(诸如,服务器计算机)的CPU周期分配给每个处理元件或线 程。这种情况下,这批等待的作业710包括多个作业A、B、C,其中每个作业需要不同的 处理时间。所需的处理时间可以是在处理之前已知的,或者可以基于作业特性估计所需的 处理时间。例如,在某些配置中,每个作业可包括待处理的数据部分,其中估计的处理时间 取决于所述数据部分内的数据的数量。在其它变化形式中,估计的处理时间可取决于作业 难度或其它因素,诸如待处理的数据的位置、检索或存储数据所需的时间、或所涉及计算的 复杂性。在图7示出的例子,假定处理时间取决于作业的大小。图7显示队列结构720,队 列结构720按照三个作业A、B、C被加入到这批的次序列出这三个作业A、B、C。队列结构 720不必实现为如图7所示的表格形式,某些变化形式中,可通过检查所述批作业710(例 如,通过依次检查存储于存储装置的数据文件的算法)获得队列结构720所包含的信息。 本例的队列结构720中,我们看到作业A具有估计处理时间2小时;作业B具有估计处理时 间10分钟,作业C具有估计处理时间12小时。当作业加入到这批时,它们可以以很多不同 的方式加入到队列结构720,例如,队列结构720可以是先入先出(FIFO)结构或后入先出 (LIFO)结构。每个处理元件730适于处理具有在分配的值范围内的估计处理时间的作业。这个 例子中,处理元件1 (730》适于处理具有小于30分钟(礼< 00:30)的估计处理时间的所有 作业;处理元件2(7302)适于处理具有小于10小时(R2 < 10:00)的估计处理时间的所有作 业;处理元件N(730n)适于处理具有在零秒和无穷大之间(即,Rn<c )的估计处理时间的 所有作业。使用中,空闲处理元件(即,当前未处理作业的处理元件)将会从所述批作业720 中选择等待的作业,并把估计处理时间与处理时间值(R)的范围进行比较。可把存储在配 置文件中的每个处理元件的配置值与队列结构720内的数据进行比较来实现这一点。例 如,在图7的情况下,如果所有的处理元件730是空闲的,处理元件1 (730》将会选择等 待处理的下一个作业A,并把估计处理时间与它的分配的值范围进行比较。由于处理元件 1 (730)仅适于处理具有小于30分钟的估计处理时间的作业,它不会选择作业A进行处理, 因为作业A需要2小时。在一种实现方式中,这种情况下,所述多个处理元件730中的下一个处理元件 (即,处理元件2 (7302))随后检查所述批作业720内的作业A并把估计处理时间与它的分配 的值范围进行比较。这种情况下,估计处理时间2小时在处理元件2的范围(R2 < 10:00) 内并且处理元件2(7302)选择作业A进行处理。一旦从批作业720中选择了一项作业,通 常从所述批中移除该作业或把该作业标记为“处理中”,并且作业选择和分派的过程再次开始。例如,当检查作业B时,第一处理元件1 (730)将会发现作业B的估计处理时间处于它 的分配的值范围(礼< 00:30)内,因此将会选择并处理作业B。然后,可以从批作业710中 移除作业B或把作业B标记为“处理中”。如果处理元件1和处理元件2已移除作业A和作 业B以进行处理并因此都被标记为繁忙,处理元件N(730n)将会检查作业C并且将会发现作 业C的估计处理时间12小时处于它的分配的值范围内(Rn<c )。然后,处理元件N(730n) 可以从队列中移除这项作业以进行处理。一旦每个处理元件已处理完被分派的作业,这些 作业然后可被加入到一批已处理作业740。在替换的实现方法中,空闲处理元件可搜索一批等待作业710中的每个作业,直到它发现具有处于它的分配的值范围内的估计处理时间的等待作业。例如,当处理元件 1 (730)变为空闲时,它通过检查作业A而开始。当它发现作业A的估计处理时间处于它的 范围以外时,它可以移至队列结构720中的下一个作业(即,作业B),并检查该作业的估计 处理时间。如果估计处理时间确实落于所述范围内,该处理元件将会停止搜索710示出的 所述一批等待作业,并开始处理被分派的作业。作业的处理时间可以按照很多方法来估计。例如,在特定实现方式中,估计处理时 间可基于对一批等待作业710内的作业进行分类,其中能够被分派给这些作业的每个种类 具有相关的处理时间估计。这种估计可以使用已有的处理时间的知识来预先计算。在其它 实施例中,处理时间可使用作业的大小来估计,其中每个处理元件730具有它能够处理的 作业大小的相关范围。这种情况下,可基于作业大小和每个处理元件的大小范围的比较来 分派作业。可以是这种情况,其中每个作业包括数据部分,因此每个处理元件可具有被分配 给它处理的文件大小的范围。现在将参照图1至图6描述本发明的第二实施例,表示在文本翻译系统中诸如图7 示出的批处理系统的批处理系统的使用,其中作业包括与软件应用相关的文本信息的翻译 所涉及的处理过程。因此,这里描述的文本翻译系统提供本发明的系统和方法的优选应用。随着国际贸易的增加以及全世界通信网络的扩展,现在,应用开发者能够在全球 把软件应用分发给很多个不同的国家。由于每个国家通常具有不同的语言要求,这随后产 生了把与软件应用相关的文本信息从生产的第一母语翻译成一个或多个第二语言的需求。 这种文本信息可包括嵌入帮助、在线帮助、用户和/或技术名称和/或实施文档。当翻译与软件应用相关的文本信息时,经常存在恰当控制翻译过程的问题。虽然 机器智能有了一定发展,翻译过程仍然是需要熟练的双语翻译者的团队的人类艺术领域。 通常,特定语言的翻译者居住在以所述语言为母语的国家或地区,并且在多数情况下所述 国家或地区在地理上与产生原始文本信息的国家相距很远。多数情况下,由于文本信息是 以生产的母语写的,按照逐件的方式对于每个翻译者给予多个文本信息块以进行翻译。基 于翻译者的作业量以及文本的复杂性,每块文本信息的翻译时间经常是高度不确定的。因此,需要能够处理间歇地从大量不同地理区域的作业者接收的大量不同种类数 据文件的系统和方法。另外,需要能够作业于不同时区和工作模式的系统和方法。对于很大的应用生产者,还存在调度翻译过程以便容纳需要共同处理或资源的大 量不同的翻译事务的问题。翻译过程经常会在从翻译者发送文本信息以及向翻译者发送文 本信息时需要核对和验证程序。在主要产品的开发和启动期间这个问题可能变得特别尖 锐,其中将会存在严格遵守的最后期限。因此,已翻译数据的处理产生了如本说明书先前讨论的并行批处理问题。图1表示与软件应用相关的文本100主体的组成部分。软件应用120通常包括程 序代码,程序代码在使用中存储在计算机系统110的存储器。这个程序代码随后在适当时 间由与计算机系统110相关的处理器执行。软件应用120可以是本领域已知的任何软件应用。
通常在软件应用120的开发期间,产生文本组成部分150至180。组成部分150和 155直接包括在软件应用120中,而组成部分160和165可作为单独的电子文档140被提 供,并且元素170至180可经网络130 (诸如互联网)被提供。文本信息可具有下面形式标准ASCI (美国信息互换标准代码)文本;可扩展标 记语言(XML)文件;图、表格、图形、多媒体显示内的嵌入文本;或者应用中出现的任何其它 文本,界面上的标签或字段、嵌入帮助或通过超级链接可访问的辅助帮助主题。图2显示用于翻译文档210 (诸如,图1示出的文本组成部分150至180)的翻译 系统200。翻译系统200包括中心系统,中心系统能够从开发者接收第一语言的一个或多个 原始文档210。系统200还从一个或多个翻译者270接收一种或多种第二语言的所述文档 的一种或多种译文。这种系统能够从分散于广大地理位置的客户计算机接收数据和文档。翻译系统200的核心包括处理脚本240。处理脚本240包括一行或多行程序代码, 这些程序代码用于响应于系统200内的特定事件而管理数据处理。处理脚本240与文件 存储器230、自动状态跟踪(AST)数据库235、管理器脚本245和数据管理器250交互。翻 译系统还包括第一 FTP服务器220,用于把文档210上载到该系统;第二 FTP服务器280, 用于从一个或多个翻译者270下载数据以及把数据上载到一个或多个翻译者270。还提供 FTP监视器290以监视使用FTP服务器280发生的数据传送事件,并相应地在AST数据库 235更新文档状态和它们的组成部分数据。FTP监视器290可包括一个或多个脚本,所述脚 本包括将要在FTP服务器280或分离实体上处理的计算机程序代码。文件存储器230可使用本领域已知的常规存储装置(例如硬盘驱动器或不昂贵/ 独立盘冗余阵列(RAID))来实现,并用于存储从一个或多个翻译者270接收的文件。AST数 据库235记录经过翻译系统200的一个或多个处理的文档210的状态和它们的各种组成数 据。通常,AST数据库235不会存储文档210自身。管理器脚本245包括一行或多行程序 代码,这些程序代码用于询问AST数据库235并基于从AST数据库235获得的状态数据调 用或执行适当的处理脚本240。数据管理器250依次控制对翻译数据库(DB) 260的访问。第一语言的原始文档210被上载到第一 FTP服务器220,处理脚本240随后访问 第一 FTP服务器220。处理脚本240随后管理文档210。在管理文档210和它们的组成数 据期间,处理脚本240可与AST数据库235通信以更新它们的当前状态。对文档210的管 理可选地涉及在使用第FTP服务器280把适当数据提供给一个或多个翻译者270之前,临 时把这些适当数据传送给文件存储器230。另一方面,处理脚本240可以直接使用第二 FTP 服务器280把适当数据提供给所述一个或多个翻译者。任一情况下,翻译者270经可由FTP 监视器290可操作地监视的第FTP服务器280接收适当数据。某些实施例中,第一 FTP服 务器和第二 FTP服务器可实现于单个硬件装置。翻译者270使用第二 FTP服务器280下载 具有已处理数据形式的文本信息。FTP监视器290监视与这些数据的下载和上载相关的过 程,并且某些实施例中,管理与这些数据的下载和上载相关的过程。
现在将结合图3的翻译方法进一步描述图2示出的系统200的操作。在步骤S305, 在第一位置以第一语言产生原始文档210。在步骤S310,这个文档上载到FTP服务器220。 一旦上载,在服务器装置启动一个或多个处理脚本240以执行如步骤S315所示的多个预 处理步骤。这些预处理步骤可包括把文档210分成一个或多个不同的文本片段。每个段可 包括需要翻译的文本的一行、一段落或更大的部分。为了避免翻译先前已翻译的片段以及 增加已有译文的重新使用,所述一个或多个处理脚本240调用由数据管理器250提供的功 能。这些功能确定在翻译数据库260中是否已存在第一语言的特定文本片段的选定第二语 言的译文。如果译文确实存在,不必翻译原始文档210的匹配片段;然而,如果在翻译数据 库260内不存在该片段的匹配译文,数据管理器250把这个信息返回给所述一个或多个处 理脚本240。通常针对文档的所有片段执行这种匹配处理。基于从数据管理器250返回的 信息,一个或多个处理脚本240准备并且封装未翻译文本片段成适合于发送给一个或多个 翻译者270的形式。如果一个或多个片段需要翻译,在步骤S320 —个或多个处理脚本240把适当的片 段发送给翻译者270。这个步骤可包括把包含待翻译文本片段的压缩文件或“zip”文件上 载到第二 FTP服务器280或文件存储器230。某些实施例中,为一个或多个原始文档210的 每一“构造(build)”或版本提供不同的文件。对每一翻译语言,压缩文件也可以不同。在 把需要的一个文件或多个文件上载到第二 FTP服务器280之后,适合的翻译者270能够访 问包括未翻译文本片段的数据。某些实施例中,每个压缩文件可包含来自都需要翻译成同 样的第二语言的多个不同文档的文本片段。然后,翻译者270使用FTP服务器280以取得 压缩文件,以便适当翻译未翻译文本片段。在步骤S325,执行未翻译片段的翻译。在翻译者270把未翻译文本片段翻译成它们所要求的第二语言之后,已翻译文本 片段由翻译者270再次组合成压缩文件或“zip”文件,并且在步骤S330把压缩文件上载到 FTP服务器280。在其它实施例中,上载的数据可以具有除了压缩文件以外的形式,例如,已 翻译文本可以直接进HTML页。然后,上载的数据通常存储在文件存储器230,并且AST数 据库235由FTP监视器290更新以表示数据接收。在步骤S330上载已翻译数据之后,在步 骤S335启动适当的一个处理脚本或多个处理脚本以对数据进行后处理。处理脚本240可 由管理器脚本245启动,管理器脚本245使用AST数据库235来监视数据状态的适当变化, 即监视与所述数据相关的状态记录的变化。稍后参照图6更详细地描述后处理步骤。总之,步骤S335包括解压缩来自存储 在文件存储器230中的压缩文件的任何文本片段,随后使用数据管理器250把已适当翻译 的片段载入到翻译数据库260。如果片段没有被适当翻译,在这个阶段标记错误。通常,通 过采用原始第一语言的原始文档210并把所述文档再分割成第一语言的多个文本片段来 检验后处理。随后检查文档210的再分割的元素(第一语言的第二组文本片段),以观察在 翻译数据库260中是否存在匹配的已翻译片段。如果已经成功地翻译文档的各片段,所有 的再分割的元素应该找到匹配的已翻译片段。在步骤S345,使用数据管理器250组合在步骤S340从翻译数据库260获取的匹配的已翻译片段来产生已翻译文档。这随后产生了原始文档的最终翻译版本,即文档210的 第二语言的版本。在一些实施例中,在步骤S345这个已翻译文档可转发给翻译者270以进 行最后检查。这种情况下,一个或多个处理脚本240准备已翻译文档以用于一个或多个翻译者270经第二 FTP服务器280下载。然后,翻译者270能够使用FTP服务器280下载已 翻译文档以进行最后核准,并且这项事务可以由FTP监视器290监视,FTP监视器290随后 可更新AST数据库235。在步骤S350,翻译者270确认完成了翻译过程的翻译,或者修改已 翻译文档以校正任何错误。图4显示可用于执行步骤S330至S340的本发明实施例。图4显示客户装置410 和包含在压缩文件420内的多个文本片段425,其中客户装置410可以是一个或多个翻译者 270使用的装置。通常,客户装置410的操作者下载包含未翻译文本片段425的文件420的 版本,在重建压缩文件420并使用已翻译的对应部分替换未翻译片段之前,解压缩并翻译 片段425。在翻译并重建文件420之后,客户装置410的操作者经网络430 (诸如互联网或 内联网)把文件420传送给中央服务器435。中央服务器435可包括计算机系统,其适合于 启动并运行处理脚本240。某些实施例中,中央服务器435还可包括FTP服务器220和280。其它实施例中, FTP服务器220和280可通过也连接到网络430的一个或多个单独的计算机系统(诸如服 务器415)来实现。当使用远离中央服务器435的FTP服务器时,客户装置410的操作者可 把文件420传送给服务器415。然后,文件驻留在这个服务器415,直到中央服务器435准 备经网络430从服务器415下载该文件。替换实施例中,服务器435和415可经自身直接 连接的局域网(LAN)而连接到更大广域网(LAN)。中央服务器435连接到文件存储器230,适于从客户装置410或服务器415接收多 个压缩文件420,并把所述文件420存储在存储器230。一旦接收到文件,就把这些文件作 为批量作业445存储在文件存储器230。通常,FTP监视器290,其具有由服务器435或服 务器415的处理器处理的计算机代码形式,更新AST数据库235中的状态记录以指示文件 420已被接收并且/或者存储在文件存储器230的批量445内。通常,一批文件445将会被组织成队列结构。这种队列结构能够以几种方法实现。 在优选实施例中,使用AST数据库235来实现队列结构。AST数据库235包括与接收文件 420相关的状态记录,所述状态记录可包括属性字段,所述属性字段具有与接收的文件420 的性质及其在翻译过程中的当前状态对应的数据。这些属性字段通常通过翻译系统200的 各种过程(包括FTP监视器290或管理器脚本245中的任何一个)而更新。状态记录和相 关的属性字段随后可用于实现所述队列。某些实施例中,队列可包括具有共同属性字段的 AST数据库235内的已排序的记录子集,其中每个记录与一个待处理的文件关联,并且所述 子集覆盖了所述一批445。属性字段可包括下述内容中的一项或多项与文件的文本相关的项目或应用名 称、文件版本或文件内的文本片段425、文件所包含的文本片段425的细节、在步骤S310或 S330上载或下载文件的细节(例如时间、日期、IP地址等)、片段被翻译成的第二语言、文 件大小、优先级字段、文件的当前状态、创建文件的日期、无效字段、或与文件的过去或未来 处理相关的细节。优先级字段可包括一个值,其中具有最小优先级号码的文件具有最高优 先级,具有优先级值“空(null)”的文件具有最低优先级。优先级值可由项目管理器或管理 器脚本245分派。为了实现队列结构,管理器脚本245可基于优先级值对与批量445相关的适当文 件记录进行排序。某些实施例中,如果批445内的多个文件具有相同的优先级值,具有较早创建时间戳的文件将会优先于具有较晚时间戳的文件。时间戳可对应于接收文件的时间或创建文件的时间。队列中的每个文件记录的状态值通常具有以下两个状态值之一“等待”, 代表文件已被接收并且正在等待处理;或者“处理”,其中文件已被选择并且现在正被处理。图4显示多个处理元件450A至450N。这些处理元件450A至450N以类似于结合 第一实施例描述的处理元件P1至Pn的方式处理数据。每个处理元件可包括一个或多个处 理脚本240,诸如图2示出的那些处理脚本。每个处理元件还具有相关的管理器脚本440。 管理器脚本440A至440N可形成图2示出的一组管理器脚本245的一部分。为了执行文件445的处理,使用两个或更多的处理元件450。每个处理元件450处 理来自文件存储器230的文件并对所述文件执行一系列后处理步骤,以便把已翻译的文本 片段425载入到翻译数据库260。每个处理元件450由它的对应管理器脚本440启动。一 组管理器脚本440使用AST数据库235查询所述数据,并调用适当的处理元件450。处理元 件450可形成一组处理脚本240的一部分。一旦文件已被成功处理,可选地从文件存储器 230移除该文件。每个处理元件450A至450N具有它可以处理的文件大小的关联范围。例如,在N =2的样本系统中,第一处理元件450A可配置为处理存储在文件存储器230中的批445内 的任何文件(即,0彡R1 <⑴兆字节或MB),而第二处理元件450B可配置为仅处理具有预 定值以下的文件大小的文件445 ( “处理阈值”-T,即0彡R < T MB)。现在将参照图5的方法描述根据本发明的处理元件的使用例子。在步骤S510,中 央服务器435下载一个或多个文件以进行后处理。在步骤S520,FTP监视器290更新实现 所述队列结构的AST数据库235中存储的记录。这个过程把下载文件“加入”到队列结构。 FTP监视器290还可以更新记录内的状态属性字段,把当前状态设置为“等待”,这代表这样 的事实这些文件仍然等待处理。替换地,在检测由FTP监视器290执行的任何更新之后, 当前状态可以由管理器脚本245、440设置为“等待”。FTP监视器290和管理器脚本245、 440中的一个或多个的组合可视为监督文件处理的“作业管理器”。在步骤S530,与空闲的处理元件450 (即,当前未在处理文件的处理元件450)相关 的每个管理器脚本440获得队列中具有“等待”状态的第一文件。如果文件根据优先级排 序,所述第一文件可以是具有最高优先级的文件(即,具有最小优先级号码的文件)。这种 “选择”可包括询问与批445相关的文件记录以获得“第一”排序的记录以及到文件存储器 230中的关联文件的链接。在步骤S540,每个激活的管理器脚本440把在步骤S530选择文件的文件大小 (即,构成数据部分的数据的量)与它的关联处理元件的处理阈值进行比较。如果当前文 件的文件大小小于所述处理阈值,管理器脚本440将会启动它的关联处理元件450,在步骤 S560所述关联处理元件450随后处理该文件。在处理文件的同时,文件的状态被设置为“处 理”以防止它再次被选择处理。文件状态的这种设置可以由管理器脚本440或由处理元件 450执行。如果在步骤S540文件大小大于所述处理阈值,在步骤S550从队列中选择下一个 可用文件。然后,重复步骤S540,其中在步骤S530选择文件的文件大小与处理元件的处理 阈值进行比较。步骤S540和步骤S550的循环继续,直到文件大小小于处理阈值、或者直到 不具有处理阈值的处理元件选择了一个文件。在步骤S560处理所述文件之后,在步骤S570从队列结构中移除该文件,然后,在步骤S580进行检查以观察是否存在更多文件。另外,通常由管理器脚本440执行这些步骤。 如果在队列结构中存在更多文件,在步骤S530选择队列结构中的下一个文件,并且处理再 次开始。如果在队列中没有更多文件,则处理结束。现在,将参照图6描述在步骤S560执行的处理。在某些替换实施例中,处理元件 可检查选择文件的内容以便检查文件内的所有文本片段已被正确下载。然而,本例子中,该 方法开始于步骤S610,其中文件内包含的文本片段425被“合并(merged) ”,这意味着数据 管理器250把已翻译片段载入翻译数据库260中并分派适当的语言和版本属性。对选择文 件内的所有文本片段425执行步骤S610。在步骤S620,执行“杠杆(leverage) ”过程来验 证“合并”过程;“杠杆”过程包括采用第一语言的原始文档210,并对该文档再分割,即再 次如步骤S315的预处理所执行的操作那样把该文档分成多个片段。原始文档的再分割的 元素随后被用于检查在翻译数据库260中是否存在所选择语言的匹配部分,即,是否存在 与再分割的元素对应的所选择的第二语言的已翻译片段。如果步骤S610的“合并”过程已 经成功,随后能够通过从翻译数据库260获取原始文档的匹配的已翻译片段来创建原始文 档210的已翻译版本460。互相交互以执行图3、图5和图6的方法的处理脚本240、440、管理器脚本245、450 以及FTP监视器290可以作为PERL编程语言的脚本而提供,并且可以由中央服务器435的 适当编译器实施。可以使用由PERL处理脚本询问的可扩展标记语言(XML)控制文件来设 置处理元件450的处理阈值。很重要的是应该注意到,尽管在全功能数据处理系统的情况下描述了本发明,本领域普通技术人员应该理解,本发明的处理能够以指令的计算机可读介质形式和多种形式 被分发,并且可同样地应用本发明而不需考虑实际用于执行分发的信号承载介质的特定类 型。计算机可读介质的例子包括可读类型介质(诸如,软盘、硬盘驱动器、RAM和CD-ROM) 以及传输类型介质(诸如,数字和模拟通信链路)。
权利要求
一种用于处理一批作业的系统,所述系统包括多个处理元件,其特征在于每个处理元件被配置为依次地处理具有在各自分配的值范围内的估计处理时间的作业。
2.权利要求1所述的系统,还包括 第一处理元件,适于依次地处理所述一批作业中的任何作业;以及 一个或多个额外的处理元件,配置为依次地处理具有在分配的值范围内的估计处理时 间的作业。
3.权利要求1所述的系统,其中每个处理元件的分配的值范围是可配置的。
4.权利要求1所述的系统,其中所述处理元件中的一个或多个的分配的值范围包括小 于各自阈值的多个正值。
5.前述权利要求中任一项所述的系统,还包括作业管理器,适于设置所述一批作业中的作业的状态,所述状态包括等待和处理之 其中作业管理器基于适当的时间标准,把所述一批作业中的等待的作业分派给一个处 理元件,并把所述作业的状态设置为处理;作业管理器还适于在处理之后从所述一批作业中移除作业。
6.权利要求5所述的系统,其中作业管理器还适于从客户装置接收作业,其中当接收 到作业时,作业管理器把所述作业加入到所述一批作业中并把所述作业的状态设置为等
7.权利要求6所述的系统,其中作业管理器使用标准文件传输协议FTP接收以数据部 分的形式出现的作业。
8.前述权利要求中任一项所述的系统,还包括队列结构,其适于在后续处理之前对 所述一批作业内的作业分类,其中每个处理元件被分派来自所述队列结构的作业。
9.权利要求8所述的系统,其中队列结构被实现为数据库。
10.权利要求8或权利要求9所述的系统,其中每个作业具有相关的优先级,其中所述 队列结构中的作业基于它们的优先级由适当的处理元件选择。
11.权利要求10所述的系统,其中如果两个作业具有相同的优先级,把具有较早的时 间戳的作业分派给所述适当的处理元件,所述时间戳指示所述作业被加入到所述队列结构 的时间。
12.前述权利要求中任一项所述的系统,其中每个作业包括待处理的数据部分,并且所 述一批作业包括多个这样的数据部分。
13.权利要求12所述的系统,其中基于所述数据部分的大小,估计所述处理时间。
14.权利要求13所述的系统,其中一个或多个处理元件被配置为依次地处理大小小于 各自阈值的数据部分。
15.前述权利要求中任一项所述的系统,其中每个处理元件包括PERL脚本,使用XML控 制脚本来为每个适当的处理元件设置所述分配的值范围。
16.权利要求12所述的系统,其中每个数据部分包括已从第一语言翻译成第二语言的一个或多个文本片段。
17.权利要求16所述的系统,其中由每个处理元件执行的处理过程包括,使用一个或 多个已翻译文本片段来更新翻译数据库。
18.权利要求17所述的系统,其中所述一个或多个已翻译文本片段对 应于第一语言的 原始文档的片段。
19.权利要求18所述的系统,其中所述处理过程还包括再分割所述原始文档,并从翻 译数据库检索与所述原始文档的再分割的部分相对应的匹配的已翻译片段。
20.一种用于处理一批作业的方法,该方法包括 从所述一批作业中选择作业;为所选择的作业确定估计处理时间;根据所述估计处理时间是否落在多个处理元件中的一个处理元件的分配的值范围内, 把所述作业分派给该处理元件,以及使用所述分派的处理元件处理所述作业。
21.权利要求20所述的方法,其中分派所述作业的步骤还包括把所述估计处理时间与一个或多个处理元件的分配的值范围进行比较; 如果所述估计处理时间未落在所述一个或多个处理元件的分配的值范围内,把所述作 业分派给依次地处理所述一批作业内的任何作业的处理元件。
22.权利要求20所述的方法,其中在选择作业的步骤之前,该方法还包括 为每个处理元件分配一个可配置的值范围。
23.权利要求20所述的方法,还包括接收一个或多个作业,并把所述作业加入到所述一批作业中。
24.权利要求23所述的方法,还包括当接收到作业时,把所述一批作业中的所述作业的状态设置为等待或处理之一,其中 仅从所述一批作业中选择具有等待状态的作业;当分派作业以由处理元件进行处理时,把所述作业的状态设置为处理;以及 当完成处理作业时,从所述一批作业中移除所述已处理的数据部分。
25.权利要求23所述的方法,其中接收作业的步骤包括 使用标准文件传输协议FTP从客户装置接收数据部分。
26.权利要求23中任一项所述的方法,其中接收作业的步骤包括把所述作业加入到 队列结构,所述队列结构适于在后续处理之前对所述一批作业内的作业分类,其中每个处 理元件被分派来自所述队列结构的作业。
27.权利要求26所述的方法,其中所述队列结构被实现为数据库。
28.权利要求26至27中任一项所述的方法,其中为每个作业分派优先级,其中选择所 述队列结构内的第一作业的步骤包括选择所述队列结构中具有最高优先级的作业。
29.权利要求28所述的方法,其中如果两个作业具有相同的优先级,选择具有较早的 时间戳的作业。
30.权利要求20至29中任一项所述的方法,其中每个作业包括待处理的数据部分。
31.权利要求30所述的方法,其中所述估计处理时间是基于所述数据部分的大小。
32.权利要求31所述的方法,其中把作业分派给处理元件的步骤还包括从所述多个处理元件中选择第一处理元件;确定所述作业的大小是否小于分配给所述第一处理元件的阈值;如果所述作业的大小小于分配给所述第一处理元件的阈值,把所述作业分派给所述第 一处理元件进行处理,如果所述作业的大小不小于分配给所述第一处理元件的阈值,使用所述多个处理元件 中的后续的处理元件,重复以上步骤。
33.权利要求30所述的方法,其中每个数据部分包括已从第一语言翻译成第二语言的 一个或多个文本片段。
34.权利要求33所述的方法,其中由每个处理元件执行的处理过程包括使用一个或多 个已翻译文本片段来更新翻译数据库。
35.权利要求34所述的方法,其中所述一个或多个已翻译文本片段对应于第一语言的 原始文档的片段。
36.权利要求35所述的方法,其中所述处理过程还包括再分割所述原始文档,并从翻 译数据库检索与所述原始文档的再分割的部分相对应的匹配的已翻译片段。
37.一种存储指令的计算机可读存储介质,所述指令在计算机执行时使计算机执行权 利要求20至36中任一项所述的批处理数据的方法。
全文摘要
提供一种用于处理一批作业的系统。该系统包括多个处理元件,其特征在于每个处理元件配置为依次处理具有在各自分配的值范围内的估计处理时间的作业。所述作业可包括数据处理系统内的数据包。该系统特别适合用于处理文本翻译系统中与已翻译文本对应的数据。
文档编号G06F15/16GK101821728SQ200880111601
公开日2010年9月1日 申请日期2008年10月15日 优先权日2008年10月15日
发明者S·厄派德海厄雅, 水野英人 申请人:甲骨文国际公司