技術(shù)報告一種基于同構(gòu)群的構(gòu)件接口適配方法_第1頁
技術(shù)報告一種基于同構(gòu)群的構(gòu)件接口適配方法_第2頁
技術(shù)報告一種基于同構(gòu)群的構(gòu)件接口適配方法_第3頁
技術(shù)報告一種基于同構(gòu)群的構(gòu)件接口適配方法_第4頁
技術(shù)報告一種基于同構(gòu)群的構(gòu)件接口適配方法_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、計劃類別 項目編號 項目技術(shù)報告課題名稱 項目主持人 承擔(dān)單位 題目:一種基于同構(gòu)群的構(gòu)件接口適配方法構(gòu)件化軟件一直面臨著構(gòu)件組裝過程的失配問題。對此,本文利用形式化方法建立了構(gòu)件接口模型,提出了端口同構(gòu)群和等價端口的概念,并證明了交互構(gòu)件之間通過等價端口實現(xiàn)相互通信。最后,通過實例應(yīng)用闡述了構(gòu)件端口適配方法步驟,建立適配器解決等價端口的失配問題,為構(gòu)件化軟件接口之間的不匹配提供了一種可行的解決方法。關(guān)鍵詞:件接口模型;同構(gòu)群;等價端口;適配器Abstract:Component-based software is always facing the problem of mismatch i

2、n assembly process.To solve this problem,component interface model is established using the formal method,the concept of port isomorphic group and equivalent port are proposed.It proves that the equivalent ports can call each other through the reconfiguration port in the paper.Through an example,the

3、 steps of component port adaptation are given,and the adapter solves the problem of the mismatch of the equivalent port,which provides a feasible solution for the mismatch between the component-based software syntax.Keywords:component interface model;isomorphic group;equivalent port;adapter1 引言(Intr

4、oduction)隨著Web服務(wù)和網(wǎng)構(gòu)軟件1概念的提出,通過組裝已有構(gòu)件產(chǎn)生新的軟件,焦點在于復(fù)用,復(fù)用有三方面的要求:構(gòu)件實體具有通用性、構(gòu)件功能具有完備性、構(gòu)件接口具有兼容性2。由于這三方面相互對立,因此,組裝第三方構(gòu)件失配現(xiàn)象是不可避免的,本文工作重點是自動化生產(chǎn)構(gòu)件端口適配器解決構(gòu)件接口失配問題。為了增強構(gòu)件的復(fù)用度,國內(nèi)一些學(xué)者從二進制代碼重用3、特定領(lǐng)域軟件復(fù)用4、模型驅(qū)動簡化自適應(yīng)系統(tǒng)5出發(fā)做了相關(guān)研究,目前,已有大量工作研究構(gòu)件適配方法并延伸到Web服務(wù)等領(lǐng)域,從適配方法上分為限制性方法和生成性方法6,限制性方法是指從構(gòu)件協(xié)議中刪除引起失配路徑的方法,缺點是構(gòu)件喪失了部分功能,

5、可能導(dǎo)致不可預(yù)測的失陪問題;生成性方法是指不更改構(gòu)件行為與功能,通過重排序消息及數(shù)據(jù)生成適配器協(xié)調(diào)的方法,優(yōu)點保留構(gòu)件功能完備性,缺點是需要修改構(gòu)件接口語法,目前的研究主要使用生成性方法。針對接口失配,文獻7探討了如何在接口映射前提下,依賴于分析有限狀態(tài)機的所有執(zhí)行軌跡生成適配器;文獻8基于PI演算描述構(gòu)件接口行為,然后給出適配器生成方法,該方法只能解決二元適配問題,并且計算復(fù)雜性較高;文獻9基于接口映射規(guī)則生成Web服務(wù)適配器,該方法產(chǎn)生的適配器沒有控制邏輯,一方面不能解決復(fù)雜Web服務(wù)適配場景,另一方面算復(fù)雜度高;文獻10利用面向方面的編程技術(shù)把適配方面織入到需適配的Web服務(wù)中,對失配模

6、式進行了分類,闡述每種失配解決的適配思想,該方法需要了了解構(gòu)件的內(nèi)部結(jié)構(gòu)。這些研究存在著很大的改進空間:(1)計算復(fù)雜度高,只是部分緩解了適配的壓力;(2)需要了解構(gòu)件內(nèi)部行為,弱化了構(gòu)件黑盒子原則;(3)忽略了構(gòu)件適配可以劃分難度級別:接口層、行為層、語義層,構(gòu)件接口是構(gòu)件組裝交互的唯一通道,接口層適配是構(gòu)件化軟件的首選。針對以上的分析,本文利用形式化方法建立了構(gòu)件接口模型,提出了基于同構(gòu)群的構(gòu)件接口適配方法,并證明了交互構(gòu)件之間通過等價端口實現(xiàn)相互通信,并給出了完整的適配步驟,一方面將構(gòu)件適配限制在接口層,降低了構(gòu)件適配的復(fù)雜度;另一方面遵循構(gòu)件化組裝黑盒子原則,提高了構(gòu)件復(fù)用度。2 構(gòu)件

7、接口模型(Component interface model)構(gòu)件接口特指構(gòu)件之間聯(lián)接的語法規(guī)定,獨立于構(gòu)件行為與功能,分離于構(gòu)件的實現(xiàn)。構(gòu)件接口是由一組端口構(gòu)成的集合,每個端口包含端口的名稱,參數(shù)名稱、參數(shù)類型、返回類型、及異常類型。定義2.1 端口(Port)。端口是一個四元組,Port:=,其中:Port_name表示端口名稱;Parameter_map是一組參數(shù)類型和參數(shù)名組成的有序集合,記為:,其中,Parameter_type,Parameter_name并不具有唯一性即可重復(fù),但對于成對的一組在Port中的位置是有順序的;Return_type表示Port返回值類型;Except

8、ion_type表示端口可能發(fā)生的異常類型。根據(jù)提供消息的方向,可以將Port分為輸入端口和輸出端口,分別記為:Input_port和Output_port;從提供的服務(wù)范圍可分為啞端口和顯端口啞端口僅為構(gòu)件本身提供服務(wù),顯端口是指與外界進行信息交流的端口。定義2.2 接口(Interface)。接口是一個四元組,Interface :=,其中:interface是所有接口的標(biāo)示符;Interface_name表示接口的名稱,在同一域中,它是具有唯一性;Onput_port_set是輸出端口構(gòu)成的集合;Input_port_set是輸入端口構(gòu)成的集合。接口是構(gòu)件與外界交流的唯一通道。3 同構(gòu)群

9、及等價端口(Isomorphic group,equivalentport)構(gòu)件之間接口相互通信前提接口中的端口之間需要具有兼容性,同構(gòu)群是一個集合,用其判斷構(gòu)件端口之間的兼容性,其定義如下:定義3.1 同構(gòu)群(Isomorphic_group)。設(shè)集合S=s1,s2,s3,sn,以S的元素全排列為元素構(gòu)成的集合稱為S的同構(gòu)群,記為:Isomorphic_group_S。可得出,SIsomorphic_group_S,Isomorphic_group_S中的元素個數(shù)為|S|!。例如:S=1,2,3,則可以推出Isomorphic_group_S=1,2,3,2,3,1,3,1,2,1,3,2,

10、2,1,3,3,2,1,。為了判斷構(gòu)件端口之間的兼容性,本文提出了端口參數(shù)集合、端口集合和端口同構(gòu)群概念,其定義如下:定義3.2 端口參數(shù)集合(Port_parameter_set)。Port_parameter_set是由端口(Port)參數(shù)類型構(gòu)成的有序集合,并且Port中的參數(shù)類型的順序與Port_parameter_set中的元素順序一一對應(yīng)。定義3.3 端口集合(Ports)。Ports是由端口的返回值類型、參數(shù)類型,以及異常類型構(gòu)成的有序集合,并且端口中的返回值類型、參數(shù)類型、異常類型的順序與Ports中的元素順序一一對應(yīng)。由端口集合的定義可知,Ports與集合Return_typ

11、e,Port_parameter_set,Exception_type是一一對應(yīng)的。定義3.4 端口同構(gòu)群(Port_isomorphic_group)。假設(shè)Port 為一個端口,Port_parameter_set為對應(yīng)的端口參數(shù)集合,由Port_parameter_set對應(yīng)的群的每個元素前后分別加入Return_type,Exception_type構(gòu)成的一個特殊的群稱為端口同構(gòu)群。例如:一個端口為int before(boolean arg0,Object arg1,boolean arg2)throws IOException.可得對應(yīng)的Port_parameter_set=bool

12、ean,Object,boolean,與Port_isomorphic_group=int,boolean,Object,boolean,IOException,int,boolean,boolean,Object,IOException,int,Object,boolean,boolean,IOException。由端口集合及端口同構(gòu)群可知:(1)端口同構(gòu)群是一個以端口參數(shù)集合為基礎(chǔ)的特殊同構(gòu)群;(2)端口同構(gòu)群與端口參數(shù)集合對應(yīng)的同構(gòu)群的元素個數(shù)相同,為|Port_parameter_set|!/|boolean|!=3!/2!=3;(3)端口集合是端口同構(gòu)群中的一個元素,即PortsPo

13、rt_isomorphic_group。定義3.5 等價端口(Equivalent_Port)。假設(shè)兩個端口(Port1,Port2),如果Port1與Port2對應(yīng)的端口集合屬于同一端口同構(gòu)群,稱Port1與Port2之間具有等價性,具有等價性的端口稱為等價端口。根據(jù)定義3.5可知:等價端口的實質(zhì)就是端口同構(gòu)群元素之間的關(guān)系。定理1 交互構(gòu)件之間通過等價端口實現(xiàn)相互通信。證明:假設(shè)交互構(gòu)件對應(yīng)的兩個端口(Port1,Port2)是等價端口,根據(jù)定義3.5=Port1,Port2屬于同一端口同構(gòu)群,由定義3.4和定義3.3=Port1,Port2 返回值類型、異常類型一致,且Port1端口參數(shù)

14、集合與Port2端口參數(shù)集合的參數(shù)類型與個數(shù)具有一致性,差別在于參數(shù)順序不同,因此,Port1,Port2僅需重構(gòu)端口順序便可實現(xiàn)相互通信。定理1拓寬了構(gòu)件本體復(fù)用的兼容性,將具有兩項特征的構(gòu)件視為同質(zhì)構(gòu)件,即功能相同和端口等價。4 構(gòu)件接口適配方法(Adaptation method ofcomponent interface)構(gòu)件之間交互,首先,構(gòu)件檢索條件是Interface中的Port返回值類型必須滿足需求;其次,Port中的異常必須與需求的異常是同質(zhì)的即同種類型的異常包括異常的子類型;最后,Port參數(shù)類型與順序必須滿足需求?;谕瑯?gòu)群的構(gòu)件接口適配分為四個步驟(自動化工具完成):第

15、一步:建立Input_port對應(yīng)的集合(Input_Ports),根據(jù)Input_Ports得到端口同構(gòu)群(Inputport_isomorphic_group);第二步:建立Output_port對應(yīng)的集合(Output_Ports),根據(jù)構(gòu)件維度匹配檢索的算法限制,Output_Ports一定是Inputport_isomorphic_group元素,如果Input_Ports與Output_Ports對應(yīng)Inputport_isomorphic_group中的同一元素,直接返回不需適配,否則,進入第三步;第三步:以Input_port為端口,以O(shè)utput_port為被調(diào)用端口建立適配

16、器,因為Input_port與Output_port是等價端口,故適配器得到很簡單的;第四步:測試并修改構(gòu)件接口(Interface)對應(yīng)的規(guī)格說明?;隍?qū)動器的構(gòu)件接口適配的實質(zhì)是接口中端口的參數(shù)順序調(diào)整的過程。5 實例應(yīng)用研究(Application research)為了闡明本文提出的基于同構(gòu)群的構(gòu)件接口適配方法,我們采用構(gòu)件化技術(shù)自行開發(fā)了Java Web應(yīng)用程序:資源管理系統(tǒng),該系統(tǒng)業(yè)務(wù)層由34個構(gòu)件組裝而成,構(gòu)件集合用CS表示:CS=CardAction,CardBean,CardDao,CardForm,Retrieve,ApplicationResources,UserActi

17、on,UserBean,UserdDao,UserForm,DBPool,PageBean,Pagination,db,為了盡可能簡化實例,僅以CS中的一個構(gòu)件即數(shù)據(jù)持久層中的db接口為例,db接口包括四個端口(Insert、delete、update、select)增、刪、改、查端口。如表1所示,構(gòu)件交互輸入與輸出update端口。輸入與輸出端口update之間不能進行組裝使用,因此需要對端口進行適配。表1 端口及集合元素Tab.1 Port and sets端口端口及集合元素輸入端口public static boolean update(int Id,ArrayList list,boo

18、lean return) throws IOException輸出端口public static boolean update(ArrayList list,int Id,boolean return) throws IOException首先,檢查輸入端口和輸出端口的返回值類型、異常是否同質(zhì),由表1可以得出需求端口和提供端口的返回值類型、異常是同質(zhì):public static boolean、IOException。其次,為輸入端口建立端口參數(shù)集合update_parameter_set=int,ArrayList,boolean。端口同構(gòu)群update_isomorphic_group=b

19、oolean,int,ArrayList,boolean,IOException,boolean,int,Boolean,ArrayList,IOException,boolean,ArrayList,int,boolean,IOException,boolean,ArrayList,boolean,int,IOException,boolean,Boolean,int,ArrayList,IOException,boolean,boolean,ArrayList,int,IOException再次,判斷輸入端口與輸出端口是否等價端口,輸入端口集合Input_update_ports=Bool

20、ean,int,ArrayList,boolean,IOException,輸出端口集合Output_update_ports=Boolean,ArrayList,int,boolean,IOException,由于Input_update_ports與Onput_update_ports同屬于同一端口同構(gòu)群update_isomorphic_group。因此,Input_update_port與Onput_update_port是等價端口,根據(jù)定理1=供、需update端口之間可以通過適配端口進行調(diào)用。最后,建立適配器Adapter_update,實現(xiàn)輸入與輸出update端口之間通信,如圖

21、1所示。update端口適配,該適配器通過工具自動生成。6 結(jié)論(Conclusion)本文面向構(gòu)件化軟件開發(fā)模式,針對構(gòu)件接口之間的交互,基于同構(gòu)群理論,提出了一種基于同構(gòu)群的構(gòu)件接口適配方法。此方法根據(jù)同構(gòu)群理論給出等價端口的定義,同時證明了交互構(gòu)件之間通過等價端口實現(xiàn)相互通信等,其適配實質(zhì)是端口的參數(shù)不兼容性修改的過程,通過自動化生成適配器解決等價端口的失配問題,為構(gòu)件化軟件語法之間的不匹配提供了一種可行的解決方法。參考文獻(References)1 楊芙清,呂建,梅宏.網(wǎng)構(gòu)軟件技術(shù)體系:一種以體系結(jié)構(gòu)為中心的途徑J.中國科學(xué)E輯:信息科學(xué),2008,38(6):2991-3000.2

22、S.Becker,A.Brogi,I.Gorton,et al.Towards an Engineering Approach to Component AdaptationC.Proc of Architecting Systems with Trustworthy Components,Springer-Verlag Berlin Heidelberg,2006:193-215.3 彭國軍,梁玉,張煥國,等.軟件二進制代碼重用技術(shù)綜述J.軟件學(xué)報,2017,28(8):2026-2045.4 于文靜,趙海燕,張偉,等.基于特征模型的軟件產(chǎn)品自動導(dǎo)出方法綜述J.軟件學(xué)報,2016,27(1):26-44.5 趙天琪,趙海燕,張偉,等.基于模型的自適應(yīng)方法綜述J.軟件學(xué)報,2018,29(1):23-41.6 Radu Mateescu.Adaptation of service protocols using process

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論