屈景怡,陳鐘玉,吳仁彪
(中國(guó)民航大學(xué) 天津市智能信號(hào)與圖像處理重點(diǎn)實(shí)驗(yàn)室,天津300300)
通航飛行服務(wù)站由監(jiān)控指揮系統(tǒng)、飛行計(jì)劃處理、沖突探測(cè)、航行情報(bào)服務(wù)系統(tǒng)、適配參數(shù)系統(tǒng)等多個(gè)子系統(tǒng)組成[1,2]。其中,適配參數(shù)系統(tǒng)的主要功能是對(duì)通航飛行服務(wù)站中各子系統(tǒng)的參數(shù)進(jìn)行配置管理,并以配置文件的形式發(fā)布最新的參數(shù)配置[3]。
在民用航空空管自動(dòng)化系統(tǒng)中,由于飛行流程和飛行參數(shù)等都是固定的,對(duì)于配置的靈活性要求并不高[4]。通航飛行服務(wù)站分為基本型、增強(qiáng)型和應(yīng)急型3種,需要根據(jù)不同的作業(yè)環(huán)境對(duì)各子系統(tǒng)進(jìn)行靈活的配置。比如,基本型和增強(qiáng)型飛行服務(wù)站所配備的軟件模塊種類、數(shù)量是不同的;應(yīng)急型的飛行服務(wù)站要求能夠根據(jù)工作地點(diǎn)進(jìn)行實(shí)地靈活配置。針對(duì)通航飛行服務(wù)站的特點(diǎn),本文提出了一種基于自定義腳本的方法,用于實(shí)現(xiàn)通航適配參數(shù)的靈活配置。
適配參數(shù)系統(tǒng),簡(jiǎn)稱DMS (data management system),它的主要功能是對(duì)系統(tǒng)參數(shù)進(jìn)行配置與管理。因此,適配參數(shù)系統(tǒng)的設(shè)計(jì)主要包括配置文件格式的設(shè)計(jì)和用戶界面的設(shè)計(jì)兩部分。
適配參數(shù)包括通航飛行服務(wù)站的地理參數(shù)、雷達(dá)參數(shù)、ADS-B參數(shù)、飛行計(jì)劃相關(guān)參數(shù)和多源航跡融合參數(shù)等。這些數(shù)據(jù)按功能模塊劃分,以配置文件的形式進(jìn)行存儲(chǔ),在通航飛行服務(wù)站各軟件模塊啟動(dòng)時(shí)作為初始化信息使用。這些數(shù)據(jù)一般是Name-Value形式的數(shù)據(jù),結(jié)構(gòu)簡(jiǎn)單,不存在復(fù)雜的嵌套結(jié)構(gòu)。目前常用的適配參數(shù)配置文件形式為INI文件和XML文件。表1給出兩種文件形式的對(duì)比。其中,代碼量和處理時(shí)間均是采用兩層結(jié)構(gòu)對(duì)控件信息進(jìn)行描述的情況下,對(duì)100個(gè)控件信息多次進(jìn)行解析和處理統(tǒng)計(jì)所得。
表1 INI與XML的對(duì)比
從表1中可以清晰地看出INI和XML 文件的優(yōu)缺點(diǎn)。對(duì)于小數(shù)據(jù)量、層次結(jié)構(gòu)簡(jiǎn)單的文件,XML 比INI文件需要的處理時(shí)間長(zhǎng)。XML雖然具有多平臺(tái)、支持?jǐn)?shù)據(jù)格式嵌套等明顯的優(yōu)勢(shì),但是,是以增加代碼量為代價(jià)的。XML數(shù)據(jù)格式的靈活性將大大增加用戶界面實(shí)現(xiàn)的復(fù)雜度[5]。
而INI文件雖然不具有平臺(tái)和數(shù)據(jù)格式的靈活性,但是完全可以支持Name-Value格式的數(shù)據(jù)配置,簡(jiǎn)單的數(shù)據(jù)格式也將使得用戶界面的實(shí)現(xiàn)更容易。由于通航飛行服務(wù)站使用的是統(tǒng)一的Windows操作系統(tǒng),所以不需要跨平臺(tái)特性。Windows相關(guān)的API提供了良好的接口,將大大提高易用性,節(jié)省系統(tǒng)開(kāi)銷。因此,通航適配參數(shù)系統(tǒng)選用INI文件作為配置文件格式。
適配參數(shù)系統(tǒng)是一個(gè)具有操作界面的軟件。界面配置的靈活性將直接影響著軟件的靈活性?,F(xiàn)行的適配參數(shù)系統(tǒng)都是固定的不可改動(dòng)的界面。即一個(gè)配置文件對(duì)應(yīng)一個(gè)操作界面,每一個(gè)配置參數(shù)對(duì)應(yīng)一個(gè)唯一的控件和唯一的格式檢查語(yǔ)句?,F(xiàn)行的適配參數(shù)系統(tǒng)的數(shù)據(jù)處理流程如圖1所示。
從圖1可以看出,現(xiàn)行的適配參數(shù)系統(tǒng)不具有可配置性的主要原因是控件與配置文件內(nèi)容一一綁定、格式和語(yǔ)法檢查與控件一一綁定。這種形式導(dǎo)致對(duì)配置文件中的任何一項(xiàng)做了增、刪、改等操作都將影響到界面的布局以及格式和語(yǔ)法檢查模塊接口設(shè)計(jì)。
圖1 現(xiàn)行DMS的實(shí)現(xiàn)流程
為了解決該問(wèn)題,基于自定義腳本的適配參數(shù)系統(tǒng)將界面控件信息寫入自定義腳本,在軟件啟動(dòng)時(shí)通過(guò)讀取腳本進(jìn)行控件的動(dòng)態(tài)生成,實(shí)現(xiàn)了配置項(xiàng)選擇區(qū)域的可配置。并同時(shí)采用CMFCPropertyGridCtrl控件進(jìn)行配置文件的顯示,實(shí)現(xiàn)了文件內(nèi)容與控件的脫離。而文件內(nèi)容的格式與和語(yǔ)法信息則寫入格式控制腳本中,實(shí)現(xiàn)了文件格式校核可配置。圖2是本文采用的自定義腳本方法實(shí)現(xiàn)適配參數(shù)系統(tǒng)的流程。
圖2 基于自定義腳本的DMS實(shí)現(xiàn)流程
由圖1和圖2的對(duì)比可以看到,本文提出的基于自定義腳本的實(shí)現(xiàn)方法以腳本作為界面生成和格式校核過(guò)程中的信息來(lái)源,只需要進(jìn)行腳本的更改即可改變用戶界面以及數(shù)據(jù)格式限制方式[5-8]?;谧远x腳本的適配參數(shù)系統(tǒng)在配置和修改上十分靈活,適用于通航飛行服務(wù)站靈活多變的工作環(huán)境。
腳本是使用特定的描述性語(yǔ)言,依據(jù)一定的格式編寫的文件[9]。腳本的格式是腳本解釋器對(duì)腳本內(nèi)容進(jìn)行解析的依據(jù)。因此,腳本格式的設(shè)計(jì)關(guān)系到腳本的易用性以及腳本解釋器的工作效率。
基于自定義腳本的適配參數(shù)系統(tǒng)的腳本分為兩種:一種是用于界面生成以及界面控件響應(yīng)的界面腳本;一種是用于對(duì)參數(shù)的格式和語(yǔ)法進(jìn)行檢查的參數(shù)格式腳本??紤]到系統(tǒng)中采用的都是INI文件,相關(guān)接口已經(jīng)比較完善,因此,自定義腳本也均采用INI格式進(jìn)行編寫,即采用“節(jié)-鍵-鍵值”的層次結(jié)構(gòu)。
自定義界面腳本的主要作用是生成用戶界面?;谧远x腳本的適配參數(shù)系統(tǒng)的界面是通過(guò)動(dòng)態(tài)創(chuàng)建控件生成的[10,11]。動(dòng)態(tài)創(chuàng)建控件時(shí),需要的信息包括控件ID、控件位置以及控件樣式。在處理控件事件時(shí),適配參數(shù)系統(tǒng)需要從界面腳本中獲取與控件關(guān)聯(lián)的子系統(tǒng)信息,因此,界面腳本設(shè)計(jì)如圖3所示。它詳細(xì)描述了控件 (CButton)的編號(hào)、位置以及與控件綁定的子系統(tǒng)信息。
圖3 界面腳本
圖3中,“001”是控件的編號(hào); “Name”是與控件綁定的子系統(tǒng)名稱;其余內(nèi)容是控件的位置信息。由于控件的顯示區(qū)域所占的屏幕比例是固定的,腳本中同樣以百分比來(lái)限定控件的位置及大小以保證在不同的屏幕下界面布局正確。
自定義參數(shù)格式腳本對(duì)各子系統(tǒng)中的參數(shù)格式進(jìn)行了詳細(xì)描述。用戶對(duì)各子系統(tǒng)的配置文件進(jìn)行修改時(shí),不一定能夠按照正確的參數(shù)格式進(jìn)行填寫或修改。因此,對(duì)用戶配置后的參數(shù)進(jìn)行格式檢查是十分必要的。自定義參數(shù)格式腳本能夠提供正確的格式描述,對(duì)用戶的操作進(jìn)行檢查及限定,從而保證用戶所做的操作是正確有效的。
根據(jù)統(tǒng)計(jì),通航飛行服務(wù)站中各子系統(tǒng)的參數(shù)分為字符和數(shù)字兩種,參數(shù)格式要求大致分為取值范圍限定、小數(shù)精度限定、長(zhǎng)度限定和數(shù)據(jù)類型限定等。自定義參數(shù)格式腳本中,主要采用 “格式類型關(guān)鍵詞/具體格式要求”的形式對(duì)參數(shù)的數(shù)據(jù)格式進(jìn)行描述。具體來(lái)說(shuō),自定義參數(shù)格式腳本中采用 “Range”、“Accuracy”、“Length”、“Data-Type”等作為格式描述關(guān)鍵詞,以分號(hào)作為 “具體格式要求”字段間的分隔標(biāo)記來(lái)對(duì)數(shù)據(jù)格式進(jìn)行描述。表2 是4類常用基本格式的腳本示例。
表2 常用基本格式腳本
在進(jìn)行配置文件管理時(shí),是以配置文件為單位,參數(shù)名稱為子單元進(jìn)行的。參考INI文件的格式,格式校核腳本以文件名為節(jié)名稱,參數(shù)名稱為鍵名,格式描述為鍵值的形式進(jìn)行書(shū)寫[6]。
(1)基本格式的腳本示例:適配參數(shù)系統(tǒng)中有取值范圍、長(zhǎng)度限制等幾種基本格式要求。圖4是取值范圍限制的腳本示例。圖4中描述的是:在配置文件“AIST_M(jìn)apOriLonLat.cfg”中,參數(shù) “Lon”和 “Lat”的取值范圍分別為 [0,180]和 [0,90]。當(dāng)用戶對(duì) “AIST_M(jìn)apOriLon-Lat.cfg”文件進(jìn)行參數(shù)配置時(shí),如果配置后的經(jīng)緯度參數(shù)“Lon”或 “Lat”不滿足相應(yīng)的取值范圍則會(huì)出現(xiàn)告警信息。
圖4 基本格式腳本
(2)組合格式的腳本示例:有時(shí),某些參數(shù)的格式用基本格式腳本不能進(jìn)行完整的描述。比如,對(duì)于數(shù)字類型的參數(shù)可能不只有取值范圍限定還有長(zhǎng)度限定和小數(shù)精度限定等要求。這時(shí),可以采用組合格式腳本進(jìn)行描述。實(shí)際上,對(duì)于字符型的參數(shù),其格式要求只可能為長(zhǎng)度限制或者固定取值選項(xiàng)兩種,不存在組合情況。因此,組合格式是針對(duì)數(shù)字型參數(shù)提出的。其腳本形如:“Range/取值范圍~數(shù)據(jù)類型/長(zhǎng)度限定”。圖5 是組合格式的腳本示例。圖5 中描述的是:在配置文件 “AIST_M(jìn)apOriLonLat.cfg”中,參數(shù) “Para”應(yīng)該是取值范圍為 [0,180],數(shù)據(jù)長(zhǎng)度不超過(guò)10的浮點(diǎn)數(shù)。
圖5 組合格式腳本
(3)多字段參數(shù)格式的腳本示例:所謂多字段的參數(shù)是指由多個(gè)字段按照一定的格式組成的參數(shù)。比如,多源航跡融合軟件中的 “Location”參數(shù)就是一個(gè)多字段參數(shù)。該參數(shù)記錄的是初始地理位置信息,由3個(gè)取值范圍不同的數(shù)字組成,分別表明經(jīng)緯度和高度,它們之間用逗號(hào)隔開(kāi)??梢钥闯觯癓ocation”的格式要求無(wú)法使用基本格式腳本和組合格式腳本進(jìn)行描述。這時(shí),可以使用多字段參數(shù)格式腳本。
多字段參數(shù)格式的關(guān)鍵字為 “MixCombin”,格式為“MixCombin/字段名稱1~分隔符名稱1~字段名稱2~分隔符名稱2……”。其中,分隔符名稱有預(yù)定義,程序可自動(dòng)識(shí)別。多字段參數(shù)格式腳本的書(shū)寫方法是:首先,對(duì)參數(shù)進(jìn)行整體形式的描述;然后,分別以各字段名稱為節(jié)名稱對(duì)分字段格式進(jìn)行描述。以 “Location”為例,其格式腳本如圖6所示。
圖6 多字段參數(shù)格式腳本
自定義腳本解釋模塊是將腳本最終轉(zhuǎn)化為具體界面并使得系統(tǒng)具有格式校核功能的核心模塊。根據(jù)自定義腳本的劃分,腳本解釋模塊分為界面腳本解釋模塊和參數(shù)格式腳本解釋模塊。
基于自定義腳本的適配參數(shù)系統(tǒng)在軟件啟動(dòng)時(shí),通過(guò)讀取界面腳本完成控件的動(dòng)態(tài)創(chuàng)建從而完成界面的生成??丶氖录t通過(guò)讀取腳本中的控件信息,根據(jù)信息內(nèi)容進(jìn)行響應(yīng)處理。即界面腳本的解析分為兩部分:界面的動(dòng)態(tài)創(chuàng)建和控件事件的響應(yīng)處理。
(1)界面的動(dòng)態(tài)創(chuàng)建:界面腳本中詳細(xì)記錄了界面上控件的位置、編號(hào)等信息。按照界面腳本完成各控件的動(dòng)態(tài)創(chuàng)建即可生成用戶界面。圖7為通過(guò)自定義界面腳本生成界面的過(guò)程。
圖7 界面的動(dòng)態(tài)創(chuàng)建流程
(2)控件事件的響應(yīng)處理:當(dāng)用戶進(jìn)行界面操作觸發(fā)了控件事件的時(shí)候,系統(tǒng)獲取控件的編號(hào)并以編號(hào)為關(guān)鍵字查找腳本獲得相應(yīng)的模塊信息,進(jìn)而對(duì)控件事件進(jìn)行響應(yīng)處理。圖8為控件事件的響應(yīng)處理過(guò)程。
參數(shù)格式腳本的格式是以配置文件名稱為節(jié)名稱,參數(shù)名稱為鍵名,參數(shù)格式描述為鍵值進(jìn)行編寫的。因此,在校核參數(shù)格式時(shí),首先以文件名稱和參數(shù)名稱為關(guān)鍵字進(jìn)行查找,然后對(duì)獲得的鍵值進(jìn)行解析,進(jìn)而獲得參數(shù)格式的具體描述,完成對(duì)數(shù)據(jù)的校核。即格式腳本的解析分為兩部分:格式信息的讀取和格式描述語(yǔ)句的解析[12]。
(1)描述語(yǔ)句的讀?。篧indows系統(tǒng)中提供了讀寫INI文件的API接口,在已知文件路徑、節(jié)名稱、鍵名稱的條件下,可以直接調(diào)用相關(guān)函數(shù)獲取鍵值。在進(jìn)行格式校核時(shí),腳本文件路徑已知,配置文件名稱即為節(jié)名稱,參數(shù)名稱即為鍵名稱,因此,可直接獲取其鍵值,即格式描述語(yǔ)句。例如,用戶對(duì)“AIST_M(jìn)apOriLonLat.cfg”中的參數(shù)“Para”進(jìn)行了修改,則描述語(yǔ)句的讀取過(guò)程如圖9所示。
(2)描述語(yǔ)句的解析:格式描述語(yǔ)句的格式為 “格式類型關(guān)鍵字/具體格式要求/長(zhǎng)度限制 (可缺?。薄F渲?,“具體格式要求”以 “;”為分隔符進(jìn)行字段的區(qū)分。按照該格式特點(diǎn),對(duì)格式描述語(yǔ)句進(jìn)行解析時(shí),首先以 “/”為分隔符區(qū)分格式類型、具體格式要求及長(zhǎng)度限制;然后以“;”為分隔符對(duì)具體格式描述進(jìn)行拆分,從而獲得完整的格式要求。格式要求在程序中被細(xì)化為取值范圍、長(zhǎng)度限制、固定取值范圍等內(nèi)容,從而可以對(duì)用戶的操作進(jìn)行格式檢查。以格式描述 “Range/0;180/Max10”為例,其解析過(guò)程如圖10所示。
圖9 描述語(yǔ)句的讀取流程
圖10 描述語(yǔ)句的解析流程
腳本是適配參數(shù)系統(tǒng)界面生成及數(shù)據(jù)校核的基本依據(jù)。腳本的正確性直接決定適配參數(shù)系統(tǒng)能否正常工作。因此,腳本解釋模塊需要具有處理異常腳本的能力。腳本中常出現(xiàn)的錯(cuò)誤包括大小寫錯(cuò)誤、不完整腳本描述和分割標(biāo)識(shí)符錯(cuò)誤等。目前,基于自定義腳本的適配參數(shù)系統(tǒng)對(duì)異常的腳本具有一定的容錯(cuò)機(jī)制,主要包括:
(1)不可識(shí)別的關(guān)鍵詞:對(duì)關(guān)鍵詞的大小寫進(jìn)行檢測(cè)和轉(zhuǎn)換,如果屬于大小寫錯(cuò)誤,則系統(tǒng)直接進(jìn)行糾正;否則,輸出告警信息。
(2)不完整的腳本描述:對(duì)于控件位置信息等腳本不完整的情況,直接使用系統(tǒng)中的默認(rèn)參數(shù)進(jìn)行設(shè)置;否則,輸出告警信息。
(3)不可識(shí)別的分割標(biāo)識(shí):依次遍歷無(wú)法識(shí)別分割標(biāo)識(shí)的腳本,若查找到可識(shí)別內(nèi)容,則進(jìn)行處理;否則,輸出告警信息。
本文所提出的基于自定義腳本的通航飛行服務(wù)站適配參數(shù)系統(tǒng)的開(kāi)發(fā)平臺(tái)為Windows操作系統(tǒng),編程語(yǔ)言為VC++。本文所提出的方法在上述平臺(tái)上成功通過(guò)測(cè)試,運(yùn)行良好。該適配參數(shù)系統(tǒng)可以實(shí)現(xiàn)界面控件、參數(shù)數(shù)據(jù)以及參數(shù)格式校核功能等多項(xiàng)內(nèi)容的靈活的配置。表3是添加10個(gè)界面控件及相應(yīng)控件事件響應(yīng)時(shí),傳統(tǒng)方法與本文方法工作量的對(duì)比。表4是為10個(gè)參數(shù)增加取值范圍限制時(shí),傳統(tǒng)方法與本文方法工作量的對(duì)比。表3和表4中的數(shù)據(jù)均是經(jīng)過(guò)多次測(cè)試平均而得,并且只表示大略數(shù)量上的對(duì)比,不對(duì)應(yīng)具體數(shù)值。
表3 界面修改工作量對(duì)比
表4 格式修改工作量對(duì)比
為適應(yīng)通航飛行服務(wù)站靈活可配置的要求,本文提出了一種基于自定義腳本的適配參數(shù)系統(tǒng)的實(shí)現(xiàn)方法,并在自主研發(fā)的通航飛行服務(wù)站中使用。由實(shí)際測(cè)試結(jié)果可知,該系統(tǒng)完全滿足功能需求,在傳統(tǒng)的適配參數(shù)系統(tǒng)的基礎(chǔ)上,大大地提高了可配置性,使用十分靈活,與通航飛行服務(wù)站的特點(diǎn)十分契合?;谧远x腳本的方法對(duì)類似的工程應(yīng)用具有一定的參考價(jià)值。在下一步工作中,我們將進(jìn)一步優(yōu)化腳本的解析方法,提高腳本解釋模塊的容錯(cuò)能力。
[1]ZHUANG Wenwu,LIU Guangcai,LI Zhangping.Countermeasures to accelerate the development of general aviation in China[J].Comprehensive Transportation,2008 (7):36-39(in Chinese).[莊文武,劉光才,李章萍.加快我國(guó)通用航空業(yè)發(fā)展的對(duì)策 [J].綜合運(yùn)輸,2008 (7):36-39.]
[2]CHEN Xin,LI Cheng,XU Dinghai,et al.Research of general aviation service station function and composition [J].Avionics Technology,2013,44 (2):10-13 (in Chinese).[陳昕,李橙,徐丁海,等.通用航空服務(wù)站功能與組成研究[J].航空電子技術(shù),2013,44 (2):10-13.]
[3]YAO Jiao.Synopsis of data management system in ATC3000[J].Computer CD Software and Applications,2014 (10):125-127 (in Chinese).[姚姣.ATC3000系統(tǒng)數(shù)據(jù)管理子系統(tǒng)的簡(jiǎn)介 [J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014 (10):125-127.]
[4]ZHANG Xu.Research on monitoring technology of air traffic control[D].Chengdu:Southwest Jiaotong University,2011(in Chinese).[張旭.民航ATC 系統(tǒng)監(jiān)控技術(shù)研究 [D].成都:西南交通大學(xué),2011.]
[5]FENG Jun,SHENG Zhenyu,TANG Zhixian.Web interface automatic generation method based on XML schema[J].Computer Engineering and Design,2013,34 (4):1498-1503 (in Chinese). [馮鈞,盛振宇,唐志賢.基于XML Schema的Web界面生成方法 [J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34 (4):1498-1503.]
[6]ZHANG Jing,LI Xianbo,LI Ke,et al.An intelligent sequential operation scheme based on script language[J].Auto-mation of Electric Power Systems,2012,36 (6):112-115(in Chinese).[張靜,李先波,李科,等.基于腳本語(yǔ)言的智能程序化操作方案 [J].電力系統(tǒng)自動(dòng)化,2012,36 (6):112-115.]
[7]NING Aijun,MAN Chunlei,YANG Guanglei.A method of software reuse based on XML [J].Software Guide,2009,8(6):38-40 (in Chinese).[寧愛(ài)軍,滿春雷,楊光磊.一種基于XML的軟件復(fù)用方法[J].軟件導(dǎo)刊,2009,8(6):38-40.]
[8]LI Zhihua,SHEN Zuyi.Design of general test platform for RFDI based on description language [J].Computer Engineering and Design,2008,29 (4):1021-1024 (in Chinese).[李志華,沈祖詒.基于腳本語(yǔ)言的雷達(dá)故障診斷通用平臺(tái)設(shè)計(jì) [J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29 (4):1021-1024.]
[9]ZHANG Jinsheng.An approach for development of scriptdriven application system [D].Kunming:Yunnan University,2010 (in Chinese).[張錦盛.基于腳本驅(qū)動(dòng)的應(yīng)用系統(tǒng)開(kāi)發(fā)方法 [D].昆明:云南大學(xué),2010.]
[10]ZHANG Chengzhong,LI Min.Research of the application of the script language usage in the complicated game UI’s interface design [J].Information Technology and Informatization,2007 (3):48-50 (in Chinese).[張承忠,李敏.腳本語(yǔ)言在復(fù)雜用戶界面制作中的應(yīng)用研究 [J].信息技術(shù)與信息化,2007 (3):48-50.]
[11]ZHNAG Jianlei,WU Wenjiang.The implementation of CNC customizable interface based scripting language [J].Modular Machine Tool & Automatic Manufacturing Technique,2011(1):50-53 (in Chinese).[張建磊,吳文江.基于腳本語(yǔ)言的數(shù)控系統(tǒng)可定制界面的實(shí)現(xiàn) [J].組合機(jī)床與自動(dòng)化加工技術(shù),2011 (1):50-53.]
[12]SUN Jing,TAN Xiaohui,ZHAO Huiqun,et al.Research and implementation of ball games scenario interpreter [J].Journal of Computer Applications,2010,30 (3):612-614(in Chinese).[孫晶,譚效輝,趙會(huì)群,等.球類比賽的腳本解釋器的研究與實(shí)現(xiàn) [J].計(jì)算機(jī)應(yīng)用,2010,30 (3):612-614.]