CN115480780A - 基于Windows系统的微服务应用高效部署方法 - Google Patents
基于Windows系统的微服务应用高效部署方法 Download PDFInfo
- Publication number
- CN115480780A CN115480780A CN202210969165.4A CN202210969165A CN115480780A CN 115480780 A CN115480780 A CN 115480780A CN 202210969165 A CN202210969165 A CN 202210969165A CN 115480780 A CN115480780 A CN 115480780A
- Authority
- CN
- China
- Prior art keywords
- program
- service
- package
- file
- windows
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
一种基于Windows系统的微服务应用高效部署方法,包括应用程序的程序封包,在Windows系统里上载或者安装所述程序封包,部署安装管理程序,释放并注册形成服务程序,所述服务程序对Windows系统上的程序进行部署安装;所述程序封包包括:程序定义文件、程序文件资源、额外资源以及封包签名四部分的混合编码整合文件。通过将应用程序的程序封包安装在应用服务器上,通过上载或者安装本地APP封包的方式,来实现释放并完成服务的注册过程,完成服务程序以及资源文件的安装,基于Windows的服务模型,使具备在Windows系统上可以以服务模式运行的程序均可以通过所述应用程序来实现部署安装,安装后可通过Windows服务模型来进行服务状态的管理,实现服务的启停以及卸载。
Description
技术领域
本发明涉及软件工程设计领域,尤其涉及基于Windows系统的微服务应用高效部署方法。
背景技术
伴随微服务架构的普及,在Windows下对微服务应用进行系统的方便的部署升级管理成为必要;现有技术,例如:通过Docker镜像等方式进行管理,具体为基于容器化技术基础上诞生的一种分层存储封包方式,优势是属于一种准国际标准,得到普遍的认同。缺点是和容器技术本身高度绑定,因此无法很有效的兼容纯应用的封装,Windows下使用不方便,无法解决部署后管理的问题,且在管理上需要使用其他产品,带来复杂性和操作难度。又例如:采用Windows自有的MSI安装封装方式,属于Windows标准,国际化标准之一。优势在于属于完全标准化的体系,缺点在于其本身的实现需要依托于专用的工具,其使用的复杂性高,成本大。同时本身并不能很好的适应微服务体系下的服务安装管理,扩展成本极高。
例如,一种在中国专利文献上公开的“一种基于docker容器化技术的镜像管理方法”,其公告号CN11188-832A,包括了服务端server、控制端patrol、插件端plugin和镜像管理端image,具体实现步骤如下:通过jgit,抓取目标应用程序的源代码到本地;将配置的前端需要关联的后端数据信息,写入到镜像关联的配置,用于前端镜像启动后代理到后端的关系建立,通过程序生成dockerfile。本发明用于源码到镜像制作的过程管理,利用docker容器化技术,将源程序应用包进行数字化和可视化,并通过代码的操作日志辅助开发和运维人员进行任意版本的管理和回退,实现镜像管理。但是上述方案与容器技术本身高度绑定,存在无法有效兼容纯应用的封装,且在Windows系统难以部署管理的问题。
发明内容
本发明是为了克服现有技术的微服务应用部署方法难以适应Windows系统或者扩展成本极高且效率低下的问题,提供一种实现高效发布部署及管理的基于Windows系统的微服务应用高效部署方法。
为实现上述目的,本发明采用以下技术方案:
一种基于Windows系统的微服务应用高效部署方法,包括应用程序的程序封包,包括:
在Windows系统里上载或者安装所述程序封包,部署安装管理程序,释放并注册形成服务程序,所述服务程序对Windows系统上的程序进行部署安装;所述程序封包包括:程序定义文件、程序文件资源、额外资源以及封包签名四部分的混合编码整合文件。通过将所述应用程序的程序封包安装在应用服务器上,通过上载或者安装本地APP封包的方式,来实现释放并完成服务的注册过程,完成服务程序以及资源文件的安装,基于Windows的服务模型,使具备在Windows系统上可以以服务模式运行的程序均可以通过所述应用程序来实现部署安装,安装后可通过Windows服务模型来进行服务状态的管理,实现服务的启停以及卸载。
作为优选,所述程序定义文件包括:若干个携带不同信息的yaml 文件,所述若干个携带不同信息的yaml文件合并成一个合并yaml文件并采用zip编码方式封装在所述程序封包的文件头中,合并yaml文件封装为预设固定大小。
作为优选,所述合并yaml文件包含的yaml子文件有:程序基本信息、程序依赖信息、程序默认配置信息模板、程序的额外配置环境变量模板、权限信息、执行期配置定义、程序文件资源信息描述和额外资源信息描述。所述程序的基本信息包括名称、服务名;所述程序的依赖信息包括服务依赖B服务信息,其中B为服务类别;所述程序的默认配置信息模块模板包括安装封包基准要求可为固定至或为注入值;所述权限信息包括对环境权限的依赖信息和对服务权限的依赖信息;所述执行器配置定义包括执行前预处理、执行前处理、执行和执行后处理脚本信息;所述程序文件资源信息描述包括对资源信息进行CRC校验以及长度记录;所述额外资源信息描述包括对额外资源信息进行CRC校验以及长度记录。
作为优选,所述程序文件资源和额外资源均采用Zip编码方式封装在程序封包的文件内。
作为优选,所述封包签名包括所述程序封包封包前的资源的数字签名,所述数字签名包括所述程序封包的版本、所述程序封包的版权信息和所述程序封包的制作人信息,所述封包签名封装在所述程序封包的文件尾部。
作为优选,所述在Windows系统里上载或者安装所述程序封包,部署安装管理程序,释放并注册形成服务程序,具体包括如下步骤:
步骤S1:获取定义文件同时获取封包签名;
步骤S2:对封包签名进行校验;校验成功后提取封包程序定义文件,进行服务依赖分析和环境检查,根据定义文件进行资源释放;
步骤S3:执行脚本,将程序封包主体注入Windows服务模型组件中,由注入的Windows服务模型组件和程序代理执行程序来进行对实际程序的托管;
步骤S4:完成服务注册,清理残余资源并注册服务本身到管理服务后完成安装。
作为优选,所述将程序封包主体注入Windows服务模型组件中,还包括:在初始进程中进行分叉操作,得到接管进程和子进程,所述接管进程接管Windows服务模型组件的标准输入和输出,用于日志输出的拦截并统一输出;所述子进程用于完成释放和注册过程中的配置文件的上传或同步。所述子进程包括程序代理执行程序,所述程序代理执行程序用于辅助包含不支持那从属或者其它类型的服务进行注册,同时程序代理执行程序也可通过Windows服务模型组件来保证服务和实际程序状态一致,保障服务注册发现体系下正常的健康检查。
因此,本发明具有如下有益效果:通过将应用程序的封包安装在应用服务器上,通过上载或者安装本地APP封包的方式,来实现释放并完成服务的注册过程,完成服务程序以及资源文件的安装,基于Windows的服务模型,使具备在Windows系统上可以以服务模式运行的程序均可以通过所述应用程序来实现部署安装,安装后可通过Windows服务模型来进行服务状态的管理,实现服务的启停以及卸载。
附图说明
图1是本发明一实施例的基于Windows系统的微服务应用高效部署方法程序封包结构示意图。
图2是本发明一实施例的基于Windows系统的微服务应用高效部署方法程序封包注入Windows服务模型组件方式框图。
图3是本发明一实施例的基于Windows系统的微服务应用高效部署方法的程序封包注册流程图。
图中:1、程序定义文件 2、程序文件资源 3、额外资源 4、封包签名。
具体实施方式
下面结合附图与具体实施方式对本发明做进一步的描述。
实施例:
一种基于Windows系统的微服务应用高效部署方法,包括应用程序的程序封包,包括:
在Windows系统里上载或者安装所述程序封包,部署安装管理程序,释放并注册形成服务程序,所述服务程序对Windows系统上的程序进行部署安装;如图1所示,所述程序封包包括:程序定义文件1、程序文件资源2、额外资源3以及封包签名4四部分的混合编码整合文件。所述程序定义文件1包括:若干个携带不同信息的yaml 文件,所述若干个携带不同信息的yaml文件合并成一个合并yaml文件并采用zip编码方式封装在所述程序封包的文件头中,合并yaml文件封装为预设固定大小。
所述合并yaml文件包含的yaml子文件有:程序基本信息、程序依赖信息、程序默认配置信息模板、程序的额外配置环境变量模板、权限信息、执行期配置定义、程序文件资源2信息描述和额外资源3信息描述。所述程序的基本信息包括名称、服务名;所述程序的依赖信息包括服务依赖B服务信息,其中B为服务类别;所述程序的默认配置信息模块模板包括安装封包基准要求可为固定至或为注入值;所述权限信息包括对环境权限的依赖信息和对服务权限的依赖信息;所述执行器配置定义包括执行前预处理、执行前处理、执行和执行后处理脚本信息;所述程序文件资源2信息描述包括对资源信息进行CRC校验以及长度记录;所述额外资源3信息描述包括对额外资源3信息进行CRC校验以及长度记录。所述程序文件资源2和额外资源3均采用Zip编码方式封装在程序封包文件内。所述封包签名4包括所述程序封包封包前的资源的数字签名,所述数字签名包括所述程序封包的版本、所述封包文件的版权信息和所述程序封包的制作人信息,所述封包签名4封装在所述程序封包的文件尾部。
如图3所示,在Windows系统里上载或者安装所述程序封包,部署安装管理程序,释放并注册形成服务程序,包括如下步骤:
步骤S1:获取定义文件同时获取封包签名4;
步骤S2:对封包签名4进行校验;校验成功后提取封包程序定义文件1,进行服务依赖分析和环境检查,根据定义文件进行资源释放;
步骤S3:执行脚本,将程序封包主体注入Windows服务模型组件中,由注入的Windows服务模型组件和程序代理执行程序来进行对实际程序的托管;如图2所示,将程序封包主体注入Windows服务模型组件中包括在初始进程中进行分叉操作,得到接管进程和子进程,所述接管进程接管Windows服务模型组件的标准输入和输出,用于日志输出的拦截并统一输出;所述子进程用于完成释放和注册过程中的配置文件的上传或同步。所述子进程包括程序代理执行程序,所述程序代理执行程序用于辅助包含不支持那从属或者其它类型的服务进行注册,同时程序代理执行程序也可通过Windows服务模型组件来保证服务和实际程序状态一致,保障服务注册发现体系下正常的健康检查。
步骤S4:完成服务注册,清理残余资源并注册服务本身到管理服务后完成安装。
通过将所述应用程序的程序封包安装在应用服务器上,通过上载或者安装本地APP封包的方式,来实现释放并完成服务的注册过程,完成服务程序以及资源文件的安装,基于Windows的服务模型,使具备在Windows系统上可以以服务模式运行的程序均可以通过所述应用程序来实现部署安装,安装后可通过Windows服务模型来进行服务状态的管理,实现服务的启停以及卸载。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了程序封包、yaml文件、子程序、部署等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
Claims (7)
1.一种基于Windows系统的微服务应用高效部署方法,包括应用程序的程序封包,其特征在于,包括:
在Windows系统里上载或者安装所述程序封包,部署安装管理程序,释放并注册形成服务程序,所述服务程序对Windows系统上的程序进行部署安装;所述程序封包包括:程序定义文件、程序文件资源、额外资源以及封包签名四部分的混合编码整合文件。
2.根据权利要求1所述的基于Windows系统的微服务应用高效部署方法,其特征在于,所述程序定义文件包括:若干个携带不同信息的yaml 文件,所述若干个携带不同信息的yaml文件合并成一个合并yaml文件并采用zip编码方式封装在所述程序封包的文件头中,合并yaml文件封装为预设固定大小。
3.根据权利要求2所述的基于Windows系统的微服务应用高效部署方法,其特征在于,所述合并yaml文件包含的yaml子文件有:程序基本信息、程序依赖信息、程序默认配置信息模板、程序的额外配置环境变量模板、权限信息、执行期配置定义、程序文件资源信息描述和额外资源信息描述。
4.根据权利要求3所述的基于Windows系统的微服务应用高效部署方法,其特征在于,所述程序文件资源和额外资源均采用Zip编码方式封装在程序封包的文件内。
5.根据权利要求4所述的基于Windows系统的微服务应用高效部署方法,其特征在于,所述封包签名包括所述程序封包封包前的资源的数字签名,所述数字签名包括所述程序封包的版本、所述程序封包的版权信息和所述程序封包的制作人信息,所述封包签名封装在所述程序封包的文件尾部。
6.根据权利要求5所述的的基于Windows系统的微服务应用高效部署方法,其特征在于,所述在Windows系统里上载或者安装所述程序封包,部署安装管理程序,释放并注册形成服务程序,具体包括如下步骤:
步骤S1:获取定义文件同时获取封包签名;
步骤S2:对封包签名进行校验;校验成功后提取封包程序定义文件,进行服务依赖分析和环境检查,根据定义文件进行资源释放;
步骤S3:执行脚本,将程序封包主体注入Windows服务模型组件中,由注入的Windows服务模型组件和程序代理执行程序来进行对实际程序的托管;
步骤S4:完成服务注册,清理残余资源并注册服务本身到管理服务后完成安装。
7.根据权利要求6所述的基于Windows系统的微服务应用高效部署方法,其特征在于,所述将程序封包主体注入Windows服务模型组件中,还包括:在初始进程中进行分叉操作,得到接管进程和子进程,所述接管进程接管Windows服务模型组件的标准输入和输出,用于日志输出的拦截并统一输出;所述子进程用于完成释放和注册过程中的配置文件的上传或同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210969165.4A CN115480780A (zh) | 2022-08-12 | 2022-08-12 | 基于Windows系统的微服务应用高效部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210969165.4A CN115480780A (zh) | 2022-08-12 | 2022-08-12 | 基于Windows系统的微服务应用高效部署方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115480780A true CN115480780A (zh) | 2022-12-16 |
Family
ID=84423085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210969165.4A Pending CN115480780A (zh) | 2022-08-12 | 2022-08-12 | 基于Windows系统的微服务应用高效部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115480780A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555708A (zh) * | 2024-01-11 | 2024-02-13 | 中国人民解放军国防科技大学 | Windows微服务框架程序调用方法、系统和设备 |
-
2022
- 2022-08-12 CN CN202210969165.4A patent/CN115480780A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555708A (zh) * | 2024-01-11 | 2024-02-13 | 中国人民解放军国防科技大学 | Windows微服务框架程序调用方法、系统和设备 |
CN117555708B (zh) * | 2024-01-11 | 2024-03-26 | 中国人民解放军国防科技大学 | Windows微服务框架程序调用方法、系统和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8839194B2 (en) | Component-based web application development framework used for creating web page | |
CN111459824B (zh) | 并发服务的测试用例处理方法及装置 | |
US7725888B2 (en) | Systems and methods for dynamically linking application software into a running operating system kernel | |
KR101418340B1 (ko) | 차량 전장용 운영체제의 정형 검증 장치 및 정형 검증 방법 | |
CN115480780A (zh) | 基于Windows系统的微服务应用高效部署方法 | |
CN106648823B (zh) | 代码发布的方法及装置 | |
CN114880159A (zh) | 数据处理方法、装置、设备及存储介质 | |
US20130125093A1 (en) | Generating object-oriented programming language code from a multi-domain dynamic simulation model | |
CN115705194A (zh) | 一种硬件内存序架构下的代码处理方法及相应装置 | |
CN113032224A (zh) | 一种信息采集方法、装置、电子设备及可读存储介质 | |
CN113835723A (zh) | 一种用于车辆电子控制单元的片上系统、升级系统及方法 | |
CN112288840A (zh) | 一种三维渲染引擎结合JavaScript脚本引擎实现运行的方法 | |
CN116521217A (zh) | 一种基于autosar工具快速配置bsw的方法、系统及储存介质 | |
WO2020000810A1 (zh) | 应用组件构建打包方法、装置及计算机存储介质 | |
CN115757084A (zh) | 测试方法和测试装置及存储介质 | |
CN115993937A (zh) | 一种多进程固态硬盘仿真环境实现方法和装置 | |
CN114024871B (zh) | 一种芯片验证方法、系统、计算机设备及可读存储介质 | |
CN113590179B (zh) | 插件检测方法、装置、电子设备及存储介质 | |
CN115794372A (zh) | 一种跨语言应用系统间通信的方法、系统 | |
CN111353880B (zh) | 一种交易服务化封装方法、装置及系统 | |
US8239837B2 (en) | Remotely handling exceptions through STAF | |
CN114546670A (zh) | 一种基于协程的函数式异步数据分发系统及方法 | |
CN1988479A (zh) | 一种记录系统信息的方法和对象桩 | |
JP2008217292A (ja) | ソフトウェア部品テンプレート管理システム | |
CN114020414A (zh) | Android系统与底层Linux共生方法、装置、电子设备及存储介质 |
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 |