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



