CN105867974A - 一种cs架构应用程序的离线升级方法 - Google Patents

一种cs架构应用程序的离线升级方法 Download PDF

Info

Publication number
CN105867974A
CN105867974A CN201610196393.7A CN201610196393A CN105867974A CN 105867974 A CN105867974 A CN 105867974A CN 201610196393 A CN201610196393 A CN 201610196393A CN 105867974 A CN105867974 A CN 105867974A
Authority
CN
China
Prior art keywords
version
program
assembly
program assembly
client
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
Application number
CN201610196393.7A
Other languages
English (en)
Inventor
王士勇
钟如玉
步显文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur General Software Co Ltd
Original Assignee
Inspur General Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur General Software Co Ltd filed Critical Inspur General Software Co Ltd
Priority to CN201610196393.7A priority Critical patent/CN105867974A/zh
Publication of CN105867974A publication Critical patent/CN105867974A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种CS架构应用程序的离线升级方法,属于程序升级方法,本发明解决如何实现在无网络应用场景下CS架构应用程序的自动升级的问题。技术方案为:一种CS架构应用程序的离线升级方法,在客户端程序的公共组件中设置资源文件,在资源文件中存储服务器端需要升级的程序组件,并为每个需要升级的程序组件增加版本标识;客户端各程序组件包含两个版本标识,分别用于标识程序组件自身版本和依赖服务器端的最低版本;服务器端包含一个版本标识用于标识当前服务器端的需要升级的程序组件版本;客户端的公共组件包含一个升级检测组件,程序组件升级启动后在开始执行处理逻辑之前运行,升级检测组件用于版本匹配检查。

Description

一种CS架构应用程序的离线升级方法
技术领域
本发明涉及一种程序升级方法,具体地说是一种CS架构应用程序的离线升级方法。
背景技术
CS架构,Client/Server架构,即客户端/服务器端架构。通过将任务合理分配到客户端(Client)和服务器端(Server),降低了系统的通讯开销,需要安装客户端才可进行管理操作。客户端和服务器端的程序不同,用户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。
在Internet日新月异发展的今天,基于TCP/IP的网络技术连接了遍布全球的计算机,应用程序的在线升级技术已经非常成熟。但在企业应用过程中,总有一部分计算机因安全要求不能接入Internet,但其更新技术一直困扰着应用厂商,尤其是基于CS架构的程序,在升级过程中还需要考虑服务端的升级,在升级操作过程中有不小麻烦。
发明内容
本发明的技术任务是针对以上不足之处,提供一种CS架构应用程序的离线升级方法,来解决如何实现在无网络应用场景下CS架构应用程序的自动升级的问题。
本发明解决其技术问题所采用的技术方案是:
一种CS架构应用程序的离线升级方法,包括如下内容:
(1)、在客户端程序的公共组件中设置资源文件,在资源文件中存储服务器端需要升级的程序组件,并为每个需要升级的程序组件增加版本标识;
(2)、客户端各程序组件包含两个版本标识,分别用于标识程序组件自身版本和依赖服务器端的最低版本;
(3)、服务器端包含一个版本标识用于标识当前服务器端的需要升级的程序组件版本,该版本标识与(1)中的版本标识一致;
(4)、客户端的公共组件包含一个升级检测组件,程序组件升级启动后在开始执行处理逻辑之前运行,升级检测组件用于版本匹配检查;
程序组件升级后首次运行使用资源文件记录对服务器端的程序组件进行升级操作;客户端的程序组件通过离线方式传递。
(2)中,为客户端的各个程序组件设计有一个公共接口,该公共接口包含两个版本标识。
(4)中,升级检测组件运行流程如下:
①、升级检测组件首先检查客户端的程序组件中依赖最高的服务器端程序组件的版本标识,与服务器端的程序组件当前版本标识进行比较,如果客户端的程序组件依赖的最高版本低于服务器端的程序组件版本,判断为服务器端的程序组件与客户端的程序组件版本相容;如果客户端的程序组件依赖的最高版本高于服务器端的程序组件版本,判断为客户端的程序组件与服务器端的程序组件不相容,需要对服务器端的程序组件进行升级;
②、升级检测组件再检查资源文件中最高版本是否大于程序依赖的最高版本,如果资源文件中的版本不大于程序依赖版本,说明客户端的程序组件相容性检查失败,客户端的程序组件不相容;反之,客户端的程序组件相容;
③、在客户端的程序组件相容,但服务器端的程序组件不相容时,需要对服务器端的程序组件进行升级,确定需要升级的程序组件为服务器端当前版本标识至当前客户端的程序组件依赖的最高版本。
本发明的一种CS架构应用程序的离线升级方法和现有技术相比,具有以下有益效果:实现了在无Internet连接应用场景程序的按需升级,实现了服务器与客户端版本的匹配规则,能够自动识别相容性。减少了无Internet应用场景下程序升级风险,提高了程序升级的成功率。适用于无网络连接应用场景下的CS架构程序升级。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种CS架构应用程序的离线升级方法的离线升级程序组件的位置示意图;
附图2为一种CS架构应用程序的离线升级方法的客户端的程序组件升级处理流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
本发明的一种CS架构应用程序的离线升级方法,包括如下内容:
(1)、在客户端程序的公共组件中设置资源文件,在资源文件中存储服务器端需要升级的程序组件,并为每个需要升级的程序组件增加版本标识;版本标识的格式如下:
--[VER:6.0.6.8]
declare vCount1 int := 0;
begin
select count(1) into vCount1 from YHJKBANKPARAMS where YHJKBANKPARAMS_BANKNO='11'andYHJKBANKPARAMS_VERSIONS='COMMON' and YHJKBANKPARAMS_KEYS='COLLECTIONBALFLAG';
if(vCount1 <= 0 ) then
insert into YHJKBANKPARAMS(YHJKBANKPARAMS_BANKNO,YHJKBANKPARAMS_VERSIONS,YHJKBANKPARAMS_REMARK,YHJKBANKPARAMS_KEYS,YHJKBANKPARAMS_VALS)
values ('11','COMMON','归集余额', 'COLLECTIONBALFLAG','1') ;
end if;
end;
/
--[VER:6.0.6.9]
declare vCount1 int := 0;
begin
select count(1) into vCount1 from YHJKBANKPARAMS where YHJKBANKPARAMS_BANKNO='09'andYHJKBANKPARAMS_VERSIONS='COMMON'and YHJKBANKPARAMS_KEYS='FASTPAY';
if(vCount1 <= 0 ) then
insert into YHJKBANKPARAMS(YHJKBANKPARAMS_BANKNO,YHJKBANKPARAMS_VERSIONS,YHJKBANKPARAMS_REMARK,YHJKBANKPARAMS_KEYS,YHJKBANKPARAMS_VALS)
values ('09','COMMON','快速支付,启用后同城按异地处理','FASTPAY','0');
end if;
end;
/。
(2)、客户端各程序组件设计有一个公共接口,该公共接口包含两个版本标识,分别用于标识程序组件自身版本和依赖服务器端的最低版本;公共接口定义的格式如下:
#region 升级相关
public string ModuleVer = "6.0.6.0";
public string ModuleRefDBVer = "6.0.6.0";
#endregion。
(3)、服务器端包含一个版本标识用于标识当前服务器端的需要升级的程序组件版本,该版本标识与(1)中的版本标识一致;版本标识的格式如下:
YHJKBANKPARAMS_KEYS DBInstanceVer;
YHJKBANKPARAMS_VALS 6.0.6.10;
YHJKBANKPARAMS_REMARK 数据库实例版本标识。
(4)、客户端的公共组件包含一个升级检测组件,程序组件升级启动后在开始执行处理逻辑之前运行,升级检测组件用于版本匹配检查;升级检测组件运行流程如下:
①、升级检测组件首先检查客户端的程序组件中依赖最高的服务器端程序组件的版本标识,与服务器端的程序组件当前版本标识进行比较,如果客户端的程序组件依赖的最高版本低于服务器端的程序组件版本,判断为服务器端的程序组件与客户端的程序组件版本相容;如果客户端的程序组件依赖的最高版本高于服务器端的程序组件版本,判断为客户端的程序组件与服务器端的程序组件不相容,需要对服务器端的程序组件进行升级;
②、升级检测组件再检查资源文件中最高版本是否大于程序依赖的最高版本,如果资源文件中的版本不大于程序依赖版本,说明客户端的程序组件相容性检查失败,客户端的程序组件不相容;反之,客户端的程序组件相容;
③、在客户端的程序组件相容,但服务器端的程序组件不相容时,需要对服务器端的程序组件进行升级,确定需要升级的程序组件为服务器端当前版本标识至当前客户端的程序组件依赖的最高版本。
升级检测组件的格式如下:
//取得使用数据库实例的版本,该版本不是指DBMS的版本,是指应用程序需要使用的版本
dbInstanceVer = DataBase.GetValues(1, "select yhjkbankparams_vals fromyhjkbankparams where yhjkbankparams_bankno='--' and yhjkbankparams_versions='--' and yhjkbankparams_keys='DBInstanceVer'");
#region 取得程序所依赖的最高数据库版本
DataSet ds_Banks = new DataSet();
if (!PublicFunction.GetBanksUsed(out ds_Banks, out updateError))
{
return false;
}
DataRow[] drs = ds_Banks.Tables[0].Select("BankName='全部银行'");
foreach (DataRow dr in drs)
{
dr.Delete();
}
maxModuleVer = defaultVer;
foreach (DataRow item in ds_Banks.Tables[0].Rows)
{
string filePath = item["DllName"] + ".dll";
if (File.Exists(filePath))
{
System.Reflection.Assembly asm = System.Reflection.Assembly.Load(item["DllName"].ToString());
System.Type ClassType = asm.GetType(item["ClassName"].ToString());
object Bank = (IBank)System.Activator.CreateInstance(ClassType,string.Empty);
string versionString;
#region 依赖数据库版本
FieldInfo fi = ClassType.GetField("ModuleRefDBVer");
if (fi != null)
{
versionString = fi.GetValue(Bank) as string;
}
else
{
versionString = defaultVer;
}
#endregion
int currMax = int.Parse(maxModuleVer.Replace(".", string.Empty));
if (int.Parse(versionString.Replace(".", string.Empty)) > currMax)
{
maxModuleVer = versionString;
refMaxDbComponent = item["BankName"].ToString();
}
}
}
#endregion
#region 与框架依赖的数据库版本比较。
if (int.Parse(this.ModuleRefDBVer.Replace(".", string.Empty)) >int.Parse(maxModuleVer.Replace(".", string.Empty)))
{
maxModuleVer = this.ModuleRefDBVer;
refMaxDbComponent = "银企直联框架";
}
#endregion
#region 判断是否需要升级
bool updateDbFlag = false;
if (string.IsNullOrEmpty(dbInstanceVer))
{
updateDbFlag = true;
dbInstanceVer = "0";
}
else
{
if (int.Parse(maxModuleVer.Replace(".", string.Empty)) > int.Parse(dbInstanceVer.Replace(".", string.Empty)))
{
updateDbFlag = true;
}
}
if (!updateDbFlag)
{
updateInfo = "不需要进行数据库升级操作";
}
mustUpgrad = updateDbFlag;
#endregion。
程序组件升级后首次运行使用资源文件记录对服务器端的程序组件进行升级操作;客户端的程序组件通过离线方式传递。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (3)

1.一种CS架构应用程序的离线升级方法,其特征在于包括如下内容:
(1)、在客户端程序的公共组件中设置资源文件,在资源文件中存储服务器端需要升级的程序组件,并为每个需要升级的程序组件增加版本标识;
(2)、客户端各程序组件包含两个版本标识,分别用于标识程序组件自身版本和依赖服务器端的最低版本;
(3)、服务器端包含一个版本标识用于标识当前服务器端的需要升级的程序组件版本,该版本标识与(1)中的版本标识一致;
(4)、客户端的公共组件包含一个升级检测组件,程序组件升级启动后在开始执行处理逻辑之前运行,升级检测组件用于版本匹配检查;
程序组件升级后首次运行使用资源文件记录对服务器端的程序组件进行升级操作;客户端的程序组件通过离线方式传递。
2.根据权利要求1所述的一种CS架构应用程序的离线升级方法,其特征在于(2)中,为客户端的各个程序组件设计有一个公共接口,该公共接口包含两个版本标识。
3.根据权利要求1所述的一种CS架构应用程序的离线升级方法,其特征在于(4)中,升级检测组件运行流程如下:
①、升级检测组件首先检查客户端的程序组件中依赖最高的服务器端程序组件的版本标识,与服务器端的程序组件当前版本标识进行比较,如果客户端的程序组件依赖的最高版本低于服务器端的程序组件版本,判断为服务器端的程序组件与客户端的程序组件版本相容;如果客户端的程序组件依赖的最高版本高于服务器端的程序组件版本,判断为客户端的程序组件与服务器端的程序组件不相容,需要对服务器端的程序组件进行升级;
②、升级检测组件再检查资源文件中最高版本是否大于程序依赖的最高版本,如果资源文件中的版本不大于程序依赖版本,说明客户端的程序组件相容性检查失败,客户端的程序组件不相容;反之,客户端的程序组件相容;
③、在客户端的程序组件相容,但服务器端的程序组件不相容时,需要对服务器端的程序组件进行升级,确定需要升级的程序组件为服务器端当前版本标识至当前客户端的程序组件依赖的最高版本。
CN201610196393.7A 2016-03-31 2016-03-31 一种cs架构应用程序的离线升级方法 Pending CN105867974A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610196393.7A CN105867974A (zh) 2016-03-31 2016-03-31 一种cs架构应用程序的离线升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610196393.7A CN105867974A (zh) 2016-03-31 2016-03-31 一种cs架构应用程序的离线升级方法

Publications (1)

Publication Number Publication Date
CN105867974A true CN105867974A (zh) 2016-08-17

Family

ID=56627324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610196393.7A Pending CN105867974A (zh) 2016-03-31 2016-03-31 一种cs架构应用程序的离线升级方法

Country Status (1)

Country Link
CN (1) CN105867974A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648802A (zh) * 2016-12-30 2017-05-10 上海浦东软件园汇智软件发展有限公司 一种组件更新的方法及设备
CN110362322A (zh) * 2018-04-11 2019-10-22 宏碁股份有限公司 电子装置与其离线更新程序的方法
TWI712956B (zh) * 2016-03-15 2020-12-11 開曼群島商創新先進技術有限公司 行動終端應用程式的更新方法和裝置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103812946A (zh) * 2014-02-27 2014-05-21 东莞旨尖动漫科技有限公司 一种ar应用程序在线云更新的方法和系统
CN103823700A (zh) * 2014-02-28 2014-05-28 北京数码大方科技股份有限公司 客户端的应用软件升级方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103812946A (zh) * 2014-02-27 2014-05-21 东莞旨尖动漫科技有限公司 一种ar应用程序在线云更新的方法和系统
CN103823700A (zh) * 2014-02-28 2014-05-28 北京数码大方科技股份有限公司 客户端的应用软件升级方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI712956B (zh) * 2016-03-15 2020-12-11 開曼群島商創新先進技術有限公司 行動終端應用程式的更新方法和裝置
CN106648802A (zh) * 2016-12-30 2017-05-10 上海浦东软件园汇智软件发展有限公司 一种组件更新的方法及设备
CN110362322A (zh) * 2018-04-11 2019-10-22 宏碁股份有限公司 电子装置与其离线更新程序的方法
CN110362322B (zh) * 2018-04-11 2023-08-01 宏碁股份有限公司 电子装置与其离线更新程序的方法

Similar Documents

Publication Publication Date Title
CN107689953B (zh) 一种面向多租户云计算的容器安全监控方法及系统
CN104199666B (zh) 一种应用程序动态配置方法及装置
US9690562B2 (en) Detecting computing processes requiring reinitialization after a software package update
US20170277556A1 (en) Distribution system, computer, and arrangement method for virtual machine
US10684966B1 (en) Orchestrating dataflows with inferred data store interactions
WO2017143844A1 (zh) 数据操作方法和数据管理服务器
US9003389B2 (en) Generating an encoded package profile based on executing host processes
US20090193439A1 (en) Managing component programs within a service application
US20150095283A1 (en) Master schema shared across multiple tenants with dynamic update
US10891164B2 (en) Resource setting control device, resource setting control system, resource setting control method, and computer-readable recording medium
US10581823B2 (en) Web client plugin manager in vCenter managed object browser
CN108829425B (zh) 一种针对国产操作系统上的应用软件在线升级管控方法
CN103310460A (zh) 图像特征提取的方法及系统
CN105868389A (zh) 一种基于mongoDB的数据沙盒实现方法及系统
CN105867974A (zh) 一种cs架构应用程序的离线升级方法
CN112966004A (zh) 数据查询方法、装置、电子设备以及计算机可读介质
US10693962B1 (en) Language and mechanism for modeling and exporting storage platform topologies, attributes, and behaviors
US7752225B2 (en) Replication and mapping mechanism for recreating memory durations
CN102497410B (zh) 一种云计算系统计算资源动态分区的方法
US11182144B2 (en) Preventing database package updates to fail customer requests and cause data corruptions
US20060031194A1 (en) Decision support implementation for workflow applications
US9262151B2 (en) Methods and systems for automatic configuration of algorithms in a system based on self aware algorithms
CN109995571B (zh) 服务器配置与vnf应用匹配的方法及装置
CN113110920B (zh) 区块链系统的运行方法、装置、设备和存储介质
KR102156656B1 (ko) 가상머신 스택 생성 시스템 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160817

RJ01 Rejection of invention patent application after publication