日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

COM+(转载)

發布時間:2025/7/14 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 COM+(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們從各種媒體對Windows 2000的介紹可以看到,在Windows 2000眾多新的功能和特性之中,對于開發人員來說,COM+是最值得關注的一個焦點。在Windows 2000Beta版本中,我們已經看到了COM+的面貌,也感受到了COM+將帶給我們程序設計和開發過程中思路上的變化。本文旨在從技術的角度對COM+作一個基本的介紹,以便開發人員更好地了解COM+

COM+并不是COM的新版本,我們可以把它理解為COM的新發展,或者為COM更高層次上的應用。COM+的底層結構仍然以COM為基礎,它幾乎包容了COM的所有內容。有一種說法這樣認為,COM+COM、DCOMMTS(Microsoft Transaction Server)的集成,這種說法有一定的道理,因為COM+確實綜合了這些技術要素。但更重要的一點是,COM+倡導了一種新的概念,它把COM組件軟件提升到應用層而不再是底層的軟件結構,它通過操作系統的各種支持,使組件對象模型建立在應用層上,把所有組件的底層細節留給操作系統,因此,COM+與操作系統的結合更加緊密,這也是COM+非得等到Windows 2000發布才能面世的主要原因。

我們知道,COM是個開放的組件標準,它有很強的擴充和擴展能力,從COMDCOM,再到MTS的發展過程也充分說明了這一點。對COM有使用經驗的讀者一定可以感覺到,雖然COM已經改變了Windows程序員的應用開發模式,把組件的概念融入到Windows應用中,但是由于種種原因,DCOMMTS的許多優越性還沒有為廣大的Windows程序員所認識。MTS針對企業應用和Web應用的特點,在COM/DCOM的基礎上又添加了許多功能和特性,包括事務特性、安全模型、管理和配置等,MTS使COM成為一個完整的組件體系結構。由于歷史的原因,COMDCOMMTS相互之間并不很融洽,難以形成統一的整體,不過,這種狀況很快就要結束,因為COM+將把這三者有效地統一起來,形成一個全新的、功能強大的組件體系結構,并且把DCOMMTS的各種優勢以更為簡捷的方式帶給Windows 2000程序員和用戶。

本文分四個部分,第一部分介紹COM+的基本結構;第二部分介紹COM+提供的一些系統服務;第三部分講述COM+應用開發模型;第四部分介紹COM+的特性并作簡要總結。通過閱讀這些內容,讀者可以看到,COM+將帶給我們一些什么樣的程序設計概念,它和Windows 2000將如何改變我們的應用,如何改變應用的開發模式。

.COM+基本結構

COM+不再局限于COM的組件技術,它更加注重于分布式網絡應用的設計和實現,已經成為Microsoft系統平臺策略和軟件發展策略的一部分。COM+繼承了COM幾乎全部的優勢,同時又避免了COM實現方面的一些不足。COM+緊緊地與操作系統結合起來,通過系統服務為應用程序提供全面的服務,這一部分介紹COM+的基本結構。

1.Windows DNA策略

在介紹COM+結構之前,我們首先看看Microsoft推出的Windows DNA(Distributed interNet Application Architecture)策略,因為COM+將在DNA策略中扮演重要的角色。Windows DNAMicrosoft多年積累下來的技術精華集合起來而形成一個完整的、多層結構的企業應用總體方案,它使Windows真正成為企業應用平臺。

熟悉MTS的讀者一定知道,MicrosoftMTS的基礎上提出了多層軟件結構的概念。從大的方面來講,一個企業應用或者分布式應用可以分為表現層、業務層和數據層。表現層為應用的客戶端部分,它負責與用戶進行交互;業務層構成了應用的業務邏輯規則,它是應用的核心,通常由一些MTS組件構成;數據層為后臺數據庫,它既可以位于專用的數據服務器,也可以與業務層在同一臺服務器上。MTS主要位于中間層,它為業務組件提供了一個運行和管理的統一環境。圖1(a)顯示了這種多層結構的技術組成模型。

Windows DNA是一個簡化了的三層結構,如圖1(b)所示。

? ???(a) 三層結構技術組成模型 ??????????????(b) Windows DNA結構

1

在現有的系統平臺以及軟件開發工具條件下,為了實現多層結構的企業應用,我們必須使用各種分離的技術,開發人員要學習每一種軟件技術,包括使用Win32 API以及系統提供的一些服務。圖1(a)列出了某些可能用到的軟件或者技術,學習這些知識本身就不是一件輕松的事情,更何況要開發出優秀的應用程序來。在Windows平臺上使用過這些技術的程序員一定深有體會。

1(b)則要簡明得多,這是一個尚未實現的結構模型,但是Microsoft正在朝這個方向努力。在表現層,我們現在開發應用程序,要么使用Win32 API開發客戶應用,要么利用HTMLDHTML直接把瀏覽器用作客戶應用。在DNA結構中,FORMS+還只是一個技術框架,它將把Win32 GUIWeb API結合起來,并朝著DHTML的方向發展,我們可以從已經發布的Microsoft Internet Explorer 5的結構模型中看到FORMS+的一些端倪。在數據層,STORAGE+還只是一種提法,不過Microsft已經把數據庫接口從ODBC轉移到ADOOLE DB上,這將最終促進數據層接口技術的統一。

在中間業務層,COM+已經成為現實,它以系統服務的形式把原先散落的眾多技術綜合起來,并提供簡單的編程模型,以直接應用層的編程接口為應用程序提供服務。COM+DNA結構的核心,它將成為企業應用或者分布式應用的基本工具。伴隨著Windows 2000的面世,DNA結構也將逐漸清晰,最終帶給我們一個全新的應用軟件模型。

2.COM+基本結構

COM+的基本結構并不復雜,簡單說起來,它把COMMTS的編程模型結合起來,同時又增加了一些新的特性。


COM的發展角度來看,COM最初作為桌面操作系統平臺上的組件技術,主要為OLE服務。但是隨著Windows NTDCOM的發布,COM通過底層的遠程支持使組件技術延伸到了分布式應用領域,充分體現了COM的擴展能力以及組件結構模型的優勢。MTSCOM增添了許多新的內容,彌補了COMDCOM的一些不足,它注重于服務器一端的組件管理和配置環境。COM+進一步把COM、DCOMMTS統一起來,形成真正適合于企業應用的組件技術。COM、DCOM、MTS以及COM+的結構關系如圖2所示。

2 COM+組成結構圖

COM+不僅繼承了COMDCOMMTS的許多特性,同時也新增了一些服務,比如負載平衡、內存數據庫、事件模型、隊列服務等。COM+新增的服務為COM+應用提供了很強的功能,建立在COM+基礎上的應用程序可以直接利用這些服務而獲得良好的企業應用特性,本文第二部分將重點介紹這些服務。

COM+還提供了一個比MTS更好的組件管理環境,如圖3所示。COM+管理程序(COM+ Explorer)也采用了MMC(Microsoft Management Console)標準界面。對應于MTS中的包(Package)COM+稱之為COM+應用(COM+ Application),每一個COM+應用也包括一個或多個COM+組件以及與應用有關的角色信息。通過COM+管理程序,我們可以設置COM+應用和COM+組件的屬性信息,比如組件的事務特性、安全特性等等。如圖4所示。

3 COM+管理程序運行示意圖

4 COM+組件的屬性配置示意圖

我們知道,COMMTS把組件的所有配置信息都保存在Windows的系統注冊表中,然而,COM+的做法有所不同,它把大多數的組件信息保存在一個新的數據庫中,稱為COM+目錄(COM+ Catalog)COM+目錄把COMMTS的注冊模型統一起來,并提供了一個專門針對組件的管理環境。我們既可以通過COM+管理程序檢查或設置COM+目錄信息,也可以在程序中通過COM+提供的一組COM接口訪問COM+目錄信息。



COM+一方面提供了許多新的服務和一個一致的管理環境,另一方面它支持說明性編程模型(declarative programming model),也就是說,開發人員可以按盡可能通用的方式開發組件程序,把一些細節留到配置時刻再確定。舉例來說,我們開發一個COM+組件,它支持負載平衡特性,但是我們在開發組件的時候,并不確定它是否使用負載平衡特性,而把是否支持負載平衡特性留待配置時刻再作決定。有的應用可能會需要負載平衡特性,而有的應用可能并不需要,我們可以通過COM+管理程序配置組件的屬性來決定組件是否支持負載平衡特性。MTS安全模型實際上是一個典型的說明性編程技術,它把組件的安全角色信息留到配置時刻再給出確切的定義,而非編程時刻。COM+繼承了MTS的安全模型。

利用COM+的服務和管理工具,以及隨后發布的一些開發工具,開發一個COM+組件要比開發一個COM組件容易得多,因為COM+組件實際上是建立在COM+系統服務基礎上的應用程序,我們可以避免底層繁瑣的細節處理。通過COM+系統服務,我們在獲得可靠性的同時,也使我們的組件或者應用程序更趨于標準化,在更廣泛的范圍內體現組件或者應用的多態性。

3.對象環境

COM+組件的可管理性和可配置性是如何獲得的呢?如同MTS組件一樣,COM+為每一個對象提供了一個對象環境(Object Context)COM+系統可以在創建COM+對象的時候為其分配一個環境對象,這種技術也被稱為截取(intercept),下面的步驟可以進一步說明截取的概念:

(1)??? 組件對象通過說明性屬性(declarative attributes)指定它的一些基本要求;

(2)??? 當客戶程序調用CoCreateInstance函數時,COM+系統檢查客戶代碼是否運行在與對象類兼容的對象環境中;

(3)如果客戶代碼的運行環境與對象類所要求的兼容,那么不必使用截取技術,直接創建對象并返回對象的接口引用;

(4)??? 如果不兼容,那么CoCreateInstance函數切換到一個與對象類兼容的環境中,然后創建對象并返回一個代理對象;

(5)在以后的接口方法調用過程中,代理對象在調用前和調用后都要做一些處理以便方法的運行環境能夠滿足對象的要求。

COM+引入了環境(context)的概念,它是指共享同一套運行要求的對象集合。由于不同的對象類可能使用了不同的配置信息,所以一個進程通常包含一個或多個環境,這些環境的配置互不兼容。所有無配置信息的對象都駐留在調用方的環境中。每一個環境都有一個對象,即對象環境,運行在此環境中的對象可通過CoGetObjectContext API函數得到此對象環境,利用對象環境的IObjectContextInfo接口可以訪問到環境的屬性信息。

COM+的對象引用即客戶擁有的對象接口指針與環境相關,所以我們不能簡單地把對象引用從一個環境傳遞到另一個環境。當客戶從一個環境調用到另一個環境中的對象時,中間必須經過代理對象和存根代碼,由代理對象截取調用,負責進行環境切換,這個過程類似于COM的跨進程列集(marshaling)處理。如圖5所示。

5 跨環境調用示意圖

從圖5我們可以看出,環境與COM線程模型中的套間(apartment)非常類似,當對象引用(即對象接口指針)從一個環境傳遞到另一個環境時,它也要經過列集(marshaling)處理,即調用CoMarshalInterfaceCoUnmarshalInterface函數。這樣才能保證客戶代碼和對象分別在自己的環境中執行,對于支持事務特性、安全特性或其他特殊要求的應用,這是很重要的。

雖然跨環境的調用必須經過代理和存根代碼,但是這并不意味著需要經過線程切換,這是環境與套間的重要區別。在跨套間調用過程中,影響性能的主要因素在于線程切換,而不是參數列集(marshaling)和散集(unmarshaling)處理,因此跨環境調用比跨套間調用的效率可能要高得多。COM+引入了環境概念,但套間的概念仍然存在,兩者的區別在于,套間是線程模型的基本單元,而環境則是列集機制的基本邊界。環境和套間沒有包含關系,一個環境中的對象可以運行在不同的套間,此時跨套間調用也必須經過代理對象;一個套間中的對象也可以包含多個環境對象,此時跨環境調用也必須經過代理對象。

從以上對COM+的介紹我們可以看出,COM+的底層結構仍然以COM為基礎,但在應用方式上則更多地繼承了MTS的處理機制,包括MTS的對象環境、安全模型、配置管理等。但COM+并不是對COMMTS進行簡單的封裝,它也引入了許多新的內容,正是這些新特征使得COM+更加適合于企業應用的組件對象模型,這些新特征通過一組系統服務來體現,下一部分介紹這些系統服務。

.COM+系統服務介紹

COM+的系統服務充分體現了COM+的特征,通過這些系統服務,我們可以很容易地開發出多層結構的應用系統,因為這些系統服務本身已經滿足了多層應用的一些基本要求。COM+以系統服務的形式為應用提供了許多新特性,這有多方面的好處,首先,客戶或者組件程序可以直接利用這些系統服務,避免了底層的細節處理,減少開發成本,降低代碼量,同時也減小了犯錯誤的可能性;其次,有一些系統服務涉及到較復雜的邏輯,可能要訪問底層的系統資源,應用層很難實現這些系統服務;另外,使用系統服務可增強可靠性,因為這些系統服務已經經過嚴格的測試,應用系統要獲得同樣的可靠性需要很昂貴的代價。

COM+的系統服務有的從MTS繼承過來,有的是新增加的。這一部分重點對新增的一些系統服務作初步的介紹,包括隊列組件、負載平衡、內存數據庫和事件服務,最后介紹其他一些在MTS中已經引入的、但COM+又增強了的系統服務,包括事務、對象池、安全模型以及管理特性。

1.COM+隊列組件

我們知道,COM客戶與遠程組件之間的交互是基于RPC連接的,客戶連接到一個組件對象,請求指定的接口,然后通過接口指針執行同步調用。雖然COM也允許異步調用,但客戶與組件的生存期必須保持一致,調用必須在連接有效期范圍內進行。

COM+除了支持這種基于RPC連接的運行方式,它還支持另一種運行模式,我們稱為基于消息的通訊過程,它可以有效地把客戶與組件的生存期分離開。這種模式通過COM+的隊列組件服務實現,圖6是隊列組件的基本模型結構。

6 隊列組件模型結構圖



隊列組件并沒有使用直接的RPC連接,而是采用了底層的消息系統MSMQ(Microsft Message Queue Server)。通過底層的隊列機制,客戶與組件的生存周期可以被分離在不同的時間點上??蛻舫绦虿辉僦苯诱{用組件對象,它利用消息機制與組件對象進行通訊,即使組件對象并沒有運行,客戶程序仍然可以執行操作。

COM+應用可以以透明方式支持同步和異步兩種調用方式,當客戶和組件程序建立了連接之后,客戶以同步方式直接調用組件的方法;如果客戶與組件沒有建立直接的連接,那么客戶以異步方式與組件進行通訊。如果組件對象被標識為“隊列化”,那么它支持隊列方式運行,于是一個被稱為“COM+記錄器”的代理對象自動把所有該組件的調用請求記錄到一個永久隊列中,該隊列被保存在客戶機上;以后當客戶機連接到網絡上,位于服務器上的“COM+播放器”從永久隊列中獲得調用信息,執行真正的調用操作。隊列組件以透明的方式把同步和異步兩種程序運行方式統一在一個單一的編程模型中,所以COM+應用系統為獲得異步特性并不需要作額外的工作。我們仍然可以按通常的方式開發組件和客戶程序,但是由于隊列方式的特殊性,所以組件必須滿足兩個限制條件:第一,組件的接口成員函數只能有輸入參數,不能包含輸出參數,這些輸入參數將被傳遞到MSMQ消息中;第二,組件接口成員函數的返回值HRESULT的含義不能與應用相關,它不標識與應用有關的信息。

在隊列組件的異步交互過程中,客戶程序創建一個組件對象,它實際上創建了一個記錄器代理對象,所有的調用都通過記錄器進行,記錄器把調用請求記錄下來,然后通過MSMQ傳遞到服務器組件,服務器上的播放器再執行這些方法調用。使用這種異步方法的難點在于,客戶程序如何獲得返回信息,這包含幾種可能情況以及解決辦法:第一,客戶并不關心執行結果;第二,我們可以用響應隊列來實現客戶程序;第三,客戶也可以把自己的一些特征信息傳遞給組件對象,以便組件對象以同樣異步的方式通知客戶應用。選擇什么樣的解決方法取決于應用的需要,我們可以靈活使用各種技術。

隊列組件對于分布式應用非常有意義,尤其是在慢速網絡上運行的應用系統,這種機制可以保證應用系統能夠可靠地運行。在應用系統包含大量客戶節點但服務器數量又比較少的情況下,客戶應用程序可以把它們的請求放到隊列中,當服務器負載比較輕的時候再處理這些請求,因此隊列機制也從另一個角度實現了應用系統的負載平衡以及可伸縮特性。

2.COM+事件模型

COM不僅定義了客戶調用組件對象的通訊過程,它也定義了反向的通訊過程,這就是COM可連接對象(connectable object)機制。組件對象定義了出接口(outgoing interface)的所有特征,客戶程序實現出接口,當客戶程序與對象建立連接之后,客戶通過連接點對象建立它與客戶端接收器對象之間的反向連接。實際上,這時的連接點對象成了接收器對象的客戶方。

COM的可連接對象有很大的優勢,它的擴展能力非常強,幾乎總是可以滿足應用的需要。但是從實際應用的情況來看,它也存在一些缺點,表現在以下幾個方面:第一,事件源和客戶方緊緊綁定在一起,雙方程序代碼依賴于出接口的定義,我們必須在編譯時刻知道對方的信息;第二,源對象需要編寫大量代碼來支持這種機制,尤其是為了支持多通道事件;第三,連接點接口的設計模式并沒有考慮到分布式環境的特點,所以它在分布式環境下并不很有效。

COM+事件模型改進了COM的可連接對象機制,它采用了多通道的發布/訂閱(multicasting publish/subscribe)事件機制,它允許多個客戶去“訂閱”事件,這些事件由各種組件對象“發布”。COM+事件服務維護一個事件數據庫,數據庫包含各種事件、發布者、訂閱者以及所有的訂閱信息。當發布者激發事件時,COM+事件服務對事件數據庫中有關的訂閱信息進行檢查,然后通知對應的訂閱者。COM+事件模型基本結構如圖7所示。

7 COM+事件模型結構圖

COM+事件模型通過事件類來傳遞源對象的出接口事件信息,以便它可以與客戶方的入接口事件方法相匹配,這種方式與COM可連接對象機制很類似,所以老式的COM組件和客戶程序可以很方便地使用新的COM+事件模型。

COM+事件模型用中心服務和中心管理的方式把發布者與訂閱者之間的依賴關系分離開,它用事件類作為發布者和訂閱者之間的中間對象,發布者必須通過事件類發布信息。事件類是由COM+事件服務提供的對象,它實現了事件接口,所以對于發布者來說,它扮演了訂閱者的角色。當發布者要激發事件時,它創建一個事件類對象,調用相應的事件方法,然后釋放對象的接口。COM+事件服務會決定如何通知訂閱者,決定什么時候通知訂閱者。如同隊列組件情形一樣,發布者和訂閱者的生存時間可以被分離,從這個意義上講,所有事件接口函數只能包含輸入參數。

訂閱者訂閱事件也很方便,它只要通過COM+事件服務創建一個訂閱對象,并注冊到事件數據庫中,以后它就會接收到來自發布者的事件通知。

COM+事件系統不僅僅為應用程序提供事件服務,它也為操作系統的內部實現提供事件服務,比如,它也用來實現Windows 2000的底層系統事件通知服務(SENS),包括用戶登錄事件、網絡連接事件等等,我們可以創建和注冊一個訂閱對象來接收這些系統事件。這是COM+事件系統的一個應用,當然接收這種系統事件必須符合一定的安全策略。

3.負載平衡

負載平衡是分布式應用的一種高層次需求,如果沒有很好的工具支持,那么實現負載平衡需要付出很大的代價。我們可以使用DCOMMTS的配置特性實現靜態負載平衡,但是要實現真正的動態負載平衡并不容易,我們很難根據當前系統的負載狀態把對象創建請求傳遞到負載最輕的機器上,我們必須編寫大量的代碼來間接支持這種特性。

COM+提供了一個負載平衡服務,它可以以透明方式實現動態負載平衡。但是為了使組件支持負載平衡,首先我們必須定義一個應用群集(application cluster),應用群集是指一組已經安裝了服務器端組件的機器(至多可達8臺機器),然后我們把一臺機器配置成負載平衡路由器(router),負載平衡路由器會把對象的創建請求傳遞到應用群集中的某一臺機器上。

COM+負載平衡以NT系統服務的形式運行在路由器機器上,當路由器的SCM(Service Control Manager)接收到遠程創建對象請求時,它把請求傳遞到負載最輕的機器上。實現負載平衡的一個難點是如何確定應用群集中的哪臺機器是負載最輕的。COM+負載平衡引擎使用缺省的負載平衡算法,它根據每臺機器上每個對象實例的方法調用的響應時間作為參考值計算出負載平衡參數,這種算法不一定是最佳算法,但對于大多數應用已經足夠了。COM+也允許應用程序使用自定義的負載平衡引擎。

COM+負載平衡應用模型中對象創建過程如圖8所示。

8 負載平衡模式下對象創建示意圖



客戶程序仍然可以按通常的方式創建遠程對象,在CoCreateInstanceEx函數中指定路由器機器名,當創建成功之后,它得到的對象實例運行在當前負載最輕的服務器上。路由器檢查COM+目錄,看請求創建的組件對象是否支持負載平衡,如果是,則它根據路由算法,把創建請求路由到負載最輕的服務器上。然后,應用群集中的服務器接收到創建請求之后,它就創建對象,并把對象引用直接返回給客戶機。因此,一旦對象已經被成功創建,那么客戶與對象之間的連接是直接進行的,而不必再通過路由器。

COM+應用程序的負載平衡特性并不需要編寫代碼來支持,客戶程序和組件程序都可以按通常的方式實現。因此,獲得負載平衡特性不是一種程序設計和開發的行為,而是一種配置行為,通過配置實現分布式應用程序的負載平衡。當然我們在編寫負載平衡組件時,要避免使用與當前機器環境相關的信息,比如當前機器的名字或者依賴與本地機器上某個路徑下的某個文件,等等。

4.內存數據庫(IMDB)

COM+的內存數據庫(In Memory Database)服務是一個全新的服務,它用于保存應用的非永久狀態信息。我們知道,對于以數據為中心的應用軟件,為了提高系統的運行效率,它應該盡可能讓更多的數據駐留在內存中,尤其是客戶程序頻繁訪問的數據信息。IMDB是一個駐留在內存中的支持事務特性的數據庫系統,它可以為COM+應用程序提供快速的數據訪問。

IMDB的基本功能在于優化數據查詢和數據獲取,它可以裝載后臺數據庫系統中的數據表,也可以裝載應用程序的非永久數據信息。使用IMDB的最典型的例子是Web應用,它把客戶頻繁訪問的數據信息放在IMDB中,以便成百上千的客戶得到快速的響應。因為物理內存容量越來越大(在機器上安裝2GB物理內存已經成為現實),并且價格越來越便宜,所以通過IMDB,我們只要增加物理內存就可以提高系統的響應速度,而且把頻繁訪問的數據從數據層移到業務層可以有效地減少網絡流量。圖9給出了基于IMDBWeb應用基本結構。

9 基于IMDBWeb應用結構示意圖

IMDB的接口為OLE DBADO,所以組件對象可以通過這些標準接口訪問IMDB。由于IMDB是內存中的數據庫,所以IMDB只對本機器上的COM+組件有效,也就是說,IMDB不支持分布式概念,并且多個IMDB機器不能裝入同一個數據表,如果多個組件要共享IMDB中的信息,那么這些組件必須運行在同一臺機器上。

IMDBNT系統服務的形式運行在服務器上,在服務啟動時,IMDB從后臺數據庫中把所有指定的數據表裝入到共享內存中。IMDB以整個數據表為單位裝載數據,如果內存不夠,裝不下整個表,那么IMDB會產生錯誤。組件對象通過進程內代理對象訪問IMDB中的數據表。因為IMDB為了使數據訪問盡可能快速,它并沒有實現SQL查詢處理器,所以我們不能使用SQL命令訪問IMDB數據,只能通過標準的ISAM技術訪問IMDB數據,也就是說我們必須通過索引訪問數據。

IMDB不僅可以把數據表緩沖起來,它也可以管理應用系統的非永久狀態信息,如果運行在同一臺機器上的不同組件需要共享大量的信息,那么選擇IMDB是一個理想的解決方案。

5.對其他服務的增強

前面介紹的幾個系統服務是COM+針對分布式應用新增加的服務,這些服務以及其他一些原先在MTS中已經提供的服務合起來構成了COM+的底層服務體系。我們知道,COM已經提供了組件對象與客戶程序之間的基本通訊過程,包括對象創建、跨進程機制、接口管理等等,而COM+提供的底層服務則著眼于一些高層次的應用需求,特別是構建大型軟件系統或者分布式軟件系統需要支持的一些特性。下面對COM+MTS基礎上增強的一些服務作一簡要說明。

(1)??? 事務特性。

事務允許組件可以把一組獨立的操作形成一個整體操作,事務操作要么成功,要么失敗。COM+仍然支持MTS的事務語義,通過SetAbortSetComplete完成事務操作。COM+還支持其他的事務操作模式,如果一個對象被標為“AuotAbort”,那么在事務操作過程中,若發生異常,則系統自動調用SetAbort。同樣地,如果一個對象被標為“AutoComplete”,那么在每一個方法調用之后,除非此方法顯式調用了SetAbort,否則系統會自動調用SetComplete。而且COM+還支持BYOT(Bring Your Own Transaction),即允許COM+組件參與非MTS事務處理環境管理的事務。

(2)??? 安全性。

COM+的安全模型仍然沿用了MTS的基于角色的安全模型,根據用戶的角色訪問應用的有關功能模塊。這種安全模型需要開發人員與管理人員協同完成,在開發階段,開發人員負責定義各種角色,并且在實現組件功能時,只允許指定角色的用戶才可以執行這些功能;在配置階段,管理員負責為所有的角色指定有關的用戶帳號。COM+擴充了MTS安全模型,它允許開發人員和管理員指定到方法一級的安全控制,在MTS安全模型中,我們只能在MTS包一級指定安全角色。通過COM+對象環境信息,COM+的安全模型更為細致,比如,它允許開發人員控制每一個接口、或者每一個方法如何扮演客戶,等等。

(3)??? COM+對象池。

對象池是指把對象的實例保留在內存中,以便當客戶請求創建對象時可以馬上用到這些對象。對象池如同IMDB一樣,完全是出于效率考慮的原因,用來建立大型的應用系統。對象池的概念在MTS 2.0中已經被引入了,因為MTS組件的IObjectControl接口的三個成員函數Activate、DeactivateCanBePooled用于對象池的管理。但是MTS 2.0實際上并沒有支持對象池,也就是說,不管對象是否支持對象池緩存操作,它的IObjectControl::CanBePooled函數永遠不會被調用到。COM+繼承了MTS對象池的概念,并且真正實現了對象池的功能。

(4)??? 管理服務。

在本文第一部分我們已經看到了COM+管理程序,它代替了MTS管理程序(MTS Explorer)DCOM配置程序(DCOMCNFG.EXE)。對于多層結構應用,COM+管理程序是個不可缺少的工具,應用系統的安全特性以及事務特性等基本配置都需要通過管理程序實現。由于MMC界面操作簡單、直觀,所以管理員無須學習其他的管理工具,就可以配置所有的應用系統。而且COM+管理程序支持腳本語言,因此,開發人員和管理員可以創建一些腳本代碼以便實現管理工作的自動化。COM+還引入了一個新的“ApplID”,它是一個128GUID,標識一個與一組屬性值相聯系的CLSID。通過“ApplID”,管理員可以為應用配置和維護多個版本。

這一部分重點討論了COM+的各個系統服務,尤其是COM+新增加的幾個系統服務,這些系統服務使COM+更加適合于分布式應用的開發。有些系統服務并不需要COM+應用通過編程來獲得,比如負載平衡和隊列組件服務等;而有的服務則可以簡化編程模型,比如事件服務;其他有一些服務可以用來提高系統的性能,比如內存數據庫、對象池等。

.COM+應用開發

在介紹了COM+的基本概念以及系統服務之后,第三部分我們討論COM+應用開發的一些問題。首先我們討論從COM轉向COM+對于應用開發模式帶來的變化,然后介紹基于屬性的C++編程語言。

1.應用開發支持

COM規范的一個重要特征是它定義的COM接口與開發語言無關,因此我們可以在各種開發語言中實現COM對象或者使用COM對象,事實也確實如此。但是,我們可以發現,雖然COMC++的二進制結構最為接近,但我們在C++語言中實現COM對象并不輕松,編寫一個C++類與實現一個COM對象有很大的差別,即使使用了MFC或者ATL這樣的類庫或模板庫,我們仍需要學習COM的一些底層知識,否則難以編寫出正確無誤的組件程序。



用過Visual Basic 6.0的讀者一定有這樣的體會,在VB6中編寫自動化(Automation)組件非常簡單,只要按常規的方法編寫“Class Module”即可實現COM組件。Vb6編譯器承擔了所有的底層細節處理任務,對于程序員而言只是一些“Class Module”。雖然這種開發模式限制了程序員的控制能力,但對于大多數情況,VB6不失為一個快速實現COM組件的開發環境。

COM+推出之后,它的開發模式也將有一些轉變,尤其對于Visual C++程序員,在編譯時刻程序員可以在代碼中使用一些說明性的語句來設置COM+組件的屬性,比如CLSID、ProgID、線程模型以及雙接口等,如果不指定這些屬性,編譯器將使用缺省值。以前我們為了使COM組件支持某些非缺省的特性,我們必須通過編寫代碼來實現這些特性,所以程序員一定要對各種特性了解得非常清楚才能夠編寫出正確的代碼來,這也是實現COM組件的一個難點。COM+一方面與操作系統緊密結合,另一方面從開發的角度來講,COM+將進一步與編譯器結合,它將擴展C++的一些語法,使得我們可以在代碼中描述COM+特性,然后由編譯器直接提供這些特性的支持,從而減少程序員的工作量,提高COM+組件的生產效率。

在代碼中利用說明性的語句指示編譯器產生與COM+組件有關的元數據(metadata)COM+運行系統將利用這些元數據管理COM+組件。從某種意義上講,我們可以認為元數據是一些類型庫信息,所以,實際上支持COM+組件的C++開發系統將把IDL/ODL的語法與C++語法結合起來。后面講到基于屬性的編程模型時我們將會看到這種情況。

全面支持COM+組件的開發工具要等到Windows 2000發布之后,在Visual Studio的下一個版本中才可能實現。作為一種兼容的方案,在現在的Visual C++版本中,編譯器仍然只支持原先的C++語法,當它在預處理過程中,碰到說明性的描述信息時,它把這些屬性信息交給屬性分析器去處理,屬性分析器是一個編譯擴展模塊,它把屬性信息轉換成C++代碼,然后送回編譯器,編譯器再把這些源代碼編譯到目標代碼中。屬性分析器產生的其他一些信息,比如類型信息,也被編入最終代碼。編譯器的結構如圖10所示。

10 COM+組件編譯過程示意圖

2.基于屬性的C++編程語言

基于屬性的編程模型將直接把COM+組件的屬性信息寫到C++源代碼中,指導編譯器產生COM+組件,這樣可以使程序員不必編寫底層的處理代碼,因為這些代碼對于幾乎所有的組件都差不多,因此讓開發工具直接產生這些代碼可避免重復勞動。這種方式比MFC的宏以及ATL的模板類更為直接。

屬性并沒有影響基本的C++語義,并且屬性的語法也比較簡單。屬性可以用在任何說明性的語句前面,比如C++類的聲明、變量的聲明都可以在其前面用方括號指定其屬性。需要注意的是,通常我們不在類型或者實例定義語句中指定屬性信息。下面的代碼說明了屬性的用法:

[????????????????

???????? ???????? uuid("346bf467-3467- d211-23c6-000000000000"),

???????? helpstring("IMyInterface Interface"),

]

interface IMyInterface : IUnknown

{

?? HRESULT Func1 ( [in] long, [out,retval] long* );

?? HRESULT Func2 ( [in] long, [out,retval] long* );

};

[

?????????????????? coclass,

???????? progid("MyComp.MyObj.1"),

???????? uuid("346bf468-3467- d211-23c6-000000000000"),

?????????????????? helpstring("MyObj Class")

]

class CMyObj : public IMyInterface

{

public:

??? CMyObj ();

// IMyInterface

public:

?? HRESULT Func1 ( [in] long, [out,retval] long* );

?? HRESULT Func2 ( [in] long, [out,retval] long* );

? ……

};

如果讀者熟悉IDL或者ODL語法,那么對上面例子中的屬性描述一定非常清楚。Visual C++的屬性分析器分析屬性關鍵字,并產生相應的C++源代碼(實際上是ATL代碼)。下表列出了屬性分析器支持的一些常用屬性關鍵字。



1 常用屬性關鍵字列表

屬性關鍵字

說明

coclass

加入COM特性支持,產生相應的IDL文件。

dual

把一個接口標記為雙接口,支持兩種訪問方式:vtable或者IDispatch

emitidl

指示后續所有的屬性信息都被寫到IDL文件中。

id

指定自動化接口中方法的分發ID(DISPID)

in/out

指定參數的傳遞方向。

progid

指定組件的ProgID

retval

指示此參數為方法的返回值。

threading

指定組件的線程模型。

uuid

指定類、類型庫或者接口的GUID標識。

module

指定組件程序的信息,包括程序類型、文件名、類型庫GUID、版本等信息。

基于屬性的編程模型為Visual C++程序員開發COM+組件提供了捷徑,它避免了MFC繁雜的宏定義和ATL晦澀的模板類。屬性編程模型還包括其他一些語義或語法,比如事件定義、對象構造等,我們將可以在新版本的Visual C++或者COM+ SDK中看到這些變化。

.總結

雖然COM+仍然以COMMTS為底層基礎,但是由于它定位的原因,所以COM+新增加的內容較多。與COM相比較,COM+Windows操作系統結合得更為緊密,反過來,Windows操作系統也更加依賴于COM+;與MTS相比較,COM+更加適合于分布式應用的開發,它提供了許多大型分布式應用系統才可能用到的一些功能。從目前計算機硬件以及Windows操作系統的發展趨勢來看,COM+有可能成為推動Windows 2000操作系統的一個重要技術支柱,同時COM+Windows 2000聯合起來使得企業應用直接進入分布式應用領域,這是我們目前已經可以感覺得到的一個發展方向。

以下列出COM+的幾個主要特性:

(1)??? 真正的異步通訊。COM+底層提供了隊列組件服務,這使客戶和組件有可能在不同的時間點上協同工作,COM+應用無須增加代碼就可以獲得這樣的特性。

(2)??? 事件服務。新的事件機制使事件源和事件接收方實現事件功能更加靈活,利用系統服務簡化了事件模型,避免了COM可連接對象機制的瑣碎細節。

(3)??? 可伸縮性。COM+的可伸縮性來源于多個方面,動態負載平衡以及內存數據庫、對象池等系統服務都為COM+的可伸縮性提供了技術基礎,COM+的可伸縮性原理上與多層結構的可伸縮特性一致。

(4)??? 繼承并發展了MTS的特性。從COMMTS是一個概念上的飛躍,但實現上還欠成熟,COM+則完善并實現了MTS的許多概念和特性。

(5)??? 可管理和可配置性。管理和配置是應用系統開發完成后的行為,在軟件維護成本不斷增加的今天,COM+應用將有助于軟件廠商和用戶減少這方面的投入。

(6)??? 易于開發。COM+應用開發的復雜性和難易程度將決定COM+的成功與否,雖然COM+開發模型比以前的COM組件開發更為簡化,但真正提高開發效率仍需要借助于一些優秀的開發工具。

COM+標志著Microsoft的組件技術達到了一個新的高度,它不再局限于一臺機器上的桌面系統,它把目標指向了更為廣闊的企業內部網,甚至Internet國際互連網絡。COM+與多層結構模型以及Windows操作系統為企業應用或Web應用提供了一套完整的解決方案。

本文寫在Windows 2000COM+發布之前,最終COM+的面貌和功能可能會有所取舍。由于種種原因,第二部分介紹的系統服務在最終發布的Windows 2000中不一定全部實現,但以后的版本一定會逐步實現所有這些服務;第三部分介紹的開發方式可能在Microsoft的下一代開發工具中會有所改變,不過我們可以對這種開發模型有所認識,提前做好思想上的準備。

轉載于:https://www.cnblogs.com/syf/articles/931344.html

總結

以上是生活随笔為你收集整理的COM+(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产资源中文字幕 | 九色激情网 | 久久69av| 成人小电影在线看 | 一区三区视频 | 91在线欧美 | 黄色a级片在线观看 | 麻豆av电影 | 天天干国产 | 九九亚洲视频 | 欧美另类69| 亚洲精品综合欧美二区变态 | 波多野结衣久久资源 | 中文字幕视频一区二区 | 久久精品国亚洲 | 国内精品视频在线 | 国产成人在线观看免费 | 国产流白浆高潮在线观看 | 日韩三级中文字幕 | 国内揄拍国内精品 | 久久久国产精品免费 | 久草在线观| 国产又黄又猛又粗 | 国产99久久精品一区二区300 | 国产精品毛片一区视频 | www五月天婷婷 | 午夜精品一区二区三区视频免费看 | 久久久免费观看视频 | 九色porny真实丨国产18 | 亚洲精品国产精品国自产 | 日韩精品久久久久 | 丁香资源影视免费观看 | 久久免费视频这里只有精品 | 日本中文字幕视频 | 91精品久| 国产精品免费在线 | 在线精品观看 | 欧美在线视频第一页 | 91亚洲精品久久久中文字幕 | 在线看成人片 | 亚洲第一中文字幕 | 久久精品99| 午夜av片 | 97超碰成人 | 香蕉在线视频观看 | 久久黄色免费视频 | 看污网站 | 国产在线资源 | 国产成人精品不卡 | 午夜精品久久久久久久99婷婷 | 天天综合网天天综合色 | 久久免费精品一区二区三区 | 日日日视频 | 亚洲人人网 | 久久国产精品偷 | 欧美激情视频一二三区 | 一区二区三区动漫 | 久久玖| 在线观看国产一区 | 99精品国产在热久久下载 | 一区二区免费不卡在线 | 亚洲精品乱码久久久久久久久久 | 日韩精品一区二区在线观看视频 | 国产精品免费久久久 | 国产午夜精品一区二区三区在线观看 | 中文字幕一区二区三区在线视频 | 亚洲一区二区三区毛片 | 免费av福利| 在线免费看黄网站 | 国产九色在线播放九色 | 国产成人亚洲精品自产在线 | 69精品在线 | 色吧av色av | 天天撸夜夜操 | 国内精品小视频 | 欧美老人xxxx18 | 国产视频资源 | 成年人看片网站 | 国产精品久久久久久久久久不蜜月 | 国产91电影在线观看 | 久久不卡av | 成人a视频在线观看 | 亚洲精品乱码久久久久v最新版 | av久久久| 国产探花在线看 | 国产精品无av码在线观看 | 免费进去里的视频 | 特黄特黄的视频 | 国产污视频在线观看 | 99精品99 | 亚洲精品视频在线观看免费视频 | 亚洲va综合va国产va中文 | 欧美黑吊大战白妞欧美 | 91久久精品日日躁夜夜躁国产 | 九九九热精品免费视频观看网站 | 欧美伦理电影一区二区 | 精品在线视频观看 | 在线观看免费av片 | 在线观看日本韩国电影 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 日韩免费在线网站 | 亚洲视频精品 | 欧美少妇的秘密 | 在线观看av小说 | 99国内精品久久久久久久 | 999久久久欧美日韩黑人 | 欧美天天射 | 国产精品一二三 | 精品国产伦一区二区三区观看方式 | 91自拍视频在线观看 | 91桃色视频 | 日本午夜在线亚洲.国产 | 日韩一区二区三区在线观看 | 人人爽人人爽人人爽学生一级 | 麻豆成人网 | 精品久久国产一区 | 激情久久五月天 | 九九免费在线观看 | 国产99久久久国产精品免费二区 | 狠狠干,狠狠操 | 2021国产在线 | 国产麻豆精品在线观看 | 麻豆94tv免费版 | 国产成年人av | 日韩欧美大片免费观看 | 日本久久久久久久久 | 黄色国产区 | 人人射网站 | 伊人www22综合色 | 亚洲精品国偷自产在线91正片 | 最新久久免费视频 | 国产在线小视频 | 精品不卡av| 96视频在线 | 97人人模人人爽人人少妇 | 国产黄色成人av | 亚洲美女免费精品视频在线观看 | a视频免费看| 福利网址在线观看 | 日本久久综合网 | 久久在线电影 | 天天干天天做天天操 | 波多野结依在线观看 | 91在线中文字幕 | 男女激情麻豆 | 久草资源免费 | 亚洲精品动漫久久久久 | 麻豆播放 | 超碰人人做 | 91久久久久久久一区二区 | 91麻豆免费看 | 9ⅰ精品久久久久久久久中文字幕 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 国内视频 | 天天舔夜夜操 | 91欧美国产 | 中文国产在线观看 | 在线国产日本 | 中文字幕在线观看视频免费 | 韩国三级av在线 | 国产精品久久久久一区 | 欧美性生活小视频 | 亚洲高清视频在线 | 久久理论电影网 | www.黄色在线 | 中文字幕亚洲综合久久五月天色无吗'' | 国产精品一区在线观看你懂的 | 五月黄色 | 免费能看的av | 欧美性极品xxxx娇小 | 国产亚洲精品成人av久久影院 | 久久久久久国产精品亚洲78 | 色播激情五月 | 四虎伊人| 久久久久久久久久久久久9999 | 国产精品白丝av | 五月婷婷香蕉 | 国产在线精品区 | 日韩美女免费线视频 | 精品一二 | 国产精品九九九九九九 | 精品久久国产精品 | 中午字幕在线观看 | 免费瑟瑟网站 | 丁香激情网 | 亚洲成av人影院 | 日韩一区二区三 | 日韩字幕在线 | 免费中午字幕无吗 | 激情在线免费视频 | 黄色福利视频网站 | 国产福利小视频在线 | 91精品国产综合久久婷婷香蕉 | 成人在线免费观看视视频 | 国产小视频精品 | 亚洲精品美女久久17c | 欧美国产不卡 | 国产精品网站 | 国产成人一区二区三区影院在线 | 亚洲精品视频在线观看免费视频 | 日韩在线观看视频网站 | 丝袜美腿亚洲综合 | 欧美欧美 | 亚洲电影在线看 | 色在线视频网 | 久久国内免费视频 | 久久综合九色综合久久久精品综合 | 免费成人av网站 | 在线v | 9i看片成人免费看片 | 一级黄色电影网站 | 日韩色av色资源 | 亚洲国产福利视频 | 又黄又爽又刺激 | 日躁夜躁狠狠躁2001 | 久久久精品国产免费观看同学 | 久久精品亚洲国产 | 午夜美女视频 | 99爱爱| 国产91全国探花系列在线播放 | 蜜臀久久99精品久久久酒店新书 | 国产剧在线观看片 | 亚洲一二三在线 | 99视频精品全国免费 | 久久在视频 | 久久久国产一区二区 | 久久久久日本精品一区二区三区 | 黄色成年 | 久久免费观看少妇a级毛片 久久久久成人免费 | 亚洲永久精品在线观看 | 在线观看视频你懂 | 91av综合| 2019久久精品 | 亚洲区视频在线观看 | 久久综合色8888 | 激情网第四色 | 日韩精品视频久久 | 天天色草 | 欧美99热 | 99se视频在线观看 | 亚洲精品456在线播放乱码 | 国产看片网站 | 国产精品女视频 | 黄网站色视频免费观看 | 又黄又爽又无遮挡免费的网站 | 97超碰国产精品女人人人爽 | 中文字幕资源在线观看 | 久久免费看av| 国产视频精选在线 | 久久久黄色免费网站 | 国产一区精品在线观看 | 亚洲视频久久久久 | 国产一级久久 | 婷婷精品国产一区二区三区日韩 | 日韩在线 一区二区 | 亚洲视频免费在线看 | 亚洲国产午夜 | 丁香激情五月 | 精品久久久国产 | 久久精品国产第一区二区三区 | 福利视频午夜 | 欧美日韩在线观看一区二区三区 | 四虎在线观看精品视频 | av资源免费观看 | 久久久精品久久 | 欧美做受高潮电影o | 国内精品久久久久 | 精品国产一区二区三区四区vr | av在线电影网站 | www.五月婷婷.com | 国产69精品久久99的直播节目 | 9999在线| 九九爱免费视频 | 五月综合色 | 三级av黄色 | 四虎在线观看精品视频 | 99热免费在线 | 97超碰在线人人 | 欧美日韩在线免费观看视频 | 一区二区三区中文字幕在线观看 | 亚洲精品视频在线免费播放 | 成人免费中文字幕 | 97电影在线看视频 | 精品国产一区二区三区久久影院 | 韩日三级在线 | 日韩在线视频国产 | 日本精品视频免费 | 日精品| 亚洲精品视频在线观看视频 | h视频在线看 | 欧美日韩三级在线观看 | 黄色av免费在线 | 日本高清dvd | 亚洲视频在线视频 | 亚洲精品ww | 国产一区二区三区视频在线 | 久久综合狠狠综合 | 国产一区黄色 | 久久涩视频 | 国产视频一区精品 | 麻豆久久精品 | 精品国产一区二区三区久久 | 婷婷色中文字幕 | 亚洲国产美女精品久久久久∴ | 亚洲国产综合在线 | 狠狠色婷婷丁香六月 | 91亚州 | 偷拍福利视频一区二区三区 | 国产理伦在线 | 亚洲精品日韩一区二区电影 | 少妇性aaaaaaaaa视频 | 中文字幕视频网 | 中文字幕av免费观看 | 久久草在线视频国产 | 久久国产精品久久国产精品 | 久久精品亚洲一区二区三区观看模式 | 国产99中文字幕 | 99福利影院 | 国产成人一区二区三区 | 亚洲一区二区精品在线 | 日本福利视频在线 | 中文国产字幕在线观看 | 蜜桃av观看| 天天射天天干天天爽 | 五月婷婷六月丁香在线观看 | 亚洲天堂网在线观看视频 | 色婷婷综合久久久久中文字幕1 | 欧美日韩另类在线观看 | 天天干天天拍天天操天天拍 | 天天操比| 午夜久久久久久久久久影院 | 伊人狠狠操 | 99久久精品免费看国产免费软件 | 日本3级在线观看 | 9999精品免费视频 | 男女激情网址 | 国产精品99久久久精品 | 国产美女搞久久 | 91精品成人 | 特黄特色特刺激视频免费播放 | 久久影院亚洲 | 国产精品毛片久久 | a黄色| 99久久精品国产免费看不卡 | 国产免费黄视频在线观看 | 久久国产午夜精品理论片最新版本 | 国产不卡一 | 99久久精品电影 | 国产精品一区二区在线观看免费 | 久久国产精品系列 | 国产资源av | 视频在线播放国产 | 91精品专区 | 日韩av电影中文字幕在线观看 | 91最新视频在线观看 | 日韩午夜电影 | 久久免费在线视频 | 99视频在线免费看 | 久久精品中文字幕一区二区三区 | 久久精品一区八戒影视 | 亚洲五月激情 | 国产又粗又猛又黄又爽视频 | zzijzzij亚洲日本少妇熟睡 | 久久久久免费精品视频 | 中文字幕在线观看网址 | 色网站免费在线看 | 免费一级片在线观看 | 天天做天天爱天天综合网 | 园产精品久久久久久久7电影 | 狠狠色丁香婷婷综合欧美 | 欧美日韩亚洲在线观看 | 91在线观看高清 | 亚洲视频在线免费看 | 美女国产在线 | 国产精品破处视频 | 久久男女视频 | 精品国产一区二区三区在线观看 | av中文字幕在线电影 | 欧美在线视频二区 | 国产精品系列在线观看 | 日韩欧美在线国产 | 国产在线视频一区二区三区 | 激情视频在线观看网址 | 有码中文字幕在线观看 | 黄色91在线| 在线播放国产精品 | 国产综合久久 | 在线国产一区二区三区 | 中文字幕色在线视频 | 久久精品国产亚洲 | 亚洲天堂网在线播放 | 久久精选视频 | 久久久天堂 | 亚洲精品在线视频网站 | 亚洲国产成人久久 | 狠狠干成人综合网 | 亚洲国产精品va在线看 | 午夜精品一区二区三区在线观看 | 国产美女免费观看 | 久久久午夜视频 | 3d黄动漫免费看 | av大片网站 | 91中文字幕在线播放 | 中文字幕乱码亚洲精品一区 | www色com| 免费人成网ww44kk44 | 国产一区二区在线免费 | 久草精品网 | 99re8这里有精品热视频免费 | 午夜久久影视 | 激情五月在线视频 | 亚洲成人国产精品 | 欧美成人一区二区 | 日韩欧美在线视频一区二区 | 国产女人18毛片水真多18精品 | 国产日韩视频在线播放 | 国产一性一爱一乱一交 | 99九九99九九九视频精品 | 欧美热久久 | 四虎国产精品免费观看视频优播 | 日韩中文字幕亚洲一区二区va在线 | 久久久国产精品亚洲一区 | 狠狠色丁香久久婷婷综 | 日韩色中色 | 国产黄在线看 | 狠狠色丁香久久综合网 | 亚洲欧美日本一区二区三区 | 国产精品午夜免费福利视频 | 精品国产一区二区三区久久久蜜臀 | av免费观看网址 | 国产不卡在线看 | 91在线日韩 | 国产原创91 | 欧美日韩精品免费观看视频 | 偷拍视频一区 | 久草在线资源观看 | 91视视频在线直接观看在线看网页在线看 | 国产最新精品视频 | 久热av | 人人dvd | 亚洲好视频 | 456免费视频| 久草视频资源 | 亚洲最新av | 女人高潮一级片 | 黄色大片av | 91看片一区二区三区 | 欧美激情视频一二区 | 91精品免费视频 | 色99网| 久久特级毛片 | 精品国偷自产在线 | 在线免费观看视频a | 国产999久久久 | 免费高清在线视频一区· | 一级片视频在线 | 综合激情网... | 在线91色| 国产美女被啪进深处喷白浆视频 | 日韩在线色视频 | 爱色婷婷 | 97电影网手机版 | 久久99久久精品国产 | 成人黄色国产 | 天天操狠狠干 | 色综合久久88 | 欧美性色综合网站 | 国产精品一区二区在线观看免费 | 在线一二三四区 | 久久久久久综合 | 精品国产一二区 | 中文字幕丝袜美腿 | 日韩精品中文字幕在线播放 | av综合 日韩 | 午夜精品电影 | 中文字幕视频三区 | 国产在线不卡一区 | 全久久久久久久久久久电影 | 欧美一二区在线 | 992tv在线 | 91大片成人网| 一级黄网 | 中文字幕精品一区久久久久 | 999亚洲国产996395| 久久免费播放视频 | 97色在线观看免费视频 | 四虎www.| 日韩欧美91| 亚洲精品videossex少妇 | 日韩中字在线 | 在线观看岛国片 | 99热网站| 亚洲欧美日韩国产一区二区三区 | 国产99色 | 国产成人精品免高潮在线观看 | 国产精品综合在线观看 | 草久草久 | 天天射天天射天天射 | 日本精品一区二区 | 日韩丝袜 | 91九色国产在线 | 日韩欧美视频免费看 | 18久久久久久 | 久久久久一区二区三区四区 | 韩国在线一区二区 | 久久永久视频 | av网址在线播放 | 国产成人一区二区在线观看 | 天堂激情网 | 中文乱码视频在线观看 | 欧美aaaxxxx做受视频 | 在线观看国产 | 一区二区在线电影 | 黄色成人av在线 | av电影免费在线 | 91麻豆精品国产91久久久久久久久 | 色婷婷综合五月 | 日韩在线高清视频 | 国内精品久久久久久久久久清纯 | 97视频免费 | 亚洲成熟女人毛片在线 | 美女视频黄免费的久久 | 91av视频在线观看 | 国产精品久久久久久a | 天天综合网 天天 | 操久| 国产区精品在线观看 | 国产99一区 | 91av播放| 人人藻人人澡人人爽 | 在线欧美最极品的av | 国产精品黄色在线观看 | 国产精品一区二区三区久久久 | 亚洲黄色三级 | 欧美一级黄色网 | 久久96国产精品久久99漫画 | 免费黄色网址大全 | 久久精品视频网站 | 久久r精品 | 国产中文字幕网 | 97在线观视频免费观看 | 九九热在线观看视频 | 国产精品美女久久久久aⅴ 干干夜夜 | 欧美日韩视频在线播放 | 999精品在线| 欧美日韩中文国产一区发布 | 奇米影视999| 国产精品自产拍在线观看蜜 | 六月久久婷婷 | 中文字幕在线观看1 | 欧美亚洲国产精品久久高清浪潮 | 在线高清一区 | 日韩美一区二区三区 | 午夜婷婷在线观看 | 国产做爰视频 | 亚洲播放一区 | 中文字幕一区二区三区在线观看 | 亚洲精品在线观看的 | 亚洲激情一区二区三区 | 久草视频在线观 | 久久成人精品电影 | 欧美一级片免费观看 | 懂色av一区二区在线播放 | 国产特黄色片 | 婷婷www | 中文字幕精品在线 | 亚洲精品1区2区3区 超碰成人网 | 国产一级二级视频 | 欧美福利片在线观看 | 午夜手机电影 | 国产一二三四在线观看视频 | 久久精品专区 | 亚洲黄色成人网 | 国产精品中文字幕av | 99久久精品国产一区二区成人 | 色综合小说| 玖玖国产精品视频 | 国产午夜小视频 | 亚洲激情av | 最近中文字幕免费av | 国产黄色精品 | 日韩在线观看视频中文字幕 | 夜色.com| 欧美成人久久 | 麻豆网站免费观看 | 亚州黄色一级 | 国产美女在线精品免费观看 | 亚洲成人资源 | 不卡的av电影在线观看 | 精品久久久久久久久久久久久 | 麻豆网站免费观看 | 亚洲成人精品影院 | 国产一级视频免费看 | 国产精品久久嫩一区二区免费 | 91福利视频在线 | 九九久久成人 | 国产精品乱码久久久久 | 婷婷六月丁香激情 | 久久不卡国产精品一区二区 | 欧美日在线 | 国产午夜精品一区二区三区嫩草 | 日韩免费观看视频 | 久久免视频| 黄色免费大全 | 国产专区一 | 亚洲三级性片 | 欧美成年网站 | 青草视频在线播放 | 视频三区在线 | 亚洲精品一区二区三区在线观看 | 免费网址你懂的 | 91看片淫黄大片一级在线观看 | 91精品在线观看视频 | 丁香5月婷婷久久 | 亚洲综合色婷婷 | 天天色天天射天天综合网 | 夜夜干夜夜 | 国产亚洲久一区二区 | 日韩伦理片一区二区三区 | 欧美a级一区二区 | 99热亚洲精品 | 天天综合天天做 | 四虎海外影库www4hu | 少妇av网| 黄色.com| 狠狠干五月天 | 爱爱av网| 日本婷婷色 | 九九免费在线观看 | 日韩亚洲精品电影 | 美女啪啪图片 | 亚洲年轻女教师毛茸茸 | 国产精品成久久久久三级 | 免费日韩 精品中文字幕视频在线 | 国产 日韩 欧美 中文 在线播放 | 日韩网站在线 | av一级片 | 91 中文字幕| 日韩不卡高清视频 | 成年人毛片在线观看 | 国产黄色在线网站 | 亚洲精品国偷自产在线91正片 | 伊人婷婷综合 | jizz欧美性9| 亚洲黄色激情小说 | 91免费观看 | 日本少妇久久久 | 国产视频亚洲 | 国产又粗又硬又爽的视频 | 久久tv | 国产精品18久久久 | 久草视频手机在线 | 久久伦理网 | 人人模人人爽 | 日韩中文幕 | 国产精品美女免费视频 | 久久经典国产 | 午夜精品一区二区三区视频免费看 | 久久草草热国产精品直播 | 日韩精品一区二区三区高清免费 | 91视频免费视频 | 91麻豆产精品久久久久久 | 免费观看的黄色 | 69亚洲乱 | 免费电影一区二区三区 | 日韩高清成人在线 | 91久久一区二区 | 久久国内精品视频 | www.com.日本一级 | 国产精品自产拍 | 国产午夜精品一区二区三区在线观看 | 国产精品精品久久久 | 国产精品手机在线 | 国际精品网 | 天天色天天色天天色 | 狠狠躁夜夜a产精品视频 | 毛片网站免费 | 天天爱天天射天天干天天 | 色播五月婷婷 | 国产一区二区在线看 | 波多野结衣在线视频一区 | 天天爱av导航 | 亚洲中字幕 | 丁香久久综合 | 久久久午夜剧场 | 国产又粗又长又硬免费视频 | 国产 欧美 在线 | 国产精品久久久久一区二区国产 | 国产成人一区在线 | 亚洲精品在线视频播放 | 麻豆视频在线免费观看 | 欧美色插 | 日韩精品欧美视频 | 天堂v中文 | 欧美国产91 | 日韩成年视频 | 综合国产视频 | 91精品爽啪蜜夜国产在线播放 | 久久精品欧美一区 | 免费在线观看午夜视频 | 久久久久一区二区三区 | 五月激情丁香婷婷 | www.天天操.com | www.天天射.com| 91黄色免费看 | 中午字幕在线 | 日韩av黄 | 美女网站黄免费 | 久久av免费 | 五月天亚洲精品 | 久久久久久久久亚洲精品 | 激情欧美国产 | 婷婷国产精品 | 中字幕视频在线永久在线观看免费 | 91九色porny在线 | 精品五月天| 亚洲成人av在线电影 | 久久久免费在线观看 | 久久高清片| 日韩系列在线 | 久草观看| 91在线欧美| 午夜.dj高清免费观看视频 | 欧美日韩国产精品一区二区亚洲 | 国产黄色片免费观看 | 999国内精品永久免费视频 | 成全在线视频免费观看 | av福利超碰网站 | 韩国av电影在线观看 | 国产精品久久久久久久妇 | 日韩色av色资源 | 亚洲精品综合一二三区在线观看 | 不卡av免费在线观看 | 亚洲综合色视频在线观看 | 91丨九色丨国产丨porny精品 | 夜夜爽88888免费视频4848 | 日韩久久精品一区二区三区 | 蜜臀久久99精品久久久酒店新书 | 国产电影黄色av | 国产精品嫩草影院9 | 国产成人精品一区二区三区福利 | 欧美日韩免费在线观看视频 | 欧美日韩在线播放一区 | 91精品亚洲影视在线观看 | 国产精品 亚洲精品 | 午夜精品久久久久久中宇69 | 国产免码va在线观看免费 | 久久久久久国产精品 | 国产精品专区在线观看 | 久久超级碰视频 | 欧美人操人 | 亚洲最新在线视频 | 日韩av片无码一区二区不卡电影 | 国产精品免费视频久久久 | 成人免费视频免费观看 | 天天操导航 | 久久综合导航 | 精品久久久久国产 | 欧美性免费| 免费在线观看黄 | 一二区电影| 91亚洲精品久久久蜜桃网站 | 97超碰在线播放 | 国产亚州精品视频 | 91视频免费视频 | x99av成人免费 | 天堂在线一区二区 | 九九九热视频 | 免费久久网站 | 国产精品视频地址 | 精品网站999www | 国产成人精品一区二区 | 色婷婷久久久 | 日日麻批40分钟视频免费观看 | 国产精品一区二区久久精品爱涩 | 国产亚洲精品久久久久久久久久久久 | 国产精品黄网站在线观看 | 日韩高清片 | 亚洲精品午夜久久久久久久久久久 | 九草视频在线观看 | 成人黄色小说在线观看 | 黄色av免费电影 | 91污视频在线观看 | 日日日网 | 欧美一区二区三区不卡 | 国产精品欧美久久 | 激情婷婷在线 | 九九视频这里只有精品 | 国产精品久久久电影 | 中文字幕日韩一区二区三区不卡 | 久久国产精品免费一区二区三区 | 亚洲三级影院 | 91黄视频在线 | 97综合在线 | 国产一区二区三区免费在线 | 久久久亚洲精华液 | 人人爱人人爽 | av成人在线电影 | 91桃花视频 | 久草视频在线资源 | 又爽又黄又无遮挡网站动态图 | 五月婷婷,六月丁香 | www.国产在线 | 99热999| 亚洲精品一区二区三区新线路 | 在线免费黄色 | 欧美日韩免费观看一区=区三区 | 国产精品中文久久久久久久 | 中国老女人日b | 中文字幕传媒 | 亚洲人精品午夜 | 91九色porny在线 | 欧美地下肉体性派对 | 天天干天天干 | 黄色激情网址 | 国产精品大片在线观看 | 国产性天天综合网 | 奇米影视8888在线观看大全免费 | 国产亚州精品视频 | 精品国产美女 | 久久久久久网站 | 亚洲专区在线 | 久久综合色播五月 | 91三级在线观看 | 在线看小早川怜子av | 一区二区三区四区影院 | 精品国产乱码久久久久久三级人 | 久久免费av电影 | 超碰免费观看 | 毛片激情永久免费 | 狠狠做深爱婷婷综合一区 | 永久黄网站色视频免费观看w | 在线播放精品一区二区三区 | 黄色免费观看视频 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 色资源在线 | 啪啪小视频网站 | 91最新视频 | 在线中文字幕观看 | 免费a网 | 中文av在线天堂 | 久亚洲精品| 日韩免费高清 | 日韩最新理论电影 | 国产成人综 | 日本特黄特色aaa大片免费 | 久久狠狠干 | 国产人成精品一区二区三 | 日韩精品中文字幕在线观看 | 在线观看免费一级片 | 97人人澡人人添人人爽超碰 | 久久久久国产成人精品亚洲午夜 | 亚洲最新av在线网站 | 麻豆国产精品va在线观看不卡 | 婷婷丁香花五月天 | 91精品亚洲影视在线观看 | 国产一区二区不卡视频 | 国产精品久久久久久久久久久久冷 | 国产性天天综合网 | 国产成人一区二区三区电影 | 国产1区在线观看 | 国产成人精品区 | 免费一级片观看 | 亚洲人成网站精品片在线观看 | 五月天激情视频 | 久久中文字幕导航 | 丁香六月网 | 九九免费在线看完整版 | 久久精品牌麻豆国产大山 | 午夜精品福利一区二区 | 国产成人一级电影 | 亚洲高清视频在线 | 伊人国产在线观看 | 91免费视频黄 | 免费av试看 | 国产成人在线综合 | 欧美激情操 | 国产成人久久av免费高清密臂 | 日韩精品欧美专区 | 亚在线播放中文视频 | 91精品国产99久久久久久红楼 | 毛片美女网站 | 麻花传媒mv免费观看 | 成人精品久久久 | 91成版人在线观看入口 | 韩国一区视频 | 欧美日韩在线观看一区二区三区 | 精品久久久久_ | 91成人网在线播放 | 三上悠亚一区二区在线观看 | 高清中文字幕 | 99免费视频 | 久久999久久 | 91黄视频在线观看 | 免费看一及片 | 探花视频免费在线观看 | 蜜臀久久99精品久久久无需会员 | 国产美女网站在线观看 | 狠狠操狠狠插 | 草久草久 | 在线看不卡av | 日韩国产精品久久久久久亚洲 | 婷婷亚洲综合五月天小说 | 久久成人在线 | 五月婷婷在线综合 | 久久亚洲专区 | 久久成人国产精品入口 | 天天操天天射天天插 | 午夜丰满寂寞少妇精品 | 亚洲天天 | 日韩h在线观看 | 在线国产精品一区 | 国产精品视频999 | 综合色亚洲 | 色婷婷色 | 香蕉在线视频观看 | 国产精品第一视频 | 一区二区三区三区在线 | 青草视频网 | 国产一区二区在线免费播放 | 亚洲涩涩网 | 中文在线8资源库 | 一区二区三区中文字幕在线 | 中国一级特黄毛片大片久久 | 欧美一级视频免费 | 国产精品免费小视频 | 97免费在线观看视频 | www.五月天激情 | a级片在线播放 | 日韩毛片久久久 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 国产高清av在线播放 | 成人中文字幕+乱码+中文字幕 | 亚洲永久国产精品 | 国产最新视频在线观看 | 亚洲一级电影在线观看 | 国产这里只有精品 | 久久男人视频 | 日韩精品无码一区二区三区 | 国产成人精品一区二区在线 | 久久免费黄色网址 | 成人av一区二区在线观看 | 国产无限资源在线观看 | 天天操天天爱天天干 | 久热av | 国产视频1 | 国产午夜麻豆影院在线观看 | 国精产品999国精产品视频 | 亚洲九九九在线观看 | 国产精品免费在线播放 | 在线激情网 | 天天摸夜夜操 | aⅴ视频在线 | 久久久久久久久久久黄色 | 国产中文字幕91 | 国产一区视频免费在线观看 | 色婷婷视频在线 | av在线免费网站 | 欧美a在线免费观看 | 天天干天天草 | 手机在线黄色网址 | 日本久久久久久久久久久 | 国产精品日韩欧美 | 黄色大片免费网站 | 青春草免费在线视频 | 成人毛片在线观看 | 日本韩国欧美在线观看 | 免费在线播放视频 | 亚洲高清av在线 | 久久9999久久 | 久久精品久久精品久久39 | 亚洲欧美国产精品va在线观看 | 成人小视频在线观看免费 | 91视频在线观看免费 | 国产在线精品一区二区 | 99成人精品 | 中文字幕之中文字幕 | 在线观看小视频 | 成人97人人超碰人人99 | 日韩免费成人av | 中文乱幕日产无线码1区 | 精品在线免费视频 | 欧美日韩国产页 | adn—256中文在线观看 | 婷婷在线观看视频 | 色综合天天综合 | 国内久久| 成人av免费网站 | 国产精品亚洲片夜色在线 | 久草在线手机视频 | 91视频88av| 少妇bbw撒尿| 亚洲精品国产自产拍在线观看 | 久久久久久草 | 国产黄色成人av | 日韩免费福利 | 黄色aaa级片 | 久久99最新地址 |