王平
摘要:當前情報信息處理領域存在系統(tǒng)部署形態(tài)復雜、用戶需求變化頻繁、系統(tǒng)應用流程多變等特點,引發(fā)了對系統(tǒng)架構模式的探討和研究,提出了一種柔性重構技術來滿足系統(tǒng)的按需定制和動態(tài)組裝需求,最后,結合大數(shù)據(jù)和云計算,提出了基于這種柔性重組技術的新型情報系統(tǒng)的技術體系架構模型。
關鍵詞:情報系統(tǒng);柔性架構;動態(tài)組裝;大數(shù)據(jù)
中圖分類號:TN971 文獻標識碼:A
文章編號:1009-3044(2019)07-0025-04
1 引言
近年來,隨著我國經濟水平和國防實力的增強,情報信息處理領域的信息化水平得到了非常大的提升,當前在信息接入、信息處理、情報處理、情報分析、偵察指揮等方面都積累了豐富的信息化經驗,并且開發(fā)了大量的應用系統(tǒng),這些應用系統(tǒng)在國防應用中發(fā)揮了巨大的作用。然而隨著技術的不斷發(fā)展、情報業(yè)務需求的不斷演變、迫切地需要在繼承原有情報應用系統(tǒng)的能力的基礎之上構建全新一代的情報信息處理系統(tǒng)。在此背景下,針對原有情報信息處理系統(tǒng)的架構模式進行了分析,發(fā)現(xiàn)這些應用系統(tǒng)存在耦合度高,專用化程度很強、異構環(huán)境的適應性差、維護和升級成本高等特點。要構建全新一代的情報信息處理系統(tǒng),必須要解決原有系統(tǒng)架構中存在的弊端,尋找一種全新的技術架構模式,構建出靈活度高、伸縮性強、具備動態(tài)組裝特性的應用系統(tǒng)。
本文主要針對基于一種柔性重構技術的軟件架構進行分析,結合情報信息處理領域的實際應用需求,提出一種全新的系統(tǒng)架構模式,并基于大數(shù)據(jù)技術之上,研究了情報領域應用系統(tǒng)的按需定制、快速構建、動態(tài)組裝的系統(tǒng)構建方式。
2 柔性重構技術框架
柔性重構技術框架是一套提供構件集成、構件管理、構件運行等功能的管理框架。其主要目的是將按照特定規(guī)則設計開發(fā)的構件以預定的編排場景進行加載組裝,實現(xiàn)軟件的動態(tài)編排和運行呈現(xiàn)。該框架主要涉及三大核心技術實現(xiàn):構件動態(tài)加載、構件動態(tài)集成、構件間通信。其中構件動態(tài)加載主要實現(xiàn)構件的運行時按需加載,系統(tǒng)運行過程中,只有客戶使用到的功能構件才會被加載激活,確保系統(tǒng)始終保持高效的運行狀態(tài);構件動態(tài)集成主要實現(xiàn)將獨立的構件按照實際的業(yè)務應用場景進行編排和組裝,采用二次重構的模式構造出滿足實際業(yè)務場景的應用軟件系統(tǒng),這個過程將傳統(tǒng)的軟件定制研發(fā)模式轉變?yōu)榘葱璧膱鼍熬幣沤M裝模式,有效地提高了軟件系統(tǒng)的業(yè)務場景調整適配能力;構件間通信主要實現(xiàn)獨立構件之間的通信鏈路,滿足構件間業(yè)務數(shù)據(jù)和控制指令的傳遞,將獨立的構件集合打造成一個有機整體。
2.1 構件動態(tài)加載
構件的動態(tài)加載技術是基于面向對象的多態(tài)特性來實現(xiàn),首先在底層框架中定義全局的基礎構件抽象類作為所有構件的基類,上層用戶開發(fā)的構件都繼承該基類,構件實例化時通過反射機制動態(tài)獲取構件的具體類型并創(chuàng)建實例。下文是基于C#語言的構件動態(tài)加載偽代碼:
定義構件基礎抽象類
public interface IPlugin
{
基類方法
}
定義用戶業(yè)務構件類
public partial class UserPlugin : IPlugin
{
構件方法
}
加載程序集
Assembly _assembly
= Assembly.LoadFrom(dllPath)
Type _type
= _assembly.GetType(typeName)
實例化構件
IPlugin plugin = Activator.CreateInstance
(_type, paramList) as IPlugin
2.2 構件動態(tài)集成
構件動態(tài)集成是負責將加載成功的構件按照實際的業(yè)務應用場景進行編排和集成,組裝出滿足用戶應用訴求的應用軟件系統(tǒng)。其中主要涉及場景編排、場景加載渲染、場景布局恢復等關鍵技術。
場景編排主要是按照實際的業(yè)務應用需求,生成一套配置數(shù)據(jù)集,這些配置數(shù)據(jù)集能夠描述每個構件在最終的軟件集成界面上的位置和功能狀態(tài),為最終渲染出實際的應用軟件做準備。場景編排的核心要點在于整個配置數(shù)據(jù)集結構的定義,在這個數(shù)據(jù)結構中需要明確應用軟件的按鈕、菜單、工具條、狀態(tài)欄、停靠窗口等參數(shù)。場景配置數(shù)據(jù)集可以采用樹形結構定義,下圖為場景配置數(shù)據(jù)集的概要示例:
場景加載渲染主要負責按照場景編排的配置,加載相應的構件并渲染到相應的軟件界面上,實現(xiàn)從零散的獨立構件到應用軟件的集成轉換。場景加載渲染的主要過程包括以下幾個步驟:一、加載并解析場景編排配置文件。二、按照配置文件解析出需要加載的構件。三、實例化構件并在主框架上生成系統(tǒng)界面。
場景布局恢復主要負責保存軟件運行結束時的一個狀態(tài),并確保下一次啟動時能夠恢復到上一輪的運行狀態(tài),通常情況下布局信息存儲在本地,系統(tǒng)啟動時首先加載布局信息,并解析出每個構件在上一輪運行的狀態(tài),在構件實例化成功后設定其顯示狀態(tài)。
2.3 構件間通信
構件間通信主要定位為構件間的消息傳輸,傳輸方式采用訂閱發(fā)布模式,底層通道依托TCP+UDP協(xié)議。應用層面,為了簡化構件間的通訊調用,需要通訊組件能夠自動探測發(fā)現(xiàn)網絡上的所有構件,并自動建立通訊鏈路,構件開發(fā)者只需按照主題訂閱和發(fā)布消息;跨平臺層面,構件間通信需要同時支持Windows、Linux操作系統(tǒng);開發(fā)層面,構件通信需要同時提供C#,JAVA,C++接口,以供不同開發(fā)語言調用;系統(tǒng)維護層面,構件通信需要提供完善的通道探測和監(jiān)控工具,便于在運行實時監(jiān)控通信狀態(tài)。下圖為構件間通信的架構圖:
構件間通信最終會輸出一個核心的二次開發(fā)包和一系列的輔助工具,核心開發(fā)包主要供構件開發(fā)者開發(fā)調用,輔助工具主要提供給開發(fā)者和運維人員進行系統(tǒng)監(jiān)控檢測。
3 基于柔性重構技術的系統(tǒng)體系架構
3.1 基于柔性重構技術的系統(tǒng)研發(fā)模式
基于柔性重構技術,系統(tǒng)的研制和使用涉及三個不同的角色:業(yè)務構件開發(fā)者、應用場景編排者、終端業(yè)務操作者。其中業(yè)務構件開發(fā)者主要負責獨立構件的研發(fā),其基于柔性重構技術提供的底層開發(fā)包進行業(yè)務功能研制,輸出業(yè)務構件。應用場景編排者主要負責將業(yè)務構件按照用戶實際的應用場景進行業(yè)務重組和編排,輸出適合特定應用場景的場景配置,并發(fā)布系統(tǒng)。終端業(yè)務操作者作為系統(tǒng)的使用者,主要是進行業(yè)務操作和使用,其將直接面對最終輸出的業(yè)務系統(tǒng)。
3.2 基于柔性重構技術的系統(tǒng)體系架構
基于柔性重構技術的系統(tǒng)體系架構有別于傳統(tǒng)的系統(tǒng)體系架構,其以構件的規(guī)劃設計為核心。在工程規(guī)范的牽引下,結合具體的業(yè)務需求和技術實現(xiàn)方案,規(guī)劃并設計出相對獨立的構件集,這些構件具備相對獨立的業(yè)務功能,各構件之間可以按照編排規(guī)則進行組裝和重構,進而實現(xiàn)更加復雜的業(yè)務應用場景。
基于柔性重構技術的系統(tǒng)體系架構將傳統(tǒng)的定制化軟件研制過程轉換為工廠化的構件生產和場景裝配過程,其具備以下幾方面的優(yōu)點:
l 便于代碼復用
以構件規(guī)劃和研發(fā)為核心的架構模式,能夠不斷的積累業(yè)務功能相對固化的構件,這些構件模塊相對獨立,并且具備相互組裝重構的特性,是一種高效的代碼復用模式。
l 能快速響應需求變更
以構件為核心的研發(fā)模式,縮小了模塊的功能范圍,降低了需求誤差的可能性,此外應用系統(tǒng)的輸出是基于場景編排,這種模式具備動態(tài)適配新需求的能力,能夠快速的響應需求變更。
l 便于提高系統(tǒng)質量
每個獨立構件的開發(fā)都經過完整的功能和性能測試,在場景裝配前就已經具備較高的可靠性,這就確保了最終輸出系統(tǒng)的穩(wěn)定可靠, 提高了系統(tǒng)的整體質量。
4 情報系統(tǒng)構建模式
經過近20年的業(yè)務發(fā)展,情報系統(tǒng)已經由傳統(tǒng)的業(yè)務流程操作型信息系統(tǒng)轉換為集業(yè)務流程操作型和數(shù)據(jù)分析型于一體的信息系統(tǒng),數(shù)據(jù)分析在情報系統(tǒng)中的地位從某種程度上看已經逐漸超越了流程操作,未來情報系統(tǒng)的構建必須以數(shù)據(jù)為核心,整個系統(tǒng)的架構需要建立在數(shù)據(jù)的處理和數(shù)據(jù)的分析上面。
另一方面,隨著大數(shù)據(jù)技術的日趨成熟,其在醫(yī)療、教育、經濟、工業(yè)、科技、軍事等各領域已經具備了大量的應用案例。當前情報系統(tǒng)又正面臨著海量數(shù)據(jù)處理和分析的應用訴求和技術瓶頸,以數(shù)據(jù)為核心,基于大數(shù)據(jù)云計算技術進行情報系統(tǒng)構建已經成為大勢所趨。在此宏觀指導思想之上,給出情報系統(tǒng)以數(shù)據(jù)為中心的宏觀邏輯視圖如下:
由上圖可以看出,將整個系統(tǒng)分為數(shù)據(jù)平面、業(yè)務平面和第三方應用平面。數(shù)據(jù)平面為系統(tǒng)的核心平面,為系統(tǒng)提供數(shù)據(jù)應用支撐,可分為第一數(shù)據(jù)平面和第二數(shù)據(jù)平面。第一數(shù)據(jù)平面主要是提供前端數(shù)據(jù)的OLTP支撐,滿足操作型業(yè)務訴求,第二數(shù)據(jù)平面主要是作為后端的數(shù)據(jù)分析倉庫,提供特診提取、復雜模型構建、數(shù)據(jù)挖掘、關聯(lián)預測、統(tǒng)計分析、聯(lián)邦查詢等功能,一般是基于大數(shù)據(jù)和云計算技術進行構建。業(yè)務平面是系統(tǒng)的業(yè)務應用構建平面,包括前端的強事務型業(yè)務應用和后端的分析挖掘型應用。前端的強事務型應用主要架構在第一數(shù)據(jù)平面上,負責數(shù)據(jù)生成型業(yè)務和數(shù)據(jù)操作型業(yè)務處理,后端的分析挖掘型業(yè)務主要架構在第二數(shù)據(jù)平面上,負責后端基于大數(shù)據(jù)的分析挖掘應用。第三方應用平面主要是負責為第三方應用提供數(shù)據(jù)接口、數(shù)據(jù)標準、應用交互接口等支撐,滿足第三方應用的數(shù)據(jù)和接口交互要求。
根據(jù)上文對情報系統(tǒng)宏觀邏輯視圖的分析以及情報業(yè)務的特點可以得出,數(shù)據(jù)平面的數(shù)據(jù)經過規(guī)格化處理后可以保持相對的穩(wěn)定和固化,基于這些數(shù)據(jù)的分析挖掘算法和服務可以按照通用產品化的模式進行構建,并向上層應用提供一整套基礎算法和服務支撐。整個邏輯視圖中存在部署形態(tài)復雜、用戶需求多變的環(huán)節(jié)在于業(yè)務應用平面。業(yè)務應用平面直接同終端用戶交互,各單位用戶對具體的業(yè)務操作流程和業(yè)務功能訴求存在一定程度的差異,基于柔性重構技術來構建業(yè)務應用平面,能夠確保在一套完備的數(shù)據(jù)平面之上構建出靈活多變、適應性強、具備動態(tài)重組特性的業(yè)務應用。
由以上系統(tǒng)架構圖可以看出,整個系統(tǒng)架構由基礎資源、存儲計算域、支撐域、柔性重構框架、構件集、業(yè)務應用域組成,其同傳統(tǒng)系統(tǒng)架構模式最大的區(qū)別在于系統(tǒng)構建時將柔性重構框架作為系統(tǒng)架構中的一個過渡層,業(yè)務應用不直接在數(shù)據(jù)和服務上構建,而是通過柔性重組框架的構件裝配功能動態(tài)編配重組出來,進而實現(xiàn)系統(tǒng)的按需定制,動態(tài)適配的能力。通過對情報系統(tǒng)架構的分析以及對整個情報系統(tǒng)數(shù)據(jù)流向的研究,從數(shù)據(jù)的視角給出情報系統(tǒng)的構建模式如下圖:
由上圖分析可以看出,情報系統(tǒng)的構建主要包括三大部分,前端情報收集系統(tǒng)、情報處理分析服務中心、情報處理分析用戶端。前端情報收集系統(tǒng)主要負責情報數(shù)據(jù)的收集和預處理,經過預處理的情報信息進入后端的情報處理分析服務中心,情報處理分析服務中心作為情報數(shù)據(jù)的集中處理和分析服務池,其提供了多樣化的數(shù)據(jù)存儲和計算方式,根據(jù)具體的數(shù)據(jù)業(yè)務需求進行相應的數(shù)據(jù)存儲和計算,在整個服務中心內部建立了一層橫向的數(shù)據(jù)集成和調度系統(tǒng),負責數(shù)據(jù)在各個存儲計算系統(tǒng)之間的調度和協(xié)同。情報處理分析用戶端構建在情報處理分析服務中心之上,其基于柔性重構框架的構件管理和編排能力實現(xiàn)動態(tài)編配和重組,輸出具體的業(yè)務應用程序。
5 結論
本文主要針對情報信息處理領域當前面臨的部署形態(tài)復雜、客戶需求易變等問題,提出了一種柔性重構軟件設計技術,該技術充分利用了軟件設計中面向對象的多態(tài)特性,基于構件的動態(tài)加載技術,將傳統(tǒng)的定制化設計和開發(fā)流程轉變?yōu)橐詷I(yè)務構件開發(fā)為中心的工廠化流水線模式,并通過場景裝配動態(tài)輸出滿足實際應用需求的業(yè)務系統(tǒng)?;谶@種柔性重構技術,結合大數(shù)據(jù)處理的特點,提出了一套全新的情報系統(tǒng)構建模式,這種構建模式能夠在大數(shù)據(jù)環(huán)境中實現(xiàn)情報業(yè)務系統(tǒng)的按需定制和動態(tài)重組,滿足復雜多變的部署形態(tài),提高需求應變能力。由于本文所涉及的柔性重構技術是C/S架構的一種技術機理,其只適合于胖客戶端的應用系統(tǒng),對于B/S架構的頁面系統(tǒng)不適用。
參考文獻:
[1] 吳朱華.云計算核心技術剖析[M].北京:人民郵電出版社,2011.
[2] 甘翼,王良剛,黃金元,等.大數(shù)據(jù)和人工智能時代的情報分析和技術探索[J].電訊技術,2018,58(5) :506-513.
[3] 賈明權.基于分布式戰(zhàn)術云的下一代通用信號處理平臺架構[J].電訊技術,2017,57(7):789-794.
[4] 姚淑珍.UML和模式應用:面向對象分析與設計導論[M]. 北京:機械工業(yè)出版社,2002.
[5] 李銘.C#高級編程[M]. 北京:清華大學出版社,2017.
[6] 王海,華東,呂粵海.Hadoop權威指南:大數(shù)據(jù)的存儲與分析[M]. 北京:清華大學出版社,2017.
[7] 鄧鋼.軟件架構[M]. 北京:人民郵電出版社,2014.
[8] 愛飛翔.系統(tǒng)架構[M]. 北京:機械工業(yè)出版社,2017.
【通聯(lián)編輯:代影】