两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

在分布式網(wǎng)絡(luò)中定位并執(zhí)行對象的制作方法

文檔序號:7892571閱讀:232來源:國知局
專利名稱:在分布式網(wǎng)絡(luò)中定位并執(zhí)行對象的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及與實況對象交互,尤其涉及在分布式網(wǎng)絡(luò)中定位并執(zhí)行對象。
背景技術(shù)
隨著計算技術(shù)的發(fā)展以及計算設(shè)備變得越來越普遍,計算機編程技術(shù)可適合用于所使用中的廣泛的各種計算設(shè)備。這些計算設(shè)備可以在分布式網(wǎng)絡(luò)中利用,其中計算機編程和數(shù)據(jù)是分布(或分散)在不止一個計算設(shè)備上的。此外,計算設(shè)備可用于通過分布式網(wǎng)絡(luò)與其他設(shè)備和/或系統(tǒng)交互。作為一種經(jīng)濟的機制,可利用客戶機/服務(wù)器計算,其中客戶機設(shè)備具有第一組能力,而服務(wù)器(或分布式網(wǎng)絡(luò)中的其他設(shè)備)提供第二組能力。
就此,軟件對象能夠運行分布式協(xié)議的實例。軟件對象(或簡稱為“對象”)包括屬性和方法或行為,這些屬性和方法或行為是一組可能的外部交互模式,通過它們,對象的代理能夠參與在本地運行時環(huán)境中。常規(guī)上,對象被存儲在諸如數(shù)據(jù)庫等數(shù)據(jù)存儲中,并且對象的數(shù)據(jù)或代碼被存儲于在其中編譯該對象的共享庫中。當(dāng)要利用對象時,本地地(例如,在客戶機設(shè)備上)加載并執(zhí)行對象。然而,有了這樣的常規(guī)系統(tǒng),對象知道并理解遠程過程,這可使得對這些對象的編程變得不僅費時,而且非常面向細節(jié)。因此,常規(guī)系統(tǒng)無法適當(dāng)?shù)刂С植恢肋h程過程的軟件對象。此外,當(dāng)今不存在允許軟件對象駐留在分布式網(wǎng)絡(luò)中以實現(xiàn)對這些對象的分布式支持的系統(tǒng)。當(dāng)今的計算系統(tǒng)和對象執(zhí)行系統(tǒng)技術(shù)的上述缺點僅旨在提供常規(guī)系統(tǒng)的一些問題的概覽,并且不旨在是窮盡性的。傳統(tǒng)系統(tǒng)的其他問題以及此處所描述的各非限制性實施例的對應(yīng)的益處可以在審閱以下描述后變得更顯而易見。

發(fā)明內(nèi)容
此處提供了簡化的發(fā)明內(nèi)容以幫助能夠?qū)σ韵赂敿毜拿枋龊透綀D中的示例性、非限制性實施例的各方面有基本或大體的理解。然而,本發(fā)明內(nèi)容并不旨在作為詳盡的或窮盡的概覽。相反,本發(fā)明內(nèi)容的唯一目的在于,以簡化的形式提出與一些示例性、非限制性實施例相關(guān)的一些概念,作為以下各實施例的更詳細的描述的序言。在一個或多個實施例中,提供了供開發(fā)者持久存儲對象和讀回(或執(zhí)行)對象的簡單機制。此外,對象能夠本地地和/或遠程地訪問。例如,所公開的實施例允許在分布式目錄中對對象進行讀寫。由此,對象能夠被遠程地和/或本地地連接和交互。另外,這些方法能夠在網(wǎng)絡(luò)或云中的正在運行的實例上執(zhí)行。對象實現(xiàn)可以不知道主存環(huán)境的細節(jié)。此外,對象實現(xiàn)可以不知道遠程過程調(diào)用和/或遠程過程調(diào)用(RPC)語義??梢杂谢旧贤瑫r存在的同一對象的單個實例或多個實例。此外,無論是正在運行或不是正在運行,每一個對象包括統(tǒng)一資源標識符(URI)路徑,該URI路徑通過分布式對象目錄來命名云中的對象。這些和其他實施例在下文中更詳細地描述。


參考附圖進一步描述各非限制性實施例,在附圖中圖I示出了根據(jù)一方面的示例性計算系統(tǒng)的框圖;圖2是示出根據(jù)一方面的包含開發(fā)組件、存儲組件和執(zhí)行組件的對象管理器組件的框圖;圖3示出了根據(jù)一方面的對象管理器組件的另一方面;圖4示出了根據(jù)一方面的包含監(jiān)視器組件和卸載組件的對象處理組件;圖5示出了根據(jù)一方面的本地綁定過程的非限制性流程圖;
圖6示出了根據(jù)一方面的遠程綁定過程的非限制性流程圖;圖7示出了根據(jù)一方面的激活過程的非限制性流程圖;圖8是示出根據(jù)一方面的與實況對象進行交互的示例性、非限制性過程的流程圖;圖9是示出根據(jù)一方面的允許多個設(shè)備(或單個設(shè)備)與對象的實況版本進行交互的示例性、非限制性過程的流程圖;圖10是示出根據(jù)一方面的與實況對象進行交互的示例性、非限制性過程的流程圖;圖11是表示其中可實現(xiàn)在本文中所述的各實施例的示例性、非限制性聯(lián)網(wǎng)環(huán)境的框圖;以及圖12是表示其中可實現(xiàn)在本文中所述的各實施例的一個或多個方面的示例性非限制性計算系統(tǒng)或操作環(huán)境的框圖。
具體實施例概覽存在可被配置成用作遠程對象的各種類型的對象。這些對象包括例如.NET遠程對象,其可包括單調(diào)用對象、單元素對象和激活客戶機的對象。單調(diào)用對象只服務(wù)一個傳入請求并且不保留狀態(tài)信息。單元素對象服務(wù)多個客戶機并且可通過存儲客戶機調(diào)用之間的狀態(tài)信息來共享數(shù)據(jù)。激活客戶機的對象是能夠應(yīng)客戶機請求被激活的服務(wù)器側(cè)對象。如在此處所用的,用戶、終端用戶、客戶機設(shè)備、實體等等可以是指人類、行動者、計算機、因特網(wǎng)、系統(tǒng)(或另一系統(tǒng))、商業(yè)企業(yè)、機器、機械等等,并且在后文中將取決于上下文而通常被稱為用戶、客戶機或客戶機設(shè)備。常規(guī)上,當(dāng)要利用對象時,用戶通常本地地安裝對象(例如,在客戶機設(shè)備上)。因此,對象以對象知道并理解復(fù)雜的遠程過程的方式開發(fā)或創(chuàng)建。這一遠程過程知曉對象的開發(fā)可以是費時的,并且通常利用高度熟練的開發(fā)者,這些開發(fā)者具備創(chuàng)建具有執(zhí)行復(fù)雜遠程過程的能力的對象的技術(shù)技能。對這些高度熟練的開發(fā)者的利用增加成本以及對象本身的復(fù)雜性。由此,開發(fā)能夠如所預(yù)期的那樣操作而不知道復(fù)雜的遠程調(diào)用的對象將會是有益的。此外,開發(fā)能夠在分布式網(wǎng)絡(luò)中應(yīng)用的對象將會是有益的,這能夠提高這些對象的可用性。
在一實施例中,所公開的各方面涉及存在于網(wǎng)絡(luò)中并且可通過網(wǎng)絡(luò)直接訪問的軟件對象。能夠?qū)εc對象相關(guān)聯(lián)的數(shù)據(jù)進行讀寫,并且可執(zhí)行對象的方法。這些讀取、寫入和執(zhí)行能夠在不將對象加載到本地主機的地址空間中的情況下執(zhí)行。在一些實施例中,各方法能夠在位于分布式連接的網(wǎng)絡(luò)中或“云中”的對象上執(zhí)行。不像其他形式的遠程方法調(diào)用和/或?qū)ο蠹せ?,所公開的各方面允許開發(fā)者在不關(guān)心遠程過程調(diào)用語義、實現(xiàn)具體接口或甚至在云中運行和/或主存對象的位置的情況下創(chuàng)建對象。所公開的各方面允許對象按使用相對或絕對統(tǒng)一資源標識符(URI)的路徑位于網(wǎng)絡(luò)中。該路徑允許調(diào)用者(例如,客戶機設(shè)備)遠程地訪問對象并且以統(tǒng)一且一致的方式與對象的屬性(例如,數(shù)據(jù))交互或調(diào)用對象的方法(例如,代碼)。因此,所公開的各方面允許開發(fā)者創(chuàng)建對象并將對象置于網(wǎng)絡(luò)中。開發(fā)者(或另一用戶)能夠本地地(在客戶機的地址空間中)或遠程地(在服務(wù)器的地址空間中)與對象進行交互。在一個實施例中,一種系統(tǒng)包括對象管理器組件,該組件被配置成基于從客戶機設(shè)備接收到的對統(tǒng)一資源標識符(URI)的請求來訪問對象。該URI是相對URI或絕對URI。該系統(tǒng)還包括被配置成遠程地與對象交互的對象處理組件。對象對遠程過程是不可知的。 在一些實現(xiàn)中,對象管理器組件被配置成連接到對象的實況實例。在其他實現(xiàn)中,對象處理組件被配置成接收對象情況的實時反饋。根據(jù)一些實現(xiàn),對象處理組件被配置成間接地與代表對象執(zhí)行至少一個功能的至少第二對象交互。在一實現(xiàn)中,對象被配置成將其功能的至少一部分卸載到分布式對象。對象處理組件不知道分布式對象的存在。在其他實現(xiàn)中,對象處理組件被配置成匿名地與對象進行交互。在一些實現(xiàn)中,該系統(tǒng)還包括抽象層,該抽象層被配置成代表對象與客戶機設(shè)備通信并且代表客戶機設(shè)備與對象通信。在另一實施例中,一種方法包括將對象寫入到web服務(wù)并且將該對象保存在與該web服務(wù)相關(guān)聯(lián)的數(shù)據(jù)庫中。該方法還包括基于接收到針對統(tǒng)一資源標識符(URI)的請求來執(zhí)行對象。在一實現(xiàn)中,保存對象包括將URI分配給對象,其中該URI是通用的。在一些實現(xiàn)中,執(zhí)行基于來自第一設(shè)備的請求。在該實現(xiàn)中,該方法還包括查明第一設(shè)備已經(jīng)與對象連接并且保存該對象的第一版本。該方法還包括從第一設(shè)備和第二設(shè)備接收請求并且根據(jù)第二請求來執(zhí)行對象的第一版本。在另一實現(xiàn)中,該方法包括處理對對象的至少一個改變。該請求和至少一個改變是從第一設(shè)備接收到的。該方法還包括自動將至少一個改變保存在與web服務(wù)相關(guān)聯(lián)的數(shù)據(jù)庫中。在另一實現(xiàn)中,該方法包括從第二設(shè)備接收第二請求并且向第二設(shè)備呈現(xiàn)具有至少一個改變的對象。在一些實現(xiàn)中,執(zhí)行包括與至少第二對象進行交互,其中該第二對象與該對象相關(guān)聯(lián)。在另一實施例中,一種用于對象的分布式執(zhí)行的方法包括接收對對象的調(diào)用。對象包括第一子對象和第二子對象。該方法還包括根據(jù)該調(diào)用來執(zhí)行對象、第一子對象和第二子對象中的至少一個,其中該執(zhí)行是在云中進行的。在一實現(xiàn)中,該執(zhí)行包括在執(zhí)行期間移動對象的至少一部分。在另一實現(xiàn)中,該執(zhí)行包括在第一機器中執(zhí)行第一子對象以及在第二機器中執(zhí)行第二子對象。在另一實現(xiàn)中,該執(zhí)行包括將對象的至少一個功能卸載到第一子對象或第二子對象。在一些實現(xiàn)中,該方法包括監(jiān)視對于對象、第一子對象和第二子對象的使用,并基于監(jiān)視,卸載對象、第一子對象和第二子對象中的至少一個的功能。此處,以上已經(jīng)呈現(xiàn)了對象執(zhí)行系統(tǒng)的實施例中的某一些的概覽。作為接下來的內(nèi)容的路標,更詳細地描述對象執(zhí)行系統(tǒng)的各示例性、非限制性實施例和特征。隨后,為了附加說明,給出一些非限制性實現(xiàn)和示例,之后是其中可實現(xiàn)這些實施例和/或特征的代 表性網(wǎng)絡(luò)和計算環(huán)境。在分布式網(wǎng)絡(luò)中定位并執(zhí)行對象作為針對從統(tǒng)一資源標識符(URI)提供對實況對象的訪問以及提供對象的分布式執(zhí)行的一種或多種非限制性方式的進一步描述,圖I大致示出了示例性計算系統(tǒng)的框圖。計算系統(tǒng)包括環(huán)境100,該環(huán)境可以是分布式網(wǎng)絡(luò)或分布式目錄。在某些方面,環(huán)境100與云計算(或簡稱為“云”)相關(guān)聯(lián),其中終端用戶(例如,客戶機設(shè)備)不知道傳遞服務(wù)的系統(tǒng)、分布式對象等的物理位置和配置。在一示例中,位于云中的抽象層能夠從客戶機設(shè)備接收指令?;谶@些指令,抽象層能夠代表客戶機設(shè)備與一個或多個對象交互。此外,抽象層能夠代表對象與客戶機設(shè)備交互。由此,抽象層能夠?qū)蛻魴C設(shè)備隱藏實現(xiàn)細節(jié)。當(dāng)用戶需要可位于環(huán)境100中的服務(wù)或分布式對象時,接收對象請求110。例如,每一分布式對象都可具有相對URI或絕對URI。例如,第一分布式對象可具有第一 URI,第二分布式對象可具有第二 URI,以此類推。根據(jù)一方面,URI可以在創(chuàng)建對象時被分配給對象并被保留在分布式對象目錄中。根據(jù)一些方面,對象請求包括對URI的引用。由此,當(dāng)用戶期望訪問分布式對象時,用戶輸入該對象的URI。根據(jù)一些方面,能夠從單個用戶或從不同用戶接收多個對象請求。多個對象請求可以是針對不同對象的,由此這些多個對象請求可引用不同的URI。根據(jù)一方面,該系統(tǒng)被配置成諸如通過抽象層來執(zhí)行多個對象請求。此外,對象的單個實例或多個實例能夠基本上同時存在。在某些方面,分配給對象的URI可以是匿名的,以使得不存在與對象相關(guān)聯(lián)的安全特征(例如,口令、安全憑證等)。由此,可訪問網(wǎng)絡(luò)且知道URI的任何客戶機都能夠訪問對象并且利用與該對象相關(guān)聯(lián)的特征。根據(jù)一些方面,可以為對象建立安全特征。在這種情況下,用戶嘗試通過輸入URI來訪問對象,并且另外輸入各種憑證(例如,用戶id/ 口令對、生物測定數(shù)據(jù)或其他安全參數(shù))。如果憑證與分配給對象的憑證匹配,則用戶被授權(quán)并且被授予對對象的訪問。如果憑證不匹配,則拒絕對對象的訪問。基于對象請求110(例如,URI以及在某些情況下的安全參數(shù)的輸入),對象管理器組件120被配置以訪問對象。根據(jù)某些方面,對象管理器組件120訪問對象數(shù)據(jù)130。例如,對象管理器組件120能夠從對象服務(wù)器獲取對象數(shù)據(jù)130。根據(jù)某些方面,對象管理器組件120不知道對象的實際位置。例如,對象可位于與分布式網(wǎng)絡(luò)對接的不同設(shè)備(或不同云)上。在一方面,對象管理器組件120被配置成連接到對象(或另一對象或與該對象相關(guān)聯(lián)的子對象)的實況實例。對象數(shù)據(jù)130被提供給被配置成遠程地與對象進行交互的對象處理組件140。例如,對象處理組件140可被配置成執(zhí)行關(guān)于位于環(huán)境100中的對象的方法。此外,對象處理組件140可被配置成允許遠程地(在云中或在分布式對象目錄(對象名字空間))或本地地(在客戶機設(shè)備上)利用對象。如果遠程地利用對象,則(例如,實時地,在與做出改變大致同時,等等)自動將對該對象的任何改變保存在云中。在某些方面,對象處理組件被配置成匿名地與對象進行交互。如果本地地利用對象,則基于其他準則來手動地(例如,通過用戶)或自動地將對該對象的任何改變保存到云。例如,如果用戶本地地與對象交互,則抽象層可請求在滿足特定準則后(例如,在指定的時間間隔后,在對對象的改變的通知后,等等)將對象保存到云。將對象手動和/或自動保存到云允許用戶(或不同的用戶)在請求與該對象相關(guān)聯(lián)的URI時(在稍后時間)訪問該對象的已更新版本。所公開的各方面的優(yōu)點是能夠在沒有特殊編程考慮事項的情況下提供對象。由此,對象能夠存活在網(wǎng)絡(luò)中并且能夠利用云計算。此外,對象的已更新版本(或最近版本)可由不同的用戶/客戶機設(shè)備、相同的用戶/相同的客戶機設(shè)備或相同的用戶/不同的客戶機設(shè)備訪問。例如,用戶可能在工作計算機處與對象交互。如果用戶遠程地與對象交互,則該對象可被自動保存在云中。如果用戶本地地與對象交互,則該用戶可以在這天下班之前將該對象保存到云。在晚上,用戶可決定再次訪問對象。由于對象的實況版本已被保存
在云中(例如,自動、手動),因此用戶能夠從不同的設(shè)備(例如,家庭計算機)或相同的設(shè)備(例如,在工作和家里兩者處使用的膝上型計算機)訪問該對象。在一實施例中,圖I所示的對象執(zhí)行系統(tǒng)在操作上可不同于常規(guī)的對象執(zhí)行系統(tǒng),以便提供勝于可由采用常規(guī)的對象執(zhí)行系統(tǒng)的計算系統(tǒng)實現(xiàn)的優(yōu)勢的額外優(yōu)勢。例如,此處所公開的對象執(zhí)行系統(tǒng)能夠在分布式網(wǎng)絡(luò)或云中本地地和/或遠程地應(yīng)用。為了示出其他方面,圖2是示出根據(jù)一方面的包含開發(fā)組件210、存儲組件220和執(zhí)行組件230的對象管理器組件200的框圖。對象管理器組件200被配置成創(chuàng)建對象并將URI分配給對象。在一個實施例中,開發(fā)組件210被配置成將對象寫入到web服務(wù)。例如,開發(fā)者可利用普通編程來定義對象“foo”(例如,開發(fā)者不知道該對象將被在云中使用)。在定義對象“foo”之后,開發(fā)者可通過調(diào)用web服務(wù)并執(zhí)行“寫”過程來發(fā)布該對象,該“寫”過程被配置成將對象寫入到web服務(wù)。存儲組件220被配置成將對象保留或保存在與web服務(wù)相關(guān)聯(lián)的數(shù)據(jù)庫中。繼續(xù)上述示例,在與將對象寫入到web服務(wù)大致相同的時間,將路徑分配給對象。例如,路徑可包括對象的名稱,諸如“Fred”。由此,“foo”是實際對象實例且對象名稱是“Fred”。對象名稱允許對象作為已命名的對象存在于云中。例如,開發(fā)者可能本地地創(chuàng)建對象,然而,一旦該對象被保存至web服務(wù),則該對象在云中并且能夠被保留在例如數(shù)據(jù)庫中。在一方面,保存對象包括將URI分配給對象,其中URI是通用的(例如,可由不止一個用戶利用,可以在多個位置利用,等等)。在某些方面,URI可使得對象的單個實例或多個實例能夠基本上同時存在。執(zhí)行對象230被配置成基于接收到針對URI的請求來執(zhí)行(例如,運行)對象。例如,當(dāng)將要執(zhí)行對象“Fred”時,接收請求并且在相同的URI執(zhí)行對象。由此,開發(fā)者能夠在沒有復(fù)雜的遠程過程并且在不關(guān)心系統(tǒng)的基礎(chǔ)結(jié)構(gòu)的情況下創(chuàng)建對象。圖3示出了根據(jù)一方面的對象管理器組件300的另一方面。對象管理器組件300可包括開發(fā)組件310和存儲組件320,該開發(fā)組件被配置成創(chuàng)建對象,存儲組件被配置成將對象保留在云中。對象對遠程過程可以是不可知的。對象管理器組件300還包括執(zhí)行組件330,該執(zhí)行組件被配置成根據(jù)對URI的請求來選擇性地授予對對象的訪問。該URI可以是相對URI或絕對URI。在一方面,執(zhí)行組件330被配置成選擇性地將對對象的訪問授予一個或多個用戶和/或一個或多個客戶機設(shè)備。例如,用戶正在工作時利用對象。稍后在晚上,用戶想要使用不同的客戶機設(shè)備來在家里與對象交互。執(zhí)行組件330被配置成選擇性地授予用戶對對象的訪問,盡管客戶機設(shè)備是不同。在另一方面,不同的用戶(以及不同的客戶機設(shè)備)可被提供對云中的對象的訪問。為了方便這些訪問,執(zhí)行組件330可被配置成基于來自第一設(shè)備的請求來執(zhí)行對象。狀態(tài)組件340被配置成查明第一設(shè)備是仍然連接到對象還是已經(jīng)與對象斷開連接。該判定可基于客戶機上的活動會話或基于其他準則(例如,超時狀態(tài),其中如果在指定時間內(nèi)沒有接收到輸入,則客戶機設(shè)備自動超時并且對對象的訪問被斷開連接)來做出。如果第一設(shè)備仍然連接到對象,則拒絕另一設(shè)備對對象的訪問?;蛘?,可以向該另一設(shè)備提供該對象的多個實例中的一個。如果確定客戶機不再連接到對象,則存儲組件320被配置成保留該對象的修改后版本(例如,第一版本)。在某些方面,存儲組件320可被配置成保留對象的原始版本和/ 或?qū)ο蟮暮罄m(xù)(例如,修改后)版本。在某些方面,對象的已保存版本可以是對象的多個實例中的一個實例。對象管理器組件300可以從第一設(shè)備或從第二設(shè)備接收第二請求?;谠摰诙埱螅瑘?zhí)行組件330被配置成執(zhí)行對象的修改后版本(例如,對象的后續(xù)版本)。圖4示出了根據(jù)一方面的包含監(jiān)視器組件410和卸載組件420的對象處理組件400。對象處理組件400被配置成遠程地與對象交互。在一方面,對象處理組件400通過抽象層間接地與對象交互。在某些實現(xiàn),對象處理組件400被配置成間接地與代表對象執(zhí)行至少一個功能的至少第二對象交互。對象對遠程過程是不可知的。監(jiān)視器組件410被配置成接收對象的情況的實時反饋。例如,對象能夠在客戶機設(shè)備上本地地執(zhí)行并且被保存到云,以使得該對象能夠在不同的客戶機設(shè)備(或在另一時間在相同的客戶機設(shè)備上)使用。如果對象未被保存到云,則該對象的最近版本將不會通過URI可用。然而,如果在z 中執(zhí)彳丁對象,則將該對象的最近版本自動保留在z 中。由此,如果在云中執(zhí)行對象(或者當(dāng)對象的本地副本被保存到云時),則監(jiān)視器組件410 (在遠程執(zhí)行的情況下)被配置成獲取實時反饋或(在本地執(zhí)行的情況下)已更新反饋。卸載組件420被配置成間接地與代表對象執(zhí)行至少一個功能的至少第二對象(例如,子對象)進行交互。由于對象在分布式網(wǎng)絡(luò)中,因此該對象的確切位置可能不是已知的。此外,對象可具有可位于分布式網(wǎng)絡(luò)(例如,云、因特網(wǎng)等)中的不同位置的子對象或多個部分。例如,可執(zhí)行一實況對象,該實況對象可連接到一個或多個其他正在執(zhí)行的對象、子對象、多個部分、分量,等等(例如,分布式部分)。分布式部分(以及對象)的每一部分都可位于不同的系統(tǒng),這能夠提供互操作性。此外,在云中,對象能夠在第一機器(或第一云)中執(zhí)行,并且分布式部分的至少一部分能夠在第二機器中(或在第二云中)執(zhí)行。根據(jù)一方面,如果(例如,由于處理約束)一機器或云不具有執(zhí)行方法的能力,則即使對象處理組件400不知道分布式對象的存在,對象也可被配置成將其功能的至少一部分卸載到分布式對象。因此,即使對象在最初創(chuàng)建時沒有該能力,功能的至少一部分也在不同的機器或云(例如,分布式部分)上執(zhí)行??蛻魴C設(shè)備不知道卸載或分布式部分。此外,所公開的各方面提供單個對象的分布式執(zhí)行。由此,如果過渡使用對象,則該對象可以快速分散到不同的機器或云。另外,可提供能夠預(yù)測是否應(yīng)卸載對象的功能的分析。以下示例示出了如何將對象置于網(wǎng)絡(luò)中。該示例使用具有差別的典型的購物車場景,該購物車不是網(wǎng)站專用應(yīng)用代碼,而是獨立于網(wǎng)站存在的“云對象”。注意,任何對象(諸如.NET對象)都可以與所公開的方面一起使用,無論該對象是否理解遠程過程調(diào)用,這是所公開的各方面的優(yōu)點。用戶通過網(wǎng)站訪問“云中”的購物車,并因此能夠從web上的任何地方而不僅僅是當(dāng)個網(wǎng)站訪問相同的購物車。在一方面,用戶可輸入URI并使用該URI來訪問購物車。例如,用戶虛擬地拜訪基于web的書店并購買一本書且將這本書放在個人購物車中。然后,用戶去往基于web的電子商店,并且購買視頻游戲且將該視頻游戲添加到相同的 個人購物車。接著,用戶拜訪基于web的住房改善商店,并且購買割草機,該割草機也被放在個人購物車中。該購物車是“云”對象并且屬于用戶,而不是商家本身。由此,用戶可離開一個網(wǎng)站并且在不丟失購物車物品的情況下從不同的計算機或設(shè)備訪問另一網(wǎng)站。當(dāng)用戶期望結(jié)賬(例如,購買物品)時,交易被發(fā)送到適當(dāng)?shù)纳碳乙酝瓿山灰撞ⅹ毩⒌剡f送商品??梢岳斫?,上述示例是假想的,并且對于與每一個結(jié)賬過程(例如,商家)交互的邏輯問題將根據(jù)與每一個結(jié)賬過程相關(guān)聯(lián)的不同實體來在個別地啟用。所公開的各方面允許在“云中”實現(xiàn)個人購物車,常規(guī)系統(tǒng)未解決該實現(xiàn)。此外,盡管所公開的各方面是針對分布式購物場景來討論的,但所公開的各方面能夠用于除了此處所討論的場景之外的其他場景。以下是所公開的各方面的示例,其中對象不被遠程地執(zhí)行,而是被下載到做出調(diào)用的機器(例如,客戶機設(shè)備)并且本地地執(zhí)行。這是為了將其與此處描述的遠程執(zhí)行方面進行對比而示出了。
ObjectNamespace directory = ObjectNameSpace.Co eci(); ShoppingCartshoppingCart = newShoppingCart ();
Directory.
“/provider/customer/<cusomterID>/MySoftwareBasket”,
shoppingCart
);上述示例本地地(在客戶機設(shè)備上)創(chuàng)建購物車,并將其寫入用戶的個人目錄下的對象名字空間。在該示例中,客戶由客戶ID來命名。購物車對象被存儲且具有名稱“MySoftwareBasket (我的軟件購物籃)”,以暗示該客戶機正在線構(gòu)造買軟件。該示例基本上是在寫入數(shù)據(jù)。注意,在網(wǎng)絡(luò)中存在購物車,應(yīng)用可通過調(diào)用作為“Bind (綁定)”和“Activate (激活)”的兩個目錄方法中的一個來訪問該購物車。Bind連接到對象的現(xiàn)有實例并且能夠以作為本地(生成本地副本)或遠程(連接到遠程副本)的兩種方式中的一種來執(zhí)行。Activate用于創(chuàng)建新遠程實例并將其加載到網(wǎng)絡(luò)中。Activate將對象加載到云中的遠程過程中。使用本地選項來綁定到目錄中的對象導(dǎo)致該對象的數(shù)據(jù)被復(fù)制到本地機器并且創(chuàng)建本地實例。對對象的任何調(diào)用都是(例如,在過程中)本地執(zhí)行的。在該場景中,對象將被保存回到名字空間中以使得改變起作用。圖5示出了根據(jù)一方面的本地綁定過程的非限制性流程圖??蛻魴C設(shè)備500將綁定請求510發(fā)送到名字空間服務(wù)器520。名字空間服務(wù)器520用綁定響應(yīng)530來回復(fù),該綁定響應(yīng)可包括名字記錄??蛻魴C設(shè)備500將讀取請求540發(fā)送到對象服務(wù)器550,該讀取請求可包括對象id。對象服務(wù)器550與數(shù)據(jù)源560交互以獲取對象數(shù)據(jù)570,該對象數(shù)據(jù)被加載在對象服務(wù)器550上。對象服務(wù)器550將對象圖580提供給客戶機設(shè)備500。以下示例示出了這如何能夠看上去是程序性的。在其對象使用Bind方法下載之后,這全都發(fā)生在客戶機設(shè)備上。
ShoppingCart shoppingCart = directory“/provider/customer/<customerID>/MySoftwareBasket”,BindOptions.Locally);
shopingCart.Add(product);
directory.Write (shoppingCart);以下示例類似于上述示例,不同之處在于綁定選項指定遠程綁定。在該示例中,真實對象未被下載到客戶機,而是在客戶機上創(chuàng)建代理。圖6示出了根據(jù)一方面的遠程綁定過程的非限制性流程圖??蛻魴C設(shè)備600將綁定請求610發(fā)送到名字空間服務(wù)器620,名字空間服務(wù)器用可包括名字空間記錄的綁定響應(yīng)630來回復(fù)??蛻魴C設(shè)備600將包括圖ID (或?qū)ο骾d)的綁定請求640發(fā)送到對象服務(wù)器650。對象服務(wù)器650連接660到對象主存進程670??蛻魴C設(shè)備600通過對象主存進程670對對象做出遠程調(diào)用680。對Add (添加)的調(diào)用是遠程執(zhí)行的,而對Write (寫入)的調(diào)用指示遠程進程執(zhí)
行對象的到數(shù)據(jù)庫的寫入。
ShoppingCart shoppingCart = directory .5ιη</ ( “/provider/customers/<customerID>/MySoftwareBasket”,
BindOptions.Remotely
);
Product product = new Product (“Program Name”); shoppingCart. Add (product);
directory .Write (shoppingCart);對象能夠在一個調(diào)用中被激活和綁定。在該場景中,創(chuàng)建新實例并且返回代理。圖7示出了根據(jù)一方面的激活過程的非限制性流程圖。示出了將綁定請求710傳送到名字空間服務(wù)器720的客戶機設(shè)備700。名字空間服務(wù)器720用包括名字空間記錄的綁定響應(yīng)730來回復(fù)。包括對象id的激活請求740被從客戶機設(shè)備700發(fā)送到對象服務(wù)器750。對象服務(wù)器750訪問數(shù)據(jù)源760并且數(shù)據(jù)被加載770到對象服務(wù)器750。對象服務(wù)器750將對象實例780加載到對象主存進程790中??蛻魴C設(shè)備700對對象795做出遠程調(diào)用。以下代碼示出了這如何能夠看上去是程序性的。
權(quán)利要求
1.一種系統(tǒng),包括 對象管理器組件(120),被配置成基于從客戶機設(shè)備接收到的對統(tǒng)一資源標識符URI的請求來訪問對象;以及 對象處理組件(140),被配置成遠程地與所述對象交互。
2.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述對象對于遠程過程是不可知的。
3.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述對象管理器組件(120)被配置成連接到所述對象的實況實例。
4.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述對象處理組件(140)被配置成接收所述對象的情況的實時反饋。
5.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述對象處理組件(140)被配置成間接地與代表所述對象執(zhí)行至少一個功能的至少第二對象交互。
6.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述對象被配置成將其功能的至少一部分卸載到分布式對象,其中所述對象處理組件(140)不知道所述分布式對象的存在。
7.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述對象處理組件(140)被配置成匿名地與所述對象進行交互。
8.如權(quán)利要求I所述的系統(tǒng),其特征在于,所述URI是相對URI或絕對URI。
9.如權(quán)利要求I所述的系統(tǒng),其特征在于,還包括抽象層,所述抽象層被配置成代表所述對象與所述客戶機設(shè)備通信,并且代表所述客戶機設(shè)備與所述對象通信。
10.一種方法,包括 將對象寫入(800)到web服務(wù); 將所述對象保存(810)在與所述web服務(wù)相關(guān)聯(lián)的數(shù)據(jù)庫中; 基于接收到針對統(tǒng)一資源標識符URI的請求來執(zhí)行(820)所述對象。
11.如權(quán)利要求10所述的方法,其特征在于,保存所述對象包括將所述URI分配給所述對象,其中所述URI是通用的。
12.如權(quán)利要求10所述的方法,其特征在于,所述執(zhí)行是基于來自第一設(shè)備的請求的,所述方法還包括 查明所述第一設(shè)備已經(jīng)與所述對象斷開連接; 保存所述對象的第一版本; 從所述第一設(shè)備或第二設(shè)備接收第二請求;以及 根據(jù)所述第二請求來執(zhí)行所述對象的第一版本。
13.如權(quán)利要求10所述的方法,其特征在于,還包括 處理對所述對象的至少一個改變,其中所述請求和所述至少一個改變是從第一設(shè)備接收到的;以及 自動將所述至少一個改變保存在與所述web服務(wù)相關(guān)聯(lián)的數(shù)據(jù)庫中。
14.如權(quán)利要求13所述的方法,其特征在于,還包括 從第二設(shè)備接收第二請求;以及 向所述第二設(shè)備呈現(xiàn)具有所述至少一個改變的對象。
15.如權(quán)利要求10所述的方法,其特征在于,所述執(zhí)行包括與至少第二對象交互,其中所述第二對象與所述對象相關(guān)聯(lián)。
全文摘要
本發(fā)明公開了在分布式網(wǎng)絡(luò)中定位并執(zhí)行對象。本發(fā)明涉及分布式網(wǎng)絡(luò)中或云中的對象的交互和執(zhí)行。每一個對象包括統(tǒng)一資源標識符(URI)路徑,該URI路徑通過分布式對象目錄來命名云中的對象??蛻魴C設(shè)備能夠基于URI路徑來直接與對象的實況實例對接。對象對于遠程過程調(diào)用語義可以是不可知的。在某些方面,對象能夠被遠程地或本地地連接和交互。此外,對象的單個實例或多個實例能夠基本上同時存在。
文檔編號H04L29/08GK102843411SQ20121008667
公開日2012年12月26日 申請日期2012年3月28日 優(yōu)先權(quán)日2011年3月29日
發(fā)明者R·帕奇, L·齊格努什, R·喬漢 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
淳化县| 海盐县| 凤凰县| 阳信县| 新宾| 团风县| 乃东县| 高阳县| 辰溪县| 阿图什市| 五指山市| 泽库县| 习水县| 抚宁县| 白山市| 德令哈市| 桦甸市| 瓦房店市| 疏附县| 桓仁| 定边县| 安阳县| 独山县| 黄梅县| 化州市| 如东县| 江北区| 桦川县| 长子县| 芦溪县| 浪卡子县| 门头沟区| 惠来县| 左贡县| 诸暨市| 阿克陶县| 郯城县| 油尖旺区| 集贤县| 文成县| 财经|