[0130]4、業務規則準入。業務規則準入是指根據軟件提供方提出的業務需求制定的另一套檢驗待入軟件是否具備入庫資格的規則。比如:多個軟件功能類型一致的軟件包入庫前必須要求版本號一致。規則準入的規則具備一定的靈活性,軟件中心采取配置文件配置,支持表達式語言,配置在軟件標識文件中。
[0131]5、軟件依賴準入。當軟件標識文件中配置了軟件依賴且配置了強制檢測依賴時,軟件中心會計算待入軟件的依賴關系,查找該軟件依賴的其他軟件,只有其依賴的軟件都存在于軟件中心時,才允許軟件入庫。注意依賴具有傳遞性,當軟件A依賴于軟件B,軟件B又依賴于軟件C,那么軟件A就依賴于軟件C。軟件A、B、C都特指具備坐標的軟件,不同版本的軟件可能依賴有所不同。依賴關系形成一顆龐大的依賴樹,樹上的每個葉子節點成為待入軟件最深的依賴節點。
[0132]圖3是本發明實施例的軟件注入處理的流程圖,如圖3所示,具體包括如下處理:
[0133]步驟S300、組網,軟件中心設置于獨立服務器,與網管服務器分離部署,用戶終端與軟件中心以客戶端服務器方式連接,軟件中心提供的代理模塊部署在網管服務器上。
[0134]步驟S301、用戶終端登陸軟件中心,選擇軟件包,準備上傳。
[0135]步驟S302、系統判斷用戶是否具備軟件入庫的權限,如果不具備權限則提示用戶軟件無法入庫。
[0136]步驟S303、軟件中心從軟件包中提取軟件標識文件,其中包括坐標信息和軟件其他的關鍵信息,如果無法提取軟件坐標信息則拒絕接收該軟件。
[0137]步驟S304、軟件中心進行基本信息準入校驗,從待入軟件提取出的坐標信息必須符合基本信息規范,即坐標信息應分別符合軟件類型、軟件功能類型和軟件版本號的規范。如果不符合規范則軟件中心拒絕接收該軟件。
[0138]步驟S305、軟件中心進行業務規則準入校驗,待入軟件必須符合軟件業務規則。如果不符合業務規則軟件中心拒絕接收該軟件。
[0139]步驟S306、軟件中心進行依賴準入校驗,在軟件標識文件中查找軟件的依賴關系,如果存在依賴且配置了強制檢查依賴,則檢查軟件中心是否存在該軟件的所有依賴,只要有一個依賴不存在則軟件中心拒絕接收該軟件。
[0140]步驟S307、開始從用戶終端上傳軟件包至軟件中心,軟件中心采用主備部署,軟件將并發上傳至軟件中心主用和備用服務器上。上傳至主用服務器的流程結束認為上傳結束,上傳結束后,主備服務器間采用同步模塊同步軟件包,保證主備服務器上都有該軟件。
[0141]步驟S308、軟件中心對上傳至主備服務器上的文件校驗md5碼,與軟件標識文件中提供的md5碼比較,保證上傳文件的正確性,如果不一致,提示用戶上傳失敗和失敗原因。
[0142]步驟S309、軟件包正式入庫,上傳流程結束。
[0143]二、服務器特性發現。軟件中心在提供服務時可以發現實體服務器的身份及特性,稱為特性發現。
[0144]特性發現的前提是在實體服務器上進行特性注冊。特性注冊一般是在實體服務器請求軟件中心安裝服務并安裝成功之后進行,由部署在實體服務器上的代理模塊實施,分為普通注冊和探測注冊兩種注冊方式。當實體服務器請求安裝服務并安裝成功后,如果安裝的軟件中包含某種特性,則代理模塊通過特性注冊接口直接注冊本機的特性;如果某些特性是需要探測才能確定的,代理模塊會在本機按特性探測方法探測,探測出特性后再通過特性注冊接口注冊本機的特性。例如當網管服務器請求安裝FTP服務器,安裝成功之后,網管服務器上部署的軟件中心代理模塊會啟動本機FTP服務,并依次執行TYPE I,PASV和REST指令,如果執行成功,則認為該實體服務器具備了斷點續傳特性,并將此特性注冊為本服務器的特性。
[0145]當實體服務器請求軟件中心的軟件安裝或升級服務時,首先檢查該軟件的最低特性需求清單,如果沒有特性要求則直接響應;如果有特性要求則軟件中心請求實體服務器提供特性清單。實體服務器上的代理模塊根據之前的特性注冊情況組織特性清單列表返回給軟件中心,軟件中心檢查該特性清單,如果符合該軟件的最低特性需求,才響應服務,否則拒絕服務。例如網管服務器向軟件中心請求升級網管軟件,該軟件要求網管服務器至少具備文件下載特性,雙機特性和傳輸斷點續傳特性。當軟件中心從代理模塊接收到網管服務器的特性清單后,檢查該網管服務器特性是否符合提供服務所需的最低要求,如果不滿足最低要求將拒絕提供服務。如果符合最低要求,則開始推送升級包,響應網管服務器的升級網管軟件的請求。以上流程統稱為特性發現。
[0146]三、軟件冗余傳輸。包括軟件冗余上傳和軟件冗余分發兩個方向的可靠性實現。
[0147]1、軟件冗余上傳。由于軟件中心本身對服務器性能要求不高,因此采取低成本的主備兩臺服務器同時部署軟件中心。當終端用戶將某個軟件上傳至軟件中心,軟件準入后,終端會并發向主用和備用服務器上傳該軟件,該過程對于用戶是透明的,上傳到主用服務器成功則提示終端用戶上傳軟件成功。主用服務器與備用服務器之間的軟件同步由軟件中心的同步軟件或同步模塊處理。
[0148]如果軟件上傳到主用服務器過程中發生傳輸中斷,軟件仍保持上傳到備用服務器,待上傳到備用服務器成功后,同步模塊會自動檢測到該軟件并同步到主用服務器上,開始同步時提示終端用戶上傳軟件成功,因為同步模塊可以保證總是能將軟件同步到指定備機上。同理,上傳到備用服務器過程中發生傳輸中斷,同步模塊會自動檢測到該軟件并同步到備用服務器上。如果軟件上傳到主備服務器都發生傳輸中斷,軟件中心會通知終端用戶網絡異常,無法上傳軟件。
[0149]軟件冗余上傳機制提高了軟件上傳的可靠性,為軟件冗余分發提供了硬件和軟件條件。
[0150]2、軟件冗余分發,軟件中心的主備服務器上都存在待分發軟件是冗余分發的前提,因此分發軟件前軟件中心會簡單檢測主備服務器上是否都存在待分發軟件。開始分發軟件包時,軟件中心的主用服務器分發軟件到實體服務器的主用服務器,軟件中心的備用服務器分發軟件到實體服務器的備用服務器,同時軟件中心的主用到實體服務器的備用和軟件中心的備用到實體服務器的主用的鏈路也會創建,隨時等待被占用。軟件中心的分發控制模塊會不斷檢查四條鏈路的連接和占用情況,任何一條被占用的鏈路出現問題,分發控制模塊會挑出已創建未占用的鏈路承擔問題鏈路的職責。以軟件分發到實體服務器的主用服務器結束認為分發的結束,隨后實體服務器的代理模塊會通知軟件中心分發結束的消息,其他鏈路停止分發。實體服務器上的主用和備用機之間的數據同步既可由網管服務器上的同步軟件保證,也可由實現同步接口的代理模塊處理。
[0151]如果實體服務器沒有主備兩臺機器,會在實體服務器本機啟用兩個進程接收軟件包到服務器的兩個磁盤上。
[0152]圖4是本發明實施例的軟件冗余分發服務的流程圖,如圖4所示,該服務包括以下步驟:
[0153]步驟S400、網管服務器與軟件中心服務器之間建立連接。
[0154]步驟S401、網管服務器請求軟件中心分發軟件,提供了待分發軟件的坐標信息和軟件中心需要的安全信息。
[0155]步驟S402、軟件中心驗證網管服務器提供的安全信息,如果驗證無法通過則拒絕分發軟件。
[0156]步驟S403、軟件中心計算待分發軟件的依賴關系,整理出分發軟件列表。
[0157]步驟S404、軟件中心請求特性發現,請求網管服務器提供特性列表。
[0158]步驟S405、網管服務器提供特性列表,軟件中心校驗特性列表,必須具有雙機特性和斷點續傳特性等。如果不符合最低特性要求,軟件中心拒絕分發軟件。
[0159]步驟S406、軟件中心開始分發軟件包到網管服務器的主備雙機上,分發到網管主用服務器結束認為分發結束。
[0160]步驟S407、網管服務器通過控制鏈路傳回本地軟件的md5碼,軟件中心檢查該md5碼與倉庫軟件的md5碼是否一致,如果不一致則認為分發軟件失敗。
[0161]步驟S408、軟件中心記錄服務日志、冗余分發流程結束。
[0162]3、軟件校驗,無論是從終端用戶上傳到軟件中心,還是軟件中心分發軟件到實體服務器,都需要在流程結束后保證操作前后軟件內容一致。上傳軟件前,軟件標識文件或軟件包頭的標識信息會提供上傳軟件的md5碼,上傳軟件結束,軟件中心檢查軟件的md5碼與解析軟件標識中的md5碼是否一致,如果不一致,則提示用戶上傳失敗。分發軟件流程結束,軟件中心請求實體服務器通過控制鏈路傳回其本地服務器中軟件的md5碼,如果與軟件中心中軟件屬性的md5碼一致,軟件中心才認為分發成功,并通知實體服務器分發結束。
[0163]四、擁塞控制。軟件中心將軟件分發到實體服務器時,可以通過對已發送包的RTT時延計算估計數據傳輸鏈路的擁塞狀態,從而調整傳送數據包大小,避免在網絡擁塞時還大包傳送數據,給網絡造成不必要的壓力。注意如果軟件中心進行網絡擁塞控制,必須是由軟件中心主動推送軟件到實體服務器,這與實體服務器通過FTP下載軟件的傳輸主導方向不同,是另一種可靠分發軟件包的工作方式。圖5是本發明實施例的軟件中心進行擁塞控制時各模塊的職能和交互的示意圖,如圖5所示,以下描述下擁塞控制實現的基本原理:
[0164]1、當實體服務器請求軟件中心分發軟件時,軟件中心采取擁塞控制方式推送軟件,與實體服務器上的代理模塊建立兩條鏈路,一條控制鏈路(控制模塊),一條數據傳輸鏈路(傳輸模塊)。
[0165]2、軟件中心(軟件中心總控模塊)準備向實體服務器傳送第一包數據,首先向控制鏈路申請本次傳送數據大小,然后通過兩條鏈路分別傳輸:通過數據鏈路傳送第一包包體數據,通過控制鏈路傳送控制數據(比如數據包大小,校驗碼等)。
[0166]3、實體服務器收到第一包包體數據和控制數據后,進行數據校驗,校驗通過后實體服務器將第一包數據的發送時延及其他鏈路傳輸數據通過控制鏈路返回軟件中心。
[0167]4、軟件中心控制鏈路收到第一包數據的控制數據后,緩存。
[0168]5、軟件中心傳送第N包數據到實體服務器前,控制鏈路根據前N-1包數據的發送時延的平均值和其他鏈路傳輸數據的平均值簡單估計當前網絡擁塞情況,使用該平均值與理想值比較,如果大于理想值,則減小第N包數據的大小;如果小于理想值,則增大第N包數據大小;注意減小數據包大小應基數減小,而增大數據包大小則應緩慢增加。
[0169]6、如果軟件中心是代理角色,即待分發的軟件在當前的軟件中心并不存在,而是通過當前軟件中心代理在廣域網的軟件倉庫或另一個軟件中心下載。在此情況下,當前的擁塞控制需要增加對上流流入數據速度的考慮。上流流入數據先加入一個隊列稱為流入隊列,控制鏈路計算發送數據包大小需要綜合流入隊列和歷史傳輸控制數據,既不擁塞流出網絡,也不會導致無數據可發送的局面。
[0170]以上功能保證了軟件中心