• 一種集中式倉儲化的軟件管理方法

    2022-01-06 13:58| 發布者: www.artist-contribution.com| 查看:

    摘要: 該文設計實現了一種集中式倉儲化的軟件管理方法,將軟件以統一的形式存儲在軟件倉儲庫中,供用戶按需下載,自動完成軟件安裝、版本更新、運行環境設置以及配置文件修改等部署工作,從根本上解決了軟件管理混亂、安裝部署專業性強易出錯的難題。 ...

    1 緒論

    1.1 背景及實現方案

    隨著當前信息化水平的日益提升,越來越多的信息系統被應用到企業內部各個層面,極大地提升了企業的工作效率。但同時由于云計算、大數據技術日新月異的發展,各種新架構、新方法層出不窮,使得基于不同技術架構開發的軟件安裝部署差異性很大,同時軟件更新換代的頻率也變得更快,這就對企業信息系統的使用人員提出了很高的技術要求,需要將很大的精力放在軟件的部屬與更新的過程中,而不是如何通過信息系統處理相關業務,降低了業務人員使用新系統、新技術的熱情。
    軟件倉儲化管理方法針對上述軟件在使用過程中存在的各種問題,提出“規范開發、統一封裝、集中入庫、按需部署”的軟件管理方法,即:在信息系統開發初期集中梳理系統配置需求,確定軟件運行所需的軟件、數據庫、服務等環境,指定配置文件模板統一下發;開發完成后使用軟件打包工具進行封裝,封裝完成形成.zip格式軟件壓縮包,其中包含軟件屬性信息及安裝部署信息;軟件包通過Web形式的注冊門戶添加到軟件倉儲庫中,安裝軟件類別進行存儲,同時可以通過在線方式對軟件進行維護操作;當業務人員需要使用某一軟件時,部署在客戶端的業務服務框架將自動下載軟件進行安裝,并自動檢測軟件版本進行更新。
    通過上面描述,我們可以看出軟件倉儲化管理方法是一套面向軟件的全流程管控方法,通過對軟件生命周期的管理,實現軟件的規范管理、動態安裝和即裝即用。

    1.2 現有方案技術缺點及本方案解決方法

    從現有的軟件安裝方式看,大都沒有從軟件的全生命周期的角度對軟件進行管控,提供的功能比較單一,基本上都是將各方開發好的軟件上傳至統一的存儲環境中進行管理,當用戶需要下載安裝某一軟件時,也只是將安裝文件推送至客戶端,讓用戶自行進行軟件安裝,更談不上自動配置依賴環境及修改配置文件;此外,對于一些B/S架構的軟件,由于沒有實體的安裝文件,現有的軟件庫是無能為力的,最多提供一個檢索頁面,讓用戶查詢相應地址,在瀏覽器中輸入地址進而打開頁面的方式,費時費力。
    本發明方法將所有的軟件均作為APP進行處理,無論軟件的形態是單機、服務端、客戶端還是僅僅是一個網頁地址,均需通過打包工具進行封裝,輸入軟件的基本屬性信息、環境依賴信息、角色信息、腳本信息等軟件顯示運行所必需的條件,然后將封裝好的軟件上傳至軟件倉儲環境中,軟件倉儲環境將根據軟件的類型采取不同的分類管理策略,提供軟件的瀏覽、檢索、維護等多種操作手段;而在用戶端則部署安裝業務服務框架,接管用戶當前桌面,負責軟件的下載、安裝及更新工作,用戶只需要幾步簡單的可視化界面操作,即可完成軟件的部署工作,框架將自動檢測本機的環境并進行配置,整個部署工作的進展情況可在界面中實時予以展示。

    2 技術實現

    2.1 技術概述

    倉儲化軟件管理方法借鑒了當前移動終端應用部署的方式,將移動端軟件商店的思想移植到固定端,實現軟件安裝的一鍵操作,簡化了軟件部署及更新流程,使得用戶將精力更多的投放到信息系統本身。
    要實現倉儲化軟件管理方法,主要由軟件打包工具、軟件倉儲環境和業務服務框架三部分作為底層支持。其方案示意如圖1所示。
    圖1 集中式倉儲化軟件管理圖1 集中式倉儲化軟件管理  下載原圖
     
    如上圖所示,倉儲化軟件管理方法針對如那件開發的過程不做過多限制,僅需要按照規范要求填寫配置文件信息,開發完成后通過軟件打包工具對軟件的運行環境、腳本信息、依賴軟件等信息進行設置,生成標準格式軟件壓縮包;而后,通過軟件倉儲環境管理人員將軟件實體包注冊到軟件倉儲環境中,軟件倉儲環境將分別保存軟件的屬性信息和實體軟件;業務人員通過部署在客戶端的業務服務框架從軟件倉儲環境中檢索和下載軟件,業務服務框架自動完成軟件的安裝部署工作,并自動監測自身版本信息,實現已安裝軟件的自動更新。

    2.1.1 軟件打包工具

    軟件打包工具是軟件進行倉儲化管理的基礎,所有軟件屬性必須經過軟件打包工具封裝,才能被后續過程自動識別。因此,所有涉及軟件發現即使用的信息均需在此處進行配置,具體包括:基本屬性、服務屬性、依賴關系、用戶角色及預操作腳本信息。
    當前的業務軟件和商業軟件出于安全性和可靠性考慮,越來越多的運行在非Windows環境下,因此打包工具必須跨平臺運行在不同的操作系統下,同時由于打包過程涉及眾多類型不同的屬性配置,所以打包工具應以可視化向導的方式逐步引導用戶完成打包操作,基于上述考慮打包工具采用JAVA SWT的方式進行開發,顯示風格與用戶操作系統保持一致。
    軟件打包工具主要包括基本屬性配置、服務屬性配置、依賴關系配置、用戶角色配置、腳本配置和軟件封裝6個功能模塊,其內部邏輯圖如圖2所示。
    圖2 軟件打包工具內部邏輯圖圖2 軟件打包工具內部邏輯圖  下載原圖
     

    2.1.2 軟件倉儲環境

    軟件倉儲環境為B/S架構的軟件管理平臺,是信息系統納入倉儲化管理的門戶,是聯系軟件開發者與軟件管理者,以及業務人員的橋梁。
    軟件管理員將軟件打包工具封裝的標準壓縮包通過WEB頁面上傳至軟件倉儲環境中,倉儲環境解析軟件壓縮包獲取完整的軟件屬性信息,根據軟件類別采取相應的軟件管理策略;同時以WEB服務接口的形式向業務服務框架提供軟件查詢、下載及更新服務。軟件倉儲環境的內部邏輯圖如圖3所示。
    圖3 軟件倉儲環境內部邏輯圖圖3 軟件倉儲環境內部邏輯圖  下載原圖
     

    2.1.3 業務服務框架

    業務服務框架支持基于C++開發的客戶端軟件應用集成,同時支持基于WEB的門戶界面集成,為業務系統用戶提供統一門戶入口,對被集成的各類通用基礎服務以及業務應用服務軟件進行訪問,支持不同形式的業務的聚合及不同格式的業務內容的聚合,并可根據每個用戶的使用特點和角色不同,定制個性化的工作空間,主要功能包括:用戶管理、配置管理、樣式管理、軟件檢索、應用中心、軟件管理、窗口瀏覽器、任務管理器8個功能模塊。其內部邏輯圖如圖4所示。
    圖4 業務服務框架內部邏輯圖圖4 業務服務框架內部邏輯圖  下載原圖
     

    2.2 軟件自動部署方式

    本發明針對軟件自動下載部署的流程進行了詳細的定義,即用戶首先通過業務服務框架發起軟件查詢請求,隨后集成框架在軟件倉儲環境中找到指定軟件并下載在本地,然后解壓軟件包并按照文件的設置進行軟件安裝,安裝進度在框架主界面中實時顯示。詳細部署流程如圖5所示:
    圖5 軟件自動部署流程圖圖5 軟件自動部署流程圖  下載原圖
     
    針對上述部署流程,提出如下處理原則:

    1)軟件下載邏輯控制

    當用戶提出軟件下載請求后,并不立即從軟件倉儲環境中下載該軟件,而是首先在業務服務框架下檢索該軟件是否已被安裝,若已安裝將不在下載。
    鑒于信息系統部署環境的差異性,軟件倉儲環境和業務服務框架支持軟件的斷點續傳,業務服務框架會自動記錄軟件當前的下載狀態,當出現異常終止下載后,已下載的軟件不會刪除,下次框架啟動時將繼續執行下載過程。

    2)依賴環境配置

    當軟件下載完成后,業務服務框架并不急于進行安裝,而是按照屬性文件的內容檢測安裝環境是否具備,若安裝環境尚不具備則首先從軟件倉儲環境中下載依賴軟件進行安裝;整個依賴檢測的過程可以嵌套執行,直至所有的依賴環境均被安裝;若依賴軟件倉儲環境無法提供,則安裝過程直接終止,已安裝的依賴環境不再回退。

    3)修改配置文件

    當前軟件開發模式下,軟件運行所需的服務端信息如:數據庫地址、服務端信息等大多存放在制定的配置文件中,需要用戶手工修改,而大多數情況下用戶對于后臺運行的服務信息并不了解,這就需要倉儲化管理方法動態獲取服務信息。
    軟件安裝完成后,業務服務框架會自動修改軟件運行所需配置文件中的信息:業務服務框架讀取配置文件中的關鍵字,將其發送至軟件倉儲環境,軟件倉儲環境結合用戶權限信息在屬性庫中檢索出其對應的真實值,并返回業務服務框架,框架修改配置文件內容。
    考慮到后續服務端信息變更的可能性,框架將在軟件每次啟動之前進行一次配置文件的更新,確保服務端的實時性。

    4)實時進度顯示

    軟件整個下載安裝部署的過程均在業務服務框架界面中實時顯示,當進度條走完,表示安裝過程順利完成,在界面中出現該軟件快捷方式,點擊快捷方式將直接啟動軟件;若中途安裝失敗則進度條直接消失,界面給出錯誤原因。

    2.3 軟件版本更新方式

    本發明借鑒移動端APP更新方法,將其移植到信息系統中,使固定端同樣具備軟件更新主動推送的功能,詳細更新流程如圖6所示:
    圖6 軟件版本更新流程圖圖6 軟件版本更新流程圖  下載原圖
     
    如上圖所示,業務服務框架在啟動時或每隔一段時間就會將框架內已安裝的軟件信息發送至軟件倉儲環境,由軟件倉儲環境判斷哪些軟件存在新版本并將版本信息返回集成框架,框架在用戶界面中的軟件圖標上給出提示信息,用戶根據個人意愿決定是否執行版本更新,若用戶決定執行版本更新,則框架將首先在軟件倉儲環境中下載新軟件版本,并按照屬性文件要求備份已安裝軟件數據信息,然后執行新版軟件的安裝步驟,若新版本安裝完成導入備份數據信息隨后卸載舊版本;若安裝失敗再刪除已安裝信息版本軟件,恢復舊版本使用。
    針對上述部署流程,提出如下處理原則:

    1)版本更新判定原則

    信息系統在開發之初即為系統中的每個軟件分配唯一的軟件標識,后續版本更新不得變更軟件標識。軟件開發完成使用軟件打包工具封裝時,將軟件標識作為必填屬性之一添加到屬性文件中。相同軟件的不同版本通過打包工具提供的版本號屬性進行區分,在軟件倉儲環境中相同軟件標識的多個軟件將被認為是同一軟件的不同版本。
    當軟件倉儲環境接收到業務服務框架提交的軟件版本信息后,將根據軟件標識和版本號在自身屬性庫中進行比對,若存在相同軟件標識且版本號大于已安裝版本號軟件時即認為該存在更新。

    2)版本更新過程限定

    為保證軟件在版本更新過程中使用的連續性,在進行版本更新前需將已安裝版本的數據信息進行備份,備份數據的類型在軟件打包工具生成的數據文件中有詳細的描述;
    ①軟件版本進行更新應先進行新版本的安裝,在進行舊版本的刪除,以保證舊版本在新版本安裝失敗后還能正常使用;
    ②若軟件倉儲環境中同時存在多個可更新版本時,將默認推送最新的版本軟件;
    ③業務服務框架作為軟件的一種,也可同步進行更新操作。
    ④多個軟件的更新操作可并行執行,軟件的更新操作不會影響其他已安裝軟件的正常運行。

    3 結束語

    本方法最大的特點為結合信息系統特點對軟件進行全生命周期的管理,而現有的軟件管理模式將軟件開發人員、軟件管理人員及最終的軟件使用人員割裂開來,各自為政。造成最終用戶需要將很大的精力放在軟件的安裝部署工作上,從一開始就降低了對信息系統的好感度;同樣軟件管理人員在舊的軟件管理模式下,很大一部分精力要用來解決最終用戶在軟件安裝及更新過程中出現的各種問題。
    本文從信息系統真實的開發及使用場景入手,結合移動端應用使用流程,通盤考慮軟件整個使用流程,更多地從如何打通軟件存續的各個階段的連接點下功夫,實現對軟件的倉儲化管理,而對軟件自身形態不做任何限制,確保不同開發語言、不同開發環境下生成的軟件均可自動安裝部署在系統用戶的環境中。
    本文提出的集中式倉儲化管理方法解決了信息系統各類軟件無法統一管理、自動部署的難題,為軟件管理模式設計確立了標桿,提供了思路。