两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種cs架構(gòu)應(yīng)用程序的離線升級方法

文檔序號:10511963閱讀:602來源:國知局
一種cs架構(gòu)應(yīng)用程序的離線升級方法
【專利摘要】本發(fā)明公開了一種CS架構(gòu)應(yīng)用程序的離線升級方法,屬于程序升級方法,本發(fā)明解決如何實現(xiàn)在無網(wǎng)絡(luò)應(yīng)用場景下CS架構(gòu)應(yīng)用程序的自動升級的問題。技術(shù)方案為:一種CS架構(gòu)應(yīng)用程序的離線升級方法,在客戶端程序的公共組件中設(shè)置資源文件,在資源文件中存儲服務(wù)器端需要升級的程序組件,并為每個需要升級的程序組件增加版本標識;客戶端各程序組件包含兩個版本標識,分別用于標識程序組件自身版本和依賴服務(wù)器端的最低版本;服務(wù)器端包含一個版本標識用于標識當(dāng)前服務(wù)器端的需要升級的程序組件版本;客戶端的公共組件包含一個升級檢測組件,程序組件升級啟動后在開始執(zhí)行處理邏輯之前運行,升級檢測組件用于版本匹配檢查。
【專利說明】
一種CS架構(gòu)應(yīng)用程序的離線升級方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種程序升級方法,具體地說是一種CS架構(gòu)應(yīng)用程序的離線升級方法。
【背景技術(shù)】
[0002]CS架構(gòu),Client/Server架構(gòu),即客戶端/服務(wù)器端架構(gòu)。通過將任務(wù)合理分配到客戶端(Client)和服務(wù)器端(Server),降低了系統(tǒng)的通訊開銷,需要安裝客戶端才可進行管理操作??蛻舳撕头?wù)器端的程序不同,用戶的程序主要在客戶端,服務(wù)器端主要提供數(shù)據(jù)管理、數(shù)據(jù)共享、數(shù)據(jù)及系統(tǒng)維護和并發(fā)控制等,客戶端程序主要完成用戶的具體的業(yè)務(wù)。
[0003]在Internet日新月異發(fā)展的今天,基于TCP/IP的網(wǎng)絡(luò)技術(shù)連接了遍布全球的計算機,應(yīng)用程序的在線升級技術(shù)已經(jīng)非常成熟。但在企業(yè)應(yīng)用過程中,總有一部分計算機因安全要求不能接入Internet,但其更新技術(shù)一直困擾著應(yīng)用廠商,尤其是基于CS架構(gòu)的程序,在升級過程中還需要考慮服務(wù)端的升級,在升級操作過程中有不小麻煩。

【發(fā)明內(nèi)容】

[0004]本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種CS架構(gòu)應(yīng)用程序的離線升級方法,來解決如何實現(xiàn)在無網(wǎng)絡(luò)應(yīng)用場景下CS架構(gòu)應(yīng)用程序的自動升級的問題。
[0005]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種CS架構(gòu)應(yīng)用程序的離線升級方法,包括如下內(nèi)容:
(1)、在客戶端程序的公共組件中設(shè)置資源文件,在資源文件中存儲服務(wù)器端需要升級的程序組件,并為每個需要升級的程序組件增加版本標識;
(2)、客戶端各程序組件包含兩個版本標識,分別用于標識程序組件自身版本和依賴服務(wù)器端的最低版本;
(3)、服務(wù)器端包含一個版本標識用于標識當(dāng)前服務(wù)器端的需要升級的程序組件版本,該版本標識與(I)中的版本標識一致;
(4)、客戶端的公共組件包含一個升級檢測組件,程序組件升級啟動后在開始執(zhí)行處理邏輯之前運行,升級檢測組件用于版本匹配檢查;
程序組件升級后首次運行使用資源文件記錄對服務(wù)器端的程序組件進行升級操作;客戶端的程序組件通過離線方式傳遞。
[0006](2)中,為客戶端的各個程序組件設(shè)計有一個公共接口,該公共接口包含兩個版本標識O
[0007](4)中,升級檢測組件運行流程如下:
①、升級檢測組件首先檢查客戶端的程序組件中依賴最高的服務(wù)器端程序組件的版本標識,與服務(wù)器端的程序組件當(dāng)前版本標識進行比較,如果客戶端的程序組件依賴的最高版本低于服務(wù)器端的程序組件版本,判斷為服務(wù)器端的程序組件與客戶端的程序組件版本相容;如果客戶端的程序組件依賴的最高版本高于服務(wù)器端的程序組件版本,判斷為客戶端的程序組件與服務(wù)器端的程序組件不相容,需要對服務(wù)器端的程序組件進行升級;
②、升級檢測組件再檢查資源文件中最高版本是否大于程序依賴的最高版本,如果資源文件中的版本不大于程序依賴版本,說明客戶端的程序組件相容性檢查失敗,客戶端的程序組件不相容;反之,客戶端的程序組件相容;
③、在客戶端的程序組件相容,但服務(wù)器端的程序組件不相容時,需要對服務(wù)器端的程序組件進行升級,確定需要升級的程序組件為服務(wù)器端當(dāng)前版本標識至當(dāng)前客戶端的程序組件依賴的最高版本。
[0008]本發(fā)明的一種CS架構(gòu)應(yīng)用程序的離線升級方法和現(xiàn)有技術(shù)相比,具有以下有益效果:實現(xiàn)了在無Internet連接應(yīng)用場景程序的按需升級,實現(xiàn)了服務(wù)器與客戶端版本的匹配規(guī)則,能夠自動識別相容性。減少了無Internet應(yīng)用場景下程序升級風(fēng)險,提高了程序升級的成功率。適用于無網(wǎng)絡(luò)連接應(yīng)用場景下的CS架構(gòu)程序升級。
【附圖說明】
[0009]下面結(jié)合附圖對本發(fā)明進一步說明。
[0010]附圖1為一種CS架構(gòu)應(yīng)用程序的離線升級方法的離線升級程序組件的位置示意圖;
附圖2為一種CS架構(gòu)應(yīng)用程序的離線升級方法的客戶端的程序組件升級處理流程圖。
【具體實施方式】
[0011 ]下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明。
[0012]本發(fā)明的一種CS架構(gòu)應(yīng)用程序的離線升級方法,包括如下內(nèi)容:
(1)、在客戶端程序的公共組件中設(shè)置資源文件,在資源文件中存儲服務(wù)器端需要升級的程序組件,并為每個需要升級的程序組件增加版本標識;版本標識的格式如下:
—[VER:6.0.6.8]
declare vCountl int:= O;
begin
select count(l) into vCountl from YHJKBANKPARAMS where YHJKBANKPARAMS—ΒΑΝΚΝ0=’11’andYHJKBANKPARAMS—VERS10NS=’C0MM0N’ and YHJKBANKPARAMS—KEYS=’COLLECT1NBALFLAGi;
if(vCountl <= 0 ) then
insert into YHJKBANKPARAMS(YHJKBANKPARAMS—BANKNO,YHJKBANKPARAMS—VERS1NS,YHJKBANKPARAMS—REMARK,YHJKBANKPARAMS—KEYS,YHJKBANKPARAMS—VALS)values (’ 11’,’COMMON’,’ 歸集余額 ’,’C0LLECT10NBALFLAG’,’ I’);end if;end;
/
—[VER:6.0.6.9]
declare vCountl int:= 0;
beginselect count(l) into vCountl from YHJKBANKPARAMS where YHJKBANKPARAMS_BANKNO=’ 09’ andYHJKBANKPARAMS_VERS1NS=’ ⑶MMON ’ and YHJKBANKPARAMS_KEYS=’FASTPAY,;
if(vCountl <= 0 ) then
insert into YHJKBANKPARAMS(YHJKBANKPARAMS_BANKNO,YHJKBANKPARAMS_VERS1NS,YHJKBANKPARAMS_REMARK,YHJKBANKPARAMS_KEYS,YHJKBANKPARAMS_VALS)
values (’09’,’COMMON’,’快速支付,啟用后同城按異地處理’,’FASTPAY’,’O’); end if; end;
/o
[0013](2)、客戶端各程序組件設(shè)計有一個公共接口,該公共接口包含兩個版本標識,分別用于標識程序組件自身版本和依賴服務(wù)器端的最低版本;公共接口定義的格式如下:
Sreg1n升級相關(guān)
public string ModuleVer = 〃6.0.6.0〃;public string ModuleRefDBVer = "6.0.6.0";
#endreg1n0
[0014](3)、服務(wù)器端包含一個版本標識用于標識當(dāng)前服務(wù)器端的需要升級的程序組件版本,該版本標識與(I)中的版本標識一致;版本標識的格式如下:
YHJKBANKPARAMS_KEYS DBInstanceVer;
YHJKBANKPARAMS_VALS 6.0.6.10;
YHJKBANKPARAMS_REMARK數(shù)據(jù)庫實例版本標識。
[0015](4)、客戶端的公共組件包含一個升級檢測組件,程序組件升級啟動后在開始執(zhí)行處理邏輯之前運行,升級檢測組件用于版本匹配檢查;升級檢測組件運行流程如下:
①、升級檢測組件首先檢查客戶端的程序組件中依賴最高的服務(wù)器端程序組件的版本標識,與服務(wù)器端的程序組件當(dāng)前版本標識進行比較,如果客戶端的程序組件依賴的最高版本低于服務(wù)器端的程序組件版本,判斷為服務(wù)器端的程序組件與客戶端的程序組件版本相容;如果客戶端的程序組件依賴的最高版本高于服務(wù)器端的程序組件版本,判斷為客戶端的程序組件與服務(wù)器端的程序組件不相容,需要對服務(wù)器端的程序組件進行升級;
②、升級檢測組件再檢查資源文件中最高版本是否大于程序依賴的最高版本,如果資源文件中的版本不大于程序依賴版本,說明客戶端的程序組件相容性檢查失敗,客戶端的程序組件不相容;反之,客戶端的程序組件相容;
③、在客戶端的程序組件相容,但服務(wù)器端的程序組件不相容時,需要對服務(wù)器端的程序組件進行升級,確定需要升級的程序組件為服務(wù)器端當(dāng)前版本標識至當(dāng)前客戶端的程序組件依賴的最高版本。
[0016]升級檢測組件的格式如下:
//取得使用數(shù)據(jù)庫實例的版本,該版本不是指DBMS的版本,是指應(yīng)用程序需要使用的版本
dblnstanceVer = DataBase.GetValues(l, "select yhjkbankparams_vals fromyhjkbankparams where yhjkbankparams_bankno='—' and yhjkbankparams_vers1ns=’一’ and yhjkbankparams_keys=’DBInstanceVer’〃);
?reg1n取得程序所依賴的最高數(shù)據(jù)庫版本 DataSet ds_Banks = new DataSetO;
if (!PublicFunct1n.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(fiIePath))
{
System.Reflect1n.Assembly asm = System.Reflect1n.Assembly.Load(item[^DllName,,].ToStringO);
System.Type ClassType = asm.GetType(item[〃ClassName〃].ToStringO);object Bank = (IBank)System.Activator.Createlnstance(ClassType,string.Empty);
string vers1nString;
#reg1n依賴數(shù)據(jù)庫版本
FieldInfo fi = ClassType.GetField(^ModuleRefDBVer^);if (fi != null)
{
vers1nString = f1.GetValue(Bank) as string;
}
else
{
vers1nString = defaultVer;
}
Sendreg1n
int currMax = int.Parse(maxModuleVer.Replace(〃.〃, string.Empty));if (int.Parse(vers1nString.Replace(^.^, string.Empty)) > currMax)
{
maxModuleVer = vers1nString;refMaxDbComponent = item[〃BankName〃].ToString();
}
}
}
Sendreg1n
#reg1n與框架依賴的數(shù)據(jù)庫版本比較。
[0017]if (int.Parse (this.ModuleRefDBVer.Replace(".",string.Empty)) >int.Parse(maxModuleVer.Replace(^.〃, string.Empty)))
{
maxModuleVer = this.ModuleRefDBVer;ref MaxDbComponent = 〃銀企直聯(lián)框架";
}
Sendreg1n
Sreg1n判斷是否需要升級
bool updateDbFlag = false;
if (string.1sNullOrEmpty(dblnstanceVer))
{
updateDbFlag = true;dblnstanceVer = 〃0〃;
}
else
{
if (int.Parse(maxModuleVer.Replace (〃.〃,string.Empty)) > int.Parse(dblnstanceVer.Replace(〃.〃, string.Empty)))
{
updateDbFlag = true;
}
}
if (!updateDbFlag)
{
updatelnfo = 〃不需要進行數(shù)據(jù)庫升級操作〃;
}
mustUpgrad = updateDbFlag;
#endreg1n0
[0018]程序組件升級后首次運行使用資源文件記錄對服務(wù)器端的程序組件進行升級操作;客戶端的程序組件通過離線方式傳遞。
[0019]通過上面【具體實施方式】,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的【具體實施方式】。在公開的實施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實現(xiàn)不同的技術(shù)方案。
[0020]除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
【主權(quán)項】
1.一種CS架構(gòu)應(yīng)用程序的離線升級方法,其特征在于包括如下內(nèi)容: (1)、在客戶端程序的公共組件中設(shè)置資源文件,在資源文件中存儲服務(wù)器端需要升級的程序組件,并為每個需要升級的程序組件增加版本標識; (2)、客戶端各程序組件包含兩個版本標識,分別用于標識程序組件自身版本和依賴服務(wù)器端的最低版本; (3)、服務(wù)器端包含一個版本標識用于標識當(dāng)前服務(wù)器端的需要升級的程序組件版本,該版本標識與(I)中的版本標識一致; (4)、客戶端的公共組件包含一個升級檢測組件,程序組件升級啟動后在開始執(zhí)行處理邏輯之前運行,升級檢測組件用于版本匹配檢查; 程序組件升級后首次運行使用資源文件記錄對服務(wù)器端的程序組件進行升級操作;客戶端的程序組件通過離線方式傳遞。2.根據(jù)權(quán)利要求1所述的一種CS架構(gòu)應(yīng)用程序的離線升級方法,其特征在于(2)中,為客戶端的各個程序組件設(shè)計有一個公共接口,該公共接口包含兩個版本標識。3.根據(jù)權(quán)利要求1所述的一種CS架構(gòu)應(yīng)用程序的離線升級方法,其特征在于(4)中,升級檢測組件運行流程如下: ①、升級檢測組件首先檢查客戶端的程序組件中依賴最高的服務(wù)器端程序組件的版本標識,與服務(wù)器端的程序組件當(dāng)前版本標識進行比較,如果客戶端的程序組件依賴的最高版本低于服務(wù)器端的程序組件版本,判斷為服務(wù)器端的程序組件與客戶端的程序組件版本相容;如果客戶端的程序組件依賴的最高版本高于服務(wù)器端的程序組件版本,判斷為客戶端的程序組件與服務(wù)器端的程序組件不相容,需要對服務(wù)器端的程序組件進行升級; ②、升級檢測組件再檢查資源文件中最高版本是否大于程序依賴的最高版本,如果資源文件中的版本不大于程序依賴版本,說明客戶端的程序組件相容性檢查失敗,客戶端的程序組件不相容;反之,客戶端的程序組件相容; ③、在客戶端的程序組件相容,但服務(wù)器端的程序組件不相容時,需要對服務(wù)器端的程序組件進行升級,確定需要升級的程序組件為服務(wù)器端當(dāng)前版本標識至當(dāng)前客戶端的程序組件依賴的最高版本。
【文檔編號】G06F9/445GK105867974SQ201610196393
【公開日】2016年8月17日
【申請日】2016年3月31日
【發(fā)明人】王士勇, 鐘如玉, 步顯文
【申請人】浪潮通用軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
沿河| 绍兴县| 辽阳市| 凯里市| 故城县| 平江县| 萍乡市| 孟津县| 阳信县| 古田县| 遵化市| 同德县| 修文县| 含山县| 白玉县| 平原县| 佛坪县| 新巴尔虎左旗| 许昌市| 开阳县| 中卫市| 苍溪县| 皋兰县| 长阳| 宝丰县| 崇信县| 内乡县| 博野县| 罗源县| 札达县| 沙湾县| 乐东| 木兰县| 汪清县| 长岭县| 景泰县| 长治县| 通道| 那坡县| 潜江市| 长顺县|