




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計 算 機 工 程 第 35 卷 第21期Vol.35 No.21 Computer Engineering · · 軟件技術與數據庫文章編號:10003428(2009)21004203文獻標識碼:A2009年11月November 2009中圖分類號:TP311.52模型驅動的服務構件開發(fā)工具錢建平1,沈備軍1,陳德來2,3(1. 上海交通大學軟件學院,上海 200240;2. 中國電信股份有限公司上海分公司,上海 200030;3. 上海市網絡化制造與企業(yè)信息化重點實驗室,上海 200030)摘 要:研究并開發(fā)一種模型驅動的服務構件開發(fā)工具,提出相應的服務構件開發(fā)流程
2、。該工具基于服務構件架構定義構件模型,驗證模型的正確性,采用模型驅動開發(fā)技術自動生成代碼框架,支持構件開發(fā)的3個關鍵步驟,即構件制作、構件組裝和構件管理。應用結果證明,該工具能提高軟件開發(fā)效率。關鍵詞:模型驅動架構;服務構件架構;基于構件的軟件開發(fā)Development Tool for Service Component of Model DriveQIAN Jian-ping1, SHEN Bei-jun1, CHEN De-lai2,3(1. School of Software, Shanghai Jiaotong University, Shanghai 200240; 2. Sha
3、nghai Branch, China Telecom Corporation Limited, Shanghai 200030;3. Shanghai Key Lab of Advanced Manufacturing Environment, Shanghai 200030)【Abstract】This paper studies and develops a development tool for service component of model drive, and presents the relevent development flow of these service c
4、omponents. Based on Service Component Architecture(SCA), this tool defines the component model, validates the correctness of the model, and generates the code skeleton by using model drive development technology. The tool supports the three key procedures of component developmentcomponents making, c
5、omponents composition and components management. Practice results show that this tool can increase the software development efficiency.【Key words】Model Drive Architecture(MDA); Service Component Architecture(SCA); Component-Based Software Development(CBSD)1 概述隨著計算機技術的飛速發(fā)展,軟件開發(fā)人員面臨著越來越多的挑戰(zhàn),需要解決如何提高開發(fā)
6、效率、降低維護費用的問題。因此,基于構件的軟件開發(fā)(Component-Based Software Development, CBSD)方法被提出并成為研究熱點,它是軟件開發(fā)的發(fā)展方向。對象管理組織于2001年提出模型驅動架構(Model Drive Architecture, MDA)1,其核心思想如下:先抽象出與實現技術無關、完整描述業(yè)務功能的核心平臺無關模型(Platform Independent Model, PIM),然后針對不同實現技術制定多個轉換規(guī)則,通過此類轉換規(guī)則和輔助工具將PIM轉換成與具體實現技術相關的平臺相關模型(Platform Specific Model, P
7、SM),最后將經過充實的PSM轉換成代碼。MDA的目的是分離業(yè)務建模與底層平臺技術,以保護建模成果不受技術變遷的影響。目前,支持構件開發(fā)的工具很多,但多數沒有融入MDA思想,如普元的EOS Studio、復旦大學軟件工程實驗室的JBCA-Tool2。有些工具只支持構件開發(fā)中的構件組裝部分,對于構件制作、構件管理沒有很好的支持,如文獻3提出的構件開發(fā)MDA工具。很多構件開發(fā)工具擁有自己的構件模型,支持異構構件的組裝,但其制作的構件很難與其他標準構件協作,如JBCA-Tool。本文實現一個完整的構件開發(fā)工具,并在該工具中融入MDA思想,使其能根據構件模型自動生成代碼框架。為了生成具有良好互操作性的
8、構件,本文使用構件模型國際標 準服務構件架構(Service Component Architecture, SCA)。 422 構件模型及其驗證2.1 基于SCA架構的構件模型SCA是一種面向服務構件的框架4,是SOA概念和傳統(tǒng)CBSD方法相結合的產物。SCA規(guī)約的目標是提供一種在分布式異構環(huán)境中組合多種實現技術不同構件的方法。服務構件是SCA的基本組成元素和基本構建單位,用于實現業(yè)務邏輯,可以視為構建應用的積木。用戶能方便地把傳統(tǒng)POJO、無狀態(tài)會話BEAN等包裝成SCA中的服務構件。本文構件模型完全基于SCA的服務構件模型。該模型包括Service(服務)、Reference(引用)和P
9、roperty(屬性)3個部分。服務構件提供給別人的服務調用入口稱為服務。服務構件本身可能需要調用別的服務,此類調用出口稱為引用。服務和引用的調用規(guī)范都是WSDL或Java接口。屬性定義構件所需的配置項,此類配置項的值可以在配置文件中指定。本文定義了符合SCA規(guī)范的原子構件和復合構件。原子構件由一系列服務、引用和屬性組成,它不會引用其他構件。復合構件由一系列原子構件、服務、引用和屬性構成,并在這些原子構件之間進行一些連接。如下代碼給出了構件描述文件的一個例子,composite標記間的代碼表示復合構件,component標記間的代碼表述原子構件。<composite ><co
10、mponent name="ComponentA">基金項目:國家“863”計劃基金資助項目(2007AA01Z139) 作者簡介:錢建平(1983),男,碩士研究生,主研方向:模型驅動開發(fā),構件組裝;沈備軍,副教授、博士;陳德來,研究員、博士 收稿日期:2009-05-11 E-mail:qjianping02<implementation.java class="cn.sjtu.ATMServiceImpl"/> <service name="ATMService"> <interface.ja
11、va interface="cn.sjtu.ATMService"/> </service> <reference name="SecurityService"> <interface.java interface="cn.sjtu.SecurityService"/> </reference> <property type="java.lang.String" name="sn">true</property> &l
12、t;/component> <component name="ComponentB"> <implementation.java class="cn.sjtu.SecurityServiceImpl"/> <service name="SecurityService"> <interface.java interface="cn.sjtu.SecurityService"/> </service> <reference name="F
13、oo"/> </component> <component name="ComponentC"> <implementation.java class="cn.sjtu.Foo"/> </component> <wire source="ComponentA/SecurityService" target="Com ponentB/SecurityService"/> <wire source="ComponentB/Foo
14、" target="ComponentC"/> </composite> 構件模型的驗證 構件模型驗證的目的在于保證原子構件與復合構件模型 的有效性和完備性。只有通過驗證的構件才能生成有效和完 備的代碼框架。模型驗證內容包括: (1)單個構件的驗證。主要是原子構件的驗證,先驗證描 述 文 件 是 否 為 合 法 的 XML 文 件 , 然 后 通 過 相 應 的 XML Schema 驗證描述文件是否符合 Schema 定義要求的完備的 XML 文件,再驗證定義的有實體的元素是否真實存在,例如 引用的 Java 類或 Spring bean 是否
15、存在。 (2)構件間關系的驗證。主要是復合構件的驗證,它需要 判斷被組裝的原子構件是否存在,2 個被組裝的原子構件之 間的接口是否匹配。 本文使用開源工具 XMLBean 驗證 XML 文件的合法性。 通過該工具提供的接口可以驗證構件是否符合相應的 XML Schema。構件間關系的驗證依賴本文定義的構件資源模型。 2.2 3 在 SCA 構件模型基礎上, 本文實現了模型驅動的構件開 發(fā)工具ComponentStudio。開發(fā)者使用該工具能可視化定 義和組裝構件,并自動生成代碼框架。 架構設計 模型視圖控制器(Model View Controller, MVC)模式被普 遍應用于可視化開發(fā)工
16、具。在此模式中,一個模型能對應多 個視圖,加入的控制層能很好地耦合模型和視圖。本文使用 的 開 發(fā) 工 具 應 具 備 上 述 特 征 , 因 此 , 選 擇 MVC 作 為 ComponentStudio 的核心架構模式,如圖 1 所示,其中,3 個 大矩形框表示 MVC 的 3 個模塊。對圖 1 中的各構件具體描 述如下: (1)構件資源模型。該模型是 MVC 架構的關鍵部分,應 涵蓋構件開發(fā)過程中一切所需元素。基于 Eclipse 的 Java 項 目模型,本文提出構件資源模型。該模型相對于 SCA 構件模 型是廣義的,SCA 構件模型只關注單個構件,包括一些接口 和屬性,而構件資源模型
17、即關注單個構件,也關注構件間的 3.1 構件開發(fā)工具的設計與實現 關系。 一個 Eclipse 的工作空間對應一個唯一的構件資源模型, 該模型包含零個或多個構件工程。構件工程基于 Eclipse 的 Java 工程概念,是可以獨立編譯、運行和部署的實體。一個 構件工程包括一個復合構件和一個或多個原子構件。 構件資源模型的存儲形式是文件,其中包括構件描述文 件(關于單一構件)和構件工程信息(存儲于 Eclipse 工程元數 據中)。 (2)控制器。負責觀察 Eclipse 資源的變化,如文件變化。 因為構件模型存儲于文件中, 所以文件變化對應于模型變化, 只要安裝一個過濾器,篩選出感興趣的文件變
18、化即可。 控制器接收到資源更改消息后, 會包裝改變的詳細信息, 生成一個事件,而不是直接改變視圖。該事件稱為模型更改 事件。這樣做的好處是減少控制器與視圖之間的依賴,視圖 只要選擇監(jiān)聽自己關注的事件來改變自己的顯示。 (3)視圖。主要視圖包括 3 個: 1)原子構件編輯器。用可視化方式編輯原子構件,按原 子構件的定義,該編輯器能編輯該定義中涉及的所有元素, 包括服務接口、引用接口和屬性。 2)復合構件編輯器。在該編輯器中需要編輯復合構件定 義中的所有元素。 復合構件編輯器可以由 Eclipse 的開源框架 GMF(Graphical Modeling Framework)來實現。該架構能有效
19、結合模型和視圖元素,且支持可拖拽的視圖元素,為實現可 拖拽的構件組裝過程提供了便利。 3)導航視圖。 導航視圖基于 Eclipse 提供的 CNF(Common Navigator Framework)架構。在該視圖中能以樹形方式展示資 源,且支持一些常用資源操作,如新增資源、刪除資源、定 位資源。在該視圖中可以顯示構件的詳細信息,如服務接口、 引用接口和屬性。通過雙擊相應圖標,能定位到具體資源, 例如雙擊服務接口能打開服務的實現代碼窗口。 上述視圖都會監(jiān)聽模型更改事件,從而在模型改變時相 應改變自己的顯示。 (4)自動構建器。它在該架構中的地位類似于視圖,用于 監(jiān)聽模型更改事件,當特定事件出
20、現后,自動驗證模型的正 確性。但與視圖不同,它不會改變模型。模型自動驗證功能 可以給開發(fā)者帶來極大便利,使錯誤盡早被發(fā)現。Eclipse 的 插件機制提供了構建器的擴展點,能讓用戶快速構造自己的 構建器。在該構建器中,筆者監(jiān)聽模型更改事件,并增量構 建構件工程。 圖1 構件開發(fā)工具 MVC 架構 代碼框架生成 代碼生成的關鍵是建立從構件模型到代碼的轉換規(guī)則。 轉換規(guī)則指定了模型的特定元素到特定代碼片段的轉換。模 型的每個元素擁有一些屬性,此類屬性會被用于轉換過程。 3.2 43 比如,implement.java標記中的class屬性會被轉換成相應的包名和類名;service, referen
21、ce中的interface元素會被轉換成類中的域;property中的type和name元素,會被轉換成類中域的數據類型和名稱,工具會為這些域提供getter和setter方法。目前,該工具只支持從模型到Java代碼的轉換。 3.3 工具實現基于Eclipse平臺,本文實現構件開發(fā)工具Component Studio,如圖2所示。當工具啟動后,界面中間是一個圖形編輯器,該編輯器能可視化表述構件和構件組裝過程。構件屬性能在屬性頁中配置。在構件建模過程中,自動構建器會自動驗證構件的合法性,錯誤信息會在問題視圖中顯示。當建模完成且驗證通過后,開發(fā)者能使用工具為構件模型產生代碼框架。圖2 構件開發(fā)工具
22、界面在該工具的幫助下,開發(fā)者只要關注構件的建模和業(yè)務邏輯即可。該過程可以視為MDA中PSM到代碼的轉換,與傳統(tǒng)過程相比,它能顯著提高軟件開發(fā)效率。由于具有自動驗證功能,因此它能減少錯誤發(fā)生概率。4 模型驅動的服務構件開發(fā)流程在ComponentStudio工具中,構件開發(fā)包括3個步驟:構件制作,構件組裝和構件管理。4.1 構件制作構件制作在ComponentStudio工具中主要指定義和制作原子構件。包括2個過程,即構件描述文件的定義和代碼框架的生成。構件描述文件定義主要在原子構件編輯器中完成,本文通過可視化方式定義構件。在定義過程中,自動驗證功能會實時顯示錯誤信息并給出糾錯提示。驗證通過后,
23、可以通過選擇自動生成代碼菜單,方便地生成代碼框架。4.2 構件組裝構件組裝主要在復合構件編輯器中完成。已定義好的原子構件可以通過拖拽的方式導入復合構件編輯器中,若2個原子構件的服務和引用接口相匹配,則可以在2個構件間連線,以建立匹配關系。自動驗證功能對于該過程仍然有效。對于不匹配的接口,本文定義了適配器。服務和引用接口的命名以及函數定義可能不同,此時,接口匹配需要進行一些轉換,本文使用類似適配器模式的方法,提供一個新的適配器類來包裝原有服務接口,使接口能和適配器類匹配。通過定義連線的屬性,可以選擇是否需要適配器類。 44 4.3 構件管理構件管理一般是指通過構件庫,實現構件的錄入、查詢、下載等
24、功能。本文涉及的構件管理更多關注在工程中如何管理構件間的依賴關系以及構件的導入導出。Maven可以很好地用于項目管理,本工具引入Maven來管理構件。Maven通過pom文件管理項目,在新建一個構件時,需要錄入該構件相應的pom信息。Maven具有資源庫概念,制作完成的構件保存在資源庫中。每次要導入一個構件,只需要引用該構件的pom信息。Maven擁有強大的依賴管理功能,當一個構件需要依賴其他構件時,只要在該構件的pom文件的依賴項中,加入依賴構件的信息,利用Maven的Eclipse插件,該依賴會自動加入到Eclipse的工程依賴中。通過Maven資源庫能很好地實現構件共享。在一個公司(或更大范圍)內可以有一個統(tǒng)一的資源庫,每個人開發(fā)的構件都可以錄入到該資源庫中,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 種子種苗國際貿易與市場分析考核試卷
- 紡織設備操作安全風險評估與控制考核試卷
- 窗簾行業(yè)的綠色服務模式創(chuàng)新實踐與案例分析考核試卷
- 維綸纖維在高端服裝面料中的應用考核試卷
- 紡織行業(yè)供應鏈管理策略考試考核試卷
- 木材采伐與可持續(xù)經營考核試卷
- 濾波器設計與實現考核試卷
- 電氣安裝施工環(huán)境保障措施考核試卷
- 礦山環(huán)境保護與污染防治考核試卷
- 山西省長治市三校2025年高三元月三診一模摸底診斷測試英語試題文試題含解析
- 安橋功放機TX-NR3010說明書
- 現場復查要點解讀水電及新能源工程
- 《畜禽糞肥還田利用技術規(guī)范(征求意見稿)》編制說明
- GB/T 44309-2024陶瓷巖板
- 小學五年級下學期科學《我們面臨的環(huán)境問題》教學課件
- 血透病人低血壓護理查房
- 2024年工程承包合同書范文
- 有限空間作業(yè)風險辨識管控臺帳
- JGJT397-2016 公墓和骨灰寄存建筑設計規(guī)范
- 拖拉機濕式離合器
- 中學教材、教輔資料征訂管理制度
評論
0/150
提交評論