

組件技術(shù)與軟件Agent技術(shù)
- 期刊名字:巢湖學(xué)院學(xué)報
- 文件大?。?70kb
- 論文作者:王一賓,昌杰
- 作者單位:安慶師范學(xué)院,巢湖學(xué)院
- 更新時(shí)間:2020-10-26
- 下載次數:次
2005年第7卷第3期.巢湖學(xué)院學(xué)報No. 3.. Vol.7. 2005總第7 2期Joumal of Chaohu collegeGeneral Serial No. 72組件技術(shù)與軟件Agent技術(shù)王一賓',昌杰2(1安慶師范學(xué)院計算機與信息學(xué)院,安徽安慶246011)(2巢湖學(xué)院數學(xué)計算機系,安徽巢湖238000)摘要:組件技術(shù)的提出對軟件重用和軟件開(kāi)發(fā)效率的提高具有非常重要的意義;而軟件Agent技術(shù)的提出為復雜分布式問(wèn)題的求解找到了很好的辦法。文中首先分析了組件技術(shù)和軟件Agent技術(shù)的主要內容,然后提出將組件技術(shù)與軟件Agent技術(shù)相融合可以有效地提高軟件的重用性、靈活性及適應性等,最后簡(jiǎn)述了組件技術(shù)和軟件Agent技術(shù)在大型軟件開(kāi)發(fā)中的應用等。關(guān)鍵詞:組件;軟件Agent;軟件重用;軟件體系結構中圖分類(lèi)號: TP311文獻標識碼: A文章編號:1672- -2868(2005)03 -0078 03Component Technique and Software Agent TechniqueWANG Yi-bin', CHANG Jice'(1.. . School of Computer Science and Information Engineering, Anqing Teachers College, Anqing 246011, China)(2. Department of Computer Science ,Chaohu College, Chaohu 238000 China)Abstract: It is very important to present the concept of component technique for improvingsoftware reuse and development efficiency. And it is a good method to present agent-basedtechnology for solving complex and distributed problems. Firstly, the main content of componenttechnique and software agent are analyzed. Then, it is presented to combine component techniqueand software agent may improve software reuse, flexible and adapter etc. Lastly, appl icat ionsby component technique and software agent in large - -scale software developnent are introduced.Key words: Component; Software Agent; Software Reuse; Sof tware Architecture組件及組件軟件工程概念的提出有利于提高軟件開(kāi)發(fā)速度、降低軟件開(kāi)發(fā)成本和軟件維護成本,有利于提高軟件的重用性,有利于解決軟件危機等,組件軟件工程的出現改變了軟件開(kāi)發(fā)的各個(gè)環(huán)節,它是軟件生產(chǎn)技術(shù)的巨大進(jìn)步"。軟件工程的進(jìn)步主要靠不斷產(chǎn)生新的抽象方法來(lái)實(shí)現復雜系統,如過(guò)程抽象、抽象數據類(lèi)型、面向對象技術(shù),都是使軟件遠離面向機器的觀(guān)點(diǎn),而向人們理解世界的方法靠近,面向Agent技術(shù)的提出為復雜分布式問(wèn)題的求解找到了很好的辦法,它是人工智能與計算機科學(xué)新的結合,用于解決復雜分布的現實(shí)問(wèn)題,開(kāi)發(fā)處于動(dòng)態(tài)的、不確定環(huán)境中的、健壯的、大規模的軟件系統”。將組件技術(shù)與軟件Agent 技術(shù)相結合可以有效地提高軟件的重用性、靈活性及適應性,有利于大型分布式軟件系統的開(kāi)發(fā)等。一、與組件技術(shù)1.1組件的主要概念組件是具有-定的功能,能夠獨立工作或能同其它組件裝配起來(lái)協(xié)調工作的程序體,組件的使用同它的開(kāi)發(fā)、生產(chǎn)無(wú)關(guān)"。如果把軟件系統看成是組件的集合,那么從組件的外部形態(tài)來(lái)看,構成- -個(gè)系統的組件可分為獨立而成熟的組件、有限制的組件、適應性的組件、裝配的組件、可修改的組件五大類(lèi)。1.2組件技術(shù)的特點(diǎn)組件往往是開(kāi)發(fā)后經(jīng)過(guò)編譯成為二進(jìn)制代碼,才進(jìn)行發(fā)布使用,與開(kāi)發(fā)工具語(yǔ)言無(wú)關(guān),能夠實(shí)現即插即用,井中國煤化工收稿日期: 2005- -2- -18基金項目:安慶師范學(xué)院科研基金資助(2003y1y06)MYHCNMHG作者簡(jiǎn)介: 1.王一賓 (1970-), 兄安徽安慶人,合肥工業(yè)大學(xué)計算機與信息學(xué)院在職研究生。2.昌杰(1979-),男巢湖學(xué)院數學(xué)系講師.78且通過(guò)接口有效地保證組件的重用性,可以通過(guò)市場(chǎng)銷(xiāo)售和分發(fā)。組件軟件工程可以看作是在一定組件模型的支持下,重用組件庫中的一-個(gè)或多個(gè)軟件組件,通過(guò)組合手段高效率、高質(zhì)量地構造應用軟件系統的過(guò)程。目前,有多個(gè)組織和公司為組件、組件框架和接口建立了模型和技術(shù)規范,其中OMG CORBA, Microsoft COM/DC0M/COM+, SUNJavaBean/EJB占主導地位。組件技術(shù)具有以下優(yōu)點(diǎn)": (1) 從根本上改變軟件生產(chǎn)方式,提高軟件開(kāi)發(fā)速度(2)提高軟件的重用率,保護已有的投資,降低軟件開(kāi)發(fā)成本(3) 使開(kāi)發(fā)出的系統更加靈活,便于維護和升級,可以降低維護費用(4)使開(kāi)發(fā)者將更多的注意力放到業(yè)務(wù)流程和業(yè)務(wù)規則上去,降低對系統開(kāi)發(fā)者的要求等。所以,組件技術(shù)可以使原來(lái)周期較長(cháng)的、復雜的軟件開(kāi)發(fā)工作變得簡(jiǎn)單、快速并且成本低廉。1.3基于組件的軟件開(kāi)發(fā)基于組件的軟件開(kāi)發(fā)是當前的一個(gè)研究熱點(diǎn),對該領(lǐng)域貢獻最大的是軟件體系結構理論,所有軟件開(kāi)發(fā)方法都要解決從需求到實(shí)現之間的轉換問(wèn)題?;诮M件的軟件開(kāi)發(fā)就像搭積木- -樣容易, 主要包括組件的開(kāi)發(fā)和應用程序的開(kāi)發(fā),可分為需求分析、組件收集、基于組件的設計、組件裝配、測試、運行與維護等六個(gè)主要階段,如圖1所示。需求分析階段是分析用戶(hù)的需求,了解“做什么”:組件收集是依賴(lài)于需求分析的結果,收集相應的組件,部分組件的收集工作可以與需求分析階段并行進(jìn)行,這樣也有利于節省時(shí)間,提高開(kāi)發(fā)需求分析組件收集效率;基于組件的設計是在沒(méi)有現成組件的情況下深入進(jìn)行領(lǐng)域分析,確定組件功能,規劃對外接口實(shí)現組件的設計:組件裝配是將收集的組件或開(kāi)發(fā)的組件按照一定 的組件模型進(jìn)行組件的組裝集成;測基于組件的設計試主要是集成測試和系統測試,因單元測試主要是在組件開(kāi)發(fā)階段進(jìn)行;運行與維護是投入運行,并且為了滿(mǎn)足用戶(hù)對已開(kāi)發(fā)產(chǎn)品的性能與運行環(huán)境提高的要求,為延長(cháng)軟件壽命進(jìn)行的一系列活動(dòng)。2、Agent 技術(shù)組件裝配2.1軟件Agent的定義及主要特性什么是軟件Agent?由于軟件Agent的研究者來(lái)自許多不同的領(lǐng)域,使得軟件Agent的含義也具有多重性。歸納起來(lái),Agent可定義測‘試為“一個(gè)能夠根據它對其環(huán)境的感知,主動(dòng)采取決策和行為的軟件實(shí)體”0。Agent的關(guān)鍵屬性主要有自主性、交互性、適應性、智能性、運行與維護協(xié)同性、移動(dòng)性等,自主性表示沒(méi)有外部直接千涉能夠根據自身經(jīng)驗進(jìn)行行動(dòng);交互性表示與環(huán)境及其它Agent交流;適應性表示在某種圖1基于組件的軟件開(kāi)發(fā)程度上能夠響應其它Agent或環(huán)境;智能性是由知識所形式化的狀態(tài)與其它Agent使用符號語(yǔ)言交互;協(xié)同性是指Agent能在多Agent 系統環(huán)境中協(xié)同工作,以執行和完成一些相互受益的復雜任務(wù);移動(dòng)性表示能夠將自己從一個(gè)環(huán)境轉移到另- -個(gè)環(huán)境。 事實(shí)上,很難看到-一個(gè)Agent都具有上述特性,一般認為,前三項是必需的。2.2軟件Agent技術(shù)的特點(diǎn)軟件Agent 技術(shù)可以看作是軟件開(kāi)發(fā)的又一-重大突破, 這是因為它不僅能夠以-種自然、高效的方式解決傳統軟件業(yè)中存在的問(wèn)題,而且還能為解決目前軟件發(fā)展中其他技術(shù)難以解決的問(wèn)題提供了-一個(gè)理想的途徑。軟件Agent與其他軟件技術(shù)相比較,在解決傳統軟件業(yè)中存在的問(wèn)題時(shí)具有如下優(yōu)點(diǎn)0!: (1) 系統的數據、控制、專(zhuān)家知識和資源可以分布存儲處理。(2) 對Agent 組成的系統可以進(jìn)行自然的描述,有利于各有關(guān)人員對軟件系統的理解。(3) Agent 軟件系統具有靈活性,有利于現有軟件的集成。(4)開(kāi)放性和復雜性Internet/ Intranet的發(fā)展對軟件的開(kāi)發(fā)提出了新的問(wèn)題,高度開(kāi)放的計算機網(wǎng)絡(luò )是一一個(gè)松散耦合的軟件環(huán)境,軟件生產(chǎn)所面臨的難題是系統具有高度的開(kāi)放性和復雜性,而軟件Agent為解決這兩個(gè)問(wèn)題提供了獨特的思路: Agent軟件系統具備高度的靈活性和堅固性解決開(kāi)放性問(wèn)題:開(kāi)發(fā)-些能夠解決特定應用領(lǐng)域的專(zhuān)用模塊化構件解決復雜性問(wèn)題,而Agent 的應激性和主動(dòng)性使得它既能對環(huán)境變化做出反應,又能根據目標主動(dòng)規劃自己的行為??梢?jiàn),軟件Agent更能解決復雜的問(wèn)題。2.3基于A(yíng)gent的軟件開(kāi)發(fā)基于A(yíng)gent技術(shù)的應用開(kāi)發(fā)可以按照下述步驟進(jìn)行: (1) 分析系統的特點(diǎn),選擇合適的實(shí)現技術(shù)。當應用需要具有跨平臺、跨網(wǎng)絡(luò )、跨地域甚至跨行業(yè)的互操作性以及較高的個(gè)人化、智能化時(shí)可以考慮采用Agent技術(shù)。這里并不排除以多種技術(shù)實(shí)現應用系統的可能性。在確定以Agent技術(shù)實(shí)中國煤化工應用所涉及的各個(gè)對象,決定哪些采用Agent實(shí)現,哪些采用其他方法實(shí)現。(2) AgYHCNMHGt的種類(lèi):移動(dòng).二用Agent 技術(shù)實(shí)現部分的數據和功能。Agent 間明確分工后,應當根據各自功能確定Agent還是靜態(tài)Agent. (3) Agent接口的設計。Agent 接口的設計非常關(guān)鍵,它往往影響系統的性能。這是既要考慮Agent間的交互方式,又要考慮Agent與非Agent部分的交互方式。(4) Agent 的詳細設計和實(shí)例化。首先要了79解日前已有的Agent平臺能做什么,不能做什么,它們各有什么優(yōu)缺點(diǎn)。然后根據系統的需要選擇合適的代理平臺。接著(zhù)進(jìn)行詳細設計和具體的編碼、調試工作,從而實(shí)現整個(gè)系統。(5) Agent的運行與維護。運行維護基于A(yíng)gent技術(shù)的應用系統,及時(shí)發(fā)現和解決實(shí)際運行過(guò)程中遇到的問(wèn)題??傊?,任何系統的設計都要綜合應用多方面的因素,根據實(shí)際情況而定。3、軟件Agent技術(shù)的融合3.1軟件重用方式的融合軟件重用是指在兩次或多次不同的軟件開(kāi)發(fā)過(guò)程中重復使用相同或相近軟件元素的過(guò)程。軟件元素包括程序代碼、軟件體系結構、測試用例、設計文檔、設計過(guò)程、需求分析文檔甚至領(lǐng)域知識?,F階段的軟件重用仍然停留在“靜態(tài)軟件重用”階段,主要表現為重用對象是一些靜態(tài)的、缺乏靈活性的軟部件,軟件重用活動(dòng)由開(kāi)發(fā)人員來(lái)完成,可重用資源比較有限。文獻[7]中提出了“動(dòng)態(tài)軟件重用”的思想,重用的對象是一一些高度自治、具有特定功能和能力的動(dòng)態(tài)軟件系統,重用對象表現出較強的靈活性,由軟件系統動(dòng)態(tài)地完成重用活動(dòng),重用的內容是開(kāi)放的:這種動(dòng)態(tài)軟件重用的思想與現階段軟件開(kāi)發(fā)的狀況和趨勢是相適應的。在面向組件的編程模式下,程序要素從對象變?yōu)榻M件,所重用的是組件,實(shí)現的是靜態(tài)軟件重用。在面向Agent的編程模式下,程序要素是Agent,在這種模式下,所重用的不僅僅是功能,更重要的是繼承了知識,因為每個(gè)Agent都具有自己的知識積累與學(xué)習能力,實(shí)現的可以是動(dòng)態(tài)軟件重用?;贏(yíng)gent的軟件重用方法核心是以動(dòng)態(tài)軟件重用為目標,用Agent抽象概念和基于A(yíng)gent系統方法來(lái)概念化、刻畫(huà)、描述、設計和構造可重用軟部件。隨著(zhù)軟件技術(shù)的發(fā)展,我們應該將Agent重用技術(shù)和組件重用技術(shù)結合起來(lái),即實(shí)現靜態(tài)軟件重用和動(dòng)態(tài)軟件重用相融合,為復雜分布式問(wèn)題的求解獲取更高的效率。3.2紅件標準規范與軟件Agent合成機制的融合組件之間的連接是一種松散的耦合方式,而Agent之間的合成也往往采用松散的耦合方式。組件模型是描述可重用組件和這些組件之間如何相互作用的規范。盡管目前軟件組件技術(shù)已經(jīng)在軟件重用中呈現出巨大的優(yōu)勢,但時(shí)至今日,軟件組件本身的標準和規范尚未統- -和完整性的定義"。在實(shí)際應用中,目前只有OMG CORBA,MicrosoftCOM/DCOM/CoM+ SUN JavaBean/EJB這三種比較成熟的占主導地位的組件技術(shù)。三種組件技術(shù)都有其優(yōu)點(diǎn),為了更好地服務(wù)于軟件開(kāi)發(fā)利用,這三種技術(shù)也正在向緊密結合的方向發(fā)展。多Agent 系統的協(xié)作求解問(wèn)題的能力超過(guò)單個(gè)Agent,依據Agent構造及軟件體系結構特性,可將多Agent系統作為一種新的軟件體系結構風(fēng)格進(jìn)行研究"。就這類(lèi)系統組件要素一-Agent 來(lái)說(shuō),它是一-種有別于以往任何系統的組件類(lèi)型。盡管在系統實(shí)現中,Agent或多或少與對象、控制過(guò)程等傳統的體系結構要素聯(lián)系起來(lái)。但是,就Agent本身而言,其所具有的自主性、智能性、交互性等特性是對象所不具備的。將Agent看作- -種特殊的組件,利用成熟的組件技術(shù)實(shí)現Agent的合成具有現實(shí)意義。3.3分布式軟件開(kāi)發(fā)中的應用由于計算機網(wǎng)絡(luò )技術(shù)的飛速發(fā)展,現在的軟件開(kāi)發(fā)利用,往往是基于網(wǎng)絡(luò )上的開(kāi)發(fā)利用。在分析了組件技術(shù)和軟件Agent的主要特性之后,我們認識到軟件Agent技術(shù)可以為組件的動(dòng)態(tài)連接提供基礎,組件技術(shù)為軟件Agent的合成提供重要的理論指導??衫媒M件與Agent技術(shù)構造應用系統框架,為特定領(lǐng)域的軟件開(kāi)發(fā)提供良好的方法。在軟件開(kāi)發(fā)生命周期中,-般而言,進(jìn)行需求分析時(shí),當應用需要具有跨平臺、跨網(wǎng)絡(luò )、跨地域甚至跨行業(yè)的互操作性以及較高的個(gè)人化、智能化時(shí)可以考慮采用Agent技術(shù)。將組件技術(shù)與軟件Agent技術(shù)相結合,充分利用軟件重用機制的融合,充分利用組件標準規范與軟件Agent合成機制的融合,取長(cháng)補短:還可利用軟件體系結構理論,使用需求分析和領(lǐng)城驅動(dòng)相結合的體系結構設計方法來(lái)實(shí)現軟件開(kāi)發(fā),這種方法將在未來(lái)的分布式系統的開(kāi)發(fā)中具有非常重要的意義。它的適用范圍將相當廣泛,主要包括現代教育系統、電子商務(wù)、商業(yè)和工業(yè)過(guò)程的管理、信息管理和檢索等等.4.結束語(yǔ)軟件系統往往由許多組件組合而成,當軟件系統逐漸擴大到- -定程度, 可能超過(guò)人的理解能力,這時(shí)需要- -種能夠自動(dòng)組織組件的方法,組件技術(shù)和軟件Agent技術(shù)都擁有一定的優(yōu)勢。如何實(shí)現兩者更緊密的結合,如何將軟件體系結構的有關(guān)理論結合進(jìn)來(lái),為軟件開(kāi)發(fā)提供更好的方法是我們將要研究的主要方向。參考文獻[I]Alan w .Brown, Kurt C.Wallnau.The Current State of CBEUJ-.EEE sofware , 1998.10(9):37-46.[2Uennings N R. On agent - based software engineeringU]. Arificial Inelligence,2000[3]唐勝群,唐濤洲.軟件體系結構與組件軟件工程0] .計算機工程,1998(8),32- -35.[4]周之英.現代軟件工程[M] .北京:科學(xué)出版社,2000[5]劉大有,楊鯤等.Agent研究現狀與發(fā)展趨勢[門(mén).軟件學(xué)報2000(3):6]王映輝,馮德民編著(zhù).大規模軟件構架技術(shù)[M] .北京:科學(xué)出版中國煤化工[7]毛新軍,徐錫山等.基于A(yíng)gent的軟件重用D].計算機工程與科學(xué):TYHCNMHG[8]邱巖.組件技術(shù)及其分析比較[J].計算機工程與設計,2003(7),13-17[9]孫志勇.多Agent系統體系結構及建模方法研究[D:博士學(xué)位論文]合肥工業(yè)大學(xué),2004.責任編輯:開(kāi)斌80
-
C4烯烴制丙烯催化劑 2020-10-26
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-10-26
-
生物質(zhì)能的應用工程 2020-10-26
-
我國甲醇工業(yè)現狀 2020-10-26
-
JB/T 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術(shù)規程 2020-10-26
-
石油化工設備腐蝕與防護參考書(shū)十本免費下載,絕版珍藏 2020-10-26
-
四噴嘴水煤漿氣化爐工業(yè)應用情況簡(jiǎn)介 2020-10-26
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-10-26
-
甲醇制芳烴研究進(jìn)展 2020-10-26
-
精甲醇及MTO級甲醇精餾工藝技術(shù)進(jìn)展 2020-10-26