徐孟娟,楊 威
(1.西安863軟件孵化器有限公司 陜西 西安 710075;2.西安計(jì)算機(jī)軟件產(chǎn)業(yè)推進(jìn)中心 陜西 西安 710075)
RFID(Radio Frequency Identification),即射頻識(shí)別,是一種非接觸式的自動(dòng)識(shí)別技術(shù),該技術(shù)利用無線射頻方式進(jìn)行非接觸的雙向通信,在識(shí)別的同時(shí)進(jìn)行數(shù)據(jù)交換[1]。RFID應(yīng)用領(lǐng)域日益擴(kuò)大,現(xiàn)已涉及到日常生活的各個(gè)方面,并將成為未來信息社會(huì)的一項(xiàng)基礎(chǔ)技術(shù)。特別是隨著“物聯(lián)網(wǎng)”概念引起業(yè)界廣泛關(guān)注,作為一種先進(jìn)生產(chǎn)力,RFID技術(shù)的廣泛應(yīng)用對(duì)提高生產(chǎn)效率、提升用戶應(yīng)用對(duì)應(yīng)用的體驗(yàn)具有極大的促進(jìn)作用。
RFID軟件在RFID整體開發(fā)中所占的比例也越來越高,而軟件設(shè)計(jì)與研發(fā)由于受到網(wǎng)絡(luò)和硬件環(huán)境不同的影響,導(dǎo)致生產(chǎn)效率低,開發(fā)成本大。盡管RFID軟件具有多樣化、與硬件密切相關(guān)等特性,但軟件各組成部分,仍然有其共有特點(diǎn)和構(gòu)成要素,所以采用構(gòu)件技術(shù)能夠支持RDID應(yīng)用系統(tǒng)的高效開發(fā)。
因此,文中研究在RFID領(lǐng)域中采用構(gòu)件化方法進(jìn)行軟件開發(fā),將功能進(jìn)行提煉分解,將相應(yīng)的軟件設(shè)計(jì)為軟件構(gòu)件,使其能夠重復(fù)應(yīng)用,成為提高軟件開發(fā)效率、保障軟件質(zhì)量的有效途徑。
上世紀(jì)九十年代中后期,隨著分布式對(duì)象,Internet、java和Client/Server計(jì)算模式的興起,基于構(gòu)件的軟件開發(fā)模式為廣大研究人員所認(rèn)同。軟件構(gòu)件是一個(gè)具有規(guī)范接口和確定的上下文依賴的組裝單元,能夠被獨(dú)立部署和被第三方組裝。
構(gòu)件化的軟件過程宜分成領(lǐng)域工程(開發(fā)構(gòu)件)和應(yīng)用過程(使用構(gòu)件開發(fā)應(yīng)用程序)兩個(gè)獨(dú)立的子過程,兩個(gè)子過程之間通過構(gòu)件庫(kù)聯(lián)系起來。因此構(gòu)件化的軟件開發(fā)技術(shù)的主要研究?jī)?nèi)容可以分為領(lǐng)域工程、應(yīng)用工程和過程管理3部分。
領(lǐng)域工程是為一組相似或相近系統(tǒng)的應(yīng)用工程建立基本能力和必備基礎(chǔ)的過程,是一種系統(tǒng)的生產(chǎn)構(gòu)件的過程,是開發(fā)構(gòu)件的主要方式[2]。領(lǐng)域工程包括3個(gè)主要的階段:
1)領(lǐng)域分析 領(lǐng)域分析的目的是建立領(lǐng)域模型(Domain Model),領(lǐng)域模型描述領(lǐng)域中系統(tǒng)之間的共同需求。領(lǐng)域分析的主要內(nèi)容包括確定領(lǐng)域邊界,識(shí)別信息源,分析領(lǐng)域中系統(tǒng)的需求,確定哪些需求是被領(lǐng)域中的系統(tǒng)廣泛共享的,哪些是可變的,并最終建立領(lǐng)域模型。
2)領(lǐng)域設(shè)計(jì) 領(lǐng)域設(shè)計(jì)的目標(biāo)是獲得領(lǐng)域構(gòu)架(Domain Specific Software Architecture,縮寫為DSSA)。領(lǐng)域設(shè)計(jì)需要考慮若干實(shí)現(xiàn)問題,例如:操作系統(tǒng)、采用的編程工具、軟件分布方、數(shù)據(jù)存取方式、選取體系結(jié)構(gòu)風(fēng)格(例如兩層C/S方式、B/S結(jié)構(gòu)、三層結(jié)構(gòu))、選取構(gòu)件實(shí)現(xiàn)模型。
3)領(lǐng)域?qū)崿F(xiàn) 領(lǐng)域?qū)崿F(xiàn)即實(shí)現(xiàn)在領(lǐng)域設(shè)計(jì)模型中的功能構(gòu)件和體系結(jié)構(gòu)構(gòu)件,生成最終的二進(jìn)制代碼,應(yīng)用軟件開發(fā)時(shí)集成到最終的程序中去。
這些活動(dòng)的產(chǎn)品(可復(fù)用的軟件構(gòu)件)包括:領(lǐng)域模型、領(lǐng)域構(gòu)架、領(lǐng)域特定的語言、代碼生成器和代碼構(gòu)件等。
通過對(duì)RFID軟件系統(tǒng)進(jìn)行分析,識(shí)別RFID應(yīng)用的公共特征和可變特征,對(duì)刻畫這些特征的對(duì)象和操作進(jìn)行選擇和抽象,形成領(lǐng)域模型。
典型的RFID系統(tǒng)分為3個(gè)主要部分:硬件、應(yīng)用軟件和RFID中間件。
硬件部分:主要包括RFID讀寫器、天線、標(biāo)簽,將RFID讀寫器放在預(yù)先設(shè)定好的位置,電子標(biāo)簽貼在待識(shí)別物體上,在RFID天線的識(shí)讀范圍即可實(shí)現(xiàn)標(biāo)簽數(shù)據(jù)的讀取[3]。
應(yīng)用軟件部分:主要是在ERP、MRP等相關(guān)的企業(yè)管理系統(tǒng)。
RFID中間件部分:RFID軟件中除了標(biāo)簽和閱讀器上運(yùn)行的軟件外,介于閱讀器與企業(yè)應(yīng)用之間的中間件是其中的一個(gè)重要組成部分。中間件為企業(yè)應(yīng)用提供一系類計(jì)算功能,在電子產(chǎn)品編碼(Electronic Product Code,EPC)規(guī)范中被稱為Savant。其主要任務(wù)是對(duì)硬件部分采集的數(shù)據(jù),經(jīng)過提取、解密、過濾、轉(zhuǎn)換、導(dǎo)入應(yīng)用軟件系統(tǒng),并通過應(yīng)用系統(tǒng)呈現(xiàn)在界面上,供操作者瀏覽、查詢、選擇、修改。
綜合分析RFID的整體結(jié)構(gòu),本文歸納RFID的體系架構(gòu)如圖1所示:讀寫器和射頻Tag構(gòu)成RFID硬件系統(tǒng);射頻中間件即RFID中間件,同時(shí)通過連接ONS服務(wù)器和PML服務(wù)器,可以在全球范圍內(nèi)形成一種“新式網(wǎng)絡(luò)”;企業(yè)應(yīng)用層接受來自RFID中間件的相關(guān)RFID信息數(shù)據(jù),是RFID數(shù)據(jù)后端應(yīng)用部分。
圖1 RFID體系架構(gòu)Fig.1 RFID architecture
構(gòu)件模型對(duì)構(gòu)件化開發(fā)方法的研究起著至關(guān)重要的作用,構(gòu)件模型是構(gòu)件技術(shù)的核心內(nèi)容[4]。XML語言作為構(gòu)件描述語言,相對(duì)其他語言有很強(qiáng)的優(yōu)越性,便于組裝工具通過構(gòu)件的描述文檔了解構(gòu)件信息,以及驗(yàn)證構(gòu)件之間的約束關(guān)系等。在基于普通構(gòu)件模型的基礎(chǔ)上,本文采用的領(lǐng)域構(gòu)件模型如圖2所示。
圖2 RFID領(lǐng)域構(gòu)件模型Fig.2 RFID Domain component model
由圖2的RFID領(lǐng)域構(gòu)件模型可知,領(lǐng)域構(gòu)件包括構(gòu)件實(shí)體和構(gòu)件文法描述。其中,構(gòu)件實(shí)體包含構(gòu)件屬性、構(gòu)件服務(wù)接口、構(gòu)件引用接口等;構(gòu)件文法描述即為 <構(gòu)件關(guān)系集合,服務(wù)接口集合,引用接口集合>描述文檔。在構(gòu)件文法描述中,構(gòu)件關(guān)系集合即為構(gòu)件所依賴的構(gòu)件集合和與該構(gòu)件互斥的構(gòu)件集合;服務(wù)接口集合即為該構(gòu)件對(duì)外提供的服務(wù)接口;構(gòu)件引用接口集合則是該構(gòu)件所引用其他構(gòu)件服務(wù)的接口。
在RFID構(gòu)件庫(kù)構(gòu)件的開發(fā)和積累中,將產(chǎn)生包含基礎(chǔ)應(yīng)用類、表示層類、運(yùn)算邏輯類和流程類構(gòu)件等基礎(chǔ)構(gòu)件和應(yīng)用于讀寫器、電子標(biāo)簽及通信網(wǎng)絡(luò)的專用構(gòu)件。隨著RFID領(lǐng)域的不斷發(fā)展和深入演化,需要在保持整體表示結(jié)構(gòu)的情況下,適當(dāng)對(duì)RFID構(gòu)件的屬性進(jìn)行一定的修正、擴(kuò)充和刪減,以保證構(gòu)件在描述上的準(zhǔn)確性。
構(gòu)件的分類方法有很多種,刻面分類方法更適合于面向特定領(lǐng)域構(gòu)件庫(kù),特定領(lǐng)域的刻面分類模式易于從領(lǐng)域模型中導(dǎo)出。采用刻面分類方法對(duì)RFID構(gòu)件庫(kù)中的構(gòu)件進(jìn)行刻面分類,以各類構(gòu)件的共同特征實(shí)現(xiàn)對(duì)RFID構(gòu)件庫(kù)基礎(chǔ)構(gòu)件和專用構(gòu)件統(tǒng)一組織、統(tǒng)一管理和檢索,并在此基礎(chǔ)上進(jìn)行構(gòu)件檢索技術(shù)的研究[5]。
從刻面分類模式本身來說,它不區(qū)分領(lǐng)域,要求所有的構(gòu)件都使用同樣的刻面來描述,這種限制極大影響了用戶對(duì)目標(biāo)領(lǐng)域的理解和檢索效率和質(zhì)量。領(lǐng)域不同,刻面描述重點(diǎn)可能會(huì)有較大差異[6]。因此,面向特定領(lǐng)域構(gòu)件庫(kù),限制了領(lǐng)域術(shù)語空間,將大大提高構(gòu)件的查準(zhǔn)率。
Prieto-Diaz最早所提出的刻面分類方案包括兩個(gè)方面:“功能”和“環(huán)境”,通過上述對(duì)RFID領(lǐng)域系統(tǒng)的分析,并結(jié)合實(shí)際應(yīng)用系統(tǒng)開發(fā)需要,本文使用一個(gè)4元組來描述構(gòu)件,具體屬性如圖3所示。
1)Type 類型;
2)Application Domain應(yīng)用領(lǐng)域;
3)Language語言特性
4)Level層次;
以上是4個(gè)屬性彼此之間相互正交,充分體現(xiàn)構(gòu)件對(duì)于用戶最相關(guān)的特征表示,能較好適應(yīng)RFID構(gòu)件庫(kù)的發(fā)展和刻面的兼容擴(kuò)充。該刻面分類建立的術(shù)語空間樹如圖4~7所示。
圖3 根刻面Fig.3 Root facets
圖4 構(gòu)件類型術(shù)語空間樹Fig.4 Terms space tree of component type
圖5 應(yīng)用領(lǐng)域術(shù)語空間樹Fig.5 Terms space tree of application areas
圖6 語言特性術(shù)語空間樹Fig.6 Terms space tree of language
圖7 層次術(shù)語空間樹Fig.7 Terms space tree of hierarchy
軟件復(fù)用技術(shù)能夠很好的解決軟件規(guī)模和復(fù)雜度日益增加的困境,基于構(gòu)件的軟件開發(fā)是軟件復(fù)用的一種有效方法,這一方法同樣適宜在RFID軟件開發(fā)過程中采用。本文分析和研究了RFID領(lǐng)域的系統(tǒng)結(jié)構(gòu),從而推出RFID領(lǐng)域構(gòu)件模型;分析RFID軟件構(gòu)件的分類方法并選擇刻面分類法作為RFID軟件構(gòu)件的分類方法,對(duì)刻面和每個(gè)刻面的術(shù)語進(jìn)行了詳細(xì)闡述,為RFID軟件構(gòu)件化開發(fā)提供借鑒。
[1]李錦濤,郭俊波,羅海勇,等.射頻識(shí)別(RFID)技術(shù)及應(yīng)用[J].信息技術(shù)快報(bào),2004,2(11):1-10.
LI Jing-tao,GUO Jun-bo,LUO Hai-yong,et al.RFID technology and appliction[J].Information Technology Letter,2004,2(11):1-10.
[2]楊芙清,梅宏,李克勤.軟件復(fù)用與軟件構(gòu)件技術(shù)[J].電子學(xué)報(bào),1999,27(2):68-74.
YANG Fu-qing,MEI Hong,LI Ke-qing.Software reuse and software component technology[J].ACTA Electronic Sinaca,1999,27(2):68-74.
[3]鄧海生,李軍懷.基于SOA的RFID中間件的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與應(yīng)用,2007(10):131-134.
DENG Hai-sheng,LI Jun-huai.Study and implementation of RFID middleware based on SOA[J].Computer and Technology and Its Application,2007(10):131-134.
[4]張世琨,張文娟,常欣,等.基于軟件體系結(jié)構(gòu)的可復(fù)用構(gòu)件制作和組裝[J].軟件學(xué)報(bào),2001,9(12):1351-1359.
ZHANG Shi-kun,ZHANG Wen-juan,CHANG Xin,et al.The production and assembly of reusable component based software architecture[J].Journal of Software,2001,9(12):1351-1359.
[5]王淵峰,張涌,任洪敏,等.基于刻面描述的構(gòu)件檢索[J].軟件學(xué)報(bào),2002,13(8):1546-1551.
WANG Yuan-feng,ZHANG Yong,REN Hong-min,et al.Component retrieval based on faceted description[J].Journal of Software,2002,13(8):1546-1551.
[6]付青華,林寧,馮惠,等.基于刻面分類的構(gòu)件檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(6):57-66.
FU Qing-hua,LIN Ning,F(xiàn)ENG Hui,et al.Design and implementation component retrieval system based on faceted classification[J].Computer Application and Software,2010,27(6):57-66.