一种服务部署方法、装置、设备及可读存储介质与流程

文档序号:32982535发布日期:2023-01-17 22:15阅读:19来源:国知局
一种服务部署方法、装置、设备及可读存储介质与流程

1.本技术涉及计算机应用技术领域,特别是涉及一种服务部署方法、装置、设备及可读存储介质。


背景技术:

2.linux on power是一种运行在power cpu架构服务器上的linux操作系统。面对大数据、认知、云计算以及互联网新兴的工作负载,linux on power架构有着独特的性能、技术优势,因此,power服务器被广泛应用。
3.目前,在.net平台上可以使用多种语言和编辑器为很多的开源爱好者提供了环境。.net程序不用被局限在windows平台上,它通过内置的c#语言编译器和各种类库,使.net程序在windows、linux、solaris等操作系统上运行。但是,.net程序并不能在power服务器中运行,因而当基于.net平台开发的功能需要迁移至power服务器中,需要对该功能基于linux on power架构进行重新开发,比较耗时,也浪费资源。
4.综上所述,如何有效地解决在power服务器中运行.net程序等问题,是目前本领域技术人员急需解决的技术问题。


技术实现要素:

5.本技术的目的是提供一种服务部署方法、装置、设备及可读存储介质,将mono软件其首创性的部署在power服务器中,并基于mono软件,运行.net程序的可执行目标文件,从而实现在power服务器中执行.net程序的可执行目标文件。即,实现了将.net应用成功移植到linux on power操作系统,利于开发者运用。
6.为解决上述技术问题,本技术提供如下技术方案:
7.一种服务部署方法,包括:
8.power服务器获取.net程序的可执行目标文件;
9.将所述可执行目标文件拷贝到目标目录下;
10.利用部署好的mono软件,执行所述目标目录下的所述可执行目标文件。
11.优选地,所述获取.net程序的可执行目标文件,包括:
12.获取所述.net程序;
13.利用所述mono软件对所述.net程序进行编译,得到所述可执行目标文件。
14.优选地,利用所述mono软件对所述.net程序进行编译,得到所述可执行目标文件,包括:
15.利用所述mono软件,将所述.net程序编译为通用语言,并利用所述mono软件运行时中的编译器将所述通用语言的字节码转译为原生码;所述原生码为所述可执行目标文件。
16.优选地,获取所述.net程序,包括:
17.在迁移windows平台中的目标服务时,获取所述目标服务对应的所述.net程序。
18.优选地,执行所述目标目录下的所述可执行目标文件,包括:
19.接收所述目标服务对应的访问请求;
20.执行所述可执行目标文件,对所述访问请求进行处理。
21.优选地,所述获取.net程序的可执行目标文件,包括:
22.从windows平台中,获取编译所述.net程序后所得的所述可执行目标文件。
23.优选地,在所述利用mono软件之前,包括:
24.获取所述mono软件的mono安装包源码;
25.编译所述mono安装包源码;
26.利用编译后的mono安装包,部署所述mono软件。
27.一种服务部署装置,应用于power服务器,包括:
28.文件获取模块,用于获取.net程序的可执行目标文件;
29.文件部署模块,用于将所述可执行目标文件拷贝到目标目录下;
30.程序执行模块,用于利用部署好的mono软件,执行所述目标目录下的所述可执行目标文件。
31.一种电子设备,包括:
32.存储器,用于存储计算机程序;
33.处理器,用于执行所述计算机程序时实现上述服务部署方法的步骤。
34.一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述服务部署方法的步骤。
35.应用本技术实施例所提供的方法,power服务器获取.net程序的可执行目标文件;将可执行目标文件拷贝到目标目录下;利用部署好的mono软件,执行目标目录下的可执行目标文件。
36.在本技术中,首先获取到.net程序的可执行目标文件,然后,将该可执行目标文件拷贝到目标目录下。然后再利用部署好的mono软件,来执行目标目录下的可执行目标文件。mono是一种开源的跨平台.net应用运行环境,将其首创性的应用于power服务器中,并基于mono软件,运行.net程序的可执行目标文件,从而实现在power服务器中执行.net程序的可执行目标文件。即,实现了将.net应用成功移植到linux on power操作系统,利于开发者运用。
37.相应地,本技术实施例还提供了与上述服务部署方法相对应的一种服务部署装置、电子设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
38.为了更清楚地说明本技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本技术实施例中一种服务部署方法的实施流程图;
40.图2为本技术实施例中一种服务部署装置的结构示意图;
41.图3为本技术实施例中一种电子设备的结构示意图;
42.图4为本技术实施例中一种电子设备的具体结构示意图。
具体实施方式
43.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
44.本技术提供了一种服务部署方法,该方法可应用于linux on power架构的设备中,如power服务器中。即,该方法可以在power服务器上实现对.net程序进行开发、移植。linux on power是一种运行在power cpu架构服务器上的linux操作系统,面对大数据、认知、云计算以及互联网新兴的工作负载,linux on power架构有着独特的性能、技术优势。在众多互联网和企业客户在大量使用power服务器linux平台运行着核心应用。
45.下面以将本技术所提供的服务部署方法,应用于power服务器为例,对该服务部署方法进行详细说明。对于将该服务部署方法应用于linux on power架构的其他设备的具体实现过程,可参照于此,在此不再一一列举。
46.请参考图1,图1为本技术实施例中一种服务部署方法的流程图,该方法包括以下步骤:
47.s101、获取.net程序的可执行目标文件。
48.其中,.net程序即在.net平台上开发的程序,或者.net支持的平台所开发出的.net程序。在本技术实施例中,对于.net程序所实现的功能/服务本身并不做限定。当然,在实际应用中,该.net程序的功能可以具体为当前power服务器不支持的功能或服务,或是需要进一步改进的服务,尤其是指在支持.net程序的架构中已实现的服务/功能,需要将其搬移到power服务器的功能/服务。
49.在.net平台上可以使用多种语言和编辑器为很多的开源爱好者提供了环境。但是,随着it技术的不断发展,很多应用软件开发商基于敏捷开发运维框架和流程开发新的云原生应用(cloud native apps)和windows服务,软件都需要进行跨平台的运用。当.net被提交到ecma/iso(ecma,european computer manufacturers association,欧洲计算机制造商协会;iso,international organization for standardization,国际标准化组织)成为公开的标准时,就表示.net已经走向开放,因此net程序不用被局限在windows平台上,它通过内置的c#语言编译器和各种类库,使.net程序在windows、linux、solaris等操作系统上运行,至于硬件平台,mono也已经支持32-bit和64-bit的x86、powerpc、sparc,但大部分也是基于x86 linux平台进行开发运行的。
50.具体的,获取.net程序的可执行目标文件,可以具体采用接收或从可读存储介质中读取等方式获得,在本实施例中对于具体的获取方式不做限定,对于.net程序本身也不做限定。其中,.net程序的可执行目标文件即指对.net程序进行编译后,所得到的能够被执行的文件。
51.在本技术中的一种具体实施方式中,获取.net程序的可执行目标文件,包括:从windows平台中,获取编译.net程序后所得的可执行目标文件。.net程序可在windows平台中完成编译,从而得到可执行目标文件,如.sh文件(一种具体的可执行的文件格式)。
52.举例说明:在本实施例中,为了实现支持.net程序,可以直接获取在windows on x86上已编译好的.net程序(即,可执行目标文件),可省去在内存中进行编译的时间,可节省power服务器的内存资源。具体的,可以与windows平台(当然,在实际应用中也可以为其他支持.net程序的平台)建立通信连接,从而从windows平台中获取到可执行目标文件。当然,也可采取线下拷贝等方式,从windows平台中拷贝到可执行目标文件到移动存储设备中,然后power服务器再从移动存储设备读取到可执行目标文件。
53.在本技术中的一种具体实施方式中,获取.net程序的可执行目标文件,包括:
54.步骤一、获取.net程序;
55.步骤二、利用mono软件对.net程序进行编译,得到可执行目标文件。
56.为便于描述,下面将上述两个步骤结合起来进行说明。
57.首先,获取.net程序。具体的,可通过接收其他设备发送的数据信息等方式来收到该.net程序,也可以通过从可读存储介质中读取.net程序的方式获得。
58.可以在迁移windows平台或其他支持.net程序的平台中的目标服务/功能至power服务器时,获取目标服务对应的.net程序。例如,当基于windows平台开发出了一个全新功能,且该power服务器也缺乏该功能时,可以获取该功能对应的.net程序,以便进一步基于该功能对应的.net程序,在power服务器上移植该功能;或,windows平台中的某个已有功能,但在power服务器未曾实现过或实现效果不佳(如耗能较多,或响应过慢等),此时获取windows平台中已有功能对应的.net程序,以便在power服务实现该功能或优化该功能。
59.得到.net程序之后,再利用mono软件对.net程序进行编译,从而得到可执行目标文件。mono软件可以对.net程序进行编译,具体可以参照mono软件的编译实现方案。当然,也可参照下文所提到的具体编译方式。
60.在本技术中的一种具体实施方式中,上述步骤二利用mono软件对.net程序进行编译,得到可执行目标文件,包括:利用mono软件,将.net程序编译为通用语言,并利用mono软件运行时中的编译器将通用语言的字节码转译为原生码;原生码为可执行目标文件。具体的,首先,在linux on power系统上部署好mono环境,整个套件环境包括mono runtime(运行时)、mcs(mono compiler as a service,mono的c#命令行编译器)编译器等工具。
61.在mono软件中.net程序的源码会被mcs编译器编译为通用中间语言(cli),再通过mono运行时中的编译器将cli的byte code(字节码,即由0或1组成的比特码)转译为原生码即可执行目标文件。特别地,在整个转译开始的同时,mono软件也会提供即时编译的转译方式,达到cli到本地指令(也就是二进制的机器语言),即时编译的目的,这样就不用根据不同的平台部署不同内容。从而就可以将.net源程序用mcs编译器编译成可执行目标文件,并且在linux on power系统上基于mono去执行程序。
62.其中,公共语言基础(common language infrastructure,cli)为一套ecma定义的标准,它定义了一个和语言无关的跨体系结构的运行环境,这使得开发者可以用规范定义内各种高级语言来开发软件。
63.s102、将可执行目标文件拷贝到目标目录下。
64.得到可执行目标文件之后,便可将其拷贝到目标目录下。该目标目录可以为mono软件能够访问的目录,在此不再一一列举目标目录。将可执行目标文件拷贝到目标目录下,其目的是为了mono软件能够访问到该可执行目标文件。
65.也就是说,可以在获取到可执行目标文件之后,直接部署(通过拷贝到可执行的目标目录下的方式实现部署)到linux on power平台中,mono软件可以访问到的目标目录下。
66.s103、利用部署好的mono软件,执行目标目录下的可执行目标文件。
67.需要注意的是,.net程序无法直接运行在power架构,.net程序无法在运行。具体的,microsoft支持android(安卓系统)、apple(苹果系统)、linux(一个开放源代码的免费操作系统)和windows(微软操作系统)操作系统上的.net,它可以在arm64(arm,advanced risc machine,一种微处理器)、x64(64位微处理器架构及其相应指令集的一种)和x86(指一系列基于intel 8086且向后兼容的中央处理器指令集架构)体系结构上使用;而power服务器架构是指向目标架构为powerpc和powerarchitecture处理器,并对此优化的应用程序的标识符,编译源代码时经常使用;因此服务器底层架构的不同,导致.net程序无法直接被power服务器运行。
68.另一方面,mono软件也未在power部署过。具体的,power服务器目前可支持的系统有aix,system i,k-ux,red hat enterprise linux(rhel),suse linux enterprise server(sles)等。由mono官网可知,mono软件可以在macos、linux、windows、docker上部署,linux系统支持ubuntu、debian、centos/rhel等不同版本。在power机器上已经适配过centos/rhel。但是,从官网得知,mono支持的centos/rhel支持的服务器架构是x8664,而不是power服务器的powerpc架构。因此,mono软件也未曾被安装/部署在power服务器。
69.综上,在本技术实施例中,选择在power服务器部署mono软件,并借助mono软件运行可执行目标文件,从而使得.net程序可跨平台应用于power服务器中。可以不单独针对power服务器进行开发的情况下,直接实现.net程序对于的功能/服务,加快服务落地。
70.在本技术实施例中,可以预先在power服务器中部署好mono软件。如此,在power服务器中,可执行目标文件被部署到mono软件可访问的目标目录之后,便可通过已部署的mono软件直接该目标目录下的可执行目标文件,从而在power服务器实现.net程序对应的功能/服务。
71.也就是说,在利用mono软件之前,需要在power服务器部署mono软件,具体实现步骤包括:
72.步骤一、获取mono软件的mono安装包源码;
73.步骤二、编译mono安装包源码;
74.步骤三、利用编译后的mono安装包,部署mono软件。
75.为便于描述,下面将上述三个步骤结合起来进行说明。
76.mono支持的centos/rhel支持的服务器架构是x8664,而不是power服务器的powerpc架构,因为底层架构的不同,所以需要重新编译mono安装包的源码,再将其部署到power服务器中。
77.具体的,可以通过从mono官网下载等方式,得到mono软件的mono安装包源码。当然,在实际应用中,也可从具有mono软件的mono安装包源码的设备或存储介质中直接读取获得该mono软件的mono安装包源码。
78.得到mono软件的mono安装包源码之后,可以对mono软件的mono安装包源码进行编译。需要注意的是,这里的编译是针对linux on power所进行的编译。即,编译mono安装包源码的目的是为了使得mono软件能够被部署到诸如power服务器的linux on power机器
中。对于具体如何对mono安装包源码进行编译,可以具体参照linux on power架构的具体参数等信息进行编译处理。
79.在编译好了mono安装包源码之后,便可将基于mono安装包源码,将mono软件安装/部署于如power服务器的linux on power机器中。
80.在power服务器中部署好了mono软件之后,当可执行目标文件部署到目标目录下后,即可利用部署好的mono软件,执行目标目录下的可执行目标文件,从而在power服务器中实现.net程序的功能。
81.其中,执行目标目录下的可执行目标文件,包括:
82.步骤1、接收目标服务对应的访问请求;
83.步骤2、执行可执行目标文件,对访问请求进行处理。
84.为便于描述,下面将上述2个步骤结合起来进行说明。
85.也就是说,当目标服务对应的可执行目标文件被执行时,power服务器便可接收目标服务对应的访问请求,然后被执行的可执行目标文件,便可对访问请求进行处理,从而在power服务器中实现目标服务。
86.当然,在实际应用中,某些服务可能不需要接受访问请求等来实现相应功能,因而这些服务的具体实现过程中,在power服务器内部各个模块交互或power服务器与相应客户端的交互可以具体参照该服务在原本支持.net程序的具体实现过程,在此不再一一赘述。
87.从上文可知,在本技术实施例中.net程序可以为windows cs应用(即一种具体的.net程序),先用mono软件的编译工具mcs编译,然后在mono环境下运行,便可在power服务器中实现windows cs应用。
88.举例说明:一个hello.cs(一个具体的.net程序)跑在power服务器的过程:获取到hello.cs程序,其源码如下:
89.90.从上述代码描述可知,power服务器获取到hello.cs之后,可通过部署于power服务器中的mono软件对hello.cs进行编译,从而得到可执行目标程序hello.exe,然后通过mono软件执行该可执行目标程序hello.exe,最终可在power服务器输出hello world。如此,power服务器便可支持hello.cs。
91.具体的,在linux on power系统上部署好mono环境,整个套件环境可包括mono runtime(运行时)、mcs编译器等工具。.net程序的源码会被mcs编译器编译为通用中间语言(cil),再通过mono运行时中的编译器将cil的byte code转译为原生码并且同时提供即时编译的转译方式,达到cil到本地指令即时编译的目的,这样就不用根据不同的平台部署不同内容。最终就可以将.net源程序用mcs编译器编译成可执行目标文件,并且在linux on power系统上基于mono去执行程序。
92.当然,power服务器也可以直接获取在windows on x86等架构中上已编译好的.net程序的可执行文件直接部署到linux on power平台中,然后再基于mono软件执行即可。
93.可见,本技术实施例所提供的服务部署方法,实现了开源的跨平台软件mono在linux on power上系统成功部署并运用;实现了将.net应用成功移植到linux on power操作系统利于开发者运用。
94.也就是说,本技术提供在linux on power系统中,将.net程序通过mcs编译器将原生码编译成可执行目标程序的方法;提供把windows on x86上编译好的.net程序部署到linux on power系统的方法;在linux on power系统上安装部署mono环境,包括mono runtime、mcs编译器、各类库。
95.应用本技术实施例所提供的方法,power服务器获取.net程序的可执行目标文件;将可执行目标文件拷贝到目标目录下;利用部署好的mono软件,执行目标目录下的可执行目标文件。
96.在本技术中,首先获取到.net程序的可执行目标文件,然后,将该可执行目标文件拷贝到目标目录下。然后再利用部署好的mono软件,来执行目标目录下的可执行目标文件。mono是一种开源的跨平台.net应用运行环境,将其首创性的应用于power服务器中,并基于mono软件,运行.net程序的可执行目标文件,从而实现在power服务器中执行.net程序的可执行目标文件。即,实现了将.net应用成功移植到linux on power操作系统,利于开发者运用。
97.相应于上面的方法实施例,本技术实施例还提供了一种服务部署装置,下文描述的服务部署装置与上文描述的服务部署方法可相互对应参照。
98.参见图2,图2为本技术实施例中一种服务部署装置的结构示意图,该装置应用于power服务器,包括以下模块:
99.文件获取模块101,用于获取.net程序的可执行目标文件;
100.文件部署模块102,用于将可执行目标文件拷贝到目标目录下;
101.程序执行模块103,用于利用部署好的mono软件,执行目标目录下的可执行目标文件。
102.应用本技术实施例所提供的装置,power服务器获取.net程序的可执行目标文件;将可执行目标文件拷贝到目标目录下;利用部署好的mono软件,执行目标目录下的可执行
目标文件。
103.在本技术中,首先获取到.net程序的可执行目标文件,然后,将该可执行目标文件拷贝到目标目录下。然后再利用部署好的mono软件,来执行目标目录下的可执行目标文件。mono是一种开源的跨平台.net应用运行环境,将其首创性的应用于power服务器中,并基于mono软件,运行.net程序的可执行目标文件,从而实现在power服务器中执行.net程序的可执行目标文件。即,实现了将.net应用成功移植到linux on power操作系统,利于开发者运用。
104.在本技术的一种具体实施方式中,文件获取模块101,具体用于获取.net程序;
105.利用mono软件对.net程序进行编译,得到可执行目标文件。
106.在本技术的一种具体实施方式中,文件获取模块101,具体用于利用mono软件,将.net程序编译为通用语言,并利用mono软件运行时中的编译器将通用语言的字节码转译为原生码;原生码为可执行目标文件。
107.在本技术的一种具体实施方式中,文件获取模块101,具体用于在迁移windows平台中的目标服务时,获取目标服务对应的.net程序。
108.在本技术的一种具体实施方式中,程序执行模块103,具体用于接收目标服务对应的访问请求;
109.执行可执行目标文件,对访问请求进行处理。
110.在本技术的一种具体实施方式中,文件获取模块101,具体用于从windows平台中,获取编译.net程序后所得的可执行目标文件。
111.在本技术的一种具体实施方式中,软件部署模块,用于在利用mono软件之前,获取mono软件的mono安装包源码;
112.编译mono安装包源码;
113.利用编译后的mono安装包,部署mono软件。
114.相应于上面的方法实施例,本技术实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种服务部署方法可相互对应参照。
115.参见图3所示,图3为本技术实施例中一种电子设备的结构示意图,该电子设备包括:
116.存储器332,用于存储计算机程序;
117.处理器322,用于执行计算机程序时实现上述方法实施例的服务部署方法的步骤。
118.具体的,请参考图4,图4为本技术实施例中所提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
119.电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
120.上文所描述的服务部署方法中的步骤可以由电子设备的结构实现。
121.相应于上面的方法实施例,本技术实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种服务部署方法可相互对应参照。
122.一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的服务部署方法的步骤,具备该访问部署方法的效果,即将mono软件部署于power服务器中,并基于mono软件,运行.net程序的可执行目标文件,从而实现在power服务器中执行.net程序的可执行目标文件。即,实现了将.net应用成功移植到linux on power操作系统,利于开发者运用。
123.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
124.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
125.本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本技术的范围。
126.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
127.最后,还需要说明的是,在本文中,诸如术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
128.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1