蔡 卓,張小瓊
(中國電子科技集團公司第三十研究所,四川 成都 610041)
軟件通信體系結(jié)構(gòu)(SCA,Software Communications Architecture)規(guī)范是美軍在實施聯(lián)合戰(zhàn)術(shù)無線電系統(tǒng)計劃過程中提出的一個標準規(guī)范集,它為軟件無線電臺的設(shè)計提供了一種與實現(xiàn)無關(guān)的開放式架構(gòu)。SCA的目的是實現(xiàn)無線通信裝備硬件模塊化,軟件具有可移植性、可重用性和互操作性。
盡管SCA來自于軍方項目,但隨著時間推移,SCA提出的規(guī)范方法和目標正日益受到軍方和非軍方的重視,并進入商用和民用的領(lǐng)域。
SCA的核心思想是采用面向?qū)ο蟮姆椒▉碓O(shè)計一種標準化的軟件系統(tǒng),通過將不同的軟件波形加載到通用的硬件平臺中來實現(xiàn)不同的功能,使無線電臺的更新?lián)Q代只需要更換其中的軟件波形就可以實現(xiàn),達到了軟件可重復(fù)使用的目的。軟件的重用性不僅縮短了無線電臺的開發(fā)周期,也在一定程度上降低了開發(fā)成本。
SCA標準最初發(fā)布于1999年,到目前為止發(fā)布了多個版本。目前SCA的最新版本為2012年2月發(fā)布的SCA4.0規(guī)范。
SCA4.0[1-2](早期發(fā)展階段被稱為SCA Next)是SCA標準的重要修訂。SCA4.0可以通過裁減以更好地適應(yīng)每個電臺及其任務(wù)的具體功能。內(nèi)存和處理功耗可以得到顯著降低。體系結(jié)構(gòu)的增強也提高了安全性,并且使得電臺能夠更快地啟動和重新配置。
輕量級組件和功能單元是SCA4.0的兩種機制,可以用于更好地將任務(wù)需求和基于SCA的產(chǎn)品結(jié)合在一起。輕量級組件提供了一種靈活的結(jié)構(gòu)化方法,以適應(yīng)各種平臺的需求(移動的與固定的,單信道與多信道,單個波形與多種波形等),而不是一個大小用于所有結(jié)構(gòu)。
SCA2.2.2中的接口功能齊全,導(dǎo)致部分組件比需要的大。例如,一個SCA2.2.2的資源組件包括了測試對象、屬性等特性。但是如果一個組件不需要自檢測試或?qū)傩阅??SCA2.2.2仍然要求組件實現(xiàn)那些功能。
SCA4.0引入了一種新的設(shè)計模式——選擇性繼承。圖1以資源(Resource)接口為例說明選擇性繼承的特征。繼承線上有注釋的表明接口為可選性繼承。對于Resource接口,只有一個接口是必須的——生命周期(LifeCycle),其他接口根據(jù)需要來使用。接口描述語言(IDL,Interface Definition Language)中的預(yù)編譯定義允許開發(fā)者規(guī)定一個具體的組件需要哪些接口。因為這個特征,SCA組件比之前的版本要小。
圖1 Resoure接口的選擇性繼承
選擇性繼承設(shè)計模式已經(jīng)擴展到其他核心框架接口內(nèi)。例如,加載能力(LoadableCapacity)接口之前對所有的加載設(shè)備(LoadableDecives)都是需要的。在一些實現(xiàn)中,由這個接口提供的功能可以不使用,因此SCA 4..0 允許組件創(chuàng)建時沒有該接口。
SCA4.0引入了一個新的接口,端口訪問(PortAccessor)接口。PortAccessor接口包含了早期版本的端口(port)和端口提供者(PortSupplier)接口功能。繼承SCA2.2.2的波形將需要更新為新的PortAccessor,而不需要做其他的改動。
SCA之前的版本使用圖2的提取模型(pull model)。為了獲取需要的信息,需要使用調(diào)用返回(callback)方式。例如:
1)getPort用于提取使用和提供的端口。
2)提取屬性:如用getDeviceID得到設(shè)備的ID,用getRegisteredDevices得到注冊的設(shè)備。
3)用resolve從一個命名服務(wù)提取應(yīng)用組件。
圖2 pull model 示意圖
SCA4.0引入了一個“push model”。圖3中,體系結(jié)構(gòu)允許信息直接交換,而不使用調(diào)用返回方式,這個模型的主要好處在于能有更好的保證和性能。更好地保證通過限制僅使用push訪問來獲得,并且消除了對命名服務(wù)的需求。更好的性能獲得是通過減少了調(diào)用的總次數(shù)。這可以減少啟動和初始化時間。它也允許調(diào)用返回的屬性和操作成為可選的,當不使用的時候,減少了需要的實現(xiàn)。例如,圖3中,registerComponent用于組件或設(shè)備的注冊,registerDeviceManager用于設(shè)備管理器組件的注冊。
圖3 push model 示意圖
SCA2.2.2和它之前的版本規(guī)定公共對象請求代理體系結(jié)構(gòu)(CORBA,Common Object Request Broker Architecture)作為中間件,對電臺開發(fā)者延遲了具體的傳輸機制。歷史上的數(shù)據(jù)傳輸機制已經(jīng)有TCP-IP和共享內(nèi)存。TCP-IP協(xié)議可能引入了實際的等待時間。更快的傳輸如共享內(nèi)存通常對高速數(shù)據(jù)率波形可以獲得可接受的延遲。
SCA4.0已經(jīng)刪除了CORBA要求,定義了獨立的中間件應(yīng)用程序接口(API,Application Program Interface),盡管API仍然是通過IDL規(guī)定的。電臺開發(fā)者可以使用CORBA,或者選擇一個不同的中間件,例如安卓平臺使用的輕量級遠程過程控制(RPC,Remote Procedure Control)。對不同中間件的實現(xiàn),波形應(yīng)該需要重新編譯,但是API仍然是相同的,維持了波形的可移植性。
在SCA4.0發(fā)布之前,SCA僅支持配置單個的、獨立的應(yīng)用的能力。當多個應(yīng)用配置在一個平臺時,SCA組件框架不提供直接的連接支持或者邏輯上將這些應(yīng)用分級的能力。因此,創(chuàng)建應(yīng)用的客戶端被留下人工進行,通過使用外部端口的組合以及應(yīng)用可擴展標記語言(XML,Extensible Markup Language)文件中收集的硬編碼的連接或自動連接。然而這種方法非常受限,需要客戶端實現(xiàn)更多。
在SCA4.0中,分級應(yīng)用支持和應(yīng)用連通性已經(jīng)被增加以支持多個應(yīng)用。
分級應(yīng)用源自簡單的需要:想將封裝的復(fù)雜的應(yīng)用結(jié)構(gòu)進一步分解為一個分級的結(jié)構(gòu)。然而早期的SCA中,一個應(yīng)用結(jié)構(gòu)是“扁平的”,簡單地由葉子節(jié)點的組件構(gòu)成,在SCA4.0中不再有這個限制。因此,可以形成復(fù)雜的組件,并抽象為子應(yīng)用,然后使用這些組件形成應(yīng)用。這種體系結(jié)構(gòu)技術(shù)可以使得一個組件能用于不同的情況下,提升了如在軟件產(chǎn)品線中使用的庫的重用。分級應(yīng)用的示意圖見圖4。
SCA4.0定義了一種正式的機制,利用軟件裝配描述文件(SAD,Software Assembly Descriptor)中的外部端口(externalports)元素作為管道,通過它框架能管理那些交互應(yīng)用連接的形成和銷毀。外部的端口連接創(chuàng)建為這個問題提供了一種好的解決辦法,因為這個問題的本性——兩個需要連接的應(yīng)用彼此互相依賴于將被創(chuàng)建的連接,但是它們被獨立創(chuàng)建而且不保證它們將被一起創(chuàng)建。連接機制需要知道怎樣處理這種情況:當連接的一邊存在、而另一邊不存在。然而,如果應(yīng)用的兩邊都被創(chuàng)建,那么應(yīng)用總是被連接的。
圖4 一種簡單的分級應(yīng)用
SCA規(guī)范自提出以來,就被軟件無線電論壇接受作為未來無線電開發(fā)的標準。各國也對SCA規(guī)范展開了大規(guī)模的研究工作。近年來國內(nèi)對軟件無線電也進行了許多的研究及開發(fā)[3-6]。中國SCA4.0對之前的規(guī)范進行了重要修訂,使之可以裁剪,更加輕量級、靈活。SCA4.0可以兼容從小的單信道電臺到大功率、多信道電臺等各種大小的電臺。SCA4.0提供了一個增強的集合特征,以支持波形的移植性和互操作性。了解SCA4.0,對于軟件無線電的研究開發(fā)工作有著重要意義。
[1]JTRS JPEO. Software Communications Architecture Specification, Version 4.0[EB/OL].(2001-12-19)[2013-03-11].http://jpeojtrs.mil/sca/Pages/port abilityguidelines.aspx,2012
[2]JTNC. Software Communications Architecture Specification 4.0 User’s Guide[EB/OL].(2010-11-30)[2013-03-11].http://jpeojtrs.mil/sca/Pages/port abilityguidelines.aspx,2012
[3]馬子驥,鄭善賢,劉宏立.一種基于軟件無線電的數(shù)字解調(diào)方法研究[J].信息安全與通信保密,2008(03):34-35.
[4]王爍,周家喜,王慶華.SCA架構(gòu)軟件無線電臺設(shè)計與實現(xiàn)[J].通信技術(shù),2011,44(06):40-42.
[5]張海燕,叢鍵.一種新型SCA電臺的分析與設(shè)計[J].通信技術(shù),2012,45(09):21-24.
[6]王贏.基于SCA規(guī)范的跳頻通信波形設(shè)計與開發(fā)[D].杭州:杭州電子科技大學(xué),2010.