CN108540336A - 一种弹性伸缩调度方法和装置 - Google Patents

一种弹性伸缩调度方法和装置 Download PDF

Info

Publication number
CN108540336A
CN108540336A CN201810159100.7A CN201810159100A CN108540336A CN 108540336 A CN108540336 A CN 108540336A CN 201810159100 A CN201810159100 A CN 201810159100A CN 108540336 A CN108540336 A CN 108540336A
Authority
CN
China
Prior art keywords
data center
target
determining
executing
filtering algorithms
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.)
Pending
Application number
CN201810159100.7A
Other languages
English (en)
Inventor
张鸿
黄道超
刘欣然
朱春鸽
李正民
孙发强
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.)
National Computer Network and Information Security Management Center
Original Assignee
National Computer Network and Information Security Management Center
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 National Computer Network and Information Security Management Center filed Critical National Computer Network and Information Security Management Center
Priority to CN201810159100.7A priority Critical patent/CN108540336A/zh
Publication of CN108540336A publication Critical patent/CN108540336A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)

Abstract

本发明公开了一种弹性伸缩调度方法和装置。该方法包括:监测当前数据中心的多种目标;判断所述多种目标是否满足预设的目标条件;如果不满足,则根据预设的弹性伸缩策略,先确定调度数据中心,再在所述调度数据中心执行弹性伸缩操作。本发明监测数据中心的多种目标,基于多种目标进行弹性伸缩操作,调度数据中心可以是当前数据中心,也可以是与当前数据中心跨区域的数据中心。因而,执行本发明可以实现多目标、跨区域的弹性伸缩调度。

Description

一种弹性伸缩调度方法和装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种弹性伸缩调度方法和装置。
背景技术
弹性伸缩,是指资源调度器根据当前的资源需求情况,动态地更改资源的分配。如图1所示,当监控到系统的资源使用率大于某一阈值(高于上阈值线)时,资源调度器执行扩充操作,即动态的提高虚拟机的规格或增加虚拟机的个数;当监控到系统的资源使用率小于另一阈值(低于下阈值线)时,资源调度器执行收缩操作,即动态的降低虚拟机的规格或减少虚拟机的个数。
目前,弹性伸缩仅在单个数据中心中执行,且仅针对单个目标(比如资源使用率)执行,缺乏跨区域、多目标的弹性伸缩方法,在跨区域、多目标的场景下,无法满足应用需求。进一步地,现有的弹性伸缩方法无法选择弹性伸缩的区域,而且弹性伸缩出的资源也不能够根据现有应用的运行情况动态选择合适的伸缩资源,即无法实现弹性资源异构。现有的弹性伸缩方法无法感知多个数据中心的资源使用情况、资源优势等,所以无法做到多区域的资源均衡分配、也无法充分发挥各数据中心的资源优势。
发明内容
本发明要解决的技术问题是提供一种弹性伸缩调度方法和装置,用以解决现有技术中缺乏跨区域、多目标的弹性伸缩方法的问题。
为了解决上述技术问题,本发明是通过以下技术方案来解决的:
本发明提供了一种弹性伸缩调度方法,包括:监测当前数据中心的多种目标;判断所述多种目标是否满足预设的目标条件;如果不满足,则根据预设的弹性伸缩策略,先确定调度数据中心,再在所述调度数据中心执行弹性伸缩操作。
其中,所述弹性伸缩策略包括:级联的多个区域过滤算法以及多个级联的目标过滤算法;其中,所述区域过滤算法,用于确定满足预设的区域条件的数据中心;所述目标过滤算法,用于确定满足所述目标条件的设备。
其中,根据预设的弹性伸缩策略,先确定调度数据中心,再在所述调度数据中心执行弹性伸缩操作,包括:如果当前数据中心的多种目标待扩充,则根据所述多个区域过滤算法以及所述多个目标过滤算法,跨区域确定调度数据中心,并在所述调度数据中心执行扩充操作;如果当前数据中心的多种目标无需扩充,则根据所述多个目标过滤算法,将当前数据中心确定为调度数据中心并执行收缩操作。
其中,根据所述多个区域过滤算法以及所述多个目标过滤算法,跨区域确定调度数据中心,并在所述调度数据中心执行扩充操作,包括:通过执行所述级联的多个区域过滤算法,在预设的多个数据中心中,确定符合所述区域条件的数据中心作为调度数据中心;通过执行所述级联的多个目标过滤算法,在所述调度数据中心中,确定符合所述目标条件的设备,并执行扩充操作。
其中,根据所述多个目标过滤算法,则将当前数据中心确定为调度数据中心并执行收缩操作,包括:通过执行所述级联的多个目标过滤算法,在当前数据中心中,确定符合所述目标条件的设备,并执行收缩操作。
本发明还提供了一种弹性伸缩调度装置,包括:监测模块,用于监测当前数据中心的多种目标;判断模块,用于判断所述多种目标是否满足预设的目标条件;调度模块,用于在判断模块判定为不满足时,根据预设的弹性伸缩策略,先确定调度数据中心,再在所述调度数据中心执行弹性伸缩操作。
其中,所述弹性伸缩策略包括:级联的多个区域过滤算法以及多个级联的目标过滤算法;其中,所述区域过滤算法,用于确定满足预设的区域条件的数据中心;所述目标过滤算法,用于确定满足所述目标条件的设备。
其中,所述调度模块,用于:如果当前数据中心的多种目标待扩充,则根据所述多个区域过滤算法以及所述多个目标过滤算法,跨区域确定调度数据中心,并在所述调度数据中心执行扩充操作;如果当前数据中心的多种目标无需扩充,则根据所述多个目标过滤算法,则将当前数据中心确定为调度数据中心并执行收缩操作。
其中,所述调度模块进一步用于:通过执行所述级联的多个区域过滤算法,在预设的多个数据中心中,确定符合所述区域条件的数据中心作为调度数据中心;通过执行所述级联的多个目标过滤算法,在所述调度数据中心中,确定符合所述目标条件的设备,并执行扩充操作。
其中,所述调度模块进一步用于:通过执行所述级联的多个目标过滤算法,在当前数据中心中,确定符合所述目标条件的设备,并执行收缩操作。
本发明有益效果如下:
本发明监测数据中心的多种目标,基于多种目标进行弹性伸缩操作,调度数据中心可以是当前数据中心,也可以是与当前数据中心跨区域的数据中心。因而,执行本发明可以实现多目标、跨区域的弹性伸缩调度。
附图说明
图1是根据本发明第一实施例的弹性伸缩调度方法的流程图;
图2是根据本发明第二实施例的弹性伸缩调度方法的流程图;
图3是根据本发明第二实施例的弹性伸缩调度方法的示意图;
图4是根据本发明第三实施例的弹性伸缩调度装置的结构图。
具体实施方式
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
实施例一
本实施例提供一种弹性伸缩调度方法。图1是根据本发明第一实施例的弹性伸缩调度方法的流程图。
步骤S110,监测当前数据中心的多种目标。
当前数据中心对应一个区域。
多种目标,包括但不限于:网络带宽、网络拓扑、资源性能。其中,资源性能包括但不限于:CPU(Central Processing Unit,中央处理器)信息、内存信息。CPU信息例如是CPU使用率,CPU速度。内存信息例如是内存使用率。
具体的,本实施例在当前数据中心中,可以监测一个任务或者应用所在设备的多种目标,判断针对该任务或者应用是否需要执行弹性伸缩操作。
步骤S120,判断所述多种目标是否满足预设的目标条件;如果是,则跳转回步骤S110;如果否,则执行步骤S130。
目标条件,用于衡量每种目标是否符合需求。
目标条件,包括但不限于:网络带宽条件、资源性能条件。
网络带宽条件可以是:网络带宽阈值区间。例如:当网络带宽处于该网络带宽阈值区域内时,认为网络带宽符合需求。
资源性能条件可以是:资源阈值区域。例如:CPU使用率区间,CPU使用率处于该CPU使用率区间内认为符合需求。
在本实施例中,当所有目标都符合需求时,判定多种目标满足目标条件;当所有目标中的一个或多个目标不符合需求时,判定多种目标不满足目标条件。
步骤S130,根据预设的弹性伸缩策略,先确定调度数据中心,再在所述调度数据中心执行弹性伸缩操作。
弹性伸缩策略,用于在预设的多个数据中心中确定一个用于弹性伸缩的数据中心(调度数据中心),并且在该调度数据中心进行弹性伸缩。
每个数据中心对应一个区域。
在本实施例中,监测数据中心的多种目标,基于多种目标进行弹性伸缩操作,调度数据中心可以是当前数据中心,也可以是与当前数据中心跨区域的数据中心。因而,执行本实施例可以实现多目标、跨区域的弹性伸缩调度。
实施例二
在本实施例中,弹性伸缩策略,包括:级联的多个区域过滤算法以及多个级联的目标过滤算法;其中,区域过滤算法,用于确定满足预设的区域条件的数据中心;目标过滤算法,用于确定满足目标条件的设备。
基于本实施例的弹性伸缩策略,可以实现跨区域扩充(伸),当前区域收缩(缩)。为了使本发明更清楚,下面对本发明所述的弹性伸缩调度方法进行进一步地描述。
图2是根据本发明第二实施例的弹性伸缩调度方法的流程图。图3是根据本发明第三实施例的弹性伸缩调度方法的示意图。
步骤S210,监测当前数据中心的多种目标。
步骤S220,判断所述多种目标是否满足预设的目标条件;如果是,则执行步骤S210;如果否,则执行步骤S230。
步骤S230,判断当前数据中心的多种目标是否待扩充;如果是,则执行步骤S240;如果否,则执行步骤S250。
当多种目标满足目标条件时,说明不需要扩充。
当多种目标不满足目标条件时,说明需要扩充或者收缩。其中,当多种目标都高于对应的上阈值线时,说明需要扩充,当多种目标都低于对应的下阈值线时,说明需要收缩。
需要说明的是,如果部分目标高于对应的上阈值线,部分目标低于对应的下阈值线,则可以针对高于上阈值线的目标进行扩充,针对低于下阈值线的目标进行收缩。
步骤S240,根据所述多个区域过滤算法以及所述多个目标过滤算法,跨区域确定调度数据中心,并在所述调度数据中心执行扩充操作。
每个区域过滤算法对应一条或多条区域条件。区域条件,用于衡量每个区域对应的数据中心是否能够为当前数据中心的任务或应用提供资源。
每个目标过滤算法对应一条或多条目标条件。目标条件,用于衡量设备的目标是否符合需求(如配置需求)。
具体的,通过执行所述级联的多个区域过滤算法,在预设的多个数据中心中,确定符合所述区域条件(符合所有区域条件)的数据中心作为调度数据中心;通过执行所述级联的多个目标过滤算法,在所述调度数据中心中,确定符合所述目标条件(符合所有目标条件)的设备,并执行扩充操作。
级联的多个区域过滤算法,例如是:区域间负载均衡算法,位置感知算法。
级联的多个目标过滤算法,例如是:服务器的负载均衡,资源满足性算法。
如果级联的多个区域过滤算法确定出多个符合区域条件的数据中心,则选择其中一个作为调度数据中心。如果级联的多个目标过滤算法确定出多个符合目标条件的设备,则选择其中一个用于扩充。
步骤S250,根据所述多个目标过滤算法,则将当前数据中心确定为调度数据中心并执行收缩操作。
具体的,通过执行所述级联的多个目标过滤算法,在当前数据中心中,确定符合所述目标条件(符合所有目标条件)的设备,并执行收缩操作。
本实施例使用多种过滤算法级联的方式,选择符合要求的区域以及符合要求的设备,完成弹性伸缩。通过本实施例能够实时完成跨区域的数据中心、多目标弹性伸缩,提高资源利用率和用户体验。
实施例三
本实施例提供一种弹性伸缩调度装置。图4是根据本发明第三实施例的弹性伸缩调度装置的结构图。
该弹性伸缩调度装置,包括:
监测模块410,用于监测当前数据中心的多种目标。
判断模块420,用于判断所述多种目标是否满足预设的目标条件。
调度模块430,用于在判断模块判定为不满足时,根据预设的弹性伸缩策略,先确定调度数据中心,再在所述调度数据中心执行弹性伸缩操作。
可选地,所述弹性伸缩策略包括:级联的多个区域过滤算法以及多个级联的目标过滤算法;其中,所述区域过滤算法,用于确定满足预设的区域条件的数据中心;所述目标过滤算法,用于确定满足所述目标条件的设备。
可选地,所述调度模块430,用于:
如果当前数据中心的多种目标待扩充,则根据所述多个区域过滤算法以及所述多个目标过滤算法,跨区域确定调度数据中心,并在所述调度数据中心执行扩充操作;
如果当前数据中心的多种目标无需扩充,则根据所述多个目标过滤算法,则将当前数据中心确定为调度数据中心并执行收缩操作。
可选地,所述调度模块430进一步用于:
通过执行所述级联的多个区域过滤算法,在预设的多个数据中心中,确定符合所述区域条件的数据中心作为调度数据中心;
通过执行所述级联的多个目标过滤算法,在所述调度数据中心中,确定符合所述目标条件的设备,并执行扩充操作。
可选地,所述调度模块430进一步用于:
通过执行所述级联的多个目标过滤算法,在当前数据中心中,确定符合所述目标条件的设备,并执行收缩操作。
本实施例所述的装置的功能已经在图1~图3所示的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

Claims (10)

1.一种弹性伸缩调度方法,其特征在于,包括:
监测当前数据中心的多种目标;
判断所述多种目标是否满足预设的目标条件;
如果不满足,则根据预设的弹性伸缩策略,先确定调度数据中心,再在所述调度数据中心执行弹性伸缩操作。
2.如权利要求1所述的方法,其特征在于,所述弹性伸缩策略包括:级联的多个区域过滤算法以及多个级联的目标过滤算法;其中,
所述区域过滤算法,用于确定满足预设的区域条件的数据中心;
所述目标过滤算法,用于确定满足所述目标条件的设备。
3.如权利要求2所述的方法,其特征在于,根据预设的弹性伸缩策略,先确定调度数据中心,再在所述调度数据中心执行弹性伸缩操作,包括:
如果当前数据中心的多种目标待扩充,则根据所述多个区域过滤算法以及所述多个目标过滤算法,跨区域确定调度数据中心,并在所述调度数据中心执行扩充操作;
如果当前数据中心的多种目标无需扩充,则根据所述多个目标过滤算法,将当前数据中心确定为调度数据中心并执行收缩操作。
4.如权利要求3所述的方法,其特征在于,根据所述多个区域过滤算法以及所述多个目标过滤算法,跨区域确定调度数据中心,并在所述调度数据中心执行扩充操作,包括:
通过执行所述级联的多个区域过滤算法,在预设的多个数据中心中,确定符合所述区域条件的数据中心作为调度数据中心;
通过执行所述级联的多个目标过滤算法,在所述调度数据中心中,确定符合所述目标条件的设备,并执行扩充操作。
5.如权利要求3所述的方法,其特征在于,根据所述多个目标过滤算法,则将当前数据中心确定为调度数据中心并执行收缩操作,包括:
通过执行所述级联的多个目标过滤算法,在当前数据中心中,确定符合所述目标条件的设备,并执行收缩操作。
6.一种弹性伸缩调度装置,其特征在于,包括:
监测模块,用于监测当前数据中心的多种目标;
判断模块,用于判断所述多种目标是否满足预设的目标条件;
调度模块,用于在判断模块判定为不满足时,根据预设的弹性伸缩策略,先确定调度数据中心,再在所述调度数据中心执行弹性伸缩操作。
7.如权利要求6所述的装置,其特征在于,所述弹性伸缩策略包括:级联的多个区域过滤算法以及多个级联的目标过滤算法;其中,
所述区域过滤算法,用于确定满足预设的区域条件的数据中心;
所述目标过滤算法,用于确定满足所述目标条件的设备。
8.如权利要求7所述的装置,其特征在于,所述调度模块,用于:
如果当前数据中心的多种目标待扩充,则根据所述多个区域过滤算法以及所述多个目标过滤算法,跨区域确定调度数据中心,并在所述调度数据中心执行扩充操作;
如果当前数据中心的多种目标无需扩充,则根据所述多个目标过滤算法,则将当前数据中心确定为调度数据中心并执行收缩操作。
9.如权利要求8所述的装置,其特征在于,所述调度模块进一步用于:
通过执行所述级联的多个区域过滤算法,在预设的多个数据中心中,确定符合所述区域条件的数据中心作为调度数据中心;
通过执行所述级联的多个目标过滤算法,在所述调度数据中心中,确定符合所述目标条件的设备,并执行扩充操作。
10.如权利要求8所述的装置,其特征在于,所述调度模块进一步用于:
通过执行所述级联的多个目标过滤算法,在当前数据中心中,确定符合所述目标条件的设备,并执行收缩操作。
CN201810159100.7A 2018-02-24 2018-02-24 一种弹性伸缩调度方法和装置 Pending CN108540336A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810159100.7A CN108540336A (zh) 2018-02-24 2018-02-24 一种弹性伸缩调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810159100.7A CN108540336A (zh) 2018-02-24 2018-02-24 一种弹性伸缩调度方法和装置

Publications (1)

Publication Number Publication Date
CN108540336A true CN108540336A (zh) 2018-09-14

Family

ID=63485875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810159100.7A Pending CN108540336A (zh) 2018-02-24 2018-02-24 一种弹性伸缩调度方法和装置

Country Status (1)

Country Link
CN (1) CN108540336A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021109125A1 (zh) * 2019-12-06 2021-06-10 华为技术有限公司 一种弹性伸缩组的管理方法、装置
CN114710488A (zh) * 2022-03-29 2022-07-05 浪潮云信息技术股份公司 实现弹性伸缩跨可用区伸缩的方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414657A (zh) * 2013-08-22 2013-11-27 浪潮(北京)电子信息产业有限公司 一种跨数据中心的资源调度方法、超级调度中心和系统
CN105577457A (zh) * 2016-03-09 2016-05-11 上海天玑科技股份有限公司 一种数据中心资源智能弹性调度系统及方法
CN106209482A (zh) * 2016-09-13 2016-12-07 郑州云海信息技术有限公司 一种数据中心监控方法及系统
CN106888129A (zh) * 2017-04-20 2017-06-23 国家电网公司 一种可弹性伸缩的分布式服务管理系统及其方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414657A (zh) * 2013-08-22 2013-11-27 浪潮(北京)电子信息产业有限公司 一种跨数据中心的资源调度方法、超级调度中心和系统
CN105577457A (zh) * 2016-03-09 2016-05-11 上海天玑科技股份有限公司 一种数据中心资源智能弹性调度系统及方法
CN106209482A (zh) * 2016-09-13 2016-12-07 郑州云海信息技术有限公司 一种数据中心监控方法及系统
CN106888129A (zh) * 2017-04-20 2017-06-23 国家电网公司 一种可弹性伸缩的分布式服务管理系统及其方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021109125A1 (zh) * 2019-12-06 2021-06-10 华为技术有限公司 一种弹性伸缩组的管理方法、装置
CN113228565A (zh) * 2019-12-06 2021-08-06 华为技术有限公司 一种弹性伸缩组的管理方法、装置
CN114710488A (zh) * 2022-03-29 2022-07-05 浪潮云信息技术股份公司 实现弹性伸缩跨可用区伸缩的方法、装置、设备及介质
CN114710488B (zh) * 2022-03-29 2024-05-03 浪潮云信息技术股份公司 实现弹性伸缩跨可用区伸缩的方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
JP6671468B2 (ja) クラウドモニタリングに基づく負荷分散の最適化方法および装置
CN106375420B (zh) 一种基于负载均衡的服务器集群智能监控系统及方法
CN107066332B (zh) 分布式系统及其调度方法和调度装置
Werstein et al. Load balancing in a cluster computer
CN103699445A (zh) 一种任务调度方法、装置及系统
CN105900064A (zh) 调度数据流任务的方法和装置
Ma et al. Real-time virtual machine scheduling in industry IoT network: A reinforcement learning method
CN108270805B (zh) 用于数据处理的资源分配方法及装置
CN111190745A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN103502944A (zh) 虚拟机内存调整方法和设备
CN106059940B (zh) 一种流量控制方法及装置
CN106357473B (zh) 分布式多机系统、控制方法及控制装置
US20190028407A1 (en) Quality of service compliance of workloads
CN106330558A (zh) 应用于软件定义网络的控制器负载预测系统及方法
CN105488134A (zh) 大数据处理方法及大数据处理装置
CN106681839A (zh) 弹性计算动态分配方法
CN108540336A (zh) 一种弹性伸缩调度方法和装置
CN111669787A (zh) 一种基于时延敏感网络切片的资源分配方法及装置
CN108156212B (zh) 一种基于用户感知的弹性伸缩方法及系统
CN115604278A (zh) 动态负载均衡方法和系统
CN115858155A (zh) 一种算力网络平台的应用资源动态扩缩容方法及装置
CN114051001A (zh) 流量数据处理方法及装置、存储介质及电子设备
CN108595265A (zh) 一种计算资源智能分配方法及系统
US9857865B2 (en) Balancing of servers based on sampled utilization ratio and corresponding power consumption
CN105337866B (zh) 一种流量切换方法及装置

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180914

RJ01 Rejection of invention patent application after publication