数据中心的软件变更管理、配置替换和远程管理的制作方法

文档序号:6594819阅读:231来源:国知局
专利名称:数据中心的软件变更管理、配置替换和远程管理的制作方法
技术领域
本发明涉及软件开发,并且更特别地涉及用于应对变更管理、逻辑软件配置从特定配置的分离和安全数据中心管理的方法和系统。
背景技术
计算机数据库是存储在计算机系统中的结构化数据集合。数据库依赖于软件来组织数据存储。一种常见类型的数据库称为关系数据库。关系数据库是符合关系模型的数据库,该关系模型指的是用来布置数据的数据库数据和结构。术语“关系数据库管理系统” (RDBMS)常常用来指示用来创建关系数据库的软件。可以将关系数据库视为关系的集合。 关系被共同地定义为全部具有相同属性的一组元组(值的序列或有序列表)。这常常用被组织成行和列的表格来表示。在关系数据库中,将存储在列中的所有数据说成是在同一域中。 这意味着存储在单列中的值全部具有相同的数据类型并符合相同的约束。与数据库相关联的常见挑战是变更(change)管理,其指的是RDBMS如何处理对存储在数据库中的数据的变更。这在多个用户远程地访问公共数据库时常常是个问题。已经开发了能够执行变更管理的许多现有技术系统。然而,此类系统的主要缺点是其不存储单个、相干图像的变更。作为替代,通常对变更给定唯一 ID,且然后,公开那些变更涉及参考每个变更的每个ID以重构相干图像。附加问题与在软件开发中使用的数据库相关联。特别地,常常通过输入用于一组参数的特定值来配置软件。例如,在家庭路由器上,一个人可以将“IP地址”设置为127. 0. 0. 1或将“DHCP截止”设置为10天。在小规模上,这相对很好地工作。然而,如果期望在网络上设置附加路由器,则必须手动地为每个新路由器输入所有设置。从与远程数据中心的管理有关的问题引起其它问题。多个数据中心常常经由网络相互连接。出现的一个问题是如何安全地管理远程数据中心,而不授权对该数据中心的网络的访问。正常地,系统管理员(sysadmin)将设立可以访问网络上的所有主机的一个或多个中央服务器。这使得管理变得容易,因为sysadmin能够登录到单个系统并进行控制。然而,这要求sysadmin拥有和/或控制该网络上的所有主机。本发明的实施例出现在这种背景下。

发明内容
本发明涉及一种用于关系数据库中的变更管理的方法,包括通过存储在关系数据库中的版本来对变更进行索引化;当对关系数据库中的一个或多个数据项进行变更时,
5将数据库中的所有数据拷贝到新版本;将新版本视为单个单元,其中,所有变更在单个版本下被存储在一起;以及向数据库的用户公开应使用的特定版本的指示。


通过结合附图考虑以下详细说明,能够容易地理解本发明的讲授内容,在附图中 图1是举例说明根据本发明的第一实施例的变更管理的示例的方框图。图2是举例说明根据本发明的实施例的流程图。

图3A是根据本发明的第二实施例的简化软件配置问题的图示。图3B是根据本发明的第二实施例的逻辑配置示例的详细图示。图4是根据本发明的第三实施例的通过使用控制主机来处理安全数据中心管理的图示。
具体实施例方式虽然以下详细说明出于举例说明的目的包含许多特定细节,但本领域的任何普通技术人员应认识到对以下细节的许多变化和更改在本发明的范围内。因此,在没有要求保护的发明的一般性的任何损失且不对其施加限制的情况下阐述下述本发明的示例性实施例。本发明的实施例涉及关系数据库。根据第一实施例,变更管理系统可以经由存储在关系数据库中的版本(revision)对变更进行索引化(index)。图1的方框图描绘如何可以实现此类系统的示例。具体而言,可以通过网络103将中央服务器102和一个或多个本地服务器104相互耦合。每个本地服务器104可以包括被耦合到网络接口 107的处理器105。 中央服务器102可以包括处理器106和相关存储器108。中央服务器102还可以包括网络接口 107以促进通过网络103的通信。中央服务器102的处理器106可以包括一个或多个处理核心。举例来说且在没有限制的情况下,处理器106可以是并行处理器模块,诸如Cell处理器。存储器108可以通过诸如数据总线的任何适当器件在操作上耦合到处理器106。在某些实现中,存储器和处理器是诸如通用计算机的常见设备的组件(component)。在其它实现中,处理器和存储器可以是相互远程地定位的单独设备。存储器108可以采取集成电路的形式(例如RAM、DRAM、 ROM等)。可替换地,存储器108可以提供用于代码和数据的非易失性存储。举例来说,可以以固定磁盘驱动器、可移动磁盘驱动器、闪速存储设备、磁带驱动器、⑶-ROM、DVD-ROM、蓝光 (Blu-ray)、HD-DVD、UMD或其它光学存储设备的形式来实现此类非易失性存储。数据库110可以被存储在存储器108中。数据库110通常可以包括可以在记录和字段方面来组织的多个数据条目。每个记录可以表示一组相关字段。每个字段可以表示包含公共类型的数据的不同文件109。可以通过标识可以采取嵌入在文件标题(file header) 中的元数据的形式的信息来区别不同的文件109。举例来说,并且不失一般性地,可以将数据库 110 与符合 ANSI 的 RDBMS (诸如 Oracle、MySQL、Sybase、PostgreSQL 等)一起使用。 数据库中的字段可以包含任何类型的数据。在优选实施例中,数据库110是软件数据库且每个字段可以对应于包含不同软件程序的文件109。依照第一实施例,当操作员发起对数据库110的变更时,通过将整个数据库拷贝(copy)到新版本IlOA来由现有数据组成完整的“快照(snapshot)”。该新版本IlOA可以包含对存储在数据库中的任何数目的数据元素的任何数目的任意变更。当操作员正在进行变更时,新版本IlOA被视为(commit)单个单元。这意味着所有变更被一起存储在单个版本下。这允许通过简单地指示应使用数据库的哪个版本来公开任何变更。为了促进版本的公开,存储器108还可以包含表格112,表格112包含标识数据库110的不同版本的信息和指示给定版本是否活动(active)的信息。公开版本的过程就是简单地将其标记为“活动”。这种方法存在多个关键优点。首先,版本是完全自含式的,意味着保证了其完整性。其次,公开几乎是即时的,因为仅需要变更一个记录。第三,所有公开方法是同样简单的。正常地,变更管理系统被设计为处理标准公开,但是诸如“回滚”的操作(其中,使变更返回其先前状态)是困难的。相反,在本发明的第一实施例中,所有公开方法涉及仅仅改变活动版本。如上文所讨论的,存在其它变更管理系统,但其通常将单独的变更ID用于在给定版本过程期间对数据库进行的每个不同变更。已这样开发此类系统可能是因为其看起来 (表面上)更容易开发。虽然根据本实施例的版本系统可能实现起来相对复杂,但此类系统的维护更加简单,因为使用数据库110的较高层级的应用程序片段不必跟踪单独的变更。可以通过同时参考图1的方框图来理解依照第一实施例的用于变更管理的方法 200,并且图2所描绘的流程图举例说明用于变更管理的方法200的示例。应注意的是可以通过中央服务器102上的适当配置的软件指令111和一个或多个本地服务器104上的类似配置的指令113的执行来实现方法200。具体而言,如202处所指示的,可以记录信息203, 信息203表示特定时刻的数据库110中的数据的状态。如在204处指示的,信息203可以包括在该时刻存储在数据库110中的所有数据。 举例来说,可以将信息203作为版本保存在与中央服务器102相关联的主存储器108中。如在206处所指示的,可以使版本标识符与在特定时刻的数据库110的状态相关联。举例来说,可以将版本号或其它标识符存储在表格112中。然后,如在208处所指示的,可以向一个或多个本地服务器104公开版本信息205,例如版本号或其它标识符。版本信息205标识存储在数据库110中的哪个版本是活动版本。由于数据库110中的数据的所有版本被与数据库的每个版本一起存储,所以必要时,返回到先前版本是相对容易的。具体而言,数据库可以通过公开版本信息205来返回先前所保存的版本,版本信息205将先前所保存的版本标识为本地服务器104的活动版本。可以如下由本地服务器104来处理对数据库110的变更。如在210处所指示的, 本地服务器104接收版本信息205,该版本信息205标识数据库110中的数据的活动版本。 当期望访问数据库110时,如在212处所指示的,本地服务器104可以向中央服务器102请求与活动版本相关联的一个或多个数据项207。然后,如214处所指示的,中央服务器102 可以将所请求的数据发送到本地服务器104。然后,可以如在216处所指示地由本地服务器 104来修改数据以产生已修改数据209。另外,中央服务器102可以执行指令,该指令执行上文所述和在202、204、206和208处所指示的事件序列,从而制作包含活动版本的已修改数据209的数据库110的新版本。根据图3A ;3B所示的第二实施例,可以通过使用配置语言来简化软件配置问题, 所述配置语言将软件组件312之间的逻辑配置310与如图3A所示的那些组件312的特定
7配置302分离。特定配置302包括定义该配置的组件312之间的所有关系以及定义用于每个组件312的每个设置314的值316。另一方面,逻辑配置310可以仅定义组件312之间的某些关系和某些设置314的某些值316,使得由系统来自动地解决用于设置314的其余定义。逻辑配置310的好处在于其充当用于其它特定配置302的构架或框架的能力。 某些关系和设置值(setting value)316对于每个特定配置302而言保持恒定,因此,通过允许逻辑配置310充当用于每个特定配置302的框架,可以减少在定义这些恒定关系和恒定设置值时涉及的重复的量。举例来说,并且不以限制的方式,可以通过使用被耦合到配置的组件312的服务器304来配置特定配置302。这些组件312每个可以包括多个不同的设置S1... Sk 314,每个由某个值316定义。服务器304可以包括进行操作以在不同组件312和服务器304之间传送信息的处理器308。处理器308可以包括一个或多个处理核心。举例来说且在没有限制的情况下,处理器308可以是并行处理器模块,诸如Cell处理器。服务器304还可以包括与存储信息以供处理器308稍后使用相关联的存储器306。存储器306可以通过诸如数据总线的任何适当器件在操作上耦合到处理器308。在某些实施方式中,存储器306和处理器308是常见设备的组件;在其它实施方式中,存储器306和308可以是相互远程地定位的单独设备。存储器306可以采取集成电路(例如RAM、DRAM、ROM等)的形式。可替换地,存储器306可以以固定磁盘驱动器、可移动磁盘驱动器、闪速存储设备、磁带驱动器、⑶-ROM、 DVD-ROM、蓝光、HD-DVD、UMD或其它光学存储设备的形式来提供非易失性存储。存储器306存储充当用于特定配置302的构架的逻辑配置310。逻辑配置310 可以定义组件312之间的某些关系,并且还可以定义某些设置314的某些值316。除由逻辑配置310定义的关系和设置值316之外,用户还可以通过参考其它配置的设置值 316来定义用于特定配置302的某些设置值316。此替换语法的格式可以是这样的形式 $[〈component〉·〈optional sub-component>.〈setting〉]。举例来说且不以限制的方式,组件可以是一件软件、硬件或数据本身。例如,组件可以是路由器。在组件上,可选子组件可以是包含逻辑功能组的模块或子类。在路由器上, 子组件可以是广域网(WAN)模块。在可选子组件内,设置将提供访问用于该逻辑元素的配置的手段。在路由器上,在WAN模块内,设置可以是IP地址。在本示例中,该设置可以看起来是$ [router, wan. ip]。以附加示例的方式,在具有DHCP支持的路由器上,使得该DHCP支持可以经由称为$ [router, dhcp. enable]的变量。可以在变更管理系统内使用这些设置来设置和查询这些配置值。例如,为了参考数据库用户名,一个人可以使用$ [database, username]。用户还可以定义用于特定配置302的组件之间的关系。例如,可以使用语法C0mp0nent2. client. IP=$[componentl. server. IP]来表示组件2的“客户端IP (client IP)”连接到组件1 的“服务器IP (server IP)”。另外,可以例如用“ + ”将多个设置值级联在一起。例如, 可以使用语法 component2. url = http:// + $ [componentl. server, hostname] +〃〃+ $ [componentl. server, port] + $ [componentl. server, url]来表不可通过将http://与组件1的服务器主机名(hostname)、服务器端口和服务器url级联来获得组件2的url。此外,可以例如通过使用“or (或)”关键字来包括默认值。例如,如果定义了端口, 可以使用语法 component2. server, port = $ [component 1. server, port] or 10075 来将用于组件2的服务器端口设置为用于组件1的服务器端口,或者如果没有,则设置为10075。可以将通过使用服务器304来包含的每个特定配置302连接到网络318,网络318 能够在单独的特定配置302之间传送信息。网络318允许用户使用上文针对特定配置302 所述的替换语法和级联语法以相互参考设置值316。网络318还可以用于允许服务器304 访问其它服务器304的逻辑配置310。图;3B举例说明根据本发明的实施例的逻辑配置310的示例。逻辑配置310充当用于其它特定配置302的映射图(map)以定义组件312之间的某些关系320并定义某些设置值316。留下某些关系320和某些设置值316未定义,使得用户能够输入数据以定义这些关系和设置值316。通过使用逻辑配置310作为用于特定配置302的构架,可以减少定义此类关系320和此类设置值316所需的重复的量。这又能够减少与定义关系和设置值316相关联的错误量。 根据图4所示的第三实施例,可以通过使用控制主机403来处理安全数据中心管理。这种解决方案解决如何在不授权访问给定数据中心的本地网络407的情况下安全地管理远程数据中心411的问题。根据第三实施例,可以将数据库系统400配置为提供用于总网络409的责任委托(delegation)。这可以通过在中央管理系统413与远程数据中心411 之间插入控制主机403来实现。每个控制主机403存在于远程数据中心411中,并由该数据中心411的相应管理员来控制。可以由诸如通用计算机的一个或多个电子处理设备来实现中央管理系统413。在中央管理系统413上运行的中央应用程序401只须对控制主机403 的管理性访问以便访问由控制主机管理的网络。每个控制主机403可以访问用于相应远程数据中心411的所有远程主机405。通常,本文所使用的术语“主机”指的是能够执行电子计算或以其它方式操纵和/ 或存储电子数据并通过网络与一个或多个其它此类电子处理设备通信的电子处理设备。举例来说,但不以限制的方式,主机可以是在用适当指令编程时变成专用计算机的通用计算机。当添加新远程数据中心411时,该数据中心411的所有者只须提供允许访问数据中心的网络的单个控制主机403。该控制主机403可以授权例如通过使用诸如可信加密密钥的适当安全措施来安全地访问中央应用程序401。举例来说,适当的安全措施可以是 SSH、Kerberos 等。同样地,数据中心411中的每个主机405可以使用相同类型的安全措施,例如可信加密密钥,以授权访问控制主机403。中央应用程序411不可能直接访问远程主机405,由此保证安全。中央应用程序401可以维持哪些主机405在哪些数据中心411中和什么控制主机 403用于该数据中心411的映射。然后,中央应用程序401使用控制主机403对其到远程主机405的命令进行代理(proxy)。虽然上述是本发明的优选实施例的完整描述,但可以使用各种替换、修改和等价物。因此,不应参考以上说明来确定本发明的范围,而是应替代地参考所附权利要求以及其等价物的整个范围来进行确定。可以将本文所述的任何特征(无论优选与否)与本文所述的任何其它特征(无论优选与否)组合。在随后的权利要求中,除非另外明确说明,不定冠词 “一个”或“一种”指的是冠词后面的一定量的一个或多个项目。不应将所附权利要求解释为包括装置加功能限制,除非使用术语“用于...的装置” 在给定权利要求中明确地叙述此类限制。
权利要求
1.一种用于关系数据库中的变更管理的方法,包括 通过存储在关系数据库中的版本来对变更进行索引化;当对关系数据库中的一个或多个数据项进行变更时,将数据库中的所有数据拷贝到新版本;将新版本视为单个单元,其中,所有变更在单个版本下被存储在一起;以及向数据库的用户公开应使用的特定版本的指示。
2.权利要求1的方法,其中,公开所述指示包括将特定版本标记为“活动”。
3.权利要求1的方法,其中,所述关系数据库是软件数据库。
4.在数据库管理系统中,一种用于变更管理的方法,包括a)记录表示在特定时刻的数据库中的数据状态的信息;b)将表示该状态的信息作为版本保存在中央服务器上;c)使所述版本与在特定时刻的数据库的状态相关联;以及d)向一个或多个本地服务器公开将版本标识为活动版本的信息。
5.权利要求4的方法,还包括通过向一个或多个本地服务器公开将先前所保存的版本标识为活动版本的信息来返回到先前所保存的版本。
6.权利要求4的方法,其中,所述数据库是关系数据库。
7.权利要求4的方法,其中,所述数据库是软件数据库。
8.在被耦合到用于数据库的中央服务器的本地服务器中,一种用于处理对数据库的变更的方法,包括a)在本地服务器处接收标识数据库中的数据的活动版本的信息;以及 b )用本地服务器向中央服务器请求数据,其中,所述数据与活动版本相关联。
9.权利要求8的方法,其中,所述数据库是软件数据库。
10.一种用于被耦合到一个或多个本地服务器的中央服务器的数据库管理系统,包括计算机处理器,被耦合到所述中央服务器;存储器,被耦合到所述中央服务器,所述存储器具有在其中包含的数据库;以及可由所述处理器执行的一组计算机指令,所述指令被配置为实现用于变更管理的方法,所述指令包括a)在被所述处理器执行时促使处理器记录表示在特定时刻的数据库中的数据状态的信息的指令;b)在被所述处理器执行时促使处理器将表示在特定时刻的数据库中的数据状态的信息作为版本保存在所述存储器中的指令;c)在被所述处理器执行时促使所述处理器使版本与在特定时刻的数据库的状态相关联的指令;以及d)在被所述处理器执行时促使所述处理器向所述一个或多个本地服务器公开将版本标识为活动版本的信息的指令。
11.权利要求10的系统,其中,所述计算机指令还包括e)在被所述处理器执行时促使所述处理器向所述一个或多个本地服务器公开将先前所保存的版本标识为活动版本的信息的指令。
12.权利要求10的系统,其中,所述数据库是软件数据库。
13.一种被耦合到用于数据库的中央服务器的本地服务器,包括计算机处理器,被耦合到所述本地服务器;以及可由所述处理器执行的一组计算机指令,所述指令被配置为实现处理对数据库的变更的方法,所述指令包括a)在被所述处理器执行时促使所述处理器在本地服务器处接收标识数据库中的数据的活动版本的信息的指令;以及b)在被所述处理器执行时促使所述处理器用本地服务器向中央服务器请求一个或多个文件的指令,其中,所述一个或多个文件与所述活动版本相关联。
14.权利要求13的本地服务器,其中,所述数据库是软件数据库。
15.一种用于配置替换的方法,包括a)使用网络中的配置的特定软件配置来定义逻辑配置,其中,所述定义包括定义所述配置的一个或多个组件之间的关系或定义所述配置的一个或多个设置值;以及b)替换该逻辑配置以定义用于在网络中的一个或多个其它特定配置的一个或多个组件关系和一个或多个设置值。
16.权利要求15的方法,其中,a)包括表达配置的组件之间的关系。
17.权利要求15的方法,其中,b)包括将来自一个或多个特定配置的一个或多个设置值级联在一起。
18.权利要求15的方法,其中,b)包括替换特定软件配置中的一个或多个默认设置值。
19.一种用于安全数据中心管理的方法,包括a)用存在于具有一个或多个远程主机的远程数据中心网络内的控制主机来控制远程数据中心的一个或多个远程主机;b)允许中央管理系统访问控制主机,而不允许中央管理系统直接访问远程数据中心的所述一个或多个远程主机;以及c)通过控制主机将从中央管理系统发送的命令中继到远程数据中心的一个或多个远程主机。
20.权利要求19的方法,其中,b)包括允许通过使用可信加密密钥来访问远程数据中心的一个或多个远程主机。
21.权利要求19的方法,其中,c)包括允许通过可信加密密钥来由控制主机访问中央管理系统。
22.一种用于安全数据中心管理的系统,包括控制主机,存在于具有一个或多个远程主机的远程数据中心的网络内,其中,所述控制主机被配置为控制远程主机中的一个或多个,其中,所述控制主机被配置为允许中央管理系统访问控制主机,而不允许中央管理系统直接访问一个或多个远程主机,并且其中,所述控制主机被配置为将从中央管理系统发送的命令中继到所述一个或多个远程主机。
23.权利要求22的系统,其中,所述控制主机被配置为通过使用可信加密密钥来访问中央管理系统。
24.权利要求22的系统,其中,每个控制主机被配置为允许中央管理系统通过使用可信加密密钥来访问所述一个或多个远程主机。
25.权利要求22的系统,还包括具有网络的远程数据中心,所述网络具有一个或多个远程主机。
26.权利要求22的系统,还包括中央管理系统。
全文摘要
可以通过在对数据库中的一个或多个项进行变更时将数据库拷贝到新的版本来对变更进行索引化而实现关系数据库中的变更管理。可以将新版本示为单个单元,并在单个版本下将所有变更存储在一起。可以将可供使用的新版本告知数据库用户。可以通过使用配置语言来简化软件配置问题,所述配置语言将软件组件之间的逻辑配置与那些组件的特定配置分离。可以通过使用控制主机来处理安全数据中心管理。
文档编号G06F7/00GK102160029SQ200980136659
公开日2011年8月17日 申请日期2009年9月14日 优先权日2008年9月19日
发明者M·D·米勒, N·G·维格, R·E·安德里斯 申请人:美国索尼电脑娱乐有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1