用于内容-应用分离的系统和方法与流程

文档序号:14779323发布日期:2018-06-26 10:37阅读:217来源:国知局

所公开的发明涉及虚拟机资源的最优使用,在运行时按需创建实例,并且一旦用户不再主动使用它们时,通过将用户/项目创建的应用特定内容从O/S和安装在虚拟机上的应用软件中脱离并且将该应用特定内容单独地存储在中央内容存储库中来将所述实例处理掉。



背景技术:

利用虚拟机的现有系统和方法是非常低效和昂贵的。这样做使得用户的工作(应用内容)在下次用户希望继续她的工作时是可用的。每次用户修改她的内容时都需要这样做,并且将导致虚拟机映像的快速扩增。对于具有在多个项目上工作的多个用户的系统,结果是不断增长的需要用新的操作系统补丁和软件更新进行维持和维护的机器映像的库。这是昂贵且难以维护的。用户的应用内容还与虚拟机映像绑定,并且除非手动传输,否则不易用于其他地方或其他用户。

所需要的是一种解决虚拟机实例的低效使用的问题并且避免机器映像的快速扩增的技术。



技术实现要素:

本发明示例实施例提供改进的应用内容存储、虚拟机管理以及运行时供应以解决虚拟机实例的低效使用的问题并且避免机器映像的快速扩增。

本发明的示例实施例包括访问基础通用可重用虚拟机映像,以及根据基础虚拟机映像的实例化副本对存储器进行配置。从被配置为将内容与基础虚拟机映像分开地存储的中央内容存储库中访问项目特定内容,以用于基础虚拟机映像和内容的改进的可维护性。在启动时将基础虚拟机映像的实例化副本与项目特定内容进行链接以形成项目特定功能虚拟机。在完成项目特定功能之后,单独地存储项目特定内容,并且从存储器中移除项目特定功能虚拟机。这使得虚拟机实例的使用被最小化到仅当需要它们时才使用。这使得项目特定内容在其他地方可用并且可以由其他被允许的用户使用。这也使得未使用的项目特定功能虚拟机映像的扩增最小化、释放了对附加存储空间的需要、以及实现了单独存储的基础虚拟机映像的更容易的自动维护和该集中式的多个项目特定内容的更新。

在本发明的示例实施例中,一种虚拟机存储和运行时供应系统包括用于访问基础通用可重用虚拟机映像以及通过克隆出基础通用可重用虚拟机映像的实例化副本来对存储器进行配置的装置。基础通用可重用虚拟机映像包括能够被复制或重新激活供以后使用的可重用虚拟机实例的映像。

该多个项目特定内容中的每一个项目特定内容的被配置为在运行时链接至基础通用可重用虚拟机映像的实例化副本,形成项目特定功能虚拟机。该多个项目特定内容被存储在存储器的中央内容存储库中。根据本发明的实施例,中央内容存储库被配置将该多个项目特定内容与基础通用可重用虚拟机映像分开地存储,以用于基础通用可重用虚拟机映像和该多个项目特定内容的改进的可维护性。

本发明的示例实施例进一步包括用于访问存储在中央内容存储库中的至少一个项目特定内容的装置。响应于启动命令,基础通用可重用虚拟机映像的实例化副本与该至少一个项目特定内容链接,以在存储器中形成项目特定功能虚拟机。可以发布启动命令以实现项目特定功能虚拟机来执行项目特定功能。运行生成更新的项目特定内容。

本发明的示例实施例进一步包括用于运行项目特定功能虚拟机以执行项目特定功能的装置。

本发明的示例实施例进一步包括用于在完成项目特定功能之后从存储器中移除项目特定功能虚拟机,并且在中央内容存储库中存储更新的项目特定内容的装置。以这种方式,未使用的项目特定功能虚拟机映像的扩增被最小化,以便释放存储器中的存储空间。此外,可以实现通用可重用虚拟机的自动维护,并且可以实现该集中式的多个项目特定内容的自动更新。

本发明的示例实施例进一步包括被配置为将基础通用可重用虚拟机映像的实例化副本与项目特定内容进行链接的访客代理,以形成项目特定功能虚拟机。

本发明的示例实施例进一步包括元数据,所述元数据包括用于在供应时间提供的参数化机器配置和参数化应用配置的特定参数值。元数据允许在用户访问应用之前的最后一刻指定的通用应用容器的维护。元数据帮助解决有预先安装的应用的机器映像上的维护的问题,使得不需要对于每个项目维护单独的机器映像。

本发明的这些和其他实施例提供了计算机能力的改进。虚拟机存储和运行时供应系统使得未使用的项目特定功能虚拟机映像的扩增最小化、释放了存储器中的存储空间、以及实现了通用可重用虚拟机上的自动维护和该集中式的多个项目特定内容的更新。

附图说明

图1A示出了本发明的示例实施例,示出了响应于由用户经由网络门户发布的用以访问平台的启动命令而在主机系统中供应项目特定功能虚拟机的架构。该平台的主要功能为使用对云基础设施即服务提供商的API调用以供应主机系统。

图1B示出了图1A的示例架构,示出了平台作为跨多个云数据中心运行的并发和分布式应用,用以供应主机系统并且管理在主机系统中启动的虚拟机。

图2A示出了本发明的示例实施例,示出了平台中的可重用VM存储库中的包括通用可重用虚拟机可执行软件、访客操作系统以及访客代理的基础通用可重用虚拟机映像。附图还示出了平台中的中央内容存储库和元数据存储库。根据本发明的实施例,中央内容存储库被配置为将该多个项目特定内容与基础通用可重用虚拟机映像分开地存储,以用于基础通用可重用虚拟机映像和该多个项目特定内容的改进的可维护性。

图2B示出了图2A的本发明的示例实施例,示出了平台响应于启动命令来实现项目特定功能虚拟机以执行项目特定功能“A”。在响应中,平台访问基础通用可重用虚拟机映像,并且通过克隆出基础通用可重用虚拟机映像的实例化副本来对主机系统中的存储器进行配置。该实例化副本包括通用可重用虚拟机可执行软件、访客操作系统以及访客代理的复制。平台还访问元数据(A)和内容数据(A)。访客代理被配置为将基础通用可重用虚拟机映像的实例化副本与元数据(A)和项目特定内容数据(A)进行链接以形成项目特定功能虚拟机。响应于由用户或另一个程序发布的启动命令,项目特定功能虚拟机在主机系统中运行以执行项目特定功能“A”。

图3示出了图2B的本发明的示例实施例,示出了在已经完成或终止项目特定功能“A”之后,停用由主机系统中的项目特定功能虚拟机使用的所有资源,以及回收由项目特定功能虚拟机占用的存储器部分。

图4示出了在移除图2B和图3的项目特定功能虚拟机的第一实例之后的图3的本发明的示例实施例。示出了平台响应于第二发生的启动命令来实现第二项目特定功能虚拟机以执行第二项目特定功能“B”。在响应中,平台访问基础通用可重用虚拟机映像,并且通过克隆出基础通用可重用虚拟机映像的第二实例化副本来对主机系统中的存储器进行配置。第二实例化副本包括通用可重用虚拟机可执行软件、访客操作系统以及访客代理的复制。平台还访问元数据(B)和内容数据(B)。访客代理被配置为将基础通用可重用虚拟机映像的第二实例化副本与元数据(B)和项目特定内容数据(B)进行链接以形成第二项目特定功能虚拟机。响应于由用户或另一个程序发布的第二启动命令,第二项目特定功能虚拟机在主机系统中运行以执行项目特定功能“B”。

图5A、图5B和图5C示出了根据本发明的实施例的启动项目特定虚拟机、运行启动的虚拟机以及在结束时停用虚拟机中的事件的示例顺序。

图6示出了根据本发明的实施例的供应、运行以及停用虚拟机的操作的示例流程图。

具体实施方式

本发明的示例实施例解决了通用可重用机器映像的维护的问题,它避免导致机器映像的快速扩增。如本文所使用的,通用可重用机器映像包括包含访客代理和访客OS的基础机器映像以及能够在访客OS上运行的一个或多个软件应用。本发明的示例实施例提供计算机能力的改进。虚拟机存储和运行时供应系统使得未使用的项目特定功能虚拟机映像的扩增最小化、释放了存储器中的存储空间、以及实现了通用可重用虚拟机上的自动维护和该集中式的多个项目特定内容的更新。

根据本发明的实施例,用于在运行时创建虚拟机的方法将应用内容从软件中脱离。该方法将虚拟机视为纯应用容器。项目/部署特定内容在中央内容存储库中被保持于修订控制之下。内容在启动时被自动拉取到新供应的机器上。内容是版本管理的,并且最新的版本总是用于新的部署。现有部署通过明确地仅从中央内容存储库中再次拉取内容的差别来进行更新。

本发明的实施例帮助解决通用可重用机器映像的维护的问题。在以前,机器映像的快速扩增会导致不断增长的需要用新操作系统补丁和软件更新来进行更新的机器映像的库。

根据本发明的实施例,映像维护可以被应用到一小组通用机器映像。这导致系统进行自身的自动维护。项目特定内容也变得集中和可管理。

根据本发明的实施例,应用软件和内容的及时聚集是自动化的。

根据本发明的实施例,当创建系统蓝图时,用户指定内容存储库URL。当由用户或另一个程序发布启动命令时,在自动启动应用之前,系统自动将内容从内容存储库安装到新供应的虚拟机。当用户连接到机器时,他们找到加载的正确的内容。

图1A示出了本发明的示例实施例,示出了响应于由用户经由网络门户130发布的用以访问平台106的启动命令而在访客系统108中供应项目特定功能虚拟机的架构101。平台106的主要功能是经由云驱动器124使用对云100的云基础设施即服务(IaaS)128提供商的API调用来供应诸如108的主机系统。

架构101包括以下高级别组件:

1、门户130是允许用户web客户端132经由平台服务API 126访问平台106的瘦web应用。

2、平台106是高度可用的web服务应用,它的主要功能为经由云驱动器124使用对云100基础设施即服务128提供商的API调用来供应主机系统108。

3、通过平台106按需供应主机系统108。

中央组件为平台106,它是在云100中的机器上运行的持久分布式应用。平台的客户端是门户130(例如,简单的web应用、移动应用)和其他第三方客户端134。客户端可以在主机系统108中启动和运行各种类型的项目。可执行可重用软件的示例可以是用于动态过程模拟的程序。平台106可以启动主机系统108中的通用可重用虚拟机110’以用可执行软件运行项目特定功能。例如,可以运行项目“A”(在图2B中示出)以设计针对炼油厂的蒸汽控制系统的过程。用户可以经由远程桌面/移动会话访问虚拟机。

平台106包括中央存储库120、用于元数据140的存储装置、可重用VM存储库113以及用于访客代理软件112的存储装置。内容存储库120是用于内容存储和修订控制的服务。可重用VM存储库113存储包括通用可重用虚拟机可执行软件、访客操作系统以及访客代理的基础通用可重用虚拟机映像VM 110。

平台106是可以在图1B的云100中的所有云数据中心104(0)至104(i)上运行的并发和分布式应用,并且管理架构101中的所有状态。平台106的示例功能为:

·供应虚拟网络和虚拟机110’,并且启动可以在可重用基础机器映像中进行配置的主机系统108中的访客应用。

·监控访客应用并且管理它们的故障。

·管理用户、用户组以及资源授权。

·按照应用角色定义所定义的方法,将机器映像构建和更新为后台任务。

在平台106已经启动主机系统108中的通用可重用虚拟机110’之后,用户web客户端132可以直接通过路径135与在主机系统108中运行的虚拟机110’进行交互。

图1B示出了图1A的示例架构101,示出了平台106作为跨云100中的多个云数据中心104(0)至104(i)运行的并发和分布式应用,用以供应主机系统108并且管理在主机系统108中启动的虚拟机110’。

架构101的基础设施即服务(IaaS)128是用于访问、监控和管理在云100中的远程数据中心基础设施104(0)至104(i)的网络实用程序以执行诸如计算(虚拟化或裸机)、存储、联网和联网服务(例如,防火墙)的功能。

图1B中的云数据中心104(0)至104(i)中的每一个具有机器集群(即,主机系统108)。平台106以分布式方式在这些机器中的一个或多个上运行,并且协调主机系统108中的VM的启动。数据中心中的每个机器包括至少一个处理器和至少一个存储器102。根据本发明的实施例,存储器102包括由处理器执行的计算机程序代码指令,用以执行当前在该处理器上运行的平台106的操作。

根据本发明的实施例,当具体数据中心执行并发和分布式平台106应用时,当前在数据中心中的处理器和存储器102上运行的平台应用106执行虚拟机存储和运行时供应的方法。在云数据中心中运行的平台应用106从可重用VM存储库113中访问基础可重用虚拟机映像110,并且对存储器102进行配置以克隆出基础通用可重用虚拟机映像的实例化副本110’。基础通用可重用虚拟机映像110包括能够复制或重新激活供以后使用的可重用虚拟机实例的映像。在云数据中心中运行的平台应用106从内容存储库120访问在中央内容存储库120中存储的多个项目特定内容中的至少一个项目特定内容。响应于启动命令,在云数据中心中运行的平台应用106将基础通用可重用虚拟机映像110的实例化副本110’与该至少一个项目特定内容进行链接以在存储器102中形成项目特定功能虚拟机。可以发布启动命令以实现项目特定功能虚拟机来执行项目特定功能。在云数据中心中运行的平台应用106运行项目特定功能虚拟机以执行项目特定功能。该运行生成更新的项目特定内容。在完成项目特定功能之后,在云数据中心中运行的平台应用106从存储器102中移除项目特定功能虚拟机,并且在中央内容存储库中存储更新的项目特定内容。根据本发明的实施例,以这种方式,未使用的项目特定功能虚拟机映像的扩增被最小化以释放存储器102、计算机、存储装置、联网和/或其他资源。

图2A示出了本发明的示例实施例,示出了平台106中可重用VM存储库113中的包括通用可重用虚拟机可执行软件111、访客操作系统116以及访客代理112的基础通用可重用虚拟机映像110。附图还示出了平台106中的中央内容存储库120和元数据存储库140。平台106在主机系统108中实现了过程间通信和动态对象创建。基础通用可重用虚拟机映像110包括能够被复制或重新激活供以后使用的可重用虚拟机实例的映像。访客OS 116是能够在主机系统108中被执行的操作系统,并且它支持通用可重用虚拟机可执行软件111。

根据本发明的示例实施例,中央内容存储库120被配置为将该多个项目特定内容122A和122B与可重用VM存储库113中的基础通用可重用虚拟机映像110分开地存储,以用于基础通用可重用虚拟机映像110和该多个项目特定内容122A和122B的改进的可维护性。

元数据140可以包括用于响应于启动命令在供应时间被提供的参数化机器配置和参数化应用配置的特定参数值。元数据140允许在用户访问应用之前的最后一刻指定的通用应用容器的维护。元数据140帮助解决有预先安装的应用的机器映像上的维护的问题,使得不需要对于每个特定项目维护单独的实例。在供应时间自动执行的经配置的机器映像和动作通过相应的应用团队在平台106中被集中维护。当最终用户希望使用特定项目中的应用时,该特定项目中的应用被包括在特定项目定义或系统蓝图中。最终用户可以定义系统蓝图中的一些元数据参数,以使虚拟机配置专用于该特定项目(例如,内容将被找到的文件位置或远程URL)。当用户希望调用项目特定功能虚拟机的运行实例时,发布启动命令。平台106供应和自动化项目特定功能虚拟机。刚好在系统准备就绪和运行之前,参数值被应用于项目特定功能虚拟机。

平台106包括存储在中央内容存储库120中的多个项目特定内容122A和122B。该多个项目特定内容中的每一个,例如122A,被配置为在运行时链接至基础通用可重用虚拟机映像的副本,从而形成项目功能虚拟机110’(A)(在图2B中示出)。另一个项目特定内容,例如122B,被配置为在运行时链接至基础通用可重用虚拟机映像的副本,从而形成另一个项目功能虚拟机110’(B)(在图4中示出)。

通用可重用虚拟机可执行软件111的示例可以包括用于动态过程模拟的可执行软件程序。可以应用可执行软件111的第一示例项目特定功能可以是项目“A”(在图2B中示出),项目“A”是设计针对炼油厂的蒸汽控制系统的过程。示例项目特定内容数据122A可以包括与针对蒸汽控制系统的过程的设计相关联的数据,其中将通过项目功能虚拟机110’(A)(在图2B中示出)对内容数据122A进行操作。示例内容数据122A可以包括蒸汽源数据、阀门数据、管道数据、控制逻辑等。

可以应用可执行软件111的另一个示例项目特定功能可以是项目“B”(在图4中示出),项目“B”是与针对炼油厂的火炬系统的过程的设计相关联的数据。示例项目特定内容数据122B可以包括设计针对火炬系统的过程所需的数据,其中将通过项目功能虚拟机110’(B)(在图4中示出)对内容数据122B进行操作。示例内容数据122B可以包括可燃气体源数据、阀门数据、管道数据、控制逻辑等。

图2B示出了图2A的本发明的示例实施例,示出了平台106响应于启动命令202来实现项目特定功能虚拟机110’(A)以执行项目特定功能“A”。在响应中,平台106从可重用VM存储库113中访问基础通用可重用虚拟机映像110,并且通过克隆出基础通用可重用虚拟机映像110的实例化副本110’来对主机系统108中的存储器102进行配置,该实例化副本110’包括通用可重用虚拟机可执行软件的复制111’、访客操作系统的复制116’以及访客代理的复制112’。平台106还访问元数据(A)142A和内容数据(A)122A。访客代理112’被配置为将基础通用可重用虚拟机映像110的实例化副本110’与元数据(A)142A和项目特定内容数据(A)122A进行链接以形成项目特定功能虚拟机110’(A)。访问元数据(A)142A,该元数据(A)142A包括用于响应于启动命令在供应时间被提供的参数化虚拟机配置和参数化应用配置的特定参数值。元数据参数使虚拟机配置专用于特定项目(例如,内容将被找到的文件位置或远程URL)。

响应于由用户或另一个程序发布的启动命令202,项目特定功能虚拟机110’(A)在主机系统108中运行以执行项目特定功能“A”。在以上讨论的示例中,项目特定内容数据122A可以包括蒸汽源数据、阀门数据、管道数据、控制逻辑等,其中执行用于设计针对蒸汽控制系统的过程的项目的项目功能虚拟机110’(A)对项目特定内容数据122A进行操作。

图3示出了图2B的本发明的示例实施例,示出了停用由项目特定功能虚拟机110’(A)使用的所有资源。在已经完成或终止项目特定功能“A”之后,回收由项目特定功能虚拟机110’(A)占用的存储器部分。根据本发明的实施例,并发和分布式平台106应用当前在图1B的云数据中心104(0)至104(i)中的具体的一个数据中心中执行,并且因此停用数据中心存储器102以移除由通用可重用虚拟机110使用的所有资源。

当平台106创建图2B中的项目特定功能虚拟机110’(A)时,平台106在图3中示出的注册表105中记录关于项目特定功能虚拟机110’(A)的信息。注册表105是存储诸如虚拟机标识符和地址以及引用或指向项目特定功能虚拟机110’(A)的其他对象的标识的信息的数据库。注册表使得其他应用程序能够定位项目特定功能虚拟机110’(A)。当注册表105指示没有其他应用程序引用或指向项目特定功能虚拟机110’(A)时,停用算法107检测这一条件并且执行停用。在完成或终止项目特定功能,即项目“A”之后,执行自动存储器管理以回收由项目特定功能虚拟机110’(A)占用的存储器部分。

在完成项目特定功能,即项目“A”之后,停用动作将由项目特定功能虚拟机110’(A)使用的所有资源(存储器、CPU、网络连接等)释放回云100。停用算法107可以自动地操作,或者用户可以手动调用它。

在完成项目特定功能“A”之后,项目特定内容数据122A可以包括作为项目特定功能虚拟机110’(A)运行和执行项目特定功能(即项目“A”)的结果的更新。更新的项目特定内容数据122A被存储在中央内容存储库120中,并且可以改写原始内容数据122A。

项目特定内容122A在中央内容存储库120A中被保持于修订控制之下。可以在缓冲器103中接收和缓冲项目特定内容更新。内容是版本管理的,并且最新的版本总是用于新的部署。在一些实例中,可以检索内容的特定版本以用于部署。算法109可以确定将被更新的内容中的差别。可以通过仅改变被更新的内容中的差别来更新中央内容存储库120中的现有内容。

以这种方式,本发明的实施例使得未使用的项目特定功能虚拟机映像的扩增最小化,并释放存储器中的存储空间。

图4示出了在移除图2B和图3的项目特定功能虚拟机的第一实例110’(A)之后的图3的本发明的示例实施例。示出了平台106响应于第二发生的启动命令202来执行第二项目特定功能“B”。

在响应中,平台106从可重用VM存储库113中访问基础通用可重用虚拟机映像110,并且通过克隆出基础通用可重用虚拟机映像110的第二实例化副本110’来对主机系统108中的存储器102进行配置,第二实例化副本110’包括通用可重用虚拟机可执行软件的复制111’、访客操作系统的复制116’以及访客代理的复制112’。平台106还访问元数据(B)142B和内容数据(B)122B。访客代理112’被配置为将基础通用可重用虚拟机映像110的第二实例化副本110’与元数据(B)142B和项目特定内容数据(B)122B进行链接以形成第二项目特定功能虚拟机110’(B)。访问元数据(B)142B,该元数据(B)142B包括用于响应于启动命令在供应时间被提供的参数化虚拟机配置和参数化应用配置的特定参数值。元数据参数使虚拟机配置专用于特定项目(例如,内容将被找到的文件位置或远程URL)。

响应于由用户或另一个程序发布的启动命令202,项目特定功能虚拟机110’(B)在主机系统108中运行以执行项目特定功能“B”。在以上讨论的示例中,项目特定内容数据122B可以包括可燃气体源数据、阀门数据、管道数据、控制逻辑等,其中通过项目功能虚拟机110’(B)对项目特定内容数据122B进行操作以设计针对火炬系统的过程。

图5A、图5B和图5C示出了根据本发明的实施例的启动项目特定虚拟机、运行启动的虚拟机以及在结束时停用虚拟机中的事件的示例顺序。

图5A示出了如图2B所描述的例如由用户客户端或客户端启动项目特定虚拟机110’(A)的示例。

图5B示出了如图2B所描述的运行启动的虚拟机110’(A)的示例。

图5C示出了如图3所描述的在结束时停用虚拟机110’(A)的示例。

图6示出了本发明的示例实施例,示出了根据本发明的实施例的由图1至图4的系统执行的用于供应、运行以及停用虚拟机的编程方法的流程图600。流程图的步骤表示存储在存储器中的计算机代码指令,该计算机代码指令当由中央处理单元(CPU)执行时,执行本发明的示例实施例的功能。可以以不同于所示的其它顺序执行步骤,并且各个步骤可以被组合或分为组件步骤。流程图具有以下步骤:

在步骤602处,访问基础通用可重用虚拟机映像,并且根据基础通用可重用虚拟机映像的实例化副本对存储器进行配置,基础通用可重用虚拟机映像包括能够被复制或重新激活供以后使用的可重用虚拟机实例的映像。

在步骤606处,访问存储在中央内容存储库中的多个项目特定内容中的至少一个项目特定内容,中央内容存储库被配置将该多个项目特定内容与基础通用可重用虚拟机映像分开地存储,以用于基础通用可重用虚拟机映像和该多个项目特定内容的改进的可维护性。

在步骤608处,当发布启动命令以实现项目特定功能虚拟机来执行项目特定功能时,基础通用可重用虚拟机映像的实例化副本与该至少一个项目特定内容进行链接以在存储器中形成项目特定功能虚拟机。

在步骤610处,运行项目特定功能虚拟机以执行项目特定功能,其中该运行生成更新的项目特定内容。

在步骤612处,在完成项目特定功能之后,从存储器中移除项目特定功能虚拟机。这种清理或停用过程减少了未使用的项目特定功能虚拟机映像的扩增,从而释放了计算机、存储装置和存储器、联网和/或数据中心中的其他资源。在项目特定功能虚拟机处于使用的时间期间,至少一个项目特定内容可能已经被更新。在这种情况下,更新的项目特定内容被存储在中央内容存储库中。通过使通用可重用虚拟机映像和项目特定内容被分开地存储,通用可重用虚拟机映像和项目特定内容中的每一个也可以被单独地和更高效地管理。例如,可以在通用可重用虚拟机映像上执行自动维护以更新软件、操作系统和/或其他服务。类似地,可以执行版本控制以保持跟踪中央内容存储库中的项目特定内容的更新。

虽然已经公开了本发明的具体示例实施例,但是本领域技术人员将理解,在不脱离本发明的精神和范围的情况下,可以对针对具体示例实施例所描述的细节做出改变。

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