亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

從瀏覽器打開本地應用的制作方法

文檔序號:11450504閱讀:762來源:國知局
從瀏覽器打開本地應用的制造方法與工藝

相關申請的交叉引用

本申請要求2014年11月5日提交的美國臨時專利申請序列號no.62/075,825以及2014年11月18日提交的美國專利申請序列號no.14/547,086的優(yōu)先權,將其全部內容通過引用合并入本文。

大體上,本公開涉及使用瀏覽器來通過本地應用打開本地文件。



背景技術:

基于云的文檔存儲系統(tǒng)向用戶提供很多優(yōu)點,包括從多個設備訪問文件、多個用戶間的協(xié)作、以及在本地設備與服務器之間的文件的自動同步。通常,使用兩個方法中的一個來訪問云中的文件。在一個方法中,將文件存儲在本地設備的文件系統(tǒng)上并且與服務器同步。在這種情況下,使用本地設備的操作系統(tǒng)和本地安裝的應用在本地訪問文件。但是,唯一的訪問限制是與操作系統(tǒng)相關聯(lián)的訪問限制。此外,只能使用本地設備訪問文件。

在另一個方法中,將瀏覽器用于訪問云中的文件。有利地是,基于瀏覽器的方法是靈活的,因為能夠從具有瀏覽器能力的任何設備訪問文件。但是,與本地安裝的應用相比,基于瀏覽器的編輯應用缺少某些功能。此外,基于瀏覽器的應用依賴于網絡連接性和高帶寬來有效地工作。在示例中,通過瀏覽器訪問文件并手動下載到本地設備。然后,用戶必須在本地設備的文件系統(tǒng)中手動瀏覽,以使用本地安裝的應用來打開文件。該過程不僅對用戶而言很繁雜,而且甚至不會導致所編輯的文件與服務器同步。



技術實現(xiàn)要素:

因此,本文描述了用于促進在瀏覽器、同步客戶端、以及本地應用之間通信的系統(tǒng)和方法。在某些方面中,本文所述系統(tǒng)和方法涉及使用瀏覽器來利用本地應用打開本地文件。從本地設備上的第一應用接收打開文檔的請求,所述文檔具有文檔標識符并且與服務器上存儲的第一文件相關聯(lián)。該請求可以包括文檔標識符和用戶標識符??梢源_定在本地設備上所存儲的第二文件與文檔標識符相關聯(lián),以及可以確定與用戶標識符相關聯(lián)的用戶被授權訪問第二文件??梢曰谠摯_定將列表傳送至第一應用,該列表包括在本地設備上并且能夠打開第二文件的一個或多個應用??梢詮脑摰谝粦媒邮者x自該列表的第二應用的指示??梢詡魉屠玫诙么蜷_第二文件的消息。

同步客戶端可以執(zhí)行上述的接收、確定、以及傳送步驟中的一個或多個。同步客戶端可以與中介代理通信,該中介代理將請求傳送至該同步客戶端、從該同步客戶端接收列表、以及將指示傳送至同步客戶端。中介代理可以基于對于同步客戶端以及對于第一應用的格式化要求,來修改請求、列表、以及指示中的至少一個。

內容文件可以存儲本地應用標識符的列表,該本地應用標識符對應于在本地設備上安裝并且向同步客戶端注冊的多個本地應用。打開第二文件的消息可以包括與第二應用相關聯(lián)的應用標識符。可以確定該應用標識符是否被包括在該內容文件中。

確定該用戶是否被授權訪問所述第二文件可以包括以下步驟中的一個或多個。可以接收基于至少一個預先共享密鑰所計算的第一散列??梢杂傻谝粦没谠撝辽僖粋€預先共享密鑰來計算第二散列??梢詫⒌谝簧⒘信c第二散列進行比較。如果該第一散列與該第二散列匹配,則該用戶可以被授權訪問該第二文件。

該第一散列和該第二散列均可以至少部分地基于至少一個隨機數(shù)(nonce)來被計算。該請求、列表、以及指示中的至少一個可以包括與第一應用相關聯(lián)的標準輸入或輸出數(shù)據(jù)流??梢愿鶕?jù)第一文件的副本來創(chuàng)建第二文件。第一應用可以是瀏覽器或者與該瀏覽器相關聯(lián)的瀏覽器擴展。用戶可以經由該瀏覽器來提供一個或多個請求。僅當?shù)诙募c第一文件同步時,可以將列表傳送至第一應用。

可以在本地設備處從用戶接收打開文檔的請求,所述文檔具有文檔標識符并且與服務器上存儲的第一文件相關聯(lián)。該請求可以包括該文檔標識符以及與用戶相關聯(lián)的用戶標識符。可以將所請求的文檔標識符和用戶標識符傳送至本地設備上的第一應用??梢詮牡谝粦媒邮瞻ㄌ幱诒镜卦O備上的一個或多個應用的列表??梢詮挠脩艚邮諒牧斜碇羞x擇的第二應用的指示??梢韵虻谝粦脗魉桶ㄎ募俗R符以及與第二應用相關聯(lián)的標識符的消息。

第三應用可以執(zhí)行上文所述的接收和傳輸中的一個或多個。該第三應用可以是瀏覽器或者與所述瀏覽器相關聯(lián)的瀏覽器擴展。第三應用可以與中介代理通信,中介代理將該請求傳送至第三應用、從第三應用接收該列表、以及將指示傳送至第三應用。中介代理可以基于對于第三應用以及對于第一應用的格式化要求來修改請求、列表、以及指示中的至少一個。

附圖說明

圖1是根據(jù)說明性實施方式的云計算服務的框圖;

圖2是根據(jù)說明性實施方式的、經由網絡來與服務器通信的本地設備的框圖;

圖3是根據(jù)說明性實施方式的、與網絡通信的本地設備的框圖;

圖4描繪了根據(jù)說明性實施方式的云計算設備的用戶界面;

圖5是根據(jù)說明性實施方式的、由瀏覽器執(zhí)行的與本地應用通信以打開本地文件的方法的流程圖;

圖6是根據(jù)說明性實施方式的、由瀏覽器和同步客戶端執(zhí)行的、確定它們二者都表示相同的用戶賬戶的方法的流程圖;以及

圖7是根據(jù)說明性實施例的、用于執(zhí)行本文所述的過程中的任何一個的計算設備的框圖。

具體實施方式

為了提供對本公開的全面理解,下面描述某些說明性示例,包括用于從瀏覽器打開本地應用的系統(tǒng)和方法。但是本領域普通技術人員應當理解,本文所述系統(tǒng)和方法可以被調整和修改為適合于正在設法解決的應用,并且本文所述系統(tǒng)和方法可以在其他合適的應用中采用,并且這樣的其他添加和修改將不會脫離其范圍。一般而言,本文所述計算機化系統(tǒng)可包括一個或多個組件,所述組件包括一個或多個處理設備,諸如計算機、微處理器、邏輯設備、或者配置有硬件、固件、和軟件以執(zhí)行本文所述的計算機化方法中的一個或多個的其他設備或處理器。

從瀏覽器打開本地應用是有用的,因為與從服務器分發(fā)的基于瀏覽器的應用,本地應用可以提供更多的或不同的文件編輯能力。通過從瀏覽器打開本地應用,可以實現(xiàn)使用本地應用的益處,同時還實現(xiàn)將文檔存儲在云服務中的益處。

圖1示出包括云計算服務101和多個客戶端設備102a-102d(統(tǒng)稱客戶端設備102)的客戶端-服務器系統(tǒng)100。云計算服務101為一組客戶端設備102提供云計算服務。具體而言,云計算服務101可包括存儲客戶端設備102a-102d可訪問的多個文件的一個或多個服務器,諸如示例性協(xié)作電子表格103??蛻舳嗽O備102處的用戶可以創(chuàng)建、編輯、復制、共享、以及刪除存儲在云計算服務101上的文件。例如,客戶端設備102均可以使用web瀏覽器來同時訪問云計算服務101上的電子表格103。云計算服務101向每個客戶端設備102提供電子表格103的本地副本,然后客戶端設備102上的用戶可以查看和編輯。云計算服務101可將電子表格103的本地副本與相互同步以及與存儲在云計算服務101中的服務器上的電子表格103的副本同步。在一個示例中,由客戶端設備102a作出編輯——本文中可稱為變動(mutation)可以被自動發(fā)送給云計算服務101,并傳送到其他客戶端設備102b、102c、和102d。通過這種方式,由一個協(xié)作者作出的變動可以立即被其他協(xié)作者看到。如本文使用的,文件包括在存儲介質上存儲的一組數(shù)字編碼的位。云文件包括在服務器上存儲并且可經由網絡訪問的文件。本地文件包括在用戶的本地設備上存儲的文件??蛻舳嗽O備包括以客戶端-服務器關系與服務器通信的本地設備。如本文所使用的,文檔是云計算服務的一部分,并且可以與多個文件相關聯(lián)。例如,云文件可以是在服務器上存儲的文檔的副本,并且本地文件可以是在本地設備上存儲的相同文檔的副本。通常,相同文檔的多個副本可以是完全相同的,但是如果由由一個協(xié)作者做出的變動尚未被傳送到其他協(xié)作者,它們可以不同。這種情境可能發(fā)生在網絡連接緩慢或時斷時續(xù)時。如果副本存儲在完全不同類型的設備——諸如具有不同操作系統(tǒng)的設備上,則相同文檔的多個副本也可能略有不同。在這種情況下,不同的副本可以具有稍微不同的元數(shù)據(jù),或者可以以不同方式編碼。例如,一個副本可以以big-endian格式編碼,并且另一個副本可以以little-endian格式編碼。這些格式差異能夠存在于作為相同文檔的副本的多個文件上,只要向用戶顯示的信息的實質是跨副本而相同的。

客戶端設備102可以包括臺式計算機、膝上型計算機、平板計算機、智能電話、移動電子設備、或者可以通過網絡連接到云計算服務101的任何其他設備的任何組合。在系統(tǒng)100中僅示出四個客戶端設備102,但是應當理解,可將任何類型的任何數(shù)目的客戶端設備102配置為與云計算服務101通信。系統(tǒng)100的云計算服務101和客戶端設備102可以通過遠程網絡——諸如互聯(lián)網連接。可以通過局域網、廣域網、以太網、光纖網絡、無線網絡、蜂窩網絡、交互式電視網絡、電話網絡、無線數(shù)據(jù)傳輸系統(tǒng)、雙向電纜系統(tǒng)、定制的專用或公用計算機網絡、交互式信息亭網絡、直接鏈路、衛(wèi)星網絡、和/或任何其它有線或無線連接來促進網絡連接。

圖2圖示了經由網絡204與服務器206通信的本地設備202的示例性系統(tǒng)200。系統(tǒng)200可以被用于在瀏覽器上利用本地應用來打開基于云的文件。為了圖示的清楚起見,在圖2中僅示出一個本地設備202和一個服務器206。但是一般而言,任何數(shù)目的本地設備202可以通過網絡204與任何數(shù)目的服務器206通信。本地設備202可以等同于關于圖1所示和所述的客戶端設備102中的一個,并且服務器206可被包括在云計算服務中——諸如圖1所示的云計算服務101。如圖2所示,服務器206包括存儲云文件218a、218b、...、218m(統(tǒng)稱云文件218)的數(shù)據(jù)庫216。每個云文件218可以與云計算服務101上的不同文檔相關聯(lián)。例如,云文件218a和218b均可以與不同的文字處理文檔相關聯(lián),而云文件218m可以與電子表格文檔相關聯(lián),諸如在云計算服務101上存儲的電子表格文檔103。

本地設備202包括數(shù)據(jù)庫208、瀏覽器212、以及一組本地應用214a、214b、...、214k(統(tǒng)稱本地應用214)。數(shù)據(jù)庫208存儲本地文件210a、210b、...、210n(統(tǒng)稱本地文件210)。本地文件210可以與云計算服務101上的文檔相關聯(lián),或者也可以不與其相關聯(lián)。當本地文件210與云計算服務101上存儲的文檔相關聯(lián)時,本地文件與云計算服務101的關聯(lián)可以包括本地文件與服務器上所存儲的文件——諸如云文件218中的一個的同步。

本地應用214可以是對文件執(zhí)行一個或多個操作的軟件應用。可以通過本地應用214中的任何一個執(zhí)行的操作的示例包括打開、顯示、編輯、接收編輯、以及保存。瀏覽器212可以被配置為通過可以包括或可以包括本地應用214的一個或多個軟件應用或中介組件與服務器206通信。具體的,瀏覽器212可以顯示用戶界面,使得用戶可以與云計算服務101上的文檔交互。在示例中,瀏覽器212接收用戶輸入,以請求云計算服務101上存儲的文檔,并且對該文檔執(zhí)行操作。云計算服務102上存儲的被請求文檔可以與本地設備202上存儲的本地文件210中的一個同步。響應于接收用戶輸入,瀏覽器212與本地應用214中的一個執(zhí)行通信,以請求本地應用214對相應的本地文件210執(zhí)行操作。以這種方式,通過在本地設備202與遠程服務器206之間提供文件同步,系統(tǒng)200允許用戶通過瀏覽器212請求利用本地應用214對本地文件210執(zhí)行操作。

圖3描繪了包括與網絡304通信的本地設備302的示例性系統(tǒng)300。本地設備302可以類似于關于圖2所示和所述的本地設備202,而圖3示出了本地設備302內的組件的更詳細視圖。具體而言,本地設備302包括具有本地文件310的本地數(shù)據(jù)庫308、瀏覽器312、本地應用314、同步客戶端320、代理進程322、瀏覽器擴展324、網絡接口326、以及處理器328。處理器328在本地設備302上運行應用、功能、方法、以及進程,諸如應用314、同步客戶端320、代理進程322、瀏覽器擴展324、以及瀏覽器312。網絡304、數(shù)據(jù)庫308、本地文件310、瀏覽器312、以及應用314分別可以執(zhí)行與網絡204、數(shù)據(jù)庫208、本地文件210、瀏覽器212、以及應用214類似的功能。網絡接口326充當本地設備302與可經由網絡304訪問的遠程資源之間的通信的中介。具體的,本地設備302上的本地應用314和/或本地文件310經由網絡304與服務器(諸如服務器206)通信。

如圖3所示,瀏覽器312通過瀏覽器擴展324、代理進程322、以及同步客戶端320與本地應用314通信。如圖3所示,本地設備302僅包括一個瀏覽器擴展324、一個代理進程322、以及一個同步客戶端320,但是一般而言,在本地設備302中可包括任何數(shù)目的這些組件,并且這些組件可以進行本文所述的功能中的任何一個。在示例中,瀏覽器擴展324響應于由瀏覽器312接收的用戶請求而執(zhí)行動作。這樣的用戶請求可包括對云服務——諸如云計算服務101上的文檔執(zhí)行操作的請求。瀏覽器擴展324可包括javascript代碼或類似語言的代碼,其可以調用對象、函數(shù)、方法、子例程、進程、或操作系統(tǒng)命令。瀏覽器擴展324可以在同步客戶端320被安裝在本地設備302上時被自動安裝,或者在安裝了瀏覽器擴展324時安裝。如本文所使用的,“瀏覽器”指代能夠檢索和顯示信息的軟件應用、瀏覽器擴展、或者它們的任何合適的組合。雖然在圖3中將瀏覽器312和瀏覽器擴展324示為兩個分離的元件,但是應當理解,瀏覽器312可包括瀏覽器擴展324,使得本文描述為瀏覽器擴展324執(zhí)行的功能中的任何一個都可以替選地或另外地由瀏覽器312執(zhí)行。類似地,本文描述為由瀏覽器312執(zhí)行的功能中的任何一個都可由瀏覽器擴展324替代執(zhí)行。

在一些示例中,瀏覽器312、瀏覽器擴展324、同步客戶端320、以及本地應用314中的任何一個之間的通信包括進程間通信(ipc)。在這種情況下,代理進程322通過將從瀏覽器擴展324與同步客戶端320中的一個(諸如瀏覽器擴展324或同步客戶端320)接收的通信轉發(fā)到其中另一個(諸如同步客戶端320或同步客戶端320)來促進瀏覽器擴展324與同步客戶端320之間的通信。代理進程322是單獨的可執(zhí)行文件,并且代理進程322的多個實例可以在任何給定時間打開或運行。在一些示例中,當瀏覽器擴展324中的javascript響應于接收利用本地應用來打開文檔的用戶請求而調用啟動功能時,開始代理進程322的新實例。在一些示例中,代理進程322的實例可通過瀏覽器312、瀏覽器擴展324、瀏覽器擴展324中的javascript、或通過垃圾收集來破壞或終止。本文中,垃圾收集指代由操作系統(tǒng)、程序、進程、以及應用執(zhí)行的常規(guī)存儲器維護。有時候,代理進程322可以在轉發(fā)已修改的通信之前修改通信。在示例中,代理進程322通過執(zhí)行以下中的任何一個或多個來修改通信:改變通信的格式、向通信添加數(shù)據(jù)或元素、或從通信中去除數(shù)據(jù)或元素。與代理進程322的通信可包括標準輸入流(stdin)、標準輸出流(stdout)、以及標準錯誤流(stderr)中的一個或多個。stdin、stdout、以及stderr流是應用與其環(huán)境之間數(shù)據(jù)的字節(jié)流。雖然默認情況下,stdin流攜載鍵盤數(shù)據(jù),并且stdout流在監(jiān)視器上顯示,但是三個流中的任何一個都能夠被重定向。在示例中,可以將瀏覽器擴展324的stdin流指引到代理進程322,使得瀏覽器擴展324接收來自代理進程322的輸入??梢詫g覽器擴展324的stdout和stderr流指引到代理進程322,使得瀏覽器擴展324直接輸出到代理進程322。同樣,可將同步客戶端320的stdin、stdout、以及stderr流中的任何一個指引到代理進程322。在一些示例中,stdin、stdout、以及stderr通信處于前面帶有長度字節(jié)或字的javascriptobjectnotation(json)字符串的格式。在這些示例中,瀏覽器擴展現(xiàn)在可將可序列化的javascript對象傳遞給代理進程322,并且可以接收回處于類似格式的對象。在另一個示例中,與代理進程322的通信可包括對一個或多個命名管道的使用。在另一個示例中,與代理進程322的通信可包括消息傳遞。在示例中,在瀏覽器312、瀏覽器擴展324、以及同步客戶端320之間的通信之前可能要求密碼認證。在另一個示例中,瀏覽器312、瀏覽器擴展324、同步客戶端320、以及本地應用314之間的通信可包括應用之間的其他形式的通信。為了實現(xiàn)這種通信,可以在用戶登錄到同步客戶端320或者以其他方式利用同步客戶端320認證時安裝瀏覽器擴展324。通過使用代理進程322在瀏覽器擴展324與同步客戶端320之間傳遞消息,瀏覽器312可以與本地應用314通信,以對本地文件310進行操作。

在一些示例中,將網絡304上的虛擬域(dummydomain)用于瀏覽器312、瀏覽器擴展324、以及同步客戶端320之間的通信。在示例中,可以將虛擬域注冊到域名系統(tǒng),該虛擬域指代通常與本地設備302——諸如本地主機(127.0.0.1)相關聯(lián)的域。在這種情況下,本地設備302可以包括核實安全超文本傳輸協(xié)議(https)請求的證書。在這種情況下,可以不使用代理進程322。

在一些示例中,將諸如websocket協(xié)議的全雙工通信協(xié)議用于瀏覽器312與同步客戶端320之間的通信。在一些示例中,可以不使用瀏覽器擴展324。代理進程322可以充當瀏覽器312與同步客戶端320之間的中介代理。瀏覽器擴展324可以經由消息傳遞應用編程接口(api)展現(xiàn)json協(xié)議端點。在這種情況下,在瀏覽器312上顯示的網頁可以向代理進程322傳送消息以及從代理進程322接收消息,代理進程322對來自和去往同步客戶端320的消息進行中繼。瀏覽器312可以連接到代理進程322、建立端口對象、以及向代理進程322發(fā)送通知。瀏覽器312可以創(chuàng)建websocket連接,并且將該websocket連接與端口對象相關聯(lián)。按照這種方式,通過websocket連接來處理瀏覽器312與本地主機(本地設備302的回環(huán)(loopback)網絡接口)之間的通信。在這種情況下,可以將向端口的傳入消息序列化并轉發(fā)給websocket??蓪⑾騱ebsocket的傳入消息轉換為json字符串并且回發(fā)(post-back)至網頁。通過使用代理進程322在瀏覽器312上顯示的網頁與不安全的本地主機websocket連接之間傳輸內容,避免了如果安全網頁(諸如ssl簽名頁面)與非安全網絡地址(諸如localhost)通信則可能發(fā)生的混合內容警告。這樣的混合內容警告會禁止瀏覽器312和本地主機websocket連接之間的通信。

在一些示例中,同步客戶端320與本地應用314以及數(shù)據(jù)庫308通信。具體的,同步客戶端320可以與數(shù)據(jù)庫308中的本地文件310相關聯(lián)。此關聯(lián)可以產生自同步客戶端320執(zhí)行數(shù)據(jù)庫308中的本地文件310與云計算服務101上的文檔的同步。在示例中,本地文件310a的同步可以涉及傳送和接收對本地文件310a的改變,使得本地文件310a是服務器206上存儲的云文件218a的副本,或者使得云文件218a是本地文件310a的副本。如圖3所示,同步客戶端320通過傳送打開、顯示、編輯、或顯示文件的請求,向本地應用314傳送啟動的指令。

在一些示例中,使用清單文件來向同步客戶端320注冊應用314,當同步客戶端320和/或瀏覽器312被初始化時,清單文件可以動態(tài)生成并被放置在用戶簡檔中。在示例中,同步客戶端320只可以與使用清單文件來向該同步客戶端320注冊的本地應用314通信。通過經由清單文件注冊本地應用,同步客戶端320可以減少由對可能有害的應用的執(zhí)行所致的安全漏洞的可能性。

圖4描繪了被用于管理和訪問云計算服務101中存儲的文檔的示例性用戶界面400??梢栽诒镜卦O備202上的瀏覽器212中向用戶提供用戶界面400。如圖4所示,用戶界面400顯示了包括從服務器遞送的內容的網頁。為了查看用戶界面400,用戶可能被要求登錄或者通過認證服務器進行認證。通過要求認證,用戶界面400可以顯示對登錄用戶定制的內容,諸如在云服務(諸如云計算服務101)上存儲并與用戶相關聯(lián)的一組文檔406。在圖4所示的示例中,文檔406a和406b是文字處理文檔,文檔406c是繪圖文檔,文檔406d是表單(form)文檔,文檔406e是演示文檔,并且文檔406f是電子表格文檔。文檔的這種布置并非限制性的,并且在不脫離本公開范圍的情況下,可以在用戶界面400中顯示除了圖4所描繪的那些文檔之外的文檔的布置或類型??梢詫⒃朴嬎惴?01上存儲的文檔布置或包含在文件夾——諸如文件夾408中。當用戶選擇創(chuàng)建(create)按鈕410時,可以創(chuàng)建新文檔。如圖4所示,用戶界面400包括云服務上的、與用戶相關聯(lián)的文件夾的顯示以及文件夾的內容的顯示。

有時候,本地設備202在線并連接到服務器206。在這種情況下,服務器206可以將所顯示的文檔406的副本存儲在數(shù)據(jù)庫216中。一組所顯示的文檔406可以對應于與用戶相關聯(lián)并且服務器206在數(shù)據(jù)庫216中具有其副本的一組文檔。同步客戶端320可以在本地設備202在線時更新數(shù)據(jù)庫208,使得將云計算服務101上文檔的本地副本保持在本地設備202上,使得即使在本地設備202離線時該文檔仍然是可訪問的。諸如在本地設備202從網絡204斷開連接時,本地設備202可以變?yōu)殡x線并從服務器206斷開連接。當本地設備202處于時斷時續(xù)的無線網絡覆蓋的區(qū)域中或者從有線網絡連接拔出時,會出現(xiàn)這種情況。此外,當本地設備202連接到網絡204但是本地設備202和/或本地設備202上的一個或多個應用沒有被認證時,也可以出現(xiàn)離線狀態(tài),使得服務器206阻止本地設備202訪問服務器206。當本地設備202離線時,用戶界面400可以仍然能夠顯示文檔406。文檔406可以對應于在數(shù)據(jù)庫208中存儲并且與登錄用戶相關聯(lián)的本地文件210。

用戶可以使用用戶界面400來選擇利用本地應用214中的一個來打開文檔406。具體的,用戶可以選擇文檔406中中的一個,并且然后選擇利用其來打開所選擇的文檔406的應用214。在圖4所描繪的示例中,用戶通過選擇鄰近復選框來選擇演示文檔406e。一般而言,可以使用選擇文檔的其他方法,諸如通過一次或多次點擊所需文檔的名稱,或者將所需文檔拖放到指定位置。如圖4所示,然后,用戶通過選擇菜單402并選擇“openwith(利用…打開)”選項418來選擇應用。

當用戶選擇了選項418時,然后向用戶呈現(xiàn)候選應用420a和420b的列表(統(tǒng)稱候選應用420)??梢詫⒑蜻x應用420的列表限制為僅包括被配置為對與所選擇的文件406e文件具有相同文件類型的文檔執(zhí)行操作的應用。圖4所示的候選應用420僅包括一個本地應用420a和一個服務器應用420b,但是一般而言,可以示出任何數(shù)目的本地應用和/或服務器應用。有時候,沒有本地應用(或服務器應用)可以被配置來對所選擇的文件進行操作,使得列表中沒有包括本地應用(或服務器應用)。用戶可以選擇所列出的應用420中中的一個來對所選擇的文檔406e進行操作。

如關于圖4所描述的,用戶首先選擇文件406,并且然后選擇應用406以用來打開所選擇的文件。在另一個示例中,用戶可以首先從應用列表中選擇應用,并且然后選擇所選擇的應用被配置來對其操作的文檔。在另一個示例中,用戶可以不提供對應用的選擇,并且可以使用默認應用來打開所選擇的文件。當本地設備202在線時,可以從服務器數(shù)據(jù)庫216上的云文件218中的一個提供所選擇的文檔的副本。替選地,可以從本地數(shù)據(jù)庫208上的文件214中的一個提供所選擇的文檔的副本。當本地設備202離線時,可以從本地數(shù)據(jù)庫208上的本地文件210中的一個提供所選擇的文檔的副本。因此,利用基于瀏覽器的用戶界面400,用戶可以使用本地應用來訪問和編輯基于云的文檔。與基于云的應用相比,利用本地應用訪問和編輯基于云的文檔允許用戶利用本地應用的增加的功能。此外,使用本地應用可以提供改善的編輯體驗,因為如果網絡連接緩慢或時斷時續(xù),則使用基于云的應用可能導致明顯的時延。

圖5是基于來自用戶的請求來使用本地應用打開文檔的示例性方法500的流程圖。在步驟502處,瀏覽器212從用戶接收打開云服務——諸如云計算服務101上存儲的文檔的請求。所請求的文檔的示例可以包括文檔103和文檔406中的任何一個。所請求的文檔可以與服務器——諸如服務器206上存儲的文件相關聯(lián),并且關聯(lián)的文件的示例可以包括云文件218。在示例中,如關于圖4所述,通過用戶界面400接收請求。

在決策框504處,運行瀏覽器擴展324的處理器——諸如處理器328確定同步客戶端320是否正在本地設備302上運行。在一些示例中,處理器328確定在本地設備302上是否安裝了同步客戶端。在一些示例中,處理器查詢注冊表、屬性列表、plist、數(shù)據(jù)庫、偏好、配置文件、或文件位置,以確定是否安裝了同步客戶端320。如果未安裝同步客戶端320,則方法500進行到步驟506,以引導用戶進行同步客戶端320的安裝。否則,如果安裝了同步客戶端320,則方法500跳過步驟506并且直接進行到步驟508。在一些示例中,如果未安裝同步客戶端320,則方法500不在步驟506處引導用戶進行同步客戶端320的安裝,而作為替代方法500終止。

在步驟508處,瀏覽器擴展324向同步客戶端320發(fā)送打開所請求的文檔的請求。該請求可以經由以下中的一個或多個傳輸給同步客戶端320:代理進程322、websocket協(xié)議、命名管道、標準輸入、標準輸出、標準錯誤、消息傳遞協(xié)議、密碼認證、以及應用之間的其他通信方式。在本文所述的應用之間的所有通信可以使用本文所述的應用之間的通信方式中的任何一個,所述通信諸如瀏覽器312、瀏覽器擴展324、代理進程322、同步客戶端320、網絡接口326、本地應用314、數(shù)據(jù)庫308、本地設備302上的其他應用、以及本地設備202和服務器206上的類似組件之間的通信。打開所請求的文檔的請求可以包括所請求的文檔的標識符以及登錄到云計算服務101的用戶的標識符。

在決策框510處,瀏覽器擴展324和同步客戶端320相互認證,以確定經由瀏覽器312登錄到云計算服務101的用戶是否與被授權經由同步客戶端320訪問本地文件310的用戶相同。該確定可以包括:確定登錄到云計算服務101的用戶與同步客戶端320的授權用戶是否表示相同的用戶賬戶。在一些示例中,瀏覽器312和同步客戶端320通過驗證用戶賬戶的域是所識別的域——諸如google.com來執(zhí)行認證。在一些示例中,用以執(zhí)行認證的在瀏覽器擴展324與同步客戶端320之間的通信是經由代理進程322執(zhí)行的。在其他示例中,代理進程不涉及該通信??梢允褂妙A先共享密鑰、與認證服務器的通信、或其他方法來執(zhí)行該認證,以確定相同用戶登錄到瀏覽器312和同步客戶端320兩者??梢允褂脠D6所圖示的認證過程來執(zhí)行以上認證。在一些示例中,步驟510可以在步驟514或步驟520之后發(fā)生。

如果瀏覽器312和同步客戶端320不表示相同的用戶賬戶,則方法500進行到步驟512終止。在一些示例中,在終止時可以經由用戶界面400向用戶呈現(xiàn)消息。該消息可以包括終止的原因,并且可以建議用戶可以采取以恰當認證的一個或多個動作。建議的動作可以包括登錄到同步客戶端320并登錄到云計算服務101,使得相同的用戶賬戶利用同步客戶端320和云計算服務101兩者認證。

在決策框514處,運行同步客戶端320的處理器328確定所請求的文檔的本地副本是否在本地設備302上可用。處理器328可通過確定數(shù)據(jù)庫308中的文件——諸如本地文件310中的一個與云計算服務101上所請求的文檔相關聯(lián)來進行該確定。在步驟508處,處理器可以使用在同步客戶端320所接收的已傳輸請求中所包括的文檔標識符,來確定本地副本是否可用。這樣的可用本地副本可以與服務器206上的云文件218中的一個同步。替選地,本地副本在先前時間可能已經與服務器206上的云文件218中的一個先前同步過,無論本地設備302是否在線,并且無論自從本地副本與服務器206上的云文件218中的一個同步起已過去的時間的長度。在一些示例中,如果自從本地副本與服務器206同步起已過去的時間長度超過預定的閾值時間,則可以向用戶呈現(xiàn)通知——用戶將利用可能不是所請求的文檔的最當前版本的本地副本來工作。如果時間長度超過預定閾值,則方法500可以進行到決策框516和步驟522,來嘗試從服務器206下載最新副本。在一些示例中,方法500可以進行到步驟520,即使時間長度超過預定閾值。

在決策框514處,如果運行同步客戶端320的處理器328確定所請求的文檔的本地副本在本地設備302上不可用,則方法500進行到決策框516,在該決策框516處理器328確定本地設備302是否在線。處理器328可以通過ping服務器——諸如服務器206或以其它方式與處于遠程位置處的設備進行通信來做出該確定。如果本地設備302不在線并且因此從服務器206斷開連接,則該方法前進到步驟518終止。在終止時,可以經由用戶界面400向用戶呈現(xiàn)消息。該消息可以包括本地副本在本地設備302上不可用并且本地設備302離線的通知,從而阻止從服務器206獲得本地副本。在一些示例中,如果同步客戶端320在決策框514處確定所請求的文檔的本地副本在本地設備302上不可用,則方法500直接進行到經修改的步驟524,其中同步客戶端320向瀏覽器發(fā)送本地應用的空列表。

在決策框516處,如果同步客戶端320確定本地設備302在線并且因此連接到服務器206,則方法500進行到步驟522,在所述步驟522處,同步客戶端320將所請求的文檔的本地副本從服務器206下載到本地設備302。在示例中,本地副本可以是數(shù)據(jù)庫308中的本地文件310中的一個。在另一個示例中,本地副本可以被存儲在較不持久的位置或者存儲在易失性存儲器——諸如隨機存取存儲器(ram)中。在方法進行到步驟522之前,可以通知和提示用戶允許方法500繼續(xù)。由于用戶作出的、不將所請求的文檔與本地設備302同步的先前選擇,本地副本最初可能是不可用的。替選地,如果在方法500的步驟502處沒有安裝同步客戶端320而僅在步驟506處安裝,則本地副本可能最初不可用。在步驟522處從服務器下載文檔的本地副本之后,方法500進行到步驟520。否則,在決策框514處,同步客戶端320確定所請求的文檔的本地副本可用,方法500進行到步驟520。

在步驟520處,同步客戶端320確定本地應用314中的哪一個——如果有的話——能夠對本地副本執(zhí)行操作。同步客戶端320可以確定沒有本地應用314、一個本地應用314、或多個本地應用314被配置來對本地副本執(zhí)行操作。同步客戶端可以通過以下操作來作出此確定:通過分析文檔標識符、文件名、文件擴展、報頭、或確定格式的其它方式來確定本地副本的文件類型,并且然后與以下中的一個或多個進行比較——清單文件、注冊表、屬性列表、plist、配置文件、偏好、數(shù)據(jù)庫、或確定被配置來對特定文件類型或格式執(zhí)行操作的本地應用的其他方式。同步客戶端320可以確定:本地應用314中的一個是用于打開本地副本的默認應用。

在步驟524處,同步客戶端320可選地地經由代理進程322來向瀏覽器擴展324發(fā)送能夠對本地副本執(zhí)行操作的本地應用的列表。該列表可以為通過使用應用的標識符來引用零個、一個、或一組被配置對本地副本執(zhí)行操作的本地應用314。對于列表引用的每個應用,列表可以包括應用是否是用于所請求的文件類型的文件的默認應用以及該應用的圖標。

在步驟526處,瀏覽器擴展324經由用戶界面400來向用戶呈現(xiàn)本地應用的列表。在一些示例中,瀏覽器擴展324還可以確定:一個或多個服務器應用能夠打開所請求的文檔。在這些示例中,瀏覽器擴展324能夠經由用戶界面400向用戶呈現(xiàn)服務器應用的列表。如果所接收的列表不包含本地應用,則可以不向用戶呈現(xiàn)本地應用,并且可以只呈現(xiàn)服務器應用。如果沒有服務器應用被配置為對所請求的文檔執(zhí)行操作,則可以只呈現(xiàn)本地應用。如果沒有本地應用并且沒有服務器應用被配置為對所請求的文檔或本地副本執(zhí)行操作,則可以不呈現(xiàn)應用,并且方法500終止。可以向用戶呈現(xiàn)無法打開所請求的文檔的通知。

在步驟528處,用戶從列表中選擇應用。該用戶可以經由用戶界面400進行選擇,如關于圖2所解釋的??梢韵蛴脩舫尸F(xiàn)使用默認應用的選項,來替代要求用戶從列表中選擇應用。默認應用可能是有益的,特別是對于經常使用相同應用打開相似類型的文件的用戶??梢曰谟脩魧τ谠撐募蛭募愋偷膽玫南惹斑x擇來更新用于特定文件或文件類型的默認應用。

在決策框530處,瀏覽器擴展324確定所選擇的應用是本地應用還是服務器應用。例如,瀏覽器擴展324可以將所選擇的應用與在步驟524處發(fā)送的應用的列表進行比較,以確定所選擇的應用是本地應用還是服務器應用。如果所選擇的應用是服務器應用,則方法500進行到步驟532以使用所選擇的服務器應用來打開所請求的文檔。在示例中,所選擇的服務器應用可以從云計算服務101中包括的服務器206打開所請求的文檔,而不是打開所請求的文檔的本地副本。在另一個示例中,所選擇的服務器應用可以從本地文件310中的一個打開所請求的文檔的本地副本。

否則,如果瀏覽器擴展324在決策框530處確定所選擇的應用是本地應用,則方法500進行到步驟534,在所述步驟534處,瀏覽器擴展324可選地經由代理進程322將與所選擇的應用相關聯(lián)的標識符發(fā)送給同步客戶端320。瀏覽器擴展324還可以發(fā)送登錄到云計算服務101的用戶的諸如電子郵件地址的標識符以及所請求文檔的標識符。清單文件可以存儲應用與在步驟534中使用的標識符之間的關聯(lián)。在示例中,可以發(fā)送與所選擇的應用相對應的標識符,而不是本地路徑、可執(zhí)行文件、或其他形式的直接命令。在該示例中,本地設備302的安全性被強化,因為本地路徑、可執(zhí)行文件、或直接命令可以被用于出于惡意目的來攻擊本地設備。在使用與所選擇的應用相關聯(lián)的標識符時,同步客戶端320也必須具有該關聯(lián),并且同步客戶端320必須知道該應用以用于使同步客戶端320基于該標識符來執(zhí)行動作。這向本地設備302提供了添加的一層安全性。在其他示例中,不使用應用的標識符,并且使用更直接但不太安全的識別方法,諸如本地路徑、可執(zhí)行文件、或另一形式的直接命令。

在步驟536處,同步客戶端320向本地設備的操作系統(tǒng)發(fā)送命令,以使用所選擇的本地應用來打開所請求的文檔的本地副本。在步驟536處,必要時操作系統(tǒng)可以打開所選擇的本地應用。所選擇的本地應用可以是應用314中的一個,并且本地副本可以是本地文件310中的一個。在一些示例中,同步客戶端320可以直接向所選擇的本地應用發(fā)送命令,或者代理進程322可以參與命令的發(fā)送。在一些示例中,步驟536包括提示用戶確認同步客戶端320被允許打開所選擇的應用的步驟。在一些示例中,在同步客戶端320首次打開每個本地應用時執(zhí)行該提示,并且在同步客戶端320后來打開該應用的時候不執(zhí)行該提示。

在步驟538處,所選擇的本地應用打開所請求的文檔的本地副本。如果所選擇的本地應用尚未運行,則所選擇的本地應用將在打開所選擇的本地副本之前啟動。然后,用戶可以使用所選擇的本地應用來查看、編輯、以及保存文檔的本地副本。用戶對文檔作出的任何改變都可以通過同步客戶端320傳送至服務器206。通過支持瀏覽器312、瀏覽器擴展324、同步客戶端320、以及本地應用314之間的通信,系統(tǒng)300使得本地應用314中的一個能夠基于經由用戶界面400接收的請求來打開本地文件310中的一個。

在一些示例中,方法500被簡化。瀏覽器312可以在步驟502處確定文件的文件類型,并且將文件類型包括在步驟508處發(fā)送的請求中。在這些示例中,步驟520可以包括:無論是否存在本地副本都確定哪些本地應用能夠打開所請求的文件類型的文件。在這些示例中,一旦在步驟528中選擇了應用,同步客戶端320就可以從服務器下載所請求的文檔,以創(chuàng)建本地副本310a。

圖6是諸如在關于圖5所述的決策框510處的、系統(tǒng)200用來認證用戶的示例性方法600的流程圖。瀏覽器擴展324和同步客戶端320可以使用方法600來確定它們表示相同的用戶,并且因此確定登錄到瀏覽器的用戶能夠訪問本地文件310。

在步驟602處,用戶使用瀏覽器312來利用云計算服務101認證。在認證期間,瀏覽器312可以從與云計算服務101相關聯(lián)的服務器接收預先共享密鑰,并且還可以與瀏覽器擴展324共享該預先共享密鑰。

在步驟604處,用戶利用同步客戶端320進行認證。利用同步客戶端320的認證可以是同步客戶端320安裝的一部分,或者也可以與同步客戶端320的安裝無關。例如,認證可以在本地設備302開機時發(fā)生,響應于方法500的步驟502中對于文檔的用戶請求的認證,當本地設備從離線轉變?yōu)樵诰€時的認證,或者在另一個時間的認證。

在步驟606處,瀏覽器擴展324可選地經由代理進程322向同步客戶端320發(fā)送對于認證的請求。在認證期間,確定瀏覽器擴展324和同步客戶端320二者表示相同的用戶賬戶。,可以經由本文關于應用之間的通信所述的方法或協(xié)議中的任何一個來傳送對于認證的請求。在一些示例中,對于認證的請求的傳輸包括:將隨機數(shù)從瀏覽器擴展324發(fā)送給同步客戶端320。

在步驟608處,同步客戶端320計算初始散列并將該初始散列發(fā)送給瀏覽器擴展324。在示例中,計算初始散列涉及同步客戶端320建立單獨的隨機數(shù)并計算以下的散列:從瀏覽器擴展324接收的隨機數(shù)(諸如可以在步驟606處接收的隨機數(shù));同步客戶端320建立的單獨的隨機數(shù)(諸如可以在步驟608處建立的單獨的隨機數(shù));“establish(建立)”關鍵字;表示登錄到同步客戶端320的用戶賬戶的預先共享密鑰;或其任何合適的組合。在示例中,同步客戶端320將由同步客戶端320計算的初始散列以及由同步客戶端320建立的隨機數(shù)發(fā)送給瀏覽器擴展324。

在決策框610處,瀏覽器擴展324獨立計算初始散列,并確定瀏覽器擴展324所計算的初始散列與從同步客戶端320接收的初始散列是否匹配。初始散列的獨立計算可以包括瀏覽器擴展324計算以下的散列:瀏覽器擴展324建立的隨機數(shù)(諸如可以在步驟606建立的隨機數(shù))的散列;從同步客戶端320接收的隨機數(shù)(諸如可以在步驟608接收的隨機數(shù));“establish”關鍵字;表示登錄到云計算服務101的用戶賬戶的預先共享密鑰;或其任何合適的組合。在獨立計算初始散列之后,瀏覽器擴展324確定獨立計算的初始散列與從同步客戶端320接收的初始散列是否匹配。如果計算的初始散列與所接收的初始散列不匹配,則這可以反映相同的用戶賬戶未登錄到同步客戶端320和云計算服務101兩者。如果在決策框610處瀏覽器擴展324確定這兩個初始散列不匹配,則方法進行到步驟612終止。在方法終止時,可以向用戶呈現(xiàn)認證已失敗的通知,并且可以向其建議進行恰當認證要采取的一個或多個動作。

在決策框610處,瀏覽器擴展324確定相同的用戶是否登錄到瀏覽器擴展324和同步客戶端320兩者。為了提高本地存儲的文件310的安全性,同步客戶端可以獨立地作出相同的確定。如果在決策框610處所接收的初始散列與獨立計算的初始散列匹配,則方法600進行到步驟614,在所述步驟614處瀏覽器擴展324計算確認散列并將該確認散列發(fā)送給同步客戶端320。對確認散列的計算可以涉及計算以下的散列:瀏覽器擴展324所建立的隨機數(shù)(諸如可以在步驟606發(fā)送的隨機數(shù));從同步客戶端320接收的隨機數(shù)(諸如可以在步驟610接收的隨機數(shù));“confirm”關鍵字;表示登錄到云計算服務101的用戶賬戶的預先共享密鑰;或其任何合適的組合。

在決策框616處,同步客戶端320獨立地計算確認散列,并且確定同步客戶端320所計算的確認散列與從瀏覽器擴展324接收的確認散列是否匹配。同步客戶端對確認散列的獨立計算320可以涉及同步客戶端320計算以下的散列:從瀏覽器擴展324接收的隨機數(shù)(諸如可以在步驟606接收的隨機數(shù));同步客戶端320建立的隨機數(shù)(諸如可以在步驟608建立的隨機數(shù));“confirm”關鍵字;表示登錄到同步客戶端320的用戶賬戶的預先共享密鑰;或其任何合適的組合。在由同步客戶端320獨立計算確認散列之后,同步客戶端確定由同步客戶端320計算的確認散列與從瀏覽器擴展324接收的確認散列是否匹配。如果獨立計算的確認散列與所接收的確認散列不匹配,這可以是對以下的指示:相同的用戶賬戶沒有登錄到同步客戶端320和云計算服務101兩者。如果情況是這樣,則方法600進行到步驟618終止。在方法終止時,可以向用戶呈現(xiàn)認證已失敗的通知,并且可以向其建議進行恰當認證要采取的一個或多個動作。

否則,如果同步客戶端320確定從瀏覽器擴展部分324接收的確認散列確實與在決策框616處同步客戶端320獨立計算的確認散列匹配,則方法600進行到步驟620以完成認證。通過執(zhí)行該認證,同步客戶端320和瀏覽器擴展324二者都獨立地驗證它們表示相同的用戶賬戶,從而確保只有授權用戶才能夠訪問本地存儲的文件。有利的是對于瀏覽器擴展324和同步客戶端320二者獨立執(zhí)行該驗證,以改善對瀏覽器擴展324或同步客戶端320是否已經受到危害的檢測。但是,由瀏覽器擴展324和同步客戶端324二者進行的獨立驗證可能是耗時并且不必要地低效的。因此,這些組件中只有一個可以執(zhí)行驗證并且向另一個組件傳送指示認證完成的消息,從而消除對于另一個組件執(zhí)行單獨驗證的需要。

圖7是用于執(zhí)行本文所述的過程中的任何一個的計算設備的框圖,其諸如圖1-3的系統(tǒng)的組件中的任何一個。這些系統(tǒng)的組件中的每一個可以在一個或多個計算設備700上實現(xiàn)。在某些方案中,可以將這些系統(tǒng)的多個組件包括在一個計算設備700內。在某些實施方式中,可以跨若干計算設備700來實現(xiàn)組件和存儲設備。

計算設備700包括至少一個通信接口單元、輸入/輸出控制器710、系統(tǒng)存儲器、以及一個或多個數(shù)據(jù)存儲設備。系統(tǒng)存儲器包括至少一個隨機存取存儲器(ram702)以及至少一個只讀存儲器(rom704)。所有這些元件都與中央處理單元(cpu706)通信以促進計算設備700的操作??梢砸栽S多不同的方式來配置計算設備700。例如,計算設備700可以是常規(guī)的獨立計算機,或者替選地,計算設備700的功能可以跨多個計算機系統(tǒng)和架構來分布。替選地,可以將計算機系統(tǒng)虛擬化以提供多個計算設備700的功能。在圖7中,計算設備700經由網絡或本地網絡來鏈接到其他服務器或系統(tǒng)。

可以將計算設備700配置在分布式架構中,其中將數(shù)據(jù)庫和處理器容納在分離的單元或位置中。一些單元執(zhí)行主要處理功能并且最少包含通用控制器或處理器和系統(tǒng)存儲器。在分布式架構實施方式中,這些單元中的每一個都可以經由通信接口單元708來被附接到通信集線器或端口(未示出),其充當與其他服務器、客戶端或用戶計算機以及其他相關設備的主要通信鏈路。通信集線器或端口自身可以具有最小的處理能力,主要充當通信路由器。各種通信協(xié)議可以是系統(tǒng)的一部分,包括但不限于:以太網、sap、atp、gsm、以及tcp/ip。

cpu706包括處理器——諸如一個或多個傳統(tǒng)微處理器以及一個或多個補充的協(xié)處理器——諸如用于從cpu706卸載工作負載的算術協(xié)處理器。cpu706與通信接口單元708以及輸入/輸出控制器710通信,cpu706通過其來與其他設備——諸如其他服務器、用戶終端、或設備通信。通信接口單元708和輸入/輸出控制器710可以包括多個通信信道以例如用于與其他處理器、服務器、或客戶端終端同時通信。

cpu706還與數(shù)據(jù)存儲設備通信。數(shù)據(jù)存儲設備可以包括磁、光或半導體存儲器的適當,并且例如可以包括ram702、rom704、閃存驅動器、光盤——諸如壓縮盤或者硬盤或驅動器。例如,cpu706和數(shù)據(jù)存儲設備均可以分別完全位于單個計算機或其他計算設備內;或通過通信介質相互連接,所述通信介質諸如usb端口、串行端口電纜、同軸電纜、以太網電纜、電話線、射頻收發(fā)器、或其它類似的無線或有線介質、或前述的組合。例如,cpu706可以經由通信接口單元708連接到數(shù)據(jù)存儲設備??梢詫pu706配置為執(zhí)行一個或多個特定處理功能。

例如,數(shù)據(jù)存儲設備可以存儲:(i)計算設備700的操作系統(tǒng)712;(ii)適于根據(jù)本文所述的系統(tǒng)和方法來指引cpu706、并且特別是根據(jù)關于cpu706詳細描述的過程來指引cpu706的一個或多個應用714(例如計算機程序代碼或計算機程序產品);或(iii)適于存儲信息的數(shù)據(jù)庫716,其可以被利用來存儲程序所需的信息。

例如,操作系統(tǒng)712和應用714可以以壓縮、未編譯以及加密的格式存儲,并且可以包括計算機程序代碼。程序的指令可以從除數(shù)據(jù)存儲設備之外的計算機可讀介質——諸如從rom704或從ram702被讀取到處理器的主存儲器中。雖然程序中的指令序列的執(zhí)行使得cpu706執(zhí)行本文所述的過程步驟時,但是可以使用硬連線電路代替軟件指令或者與軟件指令組合以用于本發(fā)明的過程的實現(xiàn)。因此,所述的系統(tǒng)和方法不限于硬件和軟件的任何特定組合。

可以提供合適的計算機程序代碼以用于執(zhí)行與執(zhí)行本文所述的過程相關的一個或多個功能。該程序還可以包括程序元素,諸如操作系統(tǒng)712、數(shù)據(jù)庫管理系統(tǒng)、以及允許處理器經由輸入/輸出控制器710與計算機外圍設備(諸如視頻顯示器、鍵盤、計算機鼠標等等)對接的“設備驅動器”。

本文使用的術語“計算機可讀介質”指代任何非暫時性介質,其向計算設備700的處理器(或本文所述的設備的任何其他處理器)提供指令或參與向其提供指令以供執(zhí)行。這樣的介質可以采取很多形式,包括但不限于非易失性介質和易失性介質。例如,非易失性介質包括光盤、磁盤、或光磁盤、或者集成電路存儲器——諸如閃存。易失性介質包括動態(tài)隨機存取存儲器(dram),其通常構成主存儲器。例如,計算機可讀介質的常見形式包括:軟盤、柔性盤、硬盤、磁帶、任何其它磁介質、cd-rom、dvd、任何其他光學介質、穿孔卡、紙帶、具有孔圖案的任何其它物理介質、ram、prom、eprom、或eeprom(電可擦除可編程只讀存儲器)、flash-eeprom、任何其它存儲器芯片或盒式磁帶、或者計算機能夠從其讀取的任何其它非暫時性介質。

各種形式的計算機可讀介質可以涉及將一個或多個指令的一個或多個序列攜載到cpu706(或本文所述的設備的任何其它處理器)以供執(zhí)行。例如,指令最初可以承載在遠程計算機(未示出)的磁盤上。遠程計算機能夠將指令加載到它的動態(tài)存儲器中,并通過以太網連接、線纜線路、或甚至使用調制解調器的電話線來發(fā)送該指令。計算設備700(例如服務器)本地的通信設備能夠在相應通信線路上接收數(shù)據(jù),并且將該數(shù)據(jù)置于用于處理器的系統(tǒng)總線上。該系統(tǒng)總線將數(shù)據(jù)攜載至主存儲器,該處理器從其檢索并執(zhí)行指令。在被處理器執(zhí)行之前或之后,主存儲器接收的指令可以可選地存儲在存儲器中。此外,可以經由通信端口接收作為電、電磁、或光信號的指令,其是攜載各種類型信息的無線通信或數(shù)據(jù)流的示例性形式。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1