專利名稱:網絡服務器編程環境升級方法、相關系統和軟件產品的制作方法
技術領域:
本發明涉及使用服務器的網絡;更具體地,本發明涉及用來更新這些服務器的編程環境的功能,或者換言之,涉及目前用“軟件升級”表示的功能。尤其,依據本發明的該方法是在特別注意管理事務處理(transactions)的并且保持某狀態的服務器的潛在應用下開發的,其中該狀態的喪失會造成永久或暫時的故障。
背景技術:
在必須保證不中斷地或者以最少數量的中斷完成某服務的情況中,服務器軟件升級是特別難以處理的,因為可能造成服務的失效。
鑒于此并且為了確保一定的容錯度,常用的解決辦法是更換服務器。在進行升級操作時,暫時地使得不能達到該操作中所涉及的服務器或服務器組(典型地通過消除可以定位這些服務器的數據庫,例如借助域名服務器(DNS)機制)并且把負載傳送到保持現用的服務器上。
這種解決辦法的主要缺點如下-判定何時可以使某個服務器無效并不總是容易的實際中必須確保不存在正在進行的事務處理,并且必須確保在任何充當客戶的部件中服務器列出的本地拷貝不含有對所涉及的服務器的引用;-另一個和該缺點直接相關的問題是,管理操作總是相當慢的,尤其在緊急情況下(例如當必須處理潛在的安全問題時),唯一的可能是暫時中斷服務。
-另外,如果該進程保持的狀態的持續時間超過某事務處理的持續時間并且(常常是這樣)不容易識別它的有效壽命的結束,可能丟失該狀態,從而造成暫時性的故障,以及-最后,如果(如大多數情況中發生那樣)難以預測通信量趨勢并且在升級操作期間出現通信量峰值,則保持現用的服務器可能在處理它們的工作負荷時遇到困難防止該問題的唯一方法是在足以應付正常環境的機器之外至少再部署一臺機器,這需要增加在別的情況下完全不必要的系統冗余。
發明內容
從而本發明的目的是提供一種能克服上面概括的問題的解決辦法。
依據本發明,通過一種具有在權利要求書中詳細列出的特征的方法達到該目的。本發明還涉及一種關聯系統,或者換言之該系統配置成基于上述方法操作,而且還涉及一種相關的軟件產品或者代碼,當在計算機上裝入并運行它時能把該計算機配置成其可基于上述方法操作。
本質上,該依據本發明的解決辦法涉及“熱”(hot)”服務器進程替代(process replacement),其按使得將被替代的進程在一確定的時間階段內和它的替代進程共存的方式進行。該操作的持續時間是由該替代進程決定的,從而確保在最后一個事務處理結束后該操作總會發生。可以把任何壽命更長的狀態信息從一個進程傳送到另一個進程,例如借助套接字(socket)或者其它雙向進程間通信機制。
下面的僅用作為例子的、不構成限制的說明將參照各附圖,附圖中圖1是一個功能方塊圖,示出依據本發明操作的服務器的常規操作,圖2是一個采用和圖1相同的形式的功能方塊圖,其示出如何進行圖1中描述的服務器升級操作,以及圖3是一個流程圖,示出如何進行圖2中描述的操作。
具體實施例方式
圖1示意示出服務器S的總配置。該服務器例如可以是一個電信網中使用的實現SIP(會話發起協議)代理功能的服務器。
例如,它可以是位于加州Polo Alto的太陽微系統公司(SunMicrosystems)制造的采用SolarisTM操作系統的企業服務器。
服務器S能完成處理操作,例如整體上用1標記的處理操作。
操作1包括-較低層(或級-以下這二個術語是等同的)2,其和網絡直接接口以確保分組接收/傳輸,以及-較高層3,其處理分組,接收它們并把它們傳到較低層。
層2和層3如用箭頭表示那樣按通常的雙向通信方式接口。
由于意識到所有上述各點與本領域技術人員完全應熟悉的配置和應用準則相對應,故不必在本文中對它們提供詳細說明。
在更新服務器的編程環境中(或換言之在所謂的軟件升級操作中),現行的用1標識的配置必須用一個整體上用1′標記的并且類似地組織成較低層2′和較高層3′的更新配置替代,在更新或升級操作結束時較低層2′和高層3′會替代對應的層2和層3。
依據本發明的方法的意圖是確保用更新版本1′代替或替代現行進程1的操作對于網絡是完全透明的,換言之是按以下方式發生的,即與服務器S交互的客戶機實際上不能檢測出已經開始該升級操作并且所述操作正在進行中。
在保證正常管理正在進行的各事務處理,甚至在該進程保持的狀態的持續時間超過事務處理的持續時間的情況中(這常常造成不能容易地識別有效壽命的結束),并且避免未預見的通信量峰值之后會造成任何困難的前提下,實現這一切。
該更新操作首先面對的是,對應于更新或升級1′的進程與現行的進程1連接,必須用整體上由4標記的自身驗證的套接字或其它IPC機制替代該進程1。
當然,該要被替代的現行進程1還檢查是否由同一個機器S進行該升級操作。
要被替代的現行進程1釋放它的各個端口(較低層2)。這些端口立刻由升級進程1′的對應層2′捕獲,層2′配置成可以選擇性轉向它接收到的分組流,以便作為通過信道4把該流轉發到現行進程1的較高層3的準備。
接著由升級進程1 ′的較低層2′獨占地接收從網絡到達的分組。
在任何情況中,還把這些分組傳送到進程1的正被在替換的較高層3。從而使較高層3進入好像一個濾波器那樣工作的狀態如果這些報文涉及新的事務處理(或換言之升級操作開始后啟動的事務處理),則把它們直接地、不再處理地傳送到升級進程1′的相應較高層3′。相反,如果這些報文涉及已經在要替換的進程1的較高層3進行的事務處理,則它們繼續由所述較高層3處理。
同時,二個進程1和1′可以交換和事務處理無關的狀態信息。
當被替代的進程1的較高層3判定它管理的所有事務都已結束時,產生一個指示已完成升級操作的信號。在信道4發送的該信號確保升級進程1′的較低層2′不再向已升級的進程1的較高層3發送任何類型的分組或報文。關掉通信信道4,并且從而這一刻升級進程1′在各個方面都替代了進程1,而且使進程1無效。
在圖3中示出的流程圖中更詳細地示出上面說明的完成升級操作中所采用的各個步驟。
在該流程圖中,參考數字100代表該升級操作中的第一步驟,其對應于打開連接4。
參考數字102表示現行進程1檢查是否在同一機器上進行升級的步驟。
當該檢查的輸出是負的(輸出F),則不向下進行該升級操作并且在步驟104中斷。
當該在步驟102進行的檢查的輸出是肯定的(輸出V)時,在步驟106中系統的各端口(或者實際中和網絡的接口)從現行進程1的低層2轉移到升級進程1′的低層2′,并且接著在步驟108中進行狀態信息的轉送。
從此刻向前,建立其中和已經在進行的事務處理有關的報文繼續由現行過程1處理而和新的事務處理有關的報文由升級進程1′處理的操作環境。
具體地,參考數字110表示其中讀新取報文的步驟,而參考數字112表示其中進行檢查以判定剛讀出的分組和已知的還是和新的事務處理有關的步驟。
當報文涉及新事務(步驟112輸出F)時,把該分組標識為“新”事務處理并且從而在步驟114由升級進程1′處理。
在已讀出的報文被識別成和已知的事務處理對應(步驟112輸出V)時,在步驟116中由現行進程1處理該報文。
從步驟114和116開始該升級操作繼續并匯合到下一個用118標記的步驟,在步驟118中判定要被替代的進程即現行進程1中的各事處理是否被認為結束。
如果還存在尚未結束的事務處理(步驟118輸出F)時,在要讀取一個新分組的條件下,系統操作再次返回到步驟110的上游。
相反,如果已結束必須由要被替代的進程1處理的各個事務處理(步驟118輸出V),系統轉到用120標記的最后步驟,在步驟120中關閉通信信道4,從而完成該升級操作。
自然地并且不損害本發明的基本原理,在不超出本發明的范圍下,可以相對于本文中提供的說明及描述廣泛地改變其實現細節和形式。
例如,對于上面參照圖1和3說明的總的方法,只作為例子的并且在任何方面不構成限制的可能的改變包括-用信道4標識的通信機制不是套接字其實質在于,概括地說該信道允許雙向通信而且它也能肯定地確定何處要進行另一個進程。
-用較低層2′替換或替代較低層2的初始機構,除了應用于各端口或作為替代應用于各端口,還應用到其它排他地用于輸入/輸出功能的專用資源上。
本質上,依據本發明的方法應用于其中必須使服務中斷時間為最短(虛零(virtually nil)),并且不能識別其中要處理的通信量合理地低的期間的所有情形。
權利要求
1.一種用于對執行至少一個進程(1)的網絡服務器(S)的編程環境進行升級的方法,所述進程(1)包括一個和網絡分組接口的較低層或級(2)以及一個用于處理所述分組的較高層或級(3),該方法的特征在于包括步驟-提供一個升級進程(1′),該升級進程(1′)包括一個和網絡分組接口的相應的較低層(2′)和一個用于處理所述分組的相應的較高層(3′);所述相應的低較層(2′)和一個把網絡分組從所述相應的較低層(2′)轉向到所述較高層(3)的通信信道(4)關聯,-用所述相應的較低層(2′)替代(106)所述較低層(2),-檢查(112)從所述相應的低層(2′)接收的分組是和已在所述較高層(3)進行的事務處理還是和新的事務處理有關,-在所述較高層(3)處理(114)和已在較高層(3)上進行的事務處理有關的分組,-在所述相應的較高層(3′)上處理(116)和新事務處理有關的分組,-判定(118)是否已經完成已在所述較高層(3)上進行的各事務處理,以及-當已經結束已在所述較高層(3)上進行的所述各事務處理時,關閉(120)所述通信信道(4),以完成對服務器(S)的編程升級。
2.依據權利要求1的方法,其特征在于該方法包括為了進行所述編程升級而檢查(102)是否在單個服務器(S)上進行所述編程升級的步驟。
3.依據權利要求1或2的方法,其特征在于所述用所述相應的較低層(2′)替代所述較低層(2)的步驟包括把所述較低層(2)的各網絡端口轉移到所述相應的較低層(2′)上的步驟。
4.依據上述任一權利要求的方法,其特征在于所述檢查(112)接收到的分組是和已在所述較高層(3)上進行的事務處理還是和新事務處理有關的步驟是在所述較高層(3)進行的,所述較高層(3)配置成通過所述通信信道(4)把和新事務處理有關的分組轉發到所述相應的較高層(3′)。
5.依據上述任一權利要求的方法,其特征在于該方法包括把所述通信信道(4)配置成在要被升級的進程(1)和升級進程(1′)之間交換狀態信息(108)。
6.依據上述任一權利要求的方法,其特征在于該方法包括把所述通信信道(4)配置成套接字的步驟。
7.一種網絡服務器,其被配置成利用權利要求1至6中任一權利要求的方法對編程環境進行升級。
8.依據權利要求7的服務器,其特征在于所述服務器是會話發起協議(SIP)代理。
9.一種可直接裝入計算機存儲器的軟件產品,其包括當在計算機上運行時可實現依據權利要求1至6中任一權利要求的方法的編程代碼部分。
全文摘要
依據本發明的方法能實時地更換服務器(S)的編程環境,該方法是按要被替代的進程(1)和替代進程(1′)在一段時間內共存的方式進行的。由該被替代的進程(1)決定該操作的持續時間,并且能判定何時完成已在該將被替換進程(1)中進行的各事務處理。
文檔編號H04L29/08GK1502190SQ02806955
公開日2004年6月2日 申請日期2002年3月12日 優先權日2001年3月21日
發明者吉安尼·坎奈爾, 阿爾伯托·庫達, 吉安尼 坎奈爾, 托 庫達 申請人:意大利電信股份公司