10496twf.doc/006 玖、發明說明: 發明所屬之技術領域 本發明是有關於一種軟體升級控制系統,且較特別的 是,有關於一種同級(peer-to-peer)軟體升級控制系統。 先前技術 像是作業系統或操作平台的軟體程式必須持續升級以 符合應用程式需求。爲提供更強大的功能或支援更複雜的 應用程式,新版的軟體程式被持續創造出來,以升級舊版 程式。在習知的技藝中,軟體程式的升級可以在一種客戶 -伺服器(cHent-serveO架構下完成,其中系統伺服器經由 像是檔案傳送協定的方式下載新版的軟體程式給客戶。然 而,對於半導體製造廠或大型的公司而言,可能使用數百 或甚至數千的客戶端電腦,系統伺服器必須執行與客戶端 電腦相同個數的次數的下載動作,以完成所有的升級。因 爲繁重的伺服器負載以及頻繁的伺服器升級,所以習知的 升級結構在經濟上並不具效率,而且不再被接受。另外, 在習知的升級結構中,可能會發生錯誤升級或版本混淆的 問題,因此會使系統效能惡化。 發明內容 因此,本發明的目的是提供一種可以避免因爲在習知 技藝中的限制和缺點所引起的一個或多個問題的系統。 爲達成上述和其他優點,並且符合廣泛說明的本發明 的目的,本發明提供一種系統伺服器和包括複數個使用者 終端機的一個子網路(sub-network)的軟體升級控制方法。 10496twf. doc/006 該方法包括下列步驟:提供更新軟體版本給系統伺服器; 選擇使用者終端機的其中之一;要求系統伺服器提供一個 在所選定的使用者終端機中所缺的更新軟體版本的列表 (list);決定未選定的使用者終端機是否包含任何所缺的更 新軟體版本:接收包含在未選定的使用者終端機中的所缺 的更新軟體版本;接收未包含在未選定的使用者終端機中 的所缺的更新軟體版本;以及以所接收到的所缺的更新軟 體版本,升級所選定的使用者終端機。 根據本發明的一方面,該方法更加包括下列步驟:在 子網路中傳播一個查詢(inquiry),以決定該些未選定的使 用者終端機是否包括任何所缺的更新軟體版本。 根據本發明的另一方面,方法更加包括下列步驟:在 要求系統伺服器提供一個在所選定的使用者終端機中所缺 的更新軟體版本的列表之後,在系統伺服器上註冊 (registering)。 本發明提供的軟體升級控制系統包括一個系統伺服 器、複數個系統伺服器提供的更新軟體版本、一個包括在 其中選定一個使用者終端機的複數個使用者終端機的子網 路、所選定的使用者終端機提供的一個第一客戶-伺服器 結構和一個第二客戶-伺服器結構、一個第一客戶-伺服器 結構提供的客戶,用來要求系統伺服器提供一個在所選定 的使用者終端機中所缺的更新軟體版本的列表、一個第一 客戶-伺服器結構提供的第一伺服器,用來接收由未選定 的使用者終端機所傳播的一個查詢;一個第二客戶-伺服 10496twf.doc/006 器結構提供的第二伺服器,響應所傳播的該查詢,將更新 軟體版本的其中之一’傳送給未選定的使用者終端機的其 中之一;一個第二客戶-伺服器結構提供的第一客戶,用 來要求未選定的使用者終端機提供所缺的更新軟體版本的 其中之一;以及一個第二客戶-伺服器結構提供的第二客 戶,用來要求系統伺服器提供所缺的更新軟體版本的其中 之一。 根據本發明的一方面,該系統更加包括一個選定的使 用者終端機提供的代理程序(agent),用來要求所缺的更新 軟體版本的列表。 本發明所提供的軟體升級控制系統包括一個提供更新 軟體版本的系統伺服器;組成一個子網路的複數個使用者 終端機:在每個使用者終端機中成形的一個第一客戶-伺 服器結構,用來要求系統伺服器提供一個在使用者終端機 中所缺的更新軟體版本的列表,在子網路中傳播一個查 詢,藉以決定是否有任何其他使用者終端機具有任何在使 用者終端機中所缺的更新軟體版本,並且接收由任何其他 使用者終端機所傳播的查詢;在每個使用者終端機中成形 的一個第二客戶-伺服器結構,用來響應由任何一個其他 使用者終端機所傳播的查詢,將一個更新軟體版本傳送給 其他使用者終端機的其中之一,如果由使用者終端機所傳 播的查詢結果顯示其他使用者終端機的其中之一具有所缺 的更新軟體版本,則從其他使用者終端機的其中之一接收 一個所缺的更新軟體版本,而如果查詢結果顯示沒有其他 10496twf.doc/006 使用者終端機具有所缺的更新軟體版本,則從系統伺服器 接收一個所缺的更新軟體版本;以及在每個使用者終端機 中所成形的一個代理程序,用來在第一和第二客戶-伺服 器結構之間傳遞資料。 以下將說明本發明的其他目的和優點,其中部分內容 經由說明相當容易瞭解,或是可以經由練習而學習。本發 明的目的和優點可以經由元件裝置和其組合,特別是在後 附之申請專利範圍所界定者而閬述淸楚。 任何熟習此技藝者當知上述的一般說明和接下來的詳 細說明都是爲了說明本發明的範例,本發明的範疇並不以 此爲限。 爲讓本發明之上述和其他目的、特徵、和優點能明顯 易懂,下文特舉一較佳實施例,並配合所附圖式’作詳細 說明如下。 實施方式: 以下將參考本發明較佳實施例所附圖式,詳細說明本 發明。而且可能的話,在圖式的整個說明中,相同或類似 的零件將以相同的參考號碼代表。 第1圖繪示一個根據本發明一實施例的一個資料控制 系統10的示意圖。請參考第1圖,資料控制系統10包括 一個系統伺服器12、至少一個子網路14、以及其上包括 有與至少一個子網路14通訊的一個系統伺服器12的一個 區域網路(LAN)16。一個代表性的子網路14-1包括一個集 線器(hub)或開關路由器(switch r〇uter)20、以及耦合到開 1220227 10496twf. doc/006 關路由器20用來與系統伺服器12通訊的複數個使用者終 端機18。在本發明的一實施例中,耦合到開關路由器的使 用者終端機會分組形成一個子網路。系統伺服器12提供 像是作業系統的軟體程式,並且包含其升級版本。每一使 用者終端機18可包括一個個人電腦、一個筆記型電腦、 或一個工作站電腦。 第2圖繪示一個根據本發明一實施例的一個資料控制 系統1 〇的結構圖。請參考第2圖,系統伺服器1 2包括一 個第一伺服器12-1和一個第二伺服器12-2。當被一個使 用者終端機18要求時,第一伺服器12-1會提供該些使用 者終端機18的其中之一所缺的更新軟體版本的列表。第 二伺服器12-2將升級版本資訊儲存在一個如硬碟記億體 的儲存體(st〇rage)22中。一個代表性的使用者終端機18-1 包括一個第一客戶-伺服器結構24、一個第二客戶-伺服器 結構26、以及一個代理程序28。第一客戶-伺服器結構24 包括一個伺服器24-1和一個客戶24-2。第二客戶-伺服器 結構26包括一個伺服器26-1、一個第一客戶26-2、和一 個第二客戶26-3。使用者終端機18-1可以更加包括一個 以zipped壓縮形式儲存更新軟體版本的第一儲存體30, 以及一個儲存解壓縮之後的更新軟體版本的第二儲存體 32 〇 在相同的子網路中當成使用者終端機18-1的一個不 同的使用者終端機18-2,一般會具有與使用者終端機18-1 相同的結構。使用者終端機18-2包括一個第一客戶-伺服 10 1220227 10496twf.doc/006 器結構34、一個第二客戶·伺服器結構36、和一個代理程 序38。使用者終端機18-2的第一客戶-伺服器結構34包 括一個伺服器34-1和一個客戶34-2。使用者終端機184 的第一客戶·伺服器結構36包括一*個伺服器3 6-1、一個第 一客戶36-2'和一個第二客戶36-3。使用者終端機18_2 可更加包括一個弟一儲存體40和一個第—儲存體42。在 本發明的一實施例中,第一客戶-伺服器結構24和34與 •系統伺服器12的第一伺服器12-1,以一種版本間協定 (interversion protocol,IVP)互相通訊。IVP 包括一種用來 分析如網路通訊中的查詢的所接收訊息的格式。其他可支 援此功能的協定,也可以使用在本發明中以取代IVP。第 二客戶26-3和36-3與系統伺服器12的第二伺服器12-2, 以一種檔案傳輸協定(file transfer protocol,FTP)互相通 訊。FTP是在終端機之間支援檔案傳送的一種典型協定。 伺服器26-1和36-1、與第一客戶26-2和36-2,以一種FTP 的子協定的檔案傳輸輔助協定(file transfer assistant protocol,FTAP)互相通訊。 安裝在使用者終端機18-1中的一個主程式,如代理 程序28,會提供一個服務以啓動和讀取配置文件 (configuration file),並且讀取目前安裝在使用者終端機 18-1中的軟體版本。接下來透過客戶24-2,代理程序28 會要求第一伺服器12-1提供一個更新軟體版本列表,例 如像是使用者終端機18-1中所缺的作業系統的升級版本。 如果該要求顯示沒有缺少升級版本,則代理程序28會透 11 1220227 10496twf.doc/006 過要求更新軟體版本列表的客戶24-2,向第一伺服器12-1 註冊。如果該要求顯示至少缺少一個更新軟體版本,則第 一伺服器12-1接下來會以如下列格式的方式送出一個所 缺的更新軟體版本的列表。__ P2P_____ 1=(458068) 0.0.1.1; (272278) 0.0.1.2;__ 2 = (301257) 0.0.0.8; (445876) 0.0.0.9;__ 其中P2P代表一個同級(peer-to-peer)資料傳輸,也就 是以下將詳細說明的存在於與要求的使用者終端機不同的 使用者終端機中的更新軟體版本。 使用者終端機18·1的代理程序28接下來會分析由第 一伺服益12 - 2所送出以第1表所不的形式表示的列表。 第1表 號碼 軟體名稱 SysA SysA SysB SysB 版本 0.0.1.1 0.0.1.2 0.0.0.8 0.0.0.9 檔案名稱 SysA-0.0.1.1.zip SysA-0.0.1.2.zip SysB-0.0.0·8.zip SysB-0.0.0.9.zip 大小(位元 組) 458068 272278 301257 445876 下載方法 FTP P2P FTP P2P 遠方伺服 器位址 根據第1表,使用者終端機18-1缺少四個更新軟體 12 1220227 10496twf.doc/006 版本,包括 SysA-0.0.1.1、SysA-0.0.1.2、SysB-0.0.0.8、 和SysB-0.0.0.9。第1表同時顯示在這四個更新軟體版本 中,因爲可能存在於其他使用者終端機中’所以建議使用 P2P 下載 SysA-0.0.1.2.zip 和 SysB-0.0.0.9.zip 檔案。其他 兩個檔案 SysA-O.O.l.l.zip 和 SysB-0.0.0.8.zip 則建議使用 系統預設的FTP下載。在這個特定的實施例中,SysA-0.0.1.2.zip 和 SysB-0.0.0.9.zip 檔案分別是 SysA-O.O.l.l.zip 和SysB-0.0.0.8.zip檔案的升級版本。 使用者終端機18-1接下來處理FTP下載。使用者終 端機18-1的第二客戶-伺服器結構26中的第二客戶26-3, 會從第二伺服器12-2接收以FTP下載的SysA-0.0.1.l.zip 和 SysB-0.0.0.8.Z1p 檔案。爲判定所下載的 SysA-O.O.l.l.zip 和SysB-0.0.0.8.Z1p壓縮檔案(zipped files)是否正確,接下 來會執行檔案大小檢查和循環冗餘碼(cyclic redundancy check,CRC)檢查。 一旦所有FTP下載動作完成之後,使用者終端機18-1 會透過客戶24-2,將一個查詢傳播到包括使用者終端機 18-1的子網路上,以查詢子網路中有那一個使用者終端機 具有下載檔案 SysA-0.0.1.2.zip 和 SysB-0.0.0.9.zip 的至少 其中之一。這個查詢會被在相同子網路中的其他使用者終 端機的第一客戶-伺服器結構中的伺服器所接收。假設使 用者終端機18_2具有檔案SysA-0.0.1.2.Z1p,則伺服器34· 1會接收該查詢,並且將其網際協定(internet protocol,IP) 位址回應給使用者終端機18-1。提供檔案SysA_0.0.1.2.zip 13 10496twf.doc/006 的其他使用者終端機的第一客戶-伺服器結構的其他伺服 器,則會將其位址提供給使用者終端機18-1。結果造成在 傳播該查詢之後,客戶24-2會提供一個如下所述的參考 列表給代理程序28,表示在下列位址有檔案SysA- 0.0.1·2·ζίρ 存在。__ 172.16.239.203; 172.16.239.237; 172.16.239.5;_ 響應該參考列表,舉例來說代理程序28會使用第一 位址 172.16.239.203,當成用來下載 SysA‘0.0.1.2.zip 檔案 的遠方伺服器位址。同樣地,響應該參考列表,舉例來說 使用者終端機18-1會使用像是172.16.239.5的至少一個位 址下載 SysB-0.0.0.9.zip 檔案。這兩個位址 172.16.239.203 和172.16.239.5接下來會被塡入第1表的遠方伺服器位址 欄位,以形成第2表。 第2表 號碼 軟體名稱 SysA SysA SysB SysB 版本 0.0.1.1 0.0.1.2 0.0.0.8 0.0.0.9 檔案名稱 SysA-0.0.1.1.zip SysA-0.0.1.2.zip SysB-0.0.0.8.zip SysB· 0.0.0.9.zip 大小(位元 組) 458068 272278 301257 445876 下載方法 FTP P2P FTP P2P 遠方伺服 器位址 172.16. 239.203 172.16. 239.5 1220227 10496twf. doc/006 接下來,使用者終端機18-1的第二客戶-伺服器結構 26中的第一客戶26-2,會接收從位址在1 72.16.239.203和 172.16.239.5的伺服器所分別下載的檔案SysA-0.0.1.2·Ζ1ρ 和SysB-0.0.0.9.zip。在本發明的一實施例中,會對所下載 的壓縮檔案 SysA-0.0.1.2.zip 和 SysB-0.0.0.9.zip 執行檔案 大小檢查和循環冗餘碼(CRC)檢查,以判定檔案是否正確。 如果P2P下載失敗,則接下來會使用FTP下載,以從系統 伺服器中獲得一個目標檔案。如果在P2P下載過程中發現 錯誤,則第二客戶-伺服器結構26 會返回(roll back),並 且在一個預定的時間週期,例如1〇分鐘之後,自動啓動P2P 下載。 一旦所有P2P下載完成之後,第二客戶-伺服器結構26 會藉由升級目前安裝在使用者終端機18-1中的軟體版本 列表,升級先前的註冊’以使得當伺服器24-1接收在相 同的子網路中的其他使用者終端機所傳播的查詢之後,伺 服器26-1可以下載一個特定的更新軟體版本給其他使用 者終端機。 接下來,代理程序28會經由客戶24-2,向第一伺服 器12-1註冊版本升級。在本發明的一實施例中,接下來 第一伺服器12-1會將一個有關於時間間隔(time interval) 例如像是一小時的資訊’傳送給代理程序28,以執行版本 升級動作。當時間間隔達到時,代理程序28會再次啓動 處理動作。 第3圖繪示一個流程圖,用來說明根據本發明一實施 15 1220227 10496twf. doc/006 例的一個資料控制方法的步驟。請參考第3圖,該方法包 括下列步驟:首先在步驟51中,提供一個系統伺服器和 一個包括複數個使用者終端機的子網路。接下來在步驟53 中,提供更新軟體版本給系統伺服器,其中該些更新軟體 版本接下來會安裝在該些使用者終端機中,以便利網路通 訊。在步驟55中,當軟體版本升級的一預定時間間隔達 到時,選擇該些使用者終端機的其中之一。接下來在步驟 5 7中,所選定的使用者終端機會向系統伺服器要求一個在 所選定的使用者終端機中所缺的更新軟體版本的列表。 接下來在步驟59中,決定所選定的使用者終端機是 否需要升級軟體。換句話說,如果在步驟57中的要求顯 示並未缺少更新軟體版本,則在步驟61中,所選定的使 用者終端機會在要求提供所缺的軟體版本的系統伺服器中 註冊。如果要求顯示缺少至少一個更新軟體版本,則該方 法前進到步驟63,決定在步驟55中未選定的剩下的使用 者終端機是否包含任何所缺的更新軟體版本。如果沒有任 何未選定的使用者終端機包含所缺的更新軟體版本,則在 步驟65中,所選定的使用者終端機會從系統伺服器接收 所缺的更新軟體版本。如果任何未選定的使用者終端機包 含所缺的更新軟體版本,則接下來在步驟67中,所選定 的使用者終端機會從未選定的使用者終端機的其中之一, 接收所缺的更新軟體版本。 接下來在步驟69中,所選定的使用者終端機會以所 接收到的所缺的更新軟體版本升級,並且會升級目前安裝 16 1220227 10496twf.doc/006 在其中的軟體版本的列表。接下來在步驟61中,所選定 的使用者終端機會在要求提供所缺的軟體版本的系統伺服 器中註冊。 雖然本發明已以一較佳實施例揭露如上,然其並非用 以限定本發明’任何熟習此技藝者,在不脫離本發明之精 神與範圍內,當可作些許之更動與潤飾,因此本發明之保 護範圍當視後附之申請專利範圍所界定者爲準。 圖式簡單說明 第1圖繪示一個根據本發明一實施例的—個軟體升級 籲 控制系統的示意圖。 第2圖繪示一個根據本發明一實施例的一個軟體升級 控制系統的結構圖。 第3圖繪示一個流程圖,用來說明根據本發明一實施 例的一個軟體升級控制方法的步驟。 圖忒標記說明: 12 :系統伺服器 12-1 :第一伺服器 12-2 :第二伺服器 # 14,14-1 :子網路 16 :區域網路 18,18-1,18-2 :使用者終端機 20 :集線器或開關路由器 22 :儲存體 24 :第一客戶-伺服器結構 17 1220227 10496twf.doc/006 24-1 :伺服器 24-2 :客戶 26 :第二客戶-伺服器結構 26-1 :伺服器 26-2 :第一客戶 26-3 :第二客戶 28 :代理程序 30 :第一儲存體 32 :第二儲存體 34 :第一客戶-伺服器結構 34-1 :伺服器 34-2 :客戶 36 :第二客戶-伺服器結構 3 6-1 :伺服器 36-2 :第一客戶 36-3 :第二客戶 38 :代理程序 40 :第一儲存體 42 :第二儲存體 51〜69 :軟體升級控制方法的步驟 1810496twf.doc / 006 (1) Description of the invention: The technical field to which the invention belongs The present invention relates to a software upgrade control system, and more particularly, it relates to a peer-to-peer software upgrade control system. Prior art Software programs, such as operating systems or operating platforms, must be continuously upgraded to meet application requirements. In order to provide more powerful functions or support more complex applications, new versions of software programs are continuously created to upgrade the older versions. In the conventional art, the software program upgrade can be completed under a client-server (cHent-serveO) architecture, in which the system server downloads a new version of the software program to the customer via a method such as a file transfer protocol. For manufacturers or large companies, it is possible to use hundreds or even thousands of client computers, and the system server must perform the same number of downloads as the client computers to complete all the upgrades. Because of the heavy server Server load and frequent server upgrades, the conventional upgrade structure is not economically efficient and is no longer accepted. In addition, in the conventional upgrade structure, incorrect upgrades or version confusion issues may occur, so Deteriorating system performance. SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide a system that can avoid one or more problems caused by limitations and disadvantages in the conventional art. To achieve the above and other advantages, and to meet a wide range of advantages The object of the present invention is described. The present invention provides a system server and a computer A software upgrade control method for a sub-network of each user terminal. 10496twf.doc / 006 The method includes the following steps: providing the updated software version to the system server; selecting one of the user terminals ; Ask the system server to provide a list of update software versions missing in the selected user terminal; determine whether the unselected user terminal contains any missing update software versions: receive Missing update software versions in the selected user terminal; receiving missing update software versions not included in the unselected user terminal; and upgrading the received update software version with the missing update software version Selected user terminals. According to an aspect of the present invention, the method further includes the following steps: an inquiry is transmitted in the subnet to determine whether the unselected user terminals include any missing ones. Update the software version. According to another aspect of the present invention, the method further includes the following steps: after requesting the system server to provide a After the list of update software versions missing in the selected user terminal is registered on the system server, the software upgrade control system provided by the present invention includes a system server and updates provided by a plurality of system servers. Software version, a subnet including a plurality of user terminals selected therein, a first client-server structure and a second client-server provided by the selected user terminal A client provided by a first client-server structure to request the system server to provide a list of updated software versions missing in the selected user terminal, a client provided by a first client-server structure The first server is used to receive a query transmitted by an unselected user terminal; a second client-servo 10496twf.doc / 006 server structure provides a second server that responds to the transmitted query and sends Update one of the software versions' to one of the unselected user terminals; a second client-server The first client provided by the architecture is used to request an unselected user terminal to provide one of the missing updated software versions; and the second client provided by a second client-server architecture is used to request the system server Provide one of the missing updated software versions. According to an aspect of the present invention, the system further includes an agent provided by a selected user terminal for requesting a list of missing software versions. The software upgrade control system provided by the present invention includes a system server providing updated software versions; a plurality of user terminals forming a subnet: a first client-server formed in each user terminal Structure to request the system server to provide a list of updated software versions missing in the user terminal, to propagate a query in the subnet to determine if any other user terminal has any Update software versions missing from the machine, and receive inquiries propagated by any other user terminal; a second client-server structure formed in each user terminal to respond to any other use The query transmitted by the user terminal sends an updated software version to one of the other user terminals. If the query result transmitted by the user terminal shows that one of the other user terminals has the missing Update software version, receive a missing update software from one of the other user terminals Version, and if the query results show that no other 10496twf.doc / 006 user terminal has the missing updated software version, then receive a missing updated software version from the system server; and An agent is formed to pass data between the first and second client-server structures. Other objects and advantages of the present invention will be described below, some of which are fairly easy to understand through the description, or can be learned through practice. The purpose and advantages of the present invention can be stated clearly through the component device and its combination, especially those defined in the scope of the attached patent application. Anyone skilled in the art should know that the above general description and the following detailed description are intended to illustrate the present invention, and the scope of the present invention is not limited thereto. In order to make the above and other objects, features, and advantages of the present invention comprehensible, a preferred embodiment is exemplified below and described in detail with reference to the accompanying drawings. Embodiments: The present invention will be described in detail below with reference to the drawings of the preferred embodiments of the present invention. And if possible, the same or similar parts will be represented by the same reference numbers throughout the description of the drawings. FIG. 1 is a schematic diagram of a data control system 10 according to an embodiment of the present invention. Referring to FIG. 1, the data control system 10 includes a system server 12, at least one sub-network 14, and a local area network (LAN) including a system server 12 communicating with the at least one sub-network 14. ) 16. A representative subnet 14-1 includes a hub or switch router 20, and a complex number coupled to the switch 1220227 10496twf.doc / 006. The router 20 is used to communicate with the system server 12. Individual user terminals 18. In one embodiment of the present invention, user terminal devices coupled to the switch router are grouped to form a subnet. The system server 12 provides a software program such as an operating system, and includes an upgraded version thereof. Each user terminal 18 may include a personal computer, a notebook computer, or a workstation computer. FIG. 2 is a structural diagram of a data control system 10 according to an embodiment of the present invention. Referring to FIG. 2, the system server 12 includes a first server 12-1 and a second server 12-2. When requested by a user terminal 18, the first server 12-1 will provide a list of updated software versions missing from one of the user terminals 18. The second server 12-2 stores the upgraded version information in a storage 22 (such as a hard disk). A representative user terminal 18-1 includes a first client-server structure 24, a second client-server structure 26, and an agent program 28. The first client-server structure 24 includes a server 24-1 and a client 24-2. The second client-server structure 26 includes a server 26-1, a first client 26-2, and a second client 26-3. The user terminal 18-1 may further include a first storage 30 that stores the updated software version in a zipped compressed form, and a second storage 32 that stores the decompressed updated software version. In the same subnet A different user terminal 18-2 serving as the user terminal 18-1 will generally have the same structure as the user terminal 18-1. The user terminal 18-2 includes a first client-server 10 1220227 10496twf.doc / 006 server structure 34, a second client-server server 36, and an agent program 38. The first client-server structure 34 of the user terminal 18-2 includes a server 34-1 and a client 34-2. The first client server structure 36 of the user terminal 184 includes a * server 3 6-1, a first client 36-2 ', and a second client 36-3. The user terminal 18_2 may further include a first storage body 40 and a first storage body 42. In one embodiment of the present invention, the first client-server structures 24 and 34 and the first server 12-1 of the system server 12 communicate with each other using an interversion protocol (IVP). IVP includes a format for analyzing received messages such as queries in network communications. Other protocols that support this function can also be used in the present invention to replace IVP. The second clients 26-3 and 36-3 and the second server 12-2 of the system server 12 communicate with each other through a file transfer protocol (FTP). FTP is a typical protocol that supports file transfers between terminals. The servers 26-1 and 36-1 and the first clients 26-2 and 36-2 communicate with each other through a file transfer assistant protocol (FTAP) of a FTP sub-protocol. A main program installed in the user terminal 18-1, such as the agent program 28, provides a service to start and read the configuration file, and reads the current installation in the user terminal 18-1 Software version. Next through the client 24-2, the agent program 28 will request the first server 12-1 to provide a list of updated software versions, such as an upgraded version of the operating system missing from the user terminal 18-1. If the request shows that there is no missing upgrade version, the agent 28 will register with the first server 12-1 through the customer 24-2 who requested to update the software version list 11-1220227 10496twf.doc / 006. If the request shows that at least one update software version is missing, the first server 12-1 next sends a list of missing update software versions in the following format. __ P2P_____ 1 = (458068) 0.0.1.1; (272278) 0.0.1.2; __ 2 = (301257) 0.0.0.8; (445876) 0.0.0.9; __ where P2P represents a peer-to-peer data transmission That is, the updated software version existing in a user terminal different from the requested user terminal will be described in detail below. Next, the agent program 28 of the user terminal 18 · 1 analyzes the list sent by the first servo server 12-2 in the form shown in the first table. Table 1 Number Software Name SysA SysA SysB SysB Version 0.0.1.1 0.0.1.2 0.0.0.8 0.0.0.9 File Name SysA-0.0.1.1.zip SysA-0.0.1.2.zip SysB-0.0.0 · 8.zip SysB- 0.0.0.9.zip size (bytes) 458068 272278 301257 445876 Download method FTP P2P FTP P2P Remote server address According to table 1, the user terminal 18-1 lacks four updated software 12 1220227 10496twf.doc / 006 Versions, including SysA-0.0.1.1, SysA-0.0.1.2, SysB-0.0.0.8, and SysB-0.0.0.9. Table 1 is displayed in these four updated software versions at the same time, because it may exist in other user terminals ’, it is recommended to use P2P to download the SysA-0.0.1.2.zip and SysB-0.0.0.9.zip files. The other two files, SysA-O.O.l.l.zip and SysB-0.0.0.8.zip, are recommended to use the system preset FTP download. In this particular embodiment, the SysA-0.0.1.2.zip and SysB-0.0.0.9.zip files are upgraded versions of the SysA-O.O.l.l.zip and SysB-0.0.0.8.zip files, respectively. The user terminal 18-1 then processes the FTP download. The second client 26-3 in the second client-server structure 26 of the user terminal 18-1 will receive the SysA-0.0.1.l.zip and SysB downloaded from the second server 12-2 via FTP -0.0.0.8.Z1p file. To determine whether the downloaded SysA-O.O.l.l.zip and SysB-0.0.0.8.Z1p compressed files (zipped files) are correct, a file size check and a cyclic redundancy check (CRC) check are performed next. Once all FTP download actions are completed, the user terminal 18-1 will transmit a query to the subnet including the user terminal 18-1 through the client 24-2 to query which one of the subnets is used. This terminal has at least one of the download files SysA-0.0.1.2.zip and SysB-0.0.0.9.zip. This query will be received by servers in the first client-server structure of other user terminals in the same subnet. Assuming that the user terminal 18_2 has the file SysA-0.0.1.2.Z1p, the server 34.1 will receive the query and respond to its user's terminal 18-1 with its Internet protocol (IP) address. The other clients of the first client-server structure of other user terminals that provided the file SysA_0.0.1.2.zip 13 10496twf.doc / 006 will provide their addresses to the user terminal 18-1. As a result, after the query was disseminated, the client 24-2 would provide a reference list as described below to the agent program 28, indicating that the file SysA- 0.0.1 · 2 · ζίρ exists at the following address. __ 172.16.239.203; 172.16.239.237; 172.16.239.5; _ In response to this reference list, for example, agent 28 will use the first address 172.16.239.203 as a remote server for downloading the SysA'0.0.1.2.zip file Device address. Similarly, in response to the reference list, for example, the user terminal 18-1 will download the SysB-0.0.0.9.zip file using at least one address like 172.16.239.5. These two addresses, 172.16.239.203 and 172.16.239.5, will be entered into the remote server address field of the first table to form the second table. Table 2 Number Software Name SysA SysA SysB SysB Version 0.0.1.1 0.0.1.2 0.0.0.8 0.0.0.9 File Name SysA-0.0.1.1.zip SysA-0.0.1.2.zip SysB-0.0.0.8.zip SysB0.0. 0.9.zip size (bytes) 458068 272278 301257 445876 Download method FTP P2P FTP P2P Remote server address 172.16. 239.203 172.16. 239.5 1220227 10496twf. Doc / 006 Next, the second client of user terminal 18-1 -The first client 26-2 in the server structure 26 will receive the files SysA-0.0.1.2 · Z1ρ and SysB-0.0.0.9 downloaded from the servers at 72.16.239.203 and 172.16.239.5 respectively. zip. In an embodiment of the present invention, a file size check and a cyclic redundancy code (CRC) check are performed on the downloaded compressed files SysA-0.0.1.2.zip and SysB-0.0.0.9.zip to determine whether the files are correct . If P2P download fails, FTP download is used next to get a target file from the system server. If an error is found during the P2P download process, the second client-server structure 26 will roll back and automatically start the P2P download after a predetermined time period, such as 10 minutes. Once all P2P downloads are completed, the second client-server structure 26 will upgrade the previous registrations by upgrading the software version list currently installed in the user terminal 18-1 so that when the server 24-1 receives the After the query propagated by other user terminals in the same subnet, the server 26-1 can download a specific updated software version to the other user terminals. Next, the agent program 28 registers the version upgrade with the first server 12-1 via the client 24-2. In an embodiment of the present invention, the first server 12-1 next sends a piece of information about the time interval (e.g., one hour) to the agent program 28 to perform the version upgrade action. When the time interval is reached, the agent 28 will start processing again. FIG. 3 shows a flowchart for explaining the steps of a data control method according to an embodiment of the present invention. 15 1220227 10496twf.doc / 006. Referring to FIG. 3, the method includes the following steps: First, in step 51, a system server and a subnet including a plurality of user terminals are provided. Next, in step 53, update software versions are provided to the system server, and the updated software versions are then installed in the user terminals to facilitate network communication. In step 55, when a predetermined time interval for the software version upgrade is reached, one of the user terminals is selected. Next, in step 57, the selected user terminal asks the system server for a list of updated software versions that are missing in the selected user terminal. Next, in step 59, it is determined whether the selected user terminal needs to upgrade the software. In other words, if the request in step 57 shows that there is no lack of an updated software version, then in step 61, the selected user terminal is registered in a system server requesting the missing software version. If it is requested to show that at least one update software version is missing, the method proceeds to step 63 to determine whether the remaining user terminals not selected in step 55 contain any missing update software versions. If no unselected user terminal contains the missing updated software version, then in step 65, the selected user terminal receives the missing updated software version from the system server. If any unselected user terminal contains the missing update software version, then in step 67, the selected user terminal receives the missing update from one of the unselected user terminals. Software version. Next, in step 69, the selected user terminal is upgraded with the received missing updated software version, and will upgrade the list of software versions currently installed in 16 1220227 10496twf.doc / 006. Next, in step 61, the selected user terminal is registered in a system server requesting the missing software version. Although the present invention has been disclosed as above with a preferred embodiment, it is not intended to limit the present invention. 'Any person skilled in the art can make some changes and retouch without departing from the spirit and scope of the present invention. The scope of protection of the invention shall be determined by the scope of the attached patent application. Brief Description of the Drawings Figure 1 shows a schematic diagram of a software upgrade control system according to an embodiment of the present invention. FIG. 2 is a structural diagram of a software upgrade control system according to an embodiment of the present invention. FIG. 3 is a flowchart illustrating steps of a software upgrade control method according to an embodiment of the present invention. Figure 忒 Explanation of marks: 12: system server 12-1: first server 12-2: second server # 14, 14-1: subnet 16: local network 18, 18-1, 18-2 : User terminal 20: Hub or switch router 22: Storage body 24: First client-server structure 17 1220227 10496twf.doc / 006 24-1: Server 24-2: Client 26: Second client-server Structure 26-1: server 26-2: first client 26-3: second client 28: agent 30: first storage 32: second storage 34: first client-server structure 34-1: Server 34-2: client 36: second client-server structure 3 6-1: server 36-2: first client 36-3: second client 38: agent 40: first storage 42: first Second storage body 51 ~ 69: Step 18 of software upgrade control method