rochoc

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

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

          2009年1月9日 #

               摘要: 接CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(二): AUpdSrvProc.java服務(wù)端服務(wù)線程,關(guān)鍵代碼之一:   1/** *//********************************************************************   2 * 項(xiàng)目名稱   &nb...  閱讀全文
          posted @ 2009-01-09 21:20 rochoc 閱讀(2601) | 評(píng)論 (1)編輯 收藏

               摘要: 上次寫(xiě)完(一)實(shí)現(xiàn)總體說(shuō)明后,一直想把源碼放上來(lái),但一直沒(méi)有時(shí)間,今天趁周末把這個(gè)寫(xiě)完整,今天主要是附上實(shí)現(xiàn)源碼,供有需要的朋友參考,當(dāng)然也希望大家多多指教。上篇文章講到了這個(gè)實(shí)現(xiàn)是基于SOCKET實(shí)現(xiàn)的,當(dāng)然通訊協(xié)議是自定義,上一篇也有朋友說(shuō)采用http協(xié)議比較簡(jiǎn)單,當(dāng)然這個(gè)也是一種方法,但要使用http協(xié)議,則服務(wù)端要有http服務(wù)這樣會(huì)導(dǎo)致服務(wù)端過(guò)于龐大。 本實(shí)現(xiàn)包括: 1、AUPD...  閱讀全文
          posted @ 2009-01-09 21:18 rochoc 閱讀(2921) | 評(píng)論 (0)編輯 收藏

               摘要: 接CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(三) : Config.java處理配置文件:   1/** *//********************************************************************   2 * 項(xiàng)目名稱     &nb...  閱讀全文
          posted @ 2009-01-09 21:18 rochoc 閱讀(2043) | 評(píng)論 (2)編輯 收藏

          2009年1月4日 #

               摘要: 前段時(shí)間做了一個(gè)工具發(fā)布給公司的各部門(mén)使用后反饋了不少BUG,每次修改后均需要發(fā)郵件通知各用戶替換最新版本,很不方便,因此后來(lái)就寫(xiě)了一個(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è)自...  閱讀全文
          posted @ 2009-01-04 21:55 rochoc 閱讀(6847) | 評(píng)論 (18)編輯 收藏

          前兩天寫(xiě)了一篇文章,但在BLOGJAVA的首頁(yè)上去看不到,不知道是何原因?有哪位大俠可以指導(dǎo)一下,謝謝!
          posted @ 2009-01-04 21:41 rochoc 閱讀(188) | 評(píng)論 (0)編輯 收藏

          2009年1月2日 #

          摘要:前段時(shí)間做了一個(gè)工具發(fā)布給公司的各部門(mén)使用后反饋了不少BUG,每次修改后均需要發(fā)郵件通知各用戶替換最新版本,很不方便,因此后來(lái)就寫(xiě)了一個(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.aygfsteel.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 @ 2009-01-02 23:40 rochoc 閱讀(248) | 評(píng)論 (0)編輯 收藏

          2008年12月17日 #

          原來(lái)在java-cn申請(qǐng)了一個(gè)blog,一段時(shí)間沒(méi)有上去,沒(méi)有想到現(xiàn)在用戶都被清了,實(shí)在郁悶,我在里面寫(xiě)的一些技術(shù)文檔都丟了;希望blogjava不會(huì)這樣。

          posted @ 2008-12-17 20:54 rochoc 閱讀(285) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 合江县| 高唐县| 榆树市| 万盛区| 和平区| 镇安县| 湖南省| 淮南市| 宜兰市| 伊吾县| 铜陵市| 从化市| 菏泽市| 湟中县| 安远县| 张北县| 荆州市| 德保县| 汉沽区| 扎兰屯市| 陆良县| 达拉特旗| 大同市| 福鼎市| 招远市| 涟源市| 平邑县| 珠海市| 微博| 抚顺县| 东乡县| 庆城县| 上思县| 博爱县| 沙雅县| 遂宁市| 常山县| 边坝县| 临邑县| 常宁市| 大同县|