描述及開發(fā)動態(tài)行為應(yīng)用系統(tǒng)的方法與系統(tǒng)的制作方法

            文檔序號:6367707閱讀:348來源:國知局
            專利名稱:描述及開發(fā)動態(tài)行為應(yīng)用系統(tǒng)的方法與系統(tǒng)的制作方法
            技術(shù)領(lǐng)域
            本發(fā)明與流程圖,活動圖,業(yè)務(wù)流程,流程建模,工作流,狀態(tài)機(jī),協(xié)議規(guī)程以及應(yīng)用軟件設(shè)計與實現(xiàn)有關(guān)。
            背景技術(shù)
            按照傳統(tǒng)的做法,可以有兩種不同途徑來對一個系統(tǒng)的行為進(jìn)行建模。一種途徑是關(guān)注系統(tǒng)的內(nèi)部主動式行為,而另一種途徑則關(guān)注系統(tǒng)對外部事件的反應(yīng)式行為。這兩種途徑表現(xiàn)為UML中兩種不同風(fēng)格的圖畫關(guān)注主動式行為的“活動圖(ActivityDiagram) ”和關(guān)注反應(yīng)式行為的“狀態(tài)圖(Statechart) ”。我們把前一種途徑稱為“主動式行為建?!倍押笠环N途徑稱為“反應(yīng)式行為建?!?。主動式行為建模語言包括流程圖,業(yè)務(wù)流程建模符號(BPMN),XML流程定義語言(XPDL),業(yè)務(wù)流程執(zhí)行語言(BPEL)和UML活動圖。BPMN和UML活動圖都在一個圖畫中使用節(jié)點來表示要執(zhí)行的活動,而使用連接兩個節(jié)點的鏈接來表示這些活動的順序。在另一方面,XPDL和BPEL用一個XML句法替代一個圖形來定義這些活動節(jié)點和它們之間的鏈接。雖然這些主動式行為建模語言在描述一個系統(tǒng)的內(nèi)部主動式行為時有用,但它們在描述對隨時可以發(fā)生的外部事件做出的反應(yīng)式行為時有所不足。一般的解決辦法是定義一些特殊的事件檢測活動,比如BPMN和BPEL中的“接收(receive) ”活動,來檢測這些可能發(fā)生的外部事件。由于這些外部事件隨時都可能發(fā)生,因此不得不在一幅圖的各個地方插入各種事件檢測活動。然而,和一個狀態(tài)機(jī)不同的是,這些主動式行為的建模圖畫沒有一個能把事件檢測活動集中在一起的“狀態(tài)”機(jī)制。結(jié)果導(dǎo)致這些事件檢測活動散布在圖畫中的各個地方,從而使得在運(yùn)行時刻要想知道某個時刻一個應(yīng)用系統(tǒng)在等待哪些外部事件變得非常困難。這種方法的主要缺點在于如果在圖畫中的關(guān)鍵點沒有插入正確的事件檢測活動,那么一些意外的事件會被漏掉,應(yīng)用系統(tǒng)就有可能會因此而崩潰。為了克服這個問題,一個設(shè)計者會試圖在整個圖畫中布滿各種事件檢測機(jī)制。而這樣又會導(dǎo)致一個過度復(fù)雜的圖畫。這種方法的另一個不足在于這些事件檢測活動是按照一種隨意、而沒有系統(tǒng)的方式布置在圖中,這使得驗證各方行為是否一致的工作變得非常困難。許多重要的系統(tǒng)設(shè)計方面的問題就是由這個不足所造成的。因為一個主動式行為的建模語言無法很好地支持對外部事件做出的反應(yīng)式行為,所以也有針對反應(yīng)式行為而設(shè)計的建模語言來解決這個問題。反應(yīng)式行為的建模語言包括有限狀態(tài)機(jī)(FSM), UML的狀態(tài)圖以及動態(tài)狀態(tài)機(jī)(Dynamic State Machine)。一個純粹的FSM狀態(tài)圖包括若干個狀態(tài)及這些狀態(tài)的向外的 遷移(Transition),而且每一個遷移的外部事件都定義得非常清楚。當(dāng)處于某個狀態(tài)時,F(xiàn)SM在等待所有可能的外部事件。當(dāng)收到一個適當(dāng)?shù)耐獠渴录r,會觸發(fā)一個遷移,而且伴隨著這個遷移會執(zhí)行一個關(guān)聯(lián)的動作。當(dāng)一個遷移發(fā)生之后,當(dāng)前狀態(tài)就變成不活躍的,而另外一個狀態(tài)會成為活躍的。然后這個FSM會等待與這個新活躍的狀態(tài)相關(guān)聯(lián)的另外一組事件。因此,在任何時候,一個FSM —般都處于某個狀態(tài)在等待可能發(fā)生的各種外部事件。一個純粹的FSM有幾個缺點。比如,純粹的FSM沒有內(nèi)存就是一個局限。因為沒有內(nèi)存,所以純粹的FSM的用處就非常有限。因為它的狀態(tài)沒有內(nèi)存,任何狀態(tài)變化或者歷史信息,比如一個簡單的計數(shù)器,都必須通過定義額外的狀態(tài)來保存這些變化。假如一個計數(shù)器有無限取值的可能,那么就會需要無限多個的狀態(tài)。從一個純粹FSM擴(kuò)展出來的有限狀態(tài)機(jī)(EFSMs)或者寄存自動機(jī)(Regi sterAutomata)為每一個狀態(tài)都增加了內(nèi)存或數(shù)據(jù)變量以存值,比如數(shù)字和計數(shù)器等,這克服了純粹FSM的一個主要問題。因此EFSM被廣泛地用于反應(yīng)式系統(tǒng)建模。當(dāng)EFSM被用來為現(xiàn)實世界的事件或行為進(jìn)行建模時,人們經(jīng)常會發(fā)現(xiàn)一個分層的狀態(tài)或者嵌套的狀態(tài)對減少狀態(tài)的數(shù)量以及組織一組復(fù)雜的狀態(tài)有幫助。比如,UML的狀態(tài)圖(Statechart)及STATEMATE就是這樣的例子。狀態(tài)圖(Statechart)這個術(shù)語在這里就用來專指一個分層的有限狀態(tài)機(jī)。雖然一個反應(yīng)式行為建模語言適合用來處理外部事件的,但它卻忽略了如何描述系統(tǒng)內(nèi)部的一些復(fù)雜的主動式行為。正如我們已經(jīng)從一些主動式行為建模語言所了解到的,這些內(nèi)部主動式行為可以是非常復(fù)雜的。因此需要能把反應(yīng)式行為建模語言和主動式行為建模語言結(jié)合起來使用。另外一個現(xiàn)有的主動式行為建模語言和反應(yīng)式行為建模語言共有的缺點是它們都只能描述一個單一系統(tǒng)的行為。它們無論用哪種方式都無法有效地描述一個父系統(tǒng)內(nèi)的組件間的復(fù)雜的內(nèi)部消息交換。而一個分布式系統(tǒng)恰恰就包含多個相互通信,彼此協(xié)調(diào)的子系統(tǒng),所以缺乏對多方行為的支持對一個分布式系統(tǒng)的限制非常大。除了上面提及的主動式行為建模和反應(yīng)式行為建模,還有一些其它語言用來描述兩個交流系統(tǒng)之間的協(xié)議。Web服務(wù)編排描述語言(WS-CDL)就是這樣的一個例子。一種可能的應(yīng)用系統(tǒng)開發(fā)過程是用WS-CDL來定義協(xié)議,然后用另一種語言來設(shè)計一個參與系統(tǒng)的行為,比如BPEL,XPDL或者BPMN。但是,由于這些語言間存在的差異,從一個協(xié)議映射到兩個參與系統(tǒng),而且要保證這兩個系統(tǒng)彼此協(xié)調(diào),是有很多問題的。因此需要一個能把主動式行為建模語言和反應(yīng)式行為建模語言都統(tǒng)一起來的建模語言,并且它能夠描述現(xiàn)代分布式計算環(huán)境中的多方參與的動態(tài)行為。本發(fā)明正是提供了這樣一個建模語言的解決方法。

            發(fā)明內(nèi)容
            本發(fā)明描述設(shè)計及開發(fā)具有動態(tài)行為的應(yīng)用系統(tǒng)的方法和系統(tǒng)。本發(fā)明是旨在改進(jìn)我們用圖畫方式描述一個應(yīng)用系統(tǒng)的動態(tài)行為的方法,以便用
            一個計算機(jī)軟件或硬件來實現(xiàn)這個系統(tǒng)。本發(fā)明還旨在提供必需的方法及過程來構(gòu)造設(shè)計工具,代碼生成器以及運(yùn)行平臺來實現(xiàn)定義好的動態(tài)行為。為了實現(xiàn)這些目的,本發(fā)明提供了描述應(yīng)用系統(tǒng)的動態(tài)行為的一套系統(tǒng)、過程和過程的運(yùn)用方法以及開發(fā)這種動態(tài)行為模型的方法。這個發(fā)明用一個動態(tài)系統(tǒng)(即Dynamic System,簡稱DS)類型來描述一個應(yīng)用系統(tǒng)的動態(tài)行為。一個DS類型可以是簡單的或組合的。一個簡單的DS類型有一個行為類型來描述這個應(yīng)用系統(tǒng)的簡單行為。一個組合的DS類型(模型I的)有若干個階段機(jī)(PhasedMachine)類型用來描述復(fù)雜的順序和并行的行為以及一個結(jié)束情況集或一個結(jié)束函數(shù)。每個階段機(jī)類型有一個或多個階段(Phase)類型和一個靜態(tài)實例數(shù)(也可以可省略的)。每個階段類型有一個子DS類型以及零個或多個遷移。每個遷移有一個遷移條件和一個目標(biāo)階段。如果定義了一個結(jié)束函數(shù),它會返回一個結(jié)束代碼,該結(jié)束代碼標(biāo)識了一個所述組合系統(tǒng)類型實例結(jié)束時的條件。如果定義了一個結(jié)束情況集,每個結(jié)束情況包括一對結(jié)束條件和結(jié)束代碼,該結(jié)束條件描述一個所述組合系統(tǒng)類型實例結(jié)束時的條件,而該結(jié)束代碼則標(biāo)識對應(yīng)的結(jié)束條件;一個階段機(jī)類型可以用多個階段類型來描述組合DS中的順序行為,而另一個階段機(jī)類型可以只用一個階段類型來描述所述組合DS中的并行行為。所述DS類型可以特例化為一個自主系統(tǒng)(即Proactive System,簡稱PS)類型來描述一個在分布式環(huán)境中與其他系統(tǒng)交流的系統(tǒng)的反應(yīng)式行為。一個PS類型可以是簡單的或者組合的。一個簡單的PS類型是一個簡單DS類型的特例,它的行為包括一個外部DS (即External DS,簡稱Ext-DS)類型以及跟在這個Ext-DS類型后面的內(nèi)部DS ( SPInternal DS,簡稱Int-DS) aExt-DS類型描述了和另外一個系統(tǒng)通訊時會發(fā)生的外部事件。而Int-DS類型則描述為響應(yīng)所發(fā)生的那些外部事件而執(zhí)行的內(nèi)部動作。一個組合PS類型是一個組合DS的特例。因此,它和一個組合DS類型是相同的,除了它包含的是子PS類型,而不是子DS類型。一個Ext-DS類型也是一個DS類型的特例。一個Ext-DS類型可以是簡單的或組合的。一個簡單的Ext-DS類型是一個簡單DS類型的特例,它的行為是一個事件類型,可以用來描述通訊協(xié)議中的一個向內(nèi)的外部事件類型。而一個組合Ext-DS類型是一個組合DS類型的特例。因此,它和一個組合DS類型是相同的,除了它包含的是子Ext-DS類型,而不是子DS類型。一個Int-DS類型也是一個DS類型的特例。一個Int-DS類型可以是簡單的或組合的。一個簡單的Int-DS類型是一個簡單DS類型的特例,它的行為是一個動作類型,可以用來描述待執(zhí)行的內(nèi)部動作。一個組合Int-DS類型是一個組合DS類型的特例。因此,它和一個組合DS類型是相同的,除了它包含的是子Int-DS類型,而不是子DS類型。在運(yùn)行時,一個DS類型,包括PS類型,Ext-DS類型和Int-DS類型,可以生成多個DS實例(instance)。一個DS實例可以是簡單的或組合的。一個簡單的DS實例有對它的DS類型的一個引用(Reference)和對執(zhí)行 它的行為的成果進(jìn)行記錄的一個結(jié)果。一個組合DS的實例包含有對它的組合DS類型的一個引用,一個結(jié)果以及若干個階段機(jī)。每一個階段機(jī)都有對它的階段機(jī)類型的一個引用,一個當(dāng)前階段以及若干個階段。每個階段有一個對它的階段類型的引用和一個子DS類型。在一個DS實例生成以后,在運(yùn)行時刻,這個DS實例的各個部分可以在活躍狀態(tài)和非活躍狀態(tài)之間切換,以反映現(xiàn)實世界中一個系統(tǒng)行為的演進(jìn)。和一個DS實例類似,在運(yùn)行時刻,一個Ext-DS,Int-DS和PS實例的各個部分也都可以在活躍狀態(tài)和非活躍狀態(tài)之間切換,以表現(xiàn)現(xiàn)實世界中一個所對應(yīng)系統(tǒng)的行為的演進(jìn)。為了描述當(dāng)一個簡單PS變成活躍狀態(tài)后要立即執(zhí)行的Int-DS,可以在這個簡單PS類型的Ext-DS中設(shè)定一個預(yù)定義的“開始”事件。而為了描述當(dāng)一個簡單PS變成非活躍狀態(tài)之前一瞬間要執(zhí)行的Int-DS,可以在這個簡單PS類型的Ext-DS中設(shè)定一個預(yù)定義的“結(jié)束”事件。使用DS模型的一個主要優(yōu)點在于整個設(shè)計流程只使用了一個一致性的通用模型,只是在不同的設(shè)計步驟會用到這個通用模型的某個特殊模型來關(guān)注某個特定行為。在本發(fā)明中提供了幾種設(shè)計方法,從而可以從協(xié)議規(guī)范(protocolspecification)推導(dǎo)出一個與其他系統(tǒng)有交流的系統(tǒng)的行為。首先,遵循一個通用性的轉(zhuǎn)換方法,從一個角色的每一個協(xié)議都推導(dǎo)出一個參與者PS。然后,把這些參與者PS合并成一個角色PS。這些設(shè)計方法可確保協(xié)議規(guī)范和通訊各方保持彼此一致。這些設(shè)計方法中用到的某些組件可以被擴(kuò)展得更具通用性,以用于其他行為建模語言。一個尚待定義的Ext-DS被擴(kuò)展成一個尚待定義的外部活動,用于描述要接收某些尚待定義的外部事件的活動。而一個尚待定義的Int-DS被擴(kuò)展成一個尚待定義的內(nèi)部活動,用于描述要執(zhí)行某些尚待定義的內(nèi)部動作的活動。一個通用性的轉(zhuǎn)換方法是用來把一個組合活動從協(xié)議規(guī)范轉(zhuǎn)換為一個參與者行為規(guī)范。這個方法包括把每一個描述參與者要接收事件的向內(nèi)的簡單活動,替換成一個反應(yīng)式組合活動,這個反應(yīng)式組合活動把這個向內(nèi)的簡單活動作為它的外部活動,而且用一個尚待定義的內(nèi)部活動來描述為響應(yīng)所發(fā)生的向內(nèi)的簡單活動而執(zhí)行的活動;并且把每一個描述參與者要發(fā)送事件的向外的簡單活動,替換成一個反應(yīng)式組合活動,這個反應(yīng)式組合活動有一個尚待定義的外部活動,用于描述待接收的事件,而且把這個向外的簡單活動作為它的內(nèi)部活動,以對發(fā)生的尚待定義的外部活動做出響應(yīng)。本發(fā)明提供了幾種實施例以便用類似的方法分別采用UML狀態(tài)圖、UML活動圖、BPMN和BPEL語言來描述主動式行為和反應(yīng)式行為。本發(fā)明還提供了一個方法來從一個參與者組合活動推導(dǎo)出一個描述協(xié)議的協(xié)議組合活動。這個方法包括復(fù)制一份描述一個參與者行為的參與者組合活動;并且把所述參與者組合活動中既不接收向內(nèi)事件也不發(fā)送向外事件的各個簡單活動改變?yōu)榭?Null)活動。本發(fā)明中提供了一些DS類型的圖形化表示法,包括PS類型,Ext-DS類型和Int-DS類型。一個DS類型可以圖形化地以一個包含框來表示。一個代表組合DS類型的包含框內(nèi)可以有若干個子包含框,若干個雙向的交流鏈接,若干個生成箭頭,若干個遷移箭頭以及若干個結(jié)束點。每一個這些子包含框代表了一個簡單的或者組合的子DS。一個組合子DS可以把它的子子包含框畫在它的框內(nèi)。一個至少帶有一個遷移箭頭的子包含框代表了一個順序的子DS,而一個不帶任何遷移箭頭的子包含框則代表了一個并行的子DS。一個簡單的子PS可以圖形化地用一個帶有兩個子包含框的包含框來表示。其中之一的子包含框代表了描述待接收外部事件的Ext-DS,而另一個子包含框則代表了用于描述為響應(yīng)所發(fā)生的外部事件而執(zhí)行的內(nèi)部行動的Int-DS。借助本文的其他部分,包括附圖及權(quán)利要求,可以體現(xiàn)本專利的其他特征和優(yōu)勢?!は旅鏁Y(jié)合附圖更進(jìn)一步詳細(xì)介紹本發(fā)明的特性和優(yōu)勢,以及各種實施例的結(jié)構(gòu)和操作。


            本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中,圖I表示的是一個簡化的框圖,代表了一個分布式計算環(huán)境的例子;圖2表示的是一個簡化的框圖,展示了一個可以用來實施本發(fā)明的計算機(jī)系統(tǒng)。圖3表示的是一個包含子DS樹圖的DS ;圖4表示的是一個簡單DS ;圖5表示的是一個組合DS ;圖6表不的是一個結(jié)束情況,它包括一對結(jié)束條件和結(jié)束代碼。圖7表示的是一個DS常見的生命周期;圖8表示的是協(xié)議,參與者PS和角色PS ;圖9表示的是一個簡單的Ext-DS ;圖10表示的是一個簡單的PS ;圖11表示的是一個簡單的Int-DS ;圖12表示的是用圖形語言表示的事件檢查函數(shù)(Matching procedure)的偽代碼;圖13表示的是用圖形語言表示的反應(yīng)函數(shù)(React procedure)的偽代碼;圖14表示的是用圖形語言表示的動作執(zhí)行函數(shù)(Act procedure)的偽代碼;圖15A表示的是用沒有任何遷移的并行階段機(jī)來模擬一個并行單元;圖15B表示的是用只有一個遷移的并行階段機(jī)來模擬一個并行單元;圖16表示的是一個模型I的組合DS ;圖17表不的是一個用圖形語言表不的DS例子;圖18表不的是另一個用圖形語言表不的DS例子;
            圖19表示的是一個用圖形語言表示的組合PS例子;圖20表示的是一個組合PS的例子,它包含了一個子PS,而這個子PS又包含一個組合的Ext-DS和一個組合的Int-DS ;圖21表示的是一個包含了“開始”、“結(jié)束”預(yù)定義事件的組合PS ;圖22表示的是一個沒有包含“開始”預(yù)定義事件的X-Server參與者PS ;圖23表示的是一個包含了 “開始”預(yù)定義事件的X-Server參與者PS ;圖24表示的是一個簡單DS的類型(Type)屬性(properties)和實例(Instance)屬性;圖25表示的是用UML類圖(class diagram)來定義的一個簡單DS的類型屬性和實體屬性圖26表示的是一個簡單Ext-DS的類型屬性和實例屬性;圖27表示的是一個用UML類圖來定義的簡單Ext-DS的類型屬性和實例屬性;圖28表示的是一個簡單PS的類型屬性和實例屬性; 圖29表示的是一個用UML類圖來定義的簡單PS的類型屬性和實例屬性; 圖30表示的是一個簡單Int-DS的類型屬性和實例屬性;圖31表示的是一個用UML類圖來定義的簡單Int-DS的類型屬性和實例屬性;圖32A表示一個帶有一個結(jié)束情況集的模型I的組合DS的類型和實例;圖32B表示一個帶有一個結(jié)束函數(shù)的模型I的組合DS的類型和實例;圖32C表示模型I的組合PS類型和實例。圖33表示的是基于DS模型來設(shè)計,編譯和運(yùn)行一個應(yīng)用軟件的流程。圖34表示的是基于DS模型來設(shè)計一個應(yīng)用軟件,然后在不同平臺上編譯和運(yùn)行這個應(yīng)用軟件的流程;圖35表示的是一個用UML類圖來定義的模型I的組合DS的類型屬性和實例屬性;圖36表示的是圖23中參與者PS” X-server”的組合PS類型;圖37表示的是一個與客戶端和服務(wù)端有交流的系統(tǒng)“X” ;圖38表示的是協(xié)議的例子“協(xié)議O”和“協(xié)議I ” ;圖39表示的是從圖38中“協(xié)議O”推導(dǎo)出來的“X-server”的參與者PS ;圖40表示的是從圖38中“協(xié)議I”推導(dǎo)出來的“X-client”的參與者PS ;圖41表示的是協(xié)議“協(xié)議2 ” ;圖42表示的是如何把參與者PS合并成一個角色PS ;圖43表示的是如何加上內(nèi)部的交流與行為;圖44是使用一個組合協(xié)議“協(xié)議2”的“X”的角色PS ;圖45表示的是用UML活動圖描述的“協(xié)議O”和“協(xié)議I” ;圖46表示的是用UML活動圖表示的從圖45中“協(xié)議O”推導(dǎo)出來的“X-server”;圖47表示的是用UML活動圖表示的從圖45中“協(xié)議I”推導(dǎo)出來的“X-client”;圖48表示的是用UML活動圖的“分叉”和“匯合”節(jié)點來描述由“X-server”和“X-client”合并而成的角色PS ;圖49表示的是用BPMN來描述的“協(xié)議O”和“協(xié)議I” ;
            圖50表示的是用BPMN來描述從“協(xié)議O”推導(dǎo)得到的“X-server” ;圖51表示的是用BPMN來描述從“協(xié)議I”推導(dǎo)得到的“X-client” ;圖52表示的是用BPMN的“分叉(Fork) ”和“匯合(Join) ”并行網(wǎng)關(guān)(ParallelGateway)來描述由“X-server”和“X-client”合并得到的角色PS ;圖53表示的是用BPMN的并行框圖(Parallel Box)來描述由“X-server”和“X-client”合并得到的角色PS ;圖54表示的是用狀態(tài)圖描述的“協(xié)議O”和“協(xié)議I”;圖55表示的是用狀態(tài)圖描述的由“協(xié)議O”推導(dǎo)出的“X-server”;圖56表示的是用狀態(tài)圖描述的由“協(xié)議I”推導(dǎo)出的“X-client”; 圖57表示的是用狀態(tài)圖描述的由“X-server”和“X-client”合并得到的角色PS ;圖58表示的是由“x-server”參與者組合活動推導(dǎo)出的一個協(xié)議;圖59表示的是如何遵循本發(fā)明所描述的設(shè)計流程來設(shè)計一個應(yīng)用系統(tǒng),然后在不同的運(yùn)行平臺上運(yùn)行這個應(yīng)用系統(tǒng)。圖60表示的是一個組合活動,它包含有順序的子組合活動和并行的子組合活動。其中有一個子組合活動是一個反應(yīng)式組合活動;圖61表示的是一個組合活動,它包含有順序的子組合活動和并行的子組合活動以及一個交流鏈接;圖62表示的是一個組合活動,它包含有子組合活動,一個交流鏈接以及兩個結(jié)束占.圖63表示的是一個組合活動,它包含有順序的子組合活動和并行的子組合活動。外部活動是通過一個箭頭和內(nèi)部活動相連。
            具體實施例方式下面會通過一個或多個實施例來描述本發(fā)明。下面的描述中會提供很多細(xì)節(jié)來更加透徹地闡明本發(fā)明。但是顯然對一個本領(lǐng)域的技術(shù)人員而言,即使沒有這些描述,他也可以實施本發(fā)明。另一方面,本文沒有對一些眾所周知的特性進(jìn)行詳細(xì)描述以免使得本發(fā)明
            重點不清?,F(xiàn)實世界中的許多系統(tǒng)都有復(fù)雜而動態(tài)的行為。一個行為之所以是復(fù)雜的,是因為它會涉及許多系統(tǒng)單元,而一個行為之所以是動態(tài)的,則是因為它會隨著時間而演變。對一個復(fù)雜行為建模的基本指導(dǎo)原則是先對復(fù)雜行為進(jìn)行分解然后再各個擊破(建模)。本發(fā)明用動態(tài)系統(tǒng)(DS)和它的子系統(tǒng)(子DS)來對任何的復(fù)雜行為進(jìn)行分解與建模。這些復(fù)雜行為可以在很廣的的范圍內(nèi)適用,既可以是圖I中所描述的實時的或者分布式的軟、硬件系統(tǒng),也可以是現(xiàn)實世界中像人和組織這樣的實體。一個分布式的環(huán)境一般都是由多個通過網(wǎng)絡(luò)互聯(lián)的硬件系統(tǒng)組成。每個硬件系統(tǒng)如圖2所示,包含有一個中央處理單元(CPU),存儲器(ROM,RAM和磁盤)以及輸入輸出設(shè)備。這硬件系統(tǒng)是一種計算機(jī),它可以是PDA (Personal Data Assistant)、筆記本、桌面機(jī),也可以是工作站、主機(jī)、實時控制設(shè)備、網(wǎng)絡(luò)設(shè)備或者任何具有計算能力和輸入輸出能力的設(shè)備。
            在本發(fā)明中,類型(Type)或者類(Class)與實例(Instance)是有區(qū)別的。類型或類是一個設(shè)計階段的概念,用來設(shè)定一個實體(Entity)的某些行為屬性。而實例是運(yùn)行時刻的概念,它的行為屬性是由所屬的類規(guī)定好的。除了特別申明為類的,本發(fā)明中所用的術(shù)語一般都指具體的實例。用DS模型描述動態(tài)行為為了把復(fù)雜的系統(tǒng)行為分解成更小的組件,DS模型借助了這樣一個常識,即我們所在的宇宙有兩個基本的時間和空間維度這一事實。沿著時間維度一個復(fù)雜的系統(tǒng)可以分解為順序的子DS,而沿著空間維度一個復(fù)雜的系統(tǒng)分解為并行的子DS。在時間和空間的任何一點上,一個DS可以被分解為多個并行子DS和多個順序子DS。而且每個子DS都可以沿著這兩個維度繼續(xù)分解為它自己的子DS。一般而言,一個DS可以包含一組順序的子系統(tǒng)和一組并行的子系統(tǒng)。因為每個子系統(tǒng)又可以包含它自己的子系統(tǒng),因此一個DS —般可以分解成由子系統(tǒng)構(gòu)成的樹狀圖。在 這棵樹上處于中間層次的DS對它的子系統(tǒng)而言是父系統(tǒng),而對它的父系統(tǒng)而言又成了子系統(tǒng)。因此根據(jù)不同的角度一個DS可以被稱作DS,父DS或者子DS。如圖3所示,DSO是DSl和DS2的父系統(tǒng)。因此DSl是DSO的子系統(tǒng),而同時它又是DS3和DS4的父系統(tǒng)。當(dāng)描述互聯(lián)世界里一個系統(tǒng)的行為時,需要同時考慮外部和內(nèi)部準(zhǔn)備就緒的情況。一般而言,只有當(dāng)一個系統(tǒng)自己準(zhǔn)備就緒,并且某個外部條件后被滿足后才能執(zhí)行一個特定的動作。本發(fā)明也會反映出系統(tǒng)間的這些相互依賴關(guān)系。一個DS可以是簡單的或者組合的。一個簡單的DS(如圖4所示)有一個行為和一個結(jié)果。這個行為就是用來描述DS的行為,而結(jié)果則可以被這個行為用來記錄行為執(zhí)行完畢后的最終成果。一個行為的例子可以是當(dāng)特定條件滿足時,一個DS就執(zhí)行一個特定的動作。請注意在圖4中一個簡單的DS是用一個在頂部有標(biāo)簽的框來表示的。而DS的組件則用畫在大框內(nèi)部的小框表示。本文檔都會使用這個規(guī)范。一個組合的PS (如圖5所示)有如下組件 零個或者多個階段機(jī)501,是用來表示這個組合DS內(nèi)的順序行為。 每個階段機(jī)都有一個或者多個階段502,以及一個當(dāng)前階段503。 當(dāng)一個階段機(jī)變成活躍狀態(tài)時,它的多個階段中的一個就會成為活躍狀態(tài)。當(dāng)階段機(jī)處于活躍狀態(tài)時,它的各個階段會根據(jù)自己的遷移定義在活躍狀態(tài)和非活躍狀態(tài)間切換。一般情況下,當(dāng)階段機(jī)處于活躍狀態(tài)時,它最多只有一個階段能處于活躍狀態(tài)。 一個正常的階段有一個順序的子DS 504及零個或多個遷移(Transition) 505。 這個順序的子DS包含了這個階段的行為。它可以是一個簡單的DS,或者一個組合的DS。 每個遷移都有一個遷移條件506和一個目標(biāo)階段507。 在當(dāng)前階段變?yōu)榉腔钴S狀態(tài)時,另一個階段就會被選中并成為活躍狀態(tài)。一個遷移會指明如果它的遷移條件得到滿足,它的目標(biāo)階段就是在遷移結(jié)束后下一個成為活躍狀態(tài)的階段。這遷移條件可以使用順序子DS結(jié)果中的信息或者它在運(yùn)行時刻可以獲得的任何其他信息來做判斷。 遷移中指定的目標(biāo)階段必須是同一個階段機(jī)中的階段。換言之,遷移不能夠跨越階段機(jī)的邊界。請注意,一個階段可以作為多個源階段的目標(biāo)階段。另外,還允許循環(huán)遷移,包括指向當(dāng)前階段自己的遷移。這樣就可以描述循環(huán)重復(fù)的行為。 因為任何時候都最多只能有一個階段處于活躍狀態(tài),所以從同一個源階段出來的各個遷移條件必須是彼此排他的(mutually exclusive)。 當(dāng)前階段是在運(yùn)行時刻指向階段機(jī)中處于活躍狀態(tài)的階段的一個指針(Pointer)或者一個引用(Reference)。 為了設(shè)置當(dāng)前階段,階段機(jī)可以有兩種特殊的階段。 其中一種特殊階段是初始階段。一個階段機(jī)最多可以有一個初始階段。初始階 段的作用是在階段機(jī)成為活躍狀態(tài)時選擇最先成為活躍狀態(tài)的階段。這個初始階段有一個空的順序子DS和一組初始遷移。 另外一種特殊的階段是空(Null)階段。當(dāng)一個階段機(jī)的當(dāng)前階段指向一個空階段時,整個階段機(jī)就變成非活躍狀態(tài)。一個階段機(jī)可以有一個默認(rèn)的(default)空階段以及零個或多個用戶定義的空階段。一個空階段是不包含任何子DS和任何遷移的階段,它只有一個和其他空階段相區(qū)別的獨(dú)特標(biāo)識(ID)。默認(rèn)的空階段所預(yù)定義的ID和任何用戶定義的空階段的ID都不會相同。空階段的這個ID可以被結(jié)束情況或結(jié)束條件(在下文會有描述)用來判定一個組合DS是否應(yīng)當(dāng)結(jié)束。 零個或多個并行單元508 每個并行單元包含一個并行的子DS 509來代表組合DS中的并行行為,一個靜態(tài)實例數(shù)(可省略的)510以及一個用來指明運(yùn)行時刻這個并行子DS是否處于活躍狀態(tài)的模態(tài)(Mode) 511。 這個靜態(tài)實例數(shù)(可省略的)是一個數(shù)字,用來指明當(dāng)生成包含它的組合DS時,會靜態(tài)地生成多少個并行子DS的實例。如果省略了靜態(tài)實例數(shù),靜態(tài)實例數(shù)的取值默認(rèn)為I。當(dāng)生成包含它的組合DS時,總會靜態(tài)地生成一個并行子DS的實例。除了這些靜態(tài)生成的實例,在組合DS中也可以在運(yùn)行時刻根據(jù)用戶定義的行為而動態(tài)地生成這些并行子DS的實例。動態(tài)生成的被稱為動態(tài)子DS,而那些伴隨父DS生成的被稱為靜態(tài)子DS。在并行子DS實例的數(shù)目無法事先確定的情況下,動態(tài)子DS會很有用。 當(dāng)一個并行子DS在運(yùn)行時刻變成活躍狀態(tài)時,它的模態(tài)就會被設(shè)置成“活躍的”。當(dāng)它變成非活躍狀態(tài)時,它的模態(tài)又會被設(shè)置成“非活躍的”。 當(dāng)一個組合DS成為活躍狀態(tài)時,它所有的并行子DS的實例都會成為活躍狀態(tài)。 這些并行子DS每一個都可以是簡單的或者是組合的。 一個包含零個或多個結(jié)束情況的結(jié)束情況集512,其中每一個結(jié)束情況600用來指明在哪種情況下整個組合DS應(yīng)該變成非活躍狀態(tài)。每一個結(jié)束情況可以顯式地定義為一對結(jié)束條件601和與之對應(yīng)的結(jié)束代碼602 (如圖6所示)。這個結(jié)束條件可以用一個邏輯表達(dá)式,一個數(shù)學(xué)公式或者數(shù)學(xué)符號,甚至是一段文字描述來設(shè)定。同一個組合DS中的每一個結(jié)束代碼都是不同的。結(jié)束代碼通常是由設(shè)計工具生成或者由設(shè)計人員設(shè)定的一個數(shù)值。當(dāng)某一個結(jié)束條件測試為“真”時,組合DS就會結(jié)束并且把對應(yīng)的結(jié)束代碼記錄在組合DS的結(jié)果中。根據(jù)在結(jié)果中記錄的結(jié)束代碼我們就可以知道組合DS是在哪種情況下結(jié)束的。另外,結(jié)束情況集也可以定義為一個結(jié)束函數(shù),這個函數(shù)既可以是一個面向函數(shù)程序語言的函數(shù),也可以是一個面向?qū)ο蟪绦蛘Z言的方法。這結(jié)束函數(shù)會在內(nèi)部用到一組隱式定義的結(jié)束條件來判斷是否滿足了某個結(jié)束情況,并返回一個結(jié)束代碼以說明具體是哪個結(jié)束條件被滿足了。 一個結(jié)束條件的實施例可以是當(dāng)任何階段機(jī)或者并行子DS結(jié)束時,這個組合DS就結(jié)束; 另一個結(jié)束條件的實施例是當(dāng)某一個特定的并行子DS結(jié)束時,這個組合DS就結(jié)束;
            籲如果在結(jié)束情況集中沒有指明結(jié)束情況,默認(rèn)的結(jié)束情況是當(dāng)所有的階段機(jī)和并行子DS成為不活躍狀態(tài)時,包含它們的組合DS就變成不活躍狀態(tài),同時會把一個預(yù)定義的默認(rèn)結(jié)束代碼記錄在結(jié)果中。這個默認(rèn)的結(jié)束情況是對任何一個組合DS都有效的。 一個屬于整個組合DS的結(jié)果513。這個結(jié)果是用來記錄一個結(jié)束函數(shù)返回的結(jié)束代碼?;蛘撸绻x了一個結(jié)束情況集,則結(jié)果會記錄那個判斷為真的結(jié)束條件所對應(yīng)的結(jié)束代碼。請注意,如果允許某個組件有多個實例,這個組件就用帶陰影的圖畫表示。比如,在一個組合DS中可以有若干個階段機(jī)和并行單元。在一個階段機(jī)中又可以一個或多個階段。每個階段還可以有多個遷移。因此如圖5所示,每個階段機(jī),并行單元,階段和遷移都用有陰影的圖畫表示。許多現(xiàn)實世界中的系統(tǒng)會隨著時間的推移有不同的行為表現(xiàn)。為了表現(xiàn)這種隨時間推移的行為變化,DS的某些部分會隨著時間推移在活躍狀態(tài)和非活躍狀態(tài)之間切換,但是在任何一個時間點上只有活躍的那部分是生效的。因此在DS內(nèi)部控制子DS活躍與否就可以控制系統(tǒng)的行為變化了。一個DS的常見生命周期如圖7所示在一個DS生成以后,它會成為活躍狀態(tài)或者非活躍狀態(tài)。一個活躍狀態(tài)的DS在它的行為完成或者結(jié)束以后會變成非活躍狀態(tài)。當(dāng)一個DS(不管它是活躍的還是非活躍的)不能再次成為活躍狀態(tài)時可以被銷毀。在圖7中,一個長方形代表一個階段,這個階段可以有一個標(biāo)簽(比如“已生成”)。一個箭頭代表了從一個階段向另一個階段的遷移。一個在長方形邊框上的空心小長方形代表一個初始階段或一個空階段,它表明這個DS不存在(要么是還沒有生成,要么是已經(jīng)被銷毀)。一個階段還可以包含子階段。比如,階段“已生成”就包含“活躍”和“非活躍”兩個子階段。在運(yùn)行時刻可以通過裝載相關(guān)代碼和數(shù)據(jù)到內(nèi)存或者持久存儲設(shè)備來生成一個DS類所定義的DS實例。然而生成和銷毀DS的具體過程對本發(fā)明來說不是很重要,因此,這個過程留給實施本發(fā)明的應(yīng)用系統(tǒng)去決定。應(yīng)用系統(tǒng)只需要確保一個DS實例生成以后它所有的靜態(tài)組件都會生成,并且為進(jìn)入活躍狀態(tài)或非活躍狀態(tài)做好了準(zhǔn)備,一直到這個DS最后被銷毀。一個DS變?yōu)榛钴S(或非活躍)狀態(tài)的具體過程描述如下在運(yùn)行時刻一個簡單的DS(如圖4所示)變?yōu)榛钴S(或非活躍)狀態(tài)的過程如下 當(dāng)一個簡單的DS變成活躍狀態(tài)時,它的行為就會被執(zhí)行; 當(dāng)簡單的DS完成它的行為以后,執(zhí)行的成果被記錄在結(jié)果中,隨后這個簡單的DS就變成非活躍狀態(tài)。在運(yùn)行時刻一個組合的DS(如圖5所示)變?yōu)榛钴S(或非活躍)狀態(tài)的過程如下
            當(dāng)一個組合的DS變成活躍狀態(tài)時,它所有的階段機(jī)和靜態(tài)的并行單元都會變成活躍狀態(tài); 當(dāng)一個并行單元變成活躍狀態(tài)時,它的并行子DS會變成活躍狀態(tài),而且這個并行單元的模態(tài)會被設(shè)成“活躍的”; 當(dāng)一個階段機(jī)變成活躍狀態(tài)時,它的階段之一(并包括該階段所包含的順序子DS)會變成活躍狀態(tài)。 階段機(jī)中最先成為活躍狀態(tài)的階段是根據(jù)以下方 法加以選定的如果階段機(jī)中只有一個階段,這個階段會被選為當(dāng)前階段,并成為活躍狀態(tài)。否則這些階段之一必須是設(shè)定為初始階段。在一個階段機(jī)變成活躍狀態(tài)時會對初始階段的這些初始遷移的遷移條件進(jìn)行判斷。如果某一個遷移條件被滿足了,對應(yīng)的目標(biāo)階段會被選作為當(dāng)前階段,并成為活躍狀態(tài)。 當(dāng)一個順序的或者并行的子DS(它可以是簡單的或者組合的)成為活躍狀態(tài)時,前文針對簡單或組合DS的行為會遞歸性性地重復(fù)發(fā)生在子DS身上。 當(dāng)一個并行的子DS后來變成非活躍狀態(tài)時,它的模態(tài)會被設(shè)置為“非活躍的”; 當(dāng)一個順序的子DS后來變成非活躍狀態(tài)時,它的階段隨之也變成非活躍狀態(tài),同時這個階段的遷移條件也會被評估。如果有一個遷移條件判斷為“真”,相應(yīng)的目標(biāo)階段(可以是空階段)會變成活躍狀態(tài),而且當(dāng)前階段會指向這個目標(biāo)階段。如果沒有遷移條件判斷為“真”,會默認(rèn)地把當(dāng)前階段指向默認(rèn)的空階段。 當(dāng)一個階段機(jī)的當(dāng)前階段指向一個空階段時,整個階段機(jī)會變?yōu)榉腔钴S狀態(tài)。 任何時候,當(dāng)任何一個階段機(jī)或并行單元變成非活躍狀態(tài)時,它的組合DS的結(jié)束情況集將會被評估。如果顯式地定義了一個包含結(jié)束條件和結(jié)束代碼的集合(如圖6所示),則任何時候當(dāng)一個結(jié)束條件判斷為“真”時,對應(yīng)的結(jié)束代碼就會被記錄在結(jié)果中,然后組合DS會變成非活躍狀態(tài)。如果定義了一個結(jié)束函數(shù),它會測試每一個結(jié)束情況,如果有任何一個結(jié)束情況被滿足,一個對應(yīng)的結(jié)束代碼就會被記錄在結(jié)果中,然后這個組合DS就會變成非活躍狀態(tài)。否則,這個組合DS會繼續(xù)保持活躍狀態(tài)。 當(dāng)一個組合DS變成非活躍狀態(tài)時,它所有的階段機(jī)(包括它們處于活躍狀態(tài)的順序子DS)以及并行單元(包括它們的并行子DS)都會變成非活躍狀態(tài)。重復(fù)性的行為可以用重復(fù)性的階段來描述。一個重復(fù)性的階段是一個階段,它的某一個遷移會把它自己作為遷移的目標(biāo)階段。在本發(fā)明中支持遞歸性的(recursive)DS。一個遞歸性的DS有一個或多個子DS具有和遞歸性DS相同的類型,或者與遞歸性DS的直接或間接父DS有相同的類型。有了遞歸性的DS,一個相同的行為會在越來越小的范圍內(nèi)重復(fù)。一般情況下,當(dāng)選擇不再進(jìn)一步生成新的遞歸性子DS時,遞歸就會被終止。用DS來進(jìn)行行為建模的優(yōu)點在于· DS的組合結(jié)構(gòu)直接反映了我們所生活的世界是由時間維度和空間維度所構(gòu)成的。 從時間維度和空間維度來觀察東西對人類是一種很自然的事。它較于現(xiàn)有的其他行為建模語言所定義的節(jié)點和鏈接賦予了更重要的含義。因此DS模型更易于學(xué)習(xí)和理解。
            通過控制各種子DS變成活躍狀態(tài)和非活躍狀態(tài),一個DS的行為可以隨著時間非常有序地演進(jìn); 由若干結(jié)束條件與結(jié)束代碼構(gòu)成的結(jié)束情況集為控制一個組合DS什么時候應(yīng)該結(jié)束提供了一種強(qiáng)大而靈活的機(jī)制; 和許多采用分叉節(jié)點和匯合節(jié)點的現(xiàn)有技術(shù)不同的是,一個組合的DS呈現(xiàn)出來的塊狀結(jié)構(gòu)組織為它的所有組件定義了一個清晰的生命周期。 因為每個子DS都可以是組合的,所以DS模型支持以遞歸的方式不斷細(xì)化對系統(tǒng)行為的描述。 通過重復(fù)階段和動態(tài)的并行子DS還可以描述重復(fù)的行為和動態(tài)的行為;特殊的 DS Ext-DS, PS,Int-DS盡管DS是一個描述動態(tài)行為的強(qiáng)有力的工具,但為了充分描述一個分布式環(huán)境 中與多個對端系統(tǒng)交流的應(yīng)用系統(tǒng)的行為,我們還需要使用三種DS的特例。第一種是外部DS(Ext-DS),用于描述一個應(yīng)用系統(tǒng)必須處理的外部活動,包括向內(nèi)的消息和事件。第二種是內(nèi)部DS (Int-DS),用于描述一個應(yīng)用系統(tǒng)為了完成某些工作要執(zhí)行的內(nèi)部活動。第三種是把Ext-DS和Int-DS集成在一起的自主系統(tǒng)(PS),用于描述一個應(yīng)用系統(tǒng)的反應(yīng)式行為和自主行為。外部DS (Ext-DS)一個Ext-DS是用來定義一個PS在執(zhí)行內(nèi)部動作之前所等待的外部事件。Ext-DS是DS的一個特例,它可以是簡單的或者組合的。作為一個簡單DS的特例,一個簡單的Ext-DS(如圖9所示)也有一個行為和一個結(jié)果。它的行為就是一個事件類型。而事件類型是用來描述一個PS可能接收的信號、消息或者事件的類型。一個事件類型可以下列語言之一來描述1) 一種程序語言,比如C和JAVA ;2) 一種數(shù)據(jù)標(biāo)記語言,比如ASN. I (Abstract Syntax Notation One) ;3) 一種基于 XML 的語言,或者 4) 一種圖形語言。在運(yùn)行時刻一個簡單的Ext-DS變?yōu)榛钴S(或非活躍)狀態(tài)的過程如下 當(dāng)一個簡單的Ext-DS變成活躍狀態(tài)時,它的事件類型也變成活躍狀態(tài)。 如果隨后這個簡單的Ext-DS收到了一個和它的事件類型相符的消息,那么這個消息就會被保存下來備以后使用,然后這個簡單的Ext-DS就會變成非活躍狀態(tài)。否則,如果這個消息和Ext-DS的事件類型不相符,它將被拋棄掉,而這個簡單的Ext-DS會繼續(xù)保持活躍狀態(tài)。一個組合的Ext-DS和一個組合的DS相似(如圖5所示),只是子DS換成了子Ext-DS而已。所有這些子Ext-DS(不論是順序的還是并行的)都可以是簡單的或者組合的。因為一個組合的Ext-DS是組合DS的一個特例,前文關(guān)于一個組合的DS變成活躍(或非活躍)狀態(tài)的過程同樣適用于一個組合的Ext-DS。只需將文字中的DS替換成Ext-DS就可以了。當(dāng)一個簡單PS在運(yùn)行時刻收到一個向內(nèi)的事件時,它會調(diào)用函數(shù)“檢查事件O”去檢查這個事件是否是它的Ext-DS中定義的類型相符。這個檢查事件O函數(shù)返回下列值之一 不匹配,這表示事件類型不相符
            部分匹配,這表示事件類型相符,這個向內(nèi)的事件已被保存起來供以后處理,但是Ext-DS尚未結(jié)束,因為Ext-DS還在等待更多的事件;或者 完全匹配,這表示事件類型相符,這個向內(nèi)的事件已被保存起來供以后處理,而且Ext-DS已經(jīng)結(jié)束。下面用偽代碼提供了一個處于活躍狀態(tài)的Ext-DS的運(yùn)行時刻事件檢查函數(shù)的范例。其中參數(shù)“Ext-DS”是用來描述待接收的向內(nèi)的外部事件的外部DS,而參數(shù)“事件”是待檢查的向內(nèi)的事件。請注意,方括號“ □”之間的內(nèi)容是注釋。檢查事件(Ext-DS,事件){如果Ext-DS是簡單的,檢查收到的事件的類型和Ext-DS的事件類型是否相同;如果是“否”,返回“不匹配”;否則[事件類型是正確的]保存這個事件;返回“完全匹配”;否則[Ext-DS是組合的],[檢查全部階段機(jī)]對每一個“當(dāng)前階段”不是空的階段機(jī),執(zhí)行以下步驟為順序的子Ext-DS,遞歸地調(diào)用檢查事件O函數(shù);如果它返回“部分匹配”,即返回“部分匹配”否則,如果它返回“完全匹配”,逐個檢查每一個遷移;如果任何一個遷移條件是“真”,把當(dāng)前階段指向遷移的目標(biāo)階段;;否則[如果沒有一個遷移條件為“真”],把當(dāng)前階段的取值設(shè)為默認(rèn)的空階段;如果當(dāng)前階段不是空階段,返回“部分匹配”;否則[當(dāng)前階段是空階段],檢查結(jié)束情況集;如果有任何結(jié)束情況得到滿足,把結(jié)束代碼記錄在結(jié)果中;返回“完全匹配”;否則[沒有結(jié)束情況被滿足],返回“部分匹配”;否則[返回“不匹配”],去檢查下一個階段機(jī);[如果執(zhí)行到這里,所有階段機(jī)都是“不匹配”,去檢查所有的并行單元]為每一個活躍狀態(tài)的并行單元,執(zhí)行以下步驟,對于并行子Ext-DS遞歸地調(diào)用檢查事件O函數(shù);
            如果它返回“部分匹配”,返回“部分匹配”;否則,如果它返回“完全匹配”,設(shè)置模狀為“非活躍的”;檢查結(jié)束情況集;如果有任何結(jié)束情況被滿足,在結(jié)果中記錄結(jié)束代碼; 返回“完全匹配”;否則[沒有結(jié)束情況被滿足],返回“部分匹配”;否則[返“不匹配”],去檢查下一個并行單元;[如果執(zhí)行到這里,這個事件和所有順序的Ext-DS和并行的子Ext-DS都不相符,]返回“不匹配”;}為了清楚起見,這個事件檢查函數(shù)也會用本發(fā)明后面將介紹的圖形語言表示在圖12中。內(nèi)部DS(Int-DS)一旦一個簡單的PS被一個與Ext-DS完全匹配的事件所觸發(fā),對應(yīng)的Int-DS就會被執(zhí)行。因此,一個Int-DS可以看作一個PS的行為中主動的那一部分行為,或者PS的主動式行為。一個Int-DS是DS的一個特例,它可以是簡單的或者組合的。作為一個簡單DS的特例,一個簡單的Int-DS(如圖11所示)也有一個行為和一個結(jié)果。這個行為就是一個動作。在本發(fā)明中的動作是指不能再進(jìn)一步分解的最基本的行為單元。一個動作可以是讀寫一段信息,也可以是查找或匹配信息,還可以是讀Ext-DS所保存的事件,或者是構(gòu)建、發(fā)送事件,或者是生成、銷毀DS實例,或者是調(diào)用由其它系統(tǒng)執(zhí)行的復(fù)雜動作。一個動作可以用面向函數(shù)程序語言(比如C語言)的一個函數(shù)來實現(xiàn),也可以用面向?qū)ο蟪绦蛘Z言(比如JAVA語言)的一個方法來實現(xiàn),或者用腳本語言(比如Linux的Shell語言)的一個腳本來實現(xiàn)。一個動作也可以用腳本語言、程序語言的一個代碼片斷來實現(xiàn),或者是用字節(jié)代碼(比如Java的字節(jié)代碼),甚至包括匯編語言來實現(xiàn)。它的執(zhí)行成果則可以記錄在結(jié)果中。在運(yùn)行時刻一個簡單的Int-DS變成活躍(或非活躍)狀態(tài)的過程描述如下 當(dāng)一個簡單的Int-DS變成活躍狀態(tài)時,它的動作也變成活躍狀態(tài),并且被執(zhí)行; 在它的動作被執(zhí)行完以后,這個簡單的Int-DS隨之變成非活躍狀態(tài)。一個的組合Int-DS和一個組合的DS相似(如圖5所示),只是把子DS換成子Int-DS而已。這些子Int-DS(不管是順序的還是并行的)都可以是簡單的或者是組合的。因為一個組合的Int-DS是一個組合DS的特例,前文關(guān)于一個組合的DS變成活躍(或非活躍)狀態(tài)的過程同樣適用于一個組合的Int-DS。只需將文字中的DS替換成Int-DS就可以了。當(dāng)一個簡單PS在運(yùn)行時刻收到一個向內(nèi)的事件時,它會調(diào)用檢查事件函數(shù)去檢查這個事件是否是它的Ext-DS中所定義的類型。如果返回值是“完全匹配”,這個簡單PS會調(diào)用動作執(zhí)行函數(shù)“動作O”去執(zhí)行它的Int-DS中所定義的內(nèi)部活動?!皠幼鱋”函數(shù)返回下列值之一 錯誤,這表示發(fā)生了一個錯誤;或者·正確,這表示內(nèi)部活動已經(jīng)被成功執(zhí)行下面用偽代碼描述了一個處于活躍狀態(tài)的Int-DS的動作執(zhí)行函數(shù)的范例,其中參數(shù)” Int-DS “是定義要執(zhí)行的內(nèi)部活動的內(nèi)部DS 動作(Int-DS){如果Int-DS是簡單的,執(zhí)行Int-DS的動作來對保存的事件進(jìn)行處理;如果檢測到錯誤,返回“錯誤”;·否則,返回“正確”;否則[Int-DS是組合的],[檢查全部階段機(jī)]為每一個當(dāng)前階段不是空階段的階段機(jī),執(zhí)行以下步驟為順序的子Int-DS遞歸地調(diào)用動作O函數(shù);如果子Int-DS返回“錯誤”,返回“錯誤”;否則,逐個檢查每一個遷移;如果有任何一個遷移條件是“真”,把當(dāng)前階段指向遷移的目標(biāo)階段;否則,把當(dāng)前階段指向默認(rèn)的空階段;如果當(dāng)前階段不是空階段,對新的“當(dāng)前階段”重復(fù)這個過程;否則,檢查結(jié)束情況集;如果任何結(jié)束情況被滿足,把結(jié)束代碼記錄到結(jié)果中;返回“正確”;否則,去檢查下一個階段機(jī);[檢查所有的并行單元]為每一個活躍狀態(tài)的并行單元執(zhí)行以下步驟,對并行子Int-DS遞歸地調(diào)用動作O函數(shù);如果并行單元返回“錯誤”,則返回“錯誤”;否則,設(shè)置模態(tài)為“非活躍的”;檢查結(jié)束情況集;如果有任何結(jié)束情況被滿足,把結(jié)束代碼記錄到結(jié)果中;返回“正確”;否則,去檢查下一個并行單元;}為了清楚起見,這個動作函數(shù)也會用本發(fā)明在后面將介紹的圖形語言表示在圖14中。自主系統(tǒng)(PS)一個在外部交流或外部事件觸發(fā)下能做出反應(yīng)式行為的應(yīng)用系統(tǒng)可以用一個自主系統(tǒng)(即Proactive System,簡稱PS)來定義。一個PS是一個DS的特例,它可以是簡單的或者組合的。作為一個簡單的DS的特例,一個簡單的PS也有一個行為和一個結(jié)果。這個行為包括一個外部DS(Ext-DS)以及后面跟著的一個內(nèi)部DS(Int-DS)。Ext-DS描述了要發(fā)生的外部事件,而Int-DS描述了為響應(yīng)所發(fā)生的Ext-DS中定義的外部事件而執(zhí)行的內(nèi)部活動。Ext-DS和Int-DS都可以是簡單的或組合的。結(jié)果則可以被Int-DS用來記錄動作執(zhí)行的成果。
            在運(yùn)行時刻一個簡單的PS變成活躍(或非活躍)狀態(tài)的過程描述如下 當(dāng)一個簡單的PS變成活躍狀態(tài)時,它的Ext-DS也變成活躍狀態(tài);·這個簡單PS的Ext-DS隨后接收到一個完全匹配的事件(如前文所述),這個簡單PS的Int-DS就變成活躍狀態(tài),并且會被執(zhí)行; 當(dāng)它的Int-DS被執(zhí)行完以后,這個簡單的PS也隨之變成非活躍狀態(tài);一個組合的PS和一個組合的DS相似(如圖5所示),只是子DS被換成子PS而已。這些子PS(不管是順序的還是并行的)都可以是簡單的或者組合的。因為一個組合的PS是一個組合DS的特例,前文關(guān)于一個組合DS變成活躍(或非活躍)狀態(tài)的過程同樣適用于一個組合的PS。只需將文字中的DS替換成PS就可以了。當(dāng)一個PS在運(yùn)行時收到一個向內(nèi)的事件時,它會調(diào)用反應(yīng)O函數(shù)去處理這個事件。反應(yīng)函數(shù)返回下列值之一籲未做任何事情,這表示沒有執(zhí)行任何內(nèi)部活動; 未作部分完成,這表不內(nèi)部活動的一部分被完成了,但是PS尚未結(jié)束;或者 完成,這表示內(nèi)部活動被全部完成,而且PS已經(jīng)結(jié)束。下面用偽代碼描述了一個處于活躍狀態(tài)的PS在收到事件后的反應(yīng)函數(shù)的范例,其中參數(shù)“PS”是做出反應(yīng)的PS,參數(shù)“事件”是待處理的事件反應(yīng)(PS,事件){如果PS是簡單的,用事件作為參數(shù),為PS的Ext-DS來調(diào)用檢查事件O函數(shù);如果返回結(jié)果是“不匹配”,返回“未做任何事情”;否則如果返回結(jié)果是“部分匹配”,返回“部分完成”;否則[返回結(jié)果是“完全匹配”],調(diào)用動作O函數(shù),執(zhí)行Int-DS ;返回“完成”;否則[PS是組合的],[檢查全部階段機(jī)]為每一個當(dāng)前階段不是空階段的階段機(jī)執(zhí)行以下步驟對于順序的子PS遞歸地調(diào)用反應(yīng)O函數(shù);如果順序的子PS返回“部分完成“,返回“部分完成”;
            否則如果它返回“完成”,檢查每一個遷移;如果有任何一個遷移條件為“真”,把當(dāng)前階段指向遷移的目標(biāo)階段;否則[沒有遷移條件為真]把當(dāng)前階段設(shè)置為默認(rèn)的空階段;如果當(dāng)前階段不是空階段,返回“部分完成”;否則[當(dāng)前階段是空階段],檢查結(jié)束情況集;
            如果有任何結(jié)束情況被滿足,把結(jié)束代碼記錄在結(jié)果中;返回“完成”;否則[沒有結(jié)束情況被滿足],返回“部分完成”;否則[返回“未做任何事”],去檢查下一個階段機(jī);[如果執(zhí)行到這里,所有的階段機(jī)都是返回“未作任何事情”,去檢查所有的并行單元]為每一個活躍狀態(tài)的并行單元執(zhí)行以下步驟對于每一個并行子PS遞歸地調(diào)用反應(yīng)O函數(shù)如果并行子PS返回“部分完成”,則返回“部分完成”;否則如果它返回“完成”,設(shè)置模態(tài)為“非活躍的”;檢查結(jié)束情況集;如果有任何結(jié)束情況被滿足,把結(jié)束代碼記錄在結(jié)果中;返回“完成”;否則[沒有結(jié)束情況被滿足],返回“部分完成”;否則[返回”未作任何事情”],去檢查下一個并行單元.[如果執(zhí)行到這里,未做任何事情]返回“未做任何事情”;}為了清楚起見,上述反應(yīng)函數(shù)也會用本發(fā)明后面將介紹的圖形語言表示在圖13中。在不同的步驟中使用Ext-DS,PS和Int-DS這些特殊的DS,比用一個通用性的DS有很多額外的好處^Ext-DS,PS和Int-DS提供了多種層面的抽象方法,使得定義分布式環(huán)境中的復(fù)雜系統(tǒng)行為更加方便,因為它們中的每一個都以一種特殊的方式幫助設(shè)計者專注在系統(tǒng)行為的某一個方面?!?PS是對基于狀態(tài)機(jī)的傳統(tǒng)技術(shù)(比如狀態(tài)圖技術(shù))來做擴(kuò)展和改進(jìn)的。而Int-DS是對基于流程圖的傳統(tǒng)技術(shù)(比如BPMN技術(shù)和UML2. O活動圖技術(shù))來做擴(kuò)展和改進(jìn)的。
            因為Ext-DS,PS和Int-DS中的每一個都是同一個DS模型的特例,所以在設(shè)計的每個層面上都有很強(qiáng)的一致性,使得本發(fā)明更加容易學(xué)而且容易懂。 正如在本發(fā)明后面會展示的,因為這種一致性,可以系統(tǒng)化地、機(jī)械地從一個用DS所定義的通訊協(xié)議來推導(dǎo)出來一個用PS所定義的反應(yīng)式行為。因此本發(fā)明為解決如何保證通訊協(xié)議以及參與各方彼此一致的難題提供了一種解決方案。DS, Ext-DS, PS 和 Int-DS 的簡化模型到目前為止,我們已經(jīng)描述了 DS的基本模型以及它 的一些特例,比如Ext-DS,PS和Int-DS。在本發(fā)明中它們都被稱為DS模型。這個基本的DS模型(以后我們稱之為“模型O”)可以通過用并行階段機(jī)來模擬并行單元進(jìn)而簡化。這個簡化后的模型我們將稱之為“模型I”;一個模型O的組合DS中的一個并行單元可以用一個只有一個階段及一個空遷移的階段機(jī)來模擬。這個用來模擬并行單元的階段機(jī),我們在本發(fā)明中稱之為“并行階段機(jī)”。一個并行階段機(jī)的階段只有一個子DS。它的空遷移可以由下面幾種方法之一來實現(xiàn) 不定義任何遷移,如圖15A所示; 只有一個標(biāo)識為空的遷移; 只有一個遷移,而它的遷移條件設(shè)置為真,它的目標(biāo)階段指向一個空階段1502,如圖15B所示。這個并行階段機(jī)還增加了一個組件“靜態(tài)實例數(shù)”(可省略的)1604。和并行單元的靜態(tài)實例數(shù)類似,這個階段機(jī)的靜態(tài)實例數(shù)用來指明當(dāng)包含階段機(jī)的DS生成時,要生成多少個這種階段機(jī)的靜態(tài)實例。如果沒有設(shè)定靜態(tài)實例數(shù),靜態(tài)實例數(shù)的取值默認(rèn)為1,因此當(dāng)包含它的組合DS生成時,總會生成一個階段機(jī)的實例。一個并行階段機(jī)的子DS的行為是和該階段機(jī)所模擬的并行單元的并行子DS的行為相同。在本發(fā)明中,用術(shù)語“順序的階段機(jī)”來表示一個沒有受上述并行階段機(jī)限制的正常的階段機(jī)。一個順序階段機(jī)的靜態(tài)實例數(shù)通常是被設(shè)置為“1”,因此當(dāng)包含它的組合DS生成時,會生成一個順序階段機(jī)的實例。在用了并行階段機(jī)來模擬組合DS中的并行單元后,一個模型I的組合DS就只需要有若干個階段機(jī)1601,一個結(jié)束情況集1602以及一個結(jié)果1603。其中的這些階段機(jī)有些是順序的,有些則是并行的(如圖16所示)。因為每一個并行單元都是用一個階段機(jī)來模擬,所以一個組合的DS變成活躍(或非活躍)狀態(tài)的過程對模型O和模型I都是一樣的,只是模型I的組合DS不再有任何并行單元,所以和并行單元有關(guān)的那部份代碼不會再被執(zhí)行。同樣地,一個組合的Ext-DS,組合的PS或組合的Int-DS也是一個模型I的組合DS的特例。因為每一個并行單元都被替換成一個并行階段機(jī)了,這些模型I的DS組件變成活躍(或非活躍)狀態(tài)的過程和模型O的相同,只是和并行單元有關(guān)的那部分代碼不會再執(zhí)行。類似的,前文描述的一個活躍的Ext-DS的事件檢查函數(shù),一個活躍的Int-DS的動作函數(shù)以及一個活躍的PS的反應(yīng)函數(shù)對模型I還是同樣適用。圖形化表示法本發(fā)明的一種實施例是用人可以讀懂的一種圖形語言來表示PS,Ext-DS, Int-DS或者任何其他由DS導(dǎo)出的組件(我們將把這些都稱為“DS組件”)。作為一個這種圖形語言的例子,一個DS或子DS可以用一個包含框,或者帶標(biāo)簽的包含框表示。這種包含框可以是各種形狀的,比如多邊形,圓形或者橢圓形等。一個包含若干子DS(可以是順序的或者并行的)的父DS可以用一個大框(代表父DS)里包含若干個小框(代表子DS)來表示。如果一個DS可以有多個實例,這個框就會帶有陰影。另外,一個初始階段或空階段可以用組合DS框邊上一個小框或者一個符號來表示。圖17描述了用一種圖形語言表示的組合DS的一個例子組合DS “DS0” 1700有三個順序的子DS (它們是子DS “s0” 1701,“si” 1702,和“s2” 1703),3個并行的簡單子DS (它們是子DS “p0” 1706,“p3” 1709和“p5,,1708)以及兩個并行的組合子DS (它們是子DS “pi” 1705和“p2” 1708)。請注意,子DS “p2” 1708和“p3” 1709帶有陰影,這表示它們在運(yùn)行時刻可以有多個實例。
            在本例中,一個簡單的DS用一個內(nèi)部帶有名字或者一個簡單的行為描述的長方框來表示。圖17中的子DS “p0” 1706和“p5” 1704就是兩個簡單DS的例子。一個遷移是用一根鏈接或者箭頭(我們稱之為遷移箭頭)來表示,箭頭指向的是遷移的目標(biāo)階段,而遷移條件則顯示在靠近箭頭旁作為遷移的一個標(biāo)簽。圖17中有一個從子DS “s2” 1703指向子DS “sO” 1701(目標(biāo)階段)的用“遷移條件5”作為標(biāo)簽的遷移箭頭。每一個具有一個或多個遷移箭頭(向內(nèi)或向外的)的子DS是一個順序的子DS,而沒有遷移箭頭的子DS則是一個并行的子DS。一個生成箭頭可以用來指向一個動態(tài)生成的動態(tài)組件。盡管一個生成箭頭在圖17中是用一個粗的虛線箭頭1707作為圖形語言的范例,它也可以用其他種類的鏈接表示,只要這種鏈接能夠和遷移箭頭區(qū)別開。正如圖17所示,子DS“p0”1706可以動態(tài)地生成多個子DS “p2,,1708的實例,而且子DS “p2” 1708可以動態(tài)地生成子DS “p3” 1709的多個實例。一個帶有向內(nèi)的生成箭頭的并行子DS,比如圖17中的子DS”p2”1708和“p3”1709,是一個動態(tài)的并行子DS,它的并行單元中的靜態(tài)實例數(shù)會被設(shè)置成O。而不帶有向內(nèi)的生成箭頭的并行子DS,比如圖17中的子DS "p0"1706和“pl”1705,則是靜態(tài)的并行子DS,相應(yīng)的靜態(tài)實例數(shù)會被設(shè)置成I,表示當(dāng)”DS O" 1700生成時,只會生成一個子DS “ρ0” 1706和“pi” 1705的實例。請注意,在圖17中的DS O 1700沒有顯式地定義任何結(jié)束情況。正如前面所講,默認(rèn)的結(jié)束情況是當(dāng)DSO 1700的所有子DS結(jié)束時,DSO才結(jié)束。圖18表示的是如何用可視化的方式顯式地表示初始階段,空階段,結(jié)束條件和結(jié)束點。在圖18中,初始階段1801用左邊框上的一個小框代表,它有兩個遷移,其中一個指向包含子DS “s0”1802的階段,另一個指向包含子DS “sl,,1803的階段。子DS “s0”1802有一個遷移指向子DS “s2” 1804,這個遷移的條件永遠(yuǎn)為“真”。子DS “s2” 1804有3個遷移,其中一個標(biāo)簽為“遷移條件2”的遷移指向空階段1806,標(biāo)簽為“遷移條件3 “的遷移指向它自己,而標(biāo)簽為”遷移條件4 “的遷移則指回到包含子DS “s0”1802的階段。DSO還包含一個并行的子DS “pi” 1805和兩個結(jié)束點。每個結(jié)束點代表了一個結(jié)束情況來指明在哪種情況下一個組合DS會結(jié)束。一個結(jié)束情況有一對結(jié)束條件和結(jié)束代碼。一個結(jié)束點可以用組合DS的包含框的邊框內(nèi)或者邊框上的一個符號或者小框來表示。作為一個例子,在圖18中每一個結(jié)束點用邊框上的一個小的黑框1807表示,并且用相關(guān)的結(jié)束條件作為小黑框的標(biāo)簽。一個結(jié)束條件可以用一段文字,一個邏輯表達(dá)式或者一個數(shù)學(xué)公式來描述在哪種情況下一個組合DS會結(jié)束。結(jié)束條件“子DS Pl已經(jīng)結(jié)束”就是一個文字條件的例子,表示當(dāng)子DS Pl結(jié)束后,組合DS “DS 0”1800就會結(jié)束。結(jié)束條件“□”是一個邏輯表達(dá)式的例子,表示當(dāng)所有組件都結(jié)束后,“DS0” 1800才會結(jié)束。結(jié)束條件“年齡< 10”是一個數(shù)學(xué)公式的例子,表示當(dāng)“年齡”取值小于10的時候,“DS0” 1800就會結(jié)束。為了簡化行為模型和對應(yīng)的圖形語言,下面定義了一些默認(rèn)情況的范例· 一個永遠(yuǎn)為真的遷移條件可以被省略?!と绻粋€階段只有一個和初始階段相連的向內(nèi)的遷移,而且它的遷移條件永遠(yuǎn)為“真”,那么這個遷移可以被完全省略。·如果一個階段只有一個和空階段相連的向外遷移,而且它的遷移條件永遠(yuǎn)為 “真”,那么這個遷移也可以完全省略。圖19描述了一個用圖形語言表示的組合PS例子。在這個范例圖畫中,組合的”PS0” 1902包含兩個順序的子PS(即子PS “sO” 1903和子PS “si” 1904)、三個并行的子DS (即子PS “p0”1905,子PS “pl,,1906和子PS “p2”1911)和兩個結(jié)束條件分別為“結(jié)束條件O”和“結(jié)束條件I”的結(jié)束點1913和1915。一個簡單的PS 1906用一個包含它的Ext-DS組件1908和Int-DS組件1910的框表示。為了區(qū)分一個簡單PS的Ext-DS和Int-DS,在這兩個組件之間畫了一根分隔線(一根垂直線1909或者一根水平線1907)。子PS “p0” 1905和”pi” 1906就是兩個這樣的例子。兩個PS之間的交流可以用一個連接它們的雙向鏈接來表示(我們稱之為交流鏈接)。圖19表示的是組合“PS O” 1902和“PS1” 1900有交流,子PS “Si” 1904和子PS “p2” 1911有交流,子PS “p0” 1905和子PS “pi “1911有交流。在這個例子中,一個交流鏈接是用虛線表示的(圖19中的“協(xié)議O”就是這樣的一個例子)。然而,它也可以用其他種的鏈接來表示,只要它在視覺上能夠和一個遷移箭頭和生成箭頭區(qū)分開來。這些交流鏈接還可以加上一個或兩個箭頭(可省略的)來指明交流的方向。一個只發(fā)送一個方向的事件的簡單交流可以用只帶一個箭頭的虛線表示(圖19中的“協(xié)議2”就是這樣的一個例子)。一條兩端都有箭頭的交流鏈接表示有雙向的交流(圖19中的“協(xié)議I”就是這樣的一個例子)。一個交流鏈接還可以有一個標(biāo)簽或標(biāo)識符(可省略的)來指明這個交流所必須遵循的協(xié)議規(guī)范。圖19中的“協(xié)議0”,“協(xié)議I”和“協(xié)議2”就是這樣的標(biāo)簽。在本發(fā)明中,一個組合DS中的任何子DS都可以是簡單的或組合的。甚至一個簡單子PS中的Ext-DS或Int-DS也都可以是簡單的或者組合的。因此一個包含框可以有多個子包含框,而且這些子包含框中的任何一個又都可以包含多個子子包含框。這些子子包含框中有些是順序的,因此,它們之間連著遷移箭頭。而有些子子包含框是并行的,因此沒有與任何其他子子包含框相連。圖20表示了一個組合PS的例子“PS0”。組合PS“PSO”2000包含一個子PS“s0”2001,子PS“s0”又有一個組合的Ext-DS 2002和一個組合的Int_DS2006。組合的 Ext-DS 2002 還包含了兩個順序的 Ext-DS (即“Ext-DS s0”2003 和“Ext-DS sl”2004)及一個并行的Ext-DS“Ext-DS p0”2005。組合的Int-DS 2006包含兩個順序的Int_DS2007和2008,以及一個并行的Int-DS 2009。
            用圖形語言表示DS,Ext-DS,PS和Int-DS有以下好處(為了簡捷起見,這里用術(shù)語“系統(tǒng)”代表 DS,Ext-DS, PS 或 Int-DS)·能夠很清晰地同時展現(xiàn)一個組合系統(tǒng)內(nèi)的順序組件和并行組件。 包含框可以清晰地表明當(dāng)一個父系統(tǒng)變成非活躍狀態(tài)或者被銷毀時,它所有的組件都會變成非活躍狀態(tài)或者被銷毀。 結(jié)束點可以清楚地表明一個組合子系統(tǒng)的內(nèi)部操作會如何影響它的父系統(tǒng)改變當(dāng)前階段的方式。 一個組合系統(tǒng)里只有關(guān)鍵的單元才被畫出來。而階段機(jī),階段和并行單元都沒有畫在圖中,因為它們在圖中對人們理解系統(tǒng)的行為不是很重要。這樣做會極大地簡化了表明一個系統(tǒng)行為的圖形。· Ext-DS, PS和Int-DS圖形的一致性會讓人們更容易學(xué)習(xí)和理解一個復(fù)雜行為的描述。
            ·
            請注意,上文的描述只給出了一種描述DS,Ext-DS, PS, Int-DS及其組件的方法。然而根據(jù)在這里披露的技術(shù)和給出的指導(dǎo),一個本領(lǐng)域的技術(shù)人員可以很容易明白,只要保持以下關(guān)鍵點不變,可以用各種圖形表示方法來表示與本發(fā)明一致的機(jī)制 一個組合的DS用一個包含框表示,包含框里包含了它的組件,比如順序的子DS,并行的子DS,初始階段,空階段,結(jié)束點,遷移箭頭,生成箭頭以及交流鏈接等。 組合DS的包含框里的每一種組件必須要能夠在視覺上彼此區(qū)分; 一個簡單PS的包含框里包含一個Ext-DS組件和一個Int-DS組件,并且它們能在視覺上彼此區(qū)分;預(yù)定義的事件類型有些系統(tǒng)需要在PS —變成活躍狀態(tài)時就執(zhí)行某一個Int-DS的動作。本發(fā)明支持一個預(yù)定義的“開始”事件,每當(dāng)一個PS剛剛變成活躍狀態(tài)時,這個事件就會被分發(fā)給這個PS0圖21中的一個組合PS范例2100包含一個用“開始”事件作為其Ext-DS 2102的簡單的子PS2101。當(dāng)組合PS2100變成活躍狀態(tài)時,它所有的并行子PS也會變成活躍狀態(tài)。因此,與“開始”事件對應(yīng)的Int-DS會在組合PS 2100變成活躍狀態(tài)后立即被執(zhí)行。有些系統(tǒng)需要在PS變成非活躍狀態(tài)前一瞬間執(zhí)行某一個Int-DS的動作。本發(fā)明支持一個預(yù)定義的“結(jié)束”事件,每當(dāng)一個PS即將變成非活躍狀態(tài)時,這個事件就會被分發(fā)給這個PS。圖21中的一個組合PS范例2100包含一個把“結(jié)束”事件作為其Ext-DS 2105的簡單的子PS 2104。當(dāng)組合PS 2100變成非活躍狀態(tài)時,它所有的并行子PS也會變成非活躍狀態(tài)。因此,與“結(jié)束”事件對應(yīng)的Int-DS會在這個組合PS 2100變成非活躍狀態(tài)前一瞬間立即被執(zhí)行。預(yù)定義的“開始”和“結(jié)束”事件的好處在于· UML狀態(tài)圖需要提供額外的特殊機(jī)制才能實現(xiàn)一個狀態(tài)的開始動作和結(jié)束動作,而有了“開始”和“結(jié)束”事件類型,用同一個簡單的PS機(jī)制就可以用來實現(xiàn)同樣的功能。因此用戶在本發(fā)明中不需要學(xué)習(xí)額外的特殊機(jī)制。 在有些時候需要把某個特定的Int-DS與一個Ext-DS分離開來。比如,在根據(jù)協(xié)議推導(dǎo)參與者PS時(這一部分本發(fā)明后面會有進(jìn)一步描述),參與者PS最好能保持和協(xié)議同一樣的組合結(jié)構(gòu)。以圖39中的x-server的參與者PS為例,它應(yīng)該具有和圖38所示協(xié)議“協(xié)議O”一樣的組合結(jié)構(gòu)。然而,如果尚未定義的Ext-DS “?? ”3905并沒需要接收一個額外的向內(nèi)的事件,Int-DS “答復(fù)O” 3906就只得和Ext-DS “請求O” 3902綁定在一起,這樣就破壞了同樣的組合結(jié)構(gòu)(如圖22所示)。但是如果為尚未定義的Ext-DS “?? ”加上了一個“開始”事件,則同樣的組合結(jié)構(gòu)可以得到保持(如圖23所示)。實現(xiàn)中的問題一些DS,Ext-DS, PS和Int- DS的屬性會在運(yùn)行時刻頻繁改變,然而有些靜態(tài)的設(shè)計階段的屬性則在整個生命周期都不會變化。另外,同一種類型在運(yùn)行時也可以有多個實例。因此把這些類或類型結(jié)構(gòu)中的設(shè)計時屬性與實例結(jié)構(gòu)中的運(yùn)行時屬性分離開是有意義。在本專利的一種實施例中,一個簡單DS的實例結(jié)構(gòu)2402包含有一個指向它的類型結(jié)構(gòu)2400的指針或引用2403以及一個結(jié)果組件2404(如圖24所示)。一個簡單DS的類型結(jié)構(gòu)2400包含一個行為類型的組件2401。如圖24所示,可以有多個簡單DS的實例共享同一個簡單DS的類型。圖25用UML類圖來表示同一個簡單DS的類型結(jié)構(gòu)和實例結(jié)構(gòu)。在本專利的一種實施例中,一個簡單Ext-DS的實例結(jié)構(gòu)包含一個指向它的類型結(jié)構(gòu)的指針或弓I用以及一個結(jié)果組件(如圖26所示)。一個簡單Ext-DS的類型結(jié)構(gòu)包含一個事件類型的組件。如圖26所示,可以有多個簡單Ext-DS的實例共享同一個簡單Ext-DS的類型。圖27用UML類圖來表示同一個簡單Ext-DS的類型結(jié)構(gòu)和實例結(jié)構(gòu)。在本專利的一種實施例中,一個簡單PS的實例結(jié)構(gòu)包含一個指向它的類型結(jié)構(gòu)的指針或弓I用以及一個結(jié)果組件(如圖28所示)。一個簡單PS的類型結(jié)構(gòu)包含一個Ext-DS類型組件(它可以是簡單的或者組合的)和一個Int-DS類型組件(它可以是簡單的或者組合的)。如圖28所示,可以有多個簡單PS的實例共享同一個簡單PS的類型。圖29用UML類圖來表示同一個簡單PS的類型結(jié)構(gòu)和實例結(jié)構(gòu)。在本專利的一個實施例中,一個簡單Int-DS的實例結(jié)構(gòu)包含一個指向它的類型結(jié)構(gòu)的指針或引用和一個結(jié)果組件(如圖30所示)。一個簡單Int-DS的類型結(jié)構(gòu)包含一個動作類型組件,它可以是一段代碼,一個函數(shù)(對C語言這樣的面向函數(shù)程序語言而言)或者一個方法(對JAVA這樣的面向?qū)ο蟪绦蛘Z言而言),甚至可以是一個腳本(對LinuxShell這樣的腳本語言而言)。如圖30所示,可以有多個簡單Int-DS的實例共享同一個簡單Int-DS的類型。圖31用UML類圖來表示同一個簡單Int-DS的類型結(jié)構(gòu)和實例結(jié)構(gòu)。組合DS類型和實例如圖32A所示,模型I的組合DS的類型3200包含有若干個階段機(jī)類型3201,以及一個如圖32A所示的結(jié)束情況集3202或者一個如圖32B所示的結(jié)束函數(shù)3218。如果定義了一個結(jié)束條件集,那么它至少包含一個結(jié)束情況,而且每一個結(jié)束情況都包含一對結(jié)束條件和結(jié)束代碼,其中結(jié)束條件描述在何種情況下一個組合DS類型的實例會結(jié)束,而結(jié)束代碼則用來標(biāo)識對應(yīng)的結(jié)束條件。如果定義了一個結(jié)束函數(shù),這結(jié)束函數(shù)會返回一結(jié)束代碼以標(biāo)明在何種情況下一個組合DS類型的實例會結(jié)束。每個階段機(jī)類型有一個靜態(tài)實例數(shù)3203(可省略的)以及一個或多個階段類型3204。每個階段類型有一個子DS類型3205,以及零個或多個遷移3206。每個遷移有一個遷移條件3207和一個目標(biāo)階段3208。每個子DS類型可以是簡單DS類型或者組合DS類型。如果在一個階段機(jī)類型中定義了靜態(tài)實例數(shù),它定義了這個階段機(jī)類型的靜態(tài)實例個數(shù)。如果沒有定義靜態(tài)實例數(shù),這個階段機(jī)類型則默認(rèn)僅有一個靜態(tài)實例。請注意,每一個階段機(jī)類型都可以是順序的或者并行的階段機(jī)。如前文所述,一個并行的階段機(jī)類型只有一個階段類型,如圖15A和圖15B所示.一個模型I的組合DS的實例結(jié)構(gòu)3209有一個對它的DS類型結(jié)構(gòu)的引用3210,若干個階段機(jī)3211,以及一個結(jié)果3212。每個階段機(jī)有一個對它的階段機(jī)類型結(jié)構(gòu)的引用3213,若干個階段3214以及一個當(dāng)前階段3215。每個階段有一個對它的階段類型結(jié)構(gòu)的引用3216和一個子DS實例結(jié)構(gòu)3217。這個子DS實例可以是簡單的或者組合的。如果它是簡單的,如圖24中2402所示,那么它包含一個對它的簡單DS類型2400的引用2403,以及一個結(jié)果2404用于記錄執(zhí)行它的簡單DS類型的行為2401的成果。如果這個子DS實例是組合的,則它的結(jié)構(gòu)和圖中3209 —樣。請注意,圖32A,32B及32C中實例結(jié)構(gòu)的陰影表示可以有多個組合DS的實例來共享同一個組合DS的類型。圖35是用UML類圖表示的同一個組合DS的類型結(jié)構(gòu)和實例結(jié)構(gòu)。作為一個模型I的組合DS的一個特例,一個模型I的組合Ext-DS也可以類似地分為類型結(jié)構(gòu)和實例結(jié)構(gòu)兩部分。在用“Ext-DS”替代每一個“DS”以后,圖32A或32B中所示的組合DS的類型結(jié)構(gòu)、實例結(jié)構(gòu)即變成一個模型I的組合Ext-DS的類型結(jié)構(gòu)、實例結(jié)構(gòu)。作為一個模型I的組合DS的特例,一個模型I的組合PS也可以類似地分為類型 結(jié)構(gòu)和實例結(jié)構(gòu)兩部分。因為一個模型I的組合PS的類型結(jié)構(gòu)和組合DS的類型結(jié)構(gòu)完全相同,在用“PS”替代每一個“DS”以后,圖32A或32B中所示的即變成一個模型I的組合PS的類型。請注意,一個階段類型中的子PS類型可以是簡單的或者組合的。圖32C表示一個包含一個簡單PS類型3220的組合PS類型3219。這個簡單的PS類型包括一個Ext-DS類型用于描述待發(fā)生的外部事件和一個Int-DS類型用于描述為響應(yīng)所發(fā)生的所述外部事件而執(zhí)行的內(nèi)部動作。在用“PS”替代每一個“DS”以后,圖32A或32B所示的組合DS的實例即變成一個模型I的組合PS的實例。請注意,一個階段中的子PS可以是簡單的或者組合的。如圖32C中表示,一個組合PS實例3221包含了一個簡單PS實例3222。這個簡單的PS實例包括了一個Ext-DS實例和一個Int-DS實例。圖36表示了如何用一個包含了一個默認(rèn)結(jié)束情況集和一個階段機(jī)類型“0”3601的組合PS的類型結(jié)構(gòu)3600來定義圖23中的“x-server”參與者PS類型。階段機(jī)類型“O”有一個靜態(tài)實例數(shù),和三個階段類型。它們是“初始” 3615,“O” 3602和“I” 3605。它的靜態(tài)實例數(shù)取值為1,表明當(dāng)這個組合PS生成時,會生成一個這種類型階段機(jī)的實例。階段類型“初始”3615是一個帶有遷移3616的初始階段。遷移3616的遷移條件3617永遠(yuǎn)為真,它的目標(biāo)階段是類型“O”的階段3618。請注意,圖36中沒有畫出空的順序子DS。階段類型“O” 3602有一個遷移3603和一個子PS類型3604。而子PS類型3604以“請求O”作為它的Ext-DS類型,以“?? ”作為它的Int-DS類型。階段類型“I” 3605把一個空階段作為它的目標(biāo)階段3606,并且在它的子Ext-DS類型3607中定義了一個預(yù)定義的“開始”事件類型。圖36還表示了一個“X-server”參與者PS類型的實例3608。這個實例有一個結(jié)果,一個指向它的類型3600的引用3609,和一個階段機(jī)“O”3610。階段機(jī)“O” 3610包含有一個指向它的階段機(jī)類型“0”3601的引用,一個當(dāng)前階段以及兩個階段,即階段“0”3611和階段“1”3613。階段“O”有一個指向它的階段類型“0”3602的引用以及一個子PS 3612。子PS 3612包含了一個指向它的PS類型3604的引用及一個結(jié)果。同樣地,作為一個模型I的組合DS的特例,一個模型I的組合Int-DS也可以類似地分為類型結(jié)構(gòu)和實例結(jié)構(gòu)兩部分。在用“Int-DS”替代每一個“DS”以后,圖32A或圖32B所示的組合DS的類型結(jié)構(gòu)、實例結(jié)構(gòu)即變成一個模型I的組合Int-DS的類型結(jié)構(gòu)、實例結(jié)構(gòu)。盡管把類型信息從實例信息中抽象 出來了,但只要在運(yùn)行時刻能夠訪問到這些類型信息和實例信息,在前文所描述的那些執(zhí)行函數(shù)都還是可以照用的,包括一個處于活躍狀態(tài)的Ext-DS的事件檢查函數(shù),一個處于活躍狀態(tài)的PS的反應(yīng)函數(shù),以及一個處于活躍狀態(tài)的Int-DS的動作執(zhí)行函數(shù)。盡管把實例結(jié)構(gòu)與類型結(jié)構(gòu)清晰地分割開有它的好處,但具體實現(xiàn)時也可以選擇把二者聯(lián)合在一起或者按某種方式進(jìn)行混合。本發(fā)明并不會限制具體的實現(xiàn)方法。在本發(fā)明前面描述的那些執(zhí)行函數(shù)可能需要在執(zhí)行過程中保存一些臨時的中間數(shù)據(jù)。在本發(fā)明的一種實施例中,除了這些定義在實例結(jié)構(gòu)中的數(shù)據(jù)以外,一個DS組件的實例結(jié)構(gòu)中還可以加上一些本地使用的數(shù)據(jù)。本發(fā)明包括了對一個應(yīng)用軟件的整個開發(fā)生命周期都有用處的方法和組件。在本發(fā)明的一種實施例中,可以用一個設(shè)計工具來設(shè)計一個基于DS組件的應(yīng)用軟件,然后用代碼生成器來生成準(zhǔn)備在運(yùn)行平臺上執(zhí)行的機(jī)器可讀的二進(jìn)制代碼。如圖33所示,設(shè)計工具的產(chǎn)出是DS類型定義,而這個DS類型定義可以傳送到代碼生成器或者保存在存儲設(shè)備中供代碼生成器以后訪問。代碼生成器的產(chǎn)出是代表DS類型的一組二進(jìn)制代碼,這些二進(jìn)制代碼可以被一個運(yùn)行平臺裝載到內(nèi)存中去執(zhí)行。這個運(yùn)行平臺也可以提供一些為實現(xiàn)基本動作或已存在的Int-DS的所需要的二進(jìn)制代碼。這個設(shè)計工具可以支持圖形用戶界面(GUI)以便設(shè)計者用前面描述的圖形語言來定義DS組件。在設(shè)計流程結(jié)束后,設(shè)計工具會生成一組用戶定義的DS類型或者DS類的詳細(xì)說明,比如PS類型,Ext-DS類型和Int-DS類型。在設(shè)計階段,設(shè)計工具只會涉及類型信息而不需要涉及實例結(jié)構(gòu)。一個代碼生成器讀入這些保存在存儲設(shè)備上的DS類型詳細(xì)說明,然后生成代表DS類型的二進(jìn)制代碼。這個代碼生成器的輸出可以保存在存儲設(shè)備上,也可以直接傳送給運(yùn)行平臺去執(zhí)行。在執(zhí)行過程中,運(yùn)行平臺把這些代表DS類型的二進(jìn)制代碼裝載到內(nèi)存中,生成本發(fā)明中描述的實例結(jié)構(gòu)并引用它們的類型結(jié)構(gòu)。這些DS組件的實例是根據(jù)DS類型詳細(xì)說明中的信息來生成并進(jìn)行初始化的。這些DS組件也能夠根據(jù)本發(fā)明所描述的過程動態(tài)地變成活躍狀態(tài)和非活躍狀態(tài)以完成它們各自的功能。在本發(fā)明的一種實施例中,一個運(yùn)行平臺可以實現(xiàn)上面所述的動作執(zhí)行函數(shù)以便處理每一個用Int-DS類型來定義的組合Int-DS,而在另一種實施例中,每一個組合的Int-DS類型也可以被編譯成一個底層、而更高效的執(zhí)行代碼,然后再在一個運(yùn)行平臺上運(yùn)行。一種底層的代碼可以是能夠被虛擬機(jī)直接執(zhí)行的字節(jié)碼格式,比如可以被JAVA虛擬機(jī)執(zhí)行的JAVA字節(jié)碼。還有另一種底層的代碼可以是一種程序語言(比如C/JAVA)的目標(biāo)代碼。在這種情況下,可以先為每個組合Int-DS類型生成相應(yīng)的程序語言源代碼,然后再編譯成目標(biāo)代碼。本發(fā)明中描述的類型結(jié)構(gòu)和實例結(jié)構(gòu)是抽象的結(jié)構(gòu),也就是說它們并不依賴于某一種具體的實現(xiàn)。當(dāng)實現(xiàn)在一個工具里,這些抽象的結(jié)構(gòu)需要映射到工具所實現(xiàn)的各種具體結(jié)構(gòu)上去。比如,這 些DS組件可以按照一種具體的外部格式保存在存儲設(shè)備中,而按照另一種具體的內(nèi)部格式裝載到內(nèi)存中進(jìn)行處理。這種具體的外部格式可以是下面任何一種1) 一種程序語言,比如C或者JAVA ;2) 一種數(shù)據(jù)描述語言,比如ASN. I (AbstractSyntax Notation One) ;3) 一種基于XML的語言;或者4) 一個可視化設(shè)計工具可以支持的任何表示方法。具體的內(nèi)部格式則可以是一種數(shù)據(jù)單元的形式,而這種數(shù)據(jù)單元可以用數(shù)據(jù)描述語言,或者用基于XML的語言,或者用腳本語言,或者用像C或JAVA這樣的程序語言,以及任何程序語言的二進(jìn)制代碼或機(jī)器碼來表示。實現(xiàn)本發(fā)明所描述的抽象結(jié)構(gòu)時,并沒有必要一字不變地照搬抽象結(jié)構(gòu)的定義。比如階段機(jī)類型或并行單元類型中的“靜態(tài)實例數(shù)”就可以采用一個標(biāo)識的形式來指明當(dāng)一個階段機(jī)的父組合DS生成時,是否會靜態(tài)地生成這個階段機(jī)的靜態(tài)實例。這個標(biāo)識甚至可以用另一個變量的特殊字位來實現(xiàn)。另外一個例子是一個DS實例結(jié)構(gòu)中的結(jié)果,它可以被實現(xiàn)為一個整數(shù),或者一個包含各種結(jié)果信息的復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。簡而言之,作為本發(fā)明的一種實施例的具體格式不需要完全參照本文所描述的抽象結(jié)構(gòu)。盡管本發(fā)明用PS,Ext_DS和Int-DS來描述一個與其他系統(tǒng)有交流的系統(tǒng)的行為,但并不需要同時都用到Ext-DS,PS和Int-DS,它們中的任何一個都可以被替換成使用現(xiàn)有的或者未來的行為描述技術(shù),腳本語言或程序語言所定義的組件。在本發(fā)明的另外一種實施例中,只在設(shè)計階段和代碼生成階段用到DS組件。如圖34所示,一個應(yīng)用系統(tǒng)可以基于DS組件來設(shè)計,然而一個代碼生成器可以將輸出的應(yīng)用系統(tǒng)的DS類型用來為另一個不支持DS組件的運(yùn)行平臺生成代碼。這個代碼生成器只要遵循某種合適的方式把本發(fā)明描述的DS類型結(jié)構(gòu)映射為運(yùn)行平臺所支持的另一種機(jī)制就行了。設(shè)計方法要設(shè)計一個分布式的、彼此有交流的多個應(yīng)用系統(tǒng)是一個有挑戰(zhàn)性的任務(wù)。如果我們分別地來設(shè)計兩個交流的應(yīng)用系統(tǒng),要確保它們的行為完全協(xié)調(diào)是比較困難的。一個更好的辦法是,先定義這些交流系統(tǒng)間的通訊協(xié)議,然后用一種系統(tǒng)化的、機(jī)械的方法把這些協(xié)議規(guī)范轉(zhuǎn)換成每一方的行為規(guī)范,從而避免了設(shè)計過程中產(chǎn)生不一致的可能性。在本發(fā)明的一種實施例中,一個應(yīng)用系統(tǒng)可以扮演多個角色,而且每個角色可能需要同時和多方進(jìn)行交流。為了清楚起見,本發(fā)明用術(shù)語“角色PS”來特指這個應(yīng)用系統(tǒng)所扮演的角色的行為。對每一個協(xié)議而言都會有兩個交流參與方。“參與者PS”這個術(shù)語指的是一個交流參與者的那部分行為。因此一個系統(tǒng)中一般有多個“角色PS”,而每個角色PS又會有多個參與者PS,其中每個參與者PS對應(yīng)了該角色所支持的一個協(xié)議。圖8所示例子中“系統(tǒng)O” 800和“系統(tǒng)I” 801,“系統(tǒng)2” 802及“系統(tǒng)3” 803之間有交流。“系統(tǒng)O”扮演兩個角色,即“角色PSO” 804和“角色PSI” 805。其中“角色PSO”會與“系統(tǒng)I”和“系統(tǒng)2”交流,而“角色PS1”會與“系統(tǒng)3”交流。
            為了說明這個理想的設(shè)計過程,我們使用了一個應(yīng)用系統(tǒng)的例子“X”。圖37表明系統(tǒng)“X”有一個角色PS同時與一個客戶端和一個服務(wù)器端有交流?!癤”內(nèi)部有一個參與者PS “x-server”通過協(xié)議“協(xié)議O”和客戶端進(jìn)行交流,而另一個參與者PS “X-client”通過協(xié)議“協(xié)議I”和服務(wù)器端進(jìn)行交流。遵循這個設(shè)計過程,我們首先定義協(xié)議“協(xié)議O”和“協(xié)議1”,然后我們把“協(xié)議O”轉(zhuǎn)換成參與者PS “X-server”,而把“協(xié)議I”轉(zhuǎn)換成參與者PS “X-client”。最后,我們把 “X-server” 和 “X-client” 合并成一個角色 PS “X”.。本發(fā)明最提倡的設(shè)計過程描述如下
            第一步,為一個角色可能與之交流的每一個對端系統(tǒng)都定義一個協(xié)議;這個協(xié)議是用一個DS類型來定義,它包含了該角色和一個對端系統(tǒng)間兩個方向上可能發(fā)生的所有外部事件。 第二步,遵循一個轉(zhuǎn)換方法,把第一步得到的每一個協(xié)議轉(zhuǎn)換成該角色的一個參與者PS ; 第三步,遵循一個合并方法,把第二步得到的同一個角色的所有參與者PS合并成一個角色PS ; 最后一步,通過增加一些內(nèi)部的交流和內(nèi)部的主動式行為,讓這個角色的行為規(guī)范變得完整。每一個這些內(nèi)部交流都用一個DS類型來定義,而每一個這些內(nèi)部主動式行為都用一個Int-DS類型來定義。 當(dāng)設(shè)計有變化時,可以重復(fù)以上這幾個步驟。在本發(fā)明中,一個協(xié)議是用一個DS類型來定義,它只描述了一個參與者要接收的向內(nèi)事件和要發(fā)送的向外事件(其他與收發(fā)事件無關(guān)的內(nèi)部活動都可以被忽略)。這個協(xié)議DS類型也可以被視為一個處于通訊雙方中間,能接收雙向事件的一個實體的行為。圖38描述了用DS類型定義的協(xié)議例子“協(xié)議O”和“協(xié)議I”?!皡f(xié)議O”規(guī)定客戶端首先向X-server發(fā)送一個“請求O”的事件,然后“X-server”回送一個“答復(fù)O”事件。“協(xié)議I”規(guī)定“X-client”首先向服務(wù)器發(fā)送一個“請求I”事件,然后服務(wù)器回送一個“答復(fù)I”事件。請注意,“一”和“一”符號是用來使得在圖中更容易看出事件流的方向。把一個描述協(xié)議的DS類型轉(zhuǎn)換為一個描述參與者的反應(yīng)式行為的PS類型的轉(zhuǎn)換方法說明如下 對協(xié)議DS類型中描述每一個參與者要接收事件的向內(nèi)的簡單子DS類型,用一個簡單的子PS類型來替代這個簡單子DS類型,這個簡單的子PS類型把這個向內(nèi)的簡單子DS類型作為它的Ext-DS類型,并包括一個尚待定義的Int-DS類型; 對協(xié)議DS類型中描述每一個參與者要發(fā)送事件的向外的簡單子DS類型,用一個簡單的子PS類型來替代這個簡單子DS類型,這個簡單的子PS類型包括一個尚待定義的Ext-DS類型,并把這個向外的簡單子DS類型作為它的Int-DS類型;基于上面描述的轉(zhuǎn)換方法,可以按照下面的步驟得到X-server的參與者PS3900(如圖39所示) 因為“請求O”對“X-server”而言是一個向內(nèi)的簡單子DS類型,所以它被替換成一個簡單的子PS類型3901,這個簡單的子PS類型3901把“請求O”作為它的Ext-DS類型3902,并包含一個尚待定義的Int-DS類型3903(在圖39中用“?? ”表示)。 因為“答復(fù)O”對“X-server”而言是一個向外的簡單子DS類型,所以它被替換成了一個簡單的子PS類型3904,這個簡單的子PS類型3904包括一個尚待定義的Ext-DS類型3905 (在圖39中用“ ?? ”表示),并把這個向外的簡單子DS類型“答復(fù)O”作為它的Int-DS 類型 3906。基于上面描述的轉(zhuǎn)換方法,可以按照下面的步驟得到X-client的參與者PS4000(如圖40所示) 因為“請求I”對“X-client”而言是一個向外的簡單子DS類型,所以它被替換成了一個簡單的子PS類型4001,這個簡單的子PS類型4001包括一個尚待定義的Ext-DS類型4002,并把這個向外的簡單子DS類型“請求I”作為它的Int-DS類型4003。 因為“答復(fù)I”對“X-client”而言是一個向內(nèi)的簡單子DS類型,所以它被替換成一個簡單的子PS類型4004,這個簡單的子PS類型4004把“答復(fù)I”作為它的Ext-DS類型4005,并包含一個尚待定義的Int-DS類型4006。在本專利的一種實施例中,也可以不用圖38、39和40所示的DS類型的圖形語言 而直接在DS類型的數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上實現(xiàn)上述轉(zhuǎn)換方法。把所得到的屬于同一個角色的所有參與者PS并成一個角色PS的合并方法是先定義一個父PS,然后把這些參與者PS都作為它的并行子PS。圖42表示出如何將x-server和X-client的參與者PS合并成一個角色PS “X”。在本專利的一種實施例中,也可以不用圖42所示的PS類型的圖形語言而直接在參與者PS類型的數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上實現(xiàn)這個合并方法。這樣得到的角色PS —般是不完整的,因為會有很多尚待定義的Ext-DS和Int-DS。下一步就是用內(nèi)部的交流和行為來替換這些尚待定義的Ext-DS和Int-DS。我們假定“X”系統(tǒng)的行為是在收到“請求O”以后,X-server會完成部分的工作,然后通過發(fā)送“請求I”給服務(wù)器,讓服務(wù)器完成余下的工作。我們還假定在收到來自服務(wù)器的“答復(fù)I”后,“X-client”會把服務(wù)器的工作結(jié)果通知”x-server”,然后由“x-server”把“答復(fù)O”送回給客戶端。為了達(dá)成這些內(nèi)部交流的需要,X-server可以發(fā)送一個事件“aa”給X-client以請求服務(wù)器完成余下的工作。然后X-client可以發(fā)送一個事件“bb”給X-server以通知服務(wù)器的工作結(jié)果。在替換了這些尚待定義的Ext-DS和Int-DS后,新的角色PS如圖43所示。這個例子用了兩個非常簡單的內(nèi)部協(xié)議(每個協(xié)議只有一個事件),比如“aa”和“bb”,來完成這項工作。本發(fā)明還支持在兩個內(nèi)部子PS間用一個組合的DS來定義復(fù)雜的協(xié)議。事實上,可以用同一個例子來舉例說明這一點。圖44描述的是同一個例子,只是內(nèi)部協(xié)議用一個組合的DS “協(xié)議2”(如圖41所示)來定義。使用本發(fā)明描述的各種設(shè)計方法的好處在于 通過機(jī)械地由一個外部行為推導(dǎo)出內(nèi)部的反應(yīng)式行為,本發(fā)明可以確保協(xié)議和通訊各方是一致的。籲因為Ext-DS,Int-DS和PS都是DS的特例,并且共享同樣的組合結(jié)構(gòu),所以很容易識別哪些是在機(jī)械式推導(dǎo)出的反應(yīng)式行為之上增加的內(nèi)部行為。 通過從外部行為機(jī)械地推導(dǎo)出內(nèi)部反應(yīng)式行為,可以極大地減少描述復(fù)雜行為
            的工作量。
            上述的這些設(shè)計方法可以擴(kuò)展到其他基于節(jié)點和鏈接的建模語言(比如UML活動圖,BPMN, XPDL, WS-⑶L和BPEL或者這些技術(shù)的結(jié)合)。相對應(yīng)于本發(fā)明中的一個組合DS的等同物,在UML活動圖中稱為一個活動(activity),在BPMN,XPDL和BPEL中稱為一個流程(process),在WS-Q)L稱為一個流程編排(choreography)。為了簡化描述,我們將這些組合DS的等同物都稱作組合活動。相對應(yīng)于本發(fā)明中的一個簡單DS的等同物,在UML活動圖中稱為一個動作(action),在BPMN和XPDL中稱為一個任務(wù)(task),在BPEL和WS-CDL中稱為一個活動(activity)。它們都將被稱作簡單活動。另外,我們用術(shù)語“活動”來泛稱一個簡單的或者組合的活動。一個簡單的PS可以映射到這些建模語言中的一個反應(yīng)式的組合活動,這個組合活動包含一個外部活動,用于描述待接收的外部事件,以及一個內(nèi)部活動,用于描述為響應(yīng)所發(fā)生的這個外部活動而執(zhí)行的內(nèi)部動作。因為一個組合的PS和一個組合的DS有相同的結(jié)構(gòu),一個組合的PS可以被直接映射到一個組合活動。 這些設(shè)計方法中用到的其他一些組件也被擴(kuò)展得更具通用性,因此它們也可以用于其他行為建模語言。一個尚待定義的Ext-DS被擴(kuò)展成一個尚待定義的外部活動,用于描述要接收某些尚待定義的外部事件的活動。而一個尚待定義的Int-DS被擴(kuò)展成一個尚待定義的內(nèi)部活動,用于描述要執(zhí)行某些尚待定義的內(nèi)部動作的活動。使用了以上這些通用性的構(gòu)件,以上這些設(shè)計方法可以擴(kuò)展成通用性的方法使用其他行為語言來做設(shè)計,它的的過程可以描述如下 第一步是用UML活動圖,BPMN, XPDL, WS-CDL或者BPEL的組合活動來描述一個角色所支持的每一個協(xié)議。 第二步是使用通用性的轉(zhuǎn)換方法,將每一個描述協(xié)議的組合活動轉(zhuǎn)換成一個參與者的組合活動。 第三步是把那些屬于同一個角色的參與者組合活動合并成一個用UML活動圖,BPMN, XPDL, WS-CDL或者BPEL表示的角色組合活動。 第四步是把上一步得到的角色組合活動中尚待定義的外部活動和尚待定義的內(nèi)部活動替換成內(nèi)部的交流和行為,從而使這個角色的規(guī)范變得完整。一個協(xié)議可以用UML活動圖,BPMN,XPDL, WS-⑶L或者BPEL描述成一個組合活動,它包含了一系列只描述交流雙方之間的雙向的外部事件(其他與收發(fā)事件無關(guān)的活動可以被忽略)的簡單活動。因為這些建模語言的每一種都有用于接收外部事件的簡單活動,所以一個協(xié)議可以用一些接收事件的簡單活動來描述。換言之,這個協(xié)議組合活動可以看作是被用來描述一個處于通信雙方中間,能接收兩個方向事件的一個實體的行為。根據(jù)這個方法,一個協(xié)議可以用UML活動圖的組合活動來定義,并且用“AcceptEventAction”來接收雙向的外部事件。比如,圖38中用DS類型定義的協(xié)議“協(xié)議0”和“協(xié)議I”可以用UML活動圖表示在圖45中。轉(zhuǎn)換成一個參與者組合活動可以用這個通用性的轉(zhuǎn)換方法把一個組合活動從一個協(xié)議規(guī)范轉(zhuǎn)換成一個參與者的行為規(guī)范。這個方法包括 對所述組合活動中每一個描述參與者待接收事件的向內(nèi)的簡單活動,把這個向內(nèi)的簡單活動替換成一個反應(yīng)式的組合活動,而這個反應(yīng)式的組合活動把所述向內(nèi)的簡單活動作為它的外部活動,這個外部活動后面跟著一個尚待定義的內(nèi)部活動,以描述為響應(yīng)所發(fā)生的向內(nèi)的簡單活動而執(zhí)行的活動。 對所述組合活動中每一個描述參與者待發(fā)送事件的向外的簡單活動,把這個向外的簡單活動替換成一個反應(yīng)式組合活動,這個反應(yīng)式組合活動包含一個尚待定義的外部活動用于描述要接收的事件,然后跟著這個尚待定義的外部活動后面,用這個向外的簡單活動作為它的內(nèi)部活動,以響應(yīng)所發(fā)生的這個尚待定義的外部活動。圖46是用UML活動圖表示的由圖45中“協(xié)議0 ” 4500轉(zhuǎn)換得到的“X-server ”的參與者組合活動4600。簡單活動“請求0”4501是一個向內(nèi)的待接收事件,因此,它被替換成一個反應(yīng)式的組合活動4601,而這個反應(yīng)式的組合活動包含一個外部活動用以接收向內(nèi)的“請求0”事件4602,以及跟在這個外部活動后面的尚待定義的內(nèi)部活動4603用以響應(yīng)“請求0”事件。這個內(nèi)部活動可以用UML活動圖中的一個動作(action)或一個活動(Activity)來定義?!皡f(xié)議0”4500中的簡單活動“答復(fù)0”4502是一個向外的待發(fā)送事件, 因此,它被替換成一個反應(yīng)式的組合活動4604,而這個反應(yīng)式的組合活動包含一個尚待定義的外部活動4605用以接收尚待定義的向內(nèi)事件,以及跟在這個外部活動后面發(fā)送向外的“答復(fù)0”事件4606的內(nèi)部活動。這些外部活動和內(nèi)部活動中的每一個都可以用一個動作或一個UML活動圖中的活動來定義。圖47是用UML活動圖表示的由圖45中“協(xié)議I” 4503轉(zhuǎn)換得到的“X-client”的參與者組合活動4700。簡單活動“請求I”4504是一個向外的待發(fā)送事件,因此,它被替換成一個反應(yīng)式的組合活動4701,而這個反應(yīng)式的組合活動包含一個尚待定義的外部活動4702用以接收尚待定義的向內(nèi)事件,以及跟在這個外部活動后面發(fā)送向外的“請求I”事件4703的內(nèi)部活動用以響應(yīng)尚待定義的向內(nèi)事件“?? ”。這些外部活動和內(nèi)部活動中的每一個都可以用UML活動圖中的一個動作或一個活動來定義?!皡f(xié)議I”4503中的簡單活動“答復(fù)I” 4505是一個向內(nèi)的待接收事件,因此,它被替換成一個反應(yīng)式的組合活動4704,而這個反應(yīng)式的組合活動包含一個外部活動4705用以接收向內(nèi)的“答復(fù)I”事件,以及跟在這個外部活動后面的尚待定義的內(nèi)部活動4706。這個外部活動可以用UML活動圖中的一個動作或一個活動來定義。當(dāng)使用基于節(jié)點和鏈接的建模語言時,可用一個通用性的合并方法把以上得到的屬于同一個角色的所有參與者組合活動合并成一個描述單一角色行為的組合活動,具體步驟描述如下 增加一個父組合活動,然后把所有這些得到的參與者組合活動作為它的并行子活動。這可以通過增加一個分叉節(jié)點和一個匯合節(jié)點來實現(xiàn),而這個分叉節(jié)點會有一個鏈接指向每一個參與者組合活動,這個匯合節(jié)點則是每一個參與者組合活動的目標(biāo)節(jié)點。圖48用UML活動圖表示如何把得到的參與者組合活動“X-server”和“X-client”合并成“X”角色組合活動。請注意,分叉節(jié)點4800和匯合節(jié)點4801用UML活動圖中的豎線表示。當(dāng)把這個通用性的設(shè)計過程用于BPMN建模語言時,具體過程描述如下 用BPMN定義協(xié)議組合活動(如圖49所示),它只包含接收雙向外部事件的事件接收任務(wù)。 作如下修改把它轉(zhuǎn)換成一個參與者組合活動(如圖50和圖51所示)
            為每一個從參與者角度看是接收向內(nèi)事件的“接收(Receive)”任務(wù)4901,把“接收”任務(wù)替換成一個反應(yīng)式流程5001,這個反應(yīng)式流程把該“接收”任務(wù)5003作為它的外部活動,而后面跟著一個尚待定義的內(nèi)部活動5004(是BPMN的一個子流程(Sub-process)或任務(wù)(Task))作為響應(yīng)所發(fā)生的向內(nèi)事件時執(zhí)行的內(nèi)部活動。 為組合活動中每一個從交流對端系統(tǒng)看來是接收事件,而從參與者角度看來是發(fā)送事件的“接收”任務(wù)4902,把“接收”任務(wù)替換成一個反應(yīng)式流程5002,這個反應(yīng)式流程包含一個尚待定義的外部活動5005 (是BPMN的一個子流程或任務(wù)),用來描述待接收的尚待定義的外部事件,后面跟著一個發(fā)送這個事件的任務(wù)作為響應(yīng)所發(fā)生的尚待定義的外部活動時執(zhí)行的內(nèi)部活動5006。 為了把這些參與者組合活動合并成一個角色組合活動,我們定義一個父流程,它用一對并行的“與分流”網(wǎng)關(guān)(AND-Split Gateway) 5200和“與匯合”網(wǎng)關(guān)(AND-joinGateway) 5201 (如圖52所示)或者一個并行框(Parallel box) 5300(如圖53所示)把這 些參與者組合活動作為它的并行子流程整合在一起。與一個組合PS的并行子PS類似,當(dāng)父流程開始運(yùn)行時,這些子流程就會開始并行運(yùn)行。隨后可以通過用內(nèi)部交流和行為來替換尚待定義的外部活動和尚待定義的內(nèi)部活動讓所得到的流程定義變得完整。當(dāng)把這個通用性的設(shè)計過程用于BPEL建模語言時,具體的過程描述如下 用BPEL定義一個協(xié)議組合活動,它只包含用BPEL “接收(receive) ”或“拾取(pick) ”活動來定義的接收雙向外部事件的事件接收任務(wù)。 如果用了“拾取(pick) ”活動來定義一個協(xié)議,那么它的〈onMessage〉結(jié)構(gòu)應(yīng)該把這個事件的名稱描述在它的“operation”中,而且把它的活動定義為“Empty”。舉個例子,“協(xié)議0”的BPEL偽代碼應(yīng)該是下面這樣的〈sequence …〉
            <pick ..+>
            〈onMessage ... operation="RequestO" ..+> empty
            〈/onMessage〉
            </pick>
            <pick ..+>
            <onMessage ... operation="ReplyO" ..+> empty
            〈/onMessage〉
            </pick>
            〈/sequence〉籲如果用了 “接收(receive)”活動來定義一個協(xié)議,應(yīng)該把這個事件的名稱描述在它的“operation”中。舉個例子,“協(xié)議I ”的BPEL偽代碼應(yīng)該是下面這樣的
            〈sequence ..+>
            〈receive ... operation="Requestl"…〉
            〈/receive〉
            〈receive ... operation="ReplyI" ..+>
            〈/receive〉
            〈/sequence〉籲請注意,盡管在本例中用到了 “sequence”來定義順序的活動,BPEL中還可以用“flow”和“l(fā)ink”來定義順序的活動。 作以下修改來得到一個參與者組合活動為協(xié)議組合活動中的每一個“接收(receive) ”或“拾取(pick)"活動執(zhí)行下面的步驟 如果這個活動描述的是參與者要接收的向內(nèi)的事件,把它替換成一個反應(yīng)式組合活動,這反應(yīng)式組合活動把這個向內(nèi)的活動作為它的外部活動,后面跟著一個尚待定義的內(nèi)部活動(BPEL中的一個子活動)作為響應(yīng)所發(fā)生的向內(nèi)活動時執(zhí)行的內(nèi)部活動。 對“拾取(pick) ”活動,在〈onMessage〉結(jié)構(gòu)中的事件應(yīng)該由“empty”變成一個尚待定義的內(nèi)部活動“ InternalActivity”,并且
            對“接收(receive) ”活動,它后面應(yīng)該跟著一個在“sequence”里面尚待定義的內(nèi)部活動 “ InternalActivity”。 如果這個事件是向外的,則定義一個反應(yīng)式組合活動,這反應(yīng)式組合活動包含一個尚待定義的外部事件用來描述要接收的事件,后面跟著一個發(fā)送這個向外事件的活動,作為響應(yīng)所發(fā)生的尚待定義的外部事件時執(zhí)行的內(nèi)部活動。 如果用了“拾取(pick) ”活動,一個尚待定義的外部活動的〈onMessage〉結(jié)構(gòu)應(yīng)該等待一個尚待定義的向內(nèi)事件“?? ”,而它的內(nèi)部活動則應(yīng)該包含這個向外的事件。籲如果用了 “接收(receive)”活動,尚待定義的外部活動應(yīng)該等待一個尚待定義的事件,而且后面跟著一個在“ sequence ”里面發(fā)送這個向外事件的內(nèi)部活動。 比如,使用"拾取(pick)"活動的X-server參與者組合活動,用BPEL偽代碼應(yīng)
            該如下所示
            〈sequence ...>
            <pick ...>
            〈onMessage ... operation="RequestO" ...>
            Internal Activity
            〈/onMessage〉
            </pick>
            <pick ...>
            〈onMessage ... operation=" " ...>
            〈invoke ... operation="ReplyO" ...
            〈/invoke〉
            〈/onMessage〉
            </pick>
            〈/sequence〉 又比如,使用"接收(receive)"活動的X-client參與者組合活動,用BPEL偽
            代碼應(yīng)該如下所示〈sequence …〉
            〈receive ... operation=" " ..+>
            〈/receive〉
            〈invoke ... operation="Requestl"...
            〈/invoke〉 〈receive ... operation="ReplyI" ..+>
            〈/receive〉
            InternalActivitv
            〈/sequence〉 為了定義一個角色組合活動,我們增加一個父流程,通過用“flow”結(jié)構(gòu)把這些參與者組合活動作為這個父流程的并行子流程進(jìn)行合并。 舉個例子,這個合并后的角色組合活動用BPEL偽代碼可以表示如下
            <flow>
            〈sequence …〉
            <pick …〉
            〈onMessage ... operation="RequestO" ..+>Internal Activity
            〈/onMessage〉
            </pick>
            <pick ..+>
            <onMessage ... operation=" " ..+>
            〈invoke ... operation="ReplyO" ...
            〈/invoke〉
            〈/onMessage〉
            </pick>
            〈/sequence〉
            〈sequence ..+>
            〈receive ... operation=" " ..+>
            〈/receive〉
            〈invoke ... operation="Requestl"...
            〈/invoke〉
            〈receive ... operation="ReplyI" ..+>
            〈/receive〉
            InternalActivitv
            〈/sequence〉
            </flow>隨后可以通過用內(nèi)部的交流和行為來替換那些尚待定義的外部活動和尚待定義的內(nèi)部活動讓得到的流程定義變得完整。請注意,上述的實施例中實用了 “operation =” ? ””來表示尚待定義的外部活動,以及“內(nèi)部活動?? ”來表示尚待定義的內(nèi)部活動。每一個尚待定義的外部活動和尚待定義的內(nèi)部活動可以在其他實施例中用其他方式來表示,只要它們能夠與正常的活動區(qū)分開。盡管上面所述的通用性設(shè)計方法的實施例是基于BPEL來描述一個協(xié)議組合活動和一個參與者組合活動,但是類似的方法可以被本領(lǐng)域的技術(shù)人員用于任何基于XML并且支持“順序(sequence)”活動的行為描述語言,比如XPDL和WS-CDL。一般而言,上述的一個反應(yīng)式組合活動可以定義成一個順序活動,而這個順序活動包含一個等待向內(nèi)事件的外部活動以及一個為響應(yīng)所發(fā)生的這個向內(nèi)事件而執(zhí)行的內(nèi)部活動。下面的XML表示一個用順序活動來定義的反應(yīng)式組合活動。
            〈sequence〉
            ExternalActivity
            InternalActivity
            〈/sequence〉對于一個用WS-⑶L定義的反應(yīng)式組合活動,它的外部活動可以是用一個WS-⑶L的交流活動(Interaction activity)來描述要等待的向內(nèi)事件,而它的內(nèi)部活動可以是一個用來描述一些待執(zhí)行動作的活動。盡管WS-CDL目前還不支持內(nèi)部活動,但可以想像得到,WS-⑶L是可以被擴(kuò)展來支持內(nèi)部的活動的。本發(fā)明描述的這些通用性的設(shè)計方法可以被用于這樣一個擴(kuò)展了的行為描述語言?!ど梢粋€參與者狀態(tài)機(jī)當(dāng)把這個通用性的設(shè)計過程用于一個狀態(tài)機(jī)建模語言(比如狀態(tài)圖),具體的過程描述如下 把每一個協(xié)議定義為一個狀態(tài)機(jī)(State machine)(如圖54中的“協(xié)議0”5400和“協(xié)議1”5403),這個狀態(tài)機(jī)只把向內(nèi)或向外的事件定義為它的狀態(tài)遷移的事件或者觸發(fā)器(Trigger),比如“協(xié)議0”中的“請求O,,5401和“答復(fù)0”5402,以及“協(xié)議I”中的“請求I” 5404和“答復(fù)I” 5405,但沒有為這個狀態(tài)遷移定義任何動作或遷移效果(Effect)。一個協(xié)議狀態(tài)機(jī)可以被視為是用來定義一個處于通訊雙方之間,能接收兩個方向的事件的一個實體的行為。每一個像這樣的事件都可被定義為它所對應(yīng)的狀態(tài)遷移中的一個觸發(fā)器。 按如下步驟修改每一個協(xié)議狀態(tài)機(jī)來轉(zhuǎn)換得到一個參與者狀態(tài)機(jī)(如圖55和圖56所示) 對這個協(xié)議狀態(tài)機(jī)中的每一個遷移,如果它的觸發(fā)器中包含一個向內(nèi)的事件(從參與者角度來看),則在這個遷移上增加一個尚待定義的遷移效果(如圖55中的“?? ”5501 和圖 56 中的 “?? ”5603 所示)。 對這個協(xié)議狀態(tài)機(jī)中的每一個遷移,如果它的觸發(fā)器中包含一個向外的事件(從參與者角度來看),則在這個遷移上增加一個遷移效果來發(fā)送這個向外事件。然后把這個遷移的觸發(fā)器改成等待一個尚待定義的向內(nèi)事件(如圖56中的“?? ”所示)。為了生成一個角色狀態(tài)機(jī),一個父狀態(tài)可以被定義來把所有這些參與者狀態(tài)機(jī)合并到一個單一的角色狀態(tài)機(jī)。這個父狀態(tài)把所有這些得到的參與者狀態(tài)機(jī)都當(dāng)作它的正交區(qū)域(orthogonal regions)。如圖57所示,參與者狀態(tài)機(jī)“X-server” 5701和“X-client”5702變成合并在父狀態(tài)“X”5700內(nèi)的兩個正交區(qū)域。請注意,狀態(tài)機(jī)中的正交區(qū)域類似于一個組合PS中的并行子PS。隨后可以通過用內(nèi)部的交流和行為替換那些尚待定義的觸發(fā)器和遷移效果以使得到的角色狀態(tài)機(jī)定義變得完整。盡管圖54,55,56和57是用狀態(tài)圖(Statechart)圖畫來表示的,它們也可以被替換成其他的狀態(tài)機(jī)(state machine)圖畫而不會失去本發(fā)明的精髓。有時候,一個設(shè)計者需要定義一個需要和一個已存在應(yīng)用系統(tǒng)進(jìn)行交流的新的應(yīng)用系統(tǒng)的行為。因為不太可能改變已存在應(yīng)用系統(tǒng)的行為,所以需要根據(jù)已存在應(yīng)用系統(tǒng)的行為來推導(dǎo)出已存在應(yīng)用系統(tǒng)所支持的協(xié)議。然后應(yīng)用上述轉(zhuǎn)換方法來生成新應(yīng)用系統(tǒng)的參與者組合活動。這樣得到的參與者組合活動就可以和已存在應(yīng)用系統(tǒng)正確地進(jìn)行交流。 生成一個協(xié)議組合活動下面說明如何從一個描述參與者行為的參與者組合活動來生成一個描述兩個參與者之間的協(xié)議的協(xié)議組合活動的方法 把所述參與者組合活動復(fù)制為一個協(xié)議組合活動; 把所述協(xié)議組合活動中既不接收向內(nèi)事件也不發(fā)送向外事件的各個簡單活動改變?yōu)榭栈顒?,但是保持原有向外的鏈接不變?
            下面用UML活動圖作為行為建模語言來舉例說明如何應(yīng)用這個方法。圖46是用UML活動圖表示的“X-server”參與者組合活動。遵循上述的協(xié)議生成方法可以推導(dǎo)出一個協(xié)議組合活動。 把圖46中的“X-server”參與者組合活動4600復(fù)制一份為圖58中協(xié)議組合活動 5800 ; 因為簡單活動“?? ”4603既不接收向內(nèi)事件也不發(fā)送向外事件,所以把它變成一個空活動5803 ; 因為簡單活動” ? ”4605既不接收向內(nèi)事件也不發(fā)送向外事件,所以把它變成一個空活動5805 ;請注意,除了不包含任何要執(zhí)行的實際動作以外,這個空活動和一個普通節(jié)點是一樣的。如果用BPEL來描述一個組合活動,則可以用一個“empty”活動來表示空活動。如果用WS-⑶L來描述一個組合活動,則可以用一個“noAction”來表示一個空活動。如果一個組合活動是用不支持空活動的行為建模語言來表示的,比如BPMN,XPDL和UML活動圖,則需要為這個行為建模語言增加一個特殊的空活動。以上所生成的協(xié)議組合活動可能包含了許多空活動。這些空活動可以根據(jù)以下規(guī)則加以清除 對每一個空活動,可以將它的目標(biāo)活動和源活動直接相連,從而把空活動刪除; 如果一對分叉、匯合節(jié)點之間沒有鏈接,或者只剩下一個鏈接,那么這對分叉匯合節(jié)點可以刪除。 如果一個組合活動只剩下一個子活動,那么這個組合活動可以用這個剩下的子活動來替代。在清除完這些空活動后,圖58中的協(xié)議就變成了圖45中的“協(xié)議0 ” 4500。實現(xiàn)上文這些通用性設(shè)計方法的一個設(shè)計工具或者一個運(yùn)行平臺需要用一種具體的形式來表現(xiàn)所述的通用性組件,比如尚待定義的外部活動和尚待定義的內(nèi)部活動,協(xié)議組合活動和參與者組合活動。一個具體的形式可以是下面的任何一種I) 一種程序語言,比如C和Java ;2) 一種數(shù)據(jù)描述語言,比如ASN. I (AbstractSyntax Notation One) ;3) 一種基于 XML 的語言,比如 XPDL,BPEL 和 WS-CDL ;或 4) 一種圖形語言,比如BPMN,UML活動圖,或該設(shè)計工具可以支持的任何專有表示方法。在這些設(shè)計方法的一種實施例中,可以用同一種具體形式來表示協(xié)議組合活動和參與者組合活動。而在另一種實施例中,可以用一種具體形式來表示協(xié)議組合活動,而采取另一種具體形式來表示參與者組合活動。結(jié)論本發(fā)明包括了對一個應(yīng)用軟件的整個開發(fā)生命周期都有用處的方法和組件。在本發(fā)明的一種實施例中,本發(fā)明所描述的DS組件和方法可以用于設(shè)計階段,代碼生成階段以及執(zhí)行階段。而在另一種實施例中,這些DS組件和方法會用在設(shè)計階段和代碼生成階段。還有一種實施例中,這些DS組件和方法僅被設(shè)計工具使用。還有一種實施例中可以把本發(fā)明所描述的通用性的方法和圖形語言與UML狀態(tài)圖,UML活動圖,BPMN,XPDL和BPEL等建模語言結(jié)合起來用在設(shè)計階段。如圖59所示,一個設(shè)計工具可以通過使用這些通用性的方法和指導(dǎo)來描述一個應(yīng)用系統(tǒng)的內(nèi)部行為和外部行為,從而支持一個應(yīng)用系統(tǒng)設(shè)計流程。本發(fā)明描述的全部或部分圖形語言可以被一個設(shè)計工具采用以方便設(shè)計流程。然而這樣設(shè)計出來的行為是可以用另外一種機(jī)制來描述的, 比如UML狀態(tài)圖,UML活動圖,BPMN,XPDL和BPEL。然后它可以經(jīng)過一個代碼生成器來生成二進(jìn)制代碼,再被運(yùn)行平臺裝載執(zhí)行。本發(fā)明描述的圖形語言是很靈活而且模塊化的,一個設(shè)計工具不必支持全部的組件。因此一個設(shè)計工具可以只選用本發(fā)明所描述的組件的一部分來用于各種目的。在下面三幅圖中表示了一些這樣的實施例。圖60中的包含框6000代表了一個應(yīng)用系統(tǒng),而該應(yīng)用系統(tǒng)的動態(tài)行為是用一個包含了 3個子包含框6001,6002和6003的組合活動來描述的。其中兩個子包含框6001,6002代表順序的子活動,而子包含框6003代表一個并行子活動。有一個遷移箭頭從子包含框6001指向子包含框6002,而并行子活動6003則沒有任何遷移箭頭。那兩個順序子活動中的一個是一個反應(yīng)式組合活動6001,6001包含一個事件子子包含框6004作為它的外部活動以描述待發(fā)生的外部事件,以及一個動作子子包含框6005作為它的內(nèi)部活動以描述響應(yīng)所發(fā)生的外部事件時執(zhí)行的內(nèi)部活動。一個雙向的交流鏈接6006代表了順序子活動6001和并行子活動6003之間的一組交流。這個交流協(xié)議用標(biāo)識符“協(xié)議0”來表示。附注這個交流協(xié)議的DS在此圖中并沒有顯示出來。圖61中的一個包含框6100代表一個應(yīng)用系統(tǒng),而該應(yīng)用系統(tǒng)的行為是用一個包含了三個子包含框6101,6102和6105的組合活動來描述,每一個子包含框代表了一個子活動。一個雙向的交流鏈接6106代表了子包含框6101和6105之間的一組交流。這個交流鏈接用一個標(biāo)識符“協(xié)議0”來表明這個交流集所要遵循的協(xié)議規(guī)范。組合活動6100有兩個結(jié)束點,其中的一個結(jié)束點6103有一個沒有顯示出的默認(rèn)的結(jié)束條件。另一個結(jié)束點6104有一個結(jié)束條件“遷移條件I”。圖62中的一個包含框6200代表一個應(yīng)用系統(tǒng),而該應(yīng)用系統(tǒng)的行為是用一個組合活動6200來描述的,它有兩個順序的子活動6201和6202,一個并行的子活動6205,以及一個在順序子活動6201和并行子活動6205之間的交流鏈接6206。有一個遷移箭頭6208從源子包含框6201指向目標(biāo)子包含框6202。還有一個生成箭頭6207指向一個在運(yùn)行時可以被順序子活動6202生成的動態(tài)組件6205。一個子包含框6201則代表了一個反應(yīng)式組合活動,這個反應(yīng)式組合活動包含一個事件子子包含框6209用來描述待發(fā)生的外部事件和一個動作子子包含框6210用來描述為響應(yīng)發(fā)生的所述外部事件而執(zhí)行的內(nèi)部活動。
            在本發(fā)明的另外一種實施例中,可以采用有向鏈接,而不用圖60中的分割線來區(qū)別一個反應(yīng)式組合活動中的外部活動和內(nèi)部活動。圖63表示了和圖60同樣的組合活動例子,只是在反應(yīng)式組合活動6300內(nèi)部多了一個連接外部活動6301和內(nèi)部活動6302的有向鏈接6303。除了使用可視化的設(shè)計工具,也可以在本發(fā)明的基礎(chǔ)上用其他工具來生成用戶定義的DS類型。比如可以使用計算機(jī)輔助的軟件工程工具(CASE)。一個CASE工具可以在整個開發(fā)方法學(xué)中綜合了本發(fā)明的功能以支持生成和編輯用戶定義的DS組件。一個CASE工具也可以為用戶定義的DS類型提供分析和驗證功能,而另一個CASE工具更可以通過提供一個DS類型的分類和目錄以及支持對DS類型的查詢和匹配來幫助重復(fù)使用用戶已定義的DS類型。其他的CASE工具可以對基于DS組件的應(yīng)用程序進(jìn)行模擬,甚至可以提供自動測 試功能,而測試用例則可以根據(jù)DS類型的定義自動生成。在本發(fā)明的另一種實施例中可以用一個集成開發(fā)環(huán)境(IDE)來支持基于本發(fā)明的軟件開發(fā),包括軟件設(shè)計,編譯和執(zhí)行。特別是,執(zhí)行時刻可以通過帶有軟件庫函數(shù)的運(yùn)行平臺來支持DS組件。類似于一個運(yùn)行平臺,本專利還有一種實施例是在一個軟件的虛擬機(jī)里或者一個完全基于硬件和固件的計算設(shè)備上支持DS組件和它的執(zhí)行函數(shù)。另一方面,并不是所有的DS組件都需要被自動化或者通過軟件來執(zhí)行。本發(fā)明的另外一種實施例是一個設(shè)計者通過一個設(shè)計工具用DS的組件或組合活動來定義人的行為,業(yè)務(wù)流程或者是行動計劃。這些DS組件或組合活動中的一部分可以是要人去完成的工作。盡管上面的描述都帶有某些特性,但這不能被看作是對本發(fā)明范圍的限制,而只能看作是本發(fā)明的一些實施例。根據(jù)本文所披露的信息和所指導(dǎo)的內(nèi)容,一個本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)該可以意識到在本發(fā)明的范圍內(nèi)還可以有很多其他實施例和進(jìn)一步的衍生例。本發(fā)明的應(yīng)用將是非常廣泛的,因為大多數(shù)解決現(xiàn)實世界問題的系統(tǒng)都可以看作為一個反應(yīng)式的系統(tǒng)。比如,在一個3層架構(gòu)中,數(shù)據(jù)庫管理系統(tǒng)可以看作一個對數(shù)據(jù)庫管理系統(tǒng)的上一層服務(wù)器的輸入做出反應(yīng)的系統(tǒng)。而這些服務(wù)器又可以看作對這些服務(wù)器的上一層輸入做出反應(yīng)的系統(tǒng)。表示層(presentation tier)則可以看作對人類的輸入做出反應(yīng)的系統(tǒng)。換言之,幾乎所有的計算系統(tǒng)都可以用本發(fā)明描述的DS,PS,Ext-DS和Int-DS來建模,并獲益于它們所具有的先進(jìn)特性。本發(fā)明還可以用來為高度復(fù)雜的通訊協(xié)議進(jìn)行建模。尤其是利用一個組合DS的特性,一個協(xié)議不僅可以支持單個會話,還可以支持多個并發(fā)的、嵌套的會話。本發(fā)明還可以用來為人機(jī)界面建模。一個人可以同時處理很多件事情。為了和人類的這種“多進(jìn)程”能力相稱,一個基于圖形用戶界面的應(yīng)用可以用一個組合的DS來定義它與人的界面,而用一個組合的PS來定義它的反應(yīng)式行為。因為本發(fā)明所具備的高度完善的建模能力,它甚至可以用來對人類行為或者組織行為進(jìn)行建模。比如,一個組織的整個業(yè)務(wù)流程可以用一個組合的PS來建模,這個組合的PS包含有多個層次的子PS來實現(xiàn)部門,團(tuán)隊和雇員的行為。計劃流程,決策流程以及解決問題的流程也可以用DS,PS, Ext-DS和Int-DS來建模。
            一個通用的業(yè)務(wù)運(yùn)行環(huán)境,比如一個業(yè)務(wù)流程管理平臺,一個工作流引擎或者一個通用的業(yè)務(wù)運(yùn)營框架,也可以通過承載各種業(yè)務(wù)流程和活動的DS,PS, Ext-DS和Int-DS來實現(xiàn)。有些現(xiàn)實世界的東西,它們具有多個狀態(tài),比如機(jī)器,顧客記錄,訂單項,也可以用DS或者DS的擴(kuò)展來建模。用本發(fā)明的方法來建模并設(shè)計各種應(yīng)用系統(tǒng),比如上文描述的那些系統(tǒng),可以定義出DS,PS,Ext-DS和Int-DS的規(guī)范。這些規(guī)范的一部分也可以通過其他途徑來得到。不管是采用哪種途徑,所得到的這些應(yīng)用系統(tǒng)的DS,PS, Ext-DS和Int-DS規(guī)范可以由一臺實施本發(fā)明的設(shè)備或機(jī)器,比如一臺計算機(jī)來執(zhí)行。一般而言,本發(fā)明可能以方法的形式實施或者以執(zhí)行這些方法的設(shè)備的形式來實施。本發(fā)明也可以通過有形媒體(比如磁盤,光盤,磁盤驅(qū)動器或者任何其它機(jī)器可讀的存儲介質(zhì))上的程序代碼來實施。當(dāng)這些程序代碼被一個設(shè)備,比如計算機(jī),裝載并執(zhí)行時, 這個設(shè)備就成了一個實施本發(fā)明的設(shè)備。本發(fā)明也可以通過在某些傳輸介質(zhì)(比如電纜,光纖或者電磁輻射)來傳輸程序代碼而得到實施。當(dāng)這些程序代碼被一個設(shè)備或機(jī)器,t匕如計算機(jī),裝載并執(zhí)行時,這個機(jī)器就成了一個實施本發(fā)明的設(shè)備。因此,可以看到本發(fā)明所描述的DS組件以及相關(guān)的方法和過程是定義系統(tǒng)的行為和通訊協(xié)議的非常強(qiáng)大的方法和技術(shù)。特別是它對現(xiàn)有技術(shù),比如BPMN,BPEL, XPDL,WS-CDL或UML在以下幾個主要方面都進(jìn)行了擴(kuò)展并加以改良。第一個方面的改良在于DS模型反映了我們所在宇宙中的時間維度和空間維度,從而在現(xiàn)有技術(shù)所描述的一堆節(jié)點和鏈接的基礎(chǔ)上增加了重要的含義和結(jié)構(gòu)。第二個方面的改良是通過在圖畫中使用包含順序組件與并行組件的包含框,省去了各種分叉節(jié)點和匯合節(jié)點以及鏈接。第三個方面的改良是使用結(jié)果與結(jié)束情況為組合DS的結(jié)束提供了非常強(qiáng)大而且靈活的控制機(jī)制。第四個方面的改良是使用DS的特例,比如Ext-DS,PS和Int-DS來以一種一致的方式分別描述系統(tǒng)的外部行為,系統(tǒng)的反應(yīng)式行為和系統(tǒng)的內(nèi)部行為。第五個方面的改良是可以描述多個系統(tǒng)間的復(fù)雜的交流行為。第六方面的改良是提供了系統(tǒng)化的方法從協(xié)議導(dǎo)出角色PS,從而確保了相關(guān)規(guī)范的一致性。應(yīng)該可以理解的是,在本文中描述的例子和實施例都僅僅是為了說明本發(fā)明,對本領(lǐng)域的技術(shù)人員來說還會出現(xiàn)許多修正,但這些修正都應(yīng)包含在本專利申請以及權(quán)利要求的范圍以內(nèi)。進(jìn)一步可以理解的是,本領(lǐng)域的技術(shù)人員可以在不偏離權(quán)利要求中所表達(dá)的本發(fā)明的原則和范圍的條件下,出于闡釋本發(fā)明的本質(zhì)的目的,對一些細(xì)節(jié),材料或者編排做出修改。在此不管出于何種目的而引用的出版物,專利或?qū)@暾埗紩豢醋鲗ο嚓P(guān)內(nèi)容的完整引用。
            權(quán)利要求
            1.一種包括至少一個用于設(shè)計應(yīng)用軟件系統(tǒng)行為的動態(tài)系統(tǒng)類型的計算機(jī)系統(tǒng),其特征在于,所述計算機(jī)系統(tǒng)包括 一個設(shè)計工具,所述設(shè)計工具用于生成所述動態(tài)系統(tǒng)類型的設(shè)計文檔以便代碼生成器能根據(jù)所述動態(tài)系統(tǒng)類型的設(shè)計文檔生成表示所述動態(tài)系統(tǒng)類型的二進(jìn)制代碼,其中所述二進(jìn)制代碼能夠由執(zhí)行平臺裝載到內(nèi)存中而為所述組合動態(tài)系統(tǒng)類型創(chuàng)建組合動態(tài)系統(tǒng)實例。
            2.根據(jù)權(quán)利要求I所述的計算機(jī)系統(tǒng),其特征在于,所述動態(tài)系統(tǒng)類型包括一個第一個簡單動態(tài)系統(tǒng)類型或一個第一個組合動態(tài)系統(tǒng)類型。
            3.根據(jù)權(quán)利要求2所述的計算機(jī)系統(tǒng),其特征在于,所述第一個組合動態(tài)系統(tǒng)類型包含多個階段機(jī)類型,一個結(jié)束情況集或一個結(jié)束函數(shù),其中所述一個結(jié)束情況集至少包含一個結(jié)束情況,所述結(jié)束情況包含一對結(jié)束條件和結(jié)束代碼,其中結(jié)束條件描述在何種情 況下所述第一個組合動態(tài)系統(tǒng)類型的實例會結(jié)束,結(jié)束代碼用來標(biāo)識對應(yīng)的結(jié)束條件。
            4.根據(jù)權(quán)利要求3所述的計算機(jī)系統(tǒng),其特征在于,所述一個結(jié)束函數(shù)會返回結(jié)束代碼以標(biāo)明在何種情況下所述第一個組合動態(tài)系統(tǒng)類型的實例會結(jié)束。
            5.根據(jù)權(quán)利要求3所述的計算機(jī)系統(tǒng),其特征在于,每個所述階段機(jī)類型包括一個或多個階段類型,其中每個階段類型包括一個子動態(tài)系統(tǒng)類型以及至少一個遷移,每個遷移有一個遷移條件和一個目標(biāo)階段,每個所述子動態(tài)系統(tǒng)類型包括一個第二個簡單動態(tài)系統(tǒng)類型或一個第二個組合動態(tài)系統(tǒng)類型。
            6.根據(jù)權(quán)利要求3所述的計算機(jī)系統(tǒng),其特征在于,至少一個所述至少一個的階段機(jī)類型進(jìn)一步包括靜態(tài)實例數(shù),用于描述出該所述至少一個的階段機(jī)類型的靜態(tài)實例的數(shù)量。
            7.根據(jù)權(quán)利要求3所述的計算機(jī)系統(tǒng),其特征是,至少一個所述多個階段機(jī)類型僅具有一個所述至少一個的階段類型。
            8.根據(jù)權(quán)利要求2所述的計算機(jī)系統(tǒng),其特征在于,所述的簡單系統(tǒng)類型進(jìn)一步包括 第一個所述子系統(tǒng)類型,用于描述出待發(fā)生的外部事件;以及 第二個所述子系統(tǒng)類型,用于描述出為響應(yīng)發(fā)生的所述外部事件而執(zhí)行的內(nèi)部動作。
            9.根據(jù)權(quán)利要求3所述的計算機(jī)系統(tǒng),其特征在于,至少一個所述至少一個的組合系統(tǒng)類型是以一種程序語言、一種數(shù)據(jù)描述語言、一種基于XML的語言和一種圖形語言之一來描述。
            10.根據(jù)權(quán)利要求5所述的計算機(jī)系統(tǒng),其特征在于,進(jìn)一步包括 至少一個組合系統(tǒng)實例,包括 一個對所述第一個組合系統(tǒng)類型的引用; 一個結(jié)果用來記錄所述至少一個組合系統(tǒng)實例結(jié)束時的情況;以及 至少一個階段機(jī); 其中所述至少一個階段機(jī)包括對所述至少一個的階段機(jī)類型的一個引用、一個當(dāng)前階段和至少一個階段; 其中所述至少一個階段包括對所述至少一個的階段類型的一個引用和一個子系統(tǒng)實 例; 其中所述子系統(tǒng)實例是所述第二個組合系統(tǒng)類型的實例或所述第二個簡單系統(tǒng)類型的實例中的至少一個; 其中所述第二個簡單系統(tǒng)類型的實例包括對所述第二個簡單系統(tǒng)類型的一個引用和一個對執(zhí)行所述第二個簡單系統(tǒng)類型行為的成果進(jìn)行記錄的結(jié)果。
            11.根據(jù)權(quán)利要求10所述的計算機(jī)系統(tǒng),其特征在于,所述計算機(jī)系統(tǒng)進(jìn)一步包括所述執(zhí)行平臺。
            12.根據(jù)權(quán)利要求5所述的計算機(jī)系統(tǒng),其特征在于,所述計算機(jī)系統(tǒng)進(jìn)一步包括所述代碼生成器。
            13.根據(jù)權(quán)利要求9所述的計算機(jī)系統(tǒng),其特征在于,所述至少一種圖形語言包括 至少一個包含框,用于可視化地表示所述應(yīng)用系統(tǒng)的一部分,至少一個所述至少一個包含框包括多個子包含框, 至少一個帶有標(biāo)識符的雙向鏈接組件用于表示所述多個子包含框中的兩個之間的一組交流,而所述標(biāo)識符標(biāo)明了所述的一組交流必需遵循的一個協(xié)議規(guī)范,和 多個結(jié)束點組件; 其中所述多個結(jié)束點組件中至少有一個組件具有一個用于描述出該包含框在何種條件下會結(jié)束的結(jié)束條件組件。
            14.根據(jù)權(quán)利要求11所述的計算機(jī)系統(tǒng),其特征在于,所述結(jié)束條件組件可視化地以一段文本,一個邏輯表達(dá)式和一個數(shù)學(xué)公式之一來表示。
            15.根據(jù)權(quán)利要求13所述的計算機(jī)系統(tǒng),其特征在于,所述多個結(jié)束點組件中至少一個結(jié)束點組件可視化地以一個符號或一個框子來表示。
            16.根據(jù)權(quán)利要求13所述的計算機(jī)系統(tǒng),其特征在于,所述框子可視化地以一個多邊形,一個圓形和一個橢圓形之一來表示。
            17.根據(jù)權(quán)利要求11所述的計算機(jī)系統(tǒng),其特征在于,至少一個所述至少一個包含框進(jìn)一步包括至少一個遷移箭頭,用于連接所述多個子包含框中的一個子包含框和所述多個子包含框中的另外一個子包含框。
            18.根據(jù)權(quán)利要求11所述的計算機(jī)系統(tǒng),其特征在于,至少一個所述至少一個子包含框包括多個子子包含框,以及至少有一個遷移箭頭連接所述多個子子包含框中的一個子子包含框與所述多個子子包含框中的另一個子子包含框,其中所述多個子子包含框中至少有一個子子包含框不通過所述的遷移箭頭與任何其它所述多個子子包含框連接。
            19.根據(jù)權(quán)利要求11所述的計算機(jī)系統(tǒng),其特征在于,至少一個所述至少一個包含框進(jìn)一步包括至少一個用于指向動態(tài)組件的生成箭頭。
            20.一種包括至少一個用于設(shè)計應(yīng)用軟件系統(tǒng)行為的動態(tài)系統(tǒng)類型的計算機(jī)系統(tǒng),其特征在于,所述計算機(jī)系統(tǒng)包括 一個代碼生成器,所述代碼生成器用于根據(jù)由設(shè)計工具生成的動態(tài)系統(tǒng)類型的設(shè)計而生成表示所述動態(tài)系統(tǒng)類型的二進(jìn)制代碼,其中所述二進(jìn)制代碼能夠由執(zhí)行平臺裝載到內(nèi)存中以被執(zhí)行。
            21.一種包括至少一個用于設(shè)計應(yīng)用軟件系統(tǒng)行為的動態(tài)系統(tǒng)類型的計算機(jī)系統(tǒng),其特征在于,所述計算機(jī)系統(tǒng)包括 一個執(zhí)行平臺,所述執(zhí)行平臺將用于表示動態(tài)系統(tǒng)類型的二進(jìn)制代碼裝載到內(nèi)存中以生成所述動態(tài)系統(tǒng)類型的實例,其中所述二進(jìn)制代碼是由代碼生成器根據(jù)由設(shè)計工具所生成的動態(tài)系統(tǒng)類型的設(shè)計而生成的。
            22.根據(jù)權(quán)利要求21所述的計算機(jī)系統(tǒng),其特征在于,所述動態(tài)系統(tǒng)類型包括一個第一個簡單動態(tài)系統(tǒng)類型或一個第一個組合動態(tài)系統(tǒng)類型。
            23.根據(jù)權(quán)利要求22所述的計算機(jī)系統(tǒng),其特征在于,所述第一個組合動態(tài)系統(tǒng)類型包含多個階段機(jī)類型,一個結(jié)束情況集或一個結(jié)束函數(shù),其中所述一個結(jié)束情況集至少包含一個結(jié)束情況,所述結(jié)束情況包含一對結(jié)束條件和結(jié)束代碼,其中結(jié)束條件描述在何種情況下所述第一個組合動態(tài)系統(tǒng)類型的實例會結(jié)束,結(jié)束代碼用來標(biāo)識對應(yīng)的結(jié)束條件。
            24.根據(jù)權(quán)利要求23所述的計算機(jī)系統(tǒng),其特征在于,所述一個結(jié)束函數(shù)會返回結(jié)束代碼以標(biāo)明在何種情況下所述第一個組合動態(tài)系統(tǒng)類型的實例會結(jié)束。
            25.根據(jù)權(quán)利要求23所述的計算機(jī)系統(tǒng),其特征在于,每個所述階段機(jī)類型包括一個或多個階段類型,其中每個階段類型包括一個子動態(tài)系統(tǒng)類型以及至少一個遷移,每個遷 移有一個遷移條件和一個目標(biāo)階段,每個所述子動態(tài)系統(tǒng)類型包括一個第二個簡單動態(tài)系統(tǒng)類型或一個第二個組合動態(tài)系統(tǒng)類型。
            26.根據(jù)權(quán)利要求23所述的計算機(jī)系統(tǒng),其特征在于,至少一個所述至少一個的階段機(jī)類型進(jìn)一步包括靜態(tài)實例數(shù),用于描述出該所述至少一個的階段機(jī)類型的靜態(tài)實例的數(shù)量。
            27.根據(jù)權(quán)利要求23所述的計算機(jī)系統(tǒng),其特征是,至少一個所述多個階段機(jī)類型僅具有一個所述至少一個的階段類型。
            28.根據(jù)權(quán)利要求22所述的計算機(jī)系統(tǒng),其特征在于,所述的簡單系統(tǒng)類型進(jìn)一步包括 第一個所述子系統(tǒng)類型,用于描述出待發(fā)生的外部事件;以及 第二個所述子系統(tǒng)類型,用于描述出為響應(yīng)發(fā)生的所述外部事件而執(zhí)行的內(nèi)部動作。
            29.根據(jù)權(quán)利要求23所述的計算機(jī)系統(tǒng),其特征在于,至少一個所述至少一個的組合系統(tǒng)類型是以一種程序語言、一種數(shù)據(jù)描述語言、一種基于XML的語言和一種圖形語言之一來描述。
            30.根據(jù)權(quán)利要求23所述的計算機(jī)系統(tǒng),其特征在于,進(jìn)一步包括 至少一個組合系統(tǒng)實例,包括 一個對所述第一個組合系統(tǒng)類型的引用; 一個結(jié)果用來記錄所述至少一個組合系統(tǒng)實例結(jié)束時的情況;以及 至少一個階段機(jī); 其中所述至少一個階段機(jī)包括對所述至少一個的階段機(jī)類型的一個引用、一個當(dāng)前階段和至少一個階段; 其中所述至少一個階段包括對所述至少一個的階段類型的一個引用和一個子系統(tǒng)實例; 其中所述子系統(tǒng)實例是所述第二個組合系統(tǒng)類型的實例或所述第二個簡單系統(tǒng)類型的實例中的至少一個; 其中所述第二個簡單系統(tǒng)類型的實例包括對所述第二個簡單系統(tǒng)類型的一個引用和一個對執(zhí)行所述第二個簡單系統(tǒng)類型行為的成果進(jìn)行記錄的結(jié)果。
            全文摘要
            本發(fā)明提供了對動態(tài)應(yīng)用系統(tǒng)行為進(jìn)行建模的一套系統(tǒng)、過程和過程的運(yùn)用方法以及開發(fā)這種動態(tài)行為模型的方法。本發(fā)明提供了一個動態(tài)系統(tǒng)(即Dynamic System,簡稱DS)以及相應(yīng)的操作方法來對普遍的復(fù)雜而且動態(tài)的行為進(jìn)行建模。為了對一個分布式環(huán)境中的應(yīng)用系統(tǒng)進(jìn)行建模,本發(fā)明采用了一個外部的DS(即External DS)來對這個系統(tǒng)的外部行為進(jìn)行建模,而采用一個自主系統(tǒng)(即Proactive System)來對這個應(yīng)用系統(tǒng)的反應(yīng)式行為進(jìn)行建模,以及一個內(nèi)部DS(Internal DS)來對這個應(yīng)用系統(tǒng)的內(nèi)部主動式行為進(jìn)行建模。本發(fā)明同時還提供了表示DS以及它的組件的圖形化語言。最后本發(fā)明描述了一個系統(tǒng)化的方法,從外部行為推導(dǎo)出反應(yīng)式行為或者反過來,從反應(yīng)式行為推導(dǎo)出外部行為。
            文檔編號G06F9/44GK102736919SQ201210100410
            公開日2012年10月17日 申請日期2006年5月16日 優(yōu)先權(quán)日2005年5月16日
            發(fā)明者夏壽民 申請人:夏壽民
            網(wǎng)友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品
            国产色婷婷亚洲| 国产精品久久久久久久伊一| 91在线视频精品| 玖玖玖免费观看视频| 亚洲国产情侣| 在线观看亚洲专区| 亚洲福利一区二区精品秒拍| 亚洲精品成人在线| 精品久久九九| 国产高清一区| 国产在线观看网站| 一区二区三区精品视频| 在线观看欧美国产| 亚洲成人一区| 日韩精品视频在线观看免费| 久久综久久美利坚合众国| 欧美亚洲视频一区| 国产日韩一区二区三区在线观看| 亚洲精品美女久久久久网站| 日韩亚洲视频| 亚洲精品丝袜| 亚洲不卡视频在线| 精品在线不卡| 欧美成年黄网站色视频| 国产精品久久久久久久| 日本一区二区在线视频| 日韩制服在线| 亚欧洲精品在线视频免费观看| 久久久国产免费影院| 99久久免费精品| 国产va免费精品高清在线观看| 欧美一区二区在线| 亚洲伊人久久精品| 欧美激情综合色综合啪啪五月| 国产亚洲精品日韩已满十八| 亚洲国产高清在线| 97精品国产高清在线看入口| 亚洲一区二区免费视频| 国产精品99久久免费观看| 久久99精品久久久66| 欧美精品一区二区三区久久| 色婷婷狠狠久久综合五月| 欧美亚洲国产精品久久| 国产区一区| 成人一区视频| 久久精品国产免费中文| 久久成人综合网| 国产视频黄| 亚洲国产午夜电影在线入口| 国产一区二区不卡精品网站 | 日本中文字幕永久在线| 国产丶欧美丶日韩丶不卡影视| 亚洲人在线观看| 亚洲九九精品| 日韩欧美精品综合久久| 日韩精品欧美国产精品亚| 伊人国产在线播放| 亚洲视频一区在线观看 | 最新国产精品亚洲| 久久亚洲不卡一区二区| 99综合网| 成人日韩精品| 国产精品欧美在线观看| 日韩中文字幕视频| 九九色播| 亚洲高清国产一区二区三区| 亚洲天堂精品在线观看| 日韩不卡视频在线| 国产欧美日韩在线观看一区二区三区| 亚洲欧美日韩国产综合| 亚洲经典一区二区三区| 99精品日韩| 91手机看片国产永久免费| 成人福利在线播放| 日韩欧美在线不卡| 明星国产欧美日韩在线观看| 午夜免费成人| 国产午夜三级| 国产亚洲精品91| 国产a久久精品一区二区三区| 国产成人乱码一区二区三区| 伊人二区| 九九热久久免费视频| 国产永久免费爽视频在线| 91精品视品在线播放| 久久亚洲精选| 亚洲高清成人| 欧美国产高清欧美| 最新国产福利在线看精品| 欧美亚洲777| 国产午夜一区二区在线观看| 国产精品久久精品福利网站| 国产精品久久一区一区| 中文字幕在线观看91| 青青青手机在线视频| 亚洲精品二区| 欧美日韩中文字幕在线视频| 奇米影视一区二区三区| 日韩欧美一区二区三区在线播放| 日韩精品在线视频| 日韩精品一区二区三区中文版| 99re免费视频精品全部| 狠狠色婷婷狠狠狠亚洲综合| 欧美中文字幕在线看| 国产精品你懂的| 国产日韩欧美在线一区二区三区| 嫩草一区二区三区四区乱码| 日韩欧美精品一区二区| 成人a网站| 色综合久久88色综合天天| 国产精品真实对白精彩久久| 亚洲综合视频在线| 国产剧情一区二区三区| 国产午夜精品美女免费大片| 国产精品一区三区| 精品欧美一区二区精品久久| 国产欧美日韩精品一区二| 欧美精品免费专区在线观看| 亚洲视频在线网站| 一区二区三区欧美日韩国产 | 久久综合一个色综合网| 亚洲一区免费在线| 欧美一区二区日韩一区二区| 国产精品亚洲精品不卡| 蜜桃视频一区二区在线观看| 国产区在线观看| 亚洲欧美电影一区二区| 国产精品香蕉在线观看不卡| 午夜怡红院| 日本aⅴ在线不卡免费观看| 色欧美亚洲| 中文字幕国产一区| 国产97视频在线观看| 四虎国产视频| 亚洲综合视频网| 在线观看国产精品入口| 3344成年站福利在线视频免费| 日韩综合一区| 99精品视频在线观看免费| 成人a毛片久久免费播放| 国产日韩欧美一区二区三区综合| 欧美在线亚洲| 国产精品久久久久久久久福利| 中文字幕不卡在线观看| 久久综合九色| 国产精品黄色片| 国产亚洲欧美精品久久久| 欧美激情精品久久久久久久| 久久午夜网| 午夜在线视频观看| 日韩在线欧美在线| 精品久久久中文字幕一区| 国产精品久久久久一区二区三区| 99国产精品久久| 精品久久久久久中文字幕一区 | 亚洲日本在线免费观看| 日韩精品一区二区三区免费观看 | 91欧美一区二区三区综合在线 | 久久久久久岛国免费网站| 久久99精品国产99久久| 亚洲欧美日韩综合一区久久| 国产综合精品一区二区| 色婷婷久| 久久久久久麻豆| 自拍视频一区二区| 欧美精品一二区| 福利一区二区在线| 国产欧美二区三区| 亚洲精品国产综合一线久久| 欧美国产日韩综合| 日韩欧美国产精品第一页不卡 | 国产一区电影| 亚洲精品男人天堂| 视频一区日韩| 亚洲动漫第一页| 久久综合色婷婷| 91成人免费在线视频| 国产福利在线小视频| 99精品免费视品| 婷婷中文在线| 国产午夜精品免费一二区| 69国产成人综合久久精品91| 国产精品高清一区二区人妖| 亚洲精品二区| 亚洲成人免费在线| 国产成+人+亚洲+欧美综合| 亚洲一区欧美日韩| 国产人成在线视频| 国产精品亚洲国产三区| 欧美激情二区| 国产黄色在线播放| 国产成人精品综合久久久久性色| 九月婷婷人人澡人人爽人人爱| 国产精品v欧美精品∨日韩| 欧美综合区自拍亚洲综合| 最新欧美精品一区二区三区| 欧美日产国产亚洲综合图区一| 久久久无码精品亚洲日韩按摩| 日本一区不卡视频| 亚洲影视一区二区| 国产日韩精品一区二区三区 | 亚洲成人免费| 久久国产精品最新一区| 国产在视频线精品视频二代| 亚洲成人国产精品| 成人国产精品一级毛片了| 国产福利区一区二在线观看| 在线精品福利| 国产成人久久91网站下载| 亚洲网址在线| www.91免费视频| 91九色在线播放| 日本在线视频一区二区| 国产精品亚洲成在人线| 亚洲小视频在线播放| 亚洲欧美一区二区三区麻豆| 国产欧美精品一区aⅴ影院| 亚洲欧洲日本国产| 伊人久久国产| 五月婷婷综合在线| 国产精品视屏| 欧美一区二区福利视频| 在线日韩理论午夜中文电影 | 国产一区二区三区影院| 综合色中色| 国产精品成人一区二区不卡| 成人乱码一区二区三区| 亚洲男人在线天堂| 久久98精品久久久久久婷婷| 久久福利青草精品免费| 亚洲成人一区二区| 色综合中文字幕| 国产一区二区福利| 中文有码第一页| 五月天六月婷婷| 99九九成人免费视频精品| 日本vs欧美一区二区三区| 综合色伊人| 色99视频| 视频一区二区在线播放| 国产精品一区久久| 伊人久久综合网亚洲| 99re视频这里只有精品| 四虎在线免费视频| 一本色道久久综合狠狠躁篇 | 国产色综合网| 国产一区二区高清| 综合激情在线| 国产va免费精品高清在线观看 | 中文字幕久久久久一区| 中文字幕一区精品欧美| 在线观看国产小视频| 欧美激情综合亚洲五月蜜桃| 99久久精品国产麻豆| 亚洲男人网站| 成人综合视频网| 69黄在线看片免费视频| 国产成人在线精品| 欧美精品一二区| 久久国产99| 日本一区二区不卡久久入口| 亚洲欧美日韩精品久久| 日本在线视频不卡| 国产亚洲欧美ai在线看片| 久久免费播放视频| 日本欧美一区二区三区不卡视频| 99成人在线观看| 精品国产成人综合久久小说| 国产韩国精品一区二区三区| 九九99久久精品国产| 久久精品亚洲综合| 久久久久久国产精品免费| 亚洲精品色| 99riav国产| 亚洲一级毛片| 亚洲天堂欧美| 久久免费播放| 91中文字幕| 国产黄色在线观看| 日韩乱码视频| 在线视频精品视频| 欧美日韩精品一区二区三区视频| 日韩综合图区| 九九精品99| 99re久久精品国产首页2020 | 激情综合色综合久久综合| 国产精品久久久久久搜索| 99久久亚洲国产高清观看| 99久久99久久精品免费看蜜桃| 亚洲一区播放| 国精视频一区二区视频| 国产99久久久国产精品免费直播 | 亚洲欧美日韩中文综合v日本| 国产精品第一| 制服丝袜第二页| 亚洲一级黄色| 在线亚洲不卡| 久久久亚洲精品国产| 九九热只有精品| 日韩中文字幕精品久久| 国产精品男女| 香蕉视频在线观看免费国产婷婷 | 欧美一区二区在线观看| 麻豆91精品91久久久| 福利视频欧美一区二区三区| 久久久午夜| 免费看国产精品久久久久| 亚洲视频一二区| 亚洲国产专区| 蜜桃网站在线观看| 狠狠五月深爱婷婷网| 午夜免费成人| 日韩欧美二区| 国产在线观看免费一级| 国产精品视频无圣光一区| 国产免费一区二区三区免费视频 | 久久精品国产2020| 久久久综合香蕉尹人综合网| 亚洲天堂精品在线| 亚州视频一区二区| 成人午夜免费在线观看| 欧美在线观看一区| 麻豆精品视频在线| 国产丝袜制服在线| 国产区一区二区三| 欧美中文在线视频| 欧美精品免费看| 亚洲国产精品欧美综合| 欧美色丁香| 成人精品免费网站| 免费国内精品久久久久影院| 欧美日韩国产综合在线| 97久久综合九色综合| 伊人欧美| 亚洲国产日韩在线观看| 91成人啪国产啪永久地址| 日韩欧美视频在线播放| 免费视频国产| 亚洲一区二区视频| 欧美日韩国产亚洲一区二区 | 日韩不卡免费视频| 欧美国产在线观看| 国产综合视频在线| 国产一级视频久久| 国产精品久久久久久久| 亚洲一区免费视频| 中文字幕一区二区在线观看| 国产日韩欧美综合在线| 国产精品一页| 久久精品亚洲视频| 亚洲欧洲第一页| 欧美一区二区三区精品| 91免费国产精品| 国产人成久久久精品| 色综合合久久天天综合绕视看| 999国产视频| 国产永久免费视频m3u8| 日韩欧美一区二区中文字幕| 亚洲国产精品电影人久久网站| 国产亚洲精品综合在线网址| 国产精品人人爱一区二区白浆| 国产成人精品一区二区视频| 玖玖精品国产| 色欧美在线| 国产精品一久久香蕉产线看| 91精品免费看| 香蕉久久夜色精品国产小优| 久久电影精品久久99久久| 精品国产三级a∨在线观看| 欧洲精品一区二区| 欧美日韩国产在线人成| 亚洲成a人片在线网站| 国产精品亚洲精品日韩已满| 伊人干综合| 91香蕉视频app污| 一本久久精品一区二区| 色久悠悠色久在线观看| 精品一区二区久久久久久久网站 | 国产精品国产三级国产an| 国产精品亚洲片在线va| 国产成人亚洲精品乱码在线观看| 亚洲欧美综合一区| 久久国产精品亚洲一区二区| 制服丝袜怡红院| 国产va免费精品高清在线观看 | 亚洲人成一区二区三区| 中文字幕在线观看一区二区三区| 视频一区免费| 婷婷亚洲综合五月天小说| 亚洲二区在线视频| 国产一区二区在线看| 国产一区二区精品久久| 国产欧美网站| 97自拍视频在线观看| 国产一区二区三区高清 | 国产成人高清视频| 日韩在线天堂| 91国高清视频| 91精品国产三级在线观看| 国产综合91| 亚洲欧美日韩综合网导航| 欧美日韩福利视频| 亚洲国产精品自产拍在线播放| 成人在线激情网| 很黄很刺激的视频| 久久九九有精品国产23百花影院| 国内精品伊人久久久久| 午夜香蕉成视频人网站高清版| 欧美日韩国产在线观看| 久久电影院久久国产| 欧美午夜精品久久久久久黑人| 手机看片久久国产免费不卡| 日韩福利视频高清免费看| 精品久久网| 国产亚洲一区二区三区啪| 最新国产精品亚洲| 国产在线一区视频| 日韩综合第一页| 成人久久免费视频| 6699久久国产精品免费| 91国在线啪精品一区| 久久激情网| 亚洲精品国产不卡在线观看| 久久国产美女| 日韩福利一区| 站长推荐国产精品视频| 国产一区二区三区在线免费| 欧美日韩另类在线| 成人区精品一区二区不卡亚洲| 久久综合伊人77777麻豆| 在线观看视频一区二区| 亚洲一区免费在线观看| 国产亚洲欧美在在线人成| 亚洲国产日本| 亚洲免费一区| 99中文在线| 亚洲精品第一国产综合野| 久久青青国产| 日韩国产另类| 国产在线欧美日韩一区二区| 97久久精品视频| 亚洲另类在线欧美制服| 亚洲成人精品在线| 亚洲精品在线影院| 99久久精彩视频| 亚洲综合一区二区三区| 亚洲精品成人a| 久久久全国免费视频| 99热在线看| 亚洲欧美精品一区天堂久久| 亚洲经典在线中文字幕| 怡红院一区二区在线观看| 久久www免费人成_看片美女图| 成人免费a视频| 日韩精品亚洲专区在线影视| 91麻豆高清国产在线播放| 色老头久久久久久久久久| 亚洲另类天堂| 国产高清中文字幕| 七月婷婷丁香| 视频一区二区欧美日韩在线| 国产一区二区三区怡红院| 午夜亚洲国产成人不卡在线| 日韩深夜福利| 五月婷婷中文| 国产精品二区在线| 欧美不卡精品中文字幕日韩| 婷婷激情在线| 国产精品v欧美精品v日韩| 国产成人综合欧美精品久久| 亚洲天堂激情| 99久久99久久精品国产| 99综合精品久久| 色综合合久久天天综合绕视看| 麻豆一级片| 精品伊人久久久大香线蕉欧美| 一区二区三区视频网站| 亚洲大胆精品337p色| 亚洲精品青青草原avav久久qv| 国产精选在线观看| 亚洲日日夜夜| 久久精品久久久久久久久人| 麻豆91精品91久久久| 91视频一区二区| 日本亚洲欧洲免费无线码| 久久精品一本到99热免费 | 国产精品1页| 99综合色| 国内精品久久精品| 欧美日本中文字幕| 天天色综合色| 久久国产一片免费观看| 亚洲伦理一区二区| 亚洲综合在线播放| 丁香久久婷婷| 伊人天天操| 国产亚洲第一精品社区麻豆| 久夜色精品国产一区二区三区| 一本色道久久88综合亚洲精品高清| 久久国内免费视频| 久久免费看视频| 欧美成人自拍视频| 欧美日韩高清在线观看一区二区| 亚洲精品色| 国产精品日本一区二区不卡视频| 91中文字幕网| 亚洲精品日本高清中文字幕| 玖草资源在线| 国产成人亚洲综合a∨婷婷| 亚洲欧美日韩在线精品一区二区| 国产日韩欧美另类| 色噜噜狠狠一区二区三区果冻| 久久久中文字幕日本| 久久精品国产一区二区| 黄网在线观看网址入口| 国产精品成人va| 久久婷婷丁香| 五月婷婷综合激情| 成人一区视频| 精品国产人成在线| 亚洲香蕉中文网| 亚洲精选在线观看| 国产不卡一区二区视频免费| 色妞www精品视频免费看| 国产亚洲视频网站| 久久国产影视免费精品| 欧美精品免费一区欧美久久优播| 国产黄网| 国产日韩91| 国产精品久久久久久久久免费观看| 91香蕉国产视频| 亚洲国产网站| 一级爱做片免费观看久久| 91久久大香线蕉| 精品国产综合| 国产成人亚综合91精品首页| 伊人精品视频| 国产三区视频| 91精品国产色综合久久不| 99国产精品久久久久久久成人热| 国产亚洲三级| 91热久久免费精品99| 国产精品v欧美精品∨日韩| 亚洲人成一区| 亚洲人成电影青青在线播放| 欧美一区二区自偷自拍视频| 91亚洲精品视频| 亚洲国产日韩欧美| 亚洲人av高清无码| 狠狠色噜噜狠狠狠狠色综合网| 精品国产a| 国产精品综合视频| 亚洲精品成人网| 亚洲一级免费毛片| 亚洲人成网址在线观看| 99riav精品国产| 亚洲综合成人在线| 亚洲人成网国产最新在线| 国产一二区视频| 国产一区二区免费视频| 国产香蕉在线精彩视频 | 久久国产国内精品对话对白| 亚洲综合免费视频| 亚洲欧美在线视频| 亚洲经典在线| 日韩免费一区二区三区在线| 99成人精品| 四虎永久在线精品视频免费观看| 欧美精品v日韩精品v国产精品| 色www亚洲| 一区二区在线播放视频| 国产成人精品一区二三区| 国产在线一区二区| 国语对白一区二区三区| 中文字幕在线一区二区三区| 国产99精品在线观看| 久久久久国产成人精品亚洲午夜| 激情粉嫩精品国产尤物| 一区在线视频| 婷婷在线综合| 欧美国产精品不卡在线观看| 亚洲专区在线视频| 久久夜色国产精品噜噜| 中文精品久久久久国产网址| 欧美一区欧美二区| 一区二区三区欧美日韩国产| 福利视频一区| 伊人天堂网| 国产伦一区二区三区高清| 久久国产美女| 97超频国产在线公开免费视频| 99热在线免费观看| 天天躁狠狠躁| 亚洲经典在线| 亚洲欧洲在线播放| 国产精品麻豆久久久| 久久免费播放视频| 日韩欧美国产视频| 精品久久久久久蜜臂a∨| 精品国产v无码大片在线观看| 国产亚洲影院| 国内精品久久久久久99蜜桃| 99久久99久久免费精品蜜桃| 国产高清视频免费人人爱| 四虎在线免费播放| 日韩久久精品| 日韩一区二区三区在线免费观看| 久久99精品久久久久久综合| 日本一区不卡视频| 免费国产小视频| 亚洲午夜综合网| 精品欧美一区二区三区在线| 综合色吧| 亚洲网站大全| 中文字幕在线观看不卡| 国产精品一国产精品免费| 一级毛片免费视频观看| 国产高清一区| 亚洲自拍偷拍区| 福利片免费一区二区三区| 狠狠色丁香婷婷综合尤物| 国产欧美网站| 国产亚洲欧美日韩在线观看一区二区| 国产美女精品久久久久久久免费| 一区二区免费电影| 国产免费一区二区三区| 日韩免费一区二区| 国产一二三区视频| 中文字幕不卡在线播放| 国产精品videossex国产高清| 欧美日韩国产高清| 中文字幕天天躁日日躁狠狠躁免费| 中文字幕欧美一区| 99久久国产综合精品swag | 亚州一级毛片在线| 国产精品亚洲综合久久小说| 国产成人综合在线观看网站| 九九精品久久| 精品伊人久久久香线蕉| 日韩精品一区二区三区四区| 五月激情久久| 久久这里只有精品23| 久久99精品久久久久久牛牛影视 | 2019国产精品| 亚洲一级香蕉视频| 国产精品久久九九| 99视频一区| 综合网中文字幕| 国产成人精品日本亚洲专一区| 91国视频在线观看| 国产精品高清一区二区人妖| 青青草原国产在线| 国产91久久最新观看地址| 国产人成在线视频| 久久精品动漫网一区二区| 九九热在线观看| 亚洲天堂激情| 亚洲国产高清美女在线观看| 亚洲人免费视频| 欧美一二三区在线| 青青草原国产在线| 国产一区二区三区在线观看免费| 国语自产精品视频| 欧美国产在线观看| 欧美另类精品一区二区三区| 日本精品视频在线| 麻豆va在线精品免费播放| 久久国产精品99国产精| 亚洲一区二区色| 尤物精品在线观看| 亚洲成人免费观看| 久久精品三级| 99精品在线免费观看| 中文字幕国产一区| 亚洲fuli在线观看| 色综合88| 深夜性久久| 91国内在线视频| 中文字幕日韩丝袜一区| 久久精品国产精品青草不卡| 日韩欧美在线观看| 99热这里只有精品5| 亚洲高清在线观看| 亚洲日本va中文字幕区| 亚洲欧美日韩综合一区久久| 在线亚洲激情| 亚洲欧美精品丝袜一区二区| 欧美日韩中文字幕在线观看| 这里只有精品免费视频| 精品国产一级在线观看| 九九视频精品在线| 亚洲欧美视频网站| 欧美自拍另类| 亚洲综合网站| 欧美日韩一区二区三区四区在线观看 | 国产日韩免费| 中文字幕在线观看不卡| 国产精品亚洲午夜一区二区三区| 久久精品视频国产| 久久综合九色综合97小说| 久久久噜噜噜久久网| 亚洲第一页国产| 国产精品一区视频| 精品福利在线视频| 日本福利片在线观看| 91精品视品在线播放| 国产精自产拍久久久久久| 久久综合免费| 国产精品欧美在线观看| 日本不卡视频在线视频观看| 精品国产福利| 色综久久| 亚洲国产美女精品久久久久| 久久r这里只有精品| 国产成人亚洲综合在线| 99色精品| 国产成人毛片亚洲精品不卡| 国产欧美在线不卡| 国产高清a| 久久精品视频16| 五月婷婷六月丁香激情| 国产爽的冒白浆的视频高清| 亚洲综合久久1区2区3区| 狠狠色丁香婷婷综合精品视频| 国产福利一区在线| 午夜视频欧美| 久久久中文字幕日本| 国产精品福利久久香蕉中文| 91精品国产综合成人| 亚洲日韩精品欧美一区二区一| 波多野结衣国产一区二区三区| 国产综合亚洲专区在线| 伊人国产在线视频| 国产精品yy9299在线观看| 亚洲精品国产日韩| 亚洲狠狠| 国产成人鲁鲁免费视频a| 欧美日本一区二区三区| 日韩欧美亚洲精品| 亚洲国产精品自产拍在线播放 | 99久久成人| 欧美日韩综合网| 91手机看片国产福利精品| 黄色毛片在线播放| 国产精品成人va| 亚洲视频一区二区| 国产性大片免费播放网站| 色婷婷久久综合中文久久一本| 国产成人小视频| www日韩在线| 国产jiyzz视频在线看| 亚洲日本在线免费观看| 91精品国产综合久久婷婷| 免费国产高清精品一区在线| 制服丝袜一区二区三区| 一区二三国产| 欧美国产视频| 91av免费观看| 91寡妇天天综合久久影院| 九九亚洲精品| 91一区二区视频| 精品久久中文久久久| 欧美一区二区精品| 国产在线精品福利一区二区三区| 亚洲一本视频| 国产精品成人免费福利| 欧美国产亚洲一区| 视频在线国产| 亚洲国产欧美在线| 日日夜夜狠狠操| 婷婷久久五月天| 九九99久久精品国产| 日韩中文字幕网站| 久久久久亚洲| 国内精品伊人久久久久妇| 久久精品99毛片免费| 国产v在线播放| 亚洲一道本| 亚洲伊人色欲综合网| 欧美日韩在线观看一区二区| 日韩区欧美区| 亚洲欧美国产日韩制服bt| 国产精品久久久久9999高清| 亚洲人成网国产最新在线| 91精品国产综合久久| 综合国产| 91久久香蕉国产线看观看软件 | 日韩欧美一区二区三区视频| 欧美成在人线a免费| 在线精品亚洲欧洲第一页| 91小视频在线观看免费版高清| 亚洲高清一区二区三区四区| 99成人在线| 99久久免费精品高清特色大片| 日韩亚洲欧美一区| 亚洲视频天天射| 亚洲国产另类久久久精品小说| 五月婷婷视频在线| 99热这里只有成人精品国产| 精品久久九九| 久久精品国产一区二区小说| 丁香婷婷综合网| 欧美日韩1区2区| 精品欧美一区二区3d动漫| 狠狠色狠狠色很很综合很久久| 另类天堂网| 99九九成人免费视频精品| 亚洲精品国产精品乱码不卡| 久久免费精彩视频| 亚洲精品高清在线| 国产亚洲精品日韩已满十八| 国产精品二区页在线播放| 国产精品久久二区三区色裕| 国产成人久久精品激情| 国产69精品久久久久999三级| 国产亚洲一级精品久久| 精品精品国产自在香蕉网| 日韩美女一区二区三区| 在线观看国产麻豆| 成人久久久久| 国产真实偷乱视频在线观看| 欧美韩日国产| 精品欧美一区二区在线观看欧美熟| 久久精品国产一区二区三区不卡| 久久综合伊人77777麻豆| 69国产成人综合久久精| 国产欧美va欧美va香蕉在线| 日本青青草视频| 色综合88| 精品亚洲欧美中文字幕在线看| 国产精品亚洲综合网站| 国产第一福利精品导航| 伊人久久大香| 高清一区二区三区视频| 亚洲国产经典| 久久精品国产亚洲精品| 国产免费a| 亚洲自拍中文| 天天狠狠操| 国产精品亚洲欧美日韩区| 日本久久综合视频| 精品国产日韩亚洲一区二区| 久久久毛片免费全部播放| 欧美成在线播放| 中文字幕综合久久久久| 亚洲色图另类| 国产视频黄| 国产色综合网| 久久综合影院| 亚洲国产成人资源在线桃色| 国产精品综合视频| 亚洲欧美偷拍视频| 久久极品| 欧美日韩亚洲综合| 中文字幕久久精品| 久久亚洲国产精品| 亚洲欧洲一二三区| 成人网在线视频| 欧美视频免费一区二区三区 | 成年人国产| 97国产精品| 亚洲欧美一区二区三区另类 | 国内精品久久影视免费| 久久精品黄色| 国内精品久久国产大陆| 九九热只有精品| 一区二区免费在线观看| 亚洲天堂一区二区三区| 国产精品日韩欧美一区二区三区| 日韩欧美成人乱码一在线| 欧美综合色| 五月国产综合视频在线观看 | 国产视频资源| 国产成人一区免费观看| 亚洲人成小说色在线| 亚洲人视频在线观看| 天天操中文字幕| 国产精品被窝福利一区| 国产精品国产香蕉在线观看网| 国产成人亚洲精品老王| 日本伊人精品一区二区三区| 婷婷六月激情在线综合激情| 久久狠狠色噜噜狠狠狠狠97| 国产成人精品免费视频大| 亚洲国产精品久久综合| 日本二区在线观看| 国产精品99久久久| 日韩视频在线一区| 亚洲精品自拍区在线观看| 日本高清在线一区| 成人日韩精品| 91精品久久一区二区三区| 亚洲人成综合在线播放| 日韩欧美亚洲一区| 亚洲综合色一区二区三区| 日韩成人中文字幕| 精品国产专区91在线尤物| 日韩精品福利在线| 亚洲日本一区二区三区在线不卡| 毛片网站在线观看| 成人精品区| 国产一区二区三区在线| 中文字幕精品久久| 中文字幕在线看片成人| 久久久久久久国产视频| 国产精品久久久福利| 久久99国产精一区二区三区| 亚洲丝袜中文字幕| 欧美日韩一区不卡| 日韩成人午夜| 亚洲国产精品综合久久20| 91在线中文字幕| 欧美精品一区二区三区在线播放| 亚洲综合网在线观看首页| 91久久偷偷做嫩草影院免费看| 亚洲国产资源| 91在线精品你懂的免费| 日本a中文字幕| 欧美高清精品| 国产不卡在线观看| 青青草成人在线观看| 99久久国产综合精品五月天| 久久精品伊人网| 国产一区二区三区高清视频| 国产精品久久久久久久久久久久久久| 国产精品无需播放器| 久久综合视频网站| 国产伦理一区二区三区| 免费人成在线视频播放2022| 国产成人精视频在线观看免费| 91精品福利手机国产在线| 国产亚洲精品va在线| 亚洲免费一区二区| 91av视频免费在线观看| 久久黄色影片| 国产成人在线综合| 青草国产| 热re99久久精品国产99热| 一区二区三区欧美| 欧美日韩成人高清色视频| 99久久这里只有精品| 亚洲人成网站色7799在线观看| 久久综合一区| 99re这里只有精品在线| 天天色综合6| 亚洲一本| 日本高清视频www| 国产精品自在线| 欧美成人高清性色生活| 欧美精品免费专区在线观看| 国产高清免费不卡观看| 亚洲绝美精品一区二区| 亚洲一区免费| 久青草国产免费观看| 国产高清网站| 久热这里都是精品| 国产午夜亚洲精品理论片不卡| 免费国产午夜在线观看| 国产v精品欧美精品v日韩| 毛片在线播放网站| 99精品视频在线观看免费专区| 国产v欧美v日本v精品| 久久综合久久久| 高清国产精品久久| 久久精品视频大全| 亚洲综合久久久久久888| 精品一区国产| 国产欧美二区三区| 国产精品剧情原创麻豆国产| 亚洲精国产一区二区三区| 国产成人一区二区三区| 亚洲欧洲视频在线| 日本综合欧美一区二区三区| 怡红院美国分院一区二区| 国产一级片在线播放| 福利一区二区视频| 2021久久精品永久免费| 久久www免费人成看片色多多| 国产精品一在线观看| 四虎国产精品永久在线播放| 另类色综合| 亚洲日本中文字幕区| 亚洲精品欧洲精品| 国产精品一区二区不卡的视频| 亚洲国产精品一区二区久久| 久久精品亚洲视频| 99久久精品费精品国产| 午夜久久久久久网站| 99九九久久| 国产精品日韩欧美久久综合| www.亚洲天堂| 国产吧在线视频| 久久精品一区二区国产| 亚洲视频一区在线播放| 99精品视频在线观看re| 国产91在线免费观看| 亚洲欧美日韩在线2020| 亚洲视频一区二区| 午夜精品免费| 日本精品视频一区二区三区| 伊人不卡久久大香线蕉综合影院| 国产精品美女一级在线观看 | 亚洲一区二区三区不卡在线播放| 国产精品国产三级国产专播下| 国产黄色片在线观看| 国产精品视频一区二区三区经| 久久成人精品视频| 亚洲天堂小视频| 国产在线观看99| 欧美成国产精品| 国产小视频在线看| 99精品视频在线视频免费观看| 色综合色综合色综合| 在线国产日韩| 亚洲日本香蕉视频| 国产高清中文字幕| 伊人国产在线视频| 国产精品杨幂va在线观看| 国产99视频精品免视看7| 欧美亚洲777| 国产黑人在线| 四虎免费在线观看视频| 麻豆精品在线| 国产在线观看精品香蕉v区 | 国产免费一级在线观看| 亚洲日韩欧美综合| 亚洲一区影院| 婷婷99| 国产一区二区三区手机在线观看| 国产精品天堂| 一本久久精品一区二区| 亚洲国产天堂久久综合图区| 亚欧成人在线| 精品免费久久| 亚洲精品国产不卡在线观看| 伊人网综合在线| 亚洲欧美高清视频| 久久精品久久久久久久久人| 久久一区二区精品| 午夜日韩| 欧美在线国产| 国产成人免费网站| 免费视频久久| 中文字幕精品视频在线观| 欧美精品91| 国产成人小视频在线观看| 中文字幕在线一区二区三区| 丝袜国产一区| 国产玖玖| 精品国产日韩亚洲一区二区| 精品中文字幕不卡在线视频| 99久热成人精品视频| 亚洲国产精品久久久久666| 91av电影在线观看| 久久久久综合国产| 91精品观看91久久久久久| 91精品视频免费观看| 欧美高清国产| 欧美成人日韩| 久久99国产精品久久99软件| 亚洲国产影视| 91精品国产免费自在线观看| 国产欧美精品午夜在线播放| 欧美黑人在线色天天久久| 日本成人福利视频| 国产99视频在线| 色综合久久天天综合绕观看| 成人国产精品免费视频不卡| 999精品视频| 国产99精品在线观看| 国产一区二区高清视频| 国产精品亚洲第五区在线| 国产精品中文字幕在线观看| 久久97精品久久久久久久看片| 亚洲七七久久精品中文国产| 九九九久久久| 亚洲人成一区二区不卡| 久久精品一区二区三区不卡牛牛| 国产精品www| 最新国产精品自拍| 欧美日韩中文国产| 精品欧美一区二区三区在线| 亚洲欧美一区二区三区在饯| 日本亚洲欧美美色| 91免费观看视频| 91精品国产91| 狠狠久久久久久亚洲综合网| 福利片免费一区二区三区| 国产亚洲欧美久久久久| 色呦色呦色精品| 国产天堂在线观看| 色综合99| 久久精品8| 亚洲天堂精品在线观看| 亚洲国产欧美亚洲gif动图| 午夜香蕉成视频人网站高清版| 欧美专区在线观看| 日韩在线视频一区| 午夜视频在线观看一区二区| 伊人青青青| 久久成人免费| 91精品91久久久| 91av在线导航| 亚洲综合久久久久久888| 一区二区3区免费视频| 精品国产_亚洲人成在线高清| 日本高清久久| 久久久婷| 国产一区二区三区免费播放| 99久久婷婷国产综合精品电影| 久久精品成人一区二区三区| 九九国产视频| 91在线精品你懂的免费| 在线国产91| 伊人首页| 国产精品久久久久网站| 国产在线观看自拍| 久久久午夜毛片免费| 亚洲综合网国产福利精品一区| 国产福利片在线| se成人国产精品| 国产区福利| 国产丝袜视频| 99国产精品久久| 福利一区二区视频| 国产精品九九九久久九九| 亚洲成人综合网站| 九九激情视频| 成人免费一区二区三区在线观看| 色综合久久天天综合观看| 国产不卡在线视频| 国产97色在线|日韩| 国产欧美一区二区另类精品| 日本久久综合| 国产精品亚洲精品不卡| 在线观看91精品国产不卡免费| 99精品欧美一区二区三区| 成人av手机在线观看| 国产精品福利久久香蕉中文| 狠狠色欧美亚洲狠狠色www| 国产精品你懂的在线播放| 亚洲五月婷婷| 99精品视频在线播放2| 久久久96| 婷婷色中文网| 国产成人精品999在线观看| 奇米色88欧美一区二区| 日韩午夜在线观看| 久久精品一区二区三区四区 | 国产激情视频一区二区三区| 亚洲热综合| 亚洲成年人网址| 欧美日韩福利视频| 一区二区美女视频| 制服丝袜第五页| 国产精品九九视频| 亚洲精品视频免费观看| 在线色综合| 亚洲日本三级| 91小视频在线观看免费版高清| 国产精品无需播放器| 国产精品久久一区一区| 国产日韩精品欧美一区色| 国产成人综合网| 日本一区免费在线| 久久国产免费观看精品1| 日韩欧美一区二区久久| 99麻豆久久久国产精品免费| 午夜精品久久久久久 | 久久曰视频| 久久中文字幕视频| 伊人久久婷婷| 国产午夜偷精品偷伦| 欧美精品在线免费观看| 麻豆一区| 亚洲一区综合| 久久www免费人成_看片美女图| 精品成人免费自拍视频| 精品伊人久久久大香线蕉欧美| 五月天亚洲综合| 在线欧美69v免费观看视频| 中文字幕久久久久一区| 国产精品一二区| 亚洲欧洲一级| 亚洲国产精品婷婷久久久久| 狠狠婷婷| 久久精品亚洲乱码伦伦中文| 七月婷婷丁香| 日本高清视频成人网www| 日韩欧美高清| 久久久中文| 日韩免费一区二区| 亚洲精品国产日韩| 久久国产视频精品| 视频一区亚洲| 伊人网国产| 亚洲欧美精品成人久久91| 国产成人香蕉| 国产精品18| 国产精品久久久久久久久久久不卡| 黑人巨大精品欧美一区二区| 午夜视频欧美| 亚洲黄视频在线观看| 日韩精品欧美视频| 亚洲无线码一区二区三区| 亚洲精品自在线拍| 日韩二区三区| 亚洲无毛| 亚洲一区在线视频| 日韩精品在线一区二区| 91香蕉视频免费在线观看| 青草国产| 制服丝袜日韩中文字幕在线| 国产99精品在线观看| 伊人精品国产| 国产成人久久777777| 精品久久久久久无码中文字幕| 国产亚洲精品国看不卡| 亚洲视频一区在线播放| 国产精品入口麻豆午夜| 2021国产精品自产拍在线| 狠狠久久久久久亚洲综合网 | 久久久综合香蕉尹人综合网| 国产欧美亚洲精品第一页青草 | 欧美在线视频一区二区| 伊人网色| 午夜免费看视频| 依人在线免费视频| 日韩中文字幕久久精品| 狠狠综合久久久久尤物丿| 亚洲欧美中文日韩在线| 亚洲精品免费在线视频| 国产亚洲欧美日韩在线观看一区二区| 美女福利网站视频在线观看| 国产日韩欧美另类| 亚洲国产成人超福利久久精品| 久久精品无遮挡一级毛片| 精品亚洲成a人在线播放| 亚洲啪啪网址| 免费国产吹潮视频在线| 色综合久久久久久久久久久| 99热一区| 日韩欧美精品| 国产精品午夜久久久久久99热| 国外欧美一区另类中文字幕| 亚洲精品麻豆| 精品日本久久久久久久久久| 国产精品电影一区二区| 91视频免费观看| 精品免费在线视频| 香蕉久久a毛片| 国产拍拍拍精品视频| 九九热视频免费观看| 玖玖精品国产| 日本免费一区二区三区在线看| 色www亚洲| 玖玖精品| 国产欧美一区二区三区视频在线观看| 久久91精品久久91综合| 九九热精品在线| 伊人国产视频| 亚洲天堂视频在线观看| 一级毛片特级毛片国产| 国产a免费观看| 日韩欧美一区| 欧美成a人片在线观看久| 国产精品偷伦视频免费观看了| 国产高清在线精品一区导航| 九九热在线视频免费观看| 91在线视频精品| 日韩欧美视频在线播放| 很黄很刺激的视频| 国产婷婷一区二区三区| 色狠狠一区二区| 国产亚洲综合| 久久精品国产精品亚洲精品| 日本一区二区视频在线观看| 亚洲激情在线看| 日本伊人精品一区二区三区| 日韩精品成人a在线观看| 精品日韩一区二区三区| 91麻豆国产精品91久久久| 免费播放美女一级毛片| 亚洲精品欧洲精品| 欧美在线亚洲| 国产成人毛片毛片久久网| 一区二区中文字幕| 激情综合色综合久久综合| 亚洲精品美女在线观看| 99久久综合狠狠综合久久| 欧美激情第一区| 欧美日韩在线精品一区二区三区 | 中文字幕欧美日韩在线不卡| 欧美日韩一区二区三区四区在线观看| 欧美99热| 日韩在线观看精品| 国产在线观看青草视频| 四虎精品影院永久在线播放 | 91普通话国产对白在线| 综合欧美日韩| 久久亚洲精品中文字幕| 亚洲午夜精品在线| 日韩一区二区三区在线观看| 亚洲欧美日韩精品久久亚洲区色播| 日韩视频中文字幕视频一区| 国产丝袜视频在线| aaa级精品久久久国产片| 亚洲国产欧美日韩一区二区三区| 99精品国产自在现线观看| 国产成人综合在线| 99久久精品毛片免费播放| 亚洲综合狠狠| 一级色网站| 国产伦理久久精品久久久久 | 欧美日韩高清观看一区二区| 久久精品99久久香蕉国产色戒| 在线观看精品视频看看播放| 精品欧美一区二区三区在线| 久久久久久久久综合影视网| 国产精品999在线| 久久乐国产精品亚洲综合18| 国产呦精品一区二区三区网站| 国产在线观看青草视频| 欧美综合自拍亚洲综合图自拍| 亚洲一区二区精品| 久久加勒比| 欧美高清在线视频在线99精品| 国产亚洲免费观看| 久久国产精品久久久久久久久久| 伊人久久青草| 国内精品视频| 福利一区二区在线| 欧美亚洲中日韩中文字幕在线| 亚洲欧洲精品国产二码| 天天色综合6| 国产高清精品久久久久久久| 中文字幕欧美在线| 伊人久久大香线蕉资源| 国产欧美国产精品第一区| 狠狠亚洲狠狠欧洲2019| 国产精品久久久久三级| 91欧美精品激情在线观看| 欧美一级中文字幕| 伊人久久综合成人亚洲| 99精品热| 456亚洲视频| 成人国产一区| 在线视频一区二区三区| 日韩欧美国产视频| 欧美精品一卡二卡| 亚洲精品www久久久久久| 国产精品久久久免费视频| 成人毛片手机版免费看| 视频在线一区二区三区| 国产精品久久久久久久久久妇女| 久久美女免费视频| 日韩一区二区三区在线观看| 在线观看中文字幕一区| 国产亚洲欧美日韩综合综合二区| 在线一区播放| 国产视频黄| 国产精品一级毛片不收费| 国产精品九九免费视频| 久久精品一区二区三区资源网| 欧美色欧美亚洲另类二区| 久久中文字幕综合婷婷| 国产99欧美精品久久精品久久| 国产a久久精品一区二区三区| 91免费视频观看| 日韩欧美一区二区不卡| 国产99视频精品免视看7| 亚洲色图欧美一区| 亚洲不卡一区二区三区| 国产精品福利在线观看秒播| 日韩精品久久久久久久电影| 免费精品视频在线| 久久精品美乳| 亚洲天天综合色制服丝袜在线| 亚洲高清在线观看| 亚洲成年人免费网站| 国产在线第三页| 国产一区精品在线| se成人国产精品| 久久国产精品系列| 99国产在线| 欧美亚洲视频在线观看| 狠狠婷婷| 亚洲系列国产精品制服丝袜第| 久久国产精品久久久久久久久久| 国产99精品在线观看| 国产精品视频专区| 午夜国产精品久久影院| 欧洲国产伦久久久久久久| 国产精品久久久久久久久久久久 | 91精品观看91久久久久久| 日韩欧美中文字幕在线观看 | 日本中文字幕一区| 日本不卡免免费观看| 国产精品天堂avav在线| 国产成人在线网站| 精精国产www视频在线观看免费| 91福利一区二区三区| 中文字幕国产精品| 亚洲一区二区色| 亚洲成a人一区二区三区| 久久青青成人亚洲精品| 国产精品极品美女自在线看免费一区二区 | 欧美在线专区| 久久福利青草精品资源| 欧美中文日韩| 亚洲经典三级| 国产亚洲制服| 亚洲一区二区免费视频| 美女福利视频一区二区| 中文字幕日韩精品中文区 | 欧美一欧美一区二三区性| 免费国产小视频| 日本在线一区二区三区| 日韩精品中文字幕久久| 国产在线不卡视频| 99国产热| 日本免费久久| 国产成人综合久久精品亚洲 | 国产精品免费看| 色综合久久一区二区三区| 久久网精品视频| 国产午夜亚洲精品不卡| 九月婷婷综合| 精品国产91久久久久| 精品欧美日韩一区二区| 97狠狠| 一区二区三区四区亚洲| 视频在线国产| 九九午夜| 欧美手机手机在线视频一区| 国产成人精品午夜在线播放| 亚洲综合色婷婷中文字幕| 亚洲欧美日韩网站| 久久成人精品视频| 99国产成人高清在线视频| 精品国产日韩亚洲一区在线| 日韩精品免费看| 亚洲成年网站在线观看| 依人综合| 国产午夜精品一区二区三区| 日韩福利在线| 精品国产精品国产| 中文字幕久久久久久久系列| 日韩亚洲视频| 明星国产欧美日韩在线观看| 亚洲精品成人av在线| 精品国产精品久久一区免费式| 国产在线精品成人一区二区三区| 精品国产精品久久一区免费式| 国产原创麻豆| 国产真实交换配乱吟91| 久久国语| 国产成人精品cao在线| cao死你国产在线观看| 欧美日韩国产一区二区三区播放| 无码日韩精品一区二区免费| 欧美在线不卡| 狠狠色伊人久久精品综合网| 亚洲伊人久久大香线蕉啊| 欧美成人午夜不卡在线视频| 四虎永久在线观看免费网站网址| 国产123区| 亚洲欧美一区二区久久 | 亚洲四虎影院| 综合久久久久久| 国产中文字幕第一页| 久久精品国产曰本波多野结衣| 最新国产福利在线看精品| 免费日本一区| 久久久久夜色精品波多野结衣| 中文字幕一区二区三区不卡| 青青草国产精品久久久久| 国产亚洲精品美女| 欧美日韩亚洲国产精品一区二区 | 久久精品资源| 久久国产成人| 久久91精品牛牛| 午夜视频免费| 色综合视频在线| 狠狠色丁香婷婷| 91不卡视频| 香蕉99国内自产自拍视频| 久久一区二区精品| 国产日韩欧美第一页| 日韩精品导航| 亚洲国产字幕| 在线观看欧美亚洲日本专区| 欧美日韩国产在线人| 亚洲成a人片在线播放观看国产| 国产第一福利精品导航| 精品久久久中文字幕| 六月婷婷导航福利在线| 97成人免费视频| 久久午夜视频| 精品亚洲性xxx久久久| 四虎永久在线精品视频免费观看 | 99精品久久久久久久免费看蜜月| 亚洲精品美女在线观看播放| 在线国产小视频| 成人国产精品毛片| 欧美日本一道免费一区三区 | 国产精品九九免费视频| 亚洲福利在线播放| 香蕉视频国产在线观看| 91麻豆精品国产91久久久久 | 婷婷开心综合| 色偷偷综合网| 亚洲精品国产手机| 亚洲性视频在线| 久久精品美女| 在线观看亚洲欧美| 99国产情在线视频| 日韩一区二区三区免费| 久久久久久久亚洲精品| 99ri国产精品| 亚洲精品国自产拍在线观看| 婷婷丁香亚洲| 91精品国产欧美一区二区| 国产va免费精品高清在线观看| 亚洲一二三区视频| 久久综合一本| 国产成人精品综合| 亚洲狠狠婷婷综合久久久久 | 国产丝袜不卡一区二区| 久热中文| 欧美视频在线观看第一页| 成人久久伊人精品伊人| 久久香蕉精品成人| 亚洲国产美女精品久久| 久久99精品久久久久久噜噜丰满| 在线免费观看国产精品| 国产欧美日韩精品a在线观看| 色婷婷国产| 亚洲国产制服| 国产自产在线| 精品久久亚洲| 亚洲国产高清视频| 麻豆国产高清精品国在线| 91福利视频一区| 国产在线一91区免费国产91| 久久精品国产国语对白| 久青草免费视频| 亚洲欧美中文字幕专区| 成人乱码一区二区三区| 依人综合| 日韩成人国产精品视频| 亚洲综合一区二区三区| 亚洲综合精品| 久久久999久久久精品| 久青草国产在线| 日韩精品一区二区三区在线观看| 国产综合福利| 亚洲天堂网站在线| 久久香蕉国产线看观看精品蕉| 国产亚洲一区二区三区啪| 欧美亚洲中日韩中文字幕在线| 精品国产精品国产| 国产尤物视频在线| 亚洲一区二区三区久久久久| 一区视频在线播放| 五月婷婷色综合| 亚洲成人播放| 精品看片| 国产小视频网站| 国产一区在线视频观看| 麻豆精品在线观看| 亚洲天堂黄| 欧美综合天天夜夜久久| 亚洲视频精品在线观看| 中文字幕久久久久久久系列| 亚洲欧美日韩精品久久奇米色影视 | 99精品久久久久久久| 毛片入口| 日韩精品一区二区三区中文版| 国产在线a不卡免费视频| 亚洲一道本| 亚洲精品午夜aaa级久久久久| 亚洲国产欧美日韩精品一区二区三区| 高清毛片一区二区三区| 亚欧美综合| 91小视频在线播放| 国产在线a| 亚洲日韩精品欧美一区二区| 99国产精品一区二区| 亚洲欧美视频在线播放| 成年人一级毛片| 99久久久免费精品免费| 欧美日韩高清在线观看| 国产主播精品| 蜜桃成人精品| 国产成人精品日本亚洲直接| 国产亚洲欧美另类专区| 国产小视频精品| 国产伦一区二区三区高清| 四虎最新网址在线观看| 亚洲成年人免费网站| 国产精品视频二区不卡| 国产精品久久久久久久久久久不卡| 国产三级久久久精品麻豆三级| 国产精品美女一级在线观看 | 亚洲一区二区在线视频| 国产精品久久久久久免费| 欧美不卡视频在线观看| 一区二区在线免费视频| 日韩黄色精品| 五月天综合网站| 欧美精品v国产精品v日韩精品| 久久婷婷综合| 色一区二区| 中文字幕久久久久久精| 久久女人天堂| 欧美在线观看一区| 欧美日韩高清| 国产欧美二区三区| 综合国产| 国产精品区网红主播在线观看| 久久91精品牛牛| 91国偷自产一区二区三区蜜臀| 亚洲午夜视频| 欧美亚洲图区| 97成人精品| 99国产在线| 久久精品呦女| 国产精品美女一区二区| 久久综合久| 美女福利一区| 精品福利视频网| 亚洲精品亚洲人成毛片不卡| 国产自在自线午夜精品视频在| 最新狠狠色狠狠色综合| 亚洲va久久久噜噜噜久久天堂| 国产综合久久久久久| 国产综合亚洲专区在线| 成人在线视频一区| 精品一区二区在线| 国产a视频精品免费观看| 日韩一区二区三区四区五区| 国产亚洲欧美精品久久久| 无码一区二区三区视频| 99热这里只有精品国产免费| 亚洲线精品一区二区三区| 久久精品中文字幕首页| 国产精品一区二| 91精品久久| 日韩欧美亚洲国产精品字幕久久久| 在线成人综合色一区| 日韩免费视频一区| 亚洲色图欧美一区| 国产欧美日韩在线| 欧美国产在线视频| 久久人人做人人玩人精品| 日本高清不卡网站免费| 五月天婷婷网站| 99re8免费视频精品全部| 亚洲制服丝袜在线观看| 国产精品亚洲一区二区三区| 国产精品免费观看| 国产欧美成人一区二区三区| 91视频亚洲| 99国产精品一区二区| 日韩欧美一区二区三区久久| 国产在线a| 国产成人久久蜜一区二区| 国产精品免费看久久久久| 久久99精品久久| 国产激情视频网站| 日本成人精品| 国产成人香蕉| 国产高清在线精品一区导航| 五月婷婷六月天| 九一精品国产| 亚洲精品9999久久久久| 国产亚洲精品在天天在线麻豆| 99久久99久久久精品齐齐鬼色| 国产成人久久综合热| 福利区在线观看| 午夜成人免费视频| 日韩欧美在线观看一区| 91亚洲精品福利在线播放| 99久久精品免费看国产一区二区三区| 99在线精品免费视频| 亚洲精品系列| 日韩欧美一区二区三区免费看| 亚洲人成亚洲人成在线观看| 日韩第三页| 国产中文字幕免费观看| 国产成人一区二区三区在线视频| 亚洲综合色站| 欧美日韩中文字幕在线手机版本| 国产成人91激情在线播放| 国产人久久人人人人爽| 亚洲综合精品一区| 国产黄色免费看| 99久久精品免费看国产情侣| 亚洲免费成人在线| 91在线看片一区国产| 久久亚洲欧美成人精品| 97久久久亚洲综合久久88| 久久免费精彩视频| 国产精品公开免费视频| 欧美日韩亚洲国产| 亚洲国产日韩综合久久精品| 国产高清精品自在线看| 久久夜色精品国产噜噜亚洲a| 久久精品屋| 国产欧美日韩一区二区三区| 亚洲国产综合视频| 日本一道本中文字幕| 亚洲欧美日韩国产综合| 色综合区| 国产欧美日韩精品高清二区综合区| 久久99国产精一区二区三区| 亚洲精品系列| 青青草99久久精品国产综合| 97国产在线公开免费观看| 国产1区2区| 青草视频在线观看免费| 国产精品对白刺激久久久| 久久久久香蕉| 国产成人精品久久二区二区| 综合国产在线| 亚洲免费精品视频| 一级毛片在线播放免费| 制服丝袜一区二区三区| 亚洲视频在线观看免费| 另类色综合| 国产成人精品亚洲一区| 亚洲日本黄色片| 色老头一区二区三区在线观看| 狠狠色丁香婷婷综合最新地址| 99热2| 久热精品视频在线观看| 香蕉久久国产| 亚洲伊人久久网| 一本久道久久综合狠狠爱| 99久久综合久中文字幕| 亚洲欧美国产日产综合不卡| 99久久免费精品视频| 欧美日韩亚洲成色二本道三区| 97国产精品人人爽人人做| 最新在线精品国自产拍网站| 久久久99精品久久久| 亚洲色中文字幕在线播放| 国内精品在线视频| 五月婷婷色综合| 久久青青成人亚洲精品| 99久久亚洲| 欧美日韩一区二区三区高清不卡| 视频在线一区二区三区| 日韩免费高清| 99精品视频在线免费观看| 久久久精品免费免费直播| 日本免费一区二区三区视频| 国产一区二区三区国产精品| www亚洲一区| 亚洲一区第一页| 亚洲精品乱码久久久久久中文字幕| 亚洲成a人| 久爱免费精品视频在线播放 | 狠狠色伊人久久精品综合网| 日韩精品亚洲一级在线观看| 久久久精品免费国产四虎| 欧美国产日韩综合| 亚洲国产天堂久久综合226 | 亚洲精品第五页中文字幕| 久久ri精品高清一区二区三区| 精品欧美一区二区在线观看| 亚洲欧美一区二区三区导航| 成人欧美一区二区三区在线观看| 国产精品一区久久| 欧美精品在欧美一区二区| 久久午夜夜伦鲁鲁影院| 91热久久免费频精品动漫99| 国产精品亚洲片在线观看不卡| 国产伦精品一区二区三区免费| 亚洲激情自拍偷拍| 日本a在线天堂| 亚洲视频欧美| tom影院亚洲国产日本一区| 欧美日韩亚洲综合在线一区二区| 日韩国产欧美| 538国产在线| 欧美日韩福利视频| 久久夜色精品国产噜噜亚洲a| 亚洲国产网| 国产情侣久久| 狠狠综合久久久久综合小说网| 日韩精品成人| 亚洲性综合网| 韩国一区二区三区视频| 亚洲综合91社区精品福利| 99久久精品国产免费| 精品久久久久久久久免费影院| 九九精品国产| 日韩精品午夜| 国产高清不卡视频在线播放| 亚洲一区二区三区不卡在线播放| 久久国产精品免费观看| 亚洲一区二区在线视频| 国产美女久久| 久久精品国产亚洲黑森林| 亚洲va中文va欧美va爽爽| 欧美亚洲福利| 国产伦一区二区三区免费 | 国产香蕉尹人综合在线| 亚洲精品高清久久| 国产日韩欧美不卡www| 国产不卡在线视频| 91免费在线看| 日韩综合久久| 久久精品国产2020| 久久精品资源| 亚洲视频天堂| 97精品视频在线| 国产一级淫片免费播放| 婷婷丁香亚洲| 欧美国产免费| 色婷在线| 日韩一区二区三区在线视频| 国产一区二区三区国产精品| 久久国产精品网| 亚洲国产精品久久久久婷婷老年| 99riav国产| 色综合久久中文色婷婷| 久久国产热视频| 国产区小视频| 麻豆综合网| 亚洲国产午夜电影在线入口| www.91免费视频| 国产婷婷成人久久av免费高清| 国产视频福利在线| 免费精品美女久久久久久久久久| 国产免费一级高清淫日本片| 国产午夜精品1区2区3福利| 天天色视频| 成人久久18免费网| 免费网站看v片在线成人国产系列| 国产一区二区丁香婷婷| 国产精品视频专区| 91精品国产亚一区二区三区| 国产在线91在线电影| 中文日本免费高清| 伊人久久大香| 在线观看国产日韩| 国产精品久久久| 亚洲国产精品丝袜国产自在线| 亚洲国产午夜看片| 在线看一区二区| 亚洲国产日韩欧美综合久久| 国产伦理一区二区三区| 国产一区二区三区在线免费观看| 久久精品久久久| 欧美一区福利| 日韩久久中文字幕| 国产一精品一av一免费爽爽| 日本高清不卡二区| 久草国产在线观看| 亚洲丝袜制服欧美另类| 精品国产网站| 国产美女在线播放| 国产精品久久久久9999赢消| 精品亚洲欧美无人区乱码| 一区二区免费播放| 日韩精品在线观看视频| 亚洲毛片网| 国产午夜精品久久理论片小说| 四虎永久免费在线观看| 日韩精品欧美视频| 色综合久久天天综合观看| 国产精品视频观看| 亚洲精品ty久久久久久久久久| 怡春院久久| 亚洲精品影院久久久久久| 亚洲欧美国产日本| 欧美国产日韩久久久| 91在线精品麻豆欧美在线| 97视频免费在线观看| 国内精品视频在线观看| 亚洲精品网站在线观看不卡无广告| 亚洲色图欧美色| 国产精品福利在线观看| 亚洲午夜久久久久中文字幕| 99re在线视频播放| 亚洲欧美人成人综合在线50p | 亚洲综合日韩在线亚洲欧美专区| 国产乱妇高清无乱码免费| 国产精品99精品久久免费| 欧美一区二区三区精品国产| 色中色官网| 国产三级精品三级在线专区91| 亚洲一区欧美日韩| 国产主播福利在线| 国产综合在线播放| 欧洲精品一区二区| 亚洲视频中文字幕在线观看| 国产欧美二区| 国产一区二区在线|播放| 国产视频精品免费| 久久伊人网站| 欧美性受一区二区三区| 午夜国产视频| 九九热在线视频观看| 99久久综合狠狠综合久久| 一区二区在线不卡| 久久亚洲综合色| 91在线视频福利| 国产成人亚洲综合在线| 亚洲精品综合网| 国产精品日韩欧美在线| 精品国产www| 91丨国产| 国产精品91av| 精品亚洲性xxx久久久| 久久亚洲国产| 91热爆在线精品| 国产资源精品一区二区免费| 久久激情五月| 亚洲第一成人在线| 在线免费视频一区二区| 亚洲欧美视频一区二区三区| 亚洲国产午夜看片| 日韩成人黄色| 国产综合91天堂亚洲国产| 视频一区二区欧美日韩在线| 亚洲免费大全| 精品久久久久久久久免费影院| 成人国产亚洲欧美成人综合网| 狠狠色成色综合网| 亚洲欧美一区二区三区电影| 国产成人精品综合在线| 久久99精品久久久久久野外| 色网站在线看| 久久91精品综合国产首页| 精品午夜一区二区三区在线观看 | 综合色桃花久久亚洲| 久久久久夜色精品波多野结衣| 伊人亚洲影院| 在线视频亚洲一区| 久久久婷| 毛片免费视频| 亚洲欧美成人网| 国产精品一区二区三区四区五区| 亚洲精品自拍愉拍第二页| 五月天婷婷在线视频| 久久伊人免费视频| 亚洲人网站| 日本免费不卡一区二区| 亚洲视频中文字幕在线观看| 伊人免费视频网| 欧美伊人久久| 91精品成人福利在线播放 | 欧美在线一区二区三区| 亚洲精品专区| 青青久久国产成人免费网站| 国产成人91高清精品免费| 99久久这里只精品国产免费| 国产精品99久久免费观看| 亚洲一区二区三区欧美| 国产欧美在线视频| 夜夜精品视频| 福利精品视频| 久久99精品久久久久久h| 免费在线观看一级片| 青青草97国产精品免费观看| 亚欧成人一区二区| 精品国精品国产自在久国产不卡| 欧美日韩亚洲国产精品一区二区| 久久国产精品系列| 国产日韩精品欧美一区色| 这里只有精品免费视频| 久久亚洲天堂| 久久精品国产一区二区小说| 日韩一区二区三区不卡| 日韩在线综合| 国产网站在线免费观看| 国产一级视频久久| 亚洲欧美精品一区二区| 午夜限制老子影院888| 成人国产亚洲| 五月婷婷激情综合网| 九九热视频免费| 91亚洲精品在看在线观看高清| 国产成+人+综合+亚洲专| 亚洲国产精选| 亚洲欧美另类在线视频| 91精品久久久久久久久久| 国产青青草视频| 亚洲欧美一区二区三区导航| 日本久久久久久中文字幕| 色综合综合色| 亚洲精品区| 中文字幕久久精品| 国产专区精品| 精品久久久久久久99热| 九九精品在线| 亚洲成人手机在线观看| 国产区在线视频| 国产精品久久毛片| 青青色在线视频| 久久91亚洲精品中文字幕| 午夜免费福利在线观看| 色站综合| 欧美日韩精品一区二区在线播放| 久久影院一区二区三区| 久久亚洲国产高清| 国产精品视频一区二区噜噜| 国产成人精品免费| 色欧美在线| 久久久久精彩视频| 九九色网站| 国产午夜免费不卡精品理论片| 91国内在线视频| 亚洲国产午夜电影在线入口| 成人综合国产乱在线| 成人网在线看| 久久伊人色综合| 99久久网站| 国产欧美一区二区精品性色| 亚洲天堂视频在线| 欧美在线亚洲| 色综合五月天| 日本aⅴ在线观看| 亚洲欧美日韩第一页| 日韩亚洲国产激情在线观看| 国产精品亚洲va在线观看| 亚洲伊人久久大香线蕉啊| 91亚洲精品视频| 精品国产区| 中文字幕成人在线观看| 天天色视频| 国产成人精品自在钱| 国产精品无码久久av| 日韩福利视频高清免费看| 久久精品最新免费国产成人| 色综合久久久久综合99| 91免费国产精品| 久久久久国产精品| 国产精品99久久免费观看| 97成人精品| 成人精品视频一区二区在线| 亚洲国产网| 九九热在线免费视频| 欧美福利第一页| 亚洲免费中文| 日本久久99| 99久久久国产精品免费| 国产精品啪| 日本精品中文字幕在线不卡| 国产精品男人的天堂| 日本免费a视频| 99色视频在线观看| 站长推荐国产精品视频| 亚洲乱码在线| 久久精品国产午夜伦班片| 国产精品亚洲成在人线| 欧美成人免费一区在线播放| 97夜夜澡人人波多野结衣 | 99国产在线视频| 亚洲精品美女久久777777| 国产精品久久久久久久久久久不卡| 99热精品久久| 91视频专区| 韩国精品福利一区二区| 亚洲欧美日韩伦中文| 国产精品久久精品视| 国产精品6| 国产精品美女一区二区三区| 最新国产福利在线看精品| 亚洲欧美视频网站| 天堂网在线视频| 亚洲天堂区| 亚洲国产精久久久久久久| 国产高清在线看| 久久伊人免费视频| 久久网免费视频| 久久99久久99| 伊人网综合| 国产一在线| 亚洲欧美日韩高清一区二区三区| 国产成人精品日本亚洲11| 午夜亚洲一区二区福利| 亚洲性一区| 亚洲人成77777在线播放网站不卡 欧美中文字幕一二三四区 | 久久国产精品久久国产片| 国产高清在线精品二区app| 91亚洲精品在看在线观看高清| 五月激情综合网| 99er热久久精品中文字幕| 永久黄网站色视频免费观看| 免费人成激情视频在线观看| 精品国产黑色丝袜高跟鞋| 久久精品综合视频| 国产精品久久久久久久久免费| 天天躁日日躁狠狠躁综合| 亚洲欧美综合国产精品一区| 99精品国产高清一区二区| 日韩欧免费一区二区三区| 亚洲无毛| 91网站在线看| 免费精品精品国产欧美在线| 中文字幕福利| 视频二区在线观看| 成人国产亚洲欧美成人综合网| 深爱激情五月婷婷| 久久青青热| 亚洲综合色视频| 国产高清福利91成人| 国产99久9在线视频| 精品国产福利观看在线福祉| 91麻豆国产福利精品| 精品国产自| 欧美日韩中文字幕在线观看| 欧美成人久久久| 日本免费一二区| 国产无人区一区二区三区| 日韩精品中文乱码在线观看| 亚洲国产免费| 日韩精品一区二区三区视频网| 男人天堂网在线视频| 久久ri精品高清一区二区三区| 日韩欧美中文字幕一区| 综合久久国产对白| 一区二区在线视频观看| 久久成人国产| 久久久久久一级毛片免费野外| 亚洲欧美日本在线观看| 久久综合亚洲| 九九热在线免费观看| 国产日韩在线视频| 亚洲欧美国产高清va在线播放| 久久亚洲一级α片| 午夜丁香婷婷| 欧美69精品国产成人| 精品在线观看一区| 成人国产精品视频| 国产区一区二区三| 日韩精品小视频| 很狠干线观看2021| 亚洲精品日韩专区在线观看 | 精品久久久久久中文字幕2017| 欧美高清第一页| 五月激情久久| 亚洲女精品一区二区三区| 国产vvv在线观看| 99ri国产精品| 伊人黄网| 波多野结衣在线观看一区二区三区| 亚洲天堂麻豆| a久久| 亚洲国产综合精品| 91香蕉国产亚洲一区二区三区 | 国产精品成人久久久久| 99re66热这里只有精品17| 国产综合亚洲专区在线| 男人天堂五月天| 玖玖在线精品| 五月婷婷久久综合| 日韩欧美一区二区三区不卡在线 | 亚洲人成在线影院| 91欧美精品综合在线观看| 亚洲国产综合专区在线播一一| 国产精品久久久久…| 精品一区二区免费视频| 九九热线精品视频18| 天堂国产在线观看| 欧美日韩亚洲一区二区三区在线观看| 精品国产电影网久久久久婷婷| 国产在线观看91| k频道国产欧美日韩精品| 成年视频国产免费观看| 国产精品视频1区| 久草久在线| 精品在线网站| 欧洲一区二区三区在线观看| 欧美亚洲一区二区三区在线| 国产日韩欧美| 99精品久久精品一区二区| 亚洲一区免费在线| 久久人精品| 热久久免费视频| 国产香蕉在线观看| 色婷婷婷婷| 精品欧美日韩一区二区三区| 欧美极品一区| 99国内精品| 韩国色综合| 不卡视频在线播放| 国产精品高清一区二区三区| 99久久99这里只有免费费精品| 亚洲精品欧美精品| 亚洲自拍中文| 91精品视频在线播放| 四虎免费在线播放| 日韩亚洲一区二区三区| 久草视频福利资源站| 免费国产之a视频| 国产精品成久久久久三级| 综合色一色综合久久网vr| 国产一区精品视频| 国产精品4p露脸在线播放| 日韩精品欧美| 国产精品视频久久久| 亚洲欧美久久婷婷爱综合一区天堂| 免费国产黄频在线观看视频| 国产欧美一区二区三区观看| 免费色网址| 久久青草社区| 午夜爽爽性刺激一区二区视频 | 91在线视频免费看| 久热中文字幕| 四虎精品永久免费| 欧美亚洲自拍偷拍| 在线亚洲成人| 欧美一区二区三区久久综合| 亚洲精品视频在线播放| 久久精品欧美一区二区| 国产精品久久久久一区二区| 久久国产精品女| 色五月在线视频| 国模精品一区二区三区| 亚洲国产第一区二区香蕉日日| 国产区精品高清在线观看| 国产伦理一区二区三区| 这里只有精品免费视频| 99成人精品| 婷婷色亚洲| 四虎永久在线精品视频播放| 国产高清一级毛片在线人| 久久网综合| 九九久久九九久久| 国产成人精品免费| 亚洲国产日本| 国产中文在线| 97免费在线视频| 精品国产91久久久久| 欧美一区二区三区高清视频| 亚洲国产欧美久久香综合| 亚洲一区二区免费| 国产精品色婷婷在线观看| 国产精品电影久久| 欧美日韩性视频在线| 国产精品麻豆视频| 伊人久久大香线蕉综合电影网| 日本高清视频一区二区三区| 国产日韩欧美三级| 亚洲视频1区| 欧美日韩1区2区| 久久久久性| 国产欧美一区二区三区视频| 999精品国产| 精品国产一区二区三区四| 日本免费专区| 亚洲综合伊人色一区| 99视频精品在线| 91精品欧美| 日韩欧美亚洲视频| 亚洲精品专区| 欧美特黄一级高清免费的香蕉| 久久狠狠躁免费观看| 日韩午夜激情视频| 欧美aa视频| 国产一区精品在线观看| 日本精品视频一区二区三区| 亚洲欧美日韩一区| 婷婷丁香在线| 成人免费视频网站| 91精品久久久久久久久久| 国产午夜精品福利久久| 天天躁日日躁狠狠躁综合 | 国产丝袜网站| 亚洲午夜在线视频| 亚洲精品福利你懂| 国产精品一区二区四区| 国产精品久久久久天天影视 | 久久国产精品一区| 亚洲另类视频在线观看| 国产河南妇女毛片精品久久| 波多野结衣一区二区三区| 精品伊人久久| 国产精品你懂的| 国产精品永久在线| 99精品视频在线观看re| 国产精品视频免费| 亚洲天堂网在线观看视频| 伊人久久成人成综合网222| 青青草国产精品| 欧美日韩动态图| 亚洲午夜久久久精品影院视色 | 99精品在线免费| 国产日韩欧美另类| 国产精品视频一区二区三区小说| 日韩成人免费aa在线看| 久久精品国产免费观看99| 色婷婷精品大视频在线蜜桃视频| 91在线视频福利| 久久综合丁香| 99久久精品国产综合一区| 91香蕉国产亚洲一区二区三区| 国产精品成在线观看| 亚洲综合网国产福利精品一区| 日韩精品专区| 精品成人毛片一区二区视| 日本亚洲高清乱码中文在线观看| 91精品国产手机| 成人毛片免费观看| 日本一区视频| 国产玖玖视频| 国产激情视频在线播放| 国产免费久久| 999精品视频| 99青青青精品视频在线| 精品91自产拍在线观看一区| 亚洲国产美女在线观看| 成人欧美一区二区三区在线观看| 五月婷婷综合在线| 国产日韩欧美精品一区二区三区| 久久久99精品久久久| 久久er99热精品一区二区| 欧美日韩精品国产一区在线| 日韩在线视频线视频免费网站| 欧美日韩精品一区二区三区视频播放| 天天久久综合网站| 亚洲精品视频在线播放| 日本精品一区二区三区视频| 国产中文字幕在线免费观看| 激情综合色综合久久综合| 亚洲综合欧美在线| 伊人激情综合| 成人午夜免费在线观看| 亚洲天堂伊人| 亚洲日本一区二区三区在线| 国产在线成人a| 久久综合综合| 一区二区三区欧美日韩国产| 97成人免费视频| 亚洲国产成+人+综合| 欧美日韩专区国产精品| 99精品久久久中文字幕| 久久久全国免费视频 | 国产成人青草视频| 九九色视频| 国产另类在线欧美日韩| 国产精品成人自拍| 国产91久久最新观看地址| 伊人青青青| 亚洲激情自拍偷拍| 久久综合色综合| 一本久久精品一区二区| 亚洲一区色| 国产一级精品视频| 亚欧成人在线| 久久青草影院| 国产97视频在线| 亚洲精品美女久久久aaa| 欧美精品亚洲人成在线观看| 欧美专区在线| 狠狠五月深爱婷婷网| 日韩欧美视频二区| 天天综合色天天综合网| 99久久中文字幕| 久久久久久一级毛片免费无遮挡| 日韩六九视频| 亚洲欧美日韩综合一区久久| 国产色婷婷精品综合在线手机播放| 日韩精品欧美在线| 91精品视频在线免费观看| 日韩欧美天堂| 国产日韩精品视频一区二区三区| 精品少妇一区二区三区视频| 99九九成人免费视频精品| 精品亚洲综合在线第一区| 亚洲狠狠婷婷综合久久久久网站| 999精品视频在线观看| 久久综合第一页| 亚洲午夜久久久久影院| 亚洲乱码在线| 欧美亚洲中日韩中文字幕在线| 性欧美极品xxxx欧美一区二区| 亚洲精品777| 亚洲综合成人在线| 亚洲三区视频| 国产精品欧美视频另类专区| 成人精品一区二区www| 午夜免费看视频| 亚洲欧美日韩中文字幕在线| 在线视频一区二区三区三区不卡| 色综合狠狠| 日本一区二区中文字幕| 欧美日本一道高清二区三区 | 亚洲人成电影青青在线播放| 中文字幕热久久久久久久| 日韩视频一区| 在线免费色| 婷婷色一二三区波多野衣| 91亚洲精品视频| 欧美不卡一区二区三区免| 久久精品国产精品亚洲毛片 | 久99久视频| 国产污网站| 亚洲综合婷婷| 久久午夜宅男免费网站| 国产免费播放一区二区三区| 欧美日韩国产在线一区| 日韩在线观看一区二区不卡视频| 91亚洲精品福利在线播放| 亚洲欧美国产视频| 久久久久久久综合色一本| 99精品国产兔费观看66| 亚洲成人日韩| 中文字幕在线观看一区二区三区| 99re8免费视频精品全部| 九九福利视频| 国产丝袜一区| 伊人干综合| 黄色片久久久| 国产丝袜视频在线| 99精品国产电影| 免费精品一区二区三区在线观看| 高清中文字幕视频在线播| 天天色综合色| 国产亚洲精| 欧美成年黄网站色视频| 图片专区亚洲欧美另类| 狠狠色丁香婷婷综合尤物| 欧美福利电影在线观看| 狠狠五月深爱婷婷网免费| 亚洲九九色| segui久久综合精品| 日韩亚洲欧美综合一区二区三区| 九九热在线观看视频| 久久精品99久久香蕉国产色戒| 国产欧美在线观看一区二区| 99热在线观看免费| 欧美日韩加勒比一区二区三区| 亚洲一区精品中文字幕| 欧美性大战久久久久久| 国产在线播放91| 天天躁狠狠躁| 久久综合中文字幕一区二区三区| 99久久精品国产片| 欧美日韩一区二区三区高清不卡| 免费中文字幕不卡视频| 亚洲日本国产| 狠狠色丁香婷婷久久综合2021| 国产精品久久久久久久久久久威| 免费国产不卡午夜福在线观看| 免费精品视频在线| 欧美日韩国产码高清综合人成| 色综合一区二区三区| 久久综合一个色综合网| 国产不卡一区| 国产又色又爽又黄的视频在线观看| 亚洲国产天堂在线观看| 日本久久99| 欧美亚洲777| 精品日韩欧美国产一区二区| 欧美国产日韩精品| 欧美精品91| 91麻豆精品一二三区在线| 国产一区a| 日韩精品一区二区在线观看| 亚洲精品理论电影在线观看| 国产成人综合自拍| 制服丝袜第五页| 亚洲欧美日本在线| 久久成人免费| 国产97色在线|日韩| 在线视频二| 欧美制服丝袜在线| 成人欧美一区二区三区黑人3p| 亚洲一区精品伊人久久| 成人精品一区二区www| 欧美日韩一本| 欧日韩一区二区三区| 日本一本在线| 亚洲国产精品久久久久| 亚洲激情在线观看| 91视频免费看| 国产激情自拍视频| 国产一成人精品福利网站| 亚洲国产制服| 欧美日本韩国一区| 国产在线视频欧美亚综合| 伊人网视频在线观看| 伊人久在线| 国产区在线观看| 青青草国产精品久久| 日本中文字幕在线看| 亚洲欧美日韩一区成人| 亚洲综合网在线| 怡红院综合网| 久久中文字幕久久久久| 91久久国产成人免费观看资源| 国产成人综合在线观看| 日韩精品在线观看视频|