<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    rochoc

    關(guān)于java、cobol、zos

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      6 Posts :: 1 Stories :: 21 Comments :: 0 Trackbacks

    摘要:前段時(shí)間做了一個(gè)工具發(fā)布給公司的各部門使用后反饋了不少BUG,每次修改后均需要發(fā)郵件通知各用戶替換最新版本,很不方便,因此后來(lái)就寫了一個(gè)自動(dòng)升級(jí)的功能,這樣每次發(fā)布新的版本時(shí)只需要將其部署到自動(dòng)升級(jí)服務(wù)器上,工具使用用戶運(yùn)行工具時(shí)就會(huì)連接到自動(dòng)升級(jí)服務(wù)器,檢查是否有版本更新,如果有則完成更新后再運(yùn)行最新版本,否則就運(yùn)行當(dāng)前工具版本。
         為了使這個(gè)自動(dòng)升級(jí)模塊具有通用性,我將其做成可以單獨(dú)運(yùn)行的程序,而并非集成到工具中,這樣則可以為各類軟件提供自動(dòng)升級(jí)的功能。自動(dòng)升級(jí)模塊采用SOCKET方式實(shí)現(xiàn)升級(jí)客戶端與服務(wù)端的交互,通過(guò)版本控制文件autoupdate.xml來(lái)控制版本的更新,完成自動(dòng)更新后會(huì)將歷史清單history.htm也發(fā)送給客戶端,并自動(dòng)打開(kāi)該文件,使用戶可以對(duì)本次升級(jí)的具體內(nèi)容一目了然。

    詳細(xì)實(shí)現(xiàn):
    autoupdate.xml具體內(nèi)容:

     1<?xml version="1.0" encoding="GBK"?>
     2<Info>
     3  <Version>1.0.3</Version>
     4  <UpdateServer>
     5    <Ip>122.2.14.212</Ip>
     6    <Port>2110</Port>
     7  </UpdateServer>
     8  <Files>     
     9    <File> 
    10      <Name>mftest.jar</Name>  
    11      <Path>.\bin</Path>
    12      <SubVer>1.0.0.3</SubVer> 
    13    </File>
    14    <File> 
    15      <Name>run.bat</Name>  
    16      <Path>.</Path>
    17      <SubVer>1.0.0.3</SubVer> 
    18    </File>
    19    <File> 
    20      <Name>eglreco.fix</Name>  
    21      <Path>.\config\resource</Path>
    22      <SubVer>1.0.0.0</SubVer> 
    23    </File> 
    24    <File> 
    25      <Name>eglrec.fix</Name>  
    26      <Path>.\config\resource</Path>
    27      <SubVer>1.0.0.0</SubVer> 
    28    </File>
    29    <File> 
    30      <Name>dom4j-1.6.1.jar</Name>  
    31      <Path>.\lib</Path>
    32      <SubVer>1.0.0.0</SubVer> 
    33    </File>
    34    <File> 
    35      <Name>jaxen-1.1-beta-4.jar</Name>  
    36      <Path>.\lib</Path>
    37      <SubVer>1.0.0.0</SubVer> 
    38    </File>
    39    <File> 
    40      <Name>jxl.jar</Name>  
    41      <Path>.\lib</Path>
    42      <SubVer>1.0.0.0</SubVer> 
    43    </File>    
    44  </Files> 
    45</Info>
         其中UpdateServer用戶描述服務(wù)端的IP和端口;Version為軟件的大版本號(hào),F(xiàn)iles為軟件涉及到的文件,其中的SubVer為具體文件的版本號(hào),其他就顧名思義了。

    history.htm具體內(nèi)容:
     1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     2<html>
     3<head>
     4<title>XXX軟件更新歷史</title>
     5<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
     6<style type="text/css">
     7    BODY,TABLE {
     8FONT-SIZE: 12px;
     9COLOR: #666666;
    10FONT-FAMILY:  宋體;
    11background-color: #ffffff; 
    12line-height: 160%;}

    13    
    </style>
    14</head>
    15
    16<body>
    17<table width="600" border="1" align="center" cellpadding="2" cellspacing="0">
    18  <tr bgcolor="#ECECEC"> 
    19    <td align="center" width=50>版本</td>
    20    <td align="center" width=470>更新內(nèi)容</td>
    21    <td align="center" width=80>日期</td>
    22  </tr>
    23  <tr> 
    24    <td  align="center" >1.0.3</td>
    25    <td ><p>1.實(shí)現(xiàn)自動(dòng)升級(jí)功能<br>
    26              2.增加版本號(hào)顯示<br>              
    27              3.修正.<br>
    28          </p>
    29      </td>
    30    <td align="center" >2008-12-25</td>
    31  </tr>
    32  <tr> 
    33    <td  align="center" >1.0.2</td>
    34    <td ><p>1.修正了等字符而無(wú)法正確生成的錯(cuò)誤<br>
    35              2.修正了無(wú)法生成的錯(cuò)誤<br>
    36          </p>
    37      </td>
    38    <td align="center" >2008-12-20</td>
    39  </tr>
    40<tr> 
    41    <td  align="center" >1.0.1</td>
    42    <td ><p>1.增加通過(guò)<br>
    43              2.修正因?yàn)?img src="http://www.tkk7.com/Images/dot.gif" alt="" />的錯(cuò)誤<br>
    44          </p>
    45      </td>
    46    <td align="center" >2008-12-15</td>
    47  </tr>
    48<tr> 
    49    <td  align="center" >1.0.0</td>
    50    <td ><p>1.實(shí)現(xiàn)通過(guò).功能<br>
    51         2.實(shí)現(xiàn)通過(guò).功能<br>
    52          </p>
    53      </td>
    54    <td align="center" >2008-12-11</td>
    55  </tr>
    56</table>
    57</body>
    58</html>

    工作原理:
    自動(dòng)升級(jí)客戶端首先會(huì)將本地的autoupdate.xml內(nèi)容發(fā)送給服務(wù)端,服務(wù)端收到客戶端的版本信息后與服務(wù)端本地的版本信息(autoupdate.xml)進(jìn)行比較,首先比較Version,如果一致則通知客戶端無(wú)需更新,如果不一致則檢查Files中各文件的SubVer,服務(wù)端將SubVer不一致的文件發(fā)送給客戶端,對(duì)于服務(wù)端有而客戶端沒(méi)有的文件也需要發(fā)送給客戶端,處理完所有File后,服務(wù)端將本地的history.htm與傳送給客戶端,并通知客戶端更新完畢;客戶端收到更新完畢后的應(yīng)答后自動(dòng)打開(kāi)history.htm,將更新歷史信息顯示給用戶查看。
    posted on 2009-01-02 23:40 rochoc 閱讀(244) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲丁香婷婷综合久久| 亚洲AV成人一区二区三区观看| 亚洲视频在线免费看| 57pao一国产成视频永久免费 | 亚洲人成电影网站免费| 亚洲精品一卡2卡3卡三卡四卡| 性感美女视频免费网站午夜| 亚洲综合一区二区精品久久| 性做久久久久免费看| a级毛片免费全部播放无码| 亚洲第一网站男人都懂| 亚洲成AV人片高潮喷水| 国产成人无码综合亚洲日韩| 一个人免费高清在线观看| 国产免费久久精品99久久| 四虎亚洲精品高清在线观看| 亚洲美日韩Av中文字幕无码久久久妻妇| 久久久久久久久无码精品亚洲日韩| 亚洲免费观看视频| 鲁大师在线影院免费观看| 亚洲人成网站在线观看播放青青| 免费v片在线观看品善网| 69av免费观看| 一区二区视频在线免费观看| 亚洲冬月枫中文字幕在线看| 国外亚洲成AV人片在线观看| 免费看美女被靠到爽| 老汉精品免费AV在线播放| 一个人看的免费视频www在线高清动漫| 亚洲一区二区三区在线观看蜜桃| 久久99亚洲综合精品首页| 久久精品一区二区免费看| 国产成人精品日本亚洲18图| 亚洲国产三级在线观看| 亚洲国产成人久久综合碰| 成人免费视频软件网站| 一区二区三区免费视频播放器| 亚洲黄页网在线观看| 亚洲福利秒拍一区二区| 亚洲国产精品成人精品无码区| 亚洲福利视频一区二区|