馮俊池,安豐亮,董 超,尹黨輝
(后勤科學與技術研究所,北京 100071)
在信息化領域,自主國產產品代替國外商用產品已成為國家戰略安全的需要[1]。隨著國產處理器芯片、BIOS等硬件技術以及國產操作系統、數據庫、中間件等軟件技術的不斷發展和成熟穩定,應用系統向國產化平臺遷移已具備了基礎條件。Web應用系統是目前廣泛使用的軟件系統類型之一,通過研究Web應用系統在現有非國產化商用平臺與國產化平臺之間的遷移適配,探索國產化平臺應用遷移方法和模型,可以為Web應用的遷移提供指導方法,同時,也為其他類型應用的遷移適配提供借鑒和支持。
國內自主可控關鍵軟硬件技術已取得了重大突破[2],基礎軟硬件產品的可用性已得到很大提升。
在處理器領域,國產自主通用處理器形成了多種指令集架構的系列化處理器產品,產品主頻普遍達到1.0~2.5 GHz。國產處理器主要有飛騰、龍芯和申威三大系列。龍芯處理器采用類MIPS指令集,目前已發展到龍芯3系列處理器,最新產品為龍芯3A3000/3B3000,4核64位,主頻1.35~1.5 GHz;飛騰處理器包括FT-1000、FT-1000A、FT-1500A等系列處理器,最新產品為FT-2000/64,兼容ARM v8指令集,64核,主要面向高性能服務器領域,主頻1.5~2.0 GHz;申威處理器已發展到第三代,其代表產品為申威1610,兼容Alpha指令集,集成16個64位RISC結構的申威處理器核心,最高工作頻率1.6 GHz。
在操作系統領域,形成了面向服務器、桌面等領域的國產操作系統。國產通用操作系統主要有中標麒麟、中科方德等,均支持國產主流處理器,提供簡單易用的圖形化桌面環境、豐富的應用軟件和完善的開發環境。其中,中標麒麟操作系統基于開源Linux,對其內核和核外環境進行了安全、高可用等增強改進,全面對國際主流x86處理器,以及國產處理器,比如龍芯、飛騰、申威系列等進行支持,支持Java、C、C++等多種編程和腳本語言,支持Qt、Eclipse等多種集成開發環境。
在數據庫領域,形成了以達夢、人大金倉、神通、南大通用等為代表的國產數據庫產品。產品部分性能已經與國外主流產品持平,支持SQL通用數據庫查詢語言,提供標準的ODBC、JDBC等數據訪問接口,支持目前的主流硬件平臺,并穩定運行于Windows、Linux、中標麒麟和Unix等主流操作系統平臺。
國產中間件主要有東方通、中創和金蝶等,完整支持J2EE規范,支持多層結構應用的部署、運行?,F已開展了與國產操作系統、數據庫的兼容性測試,產品達到實用化水平,并被大量應用于金融、通信、政府等行業領域。
隨著國產軟硬件單品的不斷發展,國產整機產品基本滿足當前的使用需求[3],現已形成了涵蓋多種形態的計算機整機產品,綜合性能得到大幅提升,整機功能、性能與國外同類產品相當。國產計算機經優化適配后,可用于辦公應用和管理信息系統等中低端應用。
Web應用系統由現有非國產化商用環境向國產化環境遷移時,涉及到多種軟硬件平臺、編程語言和實現模式等多個方面,存在指令集兼容性、插件兼容性、數據庫遷移[4]等諸多問題,而且軟硬件各版本之間也需要考慮兼容性[5],因此,需要針對應用本身和運行環境的多個方面進行具體分析,確定遷移內容和方法。
將Web應用系統拆解為細粒度的遷移對象,對遷移對象建立遷移規則,描述遷移對象遷移前后的環境以及策略,遷移規則的集合即Web應用系統的遷移模型。
遷移規則采用五元組的形式表示,即遷移對象、源環境、目標對象、目標環境和遷移策略。相關概念如下:①遷移對象是遷移前保障應用系統能夠正常運行的必要部件,包括應用系統的內部組件、運行容器、依賴軟硬件環境等。②源環境。遷移對象所依賴的非國產化環境,是遷移對象的子集。③目標對象。在國產化環境下替代遷移對象,完成相同功能的部件。④目標環境。目標對象所依賴的國產化環境,是目標對象的子集。對于CPU等底層基礎環境,當其作為遷移對象時,源環境和目標環境可以為空。⑤遷移策略。由源環境中的遷移對象轉換到目標環境中的目標對象所需采取的策略,包括直接使用、同等替代、適應性修改、重新編譯源碼[6]、數據遷移等。其中,直接使用的情況,是指在2個環境下遷移對象均可以正常使用;同等替代,是指目標對象可以替代遷移對象在國產環境中發揮同樣的作用;適應性修改,是指遷移對象需要修改后才能適用于國產環境;重新編譯源碼,是指遷移對象在源碼級別可移植,針對國產環境編譯后使用;數據遷移,是指需要將數據通過手動或自動方式遷移,主要指數據庫內的數據。
遷移模型中的遷移規則涵蓋了從基礎軟硬件到上層應用的所有遷移對象,從遷移對象的層次描述了遷移的方法和策略,同時,以遷移對象為級別的遷移規則復用性強,在不同應用遷移時可直接使用。
在遷移過程中,從硬件到軟件,遷移對象主要包括CPU、操作系統、中間件和應用系統等,其中,應用系統是分解確定遷移對象的重點。通過對Web應用系統的軟件技術架構的分析,從不同類型的結構中進行綜合,將Web應用系統進行層次劃分,用來更清晰地確定應用系統層面的遷移對象。在開發過程中,Web應用一般采用三層架構實現[7],分別為數據訪問層、業務邏輯層和表示層。數據訪問層用于與數據庫進行交互,執行數據的添加、刪除、修改等操作;業務邏輯層主要用來實現業務規則,針對具體問題進行處理;表示層為用戶提供交互式操作界面,顯示數據和接收用戶輸入的數據。針對國產化遷移,需要進一步細分Web應用系統。通過對常見的Web應用系統的分析,列舉可能用到的技術框架以及組件,將Web應用主要分為視圖展示層、展示框架層、應用邏輯層、應用框架層、應用容器層、數據框架層、數據訪問層和數據存儲層8個層次。
視圖展示層,負責用戶前端視圖的顯示和交互,通常采用 Html、Javascript、CSS、Flash、Java Applet等技術實現。展示框架層,包含與前端界面和視圖相關的框架以及組件等。展示框架層和視圖展示層主要考慮與瀏覽器的兼容性。應用邏輯層是Web應用中實現業務邏輯的部分,主要集中在業務規則的制訂、業務流程的實現等與業務需求有關的設計方面,通常采用Java、Servlet、PHP、ASP等語言或技術。應用框架層應用邏輯層所采用的框架和組件,比如Spring、Struts等框架。應用容器層是Web應用程序的運行環境,主要包括Tomcat、IIS、WebLogic等Web服務器。數據框架層,是在應用業務邏輯與數據存儲之間的數據交互中所采用的框架,包括各種ORM框架等。數據訪問層,負責數據的訪問和存儲,實現對數據的增刪改查等操作,包括數據庫訪問驅動以及各種數據庫操作語句等。數據存儲層是應用系統的數據存儲位置,包括各種結構化和非結構化數據庫、文件系統等。
通過對Web應用系統建立遷移模型并進行分析化簡,即可得到需要遷移的內容和方法。建立遷移規則庫,可在不同應用遷移時復用。生成應用遷移模型的步驟是:①將應用系統按層次分解,確定每一層次的遷移對象。②分析每一層次的遷移對象,并添加到遷移對象集合中,從最底層的遷移對象開始遍歷。③如果當前遷移對象已遍歷,執行步驟⑤;如果未遍歷,標記其已遍歷,檢查遷移規則庫中是否相同的遷移規則可復用,如有,執行步驟④,否則,分析生成遷移規則,將其加入遷移規則庫,執行步驟④。④將遷移規則加入遷移模型。⑤如果源環境不為空,將其作為當前遷移對象,執行步驟③;否則,將遷移對象集合的下一遷移對象作為當前遷移對象,執行步驟③。如果遷移對象集合為空,輸出遷移模型,終止。
輸出的遷移模型包含了所有遷移對象所對應的遷移規則,通過篩選除去遷移策略為直接使用或同等替代的遷移規則,得到的即是遷移過程中需要改造的內容和方法。
以某信息管理系統為例,其遷移前和遷移后的軟硬件運行環境如表1所示。

表1 軟硬件運行環境表
該應用所用到的技術框架如表2所示。

表2 技術框架
建立遷移模型如下:

通過篩選化簡除去直接使用和同等替代的遷移對象后,得到的遷移規則如下:


該信息管理系統在遷移過程中的內容和方法是:①將Oracle數據庫中的數據遷移到達夢數據庫;②針對應用程序中的特定于Oracle的SQL語句做適應性修改;③針對應用程序中的特定于IE 8的Javascript代碼做適應性修改;④將其他遷移對象直接或將替代對象應用于國產化環境。
針對Web應用系統向國產化軟硬件平臺遷移的問題,提出了應用遷移模型和方法;針對Web應用系統提出了適用于遷移的層次化結構,基于層次化結構分析應用的遷移對象并確定遷移規則,大大提高了遷移工作的效率和準確度。對于其他類型的應用,通過改變遷移對象的層次,遷移模型和方法同樣適用。如果將遷移對象國產化后的效果加入遷移規則中,比如保持一致、性能損失、友好度降低等非功能效果,則可對遷移產生的影響進行自動化分析。
參考文獻:
[1]趙斌,楊明華,柳偉,等.基于龍芯處理器的自主可信計算機研究[J].計算機技術與發展,2015(4):126-130.
[2]萬俊偉,趙輝,鮑忠貴,等.自主可控信息技術發展現狀與應用分析[J].飛行器測控學報,2015,34(4):318-324.
[3]紀靜,屈濤,金達,等.自主可控計算機設計與實現[J].計算機工程與應用,2013,49(15):36-39.
[4]張春瑞,趙成坤,吳川,等.銀行管理信息系統服務器國產化過程中的ETL應用遷移[J].計算機系統應用,2015, 24(10):264-270.
[5]許國鋒,許鵬文,鄒紅霞.國產自主可控技術在軍隊院校辦公自動化中的應用[J].四川兵工學報,2014,35(3): 130-132.
[6]劉曉楠,趙榮彩,龐建民.軟件移植、二進制翻譯和國產處理器發展[J].信息工程大學學報,2014,15(5):613-616.
[7]Jaewon Oh,Woo Hyun Ahn,Taegong Kim.MVC architecture driven restructuring to achieve client-side web page composition[C]//The 7th IEEE International Conference on Software Engineering&Service Science.Washington:IEEE Computer Society,2017:45-53.