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

        ?

        面向SOA的程序模型變換系統(tǒng)架構(gòu)方法研究

        2016-11-10 03:10:20雷鵬飛劉建賓
        土木建筑工程信息技術(shù) 2016年4期
        關(guān)鍵詞:架構(gòu)程序服務(wù)

        雷鵬飛 劉建賓

        (北京信息科技大學(xué)計算機學(xué)院,北京 100101)

        ?

        面向SOA的程序模型變換系統(tǒng)架構(gòu)方法研究

        雷鵬飛劉建賓

        (北京信息科技大學(xué)計算機學(xué)院,北京100101)

        針對傳統(tǒng)程序模型變換系統(tǒng)存在的復(fù)用性差、并發(fā)處理能力弱、不跨平臺等問題,將SOA的架構(gòu)和MDA的思想應(yīng)用到程序模型變換,給出面向SOA的系統(tǒng)功能結(jié)構(gòu)、邏輯架構(gòu),以及基本和復(fù)合變換服務(wù)模塊的設(shè)計,并對基于元模型的程序模型轉(zhuǎn)換框架和采用的ATL模型變換方法進行了分析和論述。實現(xiàn)的系統(tǒng)應(yīng)用表明該架構(gòu)方法具有可擴展性、跨平臺、支持并發(fā)處理等特點。

        面向服務(wù)的體系架構(gòu); 程序模型變換; 模型驅(qū)動架構(gòu); 元模型; 系統(tǒng)架構(gòu)方法

        【DOI】 10.16670/j.cnki.cn11-5823/tu.2016.04.11

        引言

        程序模型變換是模型驅(qū)動開發(fā)的關(guān)鍵技術(shù)。模型驅(qū)動架構(gòu)MDA(Model Driven Architecture)[1]是以建模和模型變換為核心的新一代模型驅(qū)動軟件開發(fā)方法的規(guī)范,它通過將業(yè)務(wù)模型與實現(xiàn)技術(shù)相分離,以提高軟件的可重用性和可移植性,體現(xiàn)將業(yè)務(wù)分析與業(yè)務(wù)實現(xiàn)相分離的理念[2]。

        在程序模型轉(zhuǎn)換應(yīng)用方面,目前存在多種不同的模型轉(zhuǎn)換工具和基于傳統(tǒng)應(yīng)用架構(gòu)下開發(fā)的模型轉(zhuǎn)換系統(tǒng)[3]。然而這些傳統(tǒng)程序模型變換工具和變換系統(tǒng)普遍存在單機運行效率低、難以復(fù)用,系統(tǒng)資源浪費、不能跨平臺等問題,不能有效地支持大規(guī)模的并發(fā)處理,對模型驅(qū)動開發(fā)的支持能力十分有限。

        面向服務(wù)的體系架構(gòu)SOA(Service Oriented Architecture)的程序模型變換系統(tǒng)設(shè)計強調(diào)以變換服務(wù)為中心,通過將各種變換活動轉(zhuǎn)化為具有統(tǒng)一接口標準的服務(wù),利用處理流程對相應(yīng)的程序模型變換服務(wù)進行組合,來滿足變換功能的變化,同時使原來封閉系統(tǒng)變?yōu)殚_放系統(tǒng),實現(xiàn)程序模型變換系統(tǒng)與外部環(huán)境之間的無縫鏈接。面向SOA的程序模型變換服務(wù)不是集中在一臺宿主機上,而是分布在不同的宿主機上,它們都是以接口的形式向外提供服務(wù),實現(xiàn)了應(yīng)用和處理的分離,在使用變換服務(wù)時無須關(guān)注服務(wù)提供的具體位置。在軟件復(fù)雜度和開發(fā)需求量日益增長的現(xiàn)實背景下,對大量復(fù)雜應(yīng)用進行程序模型轉(zhuǎn)換時,傳統(tǒng)單機程序模型變換系統(tǒng)難以滿足開發(fā)維護需求。因此,構(gòu)建面向SOA變換服務(wù)的程序模型變換系統(tǒng)十分必要。因為一方面可以動態(tài)配置運行所需的硬件資源,實現(xiàn)硬件資源的有效利用; 另一方面,還可以把變換任務(wù)分解到不同的計算結(jié)點上,實現(xiàn)分布式的并發(fā)處理[4]; 更重要是可以利用現(xiàn)有的遺產(chǎn)工具系統(tǒng)成果,避免資源浪費。

        1 SOA與程序模型變換的基本概念

        1.1SOA

        面向服務(wù)的體系結(jié)構(gòu),是以強調(diào)以服務(wù)為中心的組件模型,通過服務(wù)之間良好的接口和契約,將應(yīng)用程序的不同功能單元聯(lián)系起來。接口定義的方式是中立的,它獨立于實現(xiàn)的編程語言、操作系統(tǒng)和硬件平臺,這使得應(yīng)用系統(tǒng)中的服務(wù)可以以一種統(tǒng)一的方式進行交互[5]。

        這種以中立的方式定義接口稱為服務(wù)之間的松耦合,由于這些中立定義的接口沒有綁定到特定的實現(xiàn)上,這使它適應(yīng)變換特別靈活,并且當某個服務(wù)的實現(xiàn)和內(nèi)部結(jié)構(gòu)發(fā)生改變時,不影響其他服務(wù)的。

        1.2程序模型變換

        程序模型變換的概念,結(jié)合文獻[6]給出如下定義:

        (1)程序模型變換規(guī)則:對程序源模型和程序目標模型的模型元素之間如何變換的一種描述。

        (2)程序模型變換:作為輸入數(shù)據(jù)的程序源模型經(jīng)過轉(zhuǎn)換工具和一組程序模型轉(zhuǎn)換規(guī)則的作用產(chǎn)生目標程序模型,該目標程序模型作為輸出數(shù)據(jù)[7]。程序模型轉(zhuǎn)換規(guī)則描述了二者之間的變換映射,轉(zhuǎn)換規(guī)則必須結(jié)合轉(zhuǎn)換工具才可以產(chǎn)生變換的效果。

        圖1 過程藍圖三層模型的轉(zhuǎn)換過程

        過程藍圖[8]是一種可視化、分層描述程序行為過程的多階段一體化建模語言,具有抽象概念結(jié)構(gòu)圖(Abstract Concept Structure Diagram,ACSD)、抽象邏輯結(jié)構(gòu)圖(Abstract Logic Structure Diagram,ALSD)、抽象實現(xiàn)結(jié)構(gòu)圖(Abstract Implementation Structure Diagram,AISD)[9]三層抽象外部視圖,分別對應(yīng)程序在概念、邏輯和實現(xiàn)三個抽象層次上的模型表示。其中ACSD是與平臺無關(guān)的,ALSD和AISD是與平臺相關(guān)的。過程藍圖的三層抽象模型之間通過程序模型轉(zhuǎn)換規(guī)則和轉(zhuǎn)換工具的作用,可以正向和逆向轉(zhuǎn)換。由于過程藍圖具有階段制品一致性和開發(fā)過程平滑過渡的優(yōu)點,通過程序模型轉(zhuǎn)換,得到過程藍圖三種抽象層次的程序制品,有效實現(xiàn)程序的敏捷開發(fā),以及程序的理解、重構(gòu)和維護[10]。圖1展示了本文采用的過程藍圖三層程序模型的轉(zhuǎn)換過程。

        2 系統(tǒng)總體架構(gòu)設(shè)計

        2.1功能結(jié)構(gòu)設(shè)計

        以服務(wù)為中心程序模型變換系統(tǒng),需要根據(jù)功能將程序模型變換系統(tǒng)劃分成一組小粒度的基本變換服務(wù),程序模型變換服務(wù)之間互相協(xié)調(diào)、互相配合,依據(jù)變換的需要,將各種程序模型變換服務(wù)進行組合,并通過松耦合的方式實現(xiàn)程序模型變換服務(wù)之間的互相調(diào)用和組合,從而得到互通互操作的一體化的程序模型變換系統(tǒng)。每一個程序模型變換服務(wù)都圍繞著具體的變換邏輯進行構(gòu)建,并且能夠被獨立地部署到真實的運行環(huán)境中。

        程序模型變換系統(tǒng)的構(gòu)建是基于模型驅(qū)動架構(gòu)和面向服務(wù)的體系架構(gòu)的迭代開發(fā)過程,在該過程中以完成程序模型變換為中心,以各種程序模型變換流程為主線。圖2給出面向SOA的程序模型變換系統(tǒng)功能結(jié)構(gòu)模型。

        把程序模型變換系統(tǒng)的構(gòu)建劃分幾個階段,可以使復(fù)雜程序模型變換系統(tǒng)的設(shè)計與開發(fā)變得易于控制和管理。從面向服務(wù)的體系架構(gòu)的角度來看,程序模型變換系統(tǒng)的構(gòu)建主要有五個階段:程序模型變換系統(tǒng)的需求分析與建模、程序模型變換服務(wù)的設(shè)計、程序模型變換服務(wù)的部署與系統(tǒng)測試、程序模型變換服務(wù)的監(jiān)控與Qos(Quality of Service,服務(wù)質(zhì)量)測量和程序模型變換服務(wù)的進化與替換,具體如圖2所示。在大數(shù)據(jù)時代,軟件的復(fù)雜度不斷提高,對程序模型變換的要求也越來越高,經(jīng)常會有相關(guān)的程序模型變換服務(wù)的加入、失效、退出,因此面向SOA程序模型變換系統(tǒng)的構(gòu)建過程是重復(fù)迭代的[11]。

        需求分析與建模:這一階段完成程序模型變換系統(tǒng)和程序模型變換需求的收集和分析工作,設(shè)計和優(yōu)化基于程序模型變換服務(wù)及組合的程序模型變換流程。該步驟主要基于多元本體系統(tǒng)和元模型進行建模,來增強程序模型的語義能力和可復(fù)用性,進而完成領(lǐng)域建模工作。最終得到領(lǐng)域模型也稱CIM(Computation Independent Model,計算無關(guān)模型)。

        變換服務(wù)的設(shè)計:該階段主要包括兩個方面,基本程序模型變換服務(wù)和復(fù)合程序模型變化服務(wù)的設(shè)計,基本的變換服務(wù)可以通過對遺留的程序模型變換系統(tǒng)切分和封裝的,對于新的程序模型變換需求,則需要進行程序模型變換服務(wù)開發(fā)。復(fù)合程序模型變換服務(wù)是基本變換服務(wù)經(jīng)過服務(wù)組合,而形成的一個能夠獨立運行邏輯變換體。在程序模型變換服務(wù)組合階段,主要依據(jù)變換流程把基本的變換服務(wù)按照變換邏輯進行編排,實現(xiàn)轉(zhuǎn)換過程的自動化。我們通常把變換流程用PIM(Platform Independent Model,平臺無關(guān)模型)進行形式化表示,再利用模型轉(zhuǎn)換引擎把PIM模型轉(zhuǎn)換為服務(wù)組合語言比如BPEL(Business Process Execution Language,業(yè)務(wù)流程執(zhí)行語言)。為了保證程序模型變換服務(wù)的質(zhì)量我們還需要對程序模型變換服務(wù)進行選擇優(yōu)化和組合驗證。文獻[12][13]在服務(wù)組合優(yōu)化方面分別提出了基于粒子圓周軌道和零慣性權(quán)重的 MDPSO 算法和多信息素動態(tài)更新的蟻群算法 MPDACO,利用這些算法對程序模型變換服務(wù)進行組合優(yōu)化,可提高程序模型變換的效果和服務(wù)質(zhì)量。

        部署與系統(tǒng)測試:在程序模型變換服務(wù)設(shè)計完成后,可以將程序模型變換服務(wù)和支撐的程序變換流程部署到程序模型變換系統(tǒng)的生產(chǎn)環(huán)境中,同時將新設(shè)計或產(chǎn)生的程序模型變換服務(wù)配置到程序模型變換系統(tǒng)中,并對系統(tǒng)環(huán)境進行測試和優(yōu)化。

        監(jiān)測與Qos測量:該階段主要完成對各種程序模型變換服務(wù)資源的管理和監(jiān)控,并實時監(jiān)測程序模型變換服務(wù)的各種Qos參數(shù)。利用Qos測量結(jié)果為基于Qos的服務(wù)選擇優(yōu)化提供支撐。

        進化與替換:由于變換需求和生產(chǎn)環(huán)境并不是穩(wěn)定不變的,為了適應(yīng)變化,就需要對相應(yīng)的程序模型變換服務(wù)進行升級和變更??傊?,整個基于SOA的程序模型變換系統(tǒng)的構(gòu)建是一個迭代上升的過程。

        圖2 面向SOA的程序模型變換系統(tǒng)的功能結(jié)構(gòu)模型

        該面向SOA的設(shè)計方案是對現(xiàn)存程序模型變換應(yīng)用的修補,對現(xiàn)有變換資源的整合,改變了傳統(tǒng)從零開始的系統(tǒng)構(gòu)建模式。其實施是從小范圍開始,逐漸地遷移現(xiàn)存的程序模型變換應(yīng)用到新的計算環(huán)境中。

        2.2邏輯架構(gòu)設(shè)計

        傳統(tǒng)程序模型變換系統(tǒng)的開發(fā)往往以系統(tǒng)為中心,隨著系統(tǒng)的不斷擴充,模塊之間不斷的整合,包括用戶訪問層整合,數(shù)據(jù)整合和程序模型變換流程整合等,將導(dǎo)致系統(tǒng)的復(fù)用性越來越弱,并且擴張性也將變得越來越差。面向SOA程序模型變換系統(tǒng)的構(gòu)建和傳統(tǒng)的方法不同,是以變換服務(wù)為中心,這種方式將會提高復(fù)用率,并且即使程序模型變換服務(wù)內(nèi)部的結(jié)構(gòu)和實現(xiàn)方式發(fā)生改變,也不影響服務(wù)提供。本文提出的面向服務(wù)的程序模型變換系統(tǒng)構(gòu)建架構(gòu)從服務(wù)提供者和服務(wù)消費者角度,將程序模型變換系統(tǒng)功能方面有關(guān)的基礎(chǔ)技術(shù)、變換組件、變換流程、界面等進行層次化。與此同時,將從安全架構(gòu)、變換服務(wù)通信、變換服務(wù)集成、變換服務(wù)質(zhì)量管理等方面,提取了所有變換服務(wù)所共有的不同層次。根據(jù)SOA的通用層次框架并結(jié)合程序模型變換的具體特點,可以得到圖3所示的面向SOA的程序模型變換系統(tǒng)的邏輯架構(gòu)。

        A層:基礎(chǔ)技術(shù)支撐層?;A(chǔ)技術(shù)支撐層包含了對模型驅(qū)動架構(gòu)標準的具體實現(xiàn),尤其是其中的MOF(Meta Object Facility,元對象機制)標準和UML標準,通過對這兩個標準的實現(xiàn)來獲得訪問程序模型、建立程序模型和修改程序模型的能力。程序模型轉(zhuǎn)換需要獲取這種可以對程序模型進行操作的能力。

        B層:現(xiàn)有的程序模型變換系統(tǒng)資源層。本層包含現(xiàn)有的自定義構(gòu)建的程序模型變換程序,也叫遺留系統(tǒng)。通常這些遺留系統(tǒng)經(jīng)過切分,按照契約封裝成接口,通過提供這些接口,可以使遺留的程序模型變換應(yīng)用被發(fā)現(xiàn)或集成。在某種程度上說,面向SOA是一種重構(gòu)和集成策略,而不是對原有程序模型變換系統(tǒng)推倒重建。

        圖3 面向SOA的程序模型變換系統(tǒng)的邏輯架構(gòu)

        C層:程序模型變換組件層。本層主要是由那些負責實現(xiàn)程序模型變換功能的組件組成。通過將現(xiàn)有程序模型變換系統(tǒng)和應(yīng)用層中的應(yīng)用程序接口 API(Application Program Interface)進行包裝組合,形成粗粒度的程序模型變換服務(wù),并且以接口的形式,為程序模型變換組件層或變換服務(wù)層使用。這些程序模型變換組件是一個邏輯變換體,具有相對獨立變換功能,其主要是利用不同的組件將底層的已有的程序模型變換系統(tǒng)或工具進行封裝。該層是有效利用原有程序模型變換系統(tǒng)資源的關(guān)鍵層次。

        D層:程序模型變換服務(wù)層。處在該層的程序模型變換服務(wù),可以被發(fā)現(xiàn)或者被直接的靜態(tài)綁定,然后被調(diào)用,或者被編排到復(fù)合程序模型變換服務(wù)中。該服務(wù)層同樣提供了獲取應(yīng)用范圍的組件、變換操作單元組件的機制,并且這些組件的服務(wù)接口以服務(wù)描述的形式進行了具體化,因此在程序模型變換執(zhí)行的過程中,程序模型變換組件通過它們的接口來向外提供變換服務(wù)。

        E層:變換合成層或編排層。在D層中公開的程序模型變換服務(wù)的組合和編排在該層中被定義。該層主要通過變換流程把一些基本或復(fù)合的程序模型變換服務(wù)進行組合,而形成一個功能更強的復(fù)合服務(wù),該層很好地體現(xiàn)了服務(wù)的復(fù)用性。面向SOA程序模型變換服務(wù)的建設(shè)打破傳統(tǒng)程序模型變換系統(tǒng)的邊界,通過變換服務(wù)編排、變換流程編排、規(guī)則調(diào)整來實現(xiàn)創(chuàng)新[14]。

        F層:用戶表示層或訪問層。該層是與服務(wù)消費者直接交互的平臺,目的是使服務(wù)消費者更直觀地選用適合自己的程序模型變換服務(wù)。采用Remote Portlets Version2.0 的web服務(wù)標準等相關(guān)技術(shù)可實現(xiàn)在應(yīng)用程序接口或者表現(xiàn)層來提供web服務(wù)。

        G層:變換服務(wù)總線層。這一層為TSB(Trandformation Service Bus,變換服務(wù)總線層),通過引入一些相應(yīng)的性能集合(協(xié)議中介、轉(zhuǎn)換機制、智能路由等)使程序模型變換服務(wù)可以集成[15]。web服務(wù)描述語言(Web service Description language,WSDL)用于定義并提供程序模型變換服務(wù)地址的綁定。TSB為變換服務(wù)集成提供了位置獨立的機制。

        H層:基礎(chǔ)架構(gòu)服務(wù)層。這一層提供對服務(wù)通信、服務(wù)安全、系統(tǒng)性能和可用性等能力的管理和維護[16]。

        I層:數(shù)據(jù)架構(gòu)和變換智能層。這一層提供了統(tǒng)一的數(shù)據(jù)操作和變換處理流程的智能化能力,是未來發(fā)展的擴展層次。

        3 系統(tǒng)服務(wù)模塊設(shè)計

        3.1基本變換服務(wù)

        本文對程序模型轉(zhuǎn)換服務(wù)模塊的設(shè)計,是以程序模型轉(zhuǎn)換方法為中心,并通過程序模型庫實現(xiàn)程序模型復(fù)用。同時為了保證生成的程序模型在功能細節(jié)和結(jié)構(gòu)上的準確性和一致性,在程序模型轉(zhuǎn)換的每個環(huán)節(jié)加入相關(guān)程序模型檢驗技術(shù)。另外在程序模型轉(zhuǎn)換的過程中目標轉(zhuǎn)換模板和特定的平臺信息作為重要的參考因素。程序模型變換服務(wù)模塊的設(shè)計如圖4所示。

        程序源模型與程序目標模型:程序源模型是對程序模型變換需求的一種形式化表示,是程序模型轉(zhuǎn)換模塊的輸入對象,這些程序模型在一方面包含系統(tǒng)開發(fā)人員對目標系統(tǒng)模型的編輯信息,另一方面也要符合程序模型轉(zhuǎn)換服務(wù)模塊的輸入規(guī)范。程序目標模型包含目標系統(tǒng)的層次設(shè)計中的重要信息,是程序模型轉(zhuǎn)換模塊的輸出模型。

        圖4 程序模型變換服務(wù)模塊的設(shè)計

        程序模型庫:程序模型庫的主要作用就是為了程序模型的復(fù)用,由于在MDA思想指導(dǎo)下的軟件開發(fā)過程中,將會產(chǎn)生各種程序模型,通過把每個項目開發(fā)過程中形成的程序模型存入到程序模型庫,以便日后對程序模型的復(fù)用。查詢程序模型、讀取和保存程序模型是對程序模型庫的主要操作。用戶通過查詢程序模型庫,可以獲取程序模型的功能、結(jié)構(gòu)和涉及項目的詳細描述信息; 當程序模型轉(zhuǎn)換的過程中需要用到以前程序模型,則直接讀取程序模型庫即可獲得需要的程序模型; 程序模型通常以圖和XML文件兩種方式進行存儲。另外,程序模型保存時,如果目標程序模型存在,就對程序模型進行替換和更新,如果不存在就建立一個新程序模型,存入到程序模型庫中。

        程序模型驗證:隨著用戶需求量的不斷增長和目標應(yīng)用的細節(jié)功能的增多,程序模型的數(shù)量會越來越多大,程序模型的層次關(guān)聯(lián)也會變得越來越復(fù)雜,為了保證程序模型的正確性、完備性、一致性[17]這就需要在程序模型轉(zhuǎn)換過程中增加程序模型驗證環(huán)節(jié)。

        目標轉(zhuǎn)換模板和特定平臺信息:特定的平臺信息是目標模型設(shè)計參考的依據(jù)[18],完備的系統(tǒng)是模型驅(qū)動開發(fā)的載體,在該系統(tǒng)基礎(chǔ)上進行模型抽象,通過模型將系統(tǒng)的業(yè)務(wù)行為和結(jié)構(gòu)特征表示出來。另外,中間件作為系統(tǒng)開發(fā)的一部分,也要考慮,不同應(yīng)用的部署數(shù)據(jù)參數(shù)可能不盡相同,數(shù)據(jù)庫也是如此。

        程序模型轉(zhuǎn)化方法:在本文的第4部分得到介紹。

        程序模型庫的主要作用就是為了實現(xiàn)程序模型的復(fù)用,傳統(tǒng)的程序模型庫集中在某個計算機上的方式往往不支持分系統(tǒng)設(shè)計模型的運行。在面向服務(wù)的架構(gòu)下,程序模型可以通過程序模型服務(wù)器以服務(wù)的形式部署在任何滿足程序模型運行環(huán)境的計算節(jié)點上,甚至可以運行在程序模型設(shè)計人員的計算機上,并且還能對程序模型進行及時的更新,通過向外提供標準的服務(wù)描述文檔來使程序模型得到復(fù)用。對文檔進行管理的服務(wù)器,我們把它當作服務(wù)代理。通過服務(wù)代理可以讓分布在任何位置的程序模型組成一個虛擬的程序模型倉庫,服務(wù)代理本身也可以作為一種服務(wù)由上層代理進行管理,這樣就形成了一個分布式的虛擬程序模型倉庫,如圖5所示。

        圖5 面向SOA的虛擬的程序模型倉庫

        3.2復(fù)合變換服務(wù)

        復(fù)合服務(wù)是通過服務(wù)組合產(chǎn)生的邏輯體,該邏輯體本身也是一個服務(wù)。由于復(fù)合服務(wù)的功能由其他的服務(wù)“復(fù)合”而成,因此稱為復(fù)合服務(wù)[18]。復(fù)合服務(wù)對成員服務(wù)操作的調(diào)用是服務(wù)復(fù)用的一種體現(xiàn),因此服務(wù)組合促進了服務(wù)的復(fù)用。

        復(fù)合的程序模型變換服務(wù)是通過一定的變換規(guī)則或流程使基本程序模型變換服務(wù)經(jīng)過組合而形成的邏輯變換整體。

        對復(fù)合服務(wù)的編排,借鑒和采用MDA的思想與開發(fā)方式,在 PIM層建立 UML活動圖描述的變換流程工作流,PSM(Platform Specific Model,平臺無關(guān)模型)層應(yīng)用 BPEL模型具體表示復(fù)合變換服務(wù)的實現(xiàn)方式,得到圖6所示的轉(zhuǎn)換過程及其模塊。利用文獻[20]提出UML活動圖元模型元素到BPEL元模型元素的映射表,編寫對應(yīng)的UML活動圖到BPEL模型的轉(zhuǎn)換規(guī)則文件,利用BPEL來對程序模型變換的流程進行定義,通過BPEL解釋執(zhí)行機制實現(xiàn)程序模型變換的流程處理自動化。

        圖6 UML活動圖到BPEL的轉(zhuǎn)換流程圖

        4 基于元模型的程序模型轉(zhuǎn)換框架和方法

        4.1基于元模型的程序模型轉(zhuǎn)換框架

        MOF(Meta Object Facility,元對象機制)是對象管理組織OMG(Object Management Group)為幫助開發(fā)者和用戶更好的使用元模型和元數(shù)據(jù)而制定的一種規(guī)范。元模型是對MOF的實例化。程序模型轉(zhuǎn)換功能是由一系列程序模型轉(zhuǎn)換規(guī)則的定義組合而成的。建立相應(yīng)元模型層元素之間的映射,以該映射作為轉(zhuǎn)換規(guī)則,來實現(xiàn)程序模型層的轉(zhuǎn)換,是基于元模型的程序模型轉(zhuǎn)換思想[3]。

        程序模型之間的轉(zhuǎn)換需要程序模型變換功能的支持,程序模型變換功能的實現(xiàn)通過程序模型變換語言進行描述,程序模型變換語言是對MOF的擴展,轉(zhuǎn)換前后的分層程序模型描述了應(yīng)用系統(tǒng)。圖7給出基于元模型的程序模型轉(zhuǎn)換框架。

        圖7 基于元模型的程序模型轉(zhuǎn)換框架

        4.2ATL程序模型轉(zhuǎn)換方法

        ATL(ATLAS Transformation Language,ATLAS 轉(zhuǎn)換語言),是ATLAS研究組開發(fā)出來的一種符合OMG(Object Management Group,對象管理組織)的一個QVT(Query/View/Transformation)提案的模型轉(zhuǎn)換語言,ATL是基于EMF(Eclipse Model Frame,Eclipse模型框架)的,其元模型、模型都是用EMF來描述的。從本質(zhì)上來說,ATL屬于基于規(guī)則的程序模型轉(zhuǎn)換語言,其中使用了OCL(Object Constraint Language,對象約束語言)約束描述語言,并且基本上實現(xiàn)了OCL。由于ATL使用OCL來描述約束,使ATL具有較強的規(guī)則描述能力,并且有較寬的應(yīng)用范圍,對過程藍圖程序模型變換的定義同樣具有較好的適用性。

        利用ATL實現(xiàn)程序源模型到程序目標模型的轉(zhuǎn)換,需要提供以下4個模型:程序源模型的元模型MM1; 程序源模型M1; 程序目標模型的元模型MM2; 以及轉(zhuǎn)換描述模型M1TM2.ATL。當ATL轉(zhuǎn)換引擎被執(zhí)行,就可以獲得到一個程序目標模型M2。圖8展示了基于ATL的程序模型轉(zhuǎn)換過程。其中程序模型M1、M2、M3可以分別對應(yīng)過程藍圖中的ACSD、ALSD、AISD,此時是把ACSD作為程序模型轉(zhuǎn)換過程的程序源模型,則ALSD和AISD作為目標程序模型; 還可以逆向轉(zhuǎn)換讓程序模型M1對應(yīng)ALSD,然后ACSD作為目標程序模型。程序元模型和程序模型轉(zhuǎn)換語言是對MOF的實例化和擴展的結(jié)果,M1TM2.ATL 和M2TM3.ATL是使用ATL編寫的轉(zhuǎn)換規(guī)則,程序模型M1在M1TM2.ATL的作用下可以轉(zhuǎn)換為程序模型M2,程序模型M2在M2TM3.ATL的作用下可以轉(zhuǎn)換為程序模型M3。

        圖8 基于ATL的程序模型轉(zhuǎn)換過程

        5 結(jié)束語

        程序模型變換系統(tǒng)的架構(gòu)方法研究對程序模型變換系統(tǒng)的開發(fā)具有至關(guān)重要的作用。針對傳統(tǒng)程序模型變換系統(tǒng)的問題和不足,我們將SOA融入到程序模型變換系統(tǒng)的設(shè)計過程中,提出面向SOA的,以程序模型變換服務(wù)為中心的程序模型變換系統(tǒng)的架構(gòu)方法。

        基于該架構(gòu)方法實現(xiàn)的程序模型變換系統(tǒng)已在JAVA和建筑行業(yè)的多門導(dǎo)學(xué)課程資源開發(fā)中得到成功應(yīng)用,取得了良好效果。初步應(yīng)用實踐表明該架構(gòu)方法對解決傳統(tǒng)系統(tǒng)的復(fù)用性差、并發(fā)處理能力弱、不跨平臺等問題是有效的。

        [1]張?zhí)欤?張巖,于笑豐 等.基于MDA的設(shè)計模式建模與模型轉(zhuǎn)換[J].軟件學(xué)報, 2008, 19(09): 2203-2217.

        [2]蘇紅軍, 閆云山,尤振華.UML模型到N層Web模型的模型驅(qū)動轉(zhuǎn)換[J].計算機應(yīng)用, 2014, 34(04): 1161-1164.

        [3]戚鐵林, 李亞芬,王普.MDA模型轉(zhuǎn)換平臺中模型轉(zhuǎn)換方法的研究[J].計算機工程與設(shè)計, 2011, 32(01): 202-205.

        [4]Benelallam A,Tisi M,Cabot J.Distributed Model-to-Model Trans-formation with ATL on MapReduce[J].2015:37-48.

        [5]董淑英, 林克成.MDA與云計算、SOA的比較研究[J].計算機科學(xué), 2012(S1): 207-209.

        [6]Anneke G.Kleppe,Jos B.Warmer,Wim Bast.MDA Explain[M].Addison-Wesley Longman Publishing Co.,Inc.Boston,MA,USA, 2003.

        [7]戴衡. 基于MDA的EJB模型轉(zhuǎn)換規(guī)則研究[D].廣西大學(xué), 2010.

        [8]劉建賓. 過程藍圖設(shè)計方法學(xué)[M].科學(xué)出版社, 2005.

        [9]劉建賓. 過程藍圖程序表示模型與視圖導(dǎo)出方法[J].計算機工程, 2009, 35(21): 13-16.

        [10]胡偉奇, 劉建賓.基于 Java藍圖的過程模式形式化定義框架[J].計算機應(yīng)用與軟件, 2015, 32(5): 24-29.

        [11]王曉, 聶凱.基于SOA和MDA的指揮信息系統(tǒng)構(gòu)建新方法[J].艦船電子工程, 2014(6): 56-59.

        [12]溫濤, 盛國軍,郭權(quán) 等.基于改進粒子群算法的Web服務(wù)組合[J].計算機學(xué)報, 2013, 36(05): 1031-1046.

        [13]夏亞梅, 程渤,陳俊亮 等.基于改進蟻群算法的服務(wù)組合優(yōu)化[J].計算機學(xué)報, 2012, 35(02): 270-281.

        [14]黃嘉東, 徐兵元,葉向陽.企業(yè)級應(yīng)用系統(tǒng)SOA架構(gòu)建設(shè)研究與實踐[J].中國高新技術(shù)企業(yè), 2016(2): 159-161.

        [15]荊澤泉, 石青,余文芳.基于ESB的企業(yè)應(yīng)用集成研究[J].數(shù)字技術(shù)與應(yīng)用, 2011(9): 120-121.

        [16]明亮, 況曉輝,黃敏桓.基于SOA的可信智能空間系統(tǒng)軟件研究[J].計算機科學(xué), 2010, 37(1): 34-38.

        [17]王建光. 基于模型驅(qū)動架構(gòu)的軟件生成技術(shù)研究[D].太原理工大學(xué), 2007.

        [18]冉川. 基于J2EE的模型驅(qū)動開發(fā)中模型轉(zhuǎn)換方法的研究與實現(xiàn)[D].北京工業(yè)大學(xué), 2009.

        [19]萬芳, 沈建京,韓丁 等.基于SOA的服務(wù)構(gòu)件組合技術(shù)研究[C].中國控制會議.2008.

        [20]張春陽, 韓建松,張惠軍 等.基于MDA的SOA服務(wù)協(xié)作模型[J].河南科技大學(xué)學(xué)報(自然科學(xué)版), 2010, 31(04): 31-34.

        A Study on Architecture Method of SOA-Oriented Program Model Transformation System

        Lei Pengfei, Liu Jianbin

        (SchoolofComputer,BeijingInformationScience&TechnologyUniversity,Beijing100101,China)

        Focusing on the poor reusability, weak concurrent processing capability, no cross-platform and other problems of traditional program model transformation system, this article applies SOA architecture and MDA thought to the program model transformation, and gives out the system function structure and logical architecture based on SOA and the design of basic and complex transformation service modules. Additionally, it takes analysis and discussion for meta-model-based program model transformation framework and adopts ATL model transformation method. The achieved system application indicates that the architecture method is featured of scalability, cross-platform and supporting concurrent processing etc.

        SOA; Programming Model Transformation; MDA; MetaModel; System Architecture Method

        國家科技支撐計劃課題“建筑行業(yè)設(shè)計服務(wù)共性技術(shù)集成平臺研究與應(yīng)用”(編號:2014BAH25F03)

        TP302.2

        A

        1674-7461(2016)04-0062-07

        猜你喜歡
        架構(gòu)程序服務(wù)
        基于FPGA的RNN硬件加速架構(gòu)
        功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        服務(wù)在身邊 健康每一天
        試論我國未決羈押程序的立法完善
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        “程序猿”的生活什么樣
        招行30年:從“滿意服務(wù)”到“感動服務(wù)”
        商周刊(2017年9期)2017-08-22 02:57:56
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
        英國與歐盟正式啟動“離婚”程序程序
        欧美人与动人物姣配xxxx| 日本伊人精品一区二区三区| 国产果冻豆传媒麻婆精东| 性动态图av无码专区| 国产精品中文第一字幕| 蜜桃视频一区二区三区| 亚洲中文字幕日产无码| 国产成年无码v片在线| 日韩欧美国产自由二区| 国产91大片在线观看| 欧美白人战黑吊| 欧洲成人午夜精品无码区久久| 亚洲精品美女自拍偷拍 | 2022Av天堂在线无码| 久久亚洲精精品中文字幕早川悠里 | 午夜免费观看国产视频| 色先锋av影音先锋在线| 国产一区二区波多野结衣| 日本中出熟女一区二区| 日本人妻免费在线播放| 在线观看国产激情免费视频| 丰满少妇被猛烈进入高清播放| 99香蕉国产精品偷在线观看| 国产精品九九久久一区hh| 精品国产日韩亚洲一区在线| 天天夜碰日日摸日日澡性色av| 人人妻人人爽人人做夜欢视频九色 | av在线亚洲欧洲日产一区二区| 欧美中文字幕在线看| 国产另类av一区二区三区| 超碰色偷偷男人的天堂| 无码丰满少妇2在线观看| 精品日产一区2区三区| 久久久精品国产亚洲av网深田| 少妇高潮尖叫黑人激情在线| 天啦噜国产精品亚洲精品| 大陆成人精品自拍视频在线观看| 色噜噜久久综合伊人一本| 日韩免费一区二区三区在线| 亚洲无人区乱码中文字幕| 天天做天天爱夜夜爽|