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