CN110851146A - 一种基于分布式网络的终端应用发布方法以及系统 - Google Patents
一种基于分布式网络的终端应用发布方法以及系统 Download PDFInfo
- Publication number
- CN110851146A CN110851146A CN201911088304.7A CN201911088304A CN110851146A CN 110851146 A CN110851146 A CN 110851146A CN 201911088304 A CN201911088304 A CN 201911088304A CN 110851146 A CN110851146 A CN 110851146A
- Authority
- CN
- China
- Prior art keywords
- terminal
- version
- submission
- application
- nodes
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于分布式网络的终端应用发布方法,所述分布式网络中包括复数个终端,具体包括如下步骤:步骤1、提交一新应用版本至一终端,先生成预提交节点;步骤2、预提交节点达到共识后,所述终端生成实际节点,版本提交成功;否则,提交失败,所述终端删除预提交节点;本发明还提供一种基于分布式网络的终端应用发布系统,应用去中心化,做到不依赖服务器安装或更新。
Description
技术领域
本发明涉及一种基于分布式网络的终端应用发布方法以及系统。
背景技术
传统的终端上安装、更新应用的方式通常遵循以下方式:
1)应用的新版本部署在服务端;
2)终端向服务端发起安装或更新请求;
3)服务端响应请求,终端下载新版本到本地;
4)在本地实施应用的安装。
缺点1:
所有应用都需要从服务端下载,会给服务端带来一定的性能压力。
缺点2:
需要指定的特殊设备(比如PC)上传应用到服务端,由服务端对应用的版本进行统一管控,若发现从服务端下载的版本有问题,终端无法主动回退选择之前的正常的版本,而只能等待服务器的更新。
缺点3:
断网的情况下无法完成更新。
发明内容
本发明要解决的技术问题,在于提供一种基于分布式网络的终端应用发布方法以及系统,应用去中心化,做到不依赖服务器安装或更新。
本发明之一是这样实现的:一种基于分布式网络的终端应用发布方法,所述分布式网络中包括复数个终端,具体包括如下步骤:
步骤1、提交一新应用版本至一终端,先生成预提交节点;
步骤2、预提交节点达到共识后,所述终端生成实际节点,版本提交成功;否则,提交失败,所述终端删除预提交节点。
进一步地,每个所述终端上设有版本树。
进一步地,所述步骤1进步具体为:
提交一应用版本至一终端,所述终端生成一预提交版本,并在版本树上生成一预提交节点。
进一步地,所述步骤2进一步具体为:
所述终端将预提交版本通过分布式网络发出广播;当分布式网络中大于等于第一限定值的终端接收到预提交版本后,接收到广播的终端生成一与步骤1中相同的预提交节点;
当分布式网络中终端生成预提交结点总数大于等于第二限定值时,所述终端的版本树将预提交节点变为真实的版本树节点,并提交对应应用版本的应用程序至所述终端,完成发布;当分布式网络中终端生成预提交结点总数小于第二限定值时,提交失败,所述终端删除预提交预提交节点。
本发明之二是这样实现的:一种使用分布式实现终端应用的发布系统,具体包括如下模块:
预处理模块,提交一新应用版本至一终端,先生成预提交节点;
提交模块,预提交节点达到共识后,所述终端生成实际节点,版本提交成功;否则,提交失败,所述终端删除预提交节点。
进一步地,每个所述终端上设有版本树。
进一步地,所述预处理模块进步具体为:
提交一应用版本至一终端,所述终端生成一预提交版本,并在版本树上生成一预提交节点。
进一步地,所述提交模块进一步具体为:
所述终端将预提交版本通过分布式网络发出广播;当分布式网络中大于等于第一限定值的终端接收到预提交版本后,接收到广播的终端生成一与预处理模块中相同的预提交节点;
当分布式网络中终端生成预提交结点总数大于等于第二限定值时,所述终端的版本树将预提交节点变为真实的版本树节点,并提交对应应用版本的应用程序至所述终端,完成发布;当分布式网络中终端生成预提交结点总数小于第二限定值时,提交失败,所述终端删除预提交预提交节点。
本发明具有如下优点:
1)应用去中心化,做到不依赖服务器安装或更新;
2)方便通过版本控制系统的分布式网络建立共识机制,即对于某些特殊的设备要更新应用,可以判断整个分布式网络中应用的使用情况,再决定本终端或设备是否安装(或更新);
3)不依赖于特殊的网络,只要两台设备能够实现互联共通,即可进行版本比较,进行应用安装(或更新);
4)终端可根据需要,自行选择回退到之前的某一个应用版本。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法执行流程图。
图2为本发明一种具体实施方式的系统框图。
图3为本发明版本更新流程图。
图4为本发明一种具体实施方式的共识机制下版本树变化情况图。
图5为本发明一种具体实施方式的版本控制系统模块图。
具体实施方式
如图1所示,本发明基于分布式网络的终端应用发布方法,所述分布式网络中包括复数个终端,具体包括如下步骤:
步骤1、每个所述终端上设有版本树,提交一应用版本至一终端,所述终端生成一预提交版本,并在版本树上生成一预提交节点;
步骤2、所述终端将预提交版本通过分布式网络发出广播;当分布式网络中大于等于第一限定值的终端接收到预提交版本后,接收到广播的终端生成一与步骤1中相同的预提交节点;
当分布式网络中终端生成预提交结点总数大于等于第二限定值时,所述终端的版本树将预提交节点变为真实的版本树节点,并提交对应应用版本的应用程序至所述终端,完成发布;当分布式网络中终端生成预提交结点总数小于第二限定值时,提交失败,所述终端删除预提交预提交节点。
本发明使用分布式实现终端应用的发布系统,具体包括如下模块:
预处理模块,每个所述终端上设有版本树,提交一应用版本至一终端,所述终端生成一预提交版本,并在版本树上生成一预提交节点;
提交模块,所述终端将预提交版本通过分布式网络发出广播;当分布式网络中大于等于第一限定值的终端接收到预提交版本后,接收到广播的终端生成一与步骤1中相同的预提交节点;
当分布式网络中终端生成预提交结点总数大于等于第二限定值时,所述终端的版本树将预提交节点变为真实的版本树节点,并提交对应应用版本的应用程序至所述终端,完成发布;当分布式网络中终端生成预提交结点总数小于第二限定值时,提交失败,所述终端删除预提交预提交节点。
本发明一种具体实施方式:
1.系统工作示意图如图2所示:
1)版本控制系统:每一个终端都有一个App的版本控制系统,用于维护App的版本;
2)版本树:每一台终端的版本控制系统,都保存了所有终端共同的版本树;
3)应用分支:应用发布在任意终端的一个版本树的应用分支上,其它终端从拥有较高版本的版本树上更新应用,从而实现更新本终端的版本树;
4)终端连接方式:终端通过版本管理系统来查找分布式网络内拥有相同版本树的版本管理系统,向其发起连接请求;通过建立SSH连接,从一台终端上更新版本到本地终端;
5)分布式网络:所有终端都是分布式网络中的一个节点。终端加入分布式网络,需要获得网络中所有51%以上的终端(包含自己)识别后才能生效。通过版本控制系统维护分布式网络的共识机制。加入网络中的终端,会获得一个版本树镜像,该版本树镜像包含了所有应用的版本信息,每个终端节点都拥有这样一个版本树镜像。
6)如图3和图4所示,共识机制:通过分布式网络的共识机制来解决不同终端版本冲突的问题。比如在传统的分布式版本控制系统(比如git)中,向不同的仓库提交代码,两个版本树会产生版本冲突的情况。而本发明引入了区块链中共识机制的概念,即向一个终端提交新版本:(1)先在该终端生成一个预提交版本,并在版本树中生成版本树的预提交节点,(2)将预提交版本向分布式网络发出新版本提交广播,(3)当确认网络中51%的终端收到有新版本要提交的信息后,(4)所有收到广播的终端将生成一个相同的预提交节点,(5)当分布式网络中该版本预提交节点计数大于等于51%时,该提交版本终端的预提交节点变成真实的版本树节点,否则提交失败,(6)所有被标记了预提交节点的版本树,可以在该预提交节点上生成新的预提交节点(即同一个应用分支可存在多个预提交节点),(7)但要在有预提交节点的终端上提交新的应用,只有将预提交节点变成了真实的版本树节点后,才能够进行提交。
2.对于终端的版本控制系统,如图5所示:
1)共识机制:共识机制模块的主要作用是维护整个分布式网络。包括以下三个主要功能:
(1)向整个分布式网络发布版本树的预提交节点;
(2)接收分布式网络中的预提交给点给版本树;
(3)计算共识结果;
2)版本树:版本树用于维护终端应用的版本分支。包括以下主要功能:
(1)保存应用的版本树镜像;
(2)维护预提交版本树节点;
(3)维护实际生成版本树节点;
维护树节点遵守以下逻辑:
(1)向终端提交应用版本,先生成预提交节点,预提交节点达到共识以后,才生成实际节点,版本提交成功;否则,提交失败,预提交结节删除;
(2)一个版本树可以有0个或多个连续的预提交节点。但2个预提交结节之间不能有实际版本节点,即本终端不能在还没有将预提交更新成实际应用版本前,提交新的应用版本到分布式网络中;
3)SSH模块,用于分布式网络中两个终端节点交互。
3、本发明的要点
1)在终端系统上构建一个应用版本控制系统,每一台终端上都维护了一整套应用版本;
2)终端通过应用版本控制系统比较应用的版本差异,低版本终端以P2P(点对点)的方式从高版本终端升级应用;
3)P2P方式安装(或更新)应用版本时,应用版本控制系统以SSH方式进行连接;
4)P2P的连接可以是任意的网络连接形式,比如:广域网、局域网、蓝牙PAN等;
5)更新版本的应用,可以部署在任意一台终端或服务器上。如果部署在服务器上,这时的服务器相当于分布式网络上的一个节点。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (8)
1.一种基于分布式网络的终端应用发布方法,其特征在于:所述分布式网络中包括复数个终端,具体包括如下步骤:
步骤1、提交一新应用版本至一终端,先生成预提交节点;
步骤2、预提交节点达到共识后,所述终端生成实际节点,版本提交成功;否则,提交失败,所述终端删除预提交节点。
2.根据权利要求1所述的一种使用分布式实现终端应用的安装或更新的方法,其特征在于:每个所述终端上设有版本树。
3.根据权利要求2所述的一种使用分布式实现终端应用的安装或更新的方法,其特征在于:所述步骤1进步具体为:
提交一应用版本至一终端,所述终端生成一预提交版本,并在版本树上生成一预提交节点。
4.根据权利要求2所述的一种使用分布式实现终端应用的安装或更新的方法,其特征在于:所述步骤2进一步具体为:
所述终端将预提交版本通过分布式网络发出广播;当分布式网络中大于等于第一限定值的终端接收到预提交版本后,接收到广播的终端生成一与步骤1中相同的预提交节点;
当分布式网络中终端生成预提交结点总数大于等于第二限定值时,所述终端的版本树将预提交节点变为真实的版本树节点,并提交对应应用版本的应用程序至所述终端,完成发布;当分布式网络中终端生成预提交结点总数小于第二限定值时,提交失败,所述终端删除预提交预提交节点。
5.一种使用分布式实现终端应用的发布系统,其特征在于:具体包括如下模块:
预处理模块,提交一新应用版本至一终端,先生成预提交节点;
提交模块,预提交节点达到共识后,所述终端生成实际节点,版本提交成功;否则,提交失败,所述终端删除预提交节点。
6.根据权利要求5所述的一种使用分布式实现终端应用的安装或更新的方法,其特征在于:每个所述终端上设有版本树。
7.根据权利要求6所述的一种使用分布式实现终端应用的安装或更新的方法,其特征在于:所述预处理模块进步具体为:
提交一应用版本至一终端,所述终端生成一预提交版本,并在版本树上生成一预提交节点。
8.根据权利要求6所述的一种使用分布式实现终端应用的安装或更新的方法,其特征在于:所述提交模块进一步具体为:
所述终端将预提交版本通过分布式网络发出广播;当分布式网络中大于等于第一限定值的终端接收到预提交版本后,接收到广播的终端生成一与预处理模块中相同的预提交节点;
当分布式网络中终端生成预提交结点总数大于等于第二限定值时,所述终端的版本树将预提交节点变为真实的版本树节点,并提交对应应用版本的应用程序至所述终端,完成发布;当分布式网络中终端生成预提交结点总数小于第二限定值时,提交失败,所述终端删除预提交预提交节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911088304.7A CN110851146A (zh) | 2019-11-08 | 2019-11-08 | 一种基于分布式网络的终端应用发布方法以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911088304.7A CN110851146A (zh) | 2019-11-08 | 2019-11-08 | 一种基于分布式网络的终端应用发布方法以及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110851146A true CN110851146A (zh) | 2020-02-28 |
Family
ID=69599916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911088304.7A Pending CN110851146A (zh) | 2019-11-08 | 2019-11-08 | 一种基于分布式网络的终端应用发布方法以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851146A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180067737A1 (en) * | 2016-09-08 | 2018-03-08 | AO Kaspersky Lab | System and method of distributing software updates |
CN108536472A (zh) * | 2018-03-13 | 2018-09-14 | 中国银行股份有限公司 | 一种代码的规范性检查方法及装置 |
CN109408108A (zh) * | 2018-10-12 | 2019-03-01 | 天津理工大学 | 一种基于区块链的软件版本数据管理系统及建立方法 |
CN109447810A (zh) * | 2018-11-29 | 2019-03-08 | 杭州秘猿科技有限公司 | 并行区块链共识方法、系统、电子设备和计算机可读存储介质 |
CN110083462A (zh) * | 2019-04-17 | 2019-08-02 | 江苏全链通信息科技有限公司 | 基于分布式应用程序的通信方法、设备及存储介质 |
-
2019
- 2019-11-08 CN CN201911088304.7A patent/CN110851146A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180067737A1 (en) * | 2016-09-08 | 2018-03-08 | AO Kaspersky Lab | System and method of distributing software updates |
CN108536472A (zh) * | 2018-03-13 | 2018-09-14 | 中国银行股份有限公司 | 一种代码的规范性检查方法及装置 |
CN109408108A (zh) * | 2018-10-12 | 2019-03-01 | 天津理工大学 | 一种基于区块链的软件版本数据管理系统及建立方法 |
CN109447810A (zh) * | 2018-11-29 | 2019-03-08 | 杭州秘猿科技有限公司 | 并行区块链共识方法、系统、电子设备和计算机可读存储介质 |
CN110083462A (zh) * | 2019-04-17 | 2019-08-02 | 江苏全链通信息科技有限公司 | 基于分布式应用程序的通信方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8370831B1 (en) | Software installation in a multi-chassis network device | |
CN100562159C (zh) | 无线通信系统中级联方式连接的被管理模块的升级方法 | |
CN110716983B (zh) | 一种信息处理方法和区块链网络服务平台 | |
CN109639773B (zh) | 一种动态构建的分布式数据集群控制系统及其方法 | |
CN111654399B (zh) | 基于sd-wan的组网方法、装置、设备及存储介质 | |
CN101795295A (zh) | 一种基于点对点技术的局域网病毒库升级系统和方法 | |
WO2022267175A1 (zh) | 信息处理方法、装置、计算机设备及存储介质 | |
CN109672712A (zh) | 数据同步方法、装置、超级控制器、域控制器及存储介质 | |
CN101222364A (zh) | 一种自动交换光网络中本地跨段网状网恢复的方法 | |
CN101355454A (zh) | 一种自动升级分布式网络管理服务器的系统与方法 | |
CN110636127B (zh) | 一种各信息数据间的通信处理方法及系统 | |
CN112650812A (zh) | 一种数据分片存储方法、装置、计算机设备和存储介质 | |
CN101175001A (zh) | 一种分布式多程序产品自动更新系统及方法 | |
JP2740105B2 (ja) | 分散データベース制御方法 | |
CN112181441A (zh) | 使用混沌工程及灰度发布的构建及应用部署方法及系统 | |
US6883169B1 (en) | Apparatus for managing the installation of software across a network | |
CN110851146A (zh) | 一种基于分布式网络的终端应用发布方法以及系统 | |
CN114640569A (zh) | 动态消息管理装置、设备、系统、方法及存储介质 | |
CN112631804B (zh) | 基于隔离环境的服务调用请求处理方法及计算机设备 | |
CN108282371B (zh) | 一种网元业务配置方法及系统 | |
WO2022156354A1 (zh) | 版本配置方法、装置、设备、系统及存储介质 | |
CN108011730B (zh) | 一种网管系统中环网资源自动变更的方法及装置 | |
CN114911171A (zh) | 一种设备控制的方法和装置 | |
CN108023745B (zh) | 一种自动设置网络设备重启顺序的方法及装置 | |
CN113407215A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200228 |