本發(fā)明的實(shí)施例涉及虛擬機(jī),更具體地,涉及利用虛擬固件的虛擬機(jī)使用數(shù)據(jù)收集。
背景技術(shù):
監(jiān)視虛擬機(jī)(vm)的使用數(shù)據(jù)常常是有用的。例如,vm可以由客戶使用,客戶為使用vm向服務(wù)供應(yīng)商付費(fèi)。服務(wù)供應(yīng)商常常根據(jù)對vm的特定使用來向客戶收費(fèi)。該使用例如可以包括中央處理單元(cpu)利用率、存儲器利用率和網(wǎng)絡(luò)利用率。進(jìn)一步地,服務(wù)供應(yīng)商能夠向客戶提供關(guān)于vm正在如何被使用的知識的改進(jìn)的服務(wù)。
這樣,vm常常被配置為收集使用數(shù)據(jù),其中使用數(shù)據(jù)描述其自身對可用資源的使用。vm然后可以將該使用數(shù)據(jù)報告給其所運(yùn)行于的主機(jī)。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)本公開的一個實(shí)施例,一種計算機(jī)實(shí)現(xiàn)的用于收集使用數(shù)據(jù)的方法包括,由計算機(jī)處理器至少部分地在虛擬機(jī)的虛擬硬件層中運(yùn)行虛擬固件。在該虛擬固件自虛擬機(jī)的內(nèi)核子系統(tǒng)接收描述虛擬機(jī)的使用數(shù)據(jù)。將使用數(shù)據(jù)從虛擬固件發(fā)送到托管該虛擬機(jī)的主機(jī)上的收集器。
在另一個實(shí)施例中,一種用于收集使用數(shù)據(jù)的系統(tǒng)包括具有計算機(jī)可讀指令的存儲器以及用于執(zhí)行該計算機(jī)可讀指令的一個或多個處理器。計算機(jī)可讀指令包括至少部分地在虛擬機(jī)的虛擬硬件層中運(yùn)行虛擬固件。進(jìn)一步地,根據(jù)該計算機(jī)可讀指令,在該虛擬固件自虛擬機(jī)的內(nèi)核子系統(tǒng)接收描述虛擬機(jī)的使用數(shù)據(jù)。將使用數(shù)據(jù)從虛擬固件發(fā)送到托管該虛擬機(jī)的主機(jī)上的收集器。
在又一個實(shí)施例中,一種用于收集使用數(shù)據(jù)的計算機(jī)程序產(chǎn)品包括其中包含有程序指令的計算機(jī)可讀存儲介質(zhì)。該程序指令可由處理器執(zhí)行,使得該處理器實(shí)現(xiàn)一個方法。該方法包括至少部分地在虛擬機(jī)的虛擬硬件層中運(yùn)行虛擬固件。進(jìn)一步地,根據(jù)該方法,在該虛擬固件自虛擬機(jī)的內(nèi)核子系統(tǒng)接收描述虛擬機(jī)的使用數(shù)據(jù)。將使用數(shù)據(jù)從虛擬固件發(fā)送到托管該虛擬機(jī)的主機(jī)上的收集器。
通過本發(fā)明的技術(shù)實(shí)現(xiàn)了額外的特征和優(yōu)點(diǎn)。這里詳細(xì)描述了本發(fā)明的其他實(shí)施例和方面,這些其他實(shí)施例和方面也被認(rèn)為是所請求保護(hù)的發(fā)明的一部分。參考下面的描述和附圖可以更好地理解本發(fā)明的優(yōu)點(diǎn)和特征。
附圖說明
本發(fā)明的主題已經(jīng)在說明書的權(quán)利要求書中特別指出和請求保護(hù),本發(fā)明的前述和其他特征以及優(yōu)點(diǎn)將在下面結(jié)合附圖所進(jìn)行的詳細(xì)描述中變得明顯,在附圖中:
圖1是根據(jù)本公開的一些實(shí)施例的收集系統(tǒng)的方框圖;
圖2是根據(jù)本公開的一些實(shí)施例的顯示虛擬固件的加載的流程圖;
圖3是根據(jù)本公開的一些實(shí)施例的收集系統(tǒng)的另一個方框圖;
圖4是根據(jù)本公開的一些實(shí)施例的用于收集虛擬機(jī)的使用數(shù)據(jù)的方法的流程圖;以及
圖5是根據(jù)本公開的一些實(shí)施例的用于實(shí)現(xiàn)收集系統(tǒng)的一些或全部方面的計算機(jī)系統(tǒng)的方框圖。
具體實(shí)施方式
雖然虛擬機(jī)(vm)在常規(guī)上能夠收集使用數(shù)據(jù)并向其主機(jī)進(jìn)行報告,由常規(guī)方法收集的使用數(shù)據(jù)是不可靠的。例如,客戶對于其vm最感興趣的可能是在vm使用數(shù)據(jù)中報告資源的低使用率,因?yàn)榈褪褂寐士赡芘c低成本相關(guān)。由于客戶控制著vm,因此客戶很容易侵入vm內(nèi)的收集機(jī)制來報告不準(zhǔn)確的使用數(shù)據(jù)。
然而,一些類型的使用數(shù)據(jù)難以或者不可能從vm外部進(jìn)行收集。例如,從vm外部,主機(jī)不能監(jiān)視虛擬存儲器使用、java虛擬機(jī)垃圾收集統(tǒng)計以及應(yīng)用程序響應(yīng)時間。另外,當(dāng)物理的中央處理單元(cpu)以多個虛擬cpu的形式在vm中共享時,主機(jī)會發(fā)現(xiàn)很難確定每個不同vm的cpu利用率。進(jìn)一步地,當(dāng)這種收集需要使用vm內(nèi)部的代理出于收集的目的來侵入式地改變vm映像時,主機(jī)端對使用數(shù)據(jù)的收集會變得不準(zhǔn)確。
根據(jù)本公開的一些實(shí)施例,收集系統(tǒng)包括vm內(nèi)部運(yùn)行的虛擬固件,其中,虛擬固件收集vm的使用數(shù)據(jù),并將該使用數(shù)據(jù)報告給主機(jī),其中,虛擬固件是受保護(hù)的,除非通過特定組件,否則不能由vm訪問。這樣,收集系統(tǒng)能夠收集在vm外部不能訪問的使用數(shù)據(jù),并能夠提供可靠的信息。
圖1是根據(jù)本公開的一些實(shí)施例的收集系統(tǒng)100的方框圖。如圖所示,vm110可以在主機(jī)130的管理程序(hypervisor)120之上運(yùn)行。在一些實(shí)施例中,虛擬固件170可以安裝在vm110上,可以收集描述vm110的狀態(tài)的使用數(shù)據(jù)。虛擬固件170可以將使用數(shù)據(jù)報告給主機(jī)130上的收集器180。進(jìn)一步地,在一些實(shí)施例中,由虛擬固件170收集的使用數(shù)據(jù)可在用戶工具168上查看,該用戶工具168可以由被授權(quán)人員訪問。
如圖所示,vm110可以包括三層或三組組件,其包括虛擬硬件140、內(nèi)核150和用戶空間160。vm110的虛擬硬件140可以包括中央處理單元(cpu)和存儲器,這二者都可以是虛擬組件。和常規(guī)的內(nèi)核一樣,vm110的內(nèi)核150可以是操作系統(tǒng)的一部分,可以在用戶空間160和虛擬硬件140之間翻譯指令。在一些實(shí)施例中,內(nèi)核150可以包括一個或多個內(nèi)核子系統(tǒng)155,每個內(nèi)核子系統(tǒng)可以負(fù)責(zé)一組分配的內(nèi)核任務(wù)。另外,在一些例子中,一個或多個應(yīng)用程序可以運(yùn)行在用戶空間160。
在一些實(shí)施例中,虛擬硬件140可以進(jìn)一步包括虛擬固件170,虛擬固件170可以包括代碼174和緩存器178。代碼174可以是包含在虛擬固件170中的程序代碼,并在內(nèi)核150中本地執(zhí)行,以提供虛擬固件170的操作,其操作將在下面討論。緩存器178可以是用于存儲所收集的使用數(shù)據(jù)的存儲器空間。
在vm110內(nèi)部,虛擬硬件140可以保持比內(nèi)核150更高級別的信任,而內(nèi)核150可以保持比用戶空間160更高級別的信任。由于與虛擬硬件140運(yùn)行在同一抽象層,虛擬固件170可以運(yùn)行在內(nèi)核150之下,因此比內(nèi)核150和用戶空間160具有更高信任級別。虛擬固件170因而可以從一個或多個內(nèi)核子系統(tǒng)155收集使用數(shù)據(jù),該內(nèi)核子系統(tǒng)155可以訪問與用戶空間160中的應(yīng)用程序相關(guān)的使用數(shù)據(jù)。例如,在一些實(shí)施例中,虛擬固件170可以通過監(jiān)視內(nèi)核子系統(tǒng)155來收集該使用數(shù)據(jù),而在另一些實(shí)施例中,內(nèi)核子系統(tǒng)155可以向虛擬固件170主動報告。
虛擬固件170可以將vm110的使用數(shù)據(jù)發(fā)送給主機(jī)130上的收集器180,在這里,服務(wù)供應(yīng)商或其他主體可以根據(jù)需要訪問該使用數(shù)據(jù)。在一些實(shí)施例中,收集器180可以是諸如openstack中ceilometer的數(shù)據(jù)收集系統(tǒng)。
虛擬固件170可以被配置為以vm110的用戶空間160中的用戶工具168的形式顯示一些或全部使用數(shù)據(jù)。通過這個用戶工具168,vm110的用戶可以查看使用數(shù)據(jù)。在一些實(shí)施例中,用戶工具168可以以proc文件系統(tǒng)的方式操作,其中proc文件系統(tǒng)是一種用于向內(nèi)核數(shù)據(jù)結(jié)構(gòu)提供接口的機(jī)制。用戶工具168可以受保護(hù),使得用戶需要輸入證書來查看使用數(shù)據(jù)。
圖2是根據(jù)本公開的一些實(shí)施例顯示虛擬固件170的加載的流程圖。為了確保該虛擬固件170不會被篡改,收集系統(tǒng)100的一些實(shí)施例可以使用虛擬可信平臺模塊(vtpm)190來保護(hù)虛擬固件170。
vtpm190類似于常規(guī)的可信平臺模塊(tpm),其提供密碼密鑰以確保過程保持可信。更具體地,例如,在生成vm110時,管理程序120可以將vtpm190加載到vm110的虛擬硬件140中。當(dāng)vm110的操作系統(tǒng)(os)加載器220加載vm110的操作系統(tǒng)210時,os加載器也將虛擬固件170插入到虛擬硬件140中。vtpm190可以監(jiān)視os210的加載,以確保虛擬固件170以可信方式實(shí)現(xiàn)與內(nèi)核150的通信。
用于度量的核心可信根(crtm)230可以是可執(zhí)行代碼,其是在生成vm110時執(zhí)行的引導(dǎo)組件。在一些實(shí)施例中,crtm位于vtpm190的安全存儲器中。然而,在另一些實(shí)施例中,crtm可以位于vm110的固件中(例如bios),從而減小vtpm190的虛擬硬件成本。
在使用可信計算模型時,vtpm190可以作為可信根。然而,vtpm190可以是無源組件,使得度量和收集操作實(shí)際上在其他地方由來自不同層的引導(dǎo)組件執(zhí)行(例如,crtm230,os加載器220)。crtm230與vtpm190一起可以形成用于提供安全的虛擬固件170的可信構(gòu)造塊(tbb)240。
如上面所討論的,tbb240可以執(zhí)行os加載器220,os加載器220可以加載虛擬固件170并執(zhí)行os210。以這種方式,可以以可信方式將虛擬固件放置于位置上。
圖3是根據(jù)本公開的一些實(shí)施例的收集系統(tǒng)100的另一個方框圖。如圖所示,除了參考圖1所描述的組件之外,收集系統(tǒng)100還進(jìn)一步包括代理310,其可以與一個或多個內(nèi)核子系統(tǒng)155和虛擬固件170進(jìn)行通信。
代理310可以是虛擬固件170的代碼174的拷貝。在一些實(shí)施例中,代碼174不能從虛擬固件170內(nèi)部執(zhí)行,因?yàn)閮?nèi)核150會將代碼174看作數(shù)據(jù)段。在這種情況下,代碼174可以被復(fù)制到vm110的主存儲器,并構(gòu)造成代碼的要以內(nèi)核150內(nèi)的代理310的形式執(zhí)行的可執(zhí)行段。代理310然后可以根據(jù)需要從內(nèi)核子系統(tǒng)155收集使用數(shù)據(jù)。代理310可以將使用數(shù)據(jù)存儲在虛擬固件170的緩沖器178中。
圖4是根據(jù)本公開的一些實(shí)施例的用于收集vm110的使用數(shù)據(jù)的方法的流程圖。如圖所示,在方框410,在生成vm110時,vtpm190可以作為虛擬硬件140的一部分提供。在方框420,在vtpm監(jiān)視下,os加載器220可以在vm110上加載os210,還可以將虛擬固件170加載到虛擬硬件140中。在方框430,代理310可以在內(nèi)核150內(nèi)執(zhí)行虛擬硬件170的代碼174。在方框440,代理310可以收集關(guān)于vm110的使用數(shù)據(jù)。在方框450,虛擬固件170可以將使用數(shù)據(jù)發(fā)送到主機(jī)130上的收集器180以供收集。
圖5示出了根據(jù)一些實(shí)施例的在實(shí)施收集系統(tǒng)100或方法400中使用的計算機(jī)系統(tǒng)500的方框圖。本文中所描述的收集系統(tǒng)100和方法400可以以硬件、軟件(例如,固件)、或者它們的組合來實(shí)現(xiàn)。在一些實(shí)施例中,所描述的方法可至少部分地在硬件中實(shí)現(xiàn),可以是一個專用或通用計算機(jī)系統(tǒng)500、例如個人計算機(jī)、工作站、小型機(jī)或大型計算機(jī)的微處理器的一部分。例如,而非限制性的,在其上運(yùn)行vm110的主機(jī)130可以是計算機(jī)系統(tǒng)500。
在一些實(shí)施例中,如圖5所示,計算機(jī)系統(tǒng)500包括處理器505、耦合到存儲器控制器515的存儲器510、以及一個或多個輸入設(shè)備545和/或輸出設(shè)備540,諸如通過本地i/o控制器535通信地耦合的外圍設(shè)備。這些設(shè)備540和545例如可以包括,打印機(jī),掃描儀,麥克風(fēng)等。輸入設(shè)備、如常規(guī)的鍵盤550和鼠標(biāo)555可耦合到i/o控制器535。如本領(lǐng)域所公知的,i/o控制器535例如可以是一個或多個總線或其他有線或無線連接。i/o控制器535可以具有使能通信的附加的元件,如控制器、緩沖器(高速緩存)、驅(qū)動器、中繼器和接收器,這里為了簡化而未示出。
i/o設(shè)備540、545還可以包括輸入和輸出通信設(shè)備,例如磁盤和磁帶存儲器、網(wǎng)絡(luò)接口卡(nic)或調(diào)制器/解調(diào)器(用于訪問其他文件、設(shè)備、系統(tǒng)或網(wǎng)絡(luò))、射頻(rf)或其它收發(fā)機(jī)、電話接口、橋接器、路由器等。
處理器505是用于執(zhí)行硬件指令或軟件、特別是那些存儲在存儲器510中的硬件指令或軟件的硬件設(shè)備。處理器505可以是定制的或市售的處理器、中央處理單元(cpu)、與計算機(jī)系統(tǒng)500相關(guān)聯(lián)的幾個處理器中的輔助處理器、基于半導(dǎo)體的微處理器(以微芯片或芯片組的形式)、宏處理器或用于執(zhí)行指令的其他裝置。處理器505包括高速緩存570,其可包括、但不限于用于加快可執(zhí)行指令預(yù)取的指令高速緩沖存儲器、用于加速數(shù)據(jù)讀取和存儲的數(shù)據(jù)高速緩存、以及用于為可執(zhí)行指令和數(shù)據(jù)加速虛擬到物理的地址轉(zhuǎn)換的翻譯后備緩沖器(tlb)。高速緩存570可以被組織為多個高速緩存級別的層次結(jié)構(gòu)(l1,l2,等等)。
存儲器510可以包括易失性存儲器元件(例如,隨機(jī)存取存儲器ram,如dram、sram、sdram等)和非易失性存儲器元件(例如,rom、可擦除可編程只讀存儲器(eprom)、電可擦除可編程只讀存儲器(eeprom)、可編程只讀存儲器(prom)、磁帶、只讀存儲器光盤(cd-rom)、磁盤、軟盤、盒式磁帶、磁帶盒或類似物,等等)或其組合。而且,存儲器510可以包括電、磁、光或其他類型的存儲介質(zhì)。需要注意的是,存儲器510可具有分布式體系結(jié)構(gòu),其中各種部件彼此遠(yuǎn)離,但可由處理器505訪問。
在存儲器510中的指令可以包括一個或多個獨(dú)立的程序,其中每個程序包括用于執(zhí)行邏輯功能的可執(zhí)行指令的有序列表。在圖5的例子中,在存儲器510中的指令包括一個合適的操作系統(tǒng)511,操作系統(tǒng)511基本上可以控制其它計算機(jī)程序的執(zhí)行并提供調(diào)度、輸入-輸出控制、文件和數(shù)據(jù)管理、存儲器管理、以及通信控制和相關(guān)服務(wù)。
例如包括用于處理器505的指令或其他可檢索信息的附加數(shù)據(jù)可存儲在存儲設(shè)備520上,其可以是一個諸如硬盤驅(qū)動器或固態(tài)驅(qū)動器的存儲設(shè)備。在存儲器510或存儲設(shè)備520中所存儲的指令可以包括那些使處理器執(zhí)行本公開的收集系統(tǒng)100和方法400的一個或多個方面。
計算機(jī)系統(tǒng)500還可以包括耦合到顯示器530的顯示控制器525。在一些實(shí)施例中,計算機(jī)系統(tǒng)500還可以包括用于耦合到網(wǎng)絡(luò)565的網(wǎng)絡(luò)接口560。網(wǎng)絡(luò)565可以是在計算機(jī)系統(tǒng)500和外部服務(wù)器、客戶端等之間通過寬帶連接通信的基于ip的網(wǎng)絡(luò)。網(wǎng)絡(luò)565在計算機(jī)系統(tǒng)500和外部系統(tǒng)之間發(fā)送和接收數(shù)據(jù)。在一些實(shí)施例中,網(wǎng)絡(luò)565可以是由服務(wù)提供商管理的受管理ip網(wǎng)絡(luò)。網(wǎng)絡(luò)565可以以無線方式實(shí)現(xiàn),例如使用無線協(xié)議和技術(shù),例如wifi,wimax等。網(wǎng)絡(luò)565還可以是一個分組交換網(wǎng)絡(luò),例如局域網(wǎng)、廣域網(wǎng)、城域網(wǎng)域網(wǎng)、因特網(wǎng),或其它類似類型的網(wǎng)絡(luò)環(huán)境。網(wǎng)絡(luò)565可以是固定無線網(wǎng)絡(luò)、無線局域網(wǎng)(lan)、無線廣域網(wǎng)(wan)、個人區(qū)域網(wǎng)(pan)、虛擬專用網(wǎng)(vpn)、內(nèi)聯(lián)網(wǎng)或其它合適的網(wǎng)絡(luò)系統(tǒng),其可以包括用于接收和發(fā)送信號的設(shè)備。
根據(jù)本公開的收集系統(tǒng)和方法可以全部或者部分地實(shí)現(xiàn)在計算機(jī)程序產(chǎn)品或者如圖5所示的計算機(jī)系統(tǒng)500中。
一些實(shí)施例的技術(shù)效果和益處包括以安全方式從vm110內(nèi)部度量使用數(shù)據(jù)的能力。該使用數(shù)據(jù)可以被發(fā)送給主機(jī)以供收集并用于各種目的。
本文所用的術(shù)語僅用于描述具體實(shí)施方案的目的,并非意在限制本發(fā)明的。如本文中所使用的,單數(shù)形式“一”,“一個”和“該”也意圖包括復(fù)數(shù)形式,除非上下文另外明確指出。將進(jìn)一步理解,當(dāng)在本說明書中使用時,術(shù)語“包括”和/或“包含”指示所陳述的特征、整數(shù)、步驟、操作、元件和/或組件的存在,但不排除存在或附加一個或多個其它特征、整數(shù)、步驟、操作、元件、組件和/或其組合。
在下面的權(quán)利要求書中的所有手段或步驟加功能元件的相應(yīng)的結(jié)構(gòu)、材料、動作及其等同物旨在包括用于結(jié)合其他所特別請求保護(hù)的元件來執(zhí)行這些功能的任何結(jié)構(gòu)、材料或行為。本發(fā)明的描述是出于說明和描述的目的,但并不意圖窮盡或以所公開的形式限制本發(fā)明。許多修改和變化對于本領(lǐng)域的普通技術(shù)人員是顯而易見的,而不脫離本發(fā)明的范圍和精神。對于實(shí)施例的選擇和描述是為了最好地解釋本發(fā)明的原理和實(shí)際應(yīng)用,使得本領(lǐng)域的技術(shù)人員本發(fā)明的適合于所構(gòu)想的特定使用的具有各種修改的各種實(shí)施例。
本發(fā)明可以是系統(tǒng)、方法和/或計算機(jī)程序產(chǎn)品。計算機(jī)程序產(chǎn)品可以包括計算機(jī)可讀存儲介質(zhì),其上載有用于使處理器實(shí)現(xiàn)本發(fā)明的各個方面的計算機(jī)可讀程序指令。
計算機(jī)可讀存儲介質(zhì)可以是可以保持和存儲由指令執(zhí)行設(shè)備使用的指令的有形設(shè)備。計算機(jī)可讀存儲介質(zhì)例如可以是――但不限于――電存儲設(shè)備、磁存儲設(shè)備、光存儲設(shè)備、電磁存儲設(shè)備、半導(dǎo)體存儲設(shè)備或者上述的任意合適的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計算機(jī)盤、硬盤、隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、靜態(tài)隨機(jī)存取存儲器(sram)、便攜式壓縮盤只讀存儲器(cd-rom)、數(shù)字多功能盤(dvd)、記憶棒、軟盤、機(jī)械編碼設(shè)備、例如其上存儲有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、以及上述的任意合適的組合。這里所使用的計算機(jī)可讀存儲介質(zhì)不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導(dǎo)或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈沖)、或者通過電線傳輸?shù)碾娦盘枴?/p>
這里所描述的計算機(jī)可讀程序指令可以從計算機(jī)可讀存儲介質(zhì)下載到各個計算/處理設(shè)備,或者通過網(wǎng)絡(luò)、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無線網(wǎng)下載到外部計算機(jī)或外部存儲設(shè)備。網(wǎng)絡(luò)可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火墻、交換機(jī)、網(wǎng)關(guān)計算機(jī)和/或邊緣服務(wù)器。每個計算/處理設(shè)備中的網(wǎng)絡(luò)適配卡或者網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計算機(jī)可讀程序指令,并轉(zhuǎn)發(fā)該計算機(jī)可讀程序指令,以供存儲在各個計算/處理設(shè)備中的計算機(jī)可讀存儲介質(zhì)中。
用于執(zhí)行本發(fā)明操作的計算機(jī)程序指令可以是匯編指令、指令集架構(gòu)(isa)指令、機(jī)器指令、機(jī)器相關(guān)指令、微代碼、固件指令、狀態(tài)設(shè)置數(shù)據(jù)、或者以一種或多種編程語言的任意組合編寫的源代碼或目標(biāo)代碼,所述編程語言包括面向?qū)ο蟮木幊陶Z言—諸如smalltalk、c++等,以及常規(guī)的過程式編程語言—諸如“c”語言或類似的編程語言。計算機(jī)可讀程序指令可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨(dú)立的軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)—包括局域網(wǎng)(lan)或廣域網(wǎng)(wan)—連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。在一些實(shí)施例中,通過利用計算機(jī)可讀程序指令的狀態(tài)信息來個性化定制電子電路,例如可編程邏輯電路、現(xiàn)場可編程門陣列(fpga)或可編程邏輯陣列(pla),該電子電路可以執(zhí)行計算機(jī)可讀程序指令,從而實(shí)現(xiàn)本發(fā)明的各個方面。
這里參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的各個方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機(jī)可讀程序指令實(shí)現(xiàn)。
這些計算機(jī)可讀程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。也可以把這些計算機(jī)可讀程序指令存儲在計算機(jī)可讀存儲介質(zhì)中,這些指令使得計算機(jī)、可編程數(shù)據(jù)處理裝置和/或其他設(shè)備以特定方式工作,從而,存儲有指令的計算機(jī)可讀介質(zhì)則包括一個制造品,其包括實(shí)現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的各個方面的指令。
也可以把計算機(jī)可讀程序指令加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機(jī)實(shí)現(xiàn)的過程,從而使得在計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上執(zhí)行的指令實(shí)現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作。
附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實(shí)施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個或多個用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實(shí)現(xiàn)。
出于說明和描述的目的給出了對本發(fā)明的描述,但所述描述并非旨在是窮舉的或是將本發(fā)明限于所公開的形式。對于所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,許多修改和變化都將是顯而易見的,而不脫離本發(fā)明的范圍和精神。這里所使用的術(shù)語的選擇旨在最佳地解釋實(shí)施例的原理、實(shí)際應(yīng)用或?qū)τ谑袌錾系母鞣N工藝的技術(shù)改進(jìn),或使得所屬技術(shù)領(lǐng)域的其他普通技術(shù)人員能夠理解這里所公開的實(shí)施例。