適配演進的計算機軟件產品的制作方法

            文檔序號:6560059閱讀:238來源:國知局
            專利名稱:適配演進的計算機軟件產品的制作方法
            技術領域
            本發明涉及一種使計算機程序產品自動適配于環境的方法、自動適配的計算機程序產品,和用于制造所述自動適配的計算機程序產品的方法。
            本發明基于優先權申請,歐洲專利05106615.7,在此將其引入作為參考。
            背景技術
            在早期計算的原始設置中,程序復雜度很小,以至于一個人的思想就能完全包括整個程序的活動,直到最小的細節。現在,盡管計算機的能力已經以持續的幾何級數增加,然而人的能力卻沒有進展。為了從技術進步中獲益,必須開發并使用更抽象的概念工具和編程語言。
            盡管單個程序員可以做出很大貢獻,然而復雜度級別已經遠遠超出一個人可以構思整個程序的范圍,這個程序能夠充分利用現有計算機。因此開發交換、協作、積累、構造的方法以精心制作復雜的程序非常重要;這是軟件工程的領域。
            在2001年10月中期,IBM發布了聲明,指出管理當今計算系統的困難超過了單個軟件環境的管理。將幾個異構環境集成到公司范圍的(corporate-wide)計算系統中的需要、以及超過公司邊界而將其擴展到互聯網的需要,引入了新的復雜度級別。計算系統的復雜度似乎接近人的能力的限制,然而朝向增加的互連通性和集成的步伐,毫不減弱地快速前進。
            在2003年1月IEE Computer Society發表的Jeffrey O.Kephart和David M.Chess的論文“The Vision of Autonomic Computing”中,建議創建根據管理者目標管理自身的系統。如新的細胞在生物系統中建立自身一樣不費力地集成新的組件。自動計算系統的本質是自管理,其意圖是從系統操作和維護的細節中解放系統管理者,并為用戶提供以最高性能運行的機器。如它們的生物學的同名物,在面對改變組件、工作量、要求和額外條件時,以及在面對無意或惡意的硬件或軟件故障時,自動系統將維護并調節它們的操作。
            自動系統可以持續監控它自己的使用,并且檢查組件升級。如果它認為升級的公開性能(advertised feature)是值得的,則系統將安裝它們,如果必要就重新配置自身,并且運行回歸測試,以確保一切正常。當它檢測到錯誤時,系統將回到較舊的版本,同時其自動問題確定算法試圖隔離錯誤源。作者引用了自管理的四個方面表1

            例如在普遍計算中發現的多個應用情景具有一個共同方面軟件將面臨持續改變的執行環境。為了保證無縫服務,協議、結構和應用必須能夠適配于在例如網絡、系統配置、可用資源、變化的策略中的改變。換言之,適配必須是任何移動軟件系統的關鍵性能。
            通過用于使計算機程序產品自動適配于環境的方法,解決了自動計算的顯示(vision)以及去除后天的功能和結構需求的問題。
            計算機程序通常包括可執行部分和數據部分,所述使計算機程序產品自動適配于環境的方法包括以下步驟針對環境配置計算機程序產品,并且在該環境中執行軟件,其中在程序內部觀測執行的效果(effect),即行為本身,即可執行部分;利用軟件分析被觀測效果的相互關系,并基于規則修改可執行部分以減小不期望的效果。
            通過一種自動適配于環境的計算機程序產品而達到所述目的,所述計算機程序產品包括可執行部分和數據部分,所述計算機程序產品包括針對環境配置計算機程序產品以在該環境中執行該計算機程序產品的配置裝置,其中所述計算機程序產品包括觀測裝置,其用于觀測執行的效果,即可執行部分的行為;推斷裝置,其用于利用所述計算機程序產品來分析被觀測效果的相互關系;以及重新構造裝置,其用于基于規則修改可執行部分以減小不期望的效果。
            通過一種制造這種自動適配的計算機程序產品的方法而達到所述目的,所述方法包括以下步驟通過集成用于觀測執行的效果(即可執行部分的行為)的觀測裝置,來配置(furnishing)所述可執行部分;通過用于利用軟件分析觀測效果的相互關系的推斷裝置,來配置所述可執行部分;以及通過用于基于規則而修改可執行部分以減小不期望的效果的重新構造裝置,來配置所述可執行部分。
            換言之,建議用這樣的設計來替換通常的靜態軟件設計通過應用程序轉換技術、解釋器、抽象(虛擬)機、編譯技術、智能代理技術和高階編程來允許演進的需求,其中該靜態軟件設計不適合例如每天改變的環境中的普遍計算。例如代理(個體、自主服務,即獨立的軟件片段)的適配、修改和重新構造,使其能夠在演進(改變)的需求的環境中運行。應當指出,在本上下文中,配置和適配以及修改這些詞語變為同義詞。

            發明內容
            基本思想是變形(morphing)能力,這是指動態修改其運行時間的能力。變形(或演進)是一種實際效果,其中個體(實例、代理)的集合涉及執行特定的任務,訓練它們自己來增強它們解決任務的能力。
            本發明也是一種優選地作為計算機軟件而被實現的制造方法,以及一種具有系統結構的計算機軟件產品,其中組件或部分被看作是自組織的獨立實體,該實體重新構造通過內部觀測的外部交互所激勵的自身。因此,計算機軟件產品包括可觀測且演進的組件用于觀測行為并改變自己。
            這具有這樣的優勢產品是自演進的軟件。所述制造方法實現了改進的有效快速的原型化(prototyping)。產品本身能夠動態適配于改變的環境和需求。這導致針對必要適配和修改的開發工作的減少,并且提高了開發速度。所述技術允許創建自修復的軟件。通常的開發過程被簡化并且變得更具交互性和迭代性。最后一項要點是,動態演進的軟件組件將加速軟件和聯網技術,例如作為語義網絡的基礎,這是因為在代理團體中存在遺漏的技術,即除了對特定功能性的請求的刪除之外,該功能性到請求實體的實際轉移。本發明也適于自動減小軟件熵,這產生了改進的軟件設計。以變形環境和計算資源為代價,通過應用本發明可以達到所有所述及許多其它優勢。
            下面將通過比較傳統應用的技術和根據本發明的方法來實現本發明的目的,以及它們的應用在根據本發明的計算機軟件產品中導致怎樣的結果。


            圖1概略地示出了根據現有技術和根據本發明的制造方法;圖2示出了迭代制造過程的不同階段的工作;圖3概略地示出了根據本發明的計算機軟件產品的粗結構;圖4概略地示出了說明根據本發明方法的粗結構的組件的協作;
            圖5概略地示出了演進歷史。
            具體實施例方式
            通常計算機軟件產品包括兩個部分用于存儲并呈現信息的數據部分,和執行功能狀態。在通常的編程語言中,這些例如呈現為變量值。目前,數據部分通常是基于數據類型、對象以及甚至是數據庫,該數據庫能夠使對象持續。更高級的程序語言以及特別是非命令式語言,如ProLog或LISP,模糊了這兩部分的隔離。然而,在有助于存儲狀態的部分(即特定的程序配置)和有助于被評估(執行的另一個術語)時改變這些狀態的部分之間進行區分幾乎是可能的,參見例如任何種類的正式語義描述,如可操作語義、邏輯語義或甚至是聲明語義。
            例如代碼轉換,以及高階編程或自修改代碼的任何應用,在這個定義中是例外的情況,所述轉換似乎是可執行部分,并且所述代碼是數據部分,盡管代碼是可執行的。所述部分的定義具有這樣的上下文部分實際上被執行,即從可操作語義角度來說能夠改變(抽象的)機器配置。模型在下面被簡化并且被理解為操作,能夠改變機器狀態的代碼部分,數據部分。簡單來說操作導致在狀態變化時變得明顯的動作。
            自修改代碼稱為軟件片段,它通過在進行時重寫自身來達到它的目的。目前,這普遍被認為非常有害且嚴峻的,但是它通常是編程者工具箱中一種極佳的手段。
            圖1在左邊示出了示例性迭代軟件創建過程。其開始于初始規劃1,接著是需求分析2和設計3,即或多或少將所需功能性轉換為體系結構描述。可以在4實現結果,即就編程環境再形成所述結果,這導致可以在5對照需求而被測試的實現,即對照預期功能性。最終在6分析并評估差異,其導致額外的需求。另一個循環開始。最終,當如此完成需求的覆蓋時,在7部署軟件產品,即針對可以被看作是從創建階段P1向可操作階段P2轉變的操作來分配該軟件產品。
            在如問題陳述中所指出的可操作階段P2中,通常出現其它需求,而另外幾個需求消失。假設軟件產品自身能夠建立其它迭代以適配于改變的需求,過程繼續進行到另一個需求分析8,然后是重新設計9,以及重新實現10。可以在11針對測試和度量來執行這個重新實現,并且如果在覆蓋額外需求時成功進行了修改,則最終在12進行評估。顯然,所述過程也是迭代的,這產生了演進的軟件產品。所述重新實現是軟件產品的版本,并且為了實現演進跟蹤并反向追蹤演進,使重新實現持續是優選的,即凍結中間部署13。
            構建軟件的任何過程的中心是程序編碼。為了增強這些過程,將程序員從所有重復且概念上冗余的動作中解放出來,以使程序員可以專注于編程的本質,即關注沒有被解決的問題。
            讀取、轉換或寫其它程序的編程領域的理論,包括概念函數式編程、宏編程,自然地出現在軟件開發鏈中,其中它扮演了很重要的角色,它僅是編譯器、解釋器、調試器的形式。然而,元編程(meta-programming)從未被集成到開發過程中,并且獲得其角色的感知(即軟件內部的可觀測屬性)是這個領域中的一個進步。
            添加(編程)對象的正交持續(orthogonal persistence)是另一個進步。開發凍結13強制所述正交持續,其中該正交持續是一種其中對象持續直到不再被需要的屬性,利用動態優化代碼的自動一致性管理的程序二進制碼的編譯和管理,利用結構驅動的用戶連接的用戶接口驅動的編程,利用隱式自動分發的顯式人工聯網。
            可操作階段需要元編程。元編程是操縱程序的活動性,其反過來操縱程序。所述階段也需要反映(reflection)。反映是系統充分認識自己的能力,從而動態元編程它們自己的行為、使它們自己適配于改變的環境、并將程序員和管理員從當前需要人工完成的許多任務中解放出來。
            反映允許系統結構的動態擴展、如果沒有反映,則必須重新構造新的系統,并且例如每次結構改變時重新啟動。
            在技術的級別,以上內容都意味著服務的中斷、服務的不可靠、服務的拒絕和進展的未知;但是在社會心理的級別,反映的缺乏也意味著人們必須進行不可逆轉的靜態結構選擇,并且不考慮結構改變。反映是一種技術優勢,但是也是一種社會心理的需求,其允許通過演進概念結構而不管歷史選擇的個體進展,以及通過統一用戶情況而不管個體和非共享背景的多樣性的團體進展。
            實際挑戰是構建這樣的系統可以一致地調整單獨開發的性能,其中每個性能關于其它性能而處理計算的不同方面。如LISP的高級編程語言能夠表達邏輯推理(包括商數)和計算反映二者,即能夠指定、實現并任意檢驗分離軟件組件之間復雜的后天關系。
            圖3示出了粗結構,其能夠解決元編程和反映。作為通常開發的軟件產品,假設程序P由觀測器O來觀測,這由程序P和觀測器O之間的箭頭表示。觀測器具有一種對執行程序時所發生事情的警覺或感知。只要觀測匹配于元編程規則,就從觀測器O觸發效應器E以重新構造程序P。這個通用結構和通用協作實現了自修改代碼的顯示。
            圖4精煉了所述結構。程序P包括可執行部分EX,其被配置(intrumented)用于由構成觀測器O一部分的測量組件ME所執行的測量。例如通過比較識別器RE處的重構試探法(re-factoring heuristics)和所述測量,來評估該測量。當指示重構時,觸發作為效應器E一部分的重構部件,來重新構造例如代碼CO,可以從該代碼得出新的可執行部分。重構部件可以記錄它的動作,并且使得舊的和新的版次(revision)持續,其是由版次管理部件RM來管理的。
            下面示例性地概述了如何配置LISP程序P以示出觀測器O的可行性。所述技術的創新在于僅在可觀測軟件屬性上限制了觀測器,并且沒有試圖觀測軟件如何適合于軟件環境。
            將所述技術轉換到如邏輯編程的另一編程范例十分直觀,以例如使用以謂語構建的“再斷言”來重新構造邏輯程序并通過添加合適的約束變量給ProLog中的謂語來配置從句。在代表面向對象的編程范例的Smalltalk中,配置(instrumentation)可以被集成到開發環境或對象元類中。
            在LISP中,定義操作符適于配置LISP代碼,例如通過觀測作為軟件屬性的數據部分,其在所述例子中是LISP變量的觀測。
            表10

            DEFVAR類具有對變量的示例屬性建模的幾個槽(slot),以及修改這些標記的幾個方法,即維護所述描述對象的一致性。
            表11

            通過宏defvar*增強編程環境,其在定義變量時創建描述對象。
            典型地,變量的一致重命名,關于是否正確初始化變量的檢測,或變量的使用,是難于處理的。這個相當原始的觀測器能夠應付所述困難,并且允許例如通過(morph-var-statistic‘x’value)來探索(explore)變量的初始值。
            觀測器DEFVAR類是能夠存儲變量屬性的數據結構,所述屬性例如它們的位置、它們的使用、值-通常是所有內在的可觀測屬性,甚至是變量之間的關系。
            當定義變量時通過配置觀測器的宏defvar*來擴展語言本身。觀測在通過下一個代碼引用(excerpt)所示例性示出的函數之間的關系是很困難的。
            為了實現動態、適配的軟件系統,擴展編程語言來支持反映;這稱作感知。其包括對行為的動態修改的支持,即自修改代碼,或易變的元對象協議。LISP中的宏似乎是進行上述操作的適當工具。
            DEFUN類對defun所定義的函數進行建模。DEFUN類的實例“知道”其依據語法的形式(名稱、簽名、主體...),其文件位置。此外,觸發所述函數的函數名稱,和由該函數觸發的函數名稱,作為關系的例子。任何時候用宏defun*定義函數,所述類的實例被創建并被插入類-變量函數列表的協議。在程序開發期間,所述類的實例獲取關于它們自己的知識,并提供信息給“感知“層,以支持關于當前程序結構的推理。以下作為例子而說明了應用。
            表12








            感知類對函數的觀測屬性進行建模,即角色,與其它部分的關系,和軟件中的角色,例如調用方、被調用方和調用數目等。為了探索所述觀測器的能力,建議在LISP執行環境中測試所述代碼。
            表13



            這說明可以配置程序以測量可觀測的執行事件,并且基于編程環境內的測量,動態推導在程序部分之間的可觀測(相互)關系,例如調用方函數、被調用方函數、調用的數量、變量的使用等。顯然,在上述例子中,最好使用FIB的可存儲版本,這是因為對于所有調用,耗用的時間似乎更短,即(fib 19)0.125s,(fib 30)23.72s。
            本發明的下一部分是能夠控制代碼修改的觀測器O的功能性。
            表14

            顯然,存在這樣的實例其具有gensym#<DEFUN-CLASS 206A1B84>,它承載了如由上述檢查所說明的編程邏輯。其可以被命令以改變代碼為存儲版本。
            表15

            結果是現在當前版本的通常評估和存儲版本之間的時差為0s。
            編程語言上的每個FAQ包括代碼改進建議的較大集合;存在許多關于代碼優化和構建技術的書籍,例如參見在1993年8月的Lisp users andVendors conference出版的Peter Norvig和Kent Pitman的“Tutorial onGood LISP programming Style”中好的和不好的編程例子;這可以從http//www.iiia.csic.es/~puyol/TAPIA/transpas/Norvig-luv-slides.pdf下載。
            函數預留代碼修改的例子例如是動態編程,即為了重新使用而存儲函數結果。這需要多數情況下是統一的軟件的數據部分適配。這意味著要存儲的結果應當滿足以下所有標準函數的返回值不應該從調用到調用改變,函數不應具有副作用,并且函數不應使用易變的自變量(argument)。顯然,存儲每次調用時都會改變的函數是無用的。同樣,不存儲具有故意副作用的函數是重要的(以某種方式更新狀態的函數-這是可觀測的屬性,并且可以由上述觀測器技術來統計地檢測),這是因為針對后續調用不會重復副作用。存儲具有易變自變量的函數是危險的,這是由于相同原因,即存儲易變的類在散列表中是危險的。如果利用自變量調用存儲函數一次,使自變量對象轉變,則第二次調用函數,存儲器可能將其看作是緩存命中(cache hit)并且不重新計算所述值。簡言之,可能返回錯誤值。不幸的是,判斷代碼是否可以受益于存儲的唯一方式是對它進行概要(profile),即,令觀測器確定函數是否可以存儲。
            通常(如上所示的)稱作存儲的這個技術,允許“記住”先前調用的函數,如果利用與先前執行完全相同的自變量而進行調用則返回先前計算的值(而不是重新計算)。“自動”存儲是指現有函數可以被轉換為存儲函數,而無需針對函數自身進行代碼中的任何改變。如果計算在程序執行的各個點上被重復,則這可以導致巨大的加速,同時仍對代碼的用戶保留一定程度的透明。至少存在四種存儲的基本應用。函數調用內的重復下面所說明的這個情況是當單個例程超過需要地調用一些子例程時(或遞歸地調用其本身)時,這導致額外的計算。通過存儲,利用動態編程的效應,這些結果立即被返回用于后續的調用。實際上,所述第一種情況可以被認為是用于自動動態編程的工具,但是無需以正確的順序構建子片段(sub-piece)。這通常會將指數算法的時間縮減至多項式或甚至線性時間。給定足夠的考慮,這可以通過以下操作而無需自動存儲便利(facility)地被解決以適當順序構建子片段,或維護專用本地數據結構以保留結果。自動進行所述操作的優勢在于如果已經測試了簡單算法則需要較少的調試和測試,本發明允許運行時來回地改變,這更加透明,并且簡單容易地使用。時間上的重復第二種情況針對時間上重復的、但是從程序中的離散位置的函數的調用,或甚至當用戶在交互式程序中重復地取消(revoke)時。這通常通過常數因子而產生了加速,但是所述因子可能較大。無需自動存儲便利,僅有的可選方案是維護專用全局數據結構,這需要測試和調試,以及針對最多與存儲一樣有效的事情的許多額外工作。離線(off-line)運行第三種情況是當函數太復雜,以致于執行離線計算并為稍后的會話保留結果需要一定的付出(pay-off)。自動存儲便利提供了簡單透明的方法來保留結果,并且在稍后的會話中將所述結果自動關聯于函數。定時和概要最后的情況是當在傳統的性能概要和優化中將存儲用作工具時。觀測器可以提供某種度量(metering)系統,并且這可以用于主要測試實例。通過使用存儲時間或利用存儲,用戶可以存儲正討論的例程,然后多次運行相同的測試實例。如果相同的測試實例在第二存儲運行期間運行僅快了5%,則這表明正討論的例程中沒有存儲會在測試實例的性能中產生多于5%的差異,并且這可能不是開始優化工作的位置。
            存儲僅對于作為真函數(true function)的例程有意義,而不是過程。即,輸出必須完全由輸入所確定,并且全局變量上不存在內在相關性,或其它副作用。如果存儲函數返回稍后被破壞地修改的值,則隨后期望初始值的調用替代地得到被修改值。例如,一種用于在列表上執行破壞操作(nconc,指定位置上的setf,sort等)的憑經驗規則(rule of thumb)是,僅當列表是最近被構造(cons)時才是安全的即,你可以保證為你提供列表的函數已經構建了它,并且因此它不與別處使用的列表共享結構。然而,如果構建列表的函數被存儲,則不再重新構造所述列表,并且破壞操作可能導致發生問題。存儲使用EQUAL來比較當前自變量列表與以前的列表。如果自變量列表包含一些條目,其中僅EQUALP可以識別兩個不同對象具有相同的內部值,則可能產生不適當的重復。SAVE-MEMO-TABLE代碼取決于具有READ可以再次解釋的對象的打印表示。這對于列表、符號、數字和字符串是正確的,但是對于數組、散列表、CLOS實例等是不正確的。在一些所述情況下,可以定義客戶打印函數,但是通常在可以在要保存到磁盤的存儲函數中的值類型(輸入或輸出)上有所限制。
            默認地使用EQUAL,通過在自變量列表上進行準確匹配來執行存儲。類似地,當自變量是浮點數時一個人可以具有違反直覺的結果,例如忘記2不等于2.0,1.234567不等于1.23456等,即使你的函數可能等同地對待它們。在多數情況下,存儲是時間和存儲器的折衷。在極端情況下,其中頻繁重復的函數生成了較大的結構,存儲可能實際上節省了存儲空間(沒有無用信息),但是在大多數情況下,犧牲空間以獲得速度。應當仔細評估這些折衷,這通過使用觀測器來了解函數實際重復的頻率,WITH-MEMORIZATION和MEMORIZED-TIME(針對存儲和未存儲版本二者報告時間和空間)。幸運地,所有這些屬性都是可觀測的,例如通過簡單地模擬存儲和未存儲的函數的測試實例集合。可以在例如Proceedings of the Sixth International Symposium on Artificial Intelligence中Marty Hall和James Mayfield的“Improving Performance of AISoftware”中找到有關存儲的其它細節。
            然而,將存儲包裝(memorizing wrapper)應用于現有代碼十分容易,并且重要的是,這正如去除包裝一樣容易。這意味著以下簡單的優化策略(半)自動地選擇作為存儲候選的函數。添加存儲包裝到函數。觀察函數(和整個系統)的行為。如果性能提升很小或沒有性能提升,則去除存儲包裝。用新的(存儲)代碼(真正變形)來替代函數。理想地,由于僅可以確定添加是值得的,因此可以分析自動添加存儲對整個系統的影響。一些方法即使本身計算上很復雜,也可能沒有受益于被存儲,例如簡單地由于從來不超過一次地利用相同自變量調用所述方法。
            通過應用所述技術,觀測器例如可以觸發所述宏的應用,如果存在許多重復計算的、復雜的、例如時間上復雜的函數調用。不像在上述代碼片段中,執行能夠動態適配自身以記住函數調用,不僅是統一的,即針對所有調用,而是取決于實際執行。
            例如,假設如貨幣轉換的簡單應用,假設還有兩個不同的用戶配置,第一配置是商店中價格的重復轉換。由于重復而存儲所述價格集合以及所述轉換。第二配置可能是旅行者的偶爾使用。在所述配置中,不太可能發生重復。因此幾乎沒有要存儲的。針對更復雜的轉換,例如速度識別器或用戶接口的任何反應行為,類似的自變量支持不同使用配置的使用。通常,重復的輸入序列可以通過應用所述方法來被存儲,并且大大增加反應和處理速度。
            另一個功能上不等同的十分簡單的重構策略是動態代碼減少。只要觀測器識別到在很長的操作時間內沒有調用方法,則可以移除這個操作的代碼。結果是所述代碼修改產生了更小的代碼大小,以及更短的啟動時間,代價是只要偶爾使用函數就要進行版次反向跟蹤。動態識別并消除無用代碼。應當指出,在創建階段P1不能執行所述優化,這是因為針對任何執行,代碼是無用的還是有效的是個不確定問題。
            在實際應用情景中,軟件清除未使用的組件,例如可以移除字處理器中長期未使用的專用格式化組件,而不會影響有效(實際使用)的功能性。
            例如在William F.Opdyke的論文“Refactoring Object-orientedFrameworks”中,可以找到具有針對程序轉換的自動應用和應用的指示的、保守的重構策略的較大集合。
            硬編碼的行為將為表達為高級目的的行為讓步,例如“最大化這個有用(utility)函數”,或“發現著名的消息轉換服務”。元素之中的硬布線(Hardwired)連接將為逐漸不直接的元素合作方的規范讓步-從物理地址的規范到名稱的規范,以及最終到函數的規范,其中合作方的身份僅在被需要時才被解決。硬布線關系將發展成通過協商建立的靈活關系。元素將無需人工干預地自動處理新的故障模式,例如提供商違反合同。
            根據本發明的方法非常適用于面向服務的體系結構概念,例如web和grid服務或軟件代理。通過將自主元素看作代理并且將自主系統看作多代理系統,應當清楚,面向代理的體系結構概念是非常重要的,這是因為可以交換功能性而不僅是調用或交互。在部署之后,在面向對象的環境中的典型的高度調用的web服務或對象可以例如有利地被自動集成或聚集。為了知道服務更新,可以增強觀測器以檢測集成代碼和外部服務之間的功能分歧;優選地是靜態的并且與實際使用同時進行。
            自主元素具有復雜的生命周期,持續地進行多個活動線程,并且持續感知并響應它們所處的環境。與它們環境的自主、前攝及有意圖的交互可以引導開發者,例如通過觀察軟件的兩個部分之間的特定關系,并且利用它們的優點和缺點來自動建議重新構造的可選方案。
            一旦檢測到故障,可以遍及軟件的所有實例來分配所述知識,并且通過代碼修改來阻塞功能性。在必要的情況下,這種自主軟件可以甚至請求作者進行更新或修補。
            統計模型可以支持觀測器的元編程知識,例如識別情景的上下文中哪些修改是有用的。通常,編程規則本身變得透明,這是計算機科學的新的方面。重新構造或高階編程,即將函數用作值的能力,即作為其它函數的自變量的函數以及可以是其它函數的返回值的函數,很少被應用并且相當理論化。這個類型的編程大多用于功能性編程,但是其在“規律的”面向對象的編程中也非常有用,并且它在應用本發明時通過工程方法以自然的方式被支持時也非常有用。
            綜上所述,主要特征是充分深思熟慮的體系結構。圍繞這個深思熟慮的結構而構建的顯著特征將包括功能性抽象的統一、基于來自能力所控制的明確協商的公理的正式證明的安全性、高階函數、紋理細密的構成、分布式聯網、正交持續的存儲、容錯計算、版本感知、動態代碼重新生成、封裝的高級模型,這優選地利用高度執行的動態編譯集合。
            具有演進的需求的每天改變的環境中普遍存在的計算,是一項技術挑戰。應付它的已知技術是程序轉換、解釋和抽象(虛擬)機、編譯技術、智能代理技術、演進的及動態的代數,以及高階編程語言。
            技術上來說,適配演進(改變)的環境的第一技術之一,是操作系統和無用信息收集器中的存儲調度程序。它們使操作環境適配于靜態程序資源的需要。
            盡管發生程序演進,然而程序資源本身至今都被看作是靜態固定的。開發階段和執行階段之間存在嚴格的距離。
            即時(just in time)編譯器技術和高階編程語言環境,允許動態編譯和優化。如LISP和ProLog的高級環境甚至支持執行時的代碼修改。直到現在還不知道支持代碼變形的控制實例。(系統的變形能力是指動態修改其運行時間的能力)。
            代數概念“演進代數”(EA,Evolving Algebra)提供針對本發明的必要語義學基礎。可以如下說明EA論點可以通過合造的EA來在每個算法的自然抽象級別上模擬所述算法。演進代數方法的主要目的是提供簡潔且可執行的算法的正式規范。
            改變環境將在以后發生。已經知道結果損壞的參考或鏈接、遺漏資源、不相容等等。由于多種變型,應用到當前系統中的靜態代碼產生了(在徹底的(完全的)需求覆蓋的情況下)巨大的不易處理的軟件包。當兩個軟件片段之間的交互接口改變時,所述軟件丟失。由于相當靜態的軟件世界,當前方法可以應付改變的需求,但是其遠不是理想的巧妙解決方案。
            另外的解決方案是這樣的系統其中組件或部分被看作是自組織的單獨實體,其重新構造由外部交互所激勵的本身。系統包括可觀測且演進的組件以改變自身。系統的一個重要部分是通過標識其上實現程序演進的“編程構建塊”來定義可執行的語義。
            建議的技術實現了可以“學習”的算法,并且通過比較它的動作的結果與要達到的目的而改變它的行為。算法是一個程序,其可以被寫成一組步驟,用于從給定輸入產生指定的輸出。所建議的反饋控制是一種過程,機器或系統的輸出或行為通過該過程來改變其操作,以持續減少輸出和目標值之差。變形軟件個體,即基于結構動態修改其運行時間的能力(或就代理通信系統而言,代理的責任),是定義軟件系統的框架,所述軟件系統能夠在解釋的程序語言的級別上自修改并重新產生。
            抽象地說,自修改系統包括觀測器實例、演進歷史和當前圖像(image),其中觀測器能夠檢查動態方面,如運行的、歷史的軟件部分之間的交互,即如版次或版本的演進快照(snap shot)的收集,并且圖像是(現行)運行時間。所述系統中的計算導致可觀測的事件并觸發了圖像的修改。
            為了說明所述方法的動態,下面描述了一組使用實例。假設對象系統環境包含用于持續的對象歷史的面向對象的數據庫基本管理系統,即凍結實例,以及圖像內的現行實例。對象,即如變量、方法、類、實例、關系、消息、聚集等,具有屬性。觀測器檢測到當執行更新這些屬性時所發生的特定事件所導致的結果。所述系統也包括到外界的接口,其中(可觀測的)與系統邊界的交互發生,并且將變得可觀測-激勵了反應行為。
            進一步假設類的對象實例的系統,其包括類和實例變量、具有選擇、判決、迭代、遞歸(方法調用)和其它通常的面向對象的構造的類方法和實例方法。持續在可操作狀態更新屬性的觀測器觀測這些構造中的每一個,所述屬性例如通過變量屬性而被說明該變量屬性例如是訪問數目、訪問實例、或更新(修改)數目等。
            事件(存儲于屬性中)的模式可以觸發修改,如將對于所有實例通用的實例變量遷移到類變量中,或將全局變量遷移到實例或類變量中,或交換類(包含相關性)之間的槽等。
            由于分布式(復雜)系統的組件中甚至較小的結構改變會導致不可預見的系統行為,因此建議逐步增長的小的改進。演進歷史可以用來以自動方式執行衰退測試,以增加對程序轉換歷史正確性的信心。
            存在一組探索法的改進,例如丟棄幾乎不使用的代碼段,或聚集類或對象關系。此外,存在從編譯技術所知的多組(保守的)程序轉換。在(探索法)修改之前,環境可能凍結圖像的演進狀態以實現后向跟蹤。
            所述技術能夠在個體中累積執行知識,所述個體如組件、實例或代理。例如,如果僅代理B經常使用(在運行時刻)代理A的特定行為,則代理A決定通過添加涉及的方法以及方案(類)到代理B,來將所述行為移至代理B。反之亦然,代理C可能需要代理A的第一能力,而代理B需要代理A的第二能力。觀測器從統計觀測識別情況,并且觸發A劃分為A1和A2;在該劃分之后,這些部分被融入代理B和C中。
            圖5中示出了所述情景,示出了軟件S1、S2的演進歷史H。軟件S1、S2被示為多邊形的三角形,其中三角形是軟件的模型組件C、C’。多邊形可以被看作是軟件的邊界。歷史開始于初始演進軟件S1,除了其它組件C,該軟件S1包括改進組件IC。假設可觀測的屬性是三角形的協調性,其中區域是一種針對組件的某種(可測量的)復雜度的測量,如耗用時間。在軟件S2的演進版本中,三角形似乎更為諧調,即組件被變形為一種改進的配置/分布/安排。
            本發明實現了方法(函數)行為的優化和重組織的智能且自動的應用,如存儲器(通用緩存包裝)。它們的先決條件是不應當從調用到調用改變方法的返回值并且所述方法不應具有副作用。所述方法不應采用易變的自變量。有效的緩存包裝大大地增強了反應性。另一個重組織是(動態)部分評估。部分評估創建了通用程序的專用版本。專用程序可能更有效并且比通用版本運行更快。令P是程序,其采用兩個輸入D1和D2。通常,在一個步驟中評估P對(D1,D2)的應用用輸入(D1,D2)評估P以產生結果res。然而,可選地,它可以根據Curry-Howard(柯里-霍華德)同構在兩個步驟中被評估首先用輸入D1部分評估P,其產生新的程序R,即P的參數化版本。然后,用輸入D2評估R以產生結果。程序R是P的專用版本(針對第一輸入的特定值D1),并且稱為剩余(residual)程序。產生R的過程稱為部分評估,或程序專用化。部分評估的一個優勢在于執行速度專用程序R通常相比通用程序P更快,另一個優勢在于接口效率和聚集的簡化。
            實現變形代理,必須使用支持動態的面向對象的編程的編程語言,其通過提供強大的元對象協議而包括在運行時間改變程序(類)和結構的能力。動態的面向對象的編程是一種軟件開發技術,其實現了在開發期間且在部署之后調整應用而無需訪問源代碼。建議的環境因此包括動態對象(運行時間改變=演進)、對象持續(存儲/檢索對象結構和方法=版本化)、(交互的)代碼操縱(逐漸增加的change-eval/compile-run循環),建議了元對象協議(關于對象的反映/推理)。
            對照程序合成(從描述產生程序的宏步驟),本發明處理“代碼演進的環境”的兩級結構(通過演進增強程序的微步驟)。第1級稱作“環境”,其負責觀測個體(程序構造)、微改變的個體(程序轉換),度量行為(統計以及探索法)、學習新規則、更新規則、對象庫(=知識)更新或推斷(例如編程)源更新(具有產生的評論)事件、知識庫等。
            第2層稱作“目標程序”(要開發的軟件的當前版本)。所述目標具有如包、類、實例等的組件,下至每個程序構造,其中每個所述構造具有環境中的“模型”。所述模型以及修改、觀測規則,使得環境能夠建議演進步驟。下面是概念/方法/條件的列表,其導致(半自動)程序修改。
            如果系統判定可以通過更有效地重新構造參與個體(實例、代理)的知識來改進任務性能,則個體本身可以執行重新構造。
            由于分布式(復雜)系統的組件中小的結構改變會導致不可預見的系統行為,建議了逐漸增加的小的改進。
            自主程序操縱的概念大規模地(in the large)允許全面影響程序的操縱,而不僅是本地上在一個模塊中。兩個大規模的例子是模塊間重命名和重組織。為了找到引導重組織已知(靜態)軟件的應用的使用的標準,建議了度量。所述度量可以基于詞匯隱匿和測量過度可見性的原理。存在越大的過度可見性,即沒有使用的可見項越多,度量值就越小。發展靜態軟件度量的數量以增加軟件質量。這些度量用作較差結構的項目部分的好的指示符。
            權利要求
            1.一種用于使計算機程序自動適配于環境的方法,所述計算機程序產品包括可執行部分和數據部分,所述方法包括以下步驟針對環境配置所述計算機程序產品,并且在該環境中執行軟件,其中,所述方法還包括以下步驟觀測執行的效果,即度量所述可執行部分的行為;利用所述軟件分析被觀測效果的相互關系;并且基于規則修改可執行部分以減小如低效或故障的不期望的被觀測效果。
            2.根據權利要求1的方法,還包括配置和改變管理,即代碼部分持續的修改或狀態。
            3.根據權利要求1的方法,其中,所述被觀測效果是無用代碼的檢測,并且所述修改包括被標識無用代碼的消除。
            4.根據權利要求1的方法,其中,所述被觀測效果是兩個部分之間緊密關系的檢測,并且所述修改包括將所述兩個部分重新構造在一起,例如將交互對象置于相同組件中、聚集外來調用方法、將變量置于合適的范圍中等。
            5.根據權利要求1的方法,其中,所述被觀測效果是重復行為,并且所述修改包括添加對該重復行為的存儲。
            6.根據權利要求1的方法,其中,所述被觀測效果是部分評估,并且所述修改包括柯里-霍華德態射的應用,即針對每個x存在更有效的f_x,其中f(x,y)=f_x(y)。
            7.根據權利要求1的方法,其中,當執行所述軟件時,執行所述觀測、分析和適配,其中優選地在背景中執行所述適配。
            8.根據權利要求2的方法,其中,關于不期望的效果和功能等價,將先前版本與當前版本進行比較。
            9.一種自動適配于環境的計算機程序產品,所述計算機程序產品包括可執行部分和數據部分,所述計算機程序產品包括配置裝置,該配置裝置用于針對環境而配置所述計算機程序產品,以在該環境中執行該計算機程序產品,其中,所述計算機程序產品包括觀測裝置,其用于觀測所述執行的效果,即所述可執行部分的行為;推斷裝置,其用于利用所述計算機程序產品來分析被觀測效果的相互關系;以及重新構造裝置,其基于規則修改可執行部分以減小如低效或故障的不期望的效果。
            10.根據權利要求9的計算機程序產品,還包括實現根據權利要求1到7中任一個的方法的編程裝置。
            11.一種用于制造根據權利要求9的自動適配的計算機程序產品的方法,其中,所述方法包括以下步驟通過集成觀測裝置來配置所述可執行部分,其中該觀測裝置用于觀測所述可執行部分的執行效果,即行為;通過用于利用所述軟件分析被觀測效果的相互關系的推斷裝置來配置所述可執行部分;并且通過用于基于規則修改可執行部分以減小不期望的效果的重新構造裝置來配置所述可執行部分。
            12.根據權利要求11的方法,其中,將所述觀測、分析和/或適配通知給開發者。
            全文摘要
            本發明涉及一種用于使計算機程序產品自動適配于環境的方法,所述計算機程序產品包括可執行部分和數據部分,所述方法包括以下步驟針對環境配置所述計算機程序產品,并在該環境中執行軟件。此外,所述方法包括以下步驟觀測可執行部分的執行效果(即度量行為);利用軟件分析被觀測效果的相互關系;并且基于規則修改可執行部分以減小如低效或故障的不期望的觀測效果。本發明也涉及自動適配的計算機程序產品,以及用于制造所述自動適配的計算機程序產品的方法。
            文檔編號G06F9/44GK1900907SQ20061010144
            公開日2007年1月24日 申請日期2006年7月13日 優先權日2005年7月19日
            發明者M·W·霍赫, H·勒斯勒爾, P·薩博 申請人:阿爾卡特公司
            網友詢問留言 已有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久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品