李蘭花 王玲 施峻武
【摘要】 軟件通信體系結(jié)構(gòu)(SCA)為軟件無(wú)線電臺(tái)的設(shè)計(jì)提供了一個(gè)與實(shí)現(xiàn)無(wú)關(guān)的開(kāi)放式架構(gòu)。SCA4.0是一種自適應(yīng)的軟件無(wú)線電體系架構(gòu),相較之前的版本更靈活,更易升級(jí),同時(shí)支持不同量級(jí)的軟件架構(gòu)。這種自適應(yīng)性也能更好的適應(yīng)目前具有不同設(shè)備資源的各類無(wú)線電臺(tái)。本文首先對(duì)SCA4.0規(guī)范的特性進(jìn)行了詳細(xì)的分析,然后以小型化設(shè)備為例介紹了這種自適應(yīng)性的軟件架構(gòu)。
【關(guān)鍵詞】 SCA4.0 自適應(yīng) 軟件無(wú)線電 小型化設(shè)備軟件架構(gòu)
一、引言
SCA規(guī)范的制定實(shí)現(xiàn)了軟件無(wú)線電[1]的思想,提高了波形的可移植性、可重用性和互操作性,降低波形的開(kāi)發(fā)成本。從1999年推出的最初版本到目前為止已有多個(gè)版本,SCA4.0[2-3]是2012年推出的。
SCA規(guī)范軟件架構(gòu)包含了操作系統(tǒng)、核心框架、分布式處理中間件和應(yīng)用層軟件。由于功能完備的軟件架構(gòu),往往需要占用比較多的資源,這對(duì)于一些小型設(shè)備來(lái)說(shuō)并不適合。因此,JTRS提出了一種自適應(yīng)的軟件無(wú)線電體系結(jié)構(gòu),相較之前的版本增加了輕量級(jí)組件,功能單元,輕量級(jí)AEP,選擇性繼承以及Push Model等機(jī)制,支持不同的傳輸機(jī)制,由此來(lái)提高框架的靈活性,便于在不同量級(jí)的平臺(tái)上實(shí)施。以小型化設(shè)備的軟件架構(gòu)為例,采用輕量級(jí)核心框架、輕量級(jí)中間件以及輕量級(jí)應(yīng)用環(huán)境架構(gòu)能極大地提高設(shè)備的運(yùn)行性能,降低資源的占用率。
二、SCA4.0規(guī)范特性
2.1 PUSH MODEL
在SCA4.0之前的版本,核心框架通過(guò)Pull Model獲取注冊(cè)資源的各項(xiàng)信息,SCA4.0中通過(guò)采用Push Model[4],一方面可以進(jìn)行直接的信息交換,減少了調(diào)用的總次數(shù),從而減少啟動(dòng)和初始化的時(shí)間,另一方面,交換信息的屬性和操作是可選的,可以減少不必要的實(shí)現(xiàn)。圖1,對(duì)比了Pull Model和Push Model的注冊(cè)操作。為了適用Push Model,SCA4.0新制定了一個(gè)ComponentRegister接口用于設(shè)備和波形組件的注冊(cè)。
為了實(shí)現(xiàn)Push Model,SCA4.0對(duì)端口連接方式進(jìn)行了改進(jìn)。SCA4.0提供了Registered和Obtainable兩種類型的端口提供方式,對(duì)應(yīng)于舊版本的靜態(tài)和動(dòng)態(tài)兩種形式的端口提供方式。新的端口連接方式采用推送所有信息的方式,用單次的調(diào)用取代了多次連接。圖2對(duì)比了SCA2.2.2[5]和SCA4.0中obtainable 端口的連接序列圖。
2.2輕量級(jí)組件
輕量級(jí)組件和功能單元(UOFs)是SCA4.0的兩個(gè)機(jī)制,用于調(diào)整框架以適應(yīng)不同產(chǎn)品和任務(wù)的需求。之前的SCA版本接口功能齊全,要求實(shí)現(xiàn)的功能往往比實(shí)際需要的大,決定實(shí)現(xiàn)一個(gè)接口時(shí),即使是一個(gè)虛擬的實(shí)現(xiàn),它會(huì)增加額外的成本,如需求分析、設(shè)計(jì)決策、開(kāi)發(fā)時(shí)間、軟件集成和測(cè)試和遵從性測(cè)試。SCA4.0采用了新的接口繼承方式——選擇性繼承,開(kāi)發(fā)人員可以通過(guò)預(yù)編譯和IDL指令定義特定的組件選擇性繼承需要實(shí)現(xiàn)的接口功能,這使得組件更小、更注重實(shí)現(xiàn)。
對(duì)于輕量級(jí)組件的實(shí)現(xiàn),可參考SCA規(guī)范中各組件的繼承關(guān)系,以ResourceComponent為例,如圖3所示,通過(guò)IDL指令和預(yù)編譯配置接口繼承,只有在定義了標(biāo)識(shí)符時(shí),接口才被繼承,例如只有在定義了TESTABLE時(shí)TestableObject接口才需要被實(shí)現(xiàn),因此通過(guò)控制Resource接口的繼承方式就能控制ResourceComponent的大小。
2.3功能單元
UOFs用以提供一個(gè)標(biāo)準(zhǔn)化的方法,允許從一個(gè)組件規(guī)范省略不必要的接口和需求。通過(guò)選擇不同的組件和UOFs可以構(gòu)建不同量級(jí)的SCA架構(gòu)。SCA4.0推薦了三種量級(jí)的架構(gòu)[5]:輕量級(jí)架構(gòu)、中量級(jí)架構(gòu)和全功能架構(gòu)。輕量級(jí)架構(gòu)適用于硬件模塊靜態(tài)配置的無(wú)線電臺(tái),提供的是一組最低功能的實(shí)現(xiàn),往往應(yīng)用在資源受限的平臺(tái)環(huán)境。中量級(jí)架構(gòu)適用于硬件模塊支持即插即用,但不支持注銷的無(wú)線電臺(tái),相對(duì)于輕量級(jí)架構(gòu),它引入了可動(dòng)態(tài)配置的功能。全功能架構(gòu)適用于支持硬件模塊的即插即用和可注銷的無(wú)線電臺(tái)。圖4展示了SCA不同架構(gòu)的UOFs,針對(duì)實(shí)際情況可以選擇不同量級(jí)架構(gòu)。
三、軟件架構(gòu)
3.1核心框架
SCA4.0定制核心框架,去除了一些冗余接口,通過(guò)選擇性繼承實(shí)現(xiàn)輕量級(jí)組件。SCA4.0規(guī)范中將CF組件分為五類:基本構(gòu)件組件,用于提供SCA軟件產(chǎn)品的一些共同特征、約束和關(guān)聯(lián)的抽象;基本應(yīng)用組件為應(yīng)用開(kāi)發(fā)者提供應(yīng)用結(jié)構(gòu)定義;框架控制組件為組件在平臺(tái)上執(zhí)行部署提供結(jié)構(gòu)定義;基本設(shè)備組件提供的結(jié)構(gòu)定義將被用于實(shí)現(xiàn)和管理域內(nèi)的物理設(shè)備,如對(duì)設(shè)備進(jìn)行加載、執(zhí)行和聚合操作;框架服務(wù)組件為平臺(tái)開(kāi)發(fā)者提供與邏輯設(shè)備不直接相關(guān)的通用軟件功能。在此針對(duì)處理器能力有限,系統(tǒng)硬件模塊固定,不存在分布式結(jié)構(gòu)的小型化設(shè)備提出輕量級(jí)核心框架[6]的設(shè)計(jì)建議:移除文件服務(wù)由于小型化設(shè)備中其它專用處理器一般不向CF提供文件服務(wù),可轉(zhuǎn)由GPP操作系統(tǒng)來(lái)提供文件服務(wù),不需要專門的文件服務(wù)管理。在不需要使用嵌套應(yīng)用時(shí)可移除集合操作組件。盡量少的繼承接口,使用輕量級(jí)組件。例如當(dāng)不需要測(cè)試時(shí),可不繼承TestableObject接口。先制定要求,再定制組件。在設(shè)備資源已知,設(shè)備信息基本不變時(shí)使用靜態(tài)部署提高系統(tǒng)運(yùn)行效率。
3.2 中間件
SCA4.0支持不同的傳輸機(jī)制,SCA2.2中指定CORBA這種傳輸機(jī)制作為中間件,但是由于CORBA常采用TCP/IP作為 底層傳輸機(jī)制,引入的延時(shí)較大,對(duì)于一些產(chǎn)品并不適用。在此針對(duì)小型化設(shè)備的輕量級(jí)中間件設(shè)計(jì)建議:1)使用小型化的CORBA產(chǎn)品。CORBA/e是一種嵌入式CORBA規(guī)范,用于開(kāi)發(fā)分布式嵌入式系統(tǒng)。CORBA/e定義的三種量級(jí)的架構(gòu):完全量級(jí)CORBA 架構(gòu)、輕量級(jí)CORBA架構(gòu))、超輕量級(jí)CORBA 架構(gòu)。其中,完全量級(jí)適用于一般的GPP;輕量級(jí)適用于資源受限的處理器(如DSPs);超輕量級(jí)適用于資源高度受限的處理器(如應(yīng)用程序同時(shí)分布在DSPs和FPGAs上)。2)使用其他傳輸機(jī)制,如數(shù)據(jù)分發(fā)服務(wù)(DDS),簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)等。DDS信息分發(fā)中間件是一種輕便、能夠提供實(shí)時(shí)信息傳送的中間件技術(shù),應(yīng)用于分布式實(shí)時(shí)系統(tǒng)中,能可靠實(shí)時(shí)的交換分配群體數(shù)據(jù)。SOAP用于在分布式環(huán)境中發(fā)送消息,并執(zhí)行遠(yuǎn)程過(guò)程調(diào)用。SOAP基于XML的輕量級(jí)協(xié)議,使不同操作系統(tǒng)平臺(tái)和不同編寫語(yǔ)言的應(yīng)用程序可以進(jìn)行相互通信。
3.3 應(yīng)用程序環(huán)境架構(gòu)
AEP是基于POSIX實(shí)時(shí)應(yīng)用程序支持標(biāo)準(zhǔn)。SCA操作環(huán)境中的操作系統(tǒng)應(yīng)是滿足POSIX兼容的實(shí)時(shí)操作系統(tǒng),并且提供AFP指定的功能和選項(xiàng)。在SCA4.0規(guī)范附錄B中詳細(xì)的說(shuō)明了與AEP相關(guān)的標(biāo)準(zhǔn)。附錄中定義的實(shí)時(shí)描述文件,只需在包括了這項(xiàng)標(biāo)準(zhǔn)的UOF使用即可。需要注意的是一旦引入約束,每個(gè)使用該功能的程序都必須遵守該項(xiàng)約束。SCA4.0包括了AEP和輕量級(jí)AEP(LwAEP)兩種描述。在小型化設(shè)備中建議使用LwAEP,它既能滿足資源受限的操作系統(tǒng)上的可移植性,還能保證系統(tǒng)的性能,減少集成和重用代碼的開(kāi)發(fā),減少代碼的修改量,提高代碼的可移植性。
四、結(jié)束語(yǔ)
在軟件無(wú)線電項(xiàng)目的實(shí)施過(guò)程中,SCA規(guī)范本身的語(yǔ)義不清、重復(fù)定義和不完整往往給軟件無(wú)線電架構(gòu)的實(shí)現(xiàn)帶來(lái)了諸多挑戰(zhàn)。然而JTRS最新提出的SCA4.0是一種自適應(yīng)的軟件無(wú)線電體系結(jié)構(gòu),為解決這些問(wèn)題提出了很多優(yōu)化機(jī)制,使框架具有更靈活、輕量級(jí),更易實(shí)現(xiàn)新技術(shù)的特點(diǎn),這讓它在未來(lái)的軟件無(wú)線電發(fā)展中將占有不可或缺的位置。本文分析了SCA4.0規(guī)范的各類優(yōu)化機(jī)制,適用于多種平臺(tái),并提出將各類特征機(jī)制應(yīng)用于輕量級(jí)軟件架構(gòu),從而使得SCA的自適應(yīng)性能夠在資源受限的小型化設(shè)備中體現(xiàn)。
參 考 文 獻(xiàn)
[1] 范建華, 王曉波, 李云洲. 基于軟件通信體系結(jié)構(gòu)的軟件定義無(wú)線電系統(tǒng)[J]. 清華大學(xué)學(xué)報(bào): 自然科學(xué)版, 2011, 51(8): 1031-1037.
[2] JTRS JPEO. SCA Specification Version 4.0 (2012-02-28),Software Communications Architecture Specification [S].
[3] JTNC. Software Communications Architecture Specification 4.0 Users Guide [EB/OL]. (2010-11-30) [2014-12-11]. http://jtnc.mil/Pages/ StandardsAndAssessments.aspx, 2012.
[4] 蔡卓, 張小瓊. SCA 4.0 規(guī)范概述[J]. 通信技術(shù), 2013, 7: 041.
[5] 劉文斌, 廖文瑜, 彭麟, 等. 電臺(tái)軟件架構(gòu)發(fā)展及其向 SCA4. 0 演進(jìn)的途徑分析[J]. 通信技術(shù), 2014, 4: 011.
[6] 唐麒. 小型化軟件通信體系結(jié)構(gòu)的研究與實(shí)現(xiàn)[D]. 國(guó)防科學(xué)技術(shù)大學(xué), 2011.