999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種面向軟件體系結構的動態重配置方法

2008-12-31 00:00:00智永鋒駿
計算機應用研究 2008年8期

摘 要:通過在整個軟件生命周期建立開發模型,研究了當前軟件工程與實際需求之間差異。利用基于XML的中間腳本,提出一種事務處理軟件開發模型,實現用戶功能需求到表單流、事件流和數據流的轉換,動態重配置出不同應用的事務處理軟件。建立了企事業信息綜合事務處理系統開發平臺,分析了平臺體系結構和中間腳本,表明可以根據業務變化進行整個系統功能重組而不需要編寫一句程序,驗證了該模型的可行性和有效性。

關鍵詞:軟件工程; 體系結構; 動態重配置

中圖分類號:TP311.52 文獻標志碼:A 文章編號:1001-3695(2008)08-2380-04

Software architecture oriented approach to dynamic reconfiguration

ZHI Yong-feng, ZHANG Jun

(College of Automation, Northwestern Polytechnical University, Xi’an 710072, China)

Abstract:Through setting up the development model in the software lifecycle, this paper studied the difference between nowadays software engineering and practical demands. Used the scripts that based on XML, presented an effective transaction processing software design model. It realized that the users’ functional requirement changed to the demands of form flow, event flow and data flow, which could dynamically configure and reconfigure different transaction processing software. Based on the model, set up information-centered enterprise transaction-integrated processing system (ICETIP) flat. At last, analyzed the flat architecture and middle script. Their feasibility and applicability show that it can be adjusted according to new requirements without any more programming.

Key words:software engineering; software architecture; dynamic reconfiguration

工藝水平的進步和微處理器系統體系結構的發展使得處理器的性能以每年1.6倍的速度增長,而軟件系統的開發過程與軟件危機時的情況相比沒有本質的改變[1]。進入20世紀90年代后,傳統的設計一詞已無法涵蓋軟件工程領域廣泛而豐富的內涵[2],體系結構概念進入軟件工程的研究方向。文獻[2] 定義軟件體系結構為數據要素、處理要素和連接要素特定形態的集合;文獻[3]認為軟件體系結構是構件之間的組織結構、關聯關系及設計的原則;文獻[4]認為軟件體系結構是相對穩定、滿足需求的基本框架;文獻[5~9]基于軟件的動態性和適應性討論了軟件生命周期特定階段的體系結構;文獻[10]建立了通用的適應性軟件體系結構;文獻[11]提出了軟件體系結構貫穿整個軟件生命周期的概念。

D. L. Parnas[12]指出軟件系統是離散執行的,任何位數據的改變都將改變系統的狀態。F. P. Brooks認為軟件復雜的原因是它的可變性 [13] 。正如文獻[14,15]中所指出的,軟件是現實世界的模型,必須跟隨現實世界變化,否則將面臨消亡的結局。因此,軟件系統應當適應環境的變化,軟件重配置技術應運而生。Peyman Oreizy認為軟件重配置技術是指能夠提供確定系統變化要素的方法,以此輔助分析并調整相應的變化需求,監視調整操作以確保系統的完整性[16]。文獻[17,18]提出了基于agent的動態重配置的數學模型。體系結構和重配置技術都減少了系統設計人員的工作量,但是并沒有把程序員從整個系統的設計中解脫出來。

本文結合軟件體系結構與重配置技術,針對事務處理軟件的特點,利用基于XML的一種中間腳本,提出了一種新的事務處理軟件開發模型。該模型獨立于具體的應用環境,具有廣泛的適應性和動態性,完全把程序員從編寫代碼中解脫出來。最后依據此思想建立了企事業信息綜合事務處理系統(information-centered enterprise transaction- integrated processing system, ICETIP)開發平臺,真正做到了設計系統時可見即可得,使用系統時所得即所需,解決了傳統軟件工程無法解決的問題。

1 傳統軟件開發流程

在現代軟件設計中,軟件系統形態是由若干基本單元及其相關語義約束構成。這些基本單元都不具有完備性,需要配置相關語義約束才有意義[17]

定義1 語義e是指用戶需求d經過分析后所得的對基本單元的相關約束,即e=Φ(d)。Φ表示用戶需求d到相關約束語義e的映射。其中,用戶需求d包括功能、性能、可靠性等不同的需求。

軟件開發過程的反復性和遞歸性,軟件產品的形態需要經過非線性變換才能進入下一階段,因此Φ是一個非線性,不具有惟一性和可加性的函數。

定義2 實例化算子是指基本單元綁定相關語義約束的過程。它滿足關系:如果λ=λ′λ″,則已知λ′與λ″,惟一確定λ;已知λ,惟一確定λ′與λ″。

根據定義2,基本單元通過相關語義約束搭建的軟件系統功能定義如下:

定義3 設C={c1,c2,…,cm}為基本單元集合,軟件功能r的實現可以定義為r=ξ(∑cie)=ξ(∑ciΦ(d))。函數ξ不具有可逆性、惟一性和不變性,實例化算子與函數ξ一起構成軟件的設計階段。

定義3說明了在軟件設計中,軟件功能是由若干基本單元及其相關語義約束經過函數ξ轉換后構成的。當用戶需求變更時,需要重新選擇基本單元和分析相關語義約束Φ(d),通過實例化和函數ξ重新得到軟件的功能。

定義4 運行產品R是指功能r在可執行代碼中的實現,記為Rr=ψ(r)。

函數ψ表示軟件的編碼和測試,它是軟件的功能r到最終二進制可執行代碼產品的映射,是一個非線性、不可逆、不具有惟一性和確定性的函數。因此,利用軟件的運行產品R不可能獲得以源代碼表示的軟件功能r。

根據定義1~4,軟件的最終產品可以描述為

Rr=ψ(ξ(∑ciΦ(d)))

上式反映了軟件產品開發的基本原理,用戶需求變化后,需要重新分析、設計、編碼和測試。揭示出軟件工程設計思想的弱點:軟件產品的實現不具有魯棒性和靈活性。因此,為了提高軟件的動態適應能力,實現系統的動態重配置,采用新的設計思想是必需的。

2 事務處理軟件動態重配置模型

針對事務處理軟件特點,首先定義三個流的概念:

定義5 表單流。指業務邏輯處理的執行界面,一系列的執行界面切換就構成了業務流程。它可以抽象出數據寫入、數據讀出等16種基本控件單元。

定義6 事件流。指用戶在某個執行界面中操作而觸發表單流、數據流和其他事件流的一系列業務數據的傳遞和處理。它可以抽象出9種不同基本觸發事件單元。

定義7 數據流。指伴隨著事件觸發產生的業務數據的存儲、轉移、更新等以及由此引起的一系列活動。通過對現有事務處理軟件工作模式的研究,抽象出了包括生成新的數據變量在內的21種不同類型基本活動事務單元。

如圖1所示,在事務處理軟件中,通過把所有用戶需求的功能業務邏輯抽象成表單流、事件流和數據流的需求,使用戶的功能需求到表單流、事件流、數據流的基本單元和相應基本單元的語義約束的轉換φ′、φ″和φ變成一個具有可加性的函數,φ′、φ″和φ和分別滿足φ′(a+b)=φ′(a)+φ′(b)、φ″(a+b)=φ″(a)+φ″(b)和φ(a+b)=φ(a)+φ(b)。基本單元的集合即被劃分了三個部分:表單流、事件流和數據流的基本單元集合C1、C2和C3,且滿足C=C1+C2+C3。

設d′表示用戶的功能需求;a1、a2和a3分別表示用戶對表單流、事件流和數據流的需求;Φ(d′)表示對所有基本單元約束的相關語義;φ′(a1)、φ″(a2)和φ(a3)分別表示對表單流、事件流和數據流的基本單元約束的相關語義;Δd′表示用戶功能需求的變化;Δa1、Δa2和Δa3分別表示用戶對表單流、事件流和數據流的需求變化;Φ(Δd′)表示對所有基本單元約束的相關語義變化;Φ′(Δa1)、Φ″(Δa2)和Φ(Δa3)分別表示用戶對表單流、事件流和數據流的基本單元約束的相關語義變化。那么,

對于功能以外的需求,如性能、可靠性、安全保密、成本消耗等需求,定義為d″,則用戶需求d=d′+d″。其中,d″需求在建立函數ψ時考慮。

通過引入一種基于XML描述軟件功能r的基本單元和相關約束語義的中間腳本,使函數ξ具有可逆性、惟一性和不變性,函數ψ具有惟一性、解釋性和不變性。函數ξ的可逆性和惟一性,說明如果已知描述軟件功能r的XML腳本,可求得所有基本單元及相關語義約束∑cie=ξ-1(r),根據實例化算子特性,ci與e也就惟一被確定;如果已知ci與e,通過實例化算子,描述軟件功能r的XML腳本也就惟一確定。函數ψ惟一性和解釋性,說明已知描述軟件功能r的XML腳本,可得惟一的最終二進制可執行代碼產品。函數ξ和ψ不變性是指對于不同的用戶需求,函數ξ和ψ轉換是固定不變的。因此,可以把用戶的功能需求抽象成表單流、事件流和數據流的相關語義約束,結合表單流、事件流和數據流的基本單元,通過實例化算子和函數ξ把功能需求編譯成基于XML的中間腳本。其中,以XML腳本描述的軟件功能r可表示為

r=ξ(∑ciΦ(d′))=ξ(∑σiφ′(a1)+

∑τjφ″(a2)+∑vkφ(a3))

對于不同的用戶需求,用戶得到的二進制可執行代碼是固定不變的。例如,對于銀行賬務系統和保險信息管理系統等不同事務處理軟件,它們的二進制可執行代碼(函數ψ)是相同的,不同的只是描述三種流的基本單元和相關語義約束的XML腳本。二進制可執行代碼通過解釋XML中間腳本得到不同事務處理軟件的用戶操作界面和相關用戶操作信息。功能r的最終軟件產品可以描述為

Rr=ψ(ξ(∑ciΦ(d′)))=

ψ(ξ(∑σiφ′(a1)+∑τjφ′(a2)+∑vkφ(a3)))

功能需求變化時,函數ψ是無須變化的,只需利用函數ξ的可逆性和惟一性,求得

∑σiφ′(a1)+∑τjφ″(a2)+∑vkφ(a3)=ξ-1(r)

利用實例化算子特性可求得用戶的新增功能需求

∑(ci+Δci)Φ(d′+Δd′)=

∑σiφ′(a1)+∑τjφ″(a2)+∑vkφ(a3)+

∑Δσiφ′(Δa1)+∑Δτjφ″(Δa2)+∑Δvkφ(Δa3)

實現了事務處理軟件無須編寫程序、軟件功能的快速升級。其中描述軟件新功能需求的XML腳本為

r+Δr=ξ∑ciΦ(d′)+∑Δσiφ′(Δa1)+

∑Δτjφ″(Δa2)+∑Δvkφ(Δa3)

獲得升級后最終軟件產品為

Rr+Δr=ψ(r+Δr)

事務處理軟件的性能、可靠性、成本消耗等需求,在函數ψ中統一考慮。對于性能需求,主要通過把同一特定系統用戶共享的XML腳本在系統啟動時讀入內存,實現XML腳本的快速查找和解析。對于事務處理軟件,只要函數ψ安全,整個系統就是安全的,因此模型的本身就保證了系統的可靠性,并且不需要編寫程序,升級快速,減少了成本消耗。

3 ICETIP體系結構

基于第2章提出的設計事務處理軟件的思想,建立了ICETIP開發平臺,它是信息處理的應用核,具有業務邏輯可配置、系統功能可重組的特性,使該應用核能夠適用于不同行業和不同業務邏輯的事務處理,重要的是在其應用部署過程中,無須任何程序修改和增加新的功能模塊。ICETIP開發平臺使項目從開發模式轉變為技術服務模式,運行一段時間后如果需要擴展新業務,只需在后臺應用服務器中,通過配置新的功能模塊,經過適當的權限控制,在不改變客戶端應用程序的情況下,就可以運作新業務,大大縮減了系統開發時間,提高了經濟效益;同時,在某種程度上促進了軟件的標準化發展。其中,ICETIP基于網絡應用的三層體系架構,主要由三部分組成:應用配置管理系統、客戶程序和應用服務器。

3.1 應用配置管理系統

該模塊主要是把用戶的功能需求編譯成XML腳本。配置事務處理軟件的過程中,首先以可視化方式拖動控件配置完成用戶界面;然后在配置觸發事件的同時,完成對活動事務配置;最后經過系統的編譯,把表單流、事件流和數據流編譯生成可以用XML語言描述的形式,并存入ICETIP系統庫。當用戶需要升級時,只需把XML語言描述的應用讀取并解釋到應用配置管理系統中,在原有的基礎上經過修改、配置和編譯生成新的XML腳本,并將ICETIP系統庫中原有XML腳本替換。

3.2 客戶程序

主要包括表單自動生成、事件流處理、解析器、通信程序和連接管理五部分。為了管理方便,引入角色概念,每一角色與特定的表單流相聯系。用戶登錄時,根據所屬的不同角色,表單自動生成模塊通過通信程序與應用服務器協商得到相應角色的XML腳本,經過解析器的解釋說明形成適用于不同業務邏輯的用戶操作界面。

3.3 應用服務器

主要包括事務處理、解析器、通信程序、安全管理和連接管理五部分。它是整個系統的核心。主要是完成對客戶端連接管理、數據庫操作、XML腳本解釋工作。對數據庫操作采用的是基于XML數據庫中間件,通過在客戶程序定義一個與用戶界面一一對應的ID值,ID值通過配置與XML腳本也是一一對應的,這樣數據庫中間件根據客戶端請求,通過解析器完成對XML腳本解釋,完全實現了對SQL語言和數據庫操作屏蔽。XML腳本解析是應用服務器的核心,主要功能是完成對表單配置數據、活動鏈接配置數據和商務邏輯數據的XML腳本解釋工作。

4 ICETIP腳本

ICETIP開發平臺建立的事務處理軟件是由事件驅動的事務活動鏈接實現操作信息的相互切換,如圖2所示。其中共有三種不同類型的事務活動鏈接:表單流控制活動、數據流控制活動和自定義的簡單腳本。

4.1 表單流控制活動

描述表單流的事務活動鏈接有三類,即OPEN、CLOSE和COMMIT CHANGE。OPEN表示打開表單,并把父表單的數據傳遞到當前打開的表單;CLOSE表示關閉表單;COMMIT CHANGE表示把當前打開的表單數據傳遞到父表單。它們的描述如下:

OPEN Form-name TRANSFER (Pvariable-name1=Ovariable-name1,…,Pvariable-name#n= Ovariable-name#n);

CLOSE (Form-name);

COMMIT CHANGE TRANSFER (Pvariable-name1= Ovariable-name1,… ,Pvariable-name#n=Ovariable-name#n)。

4.2 數據流控制活動

描述數據流的事務活動鏈接有六類,主要是完成對數據庫的操作。它們的描述如下:

select Variable-list FROM Form-list WHERE Logical-Expr ORDER BY Variable-list;

update form-name SET Variable-name1=Eprs1, Variable-name2=Eprs2, …, Variable-name#n =Eprs#n WHERE Logical-Expr;

insert into Form-name (Variable-list) VALUES (Value-Expr-list);

delete from Form-name WHERE Logical-Expr;

set from Form-name-list WHERE Logical-Expr;

put into Form-name FROM Form-name-list SET Variable-name1=Eprs1, Variable-name2=Eprs2,…, Variable-name#n=Eprs#n WHERE Logical-Expr。

4.3 自定義的簡單腳本

自定義的簡單腳本描述有三類,即順序、條件和循環。其中順序事務活動鏈接的描述如下:

bengin active-link-name

action action-name1 TYPE type-name

Entity of Action

end action-name1

……

action action-name#n TYPE type-name

Entity of Action

end action-name#n

end active-link-name

條件事務活動鏈接的描述如下:

bengin active-link-name

if conditional expression THEN

action action-name1 TYPE type-name

Entity of Action

end action-name1

……

action action-name#m TYPE type-name

Entity of Action

end action-name#m

else

action action-name1 TYPE type-name

Entity of Action

end action-name1

……

action action-name#n TYPE type-name

Entity of Action

end action-name#n

end IF

end active-link-name

循環事務活動鏈接的描述如下:

begin active-link-name

while condition-expression; control-expression

do

action action-name1 TYPE type-name

Entity of Action

end action-name1

……

action action-name#n TYPE type-name

Entity of Action

end action-name#n

end while

end active-link-name

為了操作的可變性,中間腳本中含有變量。系統運行時,利用客戶程序傳遞過來的數據完成

對XML腳本解釋,實現對不同業務邏輯的操作。

5 結束語

針對傳統軟件工程設計思想的弱點,通過引入基于XML的中間腳本,提出了一種新的設計

事務處理軟件的方法,解決了程序員編寫事務處理軟件程序的煩惱,減少了傳統軟件工程中的編碼和測試,并且對于用戶需求只需要考慮功能需求,而對于用戶的性能、可靠性和安全等需求統一在函數中做成最優。在軟件設計階段,無須對程序結構等進行分析,而是一個根據用戶需求定義基本單元與相關約束的過程;在維護階段,當用戶的需求變化后,可以利用此模型快速升級,真正做到了設計事務處理軟件時可見即可得,使用事務處理軟件時所得即所需,解決了傳統軟件工程無法解決的問題。最后通過建立ICETIP開發平臺,說明了此方法的可行性和有效性。因此,利用該模型設計事務處理軟件只需兩個步驟:需求分析和系統部署。

參考文獻:

[1]WOOLDRIDGE, JENNINGS R. Pitfalls of agent-oriented development[C]//Proc of the 2th International Conference on Autonomous Agents. New York: ACM Press, 1998:385-391.

[2]PERRY D E, WOLF A L. Foundations for the study of software architecture[J]. ACM SIGSOFT Software Engineering Notes, 1992, 17(4):40-52.

[3]GARLAN, PERRY D E. Introduction to the special issue on software architecture[J]. IEEE Trans on Software Engineering, 1995, 21(4): 269-274.

[4]SHAW M, GARLAN D. Software architecture: perspectives on emerging discipline[M]. Englewood Cliffs: Prentice Hall, 1996.

[5]余雪麗. 軟件體系結構及實例分析[M]. 北京:科學出版社,2004.

[6]孫志勇. 多agent系統體系結構及建模方法研究[D]. 合肥:合肥工業大學,2004.

[7]FOSTER I, KESSELMAN C. The grid: blueprint for a future computing infrastructure[M]. Beijing: China Machine Press, 2005.

[8]李程旭. 基于網構軟件理論的交通綜合平臺研究[D]. 大連:大連理工大學,2005.

[9]HU Chun-ming, HUAI Jin-peng, SUN Hai-long. Web service-based grid architecture and its supporting environment[J]. Journal of Software, 2004,15 (7): 1064-1073.

[10]黃雙喜, 范玉順. 一類通用的適應性軟件體系結構風格研究[J].軟件學報, 2006, 17 (6): 1338-1348.

[11]MEDVIDOVIC N, GRUNBACHER P, EGYED A, et al. Bridging models across the software lifecycle[J]. Journal of Systems and Software, 2003, 68(3): 199-215.

[12]PARNAS D L. Education for computing professionals[J]. IEEE Computer, 1990, 23(1): 17-22.

[13]BROOKS F P. No silver bullet-essence and accidents of software engineering[C]// Proc of Information Processing. Amsterdam: Elsevier Science Publishers, 1986: 1069-1076.

[14]COLE R,SCHLICHTINGR. Editorial: configurable distributed systems[J]. IEE Proceedings Software, 1998, 145(5):129.

[15]PEYMAN O, NENAD M. Architecture-based runtime software evolution[C]// Proc of International Conference on Software Engineering. Kyoto: IEEE Computer Society, 1998:19-25.

[16]OREIZY P, TAYLOR R N. On the role of software architectures in runtime system reconfiguration[C]// Proc of the International Conference on Configurable Distributed Systems. Washington DC: IEEE Computer Society, 1998.

[17]田邊. 基于agent的軟件體系結構與應用[D]. 西安:西北工業大學,2000.

[18]田邊, 戴航, 戴冠中. PDUIMS——基于持久存儲的用戶界面管理系統的設計與應用[J]. 計算機學報, 2000, 23(6):660-666.

[19]賀嵐, 狄玉來. 基于構件的軟件設計模型[J]. 計算機研究與發展,1998,35(5):451-454.

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文

主站蜘蛛池模板: 精品久久久久成人码免费动漫| 午夜欧美理论2019理论| 99精品免费在线| 亚洲首页在线观看| 国产成人调教在线视频| 亚洲香蕉伊综合在人在线| 国产亚洲男人的天堂在线观看| 久久久久免费看成人影片| 国产精品欧美在线观看| 伊伊人成亚洲综合人网7777| 91美女在线| 9啪在线视频| 免费看黄片一区二区三区| 国产精品天干天干在线观看| 91丨九色丨首页在线播放| 欧美黄色网站在线看| 日本欧美一二三区色视频| 精品三级网站| 亚洲AV成人一区国产精品| 久热中文字幕在线| 2020国产在线视精品在| 91一级片| 99久久精品国产精品亚洲| 国产导航在线| a级毛片免费在线观看| 久久精品中文无码资源站| 国产成人综合久久| 免费人成网站在线观看欧美| 97国内精品久久久久不卡| 亚洲全网成人资源在线观看| 午夜在线不卡| 国产欧美在线观看一区| 激情在线网| 五月天在线网站| 亚洲高清中文字幕| 精品第一国产综合精品Aⅴ| 国产流白浆视频| 国产青青草视频| 操美女免费网站| 99视频在线免费观看| 色婷婷狠狠干| 国产一区二区精品福利| 婷婷综合亚洲| 72种姿势欧美久久久久大黄蕉| 黄色网站不卡无码| 国产福利影院在线观看| 国产精品福利在线观看无码卡| 欧美区在线播放| 中文字幕va| 欧美精品黑人粗大| 成人福利一区二区视频在线| 亚洲男女在线| 国产区在线看| 亚洲AV成人一区二区三区AV| 国产乱人乱偷精品视频a人人澡| 国产精品lululu在线观看| 天天综合网站| 欧美97色| 亚洲日韩AV无码精品| 国产大片黄在线观看| 毛片久久网站小视频| 国内精品久久九九国产精品| 国产日韩欧美视频| 国内精品伊人久久久久7777人| 97色伦色在线综合视频| 久久综合亚洲鲁鲁九月天| 国产精品亚洲а∨天堂免下载| 成人年鲁鲁在线观看视频| 一本大道香蕉高清久久| 无码一区18禁| 青青青伊人色综合久久| 99在线国产| 国产美女人喷水在线观看| 久久天天躁狠狠躁夜夜2020一| 就去吻亚洲精品国产欧美| 国产香蕉国产精品偷在线观看| 国产亚洲欧美日本一二三本道| 亚洲高清无码精品| 日韩亚洲高清一区二区| 亚洲第一香蕉视频| 黄网站欧美内射| 亚洲国产综合第一精品小说|