亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于同構(gòu)群的構(gòu)件接口適配方法

        2018-08-15 10:01:34祁華成陸英
        軟件工程 2018年5期
        關(guān)鍵詞:適配器

        祁華成 陸英

        摘 要:構(gòu)件化軟件一直面臨著構(gòu)件組裝過(guò)程的失配問題。對(duì)此,本文利用形式化方法建立了構(gòu)件接口模型,提出了端口同構(gòu)群和等價(jià)端口的概念,并證明了交互構(gòu)件之間通過(guò)等價(jià)端口實(shí)現(xiàn)相互通信。最后,通過(guò)實(shí)例應(yīng)用闡述了構(gòu)件端口適配方法步驟,建立適配器解決等價(jià)端口的失配問題,為構(gòu)件化軟件接口之間的不匹配提供了一種可行的解決方法。

        關(guān)鍵詞:件接口模型;同構(gòu)群;等價(jià)端口;適配器

        中圖分類號(hào):TP3-0 文獻(xiàn)標(biāo)識(shí)碼:A

        Abstract:Component-based software is always facing the problem of mismatch in 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 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;adapter

        1 引言(Introduction)

        隨著Web服務(wù)和網(wǎng)構(gòu)軟件[1]概念的提出,通過(guò)組裝已有構(gòu)件產(chǎn)生新的軟件,焦點(diǎn)在于復(fù)用,復(fù)用有三方面的要求:構(gòu)件實(shí)體具有通用性、構(gòu)件功能具有完備性、構(gòu)件接口具有兼容性[2]。由于這三方面相互對(duì)立,因此,組裝第三方構(gòu)件失配現(xiàn)象是不可避免的,本文工作重點(diǎn)是自動(dòng)化生產(chǎn)構(gòu)件端口適配器解決構(gòu)件接口失配問題。

        為了增強(qiáng)構(gòu)件的復(fù)用度,國(guó)內(nèi)一些學(xué)者從二進(jìn)制代碼重用[3]、特定領(lǐng)域軟件復(fù)用[4]、模型驅(qū)動(dòng)簡(jiǎn)化自適應(yīng)系統(tǒng)[5]出發(fā)做了相關(guān)研究,目前,已有大量工作研究構(gòu)件適配方法并延伸到Web服務(wù)等領(lǐng)域,從適配方法上分為限制性方法和生成性方法[6],限制性方法是指從構(gòu)件協(xié)議中刪除引起失配路徑的方法,缺點(diǎn)是構(gòu)件喪失了部分功能,可能導(dǎo)致不可預(yù)測(cè)的失陪問題;生成性方法是指不更改構(gòu)件行為與功能,通過(guò)重排序消息及數(shù)據(jù)生成適配器協(xié)調(diào)的方法,優(yōu)點(diǎn)保留構(gòu)件功能完備性,缺點(diǎn)是需要修改構(gòu)件接口語(yǔ)法,目前的研究主要使用生成性方法。針對(duì)接口失配,文獻(xiàn)[7]探討了如何在接口映射前提下,依賴于分析有限狀態(tài)機(jī)的所有執(zhí)行軌跡生成適配器;文獻(xiàn)[8]基于PI演算描述構(gòu)件接口行為,然后給出適配器生成方法,該方法只能解決二元適配問題,并且計(jì)算復(fù)雜性較高;文獻(xiàn)[9]基于接口映射規(guī)則生成Web服務(wù)適配器,該方法產(chǎn)生的適配器沒有控制邏輯,一方面不能解決復(fù)雜Web服務(wù)適配場(chǎng)景,另一方面算復(fù)雜度高;文獻(xiàn)[10]利用面向方面的編程技術(shù)把適配方面織入到需適配的Web服務(wù)中,對(duì)失配模式進(jìn)行了分類,闡述每種失配解決的適配思想,該方法需要了了解構(gòu)件的內(nèi)部結(jié)構(gòu)。這些研究存在著很大的改進(jìn)空間:(1)計(jì)算復(fù)雜度高,只是部分緩解了適配的壓力;(2)需要了解構(gòu)件內(nèi)部行為,弱化了構(gòu)件黑盒子原則;(3)忽略了構(gòu)件適配可以劃分難度級(jí)別:接口層、行為層、語(yǔ)義層,構(gòu)件接口是構(gòu)件組裝交互的唯一通道,接口層適配是構(gòu)件化軟件的首選。

        針對(duì)以上的分析,本文利用形式化方法建立了構(gòu)件接口模型,提出了基于同構(gòu)群的構(gòu)件接口適配方法,并證明了交互構(gòu)件之間通過(guò)等價(jià)端口實(shí)現(xiàn)相互通信,并給出了完整的適配步驟,一方面將構(gòu)件適配限制在接口層,降低了構(gòu)件適配的復(fù)雜度;另一方面遵循構(gòu)件化組裝黑盒子原則,提高了構(gòu)件復(fù)用度。

        2 構(gòu)件接口模型(Component interface model)

        構(gòu)件接口特指構(gòu)件之間聯(lián)接的語(yǔ)法規(guī)定,獨(dú)立于構(gòu)件行為與功能,分離于構(gòu)件的實(shí)現(xiàn)。構(gòu)件接口是由一組端口構(gòu)成的集合,每個(gè)端口包含端口的名稱,參數(shù)名稱、參數(shù)類型、返回類型、及異常類型。

        定義2.1 端口(Port)。端口是一個(gè)四元組,Port:=,其中:

        Port_name表示端口名稱;

        Parameter_map是一組參數(shù)類型和參數(shù)名組成的有序集合,記為:,其中,Parameter_type,Parameter_name并不具有唯一性即可重復(fù),但對(duì)于成對(duì)的一組在Port中的位置是有順序的;

        Return_type表示Port返回值類型;

        Exception_type表示端口可能發(fā)生的異常類型。

        根據(jù)提供消息的方向,可以將Port分為輸入端口和輸出端口,分別記為:Input_port和Output_port;從提供的服務(wù)范圍可分為啞端口和顯端口啞端口僅為構(gòu)件本身提供服務(wù),顯端口是指與外界進(jìn)行信息交流的端口。

        定義2.2 接口(Interface)。接口是一個(gè)四元組,Interface :=,其中:

        interface是所有接口的標(biāo)示符;

        Interface_name表示接口的名稱,在同一域中,它是具有唯一性;

        Onput_port_set是輸出端口構(gòu)成的集合;

        Input_port_set是輸入端口構(gòu)成的集合。

        接口是構(gòu)件與外界交流的唯一通道。

        3 同構(gòu)群及等價(jià)端口(Isomorphic group,equivalent

        port)

        構(gòu)件之間接口相互通信前提接口中的端口之間需要具有兼容性,同構(gòu)群是一個(gè)集合,用其判斷構(gòu)件端口之間的兼容性,其定義如下:

        定義3.1 同構(gòu)群(Isomorphic_group)。設(shè)集合S={s1,s2,s3,…,sn},以S的元素全排列為元素構(gòu)成的集合稱為S的同構(gòu)群,記為:Isomorphic_group_S。

        可得出,S∈Isomorphic_group_S,Isomorphic_group_S中的元素個(gè)數(shù)為|S|!。例如:S={1,2,3},則可以推出Isomorphic_group_S={{1,2,3},{2,3,1},{3,1,2,},{1,3,2},{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中的元素順序一一對(duì)應(yīng)。

        定義3.3 端口集合(Ports)。Ports是由端口的返回值類型、參數(shù)類型,以及異常類型構(gòu)成的有序集合,并且端口中的返回值類型、參數(shù)類型、異常類型的順序與Ports中的元素順序一一對(duì)應(yīng)。

        由端口集合的定義可知,Ports與集合{Return_type,Port_parameter_set,Exception_type}是一一對(duì)應(yīng)的。

        定義3.4 端口同構(gòu)群(Port_isomorphic_group)。假設(shè)Port 為一個(gè)端口,Port_parameter_set為對(duì)應(yīng)的端口參數(shù)集合,由Port_parameter_set對(duì)應(yīng)的群的每個(gè)元素前后分別加入Return_type,Exception_type構(gòu)成的一個(gè)特殊的群稱為端口同構(gòu)群。

        例如:一個(gè)端口為int before(boolean arg0,Object[] arg1,boolean arg2)throws IOException.可得對(duì)應(yīng)的Port_parameter_set={boolean,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)群是一個(gè)以端口參數(shù)集合為基礎(chǔ)的特殊同構(gòu)群;

        (2)端口同構(gòu)群與端口參數(shù)集合對(duì)應(yīng)的同構(gòu)群的元素個(gè)數(shù)相同,為|Port_parameter_set|!/|boolean|!=3!/2!=3;

        (3)端口集合是端口同構(gòu)群中的一個(gè)元素,即Ports∈Port_isomorphic_group。

        定義3.5 等價(jià)端口(Equivalent_Port)。假設(shè)兩個(gè)端口(Port1,Port2),如果Port1與Port2對(duì)應(yīng)的端口集合屬于同一端口同構(gòu)群,稱Port1與Port2之間具有等價(jià)性,具有等價(jià)性的端口稱為等價(jià)端口。

        根據(jù)定義3.5可知:等價(jià)端口的實(shí)質(zhì)就是端口同構(gòu)群元素之間的關(guān)系。

        定理1 交互構(gòu)件之間通過(guò)等價(jià)端口實(shí)現(xiàn)相互通信。

        證明:假設(shè)交互構(gòu)件對(duì)應(yīng)的兩個(gè)端口(Port1,Port2)是等價(jià)端口,根據(jù)定義3.5=>Port1,Port2屬于同一端口同構(gòu)群,由定義3.4和定義3.3=>Port1,Port2 返回值類型、異常類型一致,且Port1端口參數(shù)集合與Port2端口參數(shù)集合的參數(shù)類型與個(gè)數(shù)具有一致性,差別在于參數(shù)順序不同,因此,Port1,Port2僅需重構(gòu)端口順序便可實(shí)現(xiàn)相互通信。

        定理1拓寬了構(gòu)件本體復(fù)用的兼容性,將具有兩項(xiàng)特征的構(gòu)件視為同質(zhì)構(gòu)件,即功能相同和端口等價(jià)。

        4 構(gòu)件接口適配方法(Adaptation method of

        component interface)

        構(gòu)件之間交互,首先,構(gòu)件檢索條件是Interface中的Port返回值類型必須滿足需求;其次,Port中的異常必須與需求的異常是同質(zhì)的即同種類型的異常包括異常的子類型;最后,Port參數(shù)類型與順序必須滿足需求。

        基于同構(gòu)群的構(gòu)件接口適配分為四個(gè)步驟(自動(dòng)化工具完成):

        第一步:建立Input_port對(duì)應(yīng)的集合(Input_Ports),根據(jù)Input_Ports得到端口同構(gòu)群(Inputport_isomorphic_group);

        第二步:建立Output_port對(duì)應(yīng)的集合(Output_Ports),根據(jù)構(gòu)件維度匹配檢索的算法限制,Output_Ports一定是Inputport_isomorphic_group元素,如果Input_Ports與Output_Ports對(duì)應(yīng)Inputport_isomorphic_group中的同一元素,直接返回不需適配,否則,進(jìn)入第三步;

        第三步:以Input_port為端口,以O(shè)utput_port為被調(diào)用端口建立適配器,因?yàn)镮nput_port與Output_port是等價(jià)端口,故適配器得到很簡(jiǎn)單的;

        第四步:測(cè)試并修改構(gòu)件接口(Interface)對(duì)應(yīng)的規(guī)格說(shuō)明。

        基于驅(qū)動(dòng)器的構(gòu)件接口適配的實(shí)質(zhì)是接口中端口的參數(shù)順序調(diào)整的過(guò)程。

        5 實(shí)例應(yīng)用研究(Application research)

        為了闡明本文提出的基于同構(gòu)群的構(gòu)件接口適配方法,我們采用構(gòu)件化技術(shù)自行開發(fā)了Java Web應(yīng)用程序:資源管理系統(tǒng),該系統(tǒng)業(yè)務(wù)層由34個(gè)構(gòu)件組裝而成,構(gòu)件集合用CS表示:

        CS={CardAction,CardBean,CardDao,CardForm,Retrieve,ApplicationResources,UserAction,UserBean,UserdDao,

        UserForm,DBPool,PageBean,Pagination,db,…}

        為了盡可能簡(jiǎn)化實(shí)例,僅以CS中的一個(gè)構(gòu)件即數(shù)據(jù)持久層中的db接口為例,db接口包括四個(gè)端口(Insert、delete、update、select)增、刪、改、查端口。如表1所示,構(gòu)件交互輸入與輸出update端口。輸入與輸出端口update之間不能進(jìn)行組裝使用,因此需要對(duì)端口進(jìn)行適配。

        表1 端口及集合元素

        Tab.1 Port and sets

        端口 端口及集合元素

        輸入端口 public static boolean update(int Id,ArrayList list,boolean 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={{boolean,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}}

        再次,判斷輸入端口與輸出端口是否等價(jià)端口,輸入端口集合Input_update_ports={Boolean,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是等價(jià)端口,根據(jù)定理1=>供、需update端口之間可以通過(guò)適配端口進(jìn)行調(diào)用。

        最后,建立適配器Adapter_update,實(shí)現(xiàn)輸入與輸出update端口之間通信,如圖1所示。update端口適配,該適配器通過(guò)工具自動(dòng)生成。

        6 結(jié)論(Conclusion)

        本文面向構(gòu)件化軟件開發(fā)模式,針對(duì)構(gòu)件接口之間的交互,基于同構(gòu)群理論,提出了一種基于同構(gòu)群的構(gòu)件接口適配方法。此方法根據(jù)同構(gòu)群理論給出等價(jià)端口的定義,同時(shí)證明了交互構(gòu)件之間通過(guò)等價(jià)端口實(shí)現(xiàn)相互通信等,其適配實(shí)質(zhì)是端口的參數(shù)不兼容性修改的過(guò)程,通過(guò)自動(dòng)化生成適配器解決等價(jià)端口的失配問題,為構(gòu)件化軟件語(yǔ)法之間的不匹配提供了一種可行的解決方法。

        參考文獻(xiàn)(References)

        [1] 楊芙清,呂建,梅宏.網(wǎng)構(gòu)軟件技術(shù)體系:一種以體系結(jié)構(gòu)為中心的途徑[J].中國(guó)科學(xué)E輯:信息科學(xué),2008,38(6):2991-3000.

        [2] S.Becker,A.Brogi,I.Gorton,et al.Towards an Engineering Approach to Component Adaptation[C].Proc of Architecting Systems with Trustworthy Components,Springer-Verlag Berlin Heidelberg,2006:193-215.

        [3] 彭國(guó)軍,梁玉,張煥國(guó),等.軟件二進(jìn)制代碼重用技術(shù)綜述[J].軟件學(xué)報(bào),2017,28(8):2026-2045.

        [4] 于文靜,趙海燕,張偉,等.基于特征模型的軟件產(chǎn)品自動(dòng)導(dǎo)出方法綜述[J].軟件學(xué)報(bào),2016,27(1):26-44.

        [5] 趙天琪,趙海燕,張偉,等.基于模型的自適應(yīng)方法綜述[J].軟件學(xué)報(bào),2018,29(1):23-41.

        [6] Radu Mateescu.Adaptation of service protocols using process algebra and on-the-fly reduction technique[J].IEEE Trans.On Software Engineering,2012,38(4):755-777.

        [7] Yellin DM,Strom RE.Protocol specifications and component adapters[J].ACM Trans on Programming Languages and Systems,1997,19(2):292-333.

        [8] Bracciali A,Brogi A.A formal approach to component adaptation[J].Journal of System and Software,2005,74(1):45-54.

        [9] Li XT,F(xiàn)an YS.A pattern-based approach to protocol mediation for Web services composition[J].Information and Software Technology,2010,52(3):304-323.

        [10] Kongdenfa W,N ezhda H.Mismatch patterns and adaptation aspects:a foundation for rapid development of Web service adapter[J].IEEE Trans.on Services Computing,2009,2(2):94-107.

        作者簡(jiǎn)介:

        祁華成(1983-),男,碩士,系統(tǒng)架構(gòu)設(shè)計(jì)師.研究領(lǐng)域:軟件體系結(jié)構(gòu),構(gòu)件技術(shù).

        陸 英(1978-),女,碩士,高級(jí)講師.研究領(lǐng)域:軟件工程.

        猜你喜歡
        適配器
        基于超聲相控陣的衛(wèi)星適配器缺陷檢測(cè)方法研究
        適配器模式及其應(yīng)用
        短波電臺(tái)車載適配器測(cè)試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        基于3D打印的輕型導(dǎo)彈適配器
        潛空導(dǎo)彈垂直發(fā)射出筒適配器受載變形仿真研究
        新型水文測(cè)驗(yàn)GPS適配器設(shè)計(jì)與應(yīng)用
        電源適配器怎么選
        基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
        基于ADAMS對(duì)某導(dǎo)彈適配器的動(dòng)力學(xué)仿真*
        美國(guó)麥格普公司新型M—LOK相機(jī)三腳架適配器
        輕兵器(2015年20期)2015-09-10 07:22:44
        精品亚洲a∨无码一区二区三区| 久久久久国产一区二区| 亚洲精品久久无码av片软件| 日韩女人毛片在线播放| 亚洲一区二区三区厕所偷拍| 亚洲国产中文字幕在线视频综合| 午夜理论片yy44880影院| 久久夜色精品国产噜噜亚洲av| 亚洲欧美日韩综合在线观看| 韩国主播av福利一区二区| av一区二区不卡久久| 婷婷久久亚洲中文字幕| 香蕉成人伊视频在线观看| 夜夜躁狠狠躁2021| 91在线精品老司机免费播放| 亚洲精品aⅴ无码精品丝袜足| 特黄三级一区二区三区| 亚洲一区二区三区视频免费看| 国内最真实的xxxx人伦| 色婷婷日日躁夜夜躁| 久久久久久人妻一区二区无码Av | 国产三级黄色免费网站| 素人激情福利视频| 免费看av网站在线亚洲| 欧美性猛交xxxx乱大交极品| 高h纯肉无码视频在线观看| 日韩在线一区二区三区免费视频 | 97人妻人人做人碰人人爽| 亚洲av综合日韩| 免费精品美女久久久久久久久久| 一区二区三区四区午夜视频在线| 国产农村妇女精品一区| 国产成人综合亚洲看片| 自拍偷自拍亚洲精品播放| 一区二区亚洲 av免费| 中文字幕人妻互换av| 天天躁日日躁狠狠躁欧美老妇小说| 欧美日韩一卡2卡三卡4卡 乱码欧美孕交| 亚洲a人片在线观看网址| 日本不卡一区二区三区久久精品 | 国产精品美女AV免费观看|