一种基于多语言环境的软件包发布方法及系统与流程

文档序号:12119796阅读:207来源:国知局
一种基于多语言环境的软件包发布方法及系统与流程

本发明涉及计算机领域,尤其涉及一种基于多语言环境的软件包发布方法及系统。



背景技术:

随着软件需求的增大,技术的发展,以及人们对软件的应用或者产品的特定设置的要求的提高,各种应用或产品或软件功能的完善不断推陈出新。现有技术中,对应用或产品或软件的研发需要开发人员在本地开发并编译,然后远程登入服务器,并且将编译后的软件包上传至服务器,同时根据不同的现场环境规则,在服务器上修改与现场环境相对应的配置文件,接着根据目的地址而执行分发操作,以完成发布任务。

对应用或产品或软件的发布或更新需要大量人为操作的介入,这样会造成开发或发布人员的精力浪费在重复性的操作中,增加发布的成本,并且人为操作会不可避免的产生误操作的问题,使得发布可靠降低。另外,在现有技术中,在服务器通过内置编译器对源代码完成编译操作之后,服务器会根据内置的多个现场环境规则进行多次打包,以生成与现场环境(例如测试环境、UAT环境及生产环境等)相对应的软件包。当完成编译后进行测试,如果在测试过程中发现问题需要重新编译打包,以至不必要生成UAT环境软件包及生产环境软件包,同时也会造成服务器资源的浪费。再者,现有技术的发布系统仅支持单一语言环境,其并不适用于多语言环境。

因此,亟需提供一种基于多语言环境的软件包发布方法及系统。



技术实现要素:

为了解决上述问题,本发明提供一种基于多语言环境的软件包发布方法及系统,其不仅能够在一定程度上消除人为操作所产生的错误,以增加发布的可靠性,通过系统自动执行重复性的工作来降低发布的成本,而且通过合理的部署编译包而能够有效地利用整个系统的资源,以达到节省资源的目的。

本发明的一方面,提供一种基于多语言环境的软件包发布方法,其包括以下步骤:(a)服务器通过内置编译器对源代码进行编译;(b)服务器对编译后的源代码进行打包,以生成编译包;(c)服务器发送配置信息请求至一配置模块,以获取相应的配置信息;(d)服务器将所接收到所述配置信息添加至所述编译包,以生成相应的部署包,进而执行定向目标的分发操作。

本发明的另一方面,提供一种基于多语言环境的软件包发布系统,其包括:源代码编译单元,所述源代码编译单元用于服务器通过内置编译器对源代码进行编译;源代码打包单元,所述源代码打包单元与所述源代码编译单元相连,用于服务器对编译后的源代码进行打包,以生成编译包;配置信息获取单元,所述配置信息获取单元与所述源代码打包单元相连,用于服务器发送配置信息请求至一配置模块,以获取相应的配置信息;部署包生成单元,所述部署包生成单元与所述配置信息获取单元相连,用于服务器将所接收到所述配置信息添加至所述编译包,以生成相应的部署包,进而执行定向目标的分发操作。

本发明的优点在于,本发明通过基于语言环境的软件包发布方法及系统,不仅实现在一定程度上消除人为操作所产生的错误,以增加发布的可靠性,通过系统自动执行重复性的工作来降低发布成本的目的,而且通过合理的部署编译包而能够有效地利用整个系统的资源,以达到节省资源的效果。

附图说明

图1是本发明一实施例中基于多语言环境的软件包发布方法的流程步骤示意图;

图2是本发明一实施例中基于多语言环境的软件包发布系统的架构示意图。

具体实施方式

下面结合附图对本发明提供的基于多语言环境的软件包发布方法及系统的具体实施方式做详细说明。

参见图1,本发明提供一种基于多语言环境的软件包发布方法,其包括以下步骤:(a)服务器通过内置编译器对源代码进行编译;(b)服务器对编译后的源代码进行打包,以生成编译包;(c)服务器发送配置信息请求至一配置模块,以获取相应的配置信息;(d)服务器将所接收到所述配置信息添加至所述编译包,以生成相应的部署包,进而执行定向目标的分发操作。

以下将具体描述每一步骤。

步骤S110:服务器通过内置编译器对源代码进行编译。

在此步骤中,服务器通过内置编译器,例如C、PHP、Python、JAVA、.NET等多种语言的编译器进行编译。该编译器可以为本领域技术人员所常用的编译器,在此不再一一列举。另外,此处所述服务器是指具有编译、打包及分发功能的服务器(下文相同),当然在其他实施例中,可以设置多个服务器,分别具有编译、打包及分发功能。

步骤S120:服务器对编译后的源代码进行打包,以生成编译包。

在此步骤中,生成的编译包仅包含代码,不包含任何环境相应的配置信息。例如,.NET语言编译器编译生成的编译包仅包含.dll文件,不包含环境相应的配置信息。

步骤S130:服务器发送配置信息请求至一配置模块,以获取相应的配置信息。

在此步骤中,通过配置模块(或称配置中心)以获取相应的配置信息,包括与现场环境相对应的配置文件数据,例如,根据目标服务器环境(诸如测试环境、UAT环境、生产环境等)而确定出一定向目标的服务器地址,以作为配置文件数据,并返回至服务器。当然,可以利用唯一的环境标识以区分不同的目标服务器环境。

步骤S140:服务器将所接收到所述配置信息添加至所述编译包,以生成相应的部署包,进而执行定向目标的分发操作。

在此步骤中,基于上述编译源代码所生成的编译包(其未包含环境配置信息的代码包),将配置信息添加至相应的编译包中,以生成相应的部署包。在现有技术中,编译源代码所生成的代码包是包括生成所有环境配置信息的代码包(例如测试环境、UAT环境、生产环境等)的软件包。正如背景技术所言,当完成编译后进行测试,如果在测试过程中发现问题需要重新编译打包,以至不必要生成UAT环境软件包及生产环境软件包,同时也会造成服务器资源的浪费。而在本发明中,在步骤S120中生成的编译包仅包含代码,不包含任何环境配置信息,只是在发布至目标服务器之前,从配置模块(其可以设置在一专用服务器中,不限于此)中根据所确定出的目标服务器(及其环境)而提取出相应的配置信息,并且将其添加至所述编译包中,以形成相应的部署包,从而完成定向目标的发送操作。于是,通过合理的部署编译包而能够有效地利用整个系统的资源,以达到节省资源的效果。

需注意的是,在本实施例中,上述步骤是针对.NET语言的编译包而言。如果是JAVA语言,则编译源代码后直接生成部署包,当该部署包在TOMCAT容器中运行且接收到外界的访问请求时,会自动从配置模块获取相关的配置信息,以完成后继操作。

因此,通过上述步骤的实施,本发明所述方法能够适用于多语言环境(例如在windows操作系统的IIS容器中,在linux操作系统的Tomcat容器中,或其他语言环境且不限于此)进行相关操作。

另外,在步骤S140之后,在一实施例中,可以进一步包括步骤:

(11)设置一文件镜像服务器;

(12)将部署包发送至所述文件镜像服务器;

(13)目标服务器通过专用网络从所述文件镜像服务器中获取相关的部署包。

一般情况,生成部署包的服务器的地理位置与目标服务器(一般为多个目标服务器)的地理位置是不同的,且在不同区域。因此,如果将部署包从其所属的服务器直接发送至同一区域中的不同目标服务器(相当于多次重复发送部署包至目标服务器),那么可能会产生至目标服务器的网络拥塞现象。而在本实施例中,首先将部署包指定发送至所述文件镜像服务器,其中,所述文件镜像服务器与目标服务器设置在同一区域,且彼此通过专用网络相连,然后通知与所述文件镜像服务器相连的目标服务器,接着所述目标服务器通过利用具有高速传输特性的专用网络(此处为内网,不占用外网资源)以从所述文件镜像服务器中获取相关的部署包。于是,就可以避免多次重复发送部署包至目标服务器所引起的网络拥塞问题,从而达到节省外网带宽资源的目的。

另外,在步骤S140之后,在另一实施例中,可以进一步包括步骤:

(21)、设置一文件存储集群服务器;

(22)、将所有部署包备份至所述文件存储集群服务器;

(23)、从所述文件存储集群服务器发送所述部署包发送至文件镜像服务器;

(24)、目标服务器通过专用网络从所述文件镜像服务器中获取相关的部署包;

(25)、当目标服务器需要执行版本回滚操作时,根据所述目标服务器所存储的历史记录信息,查找一先前版本且有效的部署包,如果查找到,则获取所述有效部署包,并结束执行;否则,执行步骤(26);

(26)、通过所述文件镜像服务器查询相应版本的有效部署包,如果查找到,则获取所述有效部署包,并结束执行;否则,执行步骤(27);

(27)、通过所述文件存储集群服务器查询相应版本的有效部署包。

在上述步骤中,首先,在本地设置一文件存储集群服务器,这样可以集中式地管理所生成的部署包及编译包。然后,将相关的部署包从所述文件存储集群服务器发送至所述文件镜像服务器,接着通知与所述文件镜像服务器相连的目标服务器,从而使得目标服务器能够获取所需的部署包。由于步骤(24)至步骤(27)的实施,因此,能够有效进行部署包(或编译包)的版本控制,可以实现版本回滚。再者,如果发现当前发布版本的部署包存有问题时,利用三次缓存方式(即通过目标服务器的历史记录、文件镜像服务器以及文件存储集群服务器),能够找到该错误部署包的先前有效版本。

另外,在步骤S140之中,在又一实施例中,进一步包括步骤:

(31)设置一监控模块;

(32)所述监控模块长期且周期性地与目标服务器进行心跳通信连接;

(33)当所述监控模块在发送心跳通信请求至所述目标服务器之后,在一预设时间内没有从所述目标服务器接收到心跳通信响应,则发送通知信息给用户,并且结束执行;

(34)在将相应的部署包进行定向分发之前,所述监控模块再次发送心跳通信请求至所述目标服务器;

(35)当所述监控模块接收到从所述目标服务器返回的心跳通信响应时,发送相应的部署包至所述目标服务器。

通过上述步骤(31)至(33)的实施,不仅可以迅速判断与目标服务器的通信是否存有问题,有助于用户及时了解系统情况,而且在分发部署包之前,能够明确地定位出某一故障目标服务器,若仍希望将部署包发送至该故障目标服务器,则需要等待用户将该故障目标服务器修复完毕,再执行发送操作。于是,提高了系统的稳定性。通过步骤(34)至(35)的实施,用于进一步改善系统的稳定性。

在又一实施例中,在步骤S110和S120进一步包括:

(41)设置一管道模块;

(42)通过异步方式在所述管道模块中执行源代码染色操作;

(43)通过异步方式在所述管道模块中执行对编译后的源代码进行自动化测试操作。

通常情况下,提取代码、编译、打包及分发为彼此相关联的四个步骤。在现有技术中,如果在编译过程中,需要植入一段代码,则需要修改相应的编译代码。因此,本发明在提取代码步骤结束之后,基于源代码开销最小原则,通过设置一可控的管道模块并利用异步方式进行源代码染色操作(即可植入所需代码),从而避免在编译完成后再植入所需代码而产生的高开销问题。此外,在现有技术中,如果在编译完成后希望进行自动化测试操作,则需要修改相应的编译模块,这样开销成本较高。因此,本发明在编译步骤之后,通过设置一可控的管道模块并利用异步方式以实现自动化测试操作。需注意的是,在上述步骤中采用异步方式能够避免对宿主(即上述提取代码、编译、打包及分发四个步骤的正常执行操作)产生影响。

参见图2,本发明还提供一种基于多语言环境的软件包发布系统,其包括:源代码编译单元210、源代码打包单元220、配置信息获取单元230以及部署包生成单元240。其中,

所述源代码编译单元210用于服务器通过内置编译器对源代码进行编译。

所述源代码打包单元220与所述源代码编译单元210相连,用于服务器对编译后的源代码进行打包,以生成编译包。

所述配置信息获取单元230与所述源代码打包单元220相连,用于服务器发送配置信息请求至一配置模块,以获取相应的配置信息。

所述部署包生成单元240与所述配置信息获取单元230相连,用于服务器将所接收到所述配置信息添加至所述编译包,以生成相应的部署包,进而执行定向目标的分发操作。

可选的,本发明所述软件包发布系统进一步包括:文件镜像设置单元、部署包第一发送单元和部署包第一获取单元,上述可选的单元未在图中示出。

其中,所述文件镜像设置单元用于设置一文件镜像服务器。所述部署包第一发送单元与所述文件镜像设置单元相连,用于将部署包发送至所述文件镜像服务器。所述部署包第一获取单元用于目标服务器通过专用网络从所述文件镜像服务器中获取相关的部署包。于是,就可以避免多次重复发送部署包至目标服务器所引起的网络拥塞问题,从而达到节省外网带宽资源的目的。

可选的,本发明所述软件包发布系统进一步包括:文件存储集群设置单元、部署包备份单元、部署包第二发送单元、部署包第二获取单元、版本第一获取单元、版本第二获取单元以及版本第三获取单元,上述可选的单元未在图中示出。

其中,所述文件存储集群单元用于设置一文件存储集群服务器。所述部署包备份单元与所述文件存储集群设置单元相连,用于将所有部署包备份至所述文件存储集群服务器。所述部署包第二发送单元用于从所述文件存储集群服务器发送所述部署包至文件镜像服务器。所述部署包第二获取单元用于目标服务器通过专用网络从所述文件镜像服务器中获取相关的部署包。所述版本第一获取单元用于当目标服务器需要执行版本回滚操作时,根据所述目标服务器所存储的历史记录信息,查找一先前版本且有效的部署包,如果查找到,则获取所述有效部署包,并结束执行;否则,调用版本第二获取单元。所述版本第二获取单元用于通过所述文件镜像服务器查询相应版本的有效部署包,如果查找到,则获取所述有效部署包,并结束执行;否则,调用版本第三获取单元。所述版本第三获取单元用于通过所述文件存储集群服务器查询相应版本的有效部署包。

若发现当前发布版本的部署包存有问题时,利用三次缓存方式(即通过目标服务器的历史记录、文件镜像服务器以及文件存储集群服务器),能够找到该错误部署包的先前有效版本。因此,能够有效进行部署包(或编译包)的版本控制。

可选的,本发明所述软件包发布系统进一步包括:监控模块设置单元、监控模块第一判断单元、监控模块第一响应单元、监控模块第二判断单元及监控模块第二响应单元,上述可选的单元未在图中示出。

其中,所述监控模块设置单元用于设置一监控模块。所述监控模块判断单元用于所述监控模块长期且周期性地与目标服务器进行心跳通信连接。所述监控模块第一响应单元用于当所述监控模块在发送心跳通信请求至所述目标服务器之后,在一预设时间内没有从所述目标服务器接收到心跳通信响应,则发送通知信息给用户。所述监控模块第二判断单元用于在将相应的部署包进行定向分发之前,所述监控模块再次发送心跳通信请求至所述目标服务器。所述监控模块第二响应单元用于当所述监控模块接收到从所述目标服务器返回的心跳通信响应时,发送相应的部署包至所述目标服务器。于是,可以改善系统的稳定性。

可选的,本发明所述软件包发布系统进一步包括:管道模块设置单元、代码染色单元以及代码测试单元,上述可选的单元未在图中示出。

其中,所述管道模块设置单元用于设置一管道模块。所述代码染色单元用于通过异步方式在所述管道模块中执行源代码染色操作。所述代码测试单元用于通过异步方式在所述管道模块中执行对编译后的源代码进行自动化测试操作。这样,在不影响原有步骤操作的情况下,执行所需操作,且开销成本较低。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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