国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件構件化生產集成支撐平臺研發(fā)

2011-09-07 10:17:06常炳國王祥宗
計算機工程與設計 2011年8期
關鍵詞:原子框架構件

常炳國, 王祥宗

(湖南大學軟件學院,湖南長沙410082)

0 引 言

隨著用戶對軟件的個性化、動態(tài)適應性要求越來越高,軟件需求復雜性在空間和時間維度大幅提升。軟件產業(yè)增長和復雜度提高與相對落后的軟件生產之間存在矛盾,解決落后軟件生產力的關鍵是推動軟件的自動化合工業(yè)化技術。傳統(tǒng)工業(yè)化生產模式是符合標準的零部件(構件)生產,以及基于標準構件的產品生產(組裝)。其中構件是核心和基礎,組裝復用是必要的手段。實踐表明,構件化軟件生產是軟件生產工業(yè)化的必要選擇[1]。因此,軟件產業(yè)規(guī)模經濟的形成和發(fā)展,軟件構件化、標準化組裝生產成為關鍵。

基于構件的軟件工程研究的核心熱點有構件化建模規(guī)約及相應支撐工具的形成,構件化可視組裝規(guī)約及其相應支撐工具的形成,構件管理、檢索技術及其相應支撐工具形成,構件測試評估模型及其相應支撐工具的形成,以及真正意義上的業(yè)務層次構件化組裝開發(fā)技術,統(tǒng)一的軟件構件化標準規(guī)范制定等。對支持業(yè)務層次組裝的業(yè)務構件化建模理論方法進行研究,包括業(yè)務實體的描述、分解、抽取、聚合和映射等,探索從業(yè)務到系統(tǒng)構件、業(yè)務構件、技術元構件的構件化分層建模分析方法。

構件與模塊的最大區(qū)別是構件可以用來復用和組裝,而模塊只能用來復用。目前,所能見到的業(yè)務層次構件,其本身可以由一組分布式技術構件(如頁面構件、業(yè)務邏輯構件、運算構件、數據構件等)組成。但業(yè)務構件間的組裝技術還較少被提及,這就使得構件化組裝開發(fā)主要局限于分布技術層,在業(yè)務或服務層次,嚴格意義上講只存在集成。提出了在分布層構件模型基礎上,增加業(yè)務構件層,使得構件模型體系既滿足可通過技術構件層的可視組裝實現技術構件、業(yè)務構件的組裝開發(fā),還可通過業(yè)務構件之間的可視組裝實現業(yè)務構件、系統(tǒng)級構件、以及應用系統(tǒng)的組裝開發(fā),從而實現大型企業(yè)級應用軟件的全程構件化組裝開發(fā)。

研究了現有軟件構件模型體系,從映射和建模思路上進行創(chuàng)造性闡述。通常,基于構件的軟件組裝開發(fā)過程是將軟件系統(tǒng)切分為業(yè)務功能模塊,基于分布式技術構架,通過選擇或開發(fā)若干技術構件組裝形成各業(yè)務模塊,完成應用系統(tǒng)的開發(fā)工作。軟件組裝是局部的,在數據層、數據交換層、數據流控制層實現,而在業(yè)務層,實際上沒有真正意義上的組裝。那么,業(yè)務層次實現組裝開發(fā),即直接將業(yè)務分解、抽取、映射為相互間具有組裝關系的一組業(yè)務構件,分別在技術層、業(yè)務層實現多級組裝,形成的構件粒度更大,組裝復用效率更高,為大型軟件構件化組裝開發(fā)提供可能。

提出了構件化建模規(guī)約,支持由業(yè)務范疇的事實模型直接自動或半自動映射形成軟件范疇的構件空間[1]。這樣,不僅可降低系統(tǒng)建模的復雜度,還可以使熟悉業(yè)務、使用系統(tǒng)的非軟件專業(yè)人員完成應用建模的核心任務。現有的構件化建模技術中,大多直接基于系統(tǒng)用例在解空間(或系統(tǒng)空間)中展開,而由業(yè)務到軟件的跨空間映射,即由問題空間(或業(yè)務描述空間)到系統(tǒng)空間的映射,都需由不太熟悉業(yè)務的軟件專業(yè)人員通過手工的問題描述和用例分析來實現,其要求高(需要同時熟悉業(yè)務和軟件技術的高級人才去完成)、跨度大(跨領域空間、跨專業(yè))、高復雜度的特性往往使得開發(fā)難度大、開發(fā)出的軟件產品和業(yè)務需求脫節(jié)。

基于代碼粘合的構件化組裝是較早的一類組裝方法,幾乎不需要支撐平臺,運用目前流行的普通集成開發(fā)環(huán)境都可實現[1],如微軟的VisualStudio系列、Borland的 C++Builder、Delphi、J Builder系列、Sun 的 NetBeans、IBM 的 Eclipse等。在集成過程中開發(fā)者嚴格遵守標準或自行定義的構件模型、構件化建模規(guī)約、構件組裝規(guī)約等,在代碼層次實現構件化組裝?;诩夹g層次構件組裝開發(fā)環(huán)境還不多見,目前比較成熟的典型產品有上海普元的EOS(enterprise oriented system,EOS)系列,實現了基于XML數據總線的可視化組裝?;诠δ芊諏哟螛嫾M裝平臺也比較少,比較成熟的有 IBM的 Web-Sphere,其它服務層次組裝的類似產品只有思路或雛形[2],大部分都正處于開發(fā)或完善之中。本文以大型管理軟件為應用背景,構建一個從功能元構件組裝、包裝到原子業(yè)務構件、組合業(yè)務構件、子系統(tǒng)構件組裝的全程構件化組裝開發(fā)的集成支撐環(huán)境,提出了一種構件化組裝集成開發(fā)平臺構造方法,并就其原理進行詳細闡述。

1 平臺總體框架

構件化組裝業(yè)務開發(fā)包括4個層次,即應用系統(tǒng)組裝、子系統(tǒng)構件組裝、組合業(yè)務構件組裝、原子業(yè)務構件開發(fā)、組裝與包裝。軟件構件化組裝平臺總體框架如圖1所示。

圖1 軟件構件化組裝平臺總體框架

構件化組裝把構件包中的部分對外元構件接口引申,包裝成原子業(yè)務構件插頭(提供接口或引用接口),把元構件中的一些事件定義引申包裝成組合業(yè)務構件框架的構件插槽,同時形成原子業(yè)務構件或組合業(yè)務構件框架的整體描述 XML文件?;?EOS平臺在技術層次上實現了構件的可視化組裝,基于分布式技術構架將構件進行分為頁面構件類、展現構件類、處理邏輯構件類、運算構件類、數據構件等,基于構件之間的數據交互層進行組裝,形成業(yè)務構件包或應用系統(tǒng)。

組合業(yè)務構件是業(yè)務層次最大可執(zhí)行構件,由一族原子業(yè)務構件與組合業(yè)務構件框架基于構件接口組裝而成,組合業(yè)務構件組裝工具是組裝平臺的核心[3]。將一個或一族構件的引用接口抽取,綁定形成構件框架的插槽,并定義出插槽的規(guī)約。構件之間的關聯(lián)都通過構件框架來實現。即構件將提供接口插入構件框架的插槽中,通過構件框架提供的插槽服務(響應執(zhí)行事件,解析執(zhí)行相應的構件行為)以及事件服務(事件源由構件提供,事件響應以及觸發(fā)由構件框架的事件服務引擎實現)來實現構件之間的交互。組合業(yè)務構件的組裝是原子業(yè)務構件及組合業(yè)務構件框架基于構件接口的組裝,而各構件接口通過xml文檔的形式進行描述,因此組合業(yè)務構件的組裝本質是基于xml描述信息的組裝,組裝最終形成的組合業(yè)務構件也是以xml的形式進行描述,如圖2所示。

在組裝過程中,依據原子業(yè)務構件組裝文件、構件框架組裝文件,配置生成組合業(yè)務構件組裝源文件以及組合業(yè)務構件運行文件。圖3給出了組裝開發(fā)總體業(yè)務流程,通過集成的EOS開發(fā)平臺[4],完成元構件、原子業(yè)務構件包、組合業(yè)務構件框架包的組裝開發(fā),再通過業(yè)務構件組裝平臺實現構件化包裝、組合業(yè)務構件的組裝、子系統(tǒng)級構件的組裝、以及應用系統(tǒng)的組裝,分別生成原子業(yè)務構件、組合業(yè)務構件框架、組合業(yè)務構件、子系統(tǒng)級構件、應用系統(tǒng)。

2 平臺功能描述

圖3 構件化組裝業(yè)務原理

構件化業(yè)務集成平臺具有實現各類元構件識別、映射功能,提供業(yè)務構件包裝器,完成原子業(yè)務構件、組合業(yè)務構件框架、組合業(yè)務構件包裝,形成支持組裝的業(yè)務構件。具有組合業(yè)務構件組裝功能,實現原子業(yè)務構件和業(yè)務構件框架的組裝;提供組合業(yè)務構件和子系統(tǒng)構件框架的組裝工具,形成子系統(tǒng)級構件;提供子系統(tǒng)級構件與應用系統(tǒng)框架的組裝工具,形成應用系統(tǒng);提供各類構件的存儲、檢索等的管理工具;提供業(yè)務規(guī)則的配置、編輯等的管理工具。應用系統(tǒng)以應用框架模版的方式組裝,各子系統(tǒng)級構件的接口信息直接存放在應用數據庫中。子系統(tǒng)級構件以菜單的方式組裝,各組合業(yè)務構件的接口信息直接存放在應用數據庫中。集成平臺提供了可視化的圖形拖載,并提供可視化的信息配置界面,支持在線更新原子業(yè)務構件和業(yè)務構件框架。提供組裝驗證、調試等功能。平臺核心組成包括構件化包裝工具、組合業(yè)務構件組裝平臺、系統(tǒng)級構件組裝平臺、構件庫管理平臺、業(yè)務規(guī)則管理平臺、管理軟件領域構件庫、業(yè)務構件服務等7個部分[5]。其功能組成構架如圖4所示。

圖4 集成開發(fā)平臺核心功能構架

在圖4中,業(yè)務構件服務解析業(yè)務構件內部、業(yè)務構件之間的工作流程、業(yè)務規(guī)則、數據傳遞、通訊等,并對其進行編譯、執(zhí)行的服務,包括各類引擎。管理軟件領域構件庫管理業(yè)務進行領域業(yè)務建模、領域系統(tǒng)分析設計、開發(fā)所形成的構件。構件庫管理提供了構件模型定義、構件分類等基礎管理。組合業(yè)務構件組裝實現了基于業(yè)務規(guī)程規(guī)則的可視化組裝,形成組合業(yè)務構件。組合業(yè)務構件組裝平臺主要操作功能包括組裝、組裝驗證、發(fā)布、預覽等,組裝是指把多個原子業(yè)務構件及組合業(yè)務構件框架接插組裝成組合業(yè)務構件、同時形成組合業(yè)務構件的插頭、組裝文件及運行文件;組裝驗證是指根據驗證規(guī)則確保組裝形成的組合業(yè)務構件正確有效;發(fā)布是指把組裝形成的組合業(yè)務構件發(fā)布到應用服務器,同時保存到構件庫中,進行統(tǒng)一管理與維護、標識該組合業(yè)務構件為可用;預覽是指在組裝客戶端瀏覽組裝效果。組裝時,平臺首先解析原子業(yè)務構件及構件框架的包裝文件,詳細列舉出框架的插頭插槽及原子業(yè)務構件插頭信息,開發(fā)人員手工映射框架插槽及原子業(yè)務插頭的對應關系,并選擇合適的業(yè)務規(guī)則進行插槽及插頭參數的映射約束,最后再選擇包裝框架的插頭形成組合業(yè)務構件的插頭。系統(tǒng)級構件組裝基于子系統(tǒng)構件框架、組合業(yè)務構件集,實現可視化的應用系統(tǒng)組裝。子系統(tǒng)構件框架通常是菜單樹,組合業(yè)務構件對應于菜單樹的葉子項,是應用系統(tǒng)的基本部署單元。業(yè)務規(guī)則管理為最終用戶提供一個可視化的業(yè)務規(guī)則配置、維護管理工具,以便在業(yè)務發(fā)生變化的時候,可通過配置業(yè)務規(guī)則而實現靈活調整系統(tǒng)相應部分的目的,增強應用系統(tǒng)動態(tài)適應性。主要功能包括規(guī)則對象及運算符號定義、規(guī)則分類、導出規(guī)則配置、計算規(guī)則配置、投影規(guī)則配置等。構件化包裝工具以非構件化軟件為包裝對象,按照構件模型規(guī)范或構件框架模型規(guī)范對其進行構件化包裝,形成可組裝的構件。

3 平臺組裝實現

業(yè)務構件組裝實現過程是基于XML描述文件的組裝,涉及各類組裝元素的項目文件(源代碼文件)、組裝文件、運行文件,應用系統(tǒng)的形成經歷了包裝、組裝、驗證、發(fā)布、部署等過程,圖5給出了平臺組裝實現的內部工作機制[6]。圖5中,A1表示將原子業(yè)務構件包入庫構件分類表;A2表示將構件包中的元構件入庫構件表、構件版本表、構件接口表、構件接口參數表;B1表示構件化包裝前先從構件分類表中讀取待包裝的原子業(yè)務構件分類信息(具體實現方法是,先從分類表中導出到本地XML文件里,然后系統(tǒng)從本地XML中讀取并展現),然后根據分類信息在構件表、構件版本表、構件接口表中讀取所有該原子業(yè)務構件的元構件接口,由用戶具體選擇哪些作為原子業(yè)務構件接口;B2表示構件化包裝前先從構件分類表中讀取待包裝的構件框架分類信息。然后根據分類信息在構件表、構件版本表、構件接口表中讀取所有該組合業(yè)務構件框架的元構件接口,由用戶具體選擇哪些作為組合業(yè)務構件框架接口;B3表示經構件化包裝形成原子業(yè)務構件;B4表示經構件化包裝形成組合業(yè)務構件框架;B5對原子業(yè)務構件包裝后,原子業(yè)務構件運行文件直接由EOS平臺組裝原子業(yè)務構件包時生成的運行文件(XML文件格式)映射而來;B6對原子業(yè)務構件包包裝形成原子業(yè)務構件組裝文件(XML文件格式),直接由包裝工具生成;B7對組合業(yè)務構件框架包包裝后,組合業(yè)務構件框架運行文件直接由EOS平臺組裝組合業(yè)務構件框架包時生成的運行文件(XML文件格式)映射而來;B8對組合業(yè)務構件框架包包裝形成組合業(yè)務構件框架組裝文件(XML文件格式),直接由包裝工具生成;B9表示把包裝好的原子業(yè)務構件入庫。

圖5 組裝實現技術原理

B10表示把包裝好的構件框架入庫;B11表示在對原子業(yè)務構件包包裝時,形成業(yè)務規(guī)則構件與原子業(yè)務構件映射文件;C1表示在組裝前先從構件分類表中讀取構件分類信息。(具體實現方法是,先從構件分類表中導出原子業(yè)務構件級別以上的分類信息到本地XML文件里,然后系統(tǒng)從本地XML中讀取并展現);C2表示在組裝前先從構件分類表中讀取構件框架分類信息。(具體實現方法是,先從構件分類表中導出相應的業(yè)務構件框架分類信息到本地XML文件里,然后系統(tǒng)從本地XML中讀取并展現);C3表示從構件表中讀取構件框架。(具體實現方法是,先從構件表中導出該項目所有構件框架到本地XML文件里,然后系統(tǒng)依據選中的構件框架分類信息從本地XML中讀取相應的構件框架并展現);C4表示從構件表中讀取原子業(yè)務構件。(具體實現方法是,先從構件表中導出所有原子業(yè)務構件到本地XML文件里,然后依據選中的構件分類信息從本地 XML中讀取相應的原子業(yè)務構件并展現);C5表示從服務器上下載原子業(yè)務構件組裝文件;C6表示從服務器上下載構件框架組裝文件;C7表示通過組裝平臺形成組合業(yè)務構件的組裝文件(XML文件格式);C8表示通過組裝平臺形成組合業(yè)務構件的運行文件(XML文件格式);C9表示通過組裝平臺形成組合業(yè)務構件項目文件(XML文件格式);C10表示通過組裝平臺形成組合業(yè)務構件;C11表示將組裝形成的組合業(yè)務構件入庫;D1表示從構件表中讀取組合業(yè)務構件。(具體實現方法是,先從構件表中導出該項目所有組合業(yè)務構件到本地XML文件里,然后系統(tǒng)從本地XML中讀取組合業(yè)務構件并展現);D2表示通過系統(tǒng)級構件組裝平臺形成應用系統(tǒng)的客戶端;D3表示通過系統(tǒng)級構件組裝平臺形成系統(tǒng)運行文件。

4 結束語

本文討論了業(yè)務構件組裝平臺的功能定位、邊界范圍、業(yè)務及其流程模型,描述了集成平臺實現過程和面向業(yè)務組裝的構件化開發(fā)集成環(huán)境。論文給出了構件組裝集成開發(fā)平臺工具功能和實現過程,解決了包括組裝資源管理的XML描述規(guī)范、可視化、服務引擎、工作流、組裝匹配等技術手段。在EOS平臺基礎上,研制了面向業(yè)務組裝的構件化集成開發(fā)平臺工具,實現了構件化包裝和可視化組裝,以及構件管理、規(guī)則管理等,彌補了目前已有構件組裝平臺在業(yè)務組裝層次的空白。

[1]王祥宗,劉志,劉增良,等.基于規(guī)則的業(yè)務構件組裝規(guī)約[J].計算機集成制造系統(tǒng),2008,14(9):1774-1780.

[2]邵維忠,楊芙清.面向對象的系統(tǒng)分析[M].北京:清華大學出版社,2008.

[3]趙俊峰,謝冰,張路.一種支持領域特性的Web服務組裝方法[J].計算機學報,2005,28(4):731-738.

[4]王志堅,費玉奎,婁淵清.軟件構件技術及其應用[M].北京:科學出版社,2005:125-135.

[5]WANG Xiangzong,CHEN Ying,LIU Zenliang.Component-based software developing method for group companies management information system[J].Wuhan University Journal of Natural Sciences,2008,13(1):37-44.

[6]王祥宗,陳英,譚學元.集團型企業(yè)全面預算管理業(yè)務分析與建模研究[J].計算機工程與設計,2007,28(22):5493-5497.

[7]楊芙清,梅宏.面向復用的需求建模[M].北京:清華大學出版社,2008.

[8]王忠杰,戰(zhàn)德臣,徐曉飛.業(yè)務構件識別方法研究綜述[J].計算機集成制造系統(tǒng),2007,13(4):54-59.

猜你喜歡
原子框架構件
框架
原子究竟有多小?
原子可以結合嗎?
帶你認識原子
廣義框架的不相交性
WTO框架下
法大研究生(2017年1期)2017-04-10 08:55:06
建筑構件
建筑構件
建筑構件
建筑構件
高邮市| 南漳县| 共和县| 娱乐| 商丘市| 富阳市| 特克斯县| 宁远县| 泸水县| 永吉县| 新丰县| 玛沁县| 崇明县| 阳信县| 蕲春县| 北碚区| 横峰县| 罗定市| 廉江市| 恩平市| 隆安县| 宜宾市| 大渡口区| 荥阳市| 三河市| 高雄市| 信宜市| 台山市| 大同市| 凤山县| 阜阳市| 清水县| 普安县| 长汀县| 阿拉尔市| 濉溪县| 湘潭市| 什邡市| 韶关市| 古田县| 托克托县|