CN104765621B - 一种在集群节点中部署程序的方法和系统 - Google Patents

一种在集群节点中部署程序的方法和系统 Download PDF

Info

Publication number
CN104765621B
CN104765621B CN201410001336.XA CN201410001336A CN104765621B CN 104765621 B CN104765621 B CN 104765621B CN 201410001336 A CN201410001336 A CN 201410001336A CN 104765621 B CN104765621 B CN 104765621B
Authority
CN
China
Prior art keywords
program
node
message
subscription
disposed
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.)
Expired - Fee Related
Application number
CN201410001336.XA
Other languages
English (en)
Other versions
CN104765621A (zh
Inventor
姜朋慧
M·贝斯勒
江丕峻
许焱
王夕宁
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201410001336.XA priority Critical patent/CN104765621B/zh
Priority to US14/560,347 priority patent/US9633127B2/en
Publication of CN104765621A publication Critical patent/CN104765621A/zh
Application granted granted Critical
Publication of CN104765621B publication Critical patent/CN104765621B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种在集群节点中部署程序的方法和系统,方法包括:获得集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系;获得订阅/发布服务器的IP地址和连接信息;连接订阅/发布服务器;向订阅/发布服务器订阅该程序依赖的其它程序的消息;以及响应于从订阅/发布服务器得到订阅的其它程序的消息,部署该程序。该方法和系统可以在集群中快速并且容易地部署程序,节省程序开发人员的劳动。

Description

一种在集群节点中部署程序的方法和系统
技术领域
本发明涉及程序的部署,更具体地涉及一种在集群节点中部署程序的方法和系统。
背景技术
程序部署包含程序的安装、参数配置以及启动的过程。在分布式系统中,安装有不同程序的节点扮演着不同的角色。不同节点安装的程序可能有依赖关系,需要以某种特定的顺序安装、配置以及启动。例如,在节点X上部署程序A之前需要首先在节点Y上部署程序B。因为在不同节点上不同程序的部署是分布式的,或者说是自治的,因此在不同节点上的不同程序以协作的方式共同部署是非常困难的。
目前常用的解决方案是:在集群拓扑结构中安装和升级程序时,为了保证较好的扩展性,将完成相同功能的多个节点聚集成集群,各个节点之间具有预先定义的或者是随机的依赖关系,然后使用人工根据依赖关系部署各个节点。这种方法既费时又容易出错。
发明内容
根据本发明的一个方面,提供了一种在集群节点中部署程序的方法,包括:
获得集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系;
获得订阅/发布服务器的IP地址和连接信息;
连接订阅/发布服务器;
向订阅/发布服务器订阅该程序依赖的其它程序的消息;
响应于从订阅/发布服务器得到订阅的其它程序的消息,部署该程序。
根据本发明的另一个方面,提供了一种在集群节点中协调程序部署的方法,包括:
响应于与多个节点建立连接,接收各节点上要安装的全部程序以及订阅信息;
响应于第一节点的订阅信息中指出其要部署的第一程序依赖于第二程序,根据接收的各节点上要安装的全部程序获得第二程序所在的第二节点;
向第二节点发送发布第二程序的消息的请求;
响应于从结点2接收到第二程序的消息,根据订阅信息,将第二程序的消息发送给第一节点。
根据本发明的又一个方面;提供了一种在集群节点中部署程序的系统,包括:
依赖关系获得装置,被配置为获得集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系;
IP地址和连接信息获得装置,被配置为获得订阅/发布服务器的IP地址和连接信息;
连接装置,被配置为连接订阅/发布服务器;
订阅装置,被配置为向订阅/发布服务器订阅依赖的其它程序的消息;
部署装置,被配置为响应于从订阅/发布服务器得到订阅的其它程序的消息,部署该程序。
根据本发明的再一个方面,提供了一种在集群节点中协调程序部署的系统,包括:
连接装置,被配置为响应于与多个节点建立连接,接收各节点上要安装的全部程序以及订阅信息;
订阅节点寻找装置,被配置为响应于第一节点的订阅信息中指出其要部署的第一程序依赖于第二程序,根据接收的各节点上要安装的全部程序获得第二程序所在的第二节点;
订阅消息请求装置,被配置为向第二节点发送发布第二程序的消息的请求;
订阅消息转达装置,被配置为响应于从第二节点接收到第二程序的消息,根据订阅信息,将第二程序的消息发送给第一节点。
利用根据本发明上述方面的方法和系统,可以在集群中快速并且容易地部署程序,节省程序开发人员的劳动。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器的框图;
图2示意性示出了根据本发明的一种实施方式的一种在集群节点中部署程序的方法的流程图;
图3描述了集群环境下三个节点之间部署有相互依赖关系程序的情况的一个例子;
图4示出了图3的节点1在部署“IBM Content Collector”时与订阅/发布服务器之间的通信流程;
图5示出了一种在集群节点中协调程序部署的方法的工作流程;
图6示出了一种在集群节点中部署程序的系统600的结构框图;以及
图7示出了一种在集群节点中协调程序部署的系统700的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种虚拟机,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可迁移的和不可迁移的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可迁移/不可迁移的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可迁移的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可迁移非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可迁移非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
本发明公开了一种在集群节点中部署程序的方法和系统,图2示意性示出了根据本发明的一种实施方式的一种在集群节点中部署程序的方法的流程图。根据图2,在步骤S201,获得集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系;在步骤S202,获得订阅/发布服务器的IP地址和连接信息;在步骤S203,连接订阅/发布服务器;在步骤S204,并向订阅/发布服务器订阅依赖的其它程序的消息;在步骤S205,响应于从订阅/发布服务器得到订阅的其它程序的消息,部署该程序。在一种优选的实施方式中,该方法还包括步骤S206(图2未示出),响应于该程序部署完毕,并且订阅/发布服务器要求该节点发布该程序的消息,向订阅/发布服务器发布该程序的消息。但是,由于并不是所有的程序都要发布消息,因此,该步骤是优选的。另外,在上述方法中,连接信息包括用户名、密码等与连接订阅/发布服务器连接所需要的信息;发布的该程序的消息中包含该程序的执行状态和依赖数据,以便依赖该程序的其他程序执行所使用。
集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系可以来自于集群中各节点上要部署的程序之间的依赖关系。在一种实施方式中,本领域技术人员可以采用编辑器编辑的方式来描述集群中各节点上要部署的程序之间的依赖关系,然后使用文本或者脚本语言纪录。在一种具体的实施方式中,可以为用户提供图形用户界面,然后用户采用拖拽的方式来表达要集群中各节点上要部署的程序之间的依赖关系,再将用户通过图形用户界面给出的集群中各节点上要部署的程序之间的依赖关系使用图形概述文件表达,或者转换成文本或者脚本语言或者规定的其他形式。也可以使用数据库记录集群中各节点上要部署的程序之间的依赖关系,或者采用本领域技术人员所知的任何其他形式描述,可以制定不同的描述规则,以便进行传递。
集群中各节点上要部署的程序之间的依赖关系可以使用集群中的节点存储,在一种实施方式中,存储集群中各节点上要部署的程序之间的依赖关系的节点不是需要安装程序的节点。
由于集群中各节点上要部署的程序之间的依赖关系有多种描述方式,因此获得集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系也有多种实施方式。在集群中各节点上要部署的程序之间的依赖关系使用数据库描述的情况下,获得集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系可以直接采用数据库查询的方式,例如对于使用关系型数据库,可以使用DB query获得与该节点要安装的程序之间有以依赖关系的的程序;在集群中各节点上要部署的程序之间的依赖关系使用文本或者脚本描述的情况下,可以通过解析该文本或者脚本来获得;在集群中各节点上要部署的程序之间的依赖关系使用图形概述文件描述的情况下,可以通过开发应用程序接口来获得。
图3描述了集群环境下三个节点之间部署有相互依赖关系程序的情况的一个例子。在图3中,节点1需要安装和部署“IBM WebSphere”,“IBM Domino运行时环境”和“IBMContent Collector”;节点2需要安装和部署“IBM DB2”,“IBM WebSphere”和“IBM FileNet P8”;节点3需要安装和部署“IBM Domino”和“IBM eDiscovery Manager”。程序间的依赖关系包括节点内部署的程序间的依赖关系,以及对集群内其他节点上部署的程序的依赖关系。例如节点1中的“IBM Content Collector”依赖节点2的“IBM FileNet P8”和节点3的“IBM Domino”以及节点1内部的“IBM WebSphere”,“IBM Domino运行时环境”。节点3中的“IBM eDiscovery Manager”依赖节点2的“IBM FileNet P8”。依赖关系不但要求所依赖的程序完成部署,同时还需要提供相应的依赖参数,使得被依赖程序能够开放给依赖者。例如节点2中的“IBM FileNet P8”,需要开放的依赖参数包括“连接类型”,“主机名称”,“端口”,“访问路径”,“管理员名称”,“管理员密码”。节点3中的“IBM Domino”需要开放的依赖参数包括“NotesID文件路径”,“Notes用户密码”,“Domino主机名”和“连接协议”。以节点1的IBMContent Collector程序为例,相应的依赖关系可以通过如下XML文件表示。
由上述XML文件描述的依赖关系可知,节点1中的“IBM Content Collector”依赖“IBM FileNet P8”、“IBM Domino”、“IBM WebSphere”,以及“IBM Domino运行时环境”。但此时,节点1并不知道上述依赖程序将在哪个节点安装(location的域为空),他们是否已近安装完毕(Availability的域为空),并且需要得到哪些参数(DependentParameters的域为空)。
一种实施方式中,每个节点中都存储该集群中各节点上要部署的程序之间的依赖关系,然后该节点从上述集群中各节点上要部署的程序之间的依赖关系拆分出自己要部署的程序与集群中要部署的其它程序之间的依赖关系;在另一种实施方式中,可以在节点外将上述集群中各节点上要部署的程序之间的依赖关系进行拆分,只将集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系存储到该节点中。例如,上例中对于节点1,可以只保留描述“IBM WebSphere”,“IBM Domino运行时环境”和“IBM ContentCollector”这三个程序的依赖关系XML片段。
集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系也可以直接由系统管理员在该节点上使用与上述集群中各节点上要部署的程序之间的依赖关系相同的方式输入到该节点中,例如直接编辑文本或者脚本文件,或者使用命令行输入,使用特定的数据结构存储等等。然后将获得的集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系直接存储在该节点中。
在步骤S203和S204中,实际上是节点中准备一个订阅/发布(pub/sub)系统。该订阅/发布系统向订阅/发布服务器进行订阅和发布依赖信息。在一种实施方式中,订阅/发布服务器IP地址和连接方式,可以是由系统管理员在配置时输入的,也可以是通过程序接口获得的。甚至,可以在描述依赖关系的文件中给出订阅/发布服务器IP地址和连接方式。对应于不同的订阅/发布服务器IP地址和连接方式的输入方式,可以使用不同的获得方式,例如可以通过程序接口获得,可以通过读文件获得,可以通过命令行解析获得,等等。
图4示出了图3的节点1在部署“IBM Content Collector”时与订阅/发布服务器之间的通信流程。
步骤1:节点1从依赖关系库中获得集群中该节点上要部署的程序,即“IBMContent Collector”,与集群中要部署的其它程序之间的依赖关系,对于节点1来说,可以获得“IBM Content Collector”对“IBM WebSphere”,“IBM Domino运行时环境”和“IBMContent Collector”的依赖关系,例如就是上述的XML文件。
步骤2:节点1获得订阅/发布服务器的IP地址和连接信息,可以由系统管理员配置,或者存贮在存储设备中,通过访问该设备获取;或者存储在网络中,通过接口获取,等等。
步骤3:节点1利用上述订阅/发布服务器的IP地址和连接信息连接订阅/发布服务器,并向订阅/发布服务器订阅依赖的其它程序的信息。连接订阅/发布服务器中,该节点还要向订阅/发布服务器报告该节点上要安装的全部程序。
连接订阅/发布服务器并向订阅/发布服务器订阅依赖的其它程序的消息的一种实施方式中,可以区分内部依赖和外部依赖。例如,对于节点1来说,“IBM FileNet P8”和“IBM Domino”是外部依赖;“IBM WebSphere”和“IBM Domino运行时环境”是内部依赖。则该步骤进一步包括:响应于所述集群中要部署的其它程序包括该节点内部要部署的程序和集群中其它节点要部署的程序,连接订阅/发布服务器并只向订阅/发布服务器订阅依赖的集群中其它节点要部署的程序的消息。而该节点内部要部署的程序的相关信息,则通过内部通信获得。即该方法还包括步骤:进一步地,响应于所述集群中要部署的其它程序包括该节点内部要部署的程序,通过节点内部的通信获得该节点内部要部署的程序的消息。在另一种实施方式中,不区分内部依赖和外部依赖,将所有的依赖都认为是外部依赖,即使是该节点内部要部署的程序,也认为是集群中其它节点要部署的程序,需要通过订阅/发布服务器订阅。同样,对于发布来说也分为内部发布和外部发布。外部发布就是通常的发布。在解析节点内部的各程序的依赖关系时,如果发现内部依赖关系,即响应于所述依赖关系中指出该节点上要部署的其它程序依赖于该程序,通过节点内部的通信发布该程序的消息。当然,也可以将所有的依赖都认为是外部依赖,全部向订阅/发布服务器发布该节点要部署的程序的消息,而不存在节点内部的发布过程。
步骤4:节点1接收到订阅/发布服务器的订阅成功信息。
例如,订阅/发布服务器收到节点1需要安装和部署“IBM WebSphere”,“IBMDomino运行时环境”和“IBM Content Collector”;并且收到“IBM Content Collector”订阅“IBM FileNet P8”和“IBM Domino”的订阅消息后,发送订阅成功信息。
步骤5:节点1从订阅/发布服务器接收到订阅消息。
订阅后,订阅/发布服务器发现节点2需要安装和部署“IBM DB2”,“IBMWebSphere”和“IBM FileNet P8”并且节点3需要安装和部署“IBMDomino”和“IBMeDiscovery Manager”,则订阅/发布服务器响应于收到节点2发布的访问“IBM FileNetP8”消息后(即节点2完成“IBM FileNet P8”的部署),将该消息根据订阅消息发送给节点1,并且响应于收到节点3发布的访问“IBM Domino”消息后(即节点3完成“IBM Domino”的部署),将该消息根据订阅消息发送给节点1,并且节点1还通过内部程序获得“IBMWebSphere”,“IBM Domino运行时环境”的安装部署及参数。其中节点2和节点3发布的消息中,除了包括程序完成部署,还包括相应的依赖参数,使得该程序能够开放给依赖者。例如节点2中的“IBM FileNet P8”,需要开放的依赖参数包括“连接类型”,“主机名称”,“端口”,“访问路径”,“管理员名称”,“管理员密码”。节点3中的“IBM Domino”需要开放的依赖参数包括“Notes ID文件路径”,“Notes用户密码”,“Domino主机名”和连接协议。
另一种实施方式中,节点1不区分外部和内部依赖的订阅信息,将内部依赖的订阅信息和外部的订阅信息作相同的处理,也可以达到和上述实施例相同的效果。对于订阅/发布服务器,是没有外部和内部依赖的订阅信息的区分的。
节点1从订阅/发布服务器得到订阅消息后,其依赖关系的XML文件更新为:
步骤6:节点1安装和部署“IBM Content Collector”。由于节点1中的“IBMWebSphere”,“IBM Domino运行时环境”对其他程序没有依赖关系,因此很快被部署。并且通过内部程序或者订阅/发布服务器将其相关访问信息通知到“IBM Content Collector”。在使用内部程序通知的过程中,可以使用多种方式,例如程序接口,消息方式等等。在安装“IBMContent Collector”的过程中,利用上述更新的依赖关系,连接到节点2和节点3,就可以直接部署。
步骤7:接收到订阅/发布服务器要求该节点发布访问该程序的消息;
步骤8:响应于该程序部署完毕,向订阅/发布服务器发布该程序的消息,其中,发布的该程序的消息中包含该程序的执行状态和依赖数据,以便依赖该程序的其他程序执行所使用。
由于在本例中,集群中不存在依赖“IBM Content Collector”的程序,因此,订阅/发布服务器不会要求该节点发布访问该程序的消息,实际上,对本例来说,步骤7和步骤8并不存在。也就是说,步骤S205可以分解为步骤7和步骤8。
图4还从另一个侧面描述了订阅/发布服务器的工作流程。图5示出了一种在集群节点中协调程序部署的方法的工作流程,也就是订阅/发布服务器的工作流程。一种实施方式中,订阅/发布服务器只收到外部依赖的订阅/发布信息,或者不区分外部依赖和内部依赖,统一处理。根据图5,在步骤S501,响应于与多个节点建立连接,接收各节点上要安装的全部程序以及订阅信息;在步骤S502,响应于第一节点的订阅信息中指出其要部署的第一程序依赖于第二程序,根据接收的各节点上要部署的全部程序获得第二程序所在的第二节点;在步骤S503,向第二节点发送发布第二程序的消息的请求;在步骤S504,响应于从第二节点接收到第二程序的消息,根据订阅信息,将第二程序的消息发送给第一节点。在一种实施方式中,响应于向第一节点发送发布的第二程序的消息时,第一节点出现连接故障,保存第二程序的消息直至将该消息发送给第一节点。这样可以保证订阅的消息不会丢失,并且总会得到结果。
前面已经参考附图描述了实现本发明的方法的各个实施例。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的一在集群节点中部署程序的系统以及一种在集群节点中协调程序部署的系统。即使该系统在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该系统表现出区别于通用处理设备的特性,从而形成本发明的各个实施例的装置。本发明中所述装置包括若干单元或模块,所述单元或模块被配置为执行相应步骤。本领域的所述技术人员通过阅读本说明书可以理解如何编写程序实现所述单元或模块执行的动作。由于所述系统与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对应的装置,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再进行赘述。
在同一个发明构思下,本发明的实施方式还公开了在集群节点中部署程序的系统,图6示出了一种在集群节点中部署程序的系统600的结构框图,根据图6,该系统包括:依赖关系获得装置601,被配置为获得集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系;IP地址和连接信息获得装置602,被配置为获得订阅/发布服务器的IP地址和连接信息;连接装置603,被配置为连接订阅/发布服务器;订阅装置604,被配置为向订阅/发布服务器订阅依赖的其它程序的消息;以及部署装置605,被配置为响应于从订阅/发布服务器得到订阅的其它程序的消息,部署该程序。
在一种实施方式中,图6所示的系统还包括(图6未示出):发布装置,被配置为响应于该程序部署完毕,并且订阅/发布服务器要求该节点发布该程序的消息,向订阅/发布服务器发布该程序的消息。
在另一种实施方式中,订阅装置还包括:报告装置,被配置为向订阅/发布服务器报告该节点上要安装的全部程序。
在一种实施方式中,订阅装置被进一步配置为:响应于所述集群中要部署的其它程序包括该节点内部要部署的程序和集群中其它节点要部署的程序,只向订阅/发布服务器订阅依赖的集群中其它节点要部署的程序的消息。
在一种实施方式中,图6所示的系统还包括(图6未示出):节点内部通信装置,被配置为响应于所述集群中要部署的其它程序包括该节点内部要部署的程序,通过节点内部的通信获得该节点内部要部署的程序的消息。在另一种实施方式中,节点内部通信装置被进一步配置为:响应于所述依赖关系中指出该节点上要部署的其它程序依赖于该程序,通过节点内部的通信发布该程序的消息。
在同一个发明构思下,本发明的实施例还公开了一种在集群节点中协调程序部署的系统,图7示出了一种在集群节点中协调程序部署的系统700的结构框图,根据图7,该系统包括:包括:连接装置701,被配置为响应于与多个节点建立连接,接收各节点上要安装的全部程序以及订阅信息;订阅节点寻找装置702,被配置为响应于第一节点的订阅信息中指出其要部署的第一程序依赖于第二程序,根据接收的各节点上要安装的全部程序获得第二程序所在的第二节点;订阅消息请求装置703,被配置为向第二节点发送发布第二程序的消息的请求;以及订阅消息转达装置704,被配置为响应于从结点2接收到第二程序的消息,根据订阅信息,将第二程序的消息发送给第一节点。
在一种实施方式中,订阅消息转达装置包括:故障处理装置,被配置为响应于向第一节点发送发布的第二程序的消息时,第一节点出现连接故障,保存第二程序的消息直至将该消息发送给第一节点。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (14)

1.一种在集群节点中部署程序的方法,包括:
获得集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系;
获得订阅/发布服务器的IP地址和连接信息;
连接订阅/发布服务器;
向订阅/发布服务器订阅该程序依赖的其它程序的消息;
响应于从订阅/发布服务器得到订阅的其它程序的消息,部署该程序,
所述方法进一步包括:
响应于与多个节点建立连接,接收各节点上要安装的全部程序以及订阅信息;
响应于第一节点的订阅信息中指出其要部署的第一程序依赖于第二程序,根据接收的各节点上要安装的全部程序获得第二程序所在的第二节点;
向第二节点发送发布第二程序的消息的请求;
响应于从第二节点接收到第二程序的消息,根据订阅信息,将第二程序的消息发送给第一节点。
2.根据权利要求1所述的方法,该方法还包括:
响应于该程序部署完毕,并且订阅/发布服务器要求该节点发布该程序的消息,向订阅/发布服务器发布该程序的消息。
3.根据权利要求1所述的方法,其中所述连接订阅/发布服务器包括:
向订阅/发布服务器报告该节点上要安装的全部程序。
4.根据权利要求1所述的方法,其中向订阅/发布服务器订阅依赖的其它程序的消息包括:
响应于所述集群中要部署的其它程序包括该节点内部要部署的程序和集群中其它节点要部署的程序,只向订阅/发布服务器订阅依赖的集群中其它节点要部署的程序的消息。
5.根据权利要求4所述的方法,进一步包括:
响应于所述集群中要部署的其它程序包括该节点内部要部署的程序,通过节点内部的通信获得该节点内部要部署的程序的消息。
6.根据权利要求5所述的方法,进一步包括:
响应于所述依赖关系中指出该节点上要部署的其它程序依赖于该程序,通过节点内部的通信发布该程序的消息。
7.根据权利要求1所述的方法,其中根据订阅信息,将第二程序的消息发送给第一节点包括:
响应于向第一节点发送发布的第二程序的消息时,第一节点出现连接故障,保存第二程序的消息直至将该消息发送给第一节点。
8.一种在集群节点中部署程序的系统,包括:
依赖关系获得装置,被配置为获得集群中该节点上要部署的程序与集群中要部署的其它程序之间的依赖关系;
IP地址和连接信息获得装置,被配置为获得订阅/发布服务器的IP地址和连接信息;
连接装置,被配置为连接订阅/发布服务器;
订阅装置,被配置向订阅/发布服务器订阅依赖的其它程序的消息;
部署装置,被配置为响应于从订阅/发布服务器得到订阅的其它程序的消息,部署该程序,
所述系统进一步包括:
连接装置,被配置为响应于与多个节点建立连接,接收各节点上要安装的全部程序以及订阅信息;
订阅节点寻找装置,被配置为响应于第一节点的订阅信息中指出其要部署的第一程序依赖于第二程序,根据接收的各节点上要安装的全部程序获得第二程序所在的第二节点;
订阅消息请求装置,被配置为向第二节点发送发布第二程序的消息的请求;
订阅消息转达装置,被配置为响应于从第二节点接收到第二程序的消息,根据订阅信息,将第二程序的消息发送给第一节点。
9.根据权利要求8所述的系统,该系统还包括:
发布装置,被配置为响应于该程序部署完毕,并且订阅/发布服务器要求该节点发布该程序的消息,向订阅/发布服务器发布该程序的消息。
10.根据权利要求8所述的系统,其中所述订阅装置还包括:
报告装置,被配置为向订阅/发布服务器报告该节点上要安装的全部程序。
11.根据权利要求8所述的系统,其中所述订阅装置被进一步配置为:
响应于所述集群中要部署的其它程序包括该节点内部要部署的程序和集群中其它节点要部署的程序,只向订阅/发布服务器订阅依赖的集群中其它节点要部署的程序的消息。
12.根据权利要求11所述的系统,进一步包括:
节点内部通信装置,被配置为响应于所述集群中要部署的其它程序包括该节点内部要部署的程序,通过节点内部的通信获得该节点内部要部署的程序的消息。
13.根据权利要求12所述的系统,其中所述节点内部通信装置被进一步配置为:
响应于所述依赖关系中指出该节点上要部署的其它程序依赖于该程序,通过节点内部的通信发布该程序的消息。
14.根据权利要求8所述的系统,其中所述订阅消息转达装置包括:
故障处理装置,被配置为响应于向第一节点发送发布的第二程序的消息时,第一节点出现连接故障,保存第二程序的消息直至将该消息发送给第一节点。
CN201410001336.XA 2014-01-02 2014-01-02 一种在集群节点中部署程序的方法和系统 Expired - Fee Related CN104765621B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410001336.XA CN104765621B (zh) 2014-01-02 2014-01-02 一种在集群节点中部署程序的方法和系统
US14/560,347 US9633127B2 (en) 2014-01-02 2014-12-04 Deploying programs in a cluster node

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410001336.XA CN104765621B (zh) 2014-01-02 2014-01-02 一种在集群节点中部署程序的方法和系统

Publications (2)

Publication Number Publication Date
CN104765621A CN104765621A (zh) 2015-07-08
CN104765621B true CN104765621B (zh) 2018-05-01

Family

ID=53483278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410001336.XA Expired - Fee Related CN104765621B (zh) 2014-01-02 2014-01-02 一种在集群节点中部署程序的方法和系统

Country Status (2)

Country Link
US (1) US9633127B2 (zh)
CN (1) CN104765621B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106548331B (zh) * 2015-09-21 2020-08-07 阿里巴巴集团控股有限公司 一种确定发布顺序的方法及装置
US10498835B2 (en) * 2015-11-10 2019-12-03 Avanan Inc. Cloud services discovery and monitoring
CN109471616A (zh) * 2018-10-26 2019-03-15 数贸科技(北京)有限公司 基于应用Jar包文件的应用编排方法及装置
CN110275731B (zh) * 2019-06-26 2022-12-16 中汇信息技术(上海)有限公司 信息处理方法、装置、存储介质和电子设备
CN112214543A (zh) * 2019-07-11 2021-01-12 深圳市优必选科技股份有限公司 一种数据同步方法、装置及终端设备
CN112241269B (zh) * 2019-07-16 2024-05-10 深圳兆日科技股份有限公司 Zookeeper集群控制系统、设备及存储介质
CN110795109A (zh) * 2019-10-25 2020-02-14 北京达佳互联信息技术有限公司 一种功能扩展方法、装置及电子设备
CN113127006B (zh) * 2019-12-30 2024-03-29 北京懿医云科技有限公司 服务部署方法、装置、设备及存储介质
CN115134231B (zh) * 2021-03-17 2024-03-08 北京搜狗科技发展有限公司 一种通信方法、装置和用于通信的装置
CN113238763A (zh) * 2021-05-17 2021-08-10 京东数字科技控股股份有限公司 应用部署的方法、设备、存储介质及程序产品
CN115174551A (zh) * 2022-05-31 2022-10-11 青岛海尔科技有限公司 程序部署方法及装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360308A (zh) * 2011-09-29 2012-02-22 用友软件股份有限公司 组件的分布式部署系统和方法
CN102404381A (zh) * 2011-09-02 2012-04-04 西安交通大学 一种云计算环境下基于工作流的软件部署系统及部署方法
US8402083B2 (en) * 2006-06-13 2013-03-19 Advanced Cluster Systems, Inc. Automatic cluster node discovery and configuration

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2272311A (en) 1992-11-10 1994-05-11 Ibm Call management in a collaborative working network.
US6606744B1 (en) 1999-11-22 2003-08-12 Accenture, Llp Providing collaborative installation management in a network-based supply chain environment
US8135843B2 (en) * 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
US6847970B2 (en) * 2002-09-11 2005-01-25 International Business Machines Corporation Methods and apparatus for managing dependencies in distributed systems
US7240325B2 (en) * 2002-09-11 2007-07-03 International Business Machines Corporation Methods and apparatus for topology discovery and representation of distributed applications and services
US7478385B2 (en) 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
US20050050021A1 (en) 2003-08-25 2005-03-03 Sybase, Inc. Information Messaging and Collaboration System
US20050172282A1 (en) * 2004-01-30 2005-08-04 Michael Shenfield System and method for publishing and accessing application APIs on a generic terminal
US8156489B2 (en) 2004-05-21 2012-04-10 Computer Associates Think, Inc. Distributed installation configuration system and method
US20050289539A1 (en) 2004-06-29 2005-12-29 Sudhir Krishna S Central installation, deployment, and configuration of remote systems
DE102004062434A1 (de) 2004-12-20 2006-06-22 Abb Research Ltd. System und Verfahren zum automatischen Aktualisieren von Funktionalitäten in einem verteilten Netzwerk
US7950010B2 (en) 2005-01-21 2011-05-24 Sap Ag Software deployment system
US8140624B2 (en) 2005-12-01 2012-03-20 Computer Associates Think, Inc. Automated deployment and configuration of applications in an autonomically controlled distributed computing system
US8122144B2 (en) * 2006-06-27 2012-02-21 International Business Machines Corporation Reliable messaging using redundant message streams in a high speed, low latency data communications environment
US20080141275A1 (en) * 2006-12-12 2008-06-12 Borgendale Kenneth W Filtering Application Messages In A High Speed, Low Latency Data Communications Environment
US20090006559A1 (en) * 2007-06-27 2009-01-01 Bhogal Kulvir S Application Message Subscription Tracking In A High Speed, Low Latency Data Communications Environment
US8799893B2 (en) * 2008-10-15 2014-08-05 International Business Machines Corporation Method, system and computer program product for solution replication
US8776044B1 (en) * 2011-10-26 2014-07-08 Symantec Corporation Systems and methods for providing computer cluster policies for implementation in computer cluster environments
US9172608B2 (en) 2012-02-07 2015-10-27 Cloudera, Inc. Centralized configuration and monitoring of a distributed computing cluster

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402083B2 (en) * 2006-06-13 2013-03-19 Advanced Cluster Systems, Inc. Automatic cluster node discovery and configuration
CN102404381A (zh) * 2011-09-02 2012-04-04 西安交通大学 一种云计算环境下基于工作流的软件部署系统及部署方法
CN102360308A (zh) * 2011-09-29 2012-02-22 用友软件股份有限公司 组件的分布式部署系统和方法

Also Published As

Publication number Publication date
US9633127B2 (en) 2017-04-25
CN104765621A (zh) 2015-07-08
US20150188995A1 (en) 2015-07-02

Similar Documents

Publication Publication Date Title
CN104765621B (zh) 一种在集群节点中部署程序的方法和系统
US10769187B2 (en) Crowdsourced training of textual natural language understanding systems
US11409425B2 (en) Transactional conversation-based computing system
US20180101371A1 (en) Deployment manager
US9043445B2 (en) Linking instances within a cloud computing environment
US10044561B2 (en) Application provisioning system for requesting configuration updates for application objects across data centers
US20170024396A1 (en) Determining application deployment recommendations
US10019293B2 (en) Enhanced command selection in a networked computing environment
US10095790B2 (en) Control center system for searching and managing objects across data centers
US9225662B2 (en) Command management in a networked computing environment
US20220391589A1 (en) Systems and methods for training and evaluating machine learning models using generalized vocabulary tokens for document processing
US20210117299A1 (en) Data agnostic monitoring service
US20200057684A1 (en) Transforming plug-in application recipe variables
US20200302350A1 (en) Natural language processing based business domain modeling
CN109445841A (zh) 接口文档管理方法、装置、服务器及存储介质
US10776411B2 (en) Systematic browsing of automated conversation exchange program knowledge bases
WO2023151397A1 (zh) 应用程序部署方法、装置、设备及介质
US10579575B2 (en) Systems and methods of management console user interface pluggability
US11178216B2 (en) Generating client applications from service model descriptions
CN109828781A (zh) 用于问题排查的源码版本定位方法、装置、介质和设备
CN109634827A (zh) 用于生成信息的方法和装置
US11561667B2 (en) Semi-virtualized portable command center
US11403577B2 (en) Assisting and automating workflows using structured log events
CN117648386A (zh) 检测方法、装置、设备及存储介质
CN113282806A (zh) 设备信息处理方法及装置、设备、介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180501

CF01 Termination of patent right due to non-payment of annual fee