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

面向SOA的程序模型變換系統架構方法研究

2016-11-10 03:10:20雷鵬飛劉建賓
土木建筑工程信息技術 2016年4期
關鍵詞:程序服務模型

雷鵬飛 劉建賓

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

?

面向SOA的程序模型變換系統架構方法研究

雷鵬飛劉建賓

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

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

面向服務的體系架構; 程序模型變換; 模型驅動架構; 元模型; 系統架構方法

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

引言

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

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

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

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

1.1SOA

面向服務的體系結構,是以強調以服務為中心的組件模型,通過服務之間良好的接口和契約,將應用程序的不同功能單元聯系起來。接口定義的方式是中立的,它獨立于實現的編程語言、操作系統和硬件平臺,這使得應用系統中的服務可以以一種統一的方式進行交互[5]。

這種以中立的方式定義接口稱為服務之間的松耦合,由于這些中立定義的接口沒有綁定到特定的實現上,這使它適應變換特別靈活,并且當某個服務的實現和內部結構發生改變時,不影響其他服務的。

1.2程序模型變換

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

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

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

圖1 過程藍圖三層模型的轉換過程

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

2 系統總體架構設計

2.1功能結構設計

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

程序模型變換系統的構建是基于模型驅動架構和面向服務的體系架構的迭代開發過程,在該過程中以完成程序模型變換為中心,以各種程序模型變換流程為主線。圖2給出面向SOA的程序模型變換系統功能結構模型。

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

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

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

部署與系統測試:在程序模型變換服務設計完成后,可以將程序模型變換服務和支撐的程序變換流程部署到程序模型變換系統的生產環境中,同時將新設計或產生的程序模型變換服務配置到程序模型變換系統中,并對系統環境進行測試和優化。

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

進化與替換:由于變換需求和生產環境并不是穩定不變的,為了適應變化,就需要對相應的程序模型變換服務進行升級和變更。總之,整個基于SOA的程序模型變換系統的構建是一個迭代上升的過程。

圖2 面向SOA的程序模型變換系統的功能結構模型

該面向SOA的設計方案是對現存程序模型變換應用的修補,對現有變換資源的整合,改變了傳統從零開始的系統構建模式。其實施是從小范圍開始,逐漸地遷移現存的程序模型變換應用到新的計算環境中。

2.2邏輯架構設計

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

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

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

圖3 面向SOA的程序模型變換系統的邏輯架構

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

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

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

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

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

H層:基礎架構服務層。這一層提供對服務通信、服務安全、系統性能和可用性等能力的管理和維護[16]。

I層:數據架構和變換智能層。這一層提供了統一的數據操作和變換處理流程的智能化能力,是未來發展的擴展層次。

3 系統服務模塊設計

3.1基本變換服務

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

程序源模型與程序目標模型:程序源模型是對程序模型變換需求的一種形式化表示,是程序模型轉換模塊的輸入對象,這些程序模型在一方面包含系統開發人員對目標系統模型的編輯信息,另一方面也要符合程序模型轉換服務模塊的輸入規范。程序目標模型包含目標系統的層次設計中的重要信息,是程序模型轉換模塊的輸出模型。

圖4 程序模型變換服務模塊的設計

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

程序模型驗證:隨著用戶需求量的不斷增長和目標應用的細節功能的增多,程序模型的數量會越來越多大,程序模型的層次關聯也會變得越來越復雜,為了保證程序模型的正確性、完備性、一致性[17]這就需要在程序模型轉換過程中增加程序模型驗證環節。

目標轉換模板和特定平臺信息:特定的平臺信息是目標模型設計參考的依據[18],完備的系統是模型驅動開發的載體,在該系統基礎上進行模型抽象,通過模型將系統的業務行為和結構特征表示出來。另外,中間件作為系統開發的一部分,也要考慮,不同應用的部署數據參數可能不盡相同,數據庫也是如此。

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

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

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

3.2復合變換服務

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

復合的程序模型變換服務是通過一定的變換規則或流程使基本程序模型變換服務經過組合而形成的邏輯變換整體。

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

圖6 UML活動圖到BPEL的轉換流程圖

4 基于元模型的程序模型轉換框架和方法

4.1基于元模型的程序模型轉換框架

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

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

圖7 基于元模型的程序模型轉換框架

4.2ATL程序模型轉換方法

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

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

圖8 基于ATL的程序模型轉換過程

5 結束語

程序模型變換系統的架構方法研究對程序模型變換系統的開發具有至關重要的作用。針對傳統程序模型變換系統的問題和不足,我們將SOA融入到程序模型變換系統的設計過程中,提出面向SOA的,以程序模型變換服務為中心的程序模型變換系統的架構方法。

基于該架構方法實現的程序模型變換系統已在JAVA和建筑行業的多門導學課程資源開發中得到成功應用,取得了良好效果。初步應用實踐表明該架構方法對解決傳統系統的復用性差、并發處理能力弱、不跨平臺等問題是有效的。

[1]張天, 張巖,于笑豐 等.基于MDA的設計模式建模與模型轉換[J].軟件學報, 2008, 19(09): 2203-2217.

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

[3]戚鐵林, 李亞芬,王普.MDA模型轉換平臺中模型轉換方法的研究[J].計算機工程與設計, 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].計算機科學, 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模型轉換規則研究[D].廣西大學, 2010.

[8]劉建賓. 過程藍圖設計方法學[M].科學出版社, 2005.

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

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

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

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

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

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

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

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

[17]王建光. 基于模型驅動架構的軟件生成技術研究[D].太原理工大學, 2007.

[18]冉川. 基于J2EE的模型驅動開發中模型轉換方法的研究與實現[D].北京工業大學, 2009.

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

[20]張春陽, 韓建松,張惠軍 等.基于MDA的SOA服務協作模型[J].河南科技大學學報(自然科學版), 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

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

TP302.2

A

1674-7461(2016)04-0062-07

猜你喜歡
程序服務模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
“程序猿”的生活什么樣
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
主站蜘蛛池模板: 丝袜无码一区二区三区| 一级毛片在线播放免费| 青青草a国产免费观看| 中文字幕亚洲综久久2021| 国产AV无码专区亚洲A∨毛片| 国产黄网站在线观看| 欧美在线黄| 无遮挡国产高潮视频免费观看| 亚洲中文字幕无码mv| 国产精品综合色区在线观看| 国产精品久久久精品三级| 欧美亚洲中文精品三区| 亚洲区一区| 五月综合色婷婷| 中文成人在线视频| 亚洲视频色图| 国产午夜精品一区二区三区软件| 久久综合九色综合97婷婷| 日本亚洲国产一区二区三区| 伊人五月丁香综合AⅤ| 国产视频你懂得| 久久精品国产精品青草app| 呦女精品网站| 欧美精品在线免费| 精品国产aⅴ一区二区三区| 狠狠做深爱婷婷综合一区| 99色亚洲国产精品11p| 免费a级毛片视频| 国产性生大片免费观看性欧美| 黄色免费在线网址| 中文字幕亚洲精品2页| 性色在线视频精品| 国产白浆在线| 国产成人一区二区| 3344在线观看无码| 欧洲亚洲一区| 亚洲愉拍一区二区精品| 一本一本大道香蕉久在线播放| 亚洲一级无毛片无码在线免费视频 | 东京热av无码电影一区二区| 广东一级毛片| 亚洲成年人网| 国产精品国产三级国产专业不 | 国产在线一区视频| 18禁影院亚洲专区| 久久人搡人人玩人妻精品| 国产成人夜色91| 欧美亚洲一二三区| 成人国产精品2021| 日韩黄色精品| 欧美日韩一区二区在线播放| 经典三级久久| 一区二区三区精品视频在线观看| 四虎影院国产| 国产成年女人特黄特色毛片免 | 狠狠色香婷婷久久亚洲精品| 欧美日韩精品综合在线一区| 亚洲香蕉久久| 国产一国产一有一级毛片视频| 精品伊人久久久久7777人| 国产丝袜啪啪| 热99精品视频| 亚洲国产精品无码久久一线| 91蝌蚪视频在线观看| 亚洲AV无码精品无码久久蜜桃| 欧美在线一二区| 久久国产精品电影| 国产91丝袜在线播放动漫| 超清人妻系列无码专区| 亚洲视频三级| 欧美黄网站免费观看| 国产主播一区二区三区| 午夜小视频在线| 国产午夜不卡| 色婷婷色丁香| 99久久99视频| 亚洲国产成人精品一二区| 国产精品第一区| 亚洲日本精品一区二区| 少妇人妻无码首页| 欧美a级完整在线观看| 国产99视频在线|