




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、(碩士學(xué)位論文)小型化寬帶微帶天線研究及無(wú)線通信天線的設(shè)計(jì) 湖北工業(yè)大學(xué)碩士學(xué)位論文 摘 要 隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展軟件產(chǎn)品已深入到社會(huì)的各個(gè)領(lǐng)域協(xié)助人們完 成各種各樣的任務(wù)軟件產(chǎn)品的質(zhì)量在應(yīng)用中扮演著重要的角色如何保障高效 高質(zhì)的開(kāi)發(fā)軟件產(chǎn)品成為軟件產(chǎn)品開(kāi)發(fā)的重要議題軟件能力成熟度模式統(tǒng)一 過(guò)程UML語(yǔ)言的問(wèn)世也標(biāo)志了人類在軟件工程領(lǐng)域內(nèi)的努力不可忽視的是 設(shè)計(jì)模式也扮演著重要的角色促進(jìn)了軟件業(yè)的發(fā)展設(shè)計(jì)模式為某些經(jīng)常反復(fù) 出現(xiàn)的問(wèn)題給出了成熟的解決方案采用設(shè)計(jì)模式可以避免在同類問(wèn)題上反復(fù)的 糾纏同時(shí)也有助于提升軟件產(chǎn)品的健壯性 數(shù)據(jù)庫(kù)產(chǎn)品廣泛的應(yīng)用在各個(gè)領(lǐng)域尤以關(guān)系型數(shù)據(jù)庫(kù)最為突出在實(shí)際
2、應(yīng) 用中居于主導(dǎo)地位根據(jù)實(shí)際情況的需要可能需要同時(shí)使用多個(gè)不同廠商提供 的數(shù)據(jù)庫(kù)產(chǎn)品而與之相匹配的數(shù)據(jù)庫(kù)管理工具卻互不兼容需要使用者在多個(gè) 管理工具閫切換操作極為繁瑣 基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)Eclipse提供了一個(gè)開(kāi)發(fā)平臺(tái)允許軟件以插件的 形式在其上運(yùn)行由Eclipse來(lái)提供統(tǒng)一的美觀的圖形界面并且由于插件基于 同一種架構(gòu)因此任何第三方插件都可以和Eclipse無(wú)縫的集成在一起擴(kuò)展其功能 同時(shí)MVC設(shè)計(jì)模式和GOF設(shè)計(jì)模式的廣泛應(yīng)用也對(duì)軟件產(chǎn)品的開(kāi)發(fā)起著積極 會(huì)越來(lái)越廣泛 本文的目標(biāo)是通過(guò)開(kāi)發(fā)一個(gè)基于Eclipse平臺(tái)的多種關(guān)系型數(shù)據(jù)庫(kù)管理工具來(lái) 說(shuō)明設(shè)計(jì)模式在軟件開(kāi)發(fā)過(guò)程中的應(yīng)用本文首
3、先闡述了Eclipse的體系結(jié)構(gòu)以及 插件開(kāi)發(fā)相關(guān)的知識(shí)其次對(duì)部分設(shè)計(jì)模式進(jìn)行詳細(xì)的說(shuō)明由于設(shè)計(jì)模式是人 類在過(guò)去經(jīng)驗(yàn)總結(jié)的基礎(chǔ)上得來(lái)的較為抽象因此文中還給出了相應(yīng)的示例加 以說(shuō)明在充分理解Eclipse插件開(kāi)發(fā)原理和設(shè)計(jì)模式的基礎(chǔ)上結(jié)合實(shí)際情況 設(shè)計(jì)并實(shí)現(xiàn)了用于不同數(shù)據(jù)庫(kù)產(chǎn)品管理員的插件設(shè)計(jì)模式的應(yīng)用不僅快速的解 決了實(shí)際開(kāi)發(fā)中的問(wèn)題同時(shí)也縮短了軟件開(kāi)發(fā)周期 關(guān)鍵詞l設(shè)計(jì)模式F圮lipse插件 湖北工業(yè)大學(xué)碩士學(xué)位論文 Abstract Witllthe of isused in development every computertechnologysoftwarewidely domai
4、n to varioustasksIn softwares helppeoplehieve applicationdomainthe all to roleHoweusurethe with isnll quality important plays qualityrapiddevelopment iSSlleminventionofC刪RUPandUML indicateshavedone important people insothcare domainAnd also all role SOmething engineer designpatternplayimportant and
5、the ofsoftware the improvedevelopment industryEachdesignpatternprovides goreofthesolutiontoa whichOCCarSoverand in ourenvironment problem 0Velagain can UStosolve enhance DesignpattgllLshelp problems thesoftwares quicklyand haleness DatabasealsoiSused i11 eachdomainAndrelationaldatabaseisthemost wide
6、ly factmost relationaldatabasesto importantproductin enterpriseapplicationsadopt storedataButwe usevariousdatabase to may according manufactureofdatabases a toolto therelationaldatabase provides manage parfcular ButthesetoolsIre to need ourchoicesfittheconcrete incomparablewe ehauge database tothe e
7、nvironment productaccording isanextemible for Eclipse developmentplatformbuildingintegratedsoftware whichbasedonJavaAllsofiwarewhichbeinsertcdinto called Eclipseare plugin uniformmceuserinterfaceBecaaseall hasthesRme Eclipseprovides graphic plugin architoctUreSOeach earlbeinsertedirite doesntneedcon
8、siderthe plug-m EclipseUser thesame ofMVC Comparableofping-inAttimethegenetic applicationdesignpaRem and has GOF effectWiththe basedon design positive pattern developmentofplug-in willbemoreand more Eclipsetheapplication popular 111c ofthisthesisiSto andrealizea relational goal design general databa
9、ses tooltocentrelvarioustelationaidatabase describesthe management productsFirstlyit architectureof andrelated detailedinstrnctionsare Eclipse technelegySecondlysome describedabout oftheabstractionof designpatternBecause design paUernsome are toassistthe the examplesgiveil desedptionsEventuallyfully
10、understanding theoreticofplug-m toactualsituation and developmentaccording designed a usedon implementedplugin controlvariousrelational of not solve alsodcctcascsthe ofthe designpaUernsonly problemsrapidlybut period ofsoftware development KeywordaDesignPatterEcfipsoPlug-in 諏嘉11工繁失法 學(xué)位論文原創(chuàng)性聲明和使用授權(quán)說(shuō)明
11、原創(chuàng)性聲明 本人鄭重聲明所呈交的學(xué)位論文是本人在導(dǎo)師指導(dǎo)下獨(dú)立進(jìn)行研究工作所取 得的研究成果除文中已經(jīng)標(biāo)明引用的內(nèi)容外本論文不包含任何其他個(gè)人或集體己經(jīng) 發(fā)表或撰寫(xiě)過(guò)的研究成果對(duì)本文的研究做出貢獻(xiàn)的個(gè)人和集體均已在文中以明確方 式標(biāo)明本聲明的法律結(jié)果由本人承擔(dān) 學(xué)位論文作者簽名嘶袋 日期07年月j日 學(xué)位論文版權(quán)使用授權(quán)書(shū) 本學(xué)位論文作者完全了解學(xué)校有關(guān)保留使用學(xué)位論文的規(guī)定即學(xué)校有權(quán)保留 并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和電子版允許論文被查閱和借閱本人授 權(quán)湖北工業(yè)大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索可以采 用影印縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文 學(xué)位論文
12、作者簽名嘮 孳 指導(dǎo)教師簽名 習(xí)私 日期c11年月r日 日期 自皇日 湖北工業(yè)大學(xué)碩士學(xué)位論文 第1章引言 11研究背景 隨著插件技術(shù)的不斷發(fā)展與完善無(wú)論是在應(yīng)用領(lǐng)域還是在開(kāi)發(fā)領(lǐng)域插件技 術(shù)都得到了廣泛的應(yīng)用與WEB領(lǐng)域中的應(yīng)用相比通過(guò)插件來(lái)擴(kuò)展桌面應(yīng)用相 對(duì)滯后一方面是近年來(lái)WEB應(yīng)用的迅猛發(fā)展另一方面雖然部分桌面軟件采用 插件方式來(lái)擴(kuò)展功能但卻沒(méi)有一個(gè)統(tǒng)一完善的平臺(tái)為插件提供公共的運(yùn)行環(huán)境 而開(kāi)源平臺(tái)Eclipse的出現(xiàn)改變了這種現(xiàn)狀將插件技術(shù)的應(yīng)用發(fā)揮到了極致 Eclipse是一個(gè)開(kāi)源軟件項(xiàng)目目的是提供一個(gè)健壯的全面的集成開(kāi)發(fā)環(huán)境 E 由于采用了業(yè)界普遍使用的開(kāi)放系統(tǒng)架構(gòu)為插件開(kāi)發(fā)提供支
13、持任何符 合該架構(gòu)的第三方產(chǎn)品都可以與Eclipse平臺(tái)無(wú)縫的結(jié)合使用戶不必再為軟件產(chǎn) 所有的應(yīng)用軟件被統(tǒng)稱為插件Eclipse為它們提供了統(tǒng)一美觀的操作界面 隨著Eclipse插件技術(shù)及其應(yīng)用的發(fā)展插件開(kāi)發(fā)中的問(wèn)題也逐漸浮出水面 如何實(shí)現(xiàn)插件與Eclipse平臺(tái)的無(wú)縫集成如何設(shè)計(jì)插件的體系結(jié)構(gòu)以及如何通過(guò) 降低插件內(nèi)各模塊白J的耦合性提升擴(kuò)展性復(fù)用性和降低維護(hù)成本成為插件開(kāi) 發(fā)亟待解決的問(wèn)題設(shè)計(jì)模式的發(fā)展與應(yīng)用為解決這些問(wèn)題提供了解決方案 12國(guó)內(nèi)外對(duì)設(shè)計(jì)模式的研究現(xiàn)狀 設(shè)計(jì)模式為軟件開(kāi)發(fā)中經(jīng)常反復(fù)出現(xiàn)的問(wèn)題提供了解決方案12因此結(jié)合軟 件開(kāi)發(fā)的實(shí)際情況應(yīng)用合適的設(shè)計(jì)模式成為解決上述問(wèn)題的一
14、種有效的途徑 121GOF設(shè)計(jì)模式 國(guó)外關(guān)于設(shè)計(jì)模式的研究起步較早GOF設(shè)計(jì)模式12l是第一次將設(shè)計(jì)模式提 升到理論的高度并將之規(guī)范化一共提出了23種設(shè)計(jì)模式GOF設(shè)計(jì)模式是一 種抽象的概念并沒(méi)有具體代碼或產(chǎn)品給予直觀的印象它側(cè)重于提供解決軟件 開(kāi)發(fā)問(wèn)題的一種成熟的方案重點(diǎn)描述了耍讓代碼盡可能的重用這個(gè)宗旨在可 復(fù)用面向?qū)ο筌浖陌l(fā)展過(guò)程中它推動(dòng)了新的大量的設(shè)計(jì)模式在計(jì)算機(jī)應(yīng)用各 個(gè)領(lǐng)域中不斷出現(xiàn)成為了某些設(shè)計(jì)模式 如J2EE設(shè)計(jì)模式lJ 的重要理論基礎(chǔ) 設(shè)計(jì)模式的應(yīng)用不僅有利于縮短軟件開(kāi)發(fā)周期提高相似模塊的復(fù)用性同時(shí)也 湖北工業(yè)大學(xué)碩士學(xué)位論文 提升了軟件產(chǎn)品的健壯性即產(chǎn)品質(zhì)量 122 MV
15、C設(shè)計(jì)模式 MVC設(shè)計(jì)模式IM是Xerox 明的一種軟件設(shè)計(jì)模式至今已被廣泛使用最近幾年被推薦為SUN公司J2EE 平臺(tái)的設(shè)計(jì)模式Mvc設(shè)計(jì)模式強(qiáng)制性的把應(yīng)用程序的輸入輸出和處理分開(kāi) 將應(yīng)用程序分為三個(gè)核心模塊模型視圖和控制器分別完成業(yè)務(wù)邏輯交互 界面和控制模型與視圖的調(diào)度MVC設(shè)計(jì)模式的內(nèi)部比較復(fù)雜并不適合小型應(yīng) 用程序但是它實(shí)現(xiàn)了模型共享降低了各模塊問(wèn)的耦合性提高了應(yīng)用程序的 靈活性和配置性雖然最初構(gòu)建框架時(shí)比較復(fù)雜但提高了應(yīng)用程序后期的開(kāi)發(fā) 效率并且也使更新與維護(hù)變得相對(duì)容易 13論文研究?jī)?nèi)容 本文所描述的數(shù)據(jù)庫(kù)插件用于實(shí)現(xiàn)為多個(gè)不同類型的關(guān)系型數(shù)據(jù)庫(kù)提供管理 功能避免由于在多個(gè)特定的數(shù)
16、據(jù)庫(kù)管理器間頻繁的切換而導(dǎo)致工作效率的降低 同時(shí)降低了操作的復(fù)雜度這點(diǎn)對(duì)熟習(xí)Eclipse操作的人來(lái)說(shuō)最為突出 本文首先討論了Eclipse的體系結(jié)構(gòu)然后對(duì)它的插件開(kāi)發(fā)環(huán)境和開(kāi)發(fā)原理做 了技術(shù)分析在此基礎(chǔ)之上分析了基于Eclipse開(kāi)發(fā)平臺(tái)的數(shù)據(jù)庫(kù)插件結(jié)構(gòu)并 提出了一種充分利用現(xiàn)有技術(shù)采用MVC設(shè)計(jì)模式將插件分為視圖模型和控制 器三部分并結(jié)合GOF設(shè)計(jì)模式和擴(kuò)展點(diǎn)設(shè)計(jì)模式完成相應(yīng)的設(shè)計(jì)與實(shí)現(xiàn)其中 應(yīng)用合適的GOF設(shè)計(jì)模式完成相應(yīng)的業(yè)務(wù)邏輯以滿足插件的應(yīng)用需求事件監(jiān)聽(tīng) 器則作為控制器用于協(xié)調(diào)視圖和模型 本文的研究工作包括以下幾個(gè)方面 1 Eclipse平臺(tái)體系結(jié)構(gòu)及其插件開(kāi)發(fā)技術(shù)的研究與分析 2
17、 GOF設(shè)計(jì)模式的研究與分析 3 MVC設(shè)訃模式及其實(shí)現(xiàn)方案的研究與分析 的數(shù)據(jù)庫(kù)管理插件 14論文的組織結(jié)構(gòu) 本文內(nèi)容的組織結(jié)構(gòu)如下 湖北工業(yè)大學(xué)碩士學(xué)位論文 第l章闡述了本文的研究背景國(guó)內(nèi)外關(guān)于設(shè)計(jì)模式的研究現(xiàn)狀以及研究的 內(nèi)容和目標(biāo) 第2章描述了Eclipse的體系結(jié)構(gòu)插件的開(kāi)發(fā)原理并對(duì)開(kāi)發(fā)中應(yīng)用到的G-OF 設(shè)計(jì)模式和MVC設(shè)計(jì)模式進(jìn)行了細(xì)致的闡述 第3章給出插件需求設(shè)計(jì)原則實(shí)現(xiàn)環(huán)境和應(yīng)用環(huán)境并作了需求分析和 模塊設(shè)計(jì) 第4章在第3章中需求分析和模塊設(shè)計(jì)的基礎(chǔ)上詳細(xì)的闡述了設(shè)計(jì)模式在 插件開(kāi)發(fā)中的復(fù)合應(yīng)用 第5章是全文內(nèi)容的總結(jié)并闡明了下一步的研究方向 湖北工業(yè)大學(xué)碩士學(xué)位論文 第2章
18、EcIipse與插件開(kāi)發(fā)概述 21Eclipse概述 211 Eclipse簡(jiǎn)介 SOUrCe 開(kāi)源軟件 open softwareOSS 是公開(kāi)源代碼的軟件開(kāi)源軟件的重要 特征包括公布源代碼以及免費(fèi)使用軟件 Eclipse就是一個(gè)開(kāi)源的軟件產(chǎn)品最初由IBM公司投資4千萬(wàn)美金開(kāi)發(fā)研制 l版時(shí)才 2001年發(fā)布時(shí)由于設(shè)計(jì)缺陷飽受業(yè)界批評(píng)直到2003年Eclipse發(fā)布2 引起業(yè)界的重視而后IBM公司把Eclipse作為一個(gè)開(kāi)源項(xiàng)目捐贈(zèng)給了開(kāi)源組織 引了眾多知名公司加入到該平臺(tái)促進(jìn)了Eclipse平臺(tái)的迅速發(fā)展至2006年 IDE市場(chǎng)份額的45居于首位 Eclipse占有Java 212 Ecli
19、pse體系結(jié)構(gòu) Eclipse是一個(gè)開(kāi)放源代碼的基于JAVA的可擴(kuò)展開(kāi)發(fā)平臺(tái)即普遍適用的 開(kāi)放式擴(kuò)展IDEIlJEclipse提供了功能豐富的開(kāi)發(fā)環(huán)境允許開(kāi)發(fā)者高效地創(chuàng)建能 與Eclipse平臺(tái)無(wú)縫集成的軟件 插件 Eclipse的體系結(jié)構(gòu)由平臺(tái)加插件組成 個(gè)系統(tǒng)的核心專門(mén)為插件提供運(yùn)行時(shí)容器其本身并不具備任何面向用戶的業(yè) 務(wù)功能如果沒(méi)有插件的支持Eclipse平臺(tái)的運(yùn)行時(shí)就是一個(gè)純粹的容器什么 也作不了除了運(yùn)行時(shí)核心外Eclir還包括工作平臺(tái)工作空同幫助和團(tuán)隊(duì) 結(jié)構(gòu)如圖2I所示 4 湖北工業(yè)大學(xué)碩士學(xué)位論文 Eclipse平臺(tái) l JFc 圃O(shè)- I第三方 l開(kāi)發(fā)工具I _1插件 l親具卜
20、泖 l粵墜l l第三方 O- _1插件 一眄習(xí) 玉 工作空問(wèn) O- l-_-7y 1插件 最小運(yùn)行時(shí)核心 圖21 Eclil镕e體系結(jié)構(gòu)圖 1 運(yùn)行時(shí)核心 插件的manifest文件列舉了該插件所需的連接這些連接包含了提供給其它插件 的擴(kuò)展點(diǎn)以及所需韻擴(kuò)展點(diǎn)運(yùn)行時(shí)核心并不是在啟動(dòng)時(shí)加載全部插件而是根 據(jù)需要?jiǎng)討B(tài)加載插件以減少啟動(dòng)時(shí)間和資源需求 2 工作平臺(tái) 工作平臺(tái)就是Eclipse呈現(xiàn)給用戶的圖形用戶界面除了用于顯示菜單和工具 外最重要的一個(gè)功能就是組織包含各種視圖和編輯器的透視圖 工作平臺(tái)一個(gè)最顯著的特征是它是一個(gè)原生的應(yīng)用程序這點(diǎn)與普通的Java 應(yīng)用程序不盡相同這是因?yàn)槭褂昧薊clip
21、se用戶界面開(kāi)發(fā)包StandardWidget APIsAWT Toolkit SWT 和JFace來(lái)實(shí)現(xiàn)與通過(guò)模擬來(lái)實(shí)現(xiàn)界面的標(biāo)準(zhǔn)Java 和Swing實(shí)現(xiàn)機(jī)制不同SWT直接映射操作系統(tǒng)的原生窗口 的操作系統(tǒng)相匹配但是與SWT的實(shí)用性相比這點(diǎn)顯得并不是那么重要因?yàn)?OS 目前主流操作系統(tǒng) 如WindowsLinuxSolarisMacX 都支持SWT的各 在編寫(xiě)Java代碼時(shí)必須使用這種工具包AWTSwing同樣也可以只是在開(kāi)發(fā)基 于Eclipse的插件時(shí)必須使用SWTJFacet61tsl 3 工作空間 湖北工業(yè)大學(xué)碩士學(xué)位論文 工作空問(wèn)用于管理用戶資源工作空日J(rèn)的每個(gè)子目錄與一個(gè)或多個(gè)E
22、clipse項(xiàng) 日相對(duì)應(yīng)每個(gè)工程可以包含文件夾和各種格式的文件一般而言文件夾即為 工程目錄的子目錄但是可以處于文件系統(tǒng)中的任何位置并不要求一定是項(xiàng)目 文件夾的子項(xiàng)目 工作空間同時(shí)維護(hù)用戶對(duì)資源操作的歷史記錄減少丟失資料的風(fēng)險(xiǎn)這使 得用戶可以即時(shí)取消當(dāng)前操作或者回復(fù)到以前的版本當(dāng)然這取決于用戶對(duì)歷 史記錄的設(shè)置工作空間也負(fù)責(zé)通知用戶與工程相關(guān)工具的更改這些工具負(fù)責(zé) 標(biāo)記與工程相關(guān)的屬性 4 幫助與團(tuán)隊(duì)支持 與Eclipse平臺(tái)相似幫助組件本身也是個(gè)可擴(kuò)展的文檔系統(tǒng)插件開(kāi)者提供 采用XML文件格式定義導(dǎo)航結(jié)構(gòu)的mML文檔通過(guò)映射方式插件文檔可以 與Eclipse自身的幫助文檔系統(tǒng)無(wú)縫的集成在一起團(tuán)
23、隊(duì)支持插件運(yùn)用版本控制系 統(tǒng) CVS 口l管理用戶項(xiàng)目資源并通過(guò)定義所需的工作流從倉(cāng)庫(kù)存儲(chǔ)和還原 項(xiàng)目資源 Eclipse的設(shè)計(jì)思想是一切皆為插件Elipse的運(yùn)行時(shí)核心是非常小的其它 所有的功能都以插件的形式附加到此核心之上這樣的功能插件包括它的圖形API 還對(duì)這些插件的協(xié)同工作提供了良好的支持不僅安裝簡(jiǎn)單而且無(wú)縫集成 Eclipse對(duì)這些插件是動(dòng)態(tài)載入動(dòng)態(tài)調(diào)用的所謂動(dòng)態(tài)調(diào)用就是指只有當(dāng) Eclipse啟動(dòng)后要真正用到這個(gè)插件時(shí)它才會(huì)被調(diào)入內(nèi)存當(dāng)插件不再被使用時(shí) 就會(huì)在適當(dāng)?shù)臅r(shí)候?qū)⒉寮謇沓鰞?nèi)存因此即使安裝了多個(gè)插件也不必?fù)?dān)心那 些不常用的插件占據(jù)內(nèi)存消耗有限的系統(tǒng)資源 利用這些插件可以重復(fù)
24、的構(gòu)建新插件 工具 來(lái)滿足應(yīng)用的需求實(shí)際上 Eclipse也是通過(guò)其自身來(lái)完成開(kāi)發(fā)任務(wù)的 213SWTlFace 提供的組件可以構(gòu)建形式豐富的圖形用戶界面采用這種方式開(kāi)發(fā)的圖形用戶界 面不僅運(yùn)行速度快而且能有效的使用內(nèi)存同時(shí)能根據(jù)基于的操作系統(tǒng)顯示與 該操作系統(tǒng)提供的默認(rèn)樣式相同的用戶界面并且不需要重新編寫(xiě)代碼而其它 的Java圖形庫(kù)并沒(méi)有提供上述的特性 雖然SWTIJFace都實(shí)現(xiàn)了上述目標(biāo)但是它們實(shí)現(xiàn)的機(jī)制卻有所不同swr 采用手動(dòng)方式提供對(duì)操作系統(tǒng)內(nèi)部的訪問(wèn)與控制但是使用時(shí)極其復(fù)雜與swr 6 湖北工業(yè)大學(xué)碩士學(xué)位論文 相比JFace提供了創(chuàng)建圖形用戶界面的捷徑簡(jiǎn)化了圖形用戶界面的開(kāi)發(fā)自
25、動(dòng) 地完成了許多功能節(jié)省了用swT創(chuàng)建所需的時(shí)間在事件處理方面SWT需 要分別對(duì)每個(gè)事件進(jìn)行單獨(dú)的處理因此編寫(xiě)的代碼不僅冗長(zhǎng)而且復(fù)雜Face則 將事件的處理組合在一個(gè)單一的對(duì)象里使得開(kāi)發(fā)人員只需要關(guān)心對(duì)事件響應(yīng)的 處理而不必關(guān)心事件是如何觸發(fā)的因此使用JFacc添加上下文菜單工具欄 等GUl組件相對(duì)容易同時(shí)JFace在對(duì)系統(tǒng)內(nèi)部的控制和訪問(wèn)以及事件處理也相 對(duì)容易但這并不意味著JFace是用來(lái)取代SWT的因?yàn)樗チ藢?duì)圖形用戶界 面操作的彈性因此在開(kāi)發(fā)插件的圖形用戶界面時(shí)需要綜合考慮這兩種庫(kù)應(yīng)用 214 Eclipse的未來(lái) Client Eclipse支持富客戶端平臺(tái) Rich 戶試圖除了將
26、EClipse作為開(kāi)發(fā)工具的基礎(chǔ)平臺(tái)外還可作為更普遍的商業(yè)應(yīng)用基 礎(chǔ)也就是說(shuō)除了將Eclipse作為最基本的開(kāi)發(fā)平臺(tái)使用外更多的是將其作為 一個(gè)通用的承載其它應(yīng)用軟件的應(yīng)用平臺(tái)提供統(tǒng)一的界面樣式和運(yùn)行內(nèi)核通 過(guò)加載各種實(shí)用的插件為用戶提供應(yīng)用體驗(yàn)美國(guó)國(guó)家航空航天管理局 NASA 火星探測(cè)計(jì)劃的管理用戶界面就是一個(gè)EclipseRCP應(yīng)用通過(guò)這個(gè)應(yīng)用工作人 員可以控制在火星上運(yùn)行的火星車(chē)這也是一個(gè)比較著名的EclipseRCP應(yīng)用 22OSGi技術(shù)概述 221 0SGi簡(jiǎn)介 化規(guī)范OSGi技術(shù)提供了面向服務(wù)的框架可以在運(yùn)行期安裝升級(jí)或者移除軟 件組件而且不需要中斷操作同時(shí)軟件組件可以動(dòng)態(tài)的發(fā)現(xiàn)和
27、使用其它庫(kù)或應(yīng)用 程序以利于相互問(wèn)更好地協(xié)作因?yàn)镺SGi技術(shù)提供了預(yù)構(gòu)建和預(yù)測(cè)試的組件子系 統(tǒng)所以采用OSGi技術(shù)在縮短開(kāi)發(fā)時(shí)間的同時(shí)也降低開(kāi)發(fā)成本OSOi技術(shù)致力 于解決與軟件重用性健壯性和成本相關(guān)的問(wèn)題 OSOi聯(lián)盟已經(jīng)開(kāi)發(fā)出了多個(gè)滿足通用功能的標(biāo)準(zhǔn)組件接口比如H1_阻服務(wù) 器配置日志安全用戶管理和XML等兼容性插件機(jī)制使得用戶可以根據(jù) 性能和成本的需求從不同的廠商手中獲得所需要的軟件 2220SGj架構(gòu) 從Eclipse 湖北工業(yè)大學(xué)碩士學(xué)位論文 Machine 基礎(chǔ)上服務(wù)包就是執(zhí)行在框架上的應(yīng)用程序而服務(wù)就是服務(wù)包所提 供或需求的界面服務(wù) OSGi框架是集成的服務(wù)平臺(tái)主要功能是提供服務(wù)
28、包的執(zhí)行環(huán)境咀及動(dòng)態(tài)地 管理服務(wù)包的生命周期同時(shí)OSG-i框架也提供相應(yīng)的管理機(jī)制允許在其上運(yùn)行的 服務(wù)包可以提供或使用服務(wù)OSGi框架的層次如圖22所示 圖220SGI框架層次圖 1 執(zhí)行環(huán)境 執(zhí)行環(huán)境OSGi平臺(tái)標(biāo)準(zhǔn)化執(zhí)行環(huán)境并作了些改動(dòng)指定了在執(zhí)行環(huán)境中使用OSGi 的最小需求 2 模塊 模塊層定義了類的加載策略O(shè)SGi框架是基于Java技術(shù)并添加了模塊化不 僅功能強(qiáng)大而且能快速地指定類加載模塊在Java中單一的類路徑包含了所有 的類和資源而OS i技術(shù)則為每個(gè)模塊添加相應(yīng)的私有類和模塊間的控制連接 使廠商能夠部署封閉系統(tǒng)或完整的用戶管理系統(tǒng) 3 生命周期 生命周期層負(fù)責(zé)添加可被動(dòng)態(tài)安裝
29、啟動(dòng)停止更新和卸載的bundles除 了添加用于在運(yùn)行時(shí)管理模塊的API外bundles依賴于模塊層對(duì)類的加載一般 而言生命周期實(shí)現(xiàn)的動(dòng)態(tài)性并不屬于應(yīng)用程序的一部分依賴機(jī)制用于確保對(duì) 運(yùn)行環(huán)境的正確操作生命周期嚴(yán)格受到安全框架的保護(hù)避免受到病毒的攻擊 0 湖北工業(yè)大學(xué)碩士學(xué)位論文 4 注冊(cè)服務(wù) 注冊(cè)服務(wù)層與模塊層協(xié)作完成服務(wù)包的動(dòng)態(tài)性傳統(tǒng)的類共享并不支持動(dòng)態(tài) 的調(diào)用和移除代碼而注冊(cè)服務(wù)提供豐富的模塊來(lái)實(shí)現(xiàn)服務(wù)包間的共享提供了 動(dòng)態(tài)性支持服務(wù)包通過(guò)事件來(lái)操縱服務(wù)服務(wù)可以是抽象的也可以是具體的 比如m1甲服務(wù)和藍(lán)牙手機(jī)模塊而服務(wù)安全模塊用于確保服務(wù)包間的通信 223 OSGi提供的服務(wù) OSGi提
30、供的服務(wù) 如圖23 包括標(biāo)準(zhǔn)服務(wù)和自定義服務(wù)標(biāo)準(zhǔn)服務(wù)是由OSGi 框架自身提供的而白定義服務(wù)由第三方廠商提供與標(biāo)準(zhǔn)服務(wù)相比彈性大 圖23OSGi標(biāo)準(zhǔn)服務(wù)結(jié)構(gòu)圖 OSGi框架服務(wù)J3l包含權(quán)限管理服務(wù)包管理服務(wù)啟動(dòng)優(yōu)先級(jí)服務(wù)和對(duì)URL 的操作這些服務(wù)要么是框架服務(wù)的一部分要么直接作用于操作框架系統(tǒng)服 務(wù)提供了一些必須在服務(wù)包運(yùn)行前就在實(shí)體系統(tǒng)上具有的服務(wù)包括同志服務(wù) 配置管理服務(wù)設(shè)備訪問(wèn)服務(wù)用戶管理服務(wù)IO連接器服務(wù)和參數(shù)化服務(wù)通 過(guò)這些服務(wù)可以完成日志的記錄用戶管理以及對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)等工作協(xié)議服 務(wù)用于實(shí)現(xiàn)OSGi服務(wù)與外部協(xié)議的映射而其它服務(wù)則包括XML解析服務(wù)初 始化規(guī)則和外部應(yīng)用程序訪問(wèn)
31、服務(wù)等 無(wú)論是標(biāo)準(zhǔn)服務(wù)還是自定義服務(wù)都是通過(guò)Java接口來(lái)指定的服務(wù)包可以實(shí) 現(xiàn)這些接口井通過(guò)注冊(cè)服務(wù)模塊來(lái)完成服務(wù)的注冊(cè)客戶端可以在注冊(cè)表中查找 湖北工業(yè)大學(xué)碩士學(xué)位論文 這些服務(wù)并加以運(yùn)用 23Eclipse插件開(kāi)發(fā)概述 插件是為系統(tǒng)提供功能的代碼或數(shù)據(jù)的結(jié)構(gòu)化包可以以代碼庫(kù)平臺(tái)擴(kuò)展 或文檔的形式來(lái)提供功能插件可以定義擴(kuò)展點(diǎn)定義良好的位置其它插件可 以在這些位置添加功能 從上面的定義可以看出對(duì)插件管理系統(tǒng)解決方案的基本要求包括動(dòng)態(tài)地添 加新插件和停止現(xiàn)有插件而OSGi框架規(guī)范符合上述的要求因此Eclipse采用 OSG-i框架規(guī)范實(shí)現(xiàn)自身的插件框架 231 Eclipse與OSGi的關(guān)系
32、務(wù)包生命周期的一個(gè)OSGi子集并最低限度的使用了OSGi提供的服務(wù)支持但 Eclipse并沒(méi)有采用OSGi規(guī)范中定義的方式來(lái)實(shí)現(xiàn)服務(wù)問(wèn)的交互而是通過(guò)自身 的擴(kuò)展點(diǎn)設(shè)計(jì)模式實(shí)現(xiàn)這樣服務(wù)包將自身的功能暴露給其它擴(kuò)展的同時(shí)也提 供了基于自身的擴(kuò)展允許向其它服務(wù)包提供功能 提供主窗口井定義擴(kuò)展點(diǎn)以允許擴(kuò)展其它服務(wù)包的參數(shù)定義因此當(dāng)插件添 基本服務(wù)不同服務(wù)包擴(kuò)展點(diǎn)由定義的服務(wù)包擁有其它服務(wù)包只針對(duì)這些擴(kuò)展 點(diǎn)提供服務(wù)相反任何服務(wù)包可以實(shí)現(xiàn)和使用OSCri服務(wù) 232插件開(kāi)發(fā)環(huán)境 插件開(kāi)發(fā)環(huán)境IlZl PDE-PlugDevelopment 臺(tái)插件開(kāi)發(fā)的工具在Eclipse工作臺(tái)中開(kāi)發(fā)時(shí)插件開(kāi)發(fā)環(huán)境可以用
33、來(lái)幫助用戶 開(kāi)發(fā)平臺(tái)插件但由于其本身也是一個(gè)基于Eclipse平臺(tái)的插件因此不能作為一 個(gè)獨(dú)立的工具運(yùn)行PDE提供了一組平臺(tái)擴(kuò)展添加項(xiàng)如透視圖視圖和編輯器 一的工作平臺(tái)可以通過(guò)透視圖管理相應(yīng)的向?qū)Ь庉嬈骱鸵晥D從而有針對(duì)性 的提供相應(yīng)的功能 Eclipse平臺(tái)以樹(shù)形結(jié)構(gòu)組織項(xiàng)目根結(jié)點(diǎn)即項(xiàng)目的名稱由開(kāi)發(fā)人員自定義 當(dāng)使用PDE透視臥J時(shí)在樹(shù)形結(jié)構(gòu)中顯示與項(xiàng)目相匹配的文件夾和文件PDE 湖北工業(yè)大學(xué)碩士學(xué)位論文 查詢工作區(qū)中的項(xiàng)目并特別注意那些將插件或者清單文件作為項(xiàng)目的直接子代碼 的項(xiàng)目如果某個(gè)項(xiàng)目擁有插件清單那么PDE就認(rèn)為它是個(gè)插件項(xiàng)目Eclipse 平臺(tái)是基于插件這一概念的而插件具有明確定義
34、的結(jié)構(gòu)和規(guī)范PDE的目標(biāo)就 是確保開(kāi)發(fā)人員在創(chuàng)建新插件時(shí)遵循相應(yīng)的規(guī)則以便平臺(tái)與插件可以實(shí)現(xiàn)無(wú)縫 連接PDE在管理項(xiàng)目中的插件時(shí)每個(gè)項(xiàng)目都代表一個(gè)插件并包含定義該插 件的文件平和文檔以及該插件與平臺(tái)交互作用的方式這些插件項(xiàng)目存儲(chǔ)用戶 的工作空間中并顯示在資源導(dǎo)航器視圖或與其相關(guān)的其它視圖中 PDE中最重要的概念是主機(jī)和運(yùn)行時(shí)工作臺(tái)實(shí)例的工作原理 在啟動(dòng)Eclipse時(shí)工作臺(tái)將使用它來(lái)處理用戶正在構(gòu)建的插件項(xiàng)目在使用 PDE或其它工具開(kāi)發(fā)插件時(shí)用戶正在運(yùn)行的工作臺(tái)實(shí)例就是主機(jī)實(shí)例在工作 臺(tái)實(shí)例中可用的功能部件就是已安裝在Eclipse平臺(tái)中的插件當(dāng)用戶想測(cè)試或運(yùn) 行插件時(shí)Eclipse會(huì)啟動(dòng)另一
35、個(gè)工作臺(tái)實(shí)例即運(yùn)行時(shí)核心該實(shí)例包含與主機(jī) 實(shí)例相同的插件還具有用戶在主機(jī)實(shí)例中開(kāi)發(fā)的插件PDE啟動(dòng)器將用戶插件 與主機(jī)插件相結(jié)合并創(chuàng)建運(yùn)行時(shí)實(shí)例 由于運(yùn)行時(shí)工作臺(tái)實(shí)例顯示的內(nèi)容來(lái)源于兩個(gè)不同的插件 當(dāng)前工作空間和 原始工作空間 所提供的功能部件的集合因此PDE將這些插件識(shí)別為兩類 1 外部插件可以把外部插件理解成己安裝的插件對(duì)這類插件用戶只能 執(zhí)行瀏覽調(diào)試或查看源代碼動(dòng)作而不能進(jìn)行修改因?yàn)樗鼈兪侵蛔x的 21工作區(qū)插件工作區(qū)插件是那些還處于構(gòu)建狀態(tài)中的插件它們受開(kāi)發(fā)人 員的控制可以以任何形式添加刪除和修改來(lái)完善插件的功能 由于外部插件和工作區(qū)插件的來(lái)源和功能不同因此PDE以不同的方式處理 它們例
36、如打開(kāi)工作區(qū)插件的插件清單將在工作區(qū)中該清單文件上啟動(dòng)編輯器 外部插件的相同操作將在引用主機(jī)安裝位置中的插件清單文件的外部URL上啟動(dòng) 編輯器 233 Eelipse插件開(kāi)發(fā)原理 Eclipse插件概念為包含一系列服務(wù)的模塊Eclipse將插件間的關(guān)系分為兩種 依賴與擴(kuò)展061通過(guò)OSGi中元描述信息里添加需要引用的插件實(shí)現(xiàn)依賴關(guān)系采 用了擴(kuò)展點(diǎn)的方式來(lái)實(shí)現(xiàn)插件功能的擴(kuò)展 擴(kuò)展是添加處理部件的一種方法其結(jié)構(gòu)圖如圖24所示任何定義自身擴(kuò) 展點(diǎn)的插件允許其它的插件通過(guò)擴(kuò)展處理部件來(lái)擴(kuò)展自身的功能擴(kuò)展行為由擴(kuò) 展插件定義并通過(guò)主插件來(lái)修改它的行為這種行為包含兩個(gè)部分添加處理元 素到主插件和通過(guò)添加服
37、務(wù)來(lái)自定義處理部件實(shí)現(xiàn)擴(kuò)展插件主插件與擴(kuò)展插件 湖北工業(yè)大學(xué)碩士學(xué)位論文 之間的通信是通過(guò)叫調(diào)對(duì)象來(lái)實(shí)現(xiàn)的7j回調(diào)對(duì)象本質(zhì)上是一個(gè)基本的Java 對(duì)象由Eclipse平臺(tái)負(fù)責(zé)初始化和管理 件擴(kuò)展的接口任何第三方插件都是在現(xiàn)有擴(kuò)展點(diǎn)上開(kāi)發(fā)完成的并且還可以定 義自身的擴(kuò)展點(diǎn)以便其它插件可以在此基礎(chǔ)上進(jìn)一步擴(kuò)展 主插件 平臺(tái)插件 EclipJe平臺(tái)插件 插件id 擴(kuò)展點(diǎn) 擴(kuò)展點(diǎn) 擴(kuò)展點(diǎn) 擴(kuò)展插件 待擴(kuò)展的Eelipse平自插件 擴(kuò)展插件 I插件類 I 1 插件id 圖24插件結(jié)構(gòu)圖 了解Eclipse平臺(tái)的啟動(dòng)流程 如圖25 對(duì)開(kāi)發(fā)插件是很有必要的將插件 拷貝至plugins目錄或?qū)⒉寮鎯?chǔ)到系統(tǒng)任
38、一目錄并通過(guò)link文件實(shí)現(xiàn)連接 Eclipse系統(tǒng)的核心部分在啟動(dòng)的時(shí)候要完成的工作十分簡(jiǎn)單根據(jù)校驗(yàn)配置文件 是否發(fā)生變化決定是否注冊(cè)插件需要使用時(shí)動(dòng)態(tài)的加載相應(yīng)插件就可以使用了 湖北工業(yè)大學(xué)碩士學(xué)位論文 圖25 Eclipse啟動(dòng)流程圖 在Eclipse中實(shí)現(xiàn)的絕大部分功能是由相應(yīng)的插件完成的工作臺(tái)界面插件完 成平臺(tái)的外觀顯示資源管理插件完成資源管理工作而CVSl81插件四用來(lái)負(fù)責(zé) 完成程序版本控制功能雖然與Eclipse相比多數(shù)IDE已具備上述的部分或全部功 能但是Eclipse是通過(guò)插件模式實(shí)現(xiàn)這些功能而其它的IDE僅少數(shù)使用插件模 cc開(kāi)發(fā)環(huán)境 cCdevelopment Cc什程序
39、的開(kāi)發(fā) 插件是一種結(jié)構(gòu)化的組件它將代碼添加至系統(tǒng)并以結(jié)構(gòu)化的方式描述插 件可以定義自身的擴(kuò)展點(diǎn)即經(jīng)過(guò)嚴(yán)格定義可以擴(kuò)展的功能點(diǎn)當(dāng)插件向擴(kuò)展點(diǎn) 舔加實(shí)現(xiàn)時(shí)就認(rèn)為向平臺(tái)添加了擴(kuò)展這些擴(kuò)展和擴(kuò)展點(diǎn)是在插件的清單文件 pluginxml中聲明的定義擴(kuò)展點(diǎn)與定義其它任何API很相似唯一的區(qū)別就是擴(kuò) 展點(diǎn)是使用XML而不是使用代碼特征符來(lái)表示的而第三方插件也是使用XML 湖北工業(yè)大學(xué)碩士學(xué)位論文 文件向Eclipse平臺(tái)描述它的特定擴(kuò)展的 插件開(kāi)發(fā)環(huán)境PDE不僅用于幫助開(kāi)發(fā)人員創(chuàng)建開(kāi)發(fā)測(cè)試調(diào)試和部署插 件同時(shí)PDE的授權(quán)還包括開(kāi)發(fā)片段功能部件和更新站點(diǎn)的工具一般而言 一個(gè)PDE項(xiàng)目包括以下幾項(xiàng)內(nèi)容 7I描述正在提供的擴(kuò)展以及代碼的打包描述了插件的基本 1 pluginxmlIl 信息和啟動(dòng)該插件所依賴的其它插件信息以及擴(kuò)展點(diǎn)的相關(guān)信息 2 插件依賴項(xiàng)用于添加啟動(dòng)此插件前需要啟動(dòng)的其它插件 出應(yīng)該編譯到所選擇的每個(gè)庫(kù)的文件夾 展點(diǎn)進(jìn)行開(kāi)發(fā)另一類是依賴于Eclipse平臺(tái)的獨(dú)立開(kāi)發(fā)即在最小運(yùn)行核心上的 開(kāi)發(fā)并沒(méi)有使用Eclipse提供的其它資源如果插件的開(kāi)發(fā)是基于第一類那么 在插件運(yùn)行期間必須保證所依賴的插件項(xiàng)已經(jīng)存在并且啟動(dòng)否則Eclipse會(huì)報(bào) 依賴插件不能運(yùn)行的異
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保科技公司文員聘用及綠色創(chuàng)新協(xié)議
- 二零二五年度農(nóng)村私人土地租賃與特色養(yǎng)殖合作合同
- 二零二五年度跨境電商金融服務(wù)商務(wù)協(xié)議書(shū)
- 小微企業(yè)市場(chǎng)開(kāi)拓的營(yíng)銷推廣計(jì)劃
- 電商平臺(tái)用戶行為規(guī)范及免責(zé)聲明
- 車(chē)位抵押借款合同協(xié)議
- 企業(yè)信息化改造升級(jí)合作協(xié)議
- 設(shè)備采購(gòu)說(shuō)明文書(shū)模板
- 提高團(tuán)隊(duì)協(xié)作效率的行動(dòng)計(jì)劃
- 物流運(yùn)輸安全及免責(zé)承諾書(shū)
- 某地源熱泵畢業(yè)設(shè)計(jì)
- (三級(jí))工業(yè)機(jī)器人運(yùn)用與維護(hù)理論考試復(fù)習(xí)題庫(kù)(含答案)
- 2024年廣東省公務(wù)員錄用考試《行測(cè)》真題及解析
- 高中英語(yǔ)必背3500單詞表(完整版)
- 房產(chǎn)中介居間服務(wù)合同模板樣本
- 海洋工程裝備保險(xiǎn)研究
- 2024年廣東省深圳市中考英語(yǔ)試題含解析
- GB/T 16288-2024塑料制品的標(biāo)志
- 麻風(fēng)病防治知識(shí)課件
- 3素炒圓白菜 教案
- 透析患者營(yíng)養(yǎng)不良護(hù)理
評(píng)論
0/150
提交評(píng)論