在云平台上的快速部署的制作方法

文档序号:12512632阅读:386来源:国知局
在云平台上的快速部署的制作方法与工艺

本说明书涉及云计算。



背景技术:

在云计算中,数据可以被分发到由一个或多个通信网络连接的多个计算机的系统。每个计算机可以托管一个或多个服务器,每个服务器处理数据的一部分。服务器可以并行处理数据。这样的分布式计算系统可以处理在虚拟化环境中部署的面向web和数据密集型应用。在某些情况下,开发人员跨多个分布式计算系统部署其软件包。然而,不同的分布式计算系统可能具有不同的底层基础设施,这可能导致开发人员在不同的分布式计算系统上部署其软件包的复杂性。



技术实现要素:

本说明书描述了一种能够跨分布式计算系统快速部署软件包的技术。该技术使用户能够在具有不同底层基础设施的不同分布式计算系统上快速部署软件包。

一般来说,本说明书中描述的主题的一个创新方面可以体现在包括下述动作的方法中:由包括一个或多个计算机的数据处理系统获得软件包的标准规范,所述标准规范指定用于安装所述软件包的多个参数,所述软件包包括指定用于安装所述软件包的配置信息的一个或多个源文件;由所述数据处理系统将所述标准规范转换成软件部署工具的定制规范,所述软件部署工具用于在一个或多个分布式计算系统上部署所述软件包;对于所述源文件中的每一个,由所述数据处理系统解析所述源文件和包括一个或多个配置参数和所述一个或多个配置参数的一个或多个定制值的相应配置文件,以确定所述一个或多个配置参数和所述一个或多个定制值,其中所述相应配置文件指定所述配置信息;由所述数据处理系统将所确定的配置参数写入定制模板;以及,由所述数据处理系统用所确定的所述配置参数的定制值和与所述定制模板相关联的信息来更新所述定制规范。该方面的其他实施例包括对应的计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,每个被配置为执行所述方法的动作。对于要被配置为执行特定操作或动作的一个或多个计算机的系统意味着系统已经在其上安装了在操作中导致系统执行操作或动作的软件、固件、硬件或它们的组合。对于要被配置为执行特定操作或动作的一个或多个计算机程序意味着一个或多个程序包括当其由数据处理装置执行时使得装置执行操作或动作的指令。

前述和其他实施例可以各自可选地、单独地或以组合的形式包括以下特征中的一个或多个。具体地,一个实施例以组合的形式包括所有以下特征。该方法可以包括:由所述数据处理系统将所述软件包安装在运行特定操作系统的特定计算系统上,其中所述特定操作系统与由其中所述软件包要被部署的所述分布式计算系统之一提供的操作系统相同或基本相似;由所述数据处理系统将所述源文件复制到所述特定计算系统;基于所述源文件中指定的所述配置信息,由所述数据处理系统生成所述配置参数;以及,由所述数据处理系统将所述配置参数写入所述复制的源文件中,以获得相应的配置文件。在一些实施方式中,该方法包括:对于所述相应的配置文件的具体配置文件中的所述配置参数的具体配置参数,接收来自用户的具体定制值;以及,由所述数据处理系统将所述具体配置参数的所述具体定制值写入所述具体配置文件中。所述标准规范具有相关联的标准格式,并且所述定制规范具有不同于所述标准格式的相关联的定制格式。将所述标准规范转换为定制规范包括:解析所述标准规范以确定所述多个参数和相关联的信息;以及,根据所述定制格式将所确定的参数和相关联的信息写入所述定制规范。在一些情况下,该方法包括:接收来自用户的、将所述标准规范转换为所述软件部署工具的所述定制规范的请求,将所述标准规范转换为所述定制规范可以包括将所述标准规范转换为所述定制规范而无需来自所述用户的任何附加输入。在一些实施方式中,该方法包括:由数据处理系统基于所述定制模板和所述更新的定制规范,将所述软件包部署在所述分布式计算系统之一上。在所述分布式计算系统之一上部署所述软件包可以包括:将所述源文件复制到所述分布式计算系统之一;识别所述定制模板中的所述配置参数;确定所述更新的定制规范中的所述配置参数的所述定制值;以及,将所识别的配置参数和所确定的定制值写入所复制的源文件中,以在所述分布式计算系统之一上获得新的配置文件。在一些示例中,在所述分布式计算系统之一上部署所述软件包包括基于所述更新的定制规范来配置所述分布式计算系统之一的计算资源。在一些实施方式中,所述软件部署工具被配置为在多个不同的分布式计算系统上部署软件包,所述不同的分布式计算系统中的每一个包括多个计算机并提供相应的底层基础设施。在特定示例中,所述标准规范是红帽子软件包管理器(RPM)规范文件,所述定制规范包括BOSH规范文件,并且所述软件部署工具是BOSH。

可以实现本说明书中描述的主题的特定实施例以实现一个或多个优点。对于软件部署工具用户可以快速准备他们的软件包,该软件部署工具可以跨多个云平台部署软件包。用户不需要具有多个云平台的底层基础设施的现有知识。用户不需要手动写入或调试软件部署工具的规范文件、清单文件和/或模板文件。与手动准备相比,准备可以更快、更简单、更容易和更准确。准备可以是自动的或用比手动准备少得多的用户输入。

在附图和下面的描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。根据描述、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。

附图说明

图1是用于在分布式计算系统上准备和部署软件包的示例系统的框图。

图2是用于准备待部署的软件包的示例准备系统的框图。

图3A和3B是由图2的准备系统执行的示例处理的流程图。2。

图4是由图1的系统执行的示例过程的流程图。

各个附图中相同的附图标号和标记指示相同的元件。

具体实施方式

图1是用于在分布式计算系统上准备和部署软件包的示例系统100的框图。示例系统100包括用户计算机104、分布式计算系统106、108、准备系统110、部署系统120和数据通信网络130。用户102可以使用用户计算机104来请求部署软件包。准备系统110可以准备待部署的软件包。部署系统120可以在一个或多个分布式计算系统106、108上部署准备好的软件包。

用户计算机104、分布式计算系统106、108、准备系统110和部署系统120通过数据通信网络130彼此进行通信。数据通信网络130可以包括例如局域网(LAN)、广域网(WAN)、因特网、蜂窝网络或它们的组合,从而连接任何数量的通信设备、计算设备和/或服务器系统。

用户计算机104可以是网络130中的个人计算机或服务器系统中的服务器计算机。用户计算机104可以是任何适当类型的设备,例如台式计算机、个人计算机、笔记本、平板计算设备、个人数字助理(PDA)、网络设备、智能移动电话、增强型通用分组无线电服务(EGPRS)移动电话、媒体播放器、导航设备、电子邮件设备、游戏控制台或这些计算设备或其他计算设备中的任何两个或更多个的任何适当组合。

用户102可以使用用户计算机104来请求在一个或多个分布式计算系统上部署软件应用。在一些示例中,用户102将软件应用从一个分布式计算系统迁移到另一个分布式计算系统。

为了执行软件应用的安装和维护,可以为软件应用准备软件包。在一些情况下,软件包包括准备安装的预编译软件。在一些情况下,软件包包括指定用于安装软件包的配置信息的源代码文件、可执行二进制文件和/或特定源文件。

用户102可以使用例如软件包构建器的软件工具以在用户计算机104或服务器中创建或构建软件包。一种示例软件包构建器是可以构建RPM软件包的红帽子软件包管理器(RPM)包构建器。可以将该软件包安装在运行目标操作系统的目标计算系统上。在某些情况下,也可以将软件包移植到某些其他操作系统。例如,为在Red Hat Linux中使用而创建的RPM包也可以在Linux或类似Unix的操作系统或某些其他操作系统中被使用。

当将软件包安装在计算系统上时,特定源文件可以被复制到计算系统。在安装期间,可以有配置步骤。计算系统可以基于特定源文件中的配置信息生成配置参数,并将配置参数写入复制的特定源文件以获得相应的配置文件。配置文件可以是纯文本文件或可扩展标记语言(XML)文件。

在安装软件包期间,可以获取配置参数的定制值,并将其写入配置文件。在一些情况下,可以执行配置程序以获得一个或多个定制值。在一些情况下,用户可以输入一个或多个定制值。例如,软件应用可能要求在用户可以使用该软件应用之前首先设置用户账户,例如管理账户。用户可以在安装期间输入用户名和/或密码以设置用户帐户。

用户102可以使用软件包管理器来创建用于该软件包的标准规范。例如,可以使用RPM创建RPM包的RPM规范。标准规范指定用于安装软件包的多个参数。例如,标准规范可以包含包名称、版本、修订号、构建、安装和清除包的步骤、更改日志、源代码位置、编译命令和/或安装位置。标准规范可以是文本文件或XML文件。

可以将软件包部署在一个或多个分布式计算系统106、108上。分布式计算系统106、108每个可以包括通过一个或多个通信网络连接的多个计算机。每个计算机可以被实现为一个或多个物理计算机或托管在物理计算机上的虚拟机。分布式计算系统106、108可以处理部署在虚拟化环境中的数据密集型应用。一个示例分布式计算系统是基础设施即服务(IaaS)云服务器。

每个分布式计算系统106、108具有底层基础设施,该底层基础设施配置,例如管理或分配例如物理计算机、存储装置、存储器、网络的计算资源以提供用于部署软件包的虚拟化环境。不同的分布式计算系统可以具有不同的底层基础设施。在一些情况下,为了在不同的分布式计算系统上部署软件包,用户可能必须处理不同的底层基础设施。

部署系统120包括软件部署工具122。软件部署工具122可以跨不同的分布式计算系统部署软件包。软件部署工具122的一个示例是BOSH,其可以用于在例如在VMware vSphere,vCloud Director,Amazon Web Service(AWS)或OpenStack上的IaaS提供商上部署Cloud Foundry和其他分布式服务。

软件部署工具122可以例如通过诸如用于BOSH的云提供商接口(CPI)的接口来访问分布式计算系统中的计算资源。软件部署工具122可以配置分布式计算系统的计算资源,以为软件包提供用于软件安装和配置的安全和排他的虚拟计算环境。该环境可以包括一个或多个虚拟机(VM)和例如从存储层到用户界面层的软件架构的一个或多个层。

可以在部署之前准备软件包的一组定制文件。软件部署工具122可以被用于基于该组定制文件在分布式计算系统上部署软件包。在一些实施方式中,该组定制文件包括定制规范、定制模板和/或定制清单。定制规范可以包括关于软件包的详细信息。定制清单可以定义用于部署软件包的设置。在某些情况下,定制规范和定制清单被包括在一个规范文件中。定制模板可以包括用于安装软件包的多个通用配置参数。

如上所述,在一些实施方式中,软件部署工具是BOSH。BOSH可以基于BOSH规范、BOSH清单和BOSH模板来部署软件包。BOSH规范可以包括用于一组部署和执行的规则和资源的模板文件、包依赖性和属性。BOSH清单可以定义用于诸如Cloud Foundry实例的软件实例的部署设置。部署设置可以包括将被创建的VM、将被附加到每个VM的持久性磁盘、将被绑定到每个VM的网络和IP地址、将被应用到每个VM的BOSH版本的模板以及将被应用于每个模板的配置文件和脚本的定制属性。BOSH模板可以包括用于软件包的多个通用配置参数和脚本。

在一些实施方式中,用户使用例如准备系统110的准备系统来准备用于软件包的定制文件集合,例如定制规范、定制模板和/或定制清单。在一些情况下,用户可以手动编写定制规范。在一些情况下,如下面进一步详细描述的,准备系统基于软件包的标准规范来准备定制规范。在这种情况下,需要标准规范。准备系统110可以根据标准规范自动地准备定制规范。例如,准备系统110可以接收来自用户的准备待部署的软件包的请求,并且自动完成准备而无需来自用户的任何附加输入。

在准备软件包的一组定制文件之后,准备系统110可以将准备好的定制文件发送到部署系统120以部署软件包。在一些实施方式中,准备系统110被设置在例如用户计算机104的个人计算机上。在一些实施方式中,准备系统110被设置在通过网络130连接到用户计算机104的服务器系统上。准备系统110和部署系统120被设置在同一服务器系统上。

在一些实施方式中,准备系统110包括转换器112。转换器112将软件包的标准规范转换为用于基于定制规范部署软件包的软件部署工具的定制规范。在一些实施方式中,准备系统110包括差分器114。如下面进一步详细描述的,差分器114可以确定指定软件包的配置信息的特定源文件与指定配置信息的相应配置文件之间的差异。差分器114可以将差异写入用于软件部署工具122的定制模板和定制规范。

图2是准备要由软件部署工具部署的软件包的示例准备系统200的框图。软件部署工具可以是图1的部署系统120的软件部署工具122。准备系统200可以包括转换器202和差分器204。准备系统200、转换器202和差分器204可以分别是图1的准备系统110、转换器112和差分器114。

转换器202将用于软件包的标准规范206转换为用于软件部署工具的定制规范208。转换器202可以接收来自用户的转换软件包的标准规范206的请求。标准规范206可以被存储在用户的用户计算机中或上传到包括准备系统200的服务器。例如转换器202的准备系统200可以基于请求定位标准规范206,并将标准规范转换成定制规范208,而无需任何来自用户的附加输入。

准备系统200可以例如通过在软件包中进行搜索来确定软件包的标准规范是否可用。如果标准规范不可用,则准备系统200可以在使用准备系统200之前提示用户获得标准规范。

标准规范206可以包括用于安装软件包的多个标准参数。标准规范206还可以包括用于标准参数的相关联的信息。定制规范208可以包括与标准规范的多个标准参数相对应的多个定制参数。标准规范可以具有用于多个标准参数的标准格式。定制规范可以具有用于多个定制参数的定制格式。定制格式可以不同于标准格式。

转换器202可以例如按顺序执行操作,包括:访问标准规范206,解析标准规范206以确定标准规范206中的多个标准参数和相关联的信息,以及将所确定的标准参数和相关联的信息根据定制格式写入定制规范208。可以由转换器202自动执行该操作。

在特定示例中,标准规范206包括RPM规范“redis.spec”文件。redis.spec文件可被用于在Linux操作系统上安装软件“redis”。redis.spec文件可以如下:

转换器202可以将RPM规范“redis.spec”文件转换为用于例如BOSH的软件部署工具的定制规范,例如BOSH规范。转换器202可以访问redis.spec文件并解析redis.spec文件以确定多个标准参数,例如“Name(名称)”、“Version(版本)”、“Source0(源0)”和相关联的信息,例如用于“Name”的“redis”、用于“Version”的“2.6.14”、用于“Source0”的“redis-%{version}.tar.gz”。然后,转换器202可以根据定制格式将所确定的参数和相关联的信息写入定制规范。定制规范可以如下:

定制规范可以具有与标准规范中的标准参数不同的定制参数。例如,BOSH规范包括与redis.spec文件中的“Source0”不同的参数“files(文件)”。定制参数“files”的相关联信息是“-redis/redis-2.6.14.tar.gz”,它基于redis.spec文件中“Source0”和“Version”的相关联信息。

转换器202还可以根据标准规范准备定制清单,例如BOSH清单。例如,转换器202可以解析标准规范以确定宏或脚本和相关联的信息,然后根据定制格式将所确定的宏或脚本和相关联的信息写入定制清单。定制清单可以如下:

转换器202确定RPM脚本“%setup”和“%install”以及redis.spec文件中的相关联信息,并基于定制格式将它们写入定制清单的对应脚本中。例如,“%setup”对应于定制清单中的“tar xvf redis/redis-2.6.14.tar.gz cd redis-2.6.14”,并且“%install make PREFIX=%{buildroot}%install”对应于在定制清单中的“make PREFIX=${BOSH INSTALL TARGET}”。

如上所述,当将软件包安装在计算系统上时,指定用于安装软件包的配置信息的多个源文件210可以被转换为多个相应的配置文件212。配置文件可以指定配置信息和包括多个配置参数和相关联的定制值。

在一些实施方式中,软件包被设计为要被安装在运行特定操作系统的计算系统上。该软件包将被部署在提供特定操作系统的分布式计算系统上。在部署之前,包例如由用户将软件安装在运行特定操作系统的计算系统上,例如在用户计算机或服务器中。在安装之后,用于软件包的多个源文件被转换为相应的配置文件。相应的配置文件可以被存储在用户计算机或服务器中。在一些情况下,多个源文件可以与软件包一起被分发并存储在用户计算机或服务器中。在一些情况下,多个源文件可以被存储在位于与用户计算机或服务器不同的计算机或服务器中的储存库中。

为了准备用于在分布式计算系统上部署的软件包,例如差分器204的准备系统200可以首先识别多个源文件210和多个相应配置文件212的位置。准备系统200可以例如通过搜索代表用户计算机或服务器中的配置文件的特定文件或文件夹来确定软件包的多个相应配置文件是否可用。如果多个相应配置文件被确定为不可用,则准备系统200可以提示用户在运行特定操作系统的计算系统上首先安装软件包,以在使用准备系统200之前获得与源文件相对应的配置文件。在一些情况下,准备系统200可以在没有用户输入的情况下识别源文件和相应配置文件的位置。在一些其他情况下,准备系统200可以接收用于识别位置的用户输入。

在识别多个源文件210和多个相应配置文件212的位置之后,差分器204确定每个源文件及其相应配置文件之间的差异。例如,差分器204可以解析源文件和相应的配置文件,以确定配置参数和配置参数的定制值。

差分器204可以将所确定的配置参数和定制值写入定制模板中。差分器204可以基于所确定的多个源文件和多个相应配置文件之间的差异来自动生成定制模板。例如,差分器204可以生成空白文本文件以作为定制模板,例如逐个地解析源文件及其相应的配置文件,以确定一个或多个配置参数和配置参数的一个或多个定制值,并使用确定的配置参数更新定制模板。差分器204可以进一步将所确定的定制值提供给由转换器202所准备的定制规范208。可以由例如差分器204的准备系统200使用所确定的定制值来更新定制规范208。

在一些实施方式中,定制规范208包括规范文件和清单文件。可以通过使用转换器202和标准规范206来获得规范文件和清单文件。差分器204可以将所确定的定制值提供给清单文件。

在特定示例中,软件包包括指定关于用户的配置信息的user.conf.xml文件。源文件可以包含标头,但不包含用户,如下所示:

当软件包被安装在计算系统上时,源文件被复制到例如/opt/demoapp/etc/user.conf.xml的安装目录。计算系统可以执行配置程序以基于例如用户的配置信息生成例如名称和密码的配置参数。计算系统可以例如以问题或表单的形式呈现配置参数,以用于请求配置参数的定制值。安装软件包的用户可以向计算系统提供例如tom的名称和例如tom123的密码。计算系统将例如名称和密码的配置参数和所接收到的例如tom和tom123的定制值写入复制的源文件中,以在计算系统上获得配置文件。配置文件可以如下:

差分器比较源文件和配置文件,例如,两个版本的user.conf.xml,并确定需要用户名和密码来配置产品,配置参数是名称和密码,以及定制值是用于名称tom和用于密码的tom123。

差分器可以准备例如user.conf.erb文件的定制模板,以包括所确定的配置参数。定制模板可以如下所示:

差分器可以准备定制清单以包括配置参数的定制值,如下所示:

差分器可以使用有关定制模板和定制清单的信息来更新定制规范,如下所示:

在准备之后,准备系统200可以向部署系统提供更新的定制规范208和定制模板214。部署系统可以基于更新的定制规范208和定制模板214使用软件部署工具来在一个或多个分布式计算系统上部署软件包。

在部署期间,软件部署工具可以例如顺序地执行操作,包括:将源文件复制到分布式计算系统,识别定制模板214中的配置参数,确定更新的定制规范208中的配置参数的定制值,以及将所识别的配置参数和确定的定制值写入所复制的源文件中,以在分布式计算系统上获得新的配置文件。可以由软件部署工具自动执行该操作。

在一些实施方式中,标准规范206是用于软件包的RPM规范。软件部署工具是BOSH。准备系统200的转换器202将RPM规范转换为BOSH规范和BOSH清单。准备系统200的差分器204比较软件包的源文件210和配置文件212,准备BOSH模板,并将确定的定制值提供给BOSH清单。基于BOSH规范、BOSH清单和BOSH模板,BOSH可以在IaaS提供商上部署软件包。

图3A是由准备系统的转换器执行的示例过程300的流程图。准备系统可以是图2的准备系统200。转换器可以是图2的转换器202。

转换器接收转换软件包的标准规范的指示(302)。标准规范指定软件包的安装信息,例如多个参数和参数的相关联值。标准规范具有用于多个参数的标准格式。

转换器识别软件包的标准规范(304)。转换器可以在没有来自用户的任何附加输入的情况下基于接收到的指示来识别标准规范的位置。转换器还可以使用用户输入来识别标准规范的位置。

转换器解析标准规范以确定安装信息(306)。转换器可以访问标准规范并解析标准规范以确定多个参数和相关联的值。

转换器将所确定的信息中的一些或全部写入软件部署工具的定制规范(308)。转换器可以生成空白文本文件或XML文件以作为定制规范,并将确定的标准参数和相关联的值写入定制规范中。在某些情况下,定制规范具有与标准格式不同的关联定制格式。转换器可以根据定制格式将标准参数和相关联的值写入定制规范。

图3B是由准备系统的差分器执行的示例过程350的流程图。准备系统可以是图2的准备系统200或图3A的准备系统。差分器可以是图2的差分器204。

差分器识别软件包的源文件和相应配置文件(352)。源文件指定在配置步骤期间安装软件包的配置信息。在部署之前,首先例如在用户计算机或服务器中安装软件包。在安装和配置之后,多个源文件被转换为相应的配置文件。配置文件指定配置信息,并包括配置参数和配置参数的定制值。配置文件被存储在用户计算机或服务器中。在某些情况下,源文件被存储在用户计算机或服务器中。在一些情况下,源文件被存储在位于与用户计算机或服务器不同的计算机或服务器中的储存库中。

差分器可以确定源文件和配置文件的位置是否可用。在一些情况下,差分器确定源文件的位置和/或配置文件的位置不可用。差分器可以提示用于请求用户输入以识别位置的通知。在一些情况下,差分器确定不存在配置文件,并且差分器可以在使用差分器或准备系统之前提示指示安装软件包以获得配置文件的通知。

差分器解析每个源文件及其相应的配置文件以确定源文件和相应配置文件之间的差异(354)。该差异可以包括配置文件中包括的一个或多个配置参数和该一个或多个配置参数的一个或多个定制值。

差分器基于差异为软件部署工具准备定制模板(356)。软件部署工具可以是图3A中的软件部署工具。差分器可以生成空白文本文件以作为定制模板,并将确定的配置参数写入定制模板。

差分器基于差异更新软件部署工具的定制规范(358)。可以由转换器准备定制规范,例如图3A的准备系统的转换器。差分器可以将定制值和/或关于定制模板的信息发送到定制规范。可以使用定制值和/或与定制模板相关联的信息来更新定制规范。在一些实施方式中,定制规范包括规范文件和清单文件。定制值可以被写入清单文件。

图4是由系统执行的示例过程400的流程图。该系统可以是图1的系统100。该系统可以包括准备系统和部署系统。准备系统可以是图1的准备系统110、图2的准备系统200或图3A和3B的准备系统。部署系统可以是图1的部署系统120。部署系统可以包括软件部署工具,例如图1的软件部署工具122。

准备系统准备用于软件部署工具的软件包(402)。准备系统可以接收来自用户的准备待部署的软件包的请求,并且自动或半自动地准备软件包而无需来自用户的任何附加输入。

准备系统为要部署在一个或多个分布式计算系统中的软件包准备一组定制文件,例如定制规范和定制模板。如上详细所述,准备系统可以通过使用转换器——图1的转换器112或图3A的转换器,根据软件包的标准规范来获得定制规范。

该软件包可以首先被安装在用户计算机或服务器上。软件包包括指定配置信息的源文件。在安装和配置后,基于源文件获取相应的配置文件。准备系统可以使用例如图1的差分器114、图2的204或图3B的差分器的差分器,确定源文件和相应配置文件之间的差异。差异包括配置参数和配置参数的定制值。准备系统可以使用所确定的配置参数来准备定制模板。准备系统可以使用配置参数的定制值和定制模板的信息更新定制规范。

在准备系统准备软件包之后,部署系统使用软件部署工具在分布式计算系统上部署软件包(404)。如上面详细描述的,部署系统可以使用软件部署工具基于更新的定制规范和定制模板来部署软件包。部署系统可以将源文件复制到分布式计算系统,识别定制模板中的配置参数,确定更新的定制规范中的配置参数的定制值,并将配置参数和定制值写入复制的源文件以在分布式计算系统上获得新的配置文件。在一些情况下,部署系统基于更新的定制规范和定制模板将软件包部署到具有不同的底层架构的两个或更多个不同的分布式计算系统。

在本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在包括本说明书中公开的结构及其结构等同物的计算机硬件中或者在它们的一个或多个的组合中被实现。在本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,编码在有形非暂时性程序载体上的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。替代地或另外地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以编码传输到合适的接收机设备、以由数据处理装置执行的信息。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。

术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的所有种类的装置、设备和机器,从而以示例的方式包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除硬件之外,该装置可以可选地包括创建用于计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

可以以任何形式的编程语言编写也可被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码的计算机程序,该编程语言包括编译或解释语言或声明性或过程性语言,并且可以以任何形式对其进行部署,从而包括作为独立程序或作为适于在计算环境中使用的模块、组件、子例程或其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件的一部分中,例如被存储在标记语言文档中、被存储在专用于所述程序的单个文件中或者被存储在多个协同文件中的一个或多个脚本,协同文件例如为存储一个或多个模块、子程序或部分代码的文件。计算机程序可以被部署为在一个计算机上或在位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。

可以由执行一个或多个计算机程序的一个或多个可编程计算机执行本说明书中描述的过程和逻辑流程,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实现为该专用逻辑电路,该专用逻辑电路例如为FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

适合于执行计算机程序的计算机包括,例如可以基于通用或专用微处理器或两者或任何其它类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或实施指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合以从其接收数据或向其传送数据或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如,通用串行总线(USB)闪存驱动器,这里仅举几个例子。

适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;和CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。

虽然本说明书包含许多具体实施细节,但是这些不应被解释为对任何发明的范围或对所要求保护内容的范围的限制,而是作为对特征的描述,该特征对于特定发明的特定实施例可以是特定的。在本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例的组合中实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,虽然特征可以在上面被描述为在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序或以依次的顺序被执行,或者所有所示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

因此,已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,在科学论文的上下文中描述了主题。主题可以应用于向搜索添加深度方面的其他索引工作。在一些情况下,权利要求中所述的动作可以以不同的顺序被执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或依次的顺序,以实现期望的结果。在某些实施方式中,多任务和并行处理可以是有利的。

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