CN107710155A - 用于并行地引导应用服务器的系统和方法 - Google Patents

用于并行地引导应用服务器的系统和方法 Download PDF

Info

Publication number
CN107710155A
CN107710155A CN201580079568.XA CN201580079568A CN107710155A CN 107710155 A CN107710155 A CN 107710155A CN 201580079568 A CN201580079568 A CN 201580079568A CN 107710155 A CN107710155 A CN 107710155A
Authority
CN
China
Prior art keywords
server
dependence
group
entry
dependence graph
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.)
Granted
Application number
CN201580079568.XA
Other languages
English (en)
Other versions
CN107710155B (zh
Inventor
吕先正
金永顺
T·J·利特尔
李向东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN107710155A publication Critical patent/CN107710155A/zh
Application granted granted Critical
Publication of CN107710155B publication Critical patent/CN107710155B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

一种用于并行地引导应用服务器的系统和方法。在示例性方法中,每个服务器和服务器组条目可以与依赖关系属性相关联。该方法可以基于依赖关系属性创建依赖关系图。当被调用这样做时,每个没有依赖关系的服务器可以被并行地引导。剩余的服务器和服务器组可以基于依赖关系图进行引导。

Description

用于并行地引导应用服务器的系统和方法
版权声明
本专利文档公开内容的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现那样进行传真复制,但是除此之外在任何情况下都保留所有版权。
技术领域
本发明一般而言涉及计算机系统,并且更具体而言涉及事务处理环境。
背景技术
用于引导Tuxedo应用的传统机制(即,tmboot)通常以限定的次序来逐个地引导Tuxedo应用服务器。对于大型/复杂应用,这可能导致不期望地长的引导时间。
发明内容
一种用于并行引导应用服务器的系统和方法。在示例性方法中,每个服务器和服务器组条目可以与依赖关系属性相关联。该方法可以基于依赖关系属性创建依赖关系图。当被调用以这样做时,每个没有依赖关系的服务器可以被并行地引导。剩余的服务器和服务器组可以基于依赖关系图进行引导。
传统上,Tuxedo允许根据序列参数引导应用服务器。在这种情况下,当管理员(admin)调用tmboot(以引导用于要被利用的应用的服务器)时,将根据所分配的序列号/参数来引导应用服务器。这可能导致较慢的服务器引导序列。
本文公开的系统和方法为GROUP(组)和SERVER(服务器)添加了DEPENDSON(依赖于)属性。可以以由DEPENDSON参数指定的次序来引导应用服务器。这可以允许并行地引导应用服务器,从而实现更快和更高效的引导过程。
附图说明
图1示出了根据实施例的事务处理环境的图示。
图2示出了根据实施例的并行地引导应用服务器的图示。
图3示出了用于在事务处理环境中并行引导应用服务器的示例性方法的流程图。
具体实施方式
本发明是以示例方式而不是以限制方式在附图的各图中进行图示的,附图中相似的标号指示相似的元素。应当注意的是,在本公开中对“一”或“一个”或“某个”实施例的引用不一定是针对同一个实施例,并且这种引用意味着有至少一个实施例。
虽然讨论了具体实现方案,但是应当理解的是,这些具体实现方案仅仅是为了说明性目的而提供的。相关领域技术人员将认识到,在不脱离本发明的范围和精神的情况下,可以使用其它部件和配置。
对本发明的以下描述使用TuxedoTM环境作为事务中间件机器环境的示例。对于本领域技术人员将明显的是,可以使用其它类型的事务中间件机器环境而没有限制。
此外,在某些情况下,将阐述许多具体细节以提供对本发明的全面描述。然而,对于本领域技术人员将明显的是,本发明可以在没有这些具体细节的情况下进行实践。在其它情况下,没有十分详细地描述众所周知的特征,以免使本发明变得模糊。具体地,本具体实施方式使用XA分布式事务环境作为示例。对于本领域技术人员将明显的是,本发明可以应用于其它类型的分布式事务环境而没有限制。
在整个附图和具体实施方式中,共同的标号用于指示相同的元素;因此,如果在别的地方描述了元素,那么在图中使用的标号可以或可以不在特定于该图的详细描述中被引用。
本文描述的是用于在事务处理环境中并行地引导应用服务器的系统和方法。
事务中间件环境
事务中间件系统可以包括高性能硬件(例如,64位处理器技术、高性能大存储器以及冗余InfiniBandTM和以太网联网)连同应用服务器或中间件环境(诸如WebLogicTM套件)的组合,以提供完整的JavaTM EE应用服务器复合体,该复合体包括可以被快速供给并可以按需缩放的大规模并行存储器中(in-memory)网格。该系统可以被部署为提供应用服务器网格、存储区域网络和InfiniBandTM(IB)网络的全机架、半机架、或四分之一机架或其它配置。中间件机器软件可以提供应用服务器、中间件和其它功能,诸如例如WebLogicTMServer、JRockitTM或Hotspot JVM、OracleTM Linux或Solaris以及OracleTM VM。该系统可以包括经由IB网络彼此通信的多个计算节点、IB交换网关以及存储节点或单元。当被实现为机架配置时,机架的未使用部分可以留空或由填充物占据。
例如,在诸如“Sun Oracle Exalogic”或“Exalogic”的系统中,该系统是用于托管中间件或应用服务器软件的易于部署的解决方案,诸如OracleTM Middleware SW套件或Weblogic。如本文所描述的,事务中间件系统可以是包括一个或多个服务器、存储单元、用于存储装置联网的IB结构、以及托管中间件应用所需的所有其它部件的“箱中网格(gridin a box)”。通过利用使用例如OracleTM真正应用集群(Real Application Clusters,RAC)企业数据库(它是具有共享高速缓存体系架构的集群数据库,并且可以是云体系架构的组成部分)以及Exalogic Open Storage(Exalogic开放存储)的大规模并行网格体系架构,可以为所有类型的中间件应用提供显著的性能。该系统提供具有线性I/O可扩展性的改进的性能、易于使用和管理、并且提供关键任务可用性和可靠性。
根据本发明的实施例,诸如Tuxedo系统的事务中间件系统可以利用具有多个处理器的快速机器(诸如Exalogic中间件机器)以及高性能网络连接(诸如InfinibandTM(IB)网络)。
OracleTM Tuxedo系统提供使得能够构建、执行和管理高性能分布式业务应用的一组软件模块,并被许多多层应用开发工具用作事务中间件。Tuxedo是可以用于管理分布式计算环境中的分布式事务处理的中间件平台。它是经过验证的平台,用于解锁企业遗留应用并将其扩展到面向服务的体系架构,同时提供无限的可扩展性和基于标准的互操作性。
此外,Tuxedo提供了面向服务的基础设施,以用于跨系统进程和应用服务来高效地路由、调度和管理请求、事件和应用队列。利用几乎无限的可扩展性,它高效地管理高峰事务量,从而提高业务灵敏性并让IT组织快速对业务需求和吞吐量的变化做出反应。OracleTM Tuxedo跨多个数据库优化事务,并且无论访问协议是怎样的都确保跨所有参与资源的数据完整性。系统跟踪事务参与者并且监督经扩展的提交协议,从而确保所有事务提交和回滚都被正确处置。
此外,OracleTM Tuxedo系统可以符合Open Group(开放组)的X/OpenTM标准,包括支持用于两阶段提交(2PC)处理的XA标准、X/OpenTM ATMI API、X/OpenTM“分布式事务处理:TX(事务划分)规范”、以及用于语言国际化的X/OpenTM可移植性指南(XPG)标准。当事务应用服务器使用XA标准时,该事务应用服务器可以被称为XA服务器。例如,可以使用OPENINFO属性配置属于Tuxedo组的每个Tuxedo应用服务器。Tuxedo组中的所有XA服务器都可以使用OPENINFO属性来建立到资源管理器(RM)的连接。
Tuxedo应用服务器顺序引导
传统上,Tuxedo允许根据序列参数引导应用服务器。在这种情况下,当管理员调用tmboot(以引导用于要被利用的应用的服务器)时,将根据所分配的序列号/参数来引导应用服务器。
可以以由序列参数(SEQUENCE参数)指定的次序或以配置文件(例如,UBBCONFIG)中的服务器条目的次序来引导应用服务器。在两个或更多个服务器具有相同SEQUENCE参数的情况下,tmboot可以并行引导这些服务器,并且直到它们全都完成初始化之前将不会继续。
如果不能启动服务器,那么可以在中央事件日志上写入诊断信息,并且tmboot可以继续,除非是在启动失败的服务器是父服务器的情况(例如,在故障服务器之后启动的服务器依赖于故障服务器来恰当地执行)下。
在无法启动和/或初始化的服务器是处于引导过程中的其它服务器要启动的先决条件的情况下,或者当服务器无法被确认时,这可能导致应用服务器引导过程中不期望的延迟。
利用依赖关系的Tuxedo应用服务器并行引导
图1示出了事务处理环境100的图示。更具体而言,图1示出了事务处理环境100中的Tuxedo应用服务器的并行引导过程的图示。
根据实施例,在事务处理环境100内,管理员110可以结合引导图115使用诸如tmboot的命令来启动一个或多个应用服务器130(诸如Tuxedo应用服务器)。一旦被引导和初始化,可以与一个或多个数据库140通信的应用服务器就可以被应用120利用。
根据实施例,引导图115可以包括允许应用服务器130中的两个或更多个被并行引导的引导计划,并且还可以考虑服务器和服务器组之间的依赖关系。
根据实施例,并行引导Tuxedo应用服务器的选项可以被添加到tmboot。该选项可以是“-p num”选项,用于让tmboot指定以并行模式引导应用服务器。同样,可以在UBBCONFIG中为组和服务器添加新的关键字“DEPENDSON”,以指定在使用tmboot命令时Tuxedo应用服务器的引导次序。
根据实施例,tmboot的“-p num”选项可以指定以并行模式引导应用服务器。-p可以意味着并行地引导应用服务器。“num”意味着可以同时启动多少服务器。例如,tmboot“-p1”可以与没有-p选项的tmboot相同。如果num=0,那么系统可以使用缺省的数量(诸如16)。
根据实施例,本文描述的方法和系统可以为GROUP和SERVER添加关键字DEPENDSON属性。可以以由DEPENDSON参数或SEQUENCE参数指定的次序、或以配置文件(例如,UBBCONFIG(5))中的服务器条目的次序来引导应用服务器。如果指定了DEPENDSON参数和SEQUENCE参数二者,那么DEPENDSON参数具有较高的优先级。
根据实施例,本文描述的方法和系统可以为tmboot添加选项-p<number>。所有不具有在UBBCONFIG中配置的DEPENDSON关系的应用服务器将并行地引导。为了启用服务器,根据依赖关系按照次序启动,并且服务器并行运行,tmboot必须等待服务器启动的每个状态。
根据实施例,当在SHM(共享存储器)模式下操作时,tmboot将启动并行运行的所有服务器,并且等待已启动服务器的响应。服务器将通过管道(pipe)向tmboot进程发送响应,并且tmboot进程接收响应并进行后续作业。
根据实施例,当以MP(多进程)模式操作时,tmboot和tlisten可以创建一个更多的线程来彼此交互。本地线程可以等待从远程机器发送的消息。如果存在任何远程启动的服务器,那么通知主线程继续。远程tlisten线程将准备收集来自已启动的服务器的响应。一旦一个服务器启动了或失败了,就经由网络消息告知本地线程。
图2示出了根据实施例的并行地引导应用服务器的图示。
根据实施例,图2示出了若干个服务器(例如,服务器S11 202、S12 209、S13 204、S14 203、S21 206、S22 211、S23 210、S24 205、S31 124、S32 215、S41 207、S42 217和S43208)的依赖关系和并行引导图。此外,依赖关系和并行引导图包括若干个服务器组,这若干个服务器组包括G1 212、G2 213、G3 216和G4 218。
根据实施例,可以基于服务器和组之间的依赖关系来构建图2的依赖关系和并行引导图200。
根据实施例,如图2所示,可以存在若干个服务器组,即,3个服务器组G1、G2、G3。
G1包括服务器S11、S12(DEPENDSON S11)、S13和S14。符号(DEPENDSON)可以用于指示S12依赖于S11被引导和初始化来恰当地工作。
G2包括服务器S21、S22(DEPENDSON S21)、S23(DEPENDSON G1.S13、S24)和S24。同样地,符号(DEPENDSON)可以用于指示S22依赖于S21被引导和初始化来恰当地工作。同样,S32依赖于S24以及(组1的)S13被引导和初始化来恰当地工作。
G3(DEPENDSON G1、G2)可以包括服务器S31和S32。同样地,这里注意的是,为了让G3恰当地工作,组G1和G2必须被完全引导以及初始化。
G4可以包括S41、S42(DEPENDSON S41、G3)和S3。同样地,符号(DEPENDSON)可以用于指示G4依赖于S41和G3被引导和初始化来恰当地工作。
根据实施例,基于以上依赖关系,可以构建和启动201图2的并行引导图200,使得服务器引导次序可以是:S11,S13,S14,S21,S24,S41,S43并行启动。在S11已启动之后,然后S12可以被启动。在S21已启动之后,然后S22可以被启动。在S13已启动之后,S24可以被启动,随后启动S23。在G1(S11,S12,S13,S14)和G2(S21,S22,S23,S24)已被启动之后,服务器S31和S32可以被并行启动。在G3(S31,S32)和S41已启动之后,S42可以被启动。一旦S42和S43已启动,G4就被启动并初始化。
根据实施例,在所有服务器已启动之后,可以完成由管理员发起的tmboot任务。
图3示出了用于在事务处理环境中并行引导应用服务器的示例性方法的流程图。该方法可以开始步骤310,其中将多个服务器条目和多个组条目加载到存储器中,多个服务器条目中的每一个服务器条目与多个服务器中的一个服务器相关联,多个组条目中的每一个组条目与多个服务器组中的一个服务器组相关联。在步骤320处,该方法可以创建多个服务器以及多个组条目之间的依赖关系图。在步骤330处,该方法可以通过检查多个服务器当中没有依赖关系的服务器来继续。在步骤340处,该方法可以并行地引导多个服务器当中没有依赖关系的服务器中的每个服务器。在步骤350处,该方法可以继续初始化多个服务器当中没有依赖关系的服务器中的每个服务器。在步骤360处,该方法可以根据所创建的依赖关系图来引导剩余的未引导的服务器。
引导过程
根据实施例,当运行tmboot时,示例性过程可以从将服务器条目和组条目从TUXCONFIG加载到存储器中开始。接下来,该过程可以根据GROUP和SERVER的DEPENDSON属性来设置依赖关系图中服务器节点以及组节点之间的依赖关系。接下来,该过程可以检查是否存在循环(loop)和其它DEPENDSON错误。接下来,该过程可以将服务器从map_start节点添加到就绪列表。接下来,该过程可以使用异步模式启动就绪列表中的服务器,并准备从管道获取响应信息。如果该过程接收到一个响应,那么检查依赖服务器是否准备好启动,如果该依赖服务器准备好启动,那么就将它添加到就绪列表,并继续启动就绪列表中的过程。最后,如果所有的服务器已启动,那么tmboot可以退出。
创建依赖关系图
根据实施例,根据例如下面的示例性过程,示例性过程可以创建依赖关系图:
本地模式下的并行引导
根据实施例,过程可以支持本地模式下的并行引导。下面是这种过程的示例:
Unix:
tmboot进程创建匿名管道、fork(分叉)服务器进程、将管道fd发送到服务器进程。
服务器进程完成tpsrvinit,然后经由管道向tmboot发送响应。
tmboot将以NON-BLOCK(非阻塞)模式读取管道,一旦获得任何响应,就检查依赖关系图以决定要引导的下一个服务器。
Windows:
tmboot进程创建命名管道,fork服务器进程。服务器进程打开并连接到命名管道,在完成tpsrvinit之后,然后经由命名管道向tmboot发送响应。
tmboot创建一个线程并等待管道信息。如果获得任何响应,那么检查依赖关系图以决定要引导的下一个服务器。
SHM模式
根据实施例,可以在SHM模式下支持并行引导。在SHM模式下,tmboot可以启动就绪集合中的所有服务器,并等待来自已启动服务器的响应。服务器可以通过管道向tmboot进程发送响应,并且tmboot进程接收响应并进行后续作业。tmboot使用异步模式启动就绪集合中的服务器,并准备收集来自已启动服务器的响应。如果服务器接收到一个响应,那么检查对其依赖的服务器是否准备好启动,如果该服务器准备好了,那么将它添加到就绪集合列表并启动它。
MP模式下的并行引导
根据实施例,可以在MP模式下支持并行引导。在MP模式下,tmboot和tlisten可以创建一个更多的线程来彼此交互。本地线程可以等待从远程机器发送的消息。如果在远程存在任何启动的服务器,那么通知主线程继续。远程tlisten线程将准备收集来自已启动服务器的响应。一旦一个服务器已启动或失败,那么经由网络消息告知本地线程。
本发明的许多特征可以在硬件、软件、固件或其组合中执行,利用硬件、软件、固件或其组合执行,或者在硬件、软件、固件或其组合的帮助下执行。因此,本发明的特征可以利用(例如,包括一个或多个处理器的)处理系统来实现。
本发明的特征可以在计算机程序产品中实现、利用计算机程序产品来实现、或者在计算机程序产品的帮助下实现,其中计算机程序产品是具有存储于其上/其中的指令的存储介质或计算机可读介质,这些指令可用来对处理系统进行编程以执行本文所呈现的任何特征。存储介质可以包括但不限于任何类型的盘(包括软盘、光盘、DVD、CD-ROM、微驱动器、以及磁光盘)、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC)、或适于存储指令和/或数据的任何类型的介质或设备。
在存储在任何一种机器可读介质中时,本发明的特征可以被结合到软件和/或固件中以控制处理系统的硬件,并且用于使处理系统能够利用本发明的结果与其它机制交互。这种软件或固件可以包括但不限于应用代码、设备驱动程序、操作系统和执行环境/容器。
本发明的特征也可以利用例如诸如专用集成电路(ASIC)的硬件部件在硬件中实现。对相关领域的技术人员而言,实现硬件状态机以便执行本文所描述的功能将是明显的。
此外,本发明可以方便地利用一个或多个常规的通用或专用数字计算机、计算设备、机器或微处理器来实现,包括根据本公开内容的教导编程的一个或多个处理器、存储器和/或计算机可读存储介质。如对软件领域的技术人员将明显的,熟练的程序员基于本公开内容的教导可以容易地准备适当的软件编码。
虽然以上已经描述了本发明的各种实施例,但是应该理解的是,它们已作为示例而不是限制给出。对相关领域的技术人员来说将明显的是,在不背离本发明的精神和范围的情况下,在其中可以做出各种形式和细节上的改变。
本发明已经借助功能构建块进行了描述,这些功能构建块示出指定的功能的执行及其关系。这些功能构建块的边界在本文中通常是为了方便描述而任意限定的。可以限定可替代的边界,只要所指定的功能及其关系被适当地执行。任何这种可替代的边界因此在本发明的范围和精神之内。
本发明的以上描述是为了说明和描述的目的提供。它不是穷尽的或者要把本发明限定到所公开的精确形式。本发明的广度和范围不应该由任何上述示例性实施例来限制。许多修改和变化对本领域技术人员来说将是明显的。这些修改和变化包括所公开特征的任何相关组合。实施例的选择与描述是为了最好地解释本发明的原理及其实践应用,从而使本领域其它技术人员能够理解用于各种实施例的本发明以及具有适于预期特定用途的各种修改的本发明。本发明的范围旨在由以下权利要求及其等同物来限定。

Claims (20)

1.一种用于在事务处理环境中并行地引导应用服务器的方法,包括:
将多个服务器条目和多个组条目加载到存储器中,所述多个服务器条目中的每个服务器条目与多个服务器中的一个服务器相关联,所述多个组条目中的每个组条目与多个服务器组中的一个服务器组相关联;
创建所述多个服务器以及所述多个组条目之间的依赖关系图;
检查所述多个服务器当中的没有依赖关系的服务器;
并行地引导所述多个服务器当中的没有依赖关系的服务器中的每个服务器;
初始化所述多个服务器当中的没有依赖关系的服务器中的每个服务器;以及
根据所创建的依赖关系图引导剩余的未引导的服务器。
2.如权利要求1所述的方法,其中创建所述依赖关系图包括:
针对依赖关系属性检查所述多个服务器条目和所述多个组条目中的每一个;以及
基于在所述检查期间找到的每个依赖关系属性,创建所述依赖关系图。
3.如权利要求1或2所述的方法,还包括:
针对依赖关系循环检查所述依赖关系图;以及
当找到依赖关系循环时,重新创建所述依赖关系图以避免所找到的依赖关系循环。
4.如权利要求1、2或3所述的方法,还包括:
在根据所创建的依赖关系图引导剩余的未引导的服务器之前,检查所述多个服务器当中的没有依赖关系的服务器中的被并行地引导的每个服务器正在恰当地运行。
5.如权利要求1所述的方法,其中所述多个服务器中的每个服务器包括Tuxedo应用服务器。
6.如权利要求5所述的方法,其中所述事务处理环境在SHM模式下操作。
7.如权利要求5所述的方法,其中所述事务处理环境在MP模式下操作。
8.一种用于在事务处理环境中并行地引导应用服务器的系统,所述系统包括:
一个或多个微处理器;以及
运行在所述一个或多个微处理器上的处理器,其中所述处理器操作以执行步骤,所述步骤包括:
将多个服务器条目和多个组条目加载到存储器中,所述多个服务器条目中的每个服务器条目与多个服务器中的一个服务器相关联,所述多个组条目中的每个组条目与多个服务器组中的一个服务器组相关联;
创建所述多个服务器以及所述多个组条目之间的依赖关系图;
检查所述多个服务器当中的没有依赖关系的服务器;
并行地引导所述多个服务器当中的没有依赖关系的服务器中的每个服务器;
初始化所述多个服务器当中的没有依赖关系的服务器中的每个服务器;以及
根据所创建的依赖关系图引导剩余的未引导的服务器。
9.如权利要求8所述的系统,其中创建所述依赖关系图包括:
针对依赖关系属性检查所述多个服务器条目和所述多个组条目中的每一个;以及
基于在所述检查期间找到的每个依赖关系属性,创建所述依赖关系图。
10.如权利要求8或9所述的系统,所述步骤还包括:
针对依赖关系循环检查所述依赖关系图;以及
当找到依赖关系循环时,重新创建所述依赖关系图以避免所找到的依赖关系循环。
11.如权利要求8、9或10所述的系统,所述步骤还包括:
在根据所创建的依赖关系图引导剩余的未引导的服务器之前,检查所述多个服务器当中的没有依赖关系的服务器中的被并行地引导的每个服务器正在恰当地运行。
12.如权利要求8所述的系统,其中所述多个服务器中的每个服务器包括Tuxedo应用服务器。
13.如权利要求12所述的系统,其中所述事务处理环境在SHM模式下操作。
14.如权利要求12所述的系统,其中所述事务处理环境在MP模式下操作。
15.一种具有存储在其上的指令的非暂态机器可读存储介质,所述指令用于在事务处理环境中并行地引导应用服务器,所述指令在被执行时,使系统执行步骤,所述步骤包括:
将多个服务器条目和多个组条目加载到存储器中,所述多个服务器条目中的每个服务器条目与多个服务器中的一个服务器相关联,所述多个组条目中的每个组条目与多个服务器组中的一个服务器组相关联;
创建所述多个服务器以及所述多个组条目之间的依赖关系图;
检查所述多个服务器当中的没有依赖关系的服务器;
并行地引导所述多个服务器当中的没有依赖关系的服务器中的每个服务器;
初始化所述多个服务器当中的没有依赖关系的服务器中的每个服务器;以及
根据所创建的依赖关系图引导剩余的未引导的服务器。
16.如权利要求15所述的非暂态机器可读存储介质,其中创建所述依赖关系图包括:
针对依赖关系属性检查所述多个服务器条目和所述多个组条目中的每一个;以及
基于在所述检查期间找到的每个依赖关系属性,创建所述依赖关系图。
17.如权利要求15或16所述的非暂态机器可读存储介质,所述步骤还包括:
针对依赖关系循环检查所述依赖关系图;以及
当找到依赖关系循环时,重新创建所述依赖关系图以避免所找到的依赖关系循环。
18.如权利要求15、16或17所述的非暂态机器可读存储介质,所述步骤还包括:
在根据所创建的依赖关系图引导剩余的未引导的服务器之前,检查所述多个服务器当中的没有依赖关系的服务器中的被并行地引导的每个服务器正在恰当地运行。
19.如权利要求15所述的非暂态机器可读存储介质,其中所述多个服务器中的每个服务器包括Tuxedo应用服务器。
20.如权利要求19所述的非暂态机器可读存储介质,其中所述事务处理环境在SHM模式或MP模式中的一种模式下操作。
CN201580079568.XA 2015-10-23 2015-10-23 用于并行地引导应用服务器的系统和方法 Active CN107710155B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/092594 WO2017066972A1 (en) 2015-10-23 2015-10-23 System and method for booting application servers in parallel

Publications (2)

Publication Number Publication Date
CN107710155A true CN107710155A (zh) 2018-02-16
CN107710155B CN107710155B (zh) 2021-04-06

Family

ID=58556506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580079568.XA Active CN107710155B (zh) 2015-10-23 2015-10-23 用于并行地引导应用服务器的系统和方法

Country Status (6)

Country Link
US (1) US10198271B2 (zh)
EP (1) EP3365774B1 (zh)
JP (1) JP6832291B2 (zh)
KR (1) KR102445871B1 (zh)
CN (1) CN107710155B (zh)
WO (1) WO2017066972A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111208975A (zh) * 2018-11-21 2020-05-29 慧与发展有限责任合伙企业 并发执行服务
US11582117B2 (en) 2018-04-04 2023-02-14 Hewlett Packard Enterprise Development Lp State transitions for a set of services
US11924068B2 (en) 2014-09-29 2024-03-05 Hewlett Packard Enterprise Development Lp Provisioning a service

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10268549B2 (en) * 2016-03-03 2019-04-23 International Business Machines Corporation Heuristic process for inferring resource dependencies for recovery planning
JP2019032709A (ja) * 2017-08-08 2019-02-28 東芝三菱電機産業システム株式会社 分散システム
US11392418B2 (en) 2020-02-21 2022-07-19 International Business Machines Corporation Adaptive pacing setting for workload execution
WO2023101295A1 (ko) * 2021-12-02 2023-06-08 삼성전자 주식회사 복수의 코어를 사용하여 운영체제를 부팅하는 전자 장치 및 그의 동작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198692A1 (en) * 2004-10-20 2007-08-23 Fujitsu Limited Application management program, application management method, and application management apparatus
CN102486732A (zh) * 2010-12-02 2012-06-06 上海可鲁系统软件有限公司 一种分布式平台及平台中功能模块启动优先级控制方法
CN103152405A (zh) * 2013-02-19 2013-06-12 浪潮电子信息产业股份有限公司 一种高可用集群对于存储池资源的应用方法
US20140006554A1 (en) * 2012-07-02 2014-01-02 Fujitsu Limited System management apparatus, system management method, and storage medium
US8819673B1 (en) * 2007-05-24 2014-08-26 United Services Automobile Association (Usaa) Systems and methods for java virtual machine management
CN104010034A (zh) * 2014-05-28 2014-08-27 浪潮电子信息产业股份有限公司 一种高可用集群关于组依赖的管理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3636744B2 (ja) * 1994-06-14 2005-04-06 株式会社日立製作所 分散システムおよび分散システムの自動運転スケジュールの作成方法
US5907701A (en) * 1996-06-14 1999-05-25 The Foxboro Company Management of computer processes having differing operational parameters through an ordered multi-phased startup of the computer processes
US5938765A (en) * 1997-08-29 1999-08-17 Sequent Computer Systems, Inc. System and method for initializing a multinode multiprocessor computer system
US6681242B1 (en) * 2000-01-10 2004-01-20 Sun Microsystems, Inc. Method and apparatus for detecting dependency cycles between resources in a computer system
US6960595B2 (en) * 2001-03-23 2005-11-01 Bristol-Myers Squibb Pharma Company 5-6 to 5-7 Heterobicycles as factor Xa inhibitors
CN100336019C (zh) * 2004-10-26 2007-09-05 中国科学技术大学 基于服务体/执行流结构的操作系统
CN100350383C (zh) * 2005-12-06 2007-11-21 南京邮电大学 一种策略驱动的移动中间件开发方法
JP2007179252A (ja) * 2005-12-27 2007-07-12 Nomura Research Institute Ltd サーバシステム、サーバシステムの制御方法
US7882341B2 (en) * 2007-12-31 2011-02-01 Intel Corporation System and method to enable parallelization of early platform initialization
CN101251796A (zh) * 2008-03-31 2008-08-27 中国船舶重工集团公司第七〇九研究所 基于依赖注入的分布式构件依赖关系管理方法
CN101621405B (zh) * 2009-07-07 2012-02-29 中兴通讯股份有限公司 分布式管理监控系统及其监控方法、创建方法
US8949867B2 (en) * 2009-12-23 2015-02-03 Oracle International Corporation System and method for providing transaction monitor integration with service component architecture (SCA) runtime
US8490055B2 (en) * 2010-09-17 2013-07-16 Ca, Inc. Generating dependency maps from dependency data
KR101766695B1 (ko) * 2013-03-15 2017-08-09 후아웨이 테크놀러지 컴퍼니 리미티드 복수의 중앙 처리 장치를 구비한 컴퓨터 시스템을 위한 부팅 방법
WO2015169068A1 (en) * 2014-05-09 2015-11-12 Huawei Technologies Co., Ltd. System and method thereof to optimize boot time of computers having multiple cpus
US10200254B2 (en) * 2015-04-17 2019-02-05 The Boeing Company Methods and systems for improved computer network analysis

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198692A1 (en) * 2004-10-20 2007-08-23 Fujitsu Limited Application management program, application management method, and application management apparatus
US8819673B1 (en) * 2007-05-24 2014-08-26 United Services Automobile Association (Usaa) Systems and methods for java virtual machine management
CN102486732A (zh) * 2010-12-02 2012-06-06 上海可鲁系统软件有限公司 一种分布式平台及平台中功能模块启动优先级控制方法
US20140006554A1 (en) * 2012-07-02 2014-01-02 Fujitsu Limited System management apparatus, system management method, and storage medium
CN103152405A (zh) * 2013-02-19 2013-06-12 浪潮电子信息产业股份有限公司 一种高可用集群对于存储池资源的应用方法
CN104010034A (zh) * 2014-05-28 2014-08-27 浪潮电子信息产业股份有限公司 一种高可用集群关于组依赖的管理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11924068B2 (en) 2014-09-29 2024-03-05 Hewlett Packard Enterprise Development Lp Provisioning a service
US11582117B2 (en) 2018-04-04 2023-02-14 Hewlett Packard Enterprise Development Lp State transitions for a set of services
CN111208975A (zh) * 2018-11-21 2020-05-29 慧与发展有限责任合伙企业 并发执行服务
US11947996B2 (en) 2018-11-21 2024-04-02 Hewlett Packard Enterprise Development Lp Execution of services concurrently

Also Published As

Publication number Publication date
EP3365774B1 (en) 2022-04-06
CN107710155B (zh) 2021-04-06
WO2017066972A1 (en) 2017-04-27
EP3365774A1 (en) 2018-08-29
JP2018535456A (ja) 2018-11-29
KR102445871B1 (ko) 2022-09-21
KR20180073520A (ko) 2018-07-02
JP6832291B2 (ja) 2021-02-24
EP3365774A4 (en) 2019-06-26
US20170115995A1 (en) 2017-04-27
US10198271B2 (en) 2019-02-05

Similar Documents

Publication Publication Date Title
CN107710155A (zh) 用于并行地引导应用服务器的系统和方法
JP5102901B2 (ja) データセンタにわたる複数データサーバ間のデータ完全性を保持する方法およびシステム
CN102103518B (zh) 一种在虚拟化环境中管理资源的系统及其实现方法
Fritchie Chain replication in theory and in practice
US9164806B2 (en) Processing pattern framework for dispatching and executing tasks in a distributed computing grid
US20150161016A1 (en) Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm
US20180004777A1 (en) Data distribution across nodes of a distributed database base system
US20100205273A1 (en) Method, system and computer readable recording medium for determining major group under split-brain syndrome
CN103827832B (zh) 用于在事务中间件机器环境中持久化事务记录的系统与方法
CN109302321A (zh) 服务器、业务需求处理系统、方法和监控系统
CN108292235A (zh) 使用选择性资源迁移的网络附连存储器
US8549129B2 (en) Live migration method for large-scale IT management systems
US10698767B1 (en) Decentralized management of multi-service workflows
US20190042149A1 (en) Writing composite objects to a data store
EP2115586A2 (en) Distributed platform management for high availability systems
CN105635311A (zh) 一种云管理平台中资源池信息同步的方法
CN111190823A (zh) Ui自动化测试方法、电子装置及计算机可读存储介质
CN110494849A (zh) 用于确定跨平台应用迁移的成功的系统和方法
US20050114834A1 (en) Grid-enabled ANT compatible with both stand-alone and grid-based computing systems
Plattner et al. Dbfarm: A scalable cluster for multiple databases
CN116974983A (zh) 数据处理方法、装置、计算机可读介质及电子设备
Thanekar et al. A study on MapReduce: Challenges and Trends
Al-Fares et al. Change Management in Physical Network Lifecycle Automation
JP7148570B2 (ja) アプリケーションサーバを並列起動するためのシステムおよび方法
Demirbas et al. Does the cloud need stabilizing?

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