聯(lián)邦政府資助的研究
本發(fā)明是在由國防部高級(jí)研究計(jì)劃局(“darpa”)授予的第w31p4q-10-c-0010號(hào)合同下由政府支持做出。政府在本發(fā)明中有某些權(quán)利。
相關(guān)申請
本申請涉及于2014年3月13日提交的題為“visualizationinterfaceforinformationobjectsystem”的美國專利申請14/208,346,并且該申請通過引用以其整體并入本文。
背景
許多程序以特定于特定程序的格式保存數(shù)據(jù)。為了使程序處理由另一程序輸出的數(shù)據(jù),該程序必須能夠處理特定于其它程序的格式的數(shù)據(jù)。
概述
公開了用于以獨(dú)立于機(jī)器和應(yīng)用的方式存儲(chǔ)信息的各種技術(shù)。數(shù)據(jù)被存儲(chǔ)為一系列的信息對象。應(yīng)用可以生成、存儲(chǔ)和訪問信息對象,包括由其它應(yīng)用或設(shè)備生成的信息對象。
在實(shí)施方式中,提供了包含(embodying)在至少一個(gè)計(jì)算設(shè)備中可執(zhí)行的程序的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì),
所述程序包括:響應(yīng)于從應(yīng)用接收到存儲(chǔ)數(shù)據(jù)的請求而創(chuàng)建信息對象的代碼,其中存儲(chǔ)數(shù)據(jù)的請求包括第一文件和第一文件類型或數(shù)據(jù)流和該數(shù)據(jù)流的數(shù)據(jù)源的標(biāo)識(shí),并且信息對象至少部分地基于第一文件類型或數(shù)據(jù)源的標(biāo)識(shí)來創(chuàng)建;響應(yīng)于從應(yīng)用接收到修改信息對象的請求而修改信息對象的代碼,其中當(dāng)信息對象被修改時(shí),該信息對象被鎖定;響應(yīng)于從應(yīng)用接收到對信息對象的請求而將該信息對象的副本提供給應(yīng)用的代碼;以及響應(yīng)于接收到導(dǎo)出信息對象的請求而將信息對象導(dǎo)出到第二文件的代碼,其中導(dǎo)出信息對象的請求指定第二文件的第二文件類型。在任何一個(gè)或多個(gè)實(shí)施方式中,信息對象封裝:內(nèi)容數(shù)據(jù),其包括與信息對象相關(guān)的多個(gè)屬性以及對另一信息對象的引用;形式數(shù)據(jù),其描述如何在應(yīng)用的用戶界面內(nèi)呈現(xiàn)信息對象;以及函數(shù),其用于操縱信息對象。在任何一個(gè)或多個(gè)實(shí)施方式中,第一文件和第一文件類型與第一應(yīng)用相關(guān)聯(lián),并且第二文件和第二文件類型與第二應(yīng)用相關(guān)聯(lián)。
在實(shí)施方式中,提供了一種系統(tǒng),該系統(tǒng)包括:計(jì)算設(shè)備;以及在計(jì)算設(shè)備中執(zhí)行的第一應(yīng)用,所述應(yīng)用包括:響應(yīng)于從第二應(yīng)用接收到存儲(chǔ)數(shù)據(jù)的請求而創(chuàng)建信息對象的邏輯;響應(yīng)于從第二應(yīng)用接收到修改信息對象的請求而修改信息對象的邏輯;以及響應(yīng)于從第二應(yīng)用接收到對信息對象的請求而將信息對象的副本提供給第二應(yīng)用的邏輯。在任何一個(gè)或多個(gè)實(shí)施方式中,信息對象包括內(nèi)容數(shù)據(jù),該內(nèi)容數(shù)據(jù)包括與信息對象相關(guān)的屬性或?qū)α硪恍畔ο蟮囊弥械闹辽僖粋€(gè)。在任何一個(gè)或多個(gè)實(shí)施方式中,信息對象包括形式數(shù)據(jù),該形式數(shù)據(jù)描述如何在另一計(jì)算設(shè)備上執(zhí)行的客戶端應(yīng)用的用戶界面內(nèi)呈現(xiàn)信息對象。在任何一個(gè)或多個(gè)實(shí)施方式中,信息對象包括用于操縱信息對象的函數(shù),其中該函數(shù)可由應(yīng)用或在客戶端計(jì)算設(shè)備內(nèi)執(zhí)行的客戶端應(yīng)用來調(diào)用。在任何一個(gè)或多個(gè)實(shí)施方式中,修改信息對象的邏輯調(diào)用信息的函數(shù)來修改信息對象。在任何一個(gè)或多個(gè)實(shí)施方式中,響應(yīng)于從第二應(yīng)用接收到對信息對象的請求而將信息對象的副本提供給第二應(yīng)用的邏輯還包括:確定信息對象是否位于計(jì)算設(shè)備的存儲(chǔ)器中的邏輯;響應(yīng)于確定信息對象位于計(jì)算設(shè)備的存儲(chǔ)器中而向第二應(yīng)用提供信息對象的邏輯;以及響應(yīng)于確定信息對象不位于計(jì)算設(shè)備的存儲(chǔ)器中而向在另一計(jì)算設(shè)備中執(zhí)行的第三應(yīng)用發(fā)送查詢的邏輯,其中該查詢請求第三應(yīng)用確定信息對象是否位于第二計(jì)算設(shè)備的存儲(chǔ)器中。在任何一個(gè)或多個(gè)實(shí)施方式中,響應(yīng)于從第二應(yīng)用接收到對信息對象的請求而將信息對象的副本提供給第二應(yīng)用的邏輯還包括:當(dāng)?shù)谌龖?yīng)用以信息對象位于第二計(jì)算設(shè)備的存儲(chǔ)器中的指示響應(yīng)查詢時(shí),從另一計(jì)算設(shè)備獲取信息對象的邏輯;以及響應(yīng)于從另一計(jì)算設(shè)備獲取到信息對象而向第二應(yīng)用提供信息對象的邏輯。在任何一個(gè)或多個(gè)實(shí)施方式中,響應(yīng)于從第二應(yīng)用接收到對信息對象的請求而將信息對象的副本提供給第二應(yīng)用的邏輯還包括:當(dāng)?shù)谌龖?yīng)用以信息對象位于第二計(jì)算設(shè)備的存儲(chǔ)器中的指示響應(yīng)查詢時(shí),向第二應(yīng)用提供信息對象的位置的邏輯。
在實(shí)施方式中,提供了一種方法,所述方法包括:響應(yīng)于從應(yīng)用接收到存儲(chǔ)數(shù)據(jù)的請求,通過計(jì)算設(shè)備創(chuàng)建信息對象;響應(yīng)于從應(yīng)用接收到修改信息對象的請求,通過計(jì)算設(shè)備修改信息對象;以及響應(yīng)于從應(yīng)用接收到對信息對象的請求,通過計(jì)算設(shè)備將信息對象的副本提供給應(yīng)用。在任何一個(gè)或多個(gè)實(shí)施方式中,存儲(chǔ)數(shù)據(jù)的請求包括文件和文件類型。在任何一個(gè)或多個(gè)實(shí)施方式中,響應(yīng)于從應(yīng)用接收到存儲(chǔ)數(shù)據(jù)的請求而通過計(jì)算設(shè)備創(chuàng)建信息對象還包括:通過計(jì)算設(shè)備識(shí)別用于創(chuàng)建信息對象的規(guī)則,其中規(guī)則對應(yīng)于文件類型;通過計(jì)算設(shè)備根據(jù)規(guī)則來創(chuàng)建信息對象;以及通過計(jì)算設(shè)備將數(shù)據(jù)從文件復(fù)制到所創(chuàng)建的信息對象中。在任何一個(gè)或多個(gè)實(shí)施方式中,存儲(chǔ)數(shù)據(jù)的請求包括數(shù)據(jù)流。在任何一個(gè)或多個(gè)實(shí)施方式中,響應(yīng)于從應(yīng)用接收到存儲(chǔ)數(shù)據(jù)的請求而通過計(jì)算設(shè)備創(chuàng)建信息對象還包括:通過計(jì)算設(shè)備識(shí)別數(shù)據(jù)流的數(shù)據(jù)源;以及至少部分地基于數(shù)據(jù)源,通過計(jì)算設(shè)備創(chuàng)建多個(gè)信息對象,其中多個(gè)信息對象中的每一個(gè)封裝數(shù)據(jù)流的至少部分。在任何一個(gè)或多個(gè)實(shí)施方式中,信息對象封裝以下中的至少一個(gè):內(nèi)容數(shù)據(jù),其包括與信息對象相關(guān)的多個(gè)屬性和對另一信息對象的引用;形式數(shù)據(jù),其描述如何在應(yīng)用的用戶界面內(nèi)呈現(xiàn)信息對象;或用于操縱信息對象的函數(shù)。在任何一個(gè)或多個(gè)實(shí)施方式中,響應(yīng)于從應(yīng)用接收到對信息對象的請求而通過計(jì)算設(shè)備將信息對象的副本提供給應(yīng)用還包括:通過計(jì)算設(shè)備確定信息對象當(dāng)前被存儲(chǔ)的數(shù)據(jù)存儲(chǔ)庫;以及通過計(jì)算設(shè)備將到數(shù)據(jù)存儲(chǔ)庫的路徑提供給應(yīng)用。在任何一個(gè)或多個(gè)實(shí)施方式中,該方法還包括響應(yīng)于從應(yīng)用接收到將信息對象導(dǎo)出到文件的請求,通過計(jì)算設(shè)備將該信息對象導(dǎo)出到文件。在任何一個(gè)或多個(gè)實(shí)施方式中,響應(yīng)于從應(yīng)用接收到將信息對象導(dǎo)出到文件的請求而通過計(jì)算設(shè)備將信息對象導(dǎo)出到文件還包括:通過計(jì)算設(shè)備識(shí)別文件的目標(biāo)文件類型;通過計(jì)算設(shè)備識(shí)別用于將信息對象轉(zhuǎn)換為目標(biāo)文件類型的規(guī)則;通過計(jì)算設(shè)備創(chuàng)建該文件;以及通過計(jì)算設(shè)備將封裝在信息對象內(nèi)的內(nèi)容的至少部分從信息對象復(fù)制到所創(chuàng)建的文件。
附圖簡述
可以參考下面的附圖更好地理解本公開的很多方面。在附圖中的組件不一定按比例繪制,相反強(qiáng)調(diào)清楚地說明本公開的原理。此外,在附圖中,相似的參考數(shù)字在全部幾個(gè)視圖中表示相應(yīng)的部件。
圖1是根據(jù)本公開的各種實(shí)施方式的聯(lián)網(wǎng)環(huán)境的圖。
圖2是根據(jù)本公開的各種實(shí)施方式的在圖1的聯(lián)網(wǎng)環(huán)境中描繪的信息對象的圖。
圖3是圖示根據(jù)本公開的各種實(shí)施方式的被實(shí)現(xiàn)為在圖1的聯(lián)網(wǎng)環(huán)境中的計(jì)算環(huán)境中執(zhí)行的協(xié)作服務(wù)器的部分的功能的一個(gè)示例的流程圖。
圖4是圖示根據(jù)本公開的各種實(shí)施方式的被實(shí)現(xiàn)為在圖1的聯(lián)網(wǎng)環(huán)境中的計(jì)算環(huán)境中執(zhí)行的協(xié)作服務(wù)器的部分的功能的一個(gè)示例的流程圖。
圖5是圖示根據(jù)本公開的各種實(shí)施方式的被實(shí)現(xiàn)為在圖1的聯(lián)網(wǎng)環(huán)境中的計(jì)算環(huán)境中執(zhí)行的協(xié)作服務(wù)器的部分的功能的一個(gè)示例的流程圖。
圖6是圖示根據(jù)本公開的各種實(shí)施方式的被實(shí)現(xiàn)為在圖1的聯(lián)網(wǎng)環(huán)境中的計(jì)算環(huán)境中執(zhí)行的協(xié)作服務(wù)器的部分的功能的一個(gè)示例的流程圖。
圖7是圖示根據(jù)本公開的各種實(shí)施方式的被實(shí)現(xiàn)為在圖1的聯(lián)網(wǎng)環(huán)境中的計(jì)算環(huán)境中執(zhí)行的協(xié)作服務(wù)器的部分的功能的一個(gè)示例的流程圖。
圖8是根據(jù)本公開的各種實(shí)施方式的提供在圖1的聯(lián)網(wǎng)環(huán)境中使用的計(jì)算環(huán)境的一個(gè)示例圖示的示意性方框圖。
詳細(xì)描述
本公開涉及用于提供通用數(shù)據(jù)存儲(chǔ)格式的各種實(shí)施方式。數(shù)據(jù)被存儲(chǔ)在各種信息對象中,信息對象可以包括一個(gè)或多個(gè)嵌套信息對象、信息原語、屬性和/或其它數(shù)據(jù)。每個(gè)信息對象還可以包括形式信息以及功能信息,該形式信息詳細(xì)描述信息對象如何通過用戶界面被最好地顯示給用戶,該功能信息描述和/或定義由信息對象提供的一組行為或程序功能。在一些實(shí)施方式中,數(shù)據(jù)可以從各種數(shù)據(jù)和/或文件類型導(dǎo)入到信息對象中。在一些實(shí)施方式中,數(shù)據(jù)也可以從信息對象導(dǎo)出到各種數(shù)據(jù)和/或文件類型中。在下面的討論中,提供了系統(tǒng)及其組件的一般描述,后面是系統(tǒng)及其組件的操作的討論。
參考圖1,示出了根據(jù)各種實(shí)施方式的聯(lián)網(wǎng)環(huán)境100。聯(lián)網(wǎng)環(huán)境100包括計(jì)算環(huán)境103和客戶端計(jì)算設(shè)備106,計(jì)算環(huán)境103和客戶端計(jì)算設(shè)備106經(jīng)由網(wǎng)絡(luò)109彼此進(jìn)行數(shù)據(jù)通信。網(wǎng)絡(luò)109包括例如互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、廣域網(wǎng)(wan)、局域網(wǎng)(lan)、有線網(wǎng)絡(luò)、無線網(wǎng)絡(luò)或其它合適的網(wǎng)絡(luò)等或兩個(gè)或更多個(gè)這樣的網(wǎng)絡(luò)的任何組合。
計(jì)算環(huán)境103可包括例如服務(wù)器計(jì)算機(jī)或提供計(jì)算能力的任何其它系統(tǒng)。可選地,計(jì)算環(huán)境103可使用多個(gè)計(jì)算設(shè)備,,該多個(gè)計(jì)算設(shè)備可被使用并例如被布置在一個(gè)或多個(gè)服務(wù)器組、計(jì)算機(jī)組或其它布置中。這樣的計(jì)算設(shè)備可位于單個(gè)裝置中或可分布在很多不同的地理位置當(dāng)中。例如,計(jì)算環(huán)境103可包括多個(gè)計(jì)算設(shè)備,該多個(gè)計(jì)算設(shè)備一起可包括云計(jì)算資源、網(wǎng)格計(jì)算資源和/或任何其它分布式計(jì)算布置。在一些情況下,計(jì)算環(huán)境103可對應(yīng)于彈性計(jì)算資源,其中被分配的處理能力、網(wǎng)絡(luò)、存儲(chǔ)或其它計(jì)算相關(guān)資源可隨著時(shí)間變化。
根據(jù)各種實(shí)施方式可在計(jì)算環(huán)境103中執(zhí)行各種應(yīng)用和/或其它功能。此外,各種數(shù)據(jù)被存儲(chǔ)在數(shù)據(jù)存儲(chǔ)庫111中,計(jì)算環(huán)境103可訪問該數(shù)據(jù)存儲(chǔ)庫111。如可認(rèn)識(shí)到的,數(shù)據(jù)存儲(chǔ)庫111可代表多個(gè)數(shù)據(jù)存儲(chǔ)庫111。存儲(chǔ)在數(shù)據(jù)存儲(chǔ)庫111中的數(shù)據(jù)例如與下面描述的各種應(yīng)用和/或功能實(shí)體的操作相關(guān)。
在計(jì)算環(huán)境103上執(zhí)行的組件例如包括協(xié)作服務(wù)器113和未在本文詳細(xì)討論的其它應(yīng)用、服務(wù)、進(jìn)程、系統(tǒng)、引擎或功能。協(xié)作服務(wù)器113被執(zhí)行以允許一個(gè)或多個(gè)用戶創(chuàng)建并共享一個(gè)或多個(gè)信息對象116和可能其它數(shù)據(jù)。
存儲(chǔ)在數(shù)據(jù)存儲(chǔ)庫111中的數(shù)據(jù)包括例如一個(gè)或多個(gè)信息對象116、一個(gè)或多個(gè)數(shù)據(jù)過濾器117和可能其它數(shù)據(jù)。
信息對象116是數(shù)據(jù)存儲(chǔ)對象,該數(shù)據(jù)存儲(chǔ)對象被構(gòu)造成基于在單獨(dú)條的信息之間的關(guān)系來對數(shù)據(jù)建模。因此,信息對象116可包括與其它信息對象116的一組關(guān)聯(lián)以指示數(shù)據(jù)關(guān)系。例如,兩個(gè)信息對象116之間的鏈接可指示數(shù)據(jù)依賴性、結(jié)構(gòu)層次或由兩個(gè)或更多個(gè)信息對象116建模的數(shù)據(jù)的其它關(guān)聯(lián)。信息對象116也可被組合和/或從其它信息對象得到以表示這些關(guān)系。因此,大部分信息對象116可從其它信息對象116的組合創(chuàng)建或由其它信息對象116的組合表示。
然而,可以為不能容易地被表示為兩個(gè)或更多個(gè)其它信息對象116的組合的特定類型的數(shù)據(jù)保留一些類型或類別的信息對象116。例如,重復(fù)數(shù)據(jù)塊(例如圖像、聲音、視頻、壓縮數(shù)據(jù)和加密數(shù)據(jù))可能需要用作底層數(shù)據(jù)的封裝器的信息對象116的預(yù)留或唯一實(shí)例。連續(xù)流數(shù)據(jù)(例如來自傳感器的數(shù)據(jù)流)也可能需要信息對象116的唯一或預(yù)留實(shí)例以表示流數(shù)據(jù),因?yàn)榱鲾?shù)據(jù)具有開始部分但不一定具有結(jié)尾。
在本公開的一些實(shí)施方式中,也可以為各種類型的信息原語保留某些類別或類型的信息對象116。信息原語是可能不被表示或分解成更多的子組件的信息或數(shù)據(jù)的基本表示。例如,信息原語可以包括未格式化的字符串、文本、數(shù)字、顏色、簡單形狀和其它這樣的數(shù)據(jù)。
數(shù)據(jù)過濾器117表示指令、規(guī)則或其它合適的邏輯,該指令、規(guī)則或其它合適的邏輯由協(xié)作服務(wù)器113用于至少部分地基于從一個(gè)或多個(gè)源提供的數(shù)據(jù)來創(chuàng)建信息對象116。例如,數(shù)據(jù)過濾器117可以對應(yīng)于指令、規(guī)則或其它合適的邏輯,該指令、規(guī)則或其它合適的邏輯由協(xié)作服務(wù)器113用于將封裝在文件中的文件或數(shù)據(jù)轉(zhuǎn)換或?qū)氲叫畔ο?16中。在一些實(shí)施方式中,數(shù)據(jù)過濾器117還可由協(xié)作服務(wù)器113用于將信息對象116導(dǎo)出或轉(zhuǎn)換成文件或文件類型,以供未被配置為與協(xié)作服務(wù)器113或信息對象116一起工作的應(yīng)用使用。
客戶端計(jì)算設(shè)備106代表可耦合到網(wǎng)絡(luò)109的多個(gè)客戶端計(jì)算設(shè)備??蛻舳擞?jì)算設(shè)備106可包括例如基于處理器的系統(tǒng),例如計(jì)算機(jī)系統(tǒng)。這樣的計(jì)算機(jī)系統(tǒng)可以以臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、個(gè)人數(shù)字助理、蜂窩電話、智能電話、機(jī)頂盒、音樂播放器、網(wǎng)絡(luò)板、平板計(jì)算機(jī)系統(tǒng)、游戲控制臺(tái)、電子書閱讀器或具有相似能力的其它設(shè)備的形式體現(xiàn)??蛻舳擞?jì)算設(shè)備106可包括顯示器119。顯示器119可包括例如一個(gè)或多個(gè)設(shè)備,諸如液晶顯示(lcd)顯示器、基于氣體等離子體的平板顯示器、有機(jī)發(fā)光二極管(oled)顯示器、lcd投影儀或其它類型的顯示設(shè)備等。
客戶端計(jì)算設(shè)備106可被配置為執(zhí)行各種應(yīng)用,例如客戶端應(yīng)用123和/或其它應(yīng)用。可在客戶端計(jì)算設(shè)備106中執(zhí)行客戶端應(yīng)用123,以例如訪問由計(jì)算環(huán)境103和/或其它服務(wù)器提供的網(wǎng)絡(luò)內(nèi)容,從而在顯示器119上呈現(xiàn)用戶界面133。為此,客戶端應(yīng)用123可以包括例如瀏覽器、專用應(yīng)用等,并且用戶界面133可以包括網(wǎng)絡(luò)頁面、應(yīng)用屏幕等??蛻舳擞?jì)算設(shè)備106可以被配置為執(zhí)行超出客戶端應(yīng)用123的應(yīng)用,諸如例如,電子郵件應(yīng)用、社交網(wǎng)絡(luò)應(yīng)用、字處理器、電子表格和/或其它應(yīng)用。
此外,一個(gè)或多個(gè)傳感器和其它數(shù)據(jù)饋源126可與協(xié)作服務(wù)器113或客戶端應(yīng)用123進(jìn)行網(wǎng)絡(luò)通信。傳感器和其它數(shù)據(jù)饋源可包括能夠生成或記錄數(shù)據(jù)并將數(shù)據(jù)傳輸?shù)絽f(xié)作服務(wù)器113的任何電子設(shè)備。傳感器和其它數(shù)據(jù)饋源126的示例包括加速計(jì)、溫度傳感器或恒溫器、視頻或網(wǎng)絡(luò)攝像機(jī)、麥克風(fēng)、噪聲傳感器、壓力傳感器、計(jì)量器、定時(shí)器、流量計(jì)、光傳感器、應(yīng)用或程序的輸出或結(jié)果和其它這樣的設(shè)備或程序。
最后,一個(gè)或多個(gè)其它計(jì)算環(huán)境129可以經(jīng)由網(wǎng)絡(luò)109連接到計(jì)算環(huán)境103、客戶端計(jì)算設(shè)備106和/或一個(gè)或多個(gè)傳感器和其它數(shù)據(jù)饋源126。在各種實(shí)施方式中,可以以與計(jì)算環(huán)境103的方式類似的方式配置其它計(jì)算環(huán)境129。在這樣的實(shí)施方式中,其它計(jì)算環(huán)境129將包括存儲(chǔ)在其它計(jì)算環(huán)境129中的一個(gè)或多個(gè)協(xié)作服務(wù)器113、一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)庫111和一個(gè)或多個(gè)信息對象116。在一些實(shí)施方式中,客戶端計(jì)算設(shè)備106可以被配置為與計(jì)算環(huán)境103或其它計(jì)算環(huán)境129中的協(xié)作服務(wù)器113一起工作。在各種實(shí)施方式中,協(xié)作服務(wù)器113可以能夠與存儲(chǔ)在其它計(jì)算環(huán)境129中的信息對象116進(jìn)行交互。
雖然圖1描繪了代表客戶端-服務(wù)器模型的網(wǎng)絡(luò)中心配置,但這并不排除其它配置。例如,在一些實(shí)施方式中,客戶端計(jì)算設(shè)備106可以是位于計(jì)算環(huán)境103內(nèi)的計(jì)算設(shè)備。在各種實(shí)施方式中,客戶端應(yīng)用123可連同協(xié)作服務(wù)器113一起位于計(jì)算環(huán)境103中,但客戶端應(yīng)用123可在客戶端計(jì)算設(shè)備106的顯示器119上傳遞或呈現(xiàn)用戶界面133。在其它實(shí)施方式中,協(xié)作服務(wù)器113、數(shù)據(jù)存儲(chǔ)庫111和客戶端應(yīng)用123都可位于單個(gè)計(jì)算設(shè)備內(nèi),例如客戶端計(jì)算設(shè)備106或在計(jì)算環(huán)境103內(nèi)的單個(gè)計(jì)算機(jī)內(nèi)。
接著,提供了聯(lián)網(wǎng)環(huán)境100的各種組件的操作的一般描述。首先,客戶端應(yīng)用123做出對一個(gè)或多個(gè)信息對象116或信息對象116的副本的請求。例如,客戶端應(yīng)用123可請求信息對象116用于在演示文稿、報(bào)告或類似的文檔中使用。作為另一示例,客戶端應(yīng)用123可以請求一個(gè)或多個(gè)信息對象116用于在數(shù)據(jù)分析中使用。
響應(yīng)于客戶端應(yīng)用123的請求,協(xié)作服務(wù)器113確定所請求的信息對象116是否存儲(chǔ)在數(shù)據(jù)存儲(chǔ)庫111內(nèi)。如果所請求的信息對象116位于數(shù)據(jù)存儲(chǔ)庫111內(nèi),則協(xié)作服務(wù)器將所請求的信息對象116提供給客戶端應(yīng)用123。如果所請求的信息對象116不位于數(shù)據(jù)存儲(chǔ)庫111內(nèi),則協(xié)作服務(wù)器113確定所請求的信息對象116是否位于其它計(jì)算環(huán)境129中的其它數(shù)據(jù)存儲(chǔ)庫111中。如果發(fā)現(xiàn)所請求的信息對象116位于其它計(jì)算環(huán)境129中的其它數(shù)據(jù)存儲(chǔ)庫111中,則協(xié)作服務(wù)器113可以從其它計(jì)算環(huán)境129請求信息對象116并將所請求的信息對象中繼到客戶端應(yīng)用123。然而,在一些實(shí)施方式中,協(xié)作服務(wù)器113可以替代地將所請求的信息對象116在其它計(jì)算環(huán)境129內(nèi)的位置提供給客戶端應(yīng)用123。在這樣的實(shí)施方式中,客戶端應(yīng)用123接著隨后將從其它計(jì)算環(huán)境129請求和/或獲取信息對象116。如果無法找到所請求的信息對象116,則協(xié)作服務(wù)器113向客戶端應(yīng)用123返回錯(cuò)誤或其它消息。在一些實(shí)施方式中,協(xié)作服務(wù)器113還可以將所請求的信息對象116鎖定在數(shù)據(jù)存儲(chǔ)庫111中,以防止其它客戶端應(yīng)用123操縱所請求的信息對象116,從而防止由信息對象116存儲(chǔ)的數(shù)據(jù)被同時(shí)修改并隨著時(shí)間的推移變?yōu)椴幌喔伞?/p>
一旦客戶端應(yīng)用123接收到所請求的信息對象116的副本,客戶端應(yīng)用123就使用或操縱所請求的信息對象116。對信息對象116的使用和/或操縱可以是程序化的或可以是用戶干預(yù)的結(jié)果。
例如,客戶端應(yīng)用123可以是狀態(tài)監(jiān)控器或類似的應(yīng)用。在這樣的實(shí)施方式中,客戶端應(yīng)用123可以請求一個(gè)或多個(gè)信息對象116,分析所請求的信息對象116,以及創(chuàng)建或修改表示對所請求的信息對象116進(jìn)行的分析的結(jié)果的第三信息對象116。在這樣的實(shí)施方式中,客戶端應(yīng)用123還可以在客戶端計(jì)算設(shè)備106的顯示器119上的用戶界面133內(nèi)呈現(xiàn)通知。
作為另一示例,客戶端應(yīng)用123可以是演示應(yīng)用或類似的應(yīng)用。在這樣的實(shí)施方式中,客戶端應(yīng)用123可以允許用戶將一個(gè)或多個(gè)信息對象116作為演示的部分在用戶界面133內(nèi)顯示,使用用戶界面133來操縱一個(gè)或多個(gè)信息對象116,并創(chuàng)建表示兩個(gè)不相關(guān)的信息對象116之間的新關(guān)系或新數(shù)據(jù)的新的信息對象116。在2014年3月13日提交的題為“visualizationinterfaceforinformationobjectsystem”的相關(guān)美國專利申請14/208,346中進(jìn)一步詳細(xì)描述了這樣的實(shí)施方式,并且該專利申請通過引用以其整體并入本文。
然而,在其它實(shí)施方式中,客戶端應(yīng)用123可以替代地從協(xié)作服務(wù)器113請求可供客戶端應(yīng)用123使用的信息對象116的列表。信息對象116的列表可以包括可由客戶端應(yīng)用123使用或操縱的每個(gè)信息對象116的所有標(biāo)識(shí)符,以及存儲(chǔ)在信息對象116中的數(shù)據(jù)類型和/或由信息對象116提供的函數(shù),該函數(shù)用于操縱信息對象116或在信息對象116中查詢存儲(chǔ)在信息對象116內(nèi)和/或由信息對象116封裝的數(shù)據(jù)。
響應(yīng)于客戶端應(yīng)用123的請求,協(xié)作服務(wù)器113確定所請求的信息對象116是否存儲(chǔ)在數(shù)據(jù)存儲(chǔ)庫111內(nèi)。如果所請求的信息對象116位于數(shù)據(jù)存儲(chǔ)庫111內(nèi),則協(xié)作服務(wù)器113將所請求的信息對象116的列表提供給客戶端應(yīng)用123。如果所請求的信息對象116不位于數(shù)據(jù)存儲(chǔ)庫111內(nèi),則協(xié)作服務(wù)器113確定所請求的信息對象116是否位于其它計(jì)算環(huán)境129中的其它數(shù)據(jù)存儲(chǔ)庫111中。如果發(fā)現(xiàn)所請求的信息對象116位于其它計(jì)算環(huán)境129中的其它數(shù)據(jù)存儲(chǔ)庫111中,則協(xié)作服務(wù)器113可以從其它計(jì)算環(huán)境129請求信息對象116,并將它們包括在提供給客戶端應(yīng)用123的信息對象116的列表中。然而,在一些實(shí)施方式中,協(xié)作服務(wù)器113可以替代地將所請求的信息對象116在其它計(jì)算環(huán)境129內(nèi)的位置提供給客戶端應(yīng)用123。在這樣的實(shí)施方式中,客戶端應(yīng)用123接著隨后將從其它計(jì)算環(huán)境129請求另一個(gè)信息對象116的列表。如果無法找到所請求的信息對象116,則協(xié)作服務(wù)器113向客戶端應(yīng)用123返回錯(cuò)誤或其它消息。
在接收到信息對象116的列表之后,客戶端應(yīng)用123然后可以調(diào)用由信息對象116提供的一個(gè)或多個(gè)函數(shù)。例如,客戶端應(yīng)用123可以調(diào)用函數(shù)以更新存儲(chǔ)在信息對象116中或由信息對象116封裝的信息,獲取與特定信息對象116相關(guān)的信息對象116的列表,或者調(diào)用由信息對象116提供的其它函數(shù),如將在本文中進(jìn)一步描述的。
在一些實(shí)施方式中,客戶端應(yīng)用123可在顯示器119上的用戶界面133內(nèi)呈現(xiàn)信息對象116中的一個(gè)或多個(gè)的實(shí)施方式。例如,客戶端應(yīng)用123可以呈現(xiàn)多個(gè)信息對象116并說明不同的信息對象116之間的關(guān)系,以向用戶提供由各種信息對象116表示的數(shù)據(jù)的映射??蛻舳藨?yīng)用123還可以為用戶提供使用用戶界面133來探索信息對象116之間的關(guān)系的能力。在2014年3月13日提交的題為“visualizationinterfaceforinformationobjectsystem”的相關(guān)美國專利申請14/208,346中進(jìn)一步詳細(xì)描述了這樣的實(shí)施方式,并且該專利申請通過引用以其整體并入本文。
在一些實(shí)施方式中,協(xié)作服務(wù)器113還可以從傳感器和其它數(shù)據(jù)饋源126接收數(shù)據(jù)。傳感器和其它數(shù)據(jù)饋源126可包括能夠生成或記錄數(shù)據(jù)并將數(shù)據(jù)傳輸?shù)絽f(xié)作服務(wù)器113的任何電子設(shè)備。傳感器和其它數(shù)據(jù)饋源126的示例包括加速計(jì)、溫度傳感器或恒溫器、視頻或網(wǎng)絡(luò)攝像機(jī)、麥克風(fēng)、噪聲傳感器、壓力傳感器、計(jì)量器、定時(shí)器、流量計(jì)、光傳感器、應(yīng)用或程序的輸出或結(jié)果和其它這樣的設(shè)備或程序。
從傳感器和其它數(shù)據(jù)饋源126接收的數(shù)據(jù)可以包括要由協(xié)作服務(wù)器113驗(yàn)證的信息對象116和/或要由協(xié)作服務(wù)器113存儲(chǔ)在數(shù)據(jù)存儲(chǔ)庫111中的信息對象116。從傳感器和其它數(shù)據(jù)饋源126接收的數(shù)據(jù)還可以包括原始和/或非封裝數(shù)據(jù),協(xié)作服務(wù)器113將原始和/或非封裝數(shù)據(jù)轉(zhuǎn)換成或包括在存儲(chǔ)在數(shù)據(jù)存儲(chǔ)庫111中的信息對象116中。例如,連接到協(xié)作服務(wù)器113的制造機(jī)器可以提供一個(gè)或多個(gè)信息對象116,該一個(gè)或多個(gè)信息對象116封裝并表示制造機(jī)器、與制造機(jī)器相關(guān)的狀態(tài)更新以及類似的數(shù)據(jù)。在一些實(shí)施方式中,協(xié)作服務(wù)器113、客戶端應(yīng)用123或能夠訪問信息對象116的其它應(yīng)用可以能夠通過操縱與傳感器和其它數(shù)據(jù)饋源相關(guān)的信息對象116來向傳感器和其它數(shù)據(jù)饋源126發(fā)出命令。例如,客戶端應(yīng)用123可以能夠通過由表示制造機(jī)器的信息對象116提供的函數(shù)來向以上描述的示例中的制造機(jī)器發(fā)出命令。
接著參考圖2,示出了信息對象116的數(shù)據(jù)結(jié)構(gòu)的描繪。每個(gè)信息對象116具有至少一個(gè)唯一標(biāo)識(shí)符203,其唯一地識(shí)別在數(shù)據(jù)存儲(chǔ)庫111(圖1)內(nèi)的信息對象116的特定實(shí)例。每個(gè)信息對象116還包括內(nèi)容206。包括在信息對象116的內(nèi)容206中的可以是一個(gè)或多個(gè)信息對象引用,例如信息對象引用209a到信息對象引用209n。信息對象116的內(nèi)容206也可包括描述信息對象116的屬性213。此外,信息對象116可包括形式數(shù)據(jù)216和多個(gè)函數(shù)219。
唯一標(biāo)識(shí)符203可以是唯一的字母數(shù)字號(hào)碼,例如密碼散列函數(shù)的結(jié)果,或可以是當(dāng)信息對象116被創(chuàng)建時(shí)由協(xié)作服務(wù)器113(圖1)生成的唯一號(hào)碼。例如,協(xié)作服務(wù)器113可將密碼散列函數(shù)例如安全散列算法的一種版本應(yīng)用于信息對象116,以生成唯一標(biāo)識(shí)符203。在另一示例中,協(xié)作服務(wù)器113可在信息對象116被創(chuàng)建時(shí)使計(jì)數(shù)器遞增且然后將唯一標(biāo)識(shí)符203設(shè)置為等于計(jì)數(shù)器的值。在一些實(shí)施方式中,這兩種方法可被組合以最小化來自密碼散列函數(shù)的沖突的風(fēng)險(xiǎn)或由整數(shù)溢出錯(cuò)誤產(chǎn)生的重復(fù)計(jì)數(shù)器值。例如,可以使計(jì)數(shù)器遞增,并且值被加到密碼散列函數(shù)的結(jié)果前或附加到密碼散列函數(shù)的結(jié)果以創(chuàng)建唯一標(biāo)識(shí)符203。
內(nèi)容206對應(yīng)于由信息對象116表示的數(shù)據(jù),該信息對象116可包括一個(gè)或多個(gè)信息對象引用209a...n和/或一個(gè)或多個(gè)屬性213。每個(gè)信息對象引用209a...n指向或鏈接到相關(guān)信息對象223。相關(guān)信息對象223可對應(yīng)于作為信息對象116的組成部分的信息或以某種方式與信息對象223相關(guān)的信息。例如,表示國家“俄羅斯”的信息對象116可具有信息對象引用209,該信息對象引用209將信息對象116鏈接到與城市“莫斯科”對應(yīng)的相關(guān)信息對象223。表示“俄羅斯”的信息對象116也可包括對表示國家的列表的相關(guān)信息對象223的第二信息對象引用209和對表示“共產(chǎn)主義”的相關(guān)信息對象223的第三信息對象引用209。
信息對象116的屬性213表示存儲(chǔ)在信息對象116內(nèi)的數(shù)據(jù),其可以或可以不直接呈現(xiàn)給用戶作為主要內(nèi)容。信息對象116的屬性213可包括例如最初創(chuàng)建信息對象116的用戶的用戶名、修改信息對象116的每個(gè)用戶的用戶名、記錄信息對象116的創(chuàng)建和/或信息對象116的修改的時(shí)間戳、由信息對象116支持的供協(xié)作服務(wù)器113(圖1)或客戶端應(yīng)用123(圖1)使用的界面標(biāo)準(zhǔn)的版本、由信息對象116表示的數(shù)據(jù)的語言和/或文化標(biāo)識(shí)以及其它這樣的數(shù)據(jù)。在一些實(shí)例中,屬性213本身可由其它信息對象116表示。例如,信息對象116的創(chuàng)建者的用戶名可由表示用戶帳戶的信息對象116表示。
形式數(shù)據(jù)216對應(yīng)于在顯示器119(圖1)上表示或顯示信息對象116所必需的數(shù)據(jù)。例如,形式數(shù)據(jù)216可以表示在顯示器119上的信息對象116的尺寸、在顯示器119上的信息對象116的位置、信息對象116的透明度值、是否相對于相關(guān)信息對象223中的各個(gè)相關(guān)信息對象在顯示器119上覆蓋在信息對象上面或置于信息對象下面,以及類似的數(shù)據(jù)或值。在一些實(shí)例中,形式數(shù)據(jù)216還可以指定在顯示器119上的相關(guān)信息對象223相對于信息對象116的默認(rèn)位置。更一般地,形式數(shù)據(jù)216描述如何在客戶端計(jì)算設(shè)備106的顯示器119上呈現(xiàn)信息對象116和與信息對象116相關(guān)的用戶界面選項(xiàng),諸如菜單、菜單選項(xiàng)和其它用戶界面元素。對于諸如其中第一信息對象116封裝或鏈接到一個(gè)或多個(gè)子級(jí)或同級(jí)信息對象116的多級(jí)封裝,可以在一個(gè)信息對象116或多個(gè)信息對象116上使用多組形式數(shù)據(jù)216,每個(gè)信息對象116具有表示信息封裝一個(gè)級(jí)別或類似關(guān)系的一組形式數(shù)據(jù)216。
函數(shù)219對應(yīng)于可編程界面、方法或類似的機(jī)制,通過這些可編程界面、方法或類似的機(jī)制,客戶端應(yīng)用123(圖1)或協(xié)作服務(wù)器113可與信息對象116交互或以其它方式操縱信息對象116。例如,函數(shù)219可包括用于設(shè)置信息對象116在顯示器119上可見或不可見的函數(shù)、用于編輯或以其它方式修改信息對象116的函數(shù)、用于創(chuàng)建新的信息對象引用209或以其它方式將信息對象116鏈接到相關(guān)信息對象223的函數(shù)。函數(shù)219還可以包括用于將數(shù)據(jù)導(dǎo)入到信息對象116中或?qū)?shù)據(jù)從信息對象116導(dǎo)出到諸如應(yīng)用指定的數(shù)據(jù)文件的另一格式中的函數(shù)。在一些實(shí)施方式中,函數(shù)219還可以允許數(shù)據(jù)被添加到信息對象116和/或從信息對象116移除,以及允許包含在信息對象116內(nèi)的數(shù)據(jù)被修改。在各種實(shí)施方式中,函數(shù)219還可以被客戶端應(yīng)用123或協(xié)作服務(wù)器113調(diào)用或使用,以根據(jù)相應(yīng)的信息對象116內(nèi)的形式數(shù)據(jù)216來將信息對象116呈現(xiàn)在客戶端計(jì)算設(shè)備106的顯示器119上。
在一些實(shí)施方式中,一個(gè)或多個(gè)函數(shù)219可由信息對象116提供,以允許對包含在信息對象116內(nèi)的數(shù)據(jù)的分析。例如,表示在常規(guī)棒球賽季期間的棒球隊(duì)在每場棒球比賽的出席人數(shù)的信息對象116可以提供算術(shù)函數(shù)219,該算術(shù)函數(shù)219提供在常規(guī)棒球賽季期間棒球隊(duì)的平均出席人數(shù)和中值出席人數(shù)。根據(jù)存儲(chǔ)在信息對象116中的數(shù)據(jù)和由本文所述的各種實(shí)施方式的各種實(shí)現(xiàn)提供的函數(shù)219,更復(fù)雜的數(shù)據(jù)分析函數(shù)可由單獨(dú)的信息對象116提供。
信息對象116或相關(guān)信息對象223也可具有與由信息對象表示的用戶界面元素對應(yīng)的單獨(dú)的信息對象引用209,例如導(dǎo)航信息對象226、菜單區(qū)域信息對象229和客戶端設(shè)備信息對象233。例如,導(dǎo)航信息對象226可描述或定義當(dāng)前選擇的信息對象116相對于其它信息對象116的關(guān)系或結(jié)構(gòu)。在一些實(shí)施方式中,菜單區(qū)域信息對象229可描述或定義各種菜單或其它用戶界面133(圖1)的組成部分,該組成部分可用于與信息對象116交互,例如編輯、拷貝或刪除信息116。在一些實(shí)施方式中,菜單區(qū)域信息對象229也可提供創(chuàng)建新的信息對象116的功能。此外,在一些實(shí)施方式中,客戶端設(shè)備信息對象233可包含用戶和系統(tǒng)范圍的設(shè)置,例如音量、顯示亮度、網(wǎng)絡(luò)連接設(shè)置和其它設(shè)置。
接下來參考圖3,示出了根據(jù)各種實(shí)施方式的提供協(xié)作服務(wù)器113的一部分的操作的一個(gè)示例的流程圖。應(yīng)理解的是,圖3的流程圖僅提供許多不同類型的功能布置的示例,該示例可被采用以實(shí)現(xiàn)如本文所述的協(xié)作服務(wù)器113的部分的操作。作為可選方案,圖3的流程圖可被視為描繪根據(jù)一個(gè)或多個(gè)實(shí)施方式的在計(jì)算環(huán)境103(圖1)中實(shí)現(xiàn)的方法的要素的示例。
從框303開始,協(xié)作服務(wù)器113接收創(chuàng)建信息對象116的請求和要存儲(chǔ)在新創(chuàng)建的信息對象116中的數(shù)據(jù)。該請求可接收自許多源,諸如與協(xié)作服務(wù)器113交互的客戶端應(yīng)用123(圖1)、周期性地向協(xié)作服務(wù)器113發(fā)送數(shù)據(jù)的傳感器或其它數(shù)據(jù)饋源126(圖1)或其它這樣的源。
接下來進(jìn)行到框306,協(xié)作服務(wù)器113確定創(chuàng)建信息對象116的請求是否有效。例如,協(xié)作服務(wù)器113可以確定請求實(shí)體是被授權(quán)還是具有創(chuàng)建信息對象116的權(quán)限。協(xié)作服務(wù)器113還可以驗(yàn)證所發(fā)送的數(shù)據(jù)對于協(xié)作服務(wù)器113已被請求創(chuàng)建的信息對象116類型是有效數(shù)據(jù)。例如,如果已經(jīng)請求協(xié)作服務(wù)器113創(chuàng)建用于存儲(chǔ)視頻數(shù)據(jù)的信息對象116,則協(xié)作服務(wù)器113可以檢查以確定數(shù)據(jù)確實(shí)是視頻數(shù)據(jù),而不是某種其它類型的數(shù)據(jù)。如果請求是無效的,則執(zhí)行進(jìn)行到框309。否則,執(zhí)行進(jìn)行到框313。
移動(dòng)到框309,協(xié)作服務(wù)器113向請求者返回錯(cuò)誤消息、錯(cuò)誤代碼或表示錯(cuò)誤的信息對象116。執(zhí)行隨后結(jié)束。
接下來參考框313,協(xié)作服務(wù)器113創(chuàng)建信息對象116。協(xié)作服務(wù)器113可以在計(jì)算環(huán)境103(圖1)中分配存儲(chǔ)器以存儲(chǔ)和/或表示信息對象116及其相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。在需要空或“空白”信息對象116的那些實(shí)施方式中,執(zhí)行進(jìn)行到框316。然而,在響應(yīng)于存儲(chǔ)信息的請求而創(chuàng)建信息對象116的那些實(shí)施方式中,例如當(dāng)協(xié)作服務(wù)器113從客戶端應(yīng)用123或傳感器和/或其它數(shù)據(jù)饋源126接收數(shù)據(jù)時(shí),該信息被復(fù)制或放置到信息對象116的內(nèi)容206(圖2)中并且適于信息對象219的形式數(shù)據(jù)216和函數(shù)219被分配給信息對象116。例如,在視頻數(shù)據(jù)將被保存在新創(chuàng)建的信息對象116內(nèi)的情況下,協(xié)作服務(wù)器113還可以向信息對象分配適當(dāng)?shù)男问綌?shù)據(jù)216和函數(shù)219,以用于查看、修改和/或以其它方式交互或操縱信息對象116內(nèi)的視頻數(shù)據(jù)。
進(jìn)行到框316,協(xié)作服務(wù)器113生成用于信息對象116的唯一標(biāo)識(shí)符203(圖2),并將唯一標(biāo)識(shí)符203分配給信息對象116??梢允褂枚喾N方法中的任何一種或多種來生成唯一標(biāo)識(shí)符203。例如,唯一標(biāo)識(shí)符203可以是數(shù)字序列內(nèi)的數(shù)字,例如將使用計(jì)數(shù)器或類似的跟蹤機(jī)制來生成。在這樣的實(shí)施方式中,唯一標(biāo)識(shí)符203將等于計(jì)數(shù)器的值。在分配唯一標(biāo)識(shí)符203之后,計(jì)數(shù)器然后將被增加以用于在創(chuàng)建后續(xù)的信息對象116中使用。
唯一標(biāo)識(shí)符203還可以使用一個(gè)或多個(gè)散列函數(shù)諸如消息摘要算法的各種版本(例如,md4、md5和類似算法)、安全散列算法(例如,sha-1、sha-3和類似的算法)、race原始完整性校驗(yàn)消息摘要(ripemd)算法和其它這樣的方法來生成。在這樣的實(shí)施方式中,內(nèi)容206(圖2)或其他數(shù)據(jù)可被用作散列函數(shù)的輸入,并且散列函數(shù)的結(jié)果可被用作唯一標(biāo)識(shí)符203。也可以使用其它方法來生成唯一標(biāo)識(shí)符203。
移動(dòng)到框319,協(xié)作服務(wù)器113將信息對象116保存到數(shù)據(jù)存儲(chǔ)庫111(圖1)。將信息對象116保存到數(shù)據(jù)存儲(chǔ)庫111可涉及將信息對象116寫入存儲(chǔ)器、磁盤或其它這樣的存儲(chǔ)介質(zhì)。在一些實(shí)施方式中,信息對象116可被保存到數(shù)據(jù)庫或類似系統(tǒng)。在這樣的實(shí)施方式中,例如當(dāng)二進(jìn)制數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫或其它這樣的數(shù)據(jù)庫內(nèi)時(shí),信息對象116可作為二進(jìn)制對象被寫入到數(shù)據(jù)庫。在將信息對象116保存到數(shù)據(jù)存儲(chǔ)庫111之后,執(zhí)行結(jié)束。
接下來參考圖4,示出了根據(jù)各種實(shí)施方式的提供協(xié)作服務(wù)器113的一部分的操作的一個(gè)示例的流程圖。應(yīng)理解的是,圖3的流程圖僅提供可被采用以實(shí)現(xiàn)如本文所述的協(xié)作服務(wù)器113的部分的操作的許多不同類型的功能布置的示例。作為可選方案,圖3的流程圖可被視為描繪根據(jù)一個(gè)或多個(gè)實(shí)施方式的在計(jì)算環(huán)境103(圖1)中實(shí)現(xiàn)的方法的要素的示例。
從框403開始,協(xié)作服務(wù)器113接收修改信息對象116的請求以及要添加到信息對象116、從信息對象116移除和/或在信息對象116內(nèi)修改的數(shù)據(jù)。該請求可接收自許多源,諸如與協(xié)作服務(wù)器113交互的客戶端應(yīng)用123(圖1)、周期性地向協(xié)作服務(wù)器113發(fā)送數(shù)據(jù)的傳感器或其它數(shù)據(jù)饋源126(圖1)或其它這樣的源。
接著進(jìn)行到框406,協(xié)作服務(wù)器113確定修改信息對象116的請求是否有效。例如,協(xié)作服務(wù)器113可以確定請求實(shí)體是被授權(quán)還是具有修改信息對象116的權(quán)限。協(xié)作服務(wù)器113還可以驗(yàn)證所發(fā)送的數(shù)據(jù)是協(xié)作服務(wù)器113已被請求修改的信息對象116的類型的有效數(shù)據(jù)。例如,如果協(xié)作服務(wù)器113已請求修改用于存儲(chǔ)視頻數(shù)據(jù)的信息對象116,則協(xié)作服務(wù)器113可以檢查以確定數(shù)據(jù)確實(shí)是視頻數(shù)據(jù)或適當(dāng)?shù)脑獢?shù)據(jù),而不是某種其它類型的數(shù)據(jù)。如果請求是無效的,則執(zhí)行進(jìn)行到框409。否則,執(zhí)行進(jìn)行到框413。
移動(dòng)到框409,協(xié)作服務(wù)器113向請求者返回錯(cuò)誤消息、錯(cuò)誤代碼或表示錯(cuò)誤的信息對象116。執(zhí)行隨后結(jié)束。
接下來參考框413,協(xié)作服務(wù)器113鎖定要修改的信息對象116。鎖定信息對象116可以包括使用一個(gè)或多個(gè)控制機(jī)制來防止其它進(jìn)程、應(yīng)用、機(jī)器和/或用戶通過協(xié)作服務(wù)器113同時(shí)操縱或修改信息對象116。例如,協(xié)作服務(wù)器113可以使用令牌、互斥體、自旋鎖或其它這樣的機(jī)制來防止其它進(jìn)程、應(yīng)用、機(jī)器和/或用戶同時(shí)操縱或修改信息對象116。如果信息對象116已被鎖定以進(jìn)行修改,則協(xié)作服務(wù)器113將暫停執(zhí)行直到該信息對象116被解鎖。否則,執(zhí)行繼續(xù)到框416。
進(jìn)行到框416,協(xié)作服務(wù)器113從數(shù)據(jù)存儲(chǔ)庫111(圖1)獲取要修改的信息對象116,或以其它方式訪問信息對象116。例如,協(xié)作服務(wù)器113可以使用在請求中指定的信息對象116的唯一標(biāo)識(shí)符203(圖2)來修改信息對象116,以便定位、識(shí)別和/或從數(shù)據(jù)存儲(chǔ)庫111獲取信息對象116。協(xié)作服務(wù)器113然后繼續(xù)進(jìn)行修改信息對象116的內(nèi)容206(圖2)、信息對象引用209a-n(圖2)、屬性213(圖2)、形式數(shù)據(jù)216(圖2)和/或函數(shù)219(圖2),使得信息對象116將反映所請求的改變和/或修改。
移動(dòng)到框419,協(xié)作服務(wù)器113解鎖信息對象116,使得其它進(jìn)程、應(yīng)用、機(jī)器和/或用戶將能夠修改或以其它方式使用信息對象116。解鎖信息對象116可以包括釋放令牌、互斥體、自旋鎖或其它這樣的機(jī)制。執(zhí)行隨后結(jié)束。
接下來參考圖5,示出了根據(jù)各種實(shí)施方式的提供協(xié)作服務(wù)器113的一部分的操作的一個(gè)示例的流程圖。應(yīng)理解的是,圖3的流程圖僅提供可被采用以實(shí)現(xiàn)如本文所述的協(xié)作服務(wù)器113的部分的操作的許多不同類型的功能布置的示例。作為可選方案,圖3的流程圖可被視為描繪根據(jù)一個(gè)或多個(gè)實(shí)施方式的在計(jì)算環(huán)境103(圖1)中實(shí)現(xiàn)的方法的要素的示例。
從框503開始,協(xié)作服務(wù)器113確定要導(dǎo)入的文件的類型??梢允褂脦追N方法中的一種或多種來確定文件的類型。例如,可以通過檢查文件的名稱是否包括與已知文件類型匹配的文件擴(kuò)展名來確定文件的類型。在其它實(shí)施方式中,協(xié)作服務(wù)器113可以檢查文件的前幾個(gè)字節(jié)或前幾千字節(jié),以確定文件數(shù)據(jù)是否包括與已知文件類型匹配的文件頭或標(biāo)識(shí)符值。在其它實(shí)施方式中,協(xié)作服務(wù)器113可以基于其它數(shù)據(jù)來識(shí)別要導(dǎo)入的文件的類型。例如,客戶端應(yīng)用123(圖1)的用戶可能在將文件發(fā)送到協(xié)作服務(wù)器113以導(dǎo)入時(shí)已經(jīng)識(shí)別文件類型,或者傳感器或其它數(shù)據(jù)饋源126可能類似地在導(dǎo)入被發(fā)送到協(xié)作服務(wù)器113的文件的請求中已經(jīng)包括文件類型的標(biāo)識(shí)。除了或代替以上描述的示例方法,可以使用用于識(shí)別文件類型的其它方法。一些實(shí)施方式可以使用以上明確的方法的一個(gè)或多個(gè)組合來增加文件類型的識(shí)別的準(zhǔn)確性和/或可靠性。
移動(dòng)到框506,協(xié)作服務(wù)器113確定是否存在用于為所接收的文件的類型創(chuàng)建信息對象116的適當(dāng)?shù)臄?shù)據(jù)過濾器117(圖1)。如果不存在相應(yīng)的數(shù)據(jù)過濾器117,則執(zhí)行進(jìn)行到框509。如果針對所接收的文件的類型找到相應(yīng)的數(shù)據(jù)過濾器117,則執(zhí)行相反進(jìn)行到框513。
進(jìn)行到框509,協(xié)作服務(wù)器113創(chuàng)建基本信息對象116并將該文件插入到信息對象116中。因此,基本信息對象116用作封裝器,該封裝器允許接收到的文件存儲(chǔ)在數(shù)據(jù)存儲(chǔ)庫111中并且響應(yīng)于對協(xié)作服務(wù)器113的關(guān)于文件或文件中的數(shù)據(jù)的未來請求而可用。所創(chuàng)建的信息對象116被認(rèn)為是基本信息對象116,只要信息對象116可以不包括任何屬性213(圖2)、形式數(shù)據(jù)216(圖2)或函數(shù)219(圖2),該任何屬性213(圖2)、形式數(shù)據(jù)216(圖2)或函數(shù)219(圖2)將被包括在特定類型的文件或數(shù)據(jù)的信息對象116中。例如,為位圖圖像文件創(chuàng)建的信息對象116可以包括與由位圖圖像文件、位圖圖像文件中使用的特定位圖編碼表示的圖片的尺寸相關(guān)的屬性213以及其它圖像特定的屬性213。相反,基本信息對象116可以具有將文件存儲(chǔ)在信息對象116內(nèi)所必需的絕對最少屬性213。在將文件存儲(chǔ)在基本信息對象116中之后,執(zhí)行隨后結(jié)束。
接下來參考框513,協(xié)作服務(wù)器113根據(jù)所識(shí)別的數(shù)據(jù)過濾器117中規(guī)定的要求和/或規(guī)則來創(chuàng)建信息對象116。這包括在存儲(chǔ)器中保留用于信息對象116的內(nèi)容206(圖2)的足夠的空間,并且在信息對象116內(nèi)包括由數(shù)據(jù)過濾器117指定的函數(shù)219和形式數(shù)據(jù)216。此時(shí),唯一標(biāo)識(shí)符203(圖2)也被分配給新創(chuàng)建的信息對象116。此時(shí),還創(chuàng)建了對相關(guān)信息對象223(圖2)的任何信息對象引用209(圖2)。
移動(dòng)到框516,協(xié)作服務(wù)器113檢查和/或解析文件以從由數(shù)據(jù)過濾器117指定的文件中提取數(shù)據(jù)。然后,所提取的數(shù)據(jù)根據(jù)數(shù)據(jù)過濾器117要求而被復(fù)制和/或插入到信息對象116的內(nèi)容206中。執(zhí)行隨后結(jié)束。
還應(yīng)該注意的是,雖然在從文件創(chuàng)建信息對象116的上下文中討論了上述操作,但類似的操作將適用于從非文件數(shù)據(jù)創(chuàng)建信息對象116。例如,可以使用與以上描述的那些方法類似的方法基于諸如音頻流或視頻流的數(shù)據(jù)流來創(chuàng)建一個(gè)或多個(gè)信息對象116。
接下來參考圖6,示出了根據(jù)各種實(shí)施方式的提供協(xié)作服務(wù)器113的一部分的操作的一個(gè)示例的流程圖。應(yīng)理解的是,圖3的流程圖僅提供可被采用以實(shí)現(xiàn)如本文所述的協(xié)作服務(wù)器113的部分的操作的許多不同類型的功能布置的示例。作為可選方案,圖3的流程圖可被視為描繪根據(jù)一個(gè)或多個(gè)實(shí)施方式的在計(jì)算環(huán)境103(圖1)中實(shí)現(xiàn)的方法的要素的示例。
從框603開始,協(xié)作服務(wù)器113接收將信息對象116導(dǎo)出到文件的請求。該請求可以識(shí)別要導(dǎo)出的文件的類型,或者信息對象116可以指定信息對象116可被導(dǎo)出到的文件的類型。例如,表示音頻信息的信息對象116可以指定由信息對象表示的音頻信息可被導(dǎo)出到特定格式和/或文件類型。該請求可以接收自一個(gè)或多個(gè)源,包括客戶端應(yīng)用123(圖1)、傳感器或其它數(shù)據(jù)饋源126(圖1)或一些其它源。
移動(dòng)到框606,協(xié)作服務(wù)器113確定是否存在數(shù)據(jù)過濾器117,該數(shù)據(jù)過濾器117用于信息對象116將被導(dǎo)出到的文件的相應(yīng)文件類型。如果不存在相應(yīng)的數(shù)據(jù)過濾器117,則執(zhí)行進(jìn)行到框609。如果針對所接收的文件的類型找到相應(yīng)的數(shù)據(jù)過濾器117,則執(zhí)行相反進(jìn)行到框613。
接下來參考框609,協(xié)作服務(wù)器113向請求者返回錯(cuò)誤消息、錯(cuò)誤代碼或表示錯(cuò)誤的信息對象116。執(zhí)行隨后結(jié)束。
繼續(xù)進(jìn)行到框613,協(xié)作服務(wù)器113根據(jù)數(shù)據(jù)過濾器117的規(guī)格將信息對象的內(nèi)容206寫入文件。例如,表示圖像的信息對象116可使存儲(chǔ)在信息對象116的內(nèi)容206中的圖像數(shù)據(jù)被寫入到位圖文件,但是諸如形式數(shù)據(jù)216或函數(shù)219的數(shù)據(jù)將不被寫入位圖文件。執(zhí)行隨后結(jié)束。
接下來參考圖7,示出了根據(jù)各種實(shí)施方式的提供協(xié)作服務(wù)器113的一部分的操作的一個(gè)示例的流程圖。應(yīng)理解的是,圖3的流程圖僅提供可被采用以實(shí)現(xiàn)如本文所述的協(xié)作服務(wù)器113的部分的操作的許多不同類型的功能布置的示例。作為可選方案,圖3的流程圖可被視為描繪根據(jù)一個(gè)或多個(gè)實(shí)施方式的在計(jì)算環(huán)境103(圖1)中實(shí)現(xiàn)的方法的要素的示例。
從框703開始,協(xié)作服務(wù)器113驗(yàn)證從客戶端應(yīng)用123(圖1)接收的對表示傳感器或其它數(shù)據(jù)饋源126(圖1)的信息對象116(圖1)的請求。為了驗(yàn)證請求,協(xié)作服務(wù)器113可以確定客戶端應(yīng)用123是否具有訪問所請求的信息對象116的權(quán)限、確定所請求的信息對象116是否存在、確定請求是否被正確地格式化和/或做出其它這樣的確定。如果請求被確定為無效,則執(zhí)行結(jié)束。否則,執(zhí)行進(jìn)行到框706。
進(jìn)行到框706,協(xié)作服務(wù)器113將信息對象116提供給客戶端應(yīng)用123。例如,協(xié)作服務(wù)器113可以向客戶端應(yīng)用123提供信息對象116的副本,以使客戶端應(yīng)用123在客戶端計(jì)算設(shè)備106(圖1)上進(jìn)行本地操作。在這樣的實(shí)施方式中,協(xié)作服務(wù)器113可以鎖定信息對象116,使得其它客戶端應(yīng)用123不能操縱信息對象116,以便防止信息對象116由于不同客戶端應(yīng)用123的多次和可能沖突的修改而進(jìn)入非相干狀態(tài)。在其它實(shí)施方式中,協(xié)作服務(wù)器113可以將信息對象116的一個(gè)或多個(gè)函數(shù)219(圖2)和/或信息對象116的內(nèi)容206暴露(expose)給客戶端應(yīng)用123。
移動(dòng)到框709,協(xié)作服務(wù)器113從客戶端應(yīng)用123接收要由傳感器或其它數(shù)據(jù)饋源126執(zhí)行的一個(gè)或多個(gè)命令。在協(xié)作服務(wù)器113先前已經(jīng)將信息對象116的副本提供給客戶端應(yīng)用123的那些實(shí)施方式中,當(dāng)客戶端應(yīng)用123將信息對象116的更新版本返回到協(xié)作服務(wù)器113時(shí),可以接收命令。對信息對象116的改變將表示由傳感器或其它數(shù)據(jù)饋源126執(zhí)行的命令。在協(xié)作服務(wù)器113暴露信息對象116的一個(gè)或多個(gè)函數(shù)219和/或內(nèi)容206的那些實(shí)施方式中,客戶端應(yīng)用123可以提供由協(xié)作服務(wù)器113在信息對象116上調(diào)用或執(zhí)行的函數(shù)219的列表或一系列的函數(shù)219。例如,客戶端應(yīng)用123可以使用遠(yuǎn)程過程調(diào)用(rpc)或類似的機(jī)制來調(diào)用信息對象116的特定函數(shù)219或一系列函數(shù)219。
接著參考框713,協(xié)作服務(wù)器113確定從客戶端應(yīng)用123接收的命令是否是有效。例如,協(xié)作服務(wù)器113可以確定客戶端應(yīng)用123是否已經(jīng)向由信息對象116提供的任何函數(shù)219提供適當(dāng)?shù)淖宰兞俊⒖蛻舳藨?yīng)用123是否具有調(diào)入或調(diào)用所使用的特定函數(shù)219的權(quán)限,和/或其它類似的確定。如果協(xié)作服務(wù)器113確定命令中的一個(gè)或多個(gè)是無效的,則執(zhí)行結(jié)束。如果協(xié)作服務(wù)器113確定從客戶端應(yīng)用123接收的所有命令是有效的,則執(zhí)行進(jìn)行到框716。
進(jìn)行到框716,協(xié)作服務(wù)器113執(zhí)行從客戶端應(yīng)用123接收的命令,并將任何必要的指令中繼到由信息對象116表示的傳感器或其它數(shù)據(jù)饋源126。例如,協(xié)作服務(wù)器113可以執(zhí)行必要的函數(shù)219以更新存儲(chǔ)在數(shù)據(jù)存儲(chǔ)庫111中的信息對象116的內(nèi)容206。在一個(gè)或多個(gè)命令對應(yīng)于指示或以其它方式要求傳感器或其它數(shù)據(jù)饋源126執(zhí)行特定動(dòng)作的一個(gè)或多個(gè)函數(shù)219的程度上,協(xié)作服務(wù)器113將任何所需的指令或命令中繼到傳感器或其它數(shù)據(jù)饋源126。
例如,客戶端應(yīng)用123可能已經(jīng)正確地調(diào)用由表示制造機(jī)器的信息對象116提供的“關(guān)斷電源(poweroff)”函數(shù)219。作為響應(yīng),協(xié)作服務(wù)器113可以執(zhí)行信息對象116的“關(guān)斷電源”函數(shù)219,以將信息對象116的屬性213設(shè)置為等于“關(guān)閉”狀態(tài)的值或其它表示。協(xié)作服務(wù)器113然后可以向制造機(jī)器發(fā)送命令以開始掉電例程。在一些實(shí)施方式中,命令可對應(yīng)于協(xié)作服務(wù)器113可訪問的命令,協(xié)作服務(wù)器113通過由傳感器或其它數(shù)據(jù)饋源126(例如制造機(jī)器)暴露的應(yīng)用程序編程接口(api)。在這樣的實(shí)施方式中,協(xié)作服務(wù)器113可以使用遠(yuǎn)程過程調(diào)用(rpc)或類似的機(jī)制來調(diào)用命令。
移動(dòng)到框719,如果必要,協(xié)作服務(wù)器113將在向傳感器或其它數(shù)據(jù)饋源126發(fā)送任何命令之后更新信息對象116。例如,響應(yīng)于接收到來自協(xié)作服務(wù)器113的rpc,傳感器或其它數(shù)據(jù)饋源126可以用結(jié)果、錯(cuò)誤代碼或其它返回值進(jìn)行響應(yīng)。在這樣的實(shí)例中,協(xié)作服務(wù)器113可以更新信息對象116以反映接收到的結(jié)果、錯(cuò)誤代碼或其它返回值。協(xié)作服務(wù)器113然后將操作的結(jié)果發(fā)送給客戶端應(yīng)用123。例如,協(xié)作服務(wù)器113可以向客戶端應(yīng)用123提供信息對象116的更新版本、向客戶端應(yīng)用123提供指示由客戶端應(yīng)用123調(diào)用的函數(shù)219或多個(gè)函數(shù)219的結(jié)果的返回代碼或結(jié)果代碼,或者向客戶端應(yīng)用123提供其它這樣的結(jié)果。執(zhí)行隨后結(jié)束。
參考圖8,示出了根據(jù)本公開的實(shí)施方式的計(jì)算環(huán)境103的示意性方框圖。計(jì)算環(huán)境103包括一個(gè)或多個(gè)計(jì)算設(shè)備800。每個(gè)計(jì)算設(shè)備800包括至少一個(gè)處理器電路,例如具有都耦合到本地接口809的處理器803和存儲(chǔ)器806。為此,每個(gè)計(jì)算設(shè)備800可包括例如至少一個(gè)服務(wù)器計(jì)算機(jī)或類似設(shè)備。本地接口809可包括例如,具有附屬的地址/控制總線或可被認(rèn)識(shí)的其它總線結(jié)構(gòu)的數(shù)據(jù)總線。
存儲(chǔ)在存儲(chǔ)器806中的是可由處理器803執(zhí)行的數(shù)據(jù)和幾個(gè)組件兩者。特別地,存儲(chǔ)在存儲(chǔ)器806中并可由處理器803執(zhí)行的是協(xié)作服務(wù)器113和可能的其它應(yīng)用。此外,存儲(chǔ)在存儲(chǔ)器806中的可以是數(shù)據(jù)存儲(chǔ)庫111和其它數(shù)據(jù)。此外,操作系統(tǒng)811可存儲(chǔ)在存儲(chǔ)器806中并可由處理器803執(zhí)行。
應(yīng)理解,可以存在存儲(chǔ)在存儲(chǔ)器806中并可由處理器803執(zhí)行的其它應(yīng)用,如可認(rèn)識(shí)到的。在本文中所討論的任何組件以軟件的形式實(shí)現(xiàn)的情況下,可采用若干編程語言中的任何一個(gè),諸如例如,c、c++、c#、objectivec、
多個(gè)軟件組件存儲(chǔ)在存儲(chǔ)器806中并可由處理器803執(zhí)行。在這方面,術(shù)語“可執(zhí)行”意指處于可最終由處理器803運(yùn)行的形式的程序文件。可執(zhí)行程序的示例可以是例如編譯程序,其可被轉(zhuǎn)換成以可被加載到存儲(chǔ)器806的隨機(jī)存取部分中并由處理器803運(yùn)行的格式的機(jī)器代碼、可以用正確格式表示的源代碼例如能夠被加載到存儲(chǔ)器806的隨機(jī)存取部分中并由處理器803執(zhí)行的目標(biāo)代碼或可由另一可執(zhí)行程序解釋以在存儲(chǔ)器806的隨機(jī)存取部分中生成由處理器803執(zhí)行的指令的源代碼等??蓤?zhí)行程序可存儲(chǔ)在存儲(chǔ)器806的任何部分或組件中,包括例如隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、硬盤驅(qū)動(dòng)器、固態(tài)硬盤、usb閃存驅(qū)動(dòng)器、存儲(chǔ)卡、光學(xué)盤例如光盤(cd)或數(shù)字多功能盤(dvd)、軟盤、磁帶或其它存儲(chǔ)器組件。
存儲(chǔ)器806在本文被定義為包括易失性和非易失性存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)組件。易失性組件是在失去電力時(shí)不保留數(shù)據(jù)值的那些組件。非易失性組件是在失去電力時(shí)保留數(shù)據(jù)的那些組件。因此,存儲(chǔ)器806可包括例如隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、硬盤驅(qū)動(dòng)器、固態(tài)硬盤、usb閃存驅(qū)動(dòng)器、經(jīng)由存儲(chǔ)器讀卡器訪問的存儲(chǔ)卡、經(jīng)由相關(guān)聯(lián)的軟盤驅(qū)動(dòng)器訪問的軟盤、經(jīng)由光盤驅(qū)動(dòng)器訪問的光盤、經(jīng)由適當(dāng)?shù)拇艓?qū)動(dòng)器訪問的磁帶和/或其它存儲(chǔ)器組件或這些存儲(chǔ)器組件中的任意兩個(gè)或更多個(gè)的組合。另外,ram可包括例如,靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)或磁隨機(jī)存取存儲(chǔ)器(mram)和其它這種設(shè)備。rom可包括例如,可編程只讀存儲(chǔ)器(prom)、可擦除可編程只讀存儲(chǔ)器(eprom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)或其它類似的存儲(chǔ)器設(shè)備。
此外,處理器803可代表多個(gè)處理器803和/或多個(gè)處理器核心,且存儲(chǔ)器806可代表分別在并行處理電路中操作的多個(gè)存儲(chǔ)器806。在這樣的情況下,本地接口809可以是便于在多個(gè)處理器803中的任兩個(gè)之間、在任一處理器803和任一存儲(chǔ)器806之間或在存儲(chǔ)器806中的任兩個(gè)之間等通信的適當(dāng)網(wǎng)絡(luò)。本地接口809可包括被設(shè)計(jì)成協(xié)調(diào)該通信的附加系統(tǒng),包括例如執(zhí)行負(fù)載平衡。處理器803可具有電氣或一些其它可用結(jié)構(gòu)。
雖然協(xié)作服務(wù)器113和本文所述的其它各種系統(tǒng)可體現(xiàn)在由如上討論的通用硬件執(zhí)行的軟件或代碼中,但作為可選方案,它們也可體現(xiàn)在專用硬件或軟件/通用硬件和專用硬件的組合中。如果體現(xiàn)在專用硬件中,則每個(gè)可被實(shí)現(xiàn)為使用多種技術(shù)的任一個(gè)或組合的電路或狀態(tài)機(jī)。這些技術(shù)可包括但不限于具有用于在應(yīng)用一個(gè)或多個(gè)數(shù)據(jù)信號(hào)時(shí)實(shí)現(xiàn)各種邏輯功能的邏輯門的分立邏輯電路、具有適當(dāng)?shù)倪壿嬮T的專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或其它組件等。這樣的技術(shù)通常是本領(lǐng)域中的技術(shù)人員所公知的,因此在本文中沒有被詳細(xì)描述。
圖3-7的流程圖示出了協(xié)作服務(wù)器113的部分的實(shí)現(xiàn)的功能和操作。如果體現(xiàn)在軟件中,則每個(gè)塊可表示包括程序指令以實(shí)現(xiàn)指定的邏輯功能的代碼的模塊、段或部分。程序指令可體現(xiàn)在包括以編程語言編寫的人可讀語句的源代碼或包括可由在計(jì)算機(jī)系統(tǒng)或其它系統(tǒng)中的適當(dāng)執(zhí)行系統(tǒng)例如處理器803識(shí)別的數(shù)字指令的機(jī)器代碼的形式中。機(jī)器代碼可從源代碼等轉(zhuǎn)換。如果體現(xiàn)在硬件中,則每個(gè)塊可表示用于實(shí)現(xiàn)指定的邏輯功能的電路或多個(gè)互連電路。
雖然圖3-7的流程圖示出了特定的執(zhí)行順序,但應(yīng)理解的是,執(zhí)行順序可與所描繪的順序不同。例如,兩個(gè)或更多個(gè)塊的執(zhí)行順序可相對于所示的順序被改動(dòng)。此外,在圖3-7中連續(xù)示出的兩個(gè)或更多個(gè)塊可同時(shí)執(zhí)行或部分同時(shí)執(zhí)行。此外,在一些實(shí)施方式中,在圖3-7中示出的塊中的一個(gè)或多個(gè)可被跳過或被省略。另外,為了增強(qiáng)的實(shí)用性、記賬、性能測量或提供故障排除幫助等的目的,任何數(shù)量的計(jì)數(shù)器、狀態(tài)變量、警告信號(hào)燈或消息可被添加到本文所述的邏輯流程。應(yīng)理解,所有這樣的變化都在本公開的范圍內(nèi)。
此外,包括軟件或代碼的本文所述的任何邏輯或應(yīng)用(包括協(xié)作服務(wù)器113)可體現(xiàn)在任何非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)中以用于由或結(jié)合指令執(zhí)行系統(tǒng)例如在計(jì)算機(jī)系統(tǒng)或其它系統(tǒng)中的處理器803來使用。在這個(gè)意義上,邏輯可包括例如,包含可從計(jì)算機(jī)可讀介質(zhì)找取并被指令執(zhí)行系統(tǒng)執(zhí)行的指令和聲明的語句。在本公開的上下文中,“計(jì)算機(jī)可讀介質(zhì)”可以是可包含、存儲(chǔ)或維持本文所述的邏輯或應(yīng)用以用于由指令執(zhí)行系統(tǒng)使用或結(jié)合指令執(zhí)行系統(tǒng)使用的任何介質(zhì)。
計(jì)算機(jī)可讀介質(zhì)可包括許多物理介質(zhì)中的任一個(gè),諸如例如磁、光或半導(dǎo)體介質(zhì)。合適的計(jì)算機(jī)可讀介質(zhì)的更具體的示例將包括但不限于磁帶、磁軟盤、磁硬盤驅(qū)動(dòng)器、存儲(chǔ)卡、固態(tài)硬盤、usb閃存驅(qū)動(dòng)器或光盤。此外,計(jì)算機(jī)可讀介質(zhì)可以是隨機(jī)存取存儲(chǔ)器(ram),包括,例如,靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)和動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)或磁隨機(jī)存取存儲(chǔ)器(mram)。另外,計(jì)算機(jī)可讀介質(zhì)可以是只讀存儲(chǔ)器(rom)、可編程只讀存儲(chǔ)器(prom)、可擦除可編程只讀存儲(chǔ)器(eprom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)或其它類型的存儲(chǔ)器設(shè)備。
此外,本文所述的包括協(xié)作服務(wù)器113的任何邏輯或應(yīng)用可以以各種方式來實(shí)現(xiàn)和構(gòu)造。例如,所描述的一個(gè)或多個(gè)應(yīng)用可以被實(shí)現(xiàn)為單個(gè)應(yīng)用的模塊或組件。此外,本文所描述的一個(gè)或多個(gè)應(yīng)用可以在共享或單獨(dú)的計(jì)算設(shè)備或其組合中執(zhí)行。例如,本文所描述的多個(gè)應(yīng)用可以在相同的計(jì)算設(shè)備800中或在同一計(jì)算環(huán)境103中的多個(gè)計(jì)算設(shè)備中執(zhí)行。此外,應(yīng)當(dāng)理解的是,諸如“應(yīng)用”、“服務(wù)”、“系統(tǒng)”、“引擎”、“模塊”等的術(shù)語可以是可互換的,且不旨在是限制性。
除非另有明確說明,否則諸如短語“x、y或z中的至少一個(gè)”的析取語言在上下文被理解為通常用于呈現(xiàn)項(xiàng)目、術(shù)語等可以是x、y或z或其任何組合(例如,x、y和/或z)。因此,這樣的析取語言通常不旨在并且不應(yīng)當(dāng)意味著某些實(shí)施方式要求x中的至少一個(gè)、y中的至少一個(gè)或z中的至少一個(gè)各自存在。
應(yīng)強(qiáng)調(diào),本公開的上述實(shí)施方式僅僅是為了清楚理解本公開的原理而闡述的實(shí)現(xiàn)的可能的示例。可以對上述實(shí)施方式做出許多變化和修改而實(shí)質(zhì)上不偏離本公開的精神和原理。所有這樣的修改和變化都旨在在本文中被包括在本公開的范圍內(nèi)并由下面的權(quán)利要求保護(hù)。