欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

通過(guò)本地服務(wù)器的對(duì)于本地客戶(hù)機(jī)應(yīng)用的事件服務(wù)的制作方法

文檔序號(hào):6497618閱讀:193來(lái)源:國(guó)知局
通過(guò)本地服務(wù)器的對(duì)于本地客戶(hù)機(jī)應(yīng)用的事件服務(wù)的制作方法
【專(zhuān)利摘要】在服務(wù)器/客戶(hù)機(jī)架構(gòu)中,服務(wù)器應(yīng)用和客戶(hù)機(jī)應(yīng)用常常被用不同的語(yǔ)言開(kāi)發(fā)以及在專(zhuān)門(mén)用于每個(gè)應(yīng)用的不同上下文的不同環(huán)境中執(zhí)行(例如,服務(wù)器上的低級(jí)、高性能、平臺(tái)專(zhuān)用的且無(wú)狀態(tài)的指令,以及客戶(hù)機(jī)上的高級(jí)、靈活的、平臺(tái)無(wú)關(guān)的且有狀態(tài)的語(yǔ)言),以及常常在不同的設(shè)備上被執(zhí)行。這些環(huán)境(例如,使用Node.js的服務(wù)器端JavaScript)的會(huì)聚使能提供對(duì)在相同的設(shè)備上執(zhí)行的客戶(hù)機(jī)應(yīng)用服務(wù)的服務(wù)器。本地服務(wù)器可以監(jiān)控在設(shè)備上發(fā)生的本地事件,并且可以代表(例如,經(jīng)由訂閱模型)訂閱本地事件的本地客戶(hù)機(jī)來(lái)執(zhí)行與特定本地事件相關(guān)聯(lián)的一個(gè)或多個(gè)服務(wù)器腳本。這些技術(shù)可以使能本地事件服務(wù)與客戶(hù)機(jī)應(yīng)用以相同的語(yǔ)言和環(huán)境的開(kāi)發(fā),以及使能在本地事件服務(wù)的提供中服務(wù)器端代碼的使用。
【專(zhuān)利說(shuō)明】通過(guò)本地服務(wù)器的對(duì)于本地客戶(hù)機(jī)應(yīng)用的事件服務(wù)
【背景技術(shù)】
[0001]在計(jì)算的領(lǐng)域內(nèi),許多場(chǎng)景牽涉用于使能應(yīng)用在客戶(hù)機(jī)上的執(zhí)行的服務(wù)器-客戶(hù)機(jī)架構(gòu)。作為第一例子,Web服務(wù)器設(shè)備可以將包括web應(yīng)用的指令和/或內(nèi)容提供給第二設(shè)備以用于在web瀏覽器內(nèi)執(zhí)行。作為第二例子,應(yīng)用商店可以提供包括可部署本地應(yīng)用的指令,所述可部署本地應(yīng)用可以完全地在第二設(shè)備上執(zhí)行。作為第三例子,數(shù)據(jù)庫(kù)服務(wù)器可以提供數(shù)據(jù)以便于應(yīng)用在第二設(shè)備上的執(zhí)行。
[0002]鑒于這些和其它場(chǎng)景,服務(wù)器/客戶(hù)機(jī)架構(gòu)已導(dǎo)致在每個(gè)設(shè)備上執(zhí)行的專(zhuān)門(mén)技術(shù)。在一些情況下,鑒于服務(wù)器和客戶(hù)機(jī)的不同情況,這樣的專(zhuān)門(mén)化導(dǎo)致直接相反的開(kāi)發(fā)。例如,服務(wù)器設(shè)備常常牽涉專(zhuān)門(mén)用于服務(wù)器上下文的代碼,諸如代表若干客戶(hù)機(jī)同時(shí)執(zhí)行應(yīng)用;以可執(zhí)行的且可擴(kuò)展的事項(xiàng)(matter)履行請(qǐng)求(例如,執(zhí)行高度優(yōu)化的代碼以便促進(jìn)請(qǐng)求的履行,以及減少或消除對(duì)用戶(hù)接口的依賴(lài));減少有狀態(tài)的交互,其中服務(wù)器存儲(chǔ)與第一事務(wù)相關(guān)聯(lián)的數(shù)據(jù)以便履行第二事務(wù);以及驗(yàn)證和隔離從不同的客戶(hù)機(jī)接收到的請(qǐng)求的執(zhí)行上下文以便減少安全漏洞。類(lèi)似地,客戶(hù)機(jī)設(shè)備常常牽涉專(zhuān)門(mén)用于客戶(hù)機(jī)上下文的代碼,諸如以不取決于特定設(shè)備配置的平臺(tái)無(wú)關(guān)語(yǔ)言對(duì)指令的編碼;對(duì)用來(lái)在web瀏覽器內(nèi)執(zhí)行的指令的配置;魯棒的用戶(hù)接口的提供;以及信息在客戶(hù)機(jī)上的存儲(chǔ)(例如,以存儲(chǔ)在web瀏覽器高速緩存中的cookie的形式存儲(chǔ))以便為促成第二事務(wù)存留來(lái)自第一事務(wù)的信息。以這些和其它方式,服務(wù)器和客戶(hù)機(jī)上下文的專(zhuān)門(mén)化已導(dǎo)致在這些不同的設(shè)備上執(zhí)行的非常不同的類(lèi)型的指令。

【發(fā)明內(nèi)容】

[0003]本概要被提供來(lái)以簡(jiǎn)化的形式介紹在下面【具體實(shí)施方式】中被進(jìn)一步描述的概念的選擇。本概要不旨在識(shí)別所要求保護(hù)的主題的關(guān)鍵因素或必要特征,也不旨在被用來(lái)限制所要求保護(hù)的主題的范圍。
[0004]雖然服務(wù)器和客戶(hù)機(jī)上下文的相異的專(zhuān)門(mén)化已推動(dòng)了每個(gè)類(lèi)型的設(shè)備的性能,但是這樣的相異引起各種困難。作為一個(gè)這樣的例子,如果服務(wù)器執(zhí)行一種類(lèi)型的代碼(例如,針對(duì)服務(wù)器的能力被特別配置的指令)并且客戶(hù)機(jī)執(zhí)行第二類(lèi)型的代碼(例如,可以在許多設(shè)備上等同地執(zhí)行的靈活的且平臺(tái)無(wú)關(guān)的指令),則這樣的差異可能由于語(yǔ)言、應(yīng)用編程接口(API)以及數(shù)據(jù)標(biāo)準(zhǔn)中的差異而使服務(wù)器應(yīng)用和客戶(hù)機(jī)應(yīng)用的互操作式開(kāi)發(fā)復(fù)雜化。附加地,開(kāi)發(fā)者必須理解兩種不同的語(yǔ)言和執(zhí)行環(huán)境,以及用于轉(zhuǎn)換在其間交換的數(shù)據(jù)類(lèi)型和對(duì)象的技術(shù)。結(jié)果,最近的開(kāi)發(fā)已在這些環(huán)境的開(kāi)發(fā)中牽涉到會(huì)聚,諸如Node,js模型的開(kāi)發(fā)和普及,其牽涉具有專(zhuān)門(mén)用于服務(wù)器上下文的語(yǔ)言構(gòu)造和API的服務(wù)器端JavaScript代碼,從而使能服務(wù)器代碼和客戶(hù)機(jī)代碼用相同的語(yǔ)言的開(kāi)發(fā)并且共享API和數(shù)據(jù)類(lèi)型。然而,這樣的會(huì)聚服務(wù)器和客戶(hù)機(jī)開(kāi)發(fā)環(huán)境典型地被應(yīng)用于在服務(wù)器設(shè)備上執(zhí)行的服務(wù)器應(yīng)用和在一個(gè)或多個(gè)客戶(hù)機(jī)設(shè)備上執(zhí)行的客戶(hù)機(jī)應(yīng)用的交互中。
[0005]本文中所呈現(xiàn)的是用于應(yīng)用會(huì)聚(convergent)的服務(wù)器和客戶(hù)機(jī)開(kāi)發(fā)環(huán)境以供在單個(gè)設(shè)備上使用的技術(shù)。特別地,這樣的技術(shù)可以使得設(shè)備能夠通過(guò)在相同的設(shè)備上提供的本地服務(wù)器代表在該設(shè)備上執(zhí)行的客戶(hù)機(jī)應(yīng)用來(lái)執(zhí)行與本地事件有關(guān)的處理。例如,設(shè)備可以執(zhí)行本地服務(wù)器(諸如web服務(wù)器),所述本地服務(wù)器被配置成監(jiān)控本地設(shè)備事件,并且被配置成接受在相同的設(shè)備上的客戶(hù)機(jī)應(yīng)用的訂閱一個(gè)或多個(gè)本地事件的請(qǐng)求。本地服務(wù)器還可以關(guān)聯(lián)一個(gè)或多個(gè)服務(wù)器腳本,并且在檢測(cè)到客戶(hù)機(jī)應(yīng)用所訂閱的本地事件的發(fā)生之后,本地服務(wù)器可以代表本地設(shè)備執(zhí)行與本地事件相關(guān)聯(lián)的(一個(gè)或多個(gè))服務(wù)器腳本。
[0006]例如,本地事件可以包括諸如傳入的語(yǔ)音通信會(huì)話之類(lèi)的移動(dòng)事件,并且客戶(hù)機(jī)應(yīng)用可以針對(duì)語(yǔ)音通信會(huì)話請(qǐng)求某種特定處理,諸如記錄會(huì)話。然而,在移動(dòng)設(shè)備上執(zhí)行的客戶(hù)機(jī)應(yīng)用在傳入語(yǔ)音通信會(huì)話時(shí)可能不正在執(zhí)行,以及因此可能沒(méi)有正在監(jiān)控這樣的本地事件的發(fā)生。替換地,移動(dòng)設(shè)備的安全模型通??赡芙箍蛻?hù)機(jī)應(yīng)用與如安全或服務(wù)質(zhì)量測(cè)量這樣的本地事件交互(例如,本地應(yīng)用可能正在設(shè)備的隔離構(gòu)造內(nèi)(諸如在web瀏覽器內(nèi))執(zhí)行)。相反,并且根據(jù)本文中所呈現(xiàn)的技術(shù),客戶(hù)機(jī)應(yīng)用可以向在相同的設(shè)備上的本地服務(wù)器(連續(xù)地執(zhí)行并且在web瀏覽器外)發(fā)出識(shí)別傳入的語(yǔ)音通信會(huì)話本地事件的訂閱請(qǐng)求。在檢測(cè)到這樣的事件之后,本地服務(wù)器可以代表客戶(hù)機(jī)應(yīng)用執(zhí)行與本地事件有關(guān)的一個(gè)或多個(gè)服務(wù)器腳本。而且,服務(wù)器腳本可以與客戶(hù)機(jī)應(yīng)用在類(lèi)似的開(kāi)發(fā)環(huán)境中被設(shè)計(jì)(例如,服務(wù)器腳本和本地客戶(hù)機(jī)應(yīng)用兩者都可以用JavaScript編寫(xiě),其中服務(wù)器腳本利用Node, js服務(wù)器端API),從而便于以一致的且兼容的方式開(kāi)發(fā)這些交互式應(yīng)用。這樣的優(yōu)點(diǎn)可以通過(guò)本文中所呈現(xiàn)的服務(wù)器/客戶(hù)機(jī)架構(gòu)的變例是可實(shí)現(xiàn)的。
[0007]為了實(shí)現(xiàn)前面的和相關(guān)的目的,以下描述和附圖闡述了特定的說(shuō)明性方面和實(shí)施方案。這些僅指示了一個(gè)或多個(gè)方面可以被采用的各種方式中的一些。本公開(kāi)內(nèi)容的其它方面、優(yōu)點(diǎn)以及新穎特征當(dāng)被結(jié)合附圖考慮時(shí)從以下【具體實(shí)施方式】將變得明顯。
【專(zhuān)利附圖】

【附圖說(shuō)明】
[0008]圖1是圖示了用于履行與在客戶(hù)機(jī)設(shè)備和服務(wù)器設(shè)備上出現(xiàn)的事件有關(guān)的客戶(hù)機(jī)應(yīng)用的請(qǐng)求的客戶(hù)機(jī)/服務(wù)器架構(gòu)的示范性場(chǎng)景的圖解。
[0009]圖2是圖示了用于依照本文中所呈現(xiàn)的技術(shù)來(lái)履行與本地事件有關(guān)的客戶(hù)機(jī)應(yīng)用的請(qǐng)求的客戶(hù)機(jī)/服務(wù)器架構(gòu)的示范性場(chǎng)景的圖解。
[0010]圖3是將設(shè)備配置成依照本文中所呈現(xiàn)的技術(shù)來(lái)履行與本地事件有關(guān)的客戶(hù)機(jī)應(yīng)用的請(qǐng)求的示范性方法的圖解。
[0011]圖4是圖示了用于依照本文中所呈現(xiàn)的技術(shù)來(lái)履行與本地事件有關(guān)的客戶(hù)機(jī)應(yīng)用的請(qǐng)求的示范性系統(tǒng)的構(gòu)件框圖。
[0012]圖5是包括處理器可執(zhí)行指令的示范性計(jì)算機(jī)可讀介質(zhì)的圖解,所述處理器可執(zhí)行指令被配置成體現(xiàn)本文中所闡述的規(guī)定中的一個(gè)或多個(gè)。
[0013]圖6是特寫(xiě)事件訂閱模型的示范性場(chǎng)景的圖解,其使得本地應(yīng)用能夠訂閱由設(shè)備的構(gòu)件所生成的本地事件,相應(yīng)的構(gòu)件由構(gòu)件地址來(lái)識(shí)別。
[0014]圖7是特寫(xiě)設(shè)備網(wǎng)的示范性場(chǎng)景的圖解,所述設(shè)備網(wǎng)包括分別執(zhí)行本地服務(wù)器的設(shè)備的集合,所述本地服務(wù)器被配置成接收和履行從本地客戶(hù)機(jī)應(yīng)用和在設(shè)備網(wǎng)的其它設(shè)備上執(zhí)行的遠(yuǎn)程客戶(hù)機(jī)應(yīng)用接收到的事件訂閱請(qǐng)求。
[0015]圖8圖示了其中本文中所闡述的規(guī)定中的一個(gè)或多個(gè)可以被實(shí)施的示范性計(jì)算環(huán)境。
【具體實(shí)施方式】
[0016]現(xiàn)參考附圖來(lái)描述所要求保護(hù)的主題,其中同樣的附圖標(biāo)記貫穿全文被用來(lái)指同樣的元素。在以下描述中,出于解釋的目的,許多具體細(xì)節(jié)被闡述以便提供對(duì)所要求保護(hù)的主題的徹底理解。然而,可能顯然的是,所要求保護(hù)的主題可以在沒(méi)有這些具體細(xì)節(jié)的情況下被實(shí)踐。在其它實(shí)例中,結(jié)構(gòu)和設(shè)備被以框圖形式示出以便便于對(duì)所要求保護(hù)的主題進(jìn)行描述。
[0017]A.引言
在計(jì)算領(lǐng)域內(nèi),許多場(chǎng)景牽涉服務(wù)器/客戶(hù)機(jī)架構(gòu),所述服務(wù)器/客戶(hù)機(jī)架構(gòu)包括服務(wù)器應(yīng)用(例如,web服務(wù)器),其代表一個(gè)或多個(gè)客戶(hù)機(jī)應(yīng)用提供一個(gè)或多個(gè)服務(wù)。作為第一例子,服務(wù)可以包括提供要在客戶(hù)機(jī)設(shè)備的web瀏覽器內(nèi)被再現(xiàn)的web內(nèi)容(包括網(wǎng)頁(yè)和web應(yīng)用)。作為第二例子,服務(wù)可以包括應(yīng)用商店,所述應(yīng)用商店被配置成存儲(chǔ)可在各種設(shè)備上執(zhí)行的一組應(yīng)用,并且被配置成向特定設(shè)備提供可以在其上被執(zhí)行的一個(gè)或多個(gè)應(yīng)用。作為第三例子,服務(wù)可以包括存儲(chǔ)數(shù)據(jù)(例如,在數(shù)據(jù)庫(kù)中)和提供這樣的數(shù)據(jù)以供在在相應(yīng)的客戶(hù)機(jī)設(shè)備上執(zhí)行的各種“數(shù)據(jù)驅(qū)動(dòng)的”應(yīng)用內(nèi)使用。在傳統(tǒng)的模型中,服務(wù)器應(yīng)用作為設(shè)備的駐留進(jìn)程運(yùn)行以便等待由客戶(hù)機(jī)應(yīng)用所發(fā)起的連接,接收客戶(hù)機(jī)應(yīng)用的請(qǐng)求,并且履行這樣的請(qǐng)求以便將服務(wù)提供給客戶(hù)機(jī)應(yīng)用。
[0018]在許多這樣的場(chǎng)景中,服務(wù)器應(yīng)用在服務(wù)器設(shè)備上執(zhí)行,以及客戶(hù)機(jī)應(yīng)用在一個(gè)或多個(gè)客戶(hù)機(jī)設(shè)備上執(zhí)行。設(shè)備可以呈現(xiàn)適合于每個(gè)角色的不同能力。例如,客戶(hù)機(jī)設(shè)備可以包括代表用戶(hù)執(zhí)行客戶(hù)機(jī)應(yīng)用的面向用戶(hù)的設(shè)備(例如,工作站、膝上型電腦、平板、移動(dòng)電話或其它器具),并且可以被專(zhuān)門(mén)用于這樣的交互(例如,包括能夠觸摸的輸入設(shè)備以及高質(zhì)量顯示器和聲音構(gòu)件)。相反,服務(wù)器設(shè)備可以包括面向服務(wù)的設(shè)備(例如,缺少專(zhuān)用顯示構(gòu)件的“無(wú)外設(shè)”服務(wù)器構(gòu)件),并且可以被專(zhuān)門(mén)用于以高性能的方式(例如,具有高吞吐量處理器、大容量數(shù)據(jù)高速緩存以及豐富的網(wǎng)絡(luò)資源)滿(mǎn)足服務(wù)請(qǐng)求。服務(wù)器設(shè)備可以包括以服務(wù)器群的方式互操作的若干服務(wù)器設(shè)備。也就是說(shuō),客戶(hù)機(jī)設(shè)備可以被配置成提供吸引人的用戶(hù)體驗(yàn),然而服務(wù)器設(shè)備可以被配置成促進(jìn)對(duì)服務(wù)請(qǐng)求的處置(handling)和這樣的設(shè)備的可靠性(例如,通過(guò)在服務(wù)器群中提供的故障轉(zhuǎn)移能力來(lái)實(shí)現(xiàn))。
[0019]鑒于這些和其它考慮事項(xiàng),用于開(kāi)發(fā)服務(wù)器應(yīng)用的技術(shù)典型地在若干顯著的方面不同于用于開(kāi)發(fā)客戶(hù)機(jī)應(yīng)用的技術(shù)。作為第一例子,客戶(hù)機(jī)應(yīng)用常常被設(shè)計(jì)成在各種各樣的客戶(hù)機(jī)設(shè)備上執(zhí)行,并且因此可以用平臺(tái)無(wú)關(guān)的語(yǔ)言(例如,JavaScript,其能夠在任何web瀏覽器內(nèi)執(zhí)行)開(kāi)發(fā)。相反,服務(wù)器應(yīng)用常常使用針對(duì)服務(wù)器的特定配置被高度地調(diào)優(yōu)(tune)和定制的開(kāi)發(fā)技術(shù)來(lái)開(kāi)發(fā)以便提升性能。作為第二例子,客戶(hù)機(jī)應(yīng)用可以被設(shè)計(jì)為“有狀態(tài)的”,即,存留關(guān)于由客戶(hù)機(jī)應(yīng)用向服務(wù)器所發(fā)出的第一請(qǐng)求的一些信息以便為由客戶(hù)機(jī)應(yīng)用向服務(wù)器設(shè)備所發(fā)出的第二請(qǐng)求提供上下文和連續(xù)性。例如,web瀏覽器常常被配置成將“cookies”存儲(chǔ)在用戶(hù)的機(jī)器上以便使得服務(wù)器以后能夠再次識(shí)別客戶(hù)機(jī)設(shè)備。相反,服務(wù)器應(yīng)用常常被以“無(wú)狀態(tài)的”方式設(shè)計(jì),借此,關(guān)于任何特定的第一事務(wù)所存儲(chǔ)的數(shù)據(jù)被減少以便在代表許多客戶(hù)機(jī)應(yīng)用履行時(shí)提高服務(wù)器應(yīng)用的可擴(kuò)展性。
[0020]圖1呈現(xiàn)了特寫(xiě)在服務(wù)器設(shè)備102上執(zhí)行的服務(wù)器應(yīng)用104和在客戶(hù)機(jī)設(shè)備106上執(zhí)行的客戶(hù)機(jī)應(yīng)用108的交互的示范性場(chǎng)景100的圖解。服務(wù)器設(shè)備102可以被連接到網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng)或局域網(wǎng)(LAN))并且被配置成等待來(lái)自一個(gè)或多個(gè)客戶(hù)機(jī)應(yīng)用108的連接。在這樣的連接之后,客戶(hù)機(jī)應(yīng)用108可以將一個(gè)或多個(gè)請(qǐng)求提供給服務(wù)器應(yīng)用104,諸如對(duì)web內(nèi)容、可在客戶(hù)機(jī)設(shè)備106上執(zhí)行的應(yīng)用或由“數(shù)據(jù)驅(qū)動(dòng)的”應(yīng)用所利用的數(shù)據(jù)的請(qǐng)求。服務(wù)器應(yīng)用104可以代表客戶(hù)機(jī)應(yīng)用108履行這樣的請(qǐng)求,并且客戶(hù)機(jī)設(shè)備106可以將這樣的服務(wù)的結(jié)果呈現(xiàn)給用戶(hù)110。為了滿(mǎn)足這些設(shè)備的不同角色,服務(wù)器應(yīng)用104常常被特別配置成利用服務(wù)器設(shè)備102的特定能力。相反,客戶(hù)機(jī)應(yīng)用108常常被用高級(jí)語(yǔ)言(諸如JavaScript)來(lái)提供,所述高級(jí)語(yǔ)言可以在各種各樣的客戶(hù)機(jī)設(shè)備106上執(zhí)行,而不管特定客戶(hù)機(jī)設(shè)備106的能力如何。
[0021]作為特定例子,服務(wù)器應(yīng)用104可以被提供來(lái)向客戶(hù)機(jī)應(yīng)用108和/或客戶(hù)機(jī)設(shè)備106通知由服務(wù)器設(shè)備102所檢測(cè)到的服務(wù)器事件112,諸如服務(wù)器設(shè)備102對(duì)新的數(shù)據(jù)的接收或?qū)Ρ镜丨h(huán)境條件的監(jiān)控(例如,對(duì)服務(wù)器設(shè)備102被定位于其中的環(huán)境的天氣監(jiān)控或圖像捕獲)??蛻?hù)機(jī)應(yīng)用108可以請(qǐng)求這樣的服務(wù)器事件112的通知,并且在檢測(cè)到服務(wù)器事件112之后,服務(wù)器應(yīng)用104可以將服務(wù)器事件通知114發(fā)送到客戶(hù)機(jī)應(yīng)用108。附加地,客戶(hù)機(jī)設(shè)備106可以監(jiān)控客戶(hù)機(jī)設(shè)備事件116,諸如從用戶(hù)110或輸入構(gòu)件所接收到的用戶(hù)輸入,并且可以執(zhí)行客戶(hù)機(jī)設(shè)備事件監(jiān)控118來(lái)檢測(cè)和報(bào)告這樣的服務(wù)。例如,客戶(hù)機(jī)設(shè)備106可以包括硬件驅(qū)動(dòng)器,所述硬件驅(qū)動(dòng)器被配置成監(jiān)控硬件事件并且將報(bào)告這樣的硬件事件的客戶(hù)機(jī)設(shè)備事件通知120提供給客戶(hù)機(jī)應(yīng)用108。以這種方式,以不同的角色并且在不同的設(shè)備上執(zhí)行的服務(wù)器應(yīng)用104和客戶(hù)機(jī)應(yīng)用108可以互操作以便向客戶(hù)機(jī)應(yīng)用108告知由服務(wù)器應(yīng)用104所檢測(cè)的服務(wù)器事件112和由客戶(hù)機(jī)設(shè)備事件監(jiān)控118所檢測(cè)到的客戶(hù)機(jī)設(shè)備事件116。
[0022]然而,在圖1的示范性場(chǎng)景100中所呈現(xiàn)的架構(gòu)可能呈現(xiàn)一些缺點(diǎn)。特別地,鑒于服務(wù)器設(shè)備102的專(zhuān)門(mén)屬性而開(kāi)發(fā)服務(wù)器應(yīng)用104可以大大地不同于針對(duì)各種各樣設(shè)備用通用方式語(yǔ)言開(kāi)發(fā)客戶(hù)機(jī)應(yīng)用108。由于不同的開(kāi)發(fā)環(huán)境和語(yǔ)言,開(kāi)發(fā)者可能必須理解雙方開(kāi)發(fā)環(huán)境并且針對(duì)服務(wù)器應(yīng)用104和客戶(hù)機(jī)應(yīng)用108的互操作而協(xié)商差異(例如,應(yīng)付可用的應(yīng)用編程環(huán)境(API)和數(shù)據(jù)格式轉(zhuǎn)換中的差異)。為了調(diào)和這樣的差異,較新的服務(wù)器應(yīng)用開(kāi)發(fā)模型已與客戶(hù)機(jī)應(yīng)用開(kāi)發(fā)會(huì)聚以便在這樣的互操作應(yīng)用的開(kāi)發(fā)中提供一致性。作為第一例子,對(duì)于服務(wù)器應(yīng)用來(lái)說(shuō)JavaScript在傳統(tǒng)上已被認(rèn)為是不夠好性能的,但在開(kāi)發(fā)社區(qū)之中對(duì)JavaScript的廣泛熟悉已導(dǎo)致了 Node, js的開(kāi)發(fā),JavaScript模塊提供JavaScript代碼的服務(wù)器端執(zhí)行。作為第二例子,技術(shù)已被設(shè)計(jì)成使得服務(wù)器能夠例如通過(guò)將JavaScript編譯成可以在服務(wù)器設(shè)備102上更快地執(zhí)行的本機(jī)代碼(native code)來(lái)以更高性能的方式執(zhí)行更高級(jí)語(yǔ)言(諸如JavaScript)。開(kāi)發(fā)者因此可以使用相同的語(yǔ)言和類(lèi)似的API來(lái)開(kāi)發(fā)服務(wù)器應(yīng)用104和客戶(hù)機(jī)應(yīng)用108兩者。鑒于這樣的會(huì)聚技術(shù),技術(shù)可以被設(shè)計(jì)成在新的場(chǎng)景中利用服務(wù)器端代碼。
[0023]B.呈現(xiàn)的技術(shù)
本文中所呈現(xiàn)的是一個(gè)這樣的場(chǎng)景,其中服務(wù)器應(yīng)用104可以提供與客戶(hù)機(jī)設(shè)備事件116有關(guān)的服務(wù),客戶(hù)機(jī)設(shè)備事件116和客戶(hù)機(jī)設(shè)備106相關(guān)聯(lián)。特別地,服務(wù)器應(yīng)用104可以在設(shè)備106上執(zhí)行以便將本地事件有關(guān)的服務(wù)提供給在相同的設(shè)備上執(zhí)行的一個(gè)或多個(gè)客戶(hù)機(jī)應(yīng)用108。例如,傳統(tǒng)的web服務(wù)器可以在客戶(hù)機(jī)設(shè)備107上被動(dòng)但連續(xù)地執(zhí)行,并且可以等待由在相同的客戶(hù)機(jī)設(shè)備106上的web瀏覽器內(nèi)執(zhí)行的一個(gè)或多個(gè)本地客戶(hù)機(jī)web應(yīng)用所發(fā)起的對(duì)本地事件服務(wù)的請(qǐng)求。這樣的請(qǐng)求可以包括例如向客戶(hù)機(jī)設(shè)備106通知本地事件,或代表客戶(hù)機(jī)應(yīng)用108來(lái)應(yīng)用與本地事件有關(guān)的某種處理。通過(guò)使得服務(wù)器應(yīng)用104能夠監(jiān)控這樣的客戶(hù)機(jī)設(shè)備事件116并且對(duì)設(shè)備事件116應(yīng)用執(zhí)行,這種模型可以從客戶(hù)機(jī)應(yīng)用108卸載這種監(jiān)控和計(jì)算負(fù)擔(dān),這可以應(yīng)用戶(hù)110的請(qǐng)求以高度交互式的特設(shè)(ad hoc)方式執(zhí)行(例如,即便在客戶(hù)機(jī)應(yīng)用108被用戶(hù)110終止之后,客戶(hù)機(jī)設(shè)備事件116的監(jiān)控和處置也可以繼續(xù))。附加地,這種模型可以使能服務(wù)器應(yīng)用104與客戶(hù)機(jī)設(shè)備事件116的交互,其中這樣的交互可能未被客戶(hù)機(jī)應(yīng)用108許可。例如,客戶(hù)機(jī)應(yīng)用108可以在web瀏覽器內(nèi)執(zhí)行,所述web瀏覽器由于安全原因使客戶(hù)機(jī)應(yīng)用108與本地客戶(hù)機(jī)設(shè)備事件116隔離;然而,客戶(hù)機(jī)應(yīng)用108可以請(qǐng)求服務(wù)器應(yīng)用104 (其在web瀏覽器外面執(zhí)行并且具有更大的容許的能力集)以可驗(yàn)證的且可信的方式與客戶(hù)機(jī)設(shè)備事件116交互。
[0024]圖2呈現(xiàn)了特寫(xiě)根據(jù)本文中所呈現(xiàn)的技術(shù)配置的客戶(hù)機(jī)/服務(wù)器架構(gòu)的示范性場(chǎng)景200的圖解。在這個(gè)示范性場(chǎng)景200中,客戶(hù)機(jī)設(shè)備106執(zhí)行服務(wù)器應(yīng)用104和一個(gè)或多個(gè)客戶(hù)機(jī)應(yīng)用108,并且可以使得客戶(hù)機(jī)應(yīng)用108能夠通過(guò)與客戶(hù)機(jī)服務(wù)器應(yīng)用104的交互來(lái)與本地事件206交互。特別地,服務(wù)器應(yīng)用104可以包括一個(gè)或多個(gè)服務(wù)器腳本202,所述一個(gè)或多個(gè)服務(wù)器腳本202當(dāng)在各種本地事件206的上下文中被執(zhí)行時(shí)提供不同類(lèi)型的處理。客戶(hù)機(jī)應(yīng)用108可以將事件訂閱請(qǐng)求204呈現(xiàn)給服務(wù)器應(yīng)用104,事件訂閱請(qǐng)求204識(shí)別可能在客戶(hù)機(jī)設(shè)備106內(nèi)出現(xiàn)的一個(gè)或多個(gè)特定本地事件206。服務(wù)器應(yīng)用104可以通過(guò)使一個(gè)或多個(gè)服務(wù)器腳本202與本地事件206相關(guān)聯(lián)來(lái)履行事件訂閱請(qǐng)求204,使得當(dāng)這樣的本地事件206發(fā)生時(shí),服務(wù)器應(yīng)用104可以代表所訂閱的客戶(hù)機(jī)應(yīng)用108來(lái)執(zhí)行服務(wù)器腳本202的服務(wù)器腳本執(zhí)行208。
[0025]在圖2的示范性場(chǎng)景200中所呈現(xiàn)的架構(gòu)模型相對(duì)于其它本地事件處理模型可以使能各種優(yōu)點(diǎn)。作為第一例子,這種架構(gòu)可以使得服務(wù)器應(yīng)用104能夠執(zhí)行對(duì)本地事件206的連續(xù)后臺(tái)監(jiān)控和可信服務(wù)器腳本202的執(zhí)行從而提供本地事件206的可信處理,然而不可信客戶(hù)機(jī)應(yīng)用104可以被間歇地且以不可信方式執(zhí)行(例如,在web瀏覽器的隔離構(gòu)造內(nèi))。作為第二例子,提供一個(gè)服務(wù)器應(yīng)用104以便監(jiān)控許多各種不同的本地事件206并且對(duì)其應(yīng)用處理可能是比將若干客戶(hù)機(jī)應(yīng)用108中的每一個(gè)配置成監(jiān)控本地事件206的相同集合更高效的。作為第三例子,服務(wù)器腳本202可以與客戶(hù)機(jī)應(yīng)用104在類(lèi)似的開(kāi)發(fā)環(huán)境中被開(kāi)發(fā)(例如,服務(wù)器腳本202可以利用Node, js JavaScript服務(wù)器端編程模型,以及客戶(hù)機(jī)應(yīng)用104可以作為在客戶(hù)機(jī)設(shè)備102的web瀏覽器內(nèi)執(zhí)行的客戶(hù)機(jī)端JavaScript被開(kāi)發(fā))。例如,本地事件206可以包括客戶(hù)機(jī)應(yīng)用104常常未被許可直接地處理的事件,諸如低級(jí)硬件事件或在客戶(hù)機(jī)應(yīng)用104被禁止從其進(jìn)行交互的、客戶(hù)機(jī)設(shè)備102的不同進(jìn)程內(nèi)出現(xiàn)的事件。作為第四例子,通過(guò)在相同用戶(hù)設(shè)備上處理信息而不是發(fā)送信息作為對(duì)在遠(yuǎn)程設(shè)備上的服務(wù)的調(diào)用,這些技術(shù)促使了用戶(hù)可能不希望傳播的信息的隔離,所述信息諸如用戶(hù)個(gè)人的信息(例如,用戶(hù)的身份和位置)和/或安全信息(例如,密碼)。作為第五例子,要被服務(wù)器在相同設(shè)備上執(zhí)行的客戶(hù)機(jī)應(yīng)用的服務(wù)中執(zhí)行的應(yīng)用的編程場(chǎng)景可以提供新穎的計(jì)算場(chǎng)景,并且可以使能?chē)@這樣的應(yīng)用的新的市場(chǎng)的開(kāi)發(fā)。這些和其它優(yōu)點(diǎn)可能可通過(guò)在圖2的示范性場(chǎng)景200中所圖示的架構(gòu)和本文中所呈現(xiàn)的技術(shù)實(shí)現(xiàn)。[0026]C.示范性實(shí)施例
圖3呈現(xiàn)了本文中所呈現(xiàn)的技術(shù)的第一示范性實(shí)施例,其被圖示為在具有處理器并且執(zhí)行至少一個(gè)本地客戶(hù)機(jī)應(yīng)用108的設(shè)備上履行請(qǐng)求的示范性方法300。示范性方法300可以例如作為在設(shè)備的存儲(chǔ)器構(gòu)件中存儲(chǔ)的指令的集合被實(shí)施,所述存儲(chǔ)器構(gòu)件諸如存儲(chǔ)器電路、硬盤(pán)驅(qū)動(dòng)器的盤(pán)片、固態(tài)存儲(chǔ)設(shè)備或磁盤(pán)或光盤(pán),并且可以被組織成:當(dāng)在設(shè)備上執(zhí)行時(shí)使設(shè)備根據(jù)本文中所呈現(xiàn)的技術(shù)來(lái)操作。示范性方法300在302處開(kāi)始,并且牽涉在設(shè)備的處理器上執(zhí)行304指令。具體地,這些指令可以被配置成生成306使至少一個(gè)服務(wù)器腳本202與可能在設(shè)備上出現(xiàn)的至少一個(gè)本地事件206相關(guān)聯(lián)的本地服務(wù)器。指令還被配置成:在從本地客戶(hù)機(jī)應(yīng)用108接收到指定所選擇的本地事件206的事件訂閱請(qǐng)求204之后,使所選擇的本地事件206與本地客戶(hù)機(jī)應(yīng)用108相關(guān)聯(lián)308。指令還被配置成:在檢測(cè)到與至少一個(gè)服務(wù)器腳本202和本地客戶(hù)機(jī)應(yīng)用108相關(guān)聯(lián)的本地事件之后,代表本地客戶(hù)機(jī)應(yīng)用108在本地服務(wù)器內(nèi)執(zhí)行310與本地事件206相關(guān)聯(lián)并且與本地事件206有關(guān)的服務(wù)器腳本202。已經(jīng)通過(guò)利用在相同的設(shè)備上執(zhí)行的本地服務(wù)器代表本地客戶(hù)機(jī)應(yīng)用108實(shí)現(xiàn)了本地事件206的處理,示范性方法300實(shí)現(xiàn)了本文中所呈現(xiàn)的技術(shù),并且所以在312處結(jié)束。
[0027]圖4呈現(xiàn)了本文中所呈現(xiàn)的技術(shù)的第二示范性實(shí)施例,其被圖示為示范性場(chǎng)景400,示范性場(chǎng)景400特寫(xiě)了被配置成在具有執(zhí)行至少一個(gè)本地客戶(hù)機(jī)應(yīng)用108的處理器404的設(shè)備402上履行請(qǐng)求的示范性系統(tǒng)406。示范性系統(tǒng)406可以例如作為被存儲(chǔ)在設(shè)備402的存儲(chǔ)器構(gòu)件中的指令被實(shí)施并且被配置成:當(dāng)在處理器404上被執(zhí)行時(shí),使設(shè)備402根據(jù)本文中所呈現(xiàn)的技術(shù)來(lái)操作。示范性系統(tǒng)406包括被配置成使至少一個(gè)服務(wù)器腳本202與至少一個(gè)本地事件206相關(guān)聯(lián)的本地服務(wù)器構(gòu)件408。示范性系統(tǒng)406還包括本地服務(wù)器綁定構(gòu)件410,所述本地服務(wù)器綁定構(gòu)件410被配置成:在從客戶(hù)機(jī)應(yīng)用108接收到指定所選擇的本地事件206的事件訂閱請(qǐng)求204之后,使所選擇的本地事件206與本地客戶(hù)機(jī)應(yīng)用108相關(guān)聯(lián);以及,在檢測(cè)到與至少一個(gè)服務(wù)器腳本202和客戶(hù)機(jī)應(yīng)用108相關(guān)聯(lián)的本地事件206之后,代表客戶(hù)機(jī)應(yīng)用108在本地服務(wù)器構(gòu)件408內(nèi)執(zhí)行與本地事件206相關(guān)聯(lián)并且與本地事件206有關(guān)的服務(wù)器腳本202。通過(guò)監(jiān)控本地事件206的發(fā)生并且代表客戶(hù)機(jī)應(yīng)用108響應(yīng)于本地事件206來(lái)執(zhí)行服務(wù)器腳本202,示范性系統(tǒng)406在設(shè)備402內(nèi)實(shí)現(xiàn)了本文中所呈現(xiàn)的技術(shù)的應(yīng)用。
[0028]再一個(gè)實(shí)施例牽涉計(jì)算機(jī)可讀介質(zhì),其包括被配置成應(yīng)用本文中所呈現(xiàn)的技術(shù)的處理器可執(zhí)行指令。這樣的計(jì)算機(jī)可讀媒體可以包括例如牽涉對(duì)計(jì)算機(jī)可讀指令的集合進(jìn)行編碼的有形設(shè)備的計(jì)算機(jī)可讀存儲(chǔ)媒體,諸如存儲(chǔ)器半導(dǎo)體(例如,利用靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)和/或同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)技術(shù)的半導(dǎo)體)、硬盤(pán)驅(qū)動(dòng)器的盤(pán)片、閃速存儲(chǔ)器設(shè)備,或磁盤(pán)或光盤(pán)(諸如CD-R、DVD-R或軟盤(pán)),所述計(jì)算機(jī)可讀指令當(dāng)被設(shè)備的處理器執(zhí)行時(shí),使設(shè)備實(shí)施本文中所呈現(xiàn)的技術(shù)。這樣的計(jì)算機(jī)可讀媒體還可以包括(作為不同于計(jì)算機(jī)可讀存儲(chǔ)媒體的一類(lèi)技術(shù))各種類(lèi)型的通信媒體,諸如可以通過(guò)各種物理現(xiàn)象被傳播的信號(hào)(例如,電磁信號(hào)、聲波信號(hào)或光學(xué)信號(hào))以及在各種有線場(chǎng)景(例如,經(jīng)由以太網(wǎng)或光纖電纜)和/或無(wú)線場(chǎng)景(例如,諸如WiFi這樣的無(wú)線局域網(wǎng)(WLAN)、諸如藍(lán)牙這樣的個(gè)人局域網(wǎng)(PAN)、或蜂窩或無(wú)線電網(wǎng)絡(luò))中被傳播的信號(hào),并且所述信號(hào)對(duì)計(jì)算機(jī)可讀指令的集合進(jìn)行編碼,所述計(jì)算機(jī)可讀指令當(dāng)被設(shè)備的處理器執(zhí)行時(shí),使設(shè)備實(shí)施本文中所呈現(xiàn)的技術(shù)。
[0029]可以被以這些方式設(shè)計(jì)的示范性計(jì)算機(jī)可讀介質(zhì)在圖5中被圖示,其中實(shí)施方案500包括計(jì)算機(jī)可讀數(shù)據(jù)504在其上被編碼的計(jì)算機(jī)可讀介質(zhì)502 (例如,⑶-R、DVD-R或硬盤(pán)驅(qū)動(dòng)器的盤(pán)片)。這種計(jì)算機(jī)可讀數(shù)據(jù)504進(jìn)而包括被配置成根據(jù)本文中所闡述的原理來(lái)操作的計(jì)算機(jī)指令的集合506。在一個(gè)這樣的實(shí)施例中,處理器可執(zhí)行指令506可以被配置成執(zhí)行履行與本地事件105有關(guān)的客戶(hù)機(jī)應(yīng)用108的請(qǐng)求的方法508,諸如圖3的示范性方法300。在另一這樣的實(shí)施例中,處理器可執(zhí)行指令506可以被配置成實(shí)施用于履行與本地事件206有關(guān)的客戶(hù)機(jī)應(yīng)用108的請(qǐng)求的系統(tǒng),諸如圖4的示范性系統(tǒng)406。這種計(jì)算機(jī)可讀介質(zhì)的一些實(shí)施例可以包括被配置成存儲(chǔ)以這種方式所配置的處理器可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(例如,硬盤(pán)驅(qū)動(dòng)器、光盤(pán)或閃速存儲(chǔ)器設(shè)備)。被配置成依照本文中所呈現(xiàn)的技術(shù)來(lái)操作的許多這樣的計(jì)算機(jī)可讀媒體可以被本領(lǐng)域的普通技術(shù)人員設(shè)計(jì)。
[0030]D.變例
本文中所討論的技術(shù)可以在許多方面設(shè)計(jì)有變例,并且一些變例可以相對(duì)于這些和其它技術(shù)的其它變例而呈現(xiàn)附加的優(yōu)點(diǎn)和/或減少缺點(diǎn)。而且,一些變例可以被相結(jié)合地實(shí)施,以及一些組合可以通過(guò)協(xié)同合作特寫(xiě)附加的優(yōu)點(diǎn)和/或減少的缺點(diǎn)。變例可以被并入在各種實(shí)施例(例如,圖3的示范性方法300和圖4的示范性系統(tǒng)406)中,以便將單獨(dú)的和/或協(xié)同的優(yōu)點(diǎn)授予這樣的實(shí)施例。
[0031]Dl.場(chǎng)景
可以在這些技術(shù)的實(shí)施例之中不同的第一方面涉及其中這樣的技術(shù)可以被利用的場(chǎng) 旦
-5^ O
[0032]作為這個(gè)第一方面的第一變例,本文中所呈現(xiàn)的技術(shù)可以與許多類(lèi)型的設(shè)備402一起被利用,所述設(shè)備402諸如服務(wù)器、服務(wù)器群、工作站、膝上型電腦、平板、移動(dòng)電話、游戲控制臺(tái)以及網(wǎng)絡(luò)器具。這樣的設(shè)備402還可以提供各種各樣的計(jì)算構(gòu)件,諸如有線或無(wú)線通信設(shè)備;人為輸入設(shè)備,諸如鍵盤(pán)、鼠標(biāo)、觸摸板、觸敏顯示器、話筒以及基于手勢(shì)的輸入構(gòu)件;自動(dòng)化輸入設(shè)備,諸如靜止或運(yùn)動(dòng)相機(jī)、全球定位服務(wù)(GPS)設(shè)備以及其它傳感器;諸如顯示器和揚(yáng)聲器之類(lèi)的輸出設(shè)備;以及通信設(shè)備,諸如有線和/或無(wú)線網(wǎng)絡(luò)構(gòu)件。
[0033]作為這個(gè)第一方面的第二變例,本文中所呈現(xiàn)的技術(shù)可以與各種類(lèi)型的服務(wù)器應(yīng)用104—起被利用,所述服務(wù)器應(yīng)用104諸如web服務(wù)器、文件服務(wù)器、應(yīng)用服務(wù)器、媒體服務(wù)器、對(duì)等共享協(xié)調(diào)服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、電子郵件服務(wù)器、物理度量監(jiān)控服務(wù)器以及監(jiān)視控制和數(shù)據(jù)采集(SCADA)自動(dòng)化服務(wù)器。
[0034]作為這個(gè)第一方面的第三變例,本文中所呈現(xiàn)的技術(shù)可以被利用來(lái)服務(wù)許多類(lèi)型的客戶(hù)機(jī)應(yīng)用108,諸如web瀏覽器、文件共享應(yīng)用、媒體再現(xiàn)應(yīng)用以及數(shù)據(jù)驅(qū)動(dòng)的客戶(hù)機(jī)應(yīng)用。而且,客戶(hù)機(jī)應(yīng)用108可以在各種上下文中執(zhí)行,諸如在設(shè)備402上的本機(jī)執(zhí)行;由一個(gè)或多個(gè)管理運(yùn)行時(shí)所便利的受管理的執(zhí)行;在虛擬環(huán)境內(nèi)的虛擬執(zhí)行,諸如在web瀏覽器內(nèi)執(zhí)行的web應(yīng)用;以及在隔離構(gòu)造內(nèi)的隔離執(zhí)行。這樣的客戶(hù)機(jī)應(yīng)用108還可以被設(shè)備402通過(guò)各種技術(shù)接收到,諸如與設(shè)備402捆綁的客戶(hù)機(jī)應(yīng)用108 ;從各種服務(wù)中檢索到的客戶(hù)機(jī)應(yīng)用,諸如由網(wǎng)絡(luò)所提供的應(yīng)用服務(wù)器;嵌入在web頁(yè)面中的內(nèi)容;由設(shè)備402的構(gòu)件所提供的硬件或軟件驅(qū)動(dòng)器;或由服務(wù)器應(yīng)用104所提供的客戶(hù)機(jī)應(yīng)用108。這些和其它場(chǎng)景可以是兼容的并且可以有利地利用本文中所呈現(xiàn)的技術(shù)。[0035]D2.本地事件和服務(wù)器腳本類(lèi)型
可以在本文中所呈現(xiàn)的技術(shù)的實(shí)施例之中不同的第二方面牽涉可以被服務(wù)器應(yīng)用104監(jiān)控的本地事件206的類(lèi)型,以及服務(wù)器應(yīng)用104可以在發(fā)生這樣的本地事件206之后代表一個(gè)或多個(gè)客戶(hù)機(jī)應(yīng)用108執(zhí)行的服務(wù)器腳本202的類(lèi)型。
[0036]作為這個(gè)第二方面的第一變例,本文中所呈現(xiàn)的技術(shù)可以和對(duì)設(shè)備402上的許多類(lèi)型的本地事件206的監(jiān)控有關(guān),諸如牽涉到設(shè)備402的輸入構(gòu)件對(duì)本地輸入的接收的本地輸入事件;指示設(shè)備的檢測(cè)器構(gòu)件對(duì)本地用戶(hù)的存在、本地用戶(hù)的身份或從本地用戶(hù)所接收到的交互的檢測(cè)的本地用戶(hù)事件;指示設(shè)備對(duì)本地?cái)?shù)據(jù)處理實(shí)例的完成的本地處理事件;或由客戶(hù)機(jī)應(yīng)用108導(dǎo)向服務(wù)器應(yīng)用104的事件訂閱請(qǐng)求204。作為一個(gè)這樣的例子,本地事件206可以包括在第三應(yīng)用(而不是服務(wù)器應(yīng)用104和客戶(hù)機(jī)應(yīng)用108)在設(shè)備402上的執(zhí)行期間出現(xiàn)的本地應(yīng)用事件,其諸如硬件驅(qū)動(dòng)器、操作系統(tǒng)構(gòu)件、另一服務(wù)器應(yīng)用104或另一客戶(hù)機(jī)應(yīng)用108。服務(wù)器應(yīng)用104因此可以監(jiān)控第三應(yīng)用在設(shè)備402上的執(zhí)行以便檢測(cè)本地應(yīng)用事件的發(fā)生(例如,第三應(yīng)用的實(shí)例化;第三應(yīng)用的掛起、完成或終止;或在第三應(yīng)用內(nèi)出現(xiàn)的邏輯異常),并且可以執(zhí)行與本地應(yīng)用事件相關(guān)聯(lián)的一個(gè)或多個(gè)服務(wù)器腳本202。而且,第三應(yīng)用可以定義對(duì)第三應(yīng)用定制的一個(gè)或多個(gè)特定于應(yīng)用(application-specific)的事件,并且服務(wù)器應(yīng)用104可以使一個(gè)或多個(gè)服務(wù)器腳本202與特定于應(yīng)用的事件相關(guān)聯(lián)以供代表另一客戶(hù)機(jī)應(yīng)用108執(zhí)行。
[0037]作為這個(gè)第二方面的第二變例,服務(wù)器腳本202可以指定與本地事件206有關(guān)的許多類(lèi)型的處理,諸如將本地事件206報(bào)告給客戶(hù)機(jī)應(yīng)用108、記錄本地事件206的發(fā)生、或在本地事件206的處置期間應(yīng)用附加的邏輯。附加地,服務(wù)器腳本202可以被從許多源接收;例如,服務(wù)器腳本202可以與服務(wù)器應(yīng)用104包括在一起,可以由用戶(hù)110來(lái)提供,可以隨設(shè)備402提供和/或自動(dòng)地由設(shè)備402生成,或者可以被從客戶(hù)機(jī)應(yīng)用108或外部源接收。而且,服務(wù)器應(yīng)用104可以被配置成在服務(wù)器腳本202的完成之后通知客戶(hù)機(jī)應(yīng)用108。例如,由客戶(hù)機(jī)應(yīng)用108所提供的事件訂閱請(qǐng)求204可以指定在檢測(cè)到本地事件206之后和/或在完成與本地事件206相關(guān)聯(lián)的(一個(gè)或多個(gè))服務(wù)器腳本202的執(zhí)行之后要被調(diào)用的應(yīng)用回調(diào)。
[0038]作為這個(gè)第二方面的第三變例,本文中所呈現(xiàn)的技術(shù)可以牽涉許多類(lèi)型的服務(wù)器腳本202的執(zhí)行。作為這個(gè)第三變例的第一例子,這樣的服務(wù)器腳本202可以使用各種各樣的技術(shù)來(lái)設(shè)計(jì),包括調(diào)用Node, js模塊的并且要被本地web服務(wù)器執(zhí)行的服務(wù)器端JavaScript ο
[0039]作為這個(gè)第三變例的第二例子,服務(wù)器腳本202可以牽涉可能中斷設(shè)備402的進(jìn)程的操作的阻塞請(qǐng)求。例如,服務(wù)器腳本202可以牽涉到涉及超長(zhǎng)計(jì)算的復(fù)雜邏輯,或者可以牽涉對(duì)被另一進(jìn)程當(dāng)前排他地利用的數(shù)據(jù)或資源的訪問(wèn)。這樣的阻塞請(qǐng)求在客戶(hù)機(jī)應(yīng)用108中可能是無(wú)法維持的(例如,發(fā)出阻塞請(qǐng)求的web應(yīng)用可以被暫時(shí)地或者無(wú)限期地掛起,從而中斷用戶(hù)接口和/或包含web應(yīng)用的web瀏覽器,和/或可能超過(guò)處理超時(shí)門(mén)限從而導(dǎo)致web應(yīng)用的終止)。替代地,客戶(hù)機(jī)應(yīng)用108可以將這樣的阻塞請(qǐng)求委托給服務(wù)器應(yīng)用104,其中服務(wù)器腳本202指定阻塞請(qǐng)求和/或在阻塞請(qǐng)求之后要被執(zhí)行的邏輯。在后臺(tái)中執(zhí)行的服務(wù)器應(yīng)用104可以持續(xù)地將這樣的阻塞請(qǐng)求作為可阻塞線程來(lái)執(zhí)行而不用中斷設(shè)備402的任何前臺(tái)進(jìn)程,和/或可以可接受地繼續(xù)處理阻塞請(qǐng)求(例如,等待長(zhǎng)時(shí)間運(yùn)行進(jìn)程的完成或資源的可用性)達(dá)延長(zhǎng)的持續(xù)時(shí)間。
[0040]作為這個(gè)第三變例的第三例子,服務(wù)器腳本202可以指定在實(shí)現(xiàn)異步進(jìn)程的完成之后要被調(diào)用的服務(wù)器腳本回調(diào)。服務(wù)器腳本回調(diào)可以由服務(wù)器腳本202、由服務(wù)器應(yīng)用104、由用戶(hù)110和/或由客戶(hù)機(jī)應(yīng)用108來(lái)指定。作為一個(gè)這樣的例子,客戶(hù)機(jī)應(yīng)用108的訂閱請(qǐng)求可以被與客戶(hù)機(jī)用戶(hù)接口事件相關(guān)聯(lián)(例如,客戶(hù)機(jī)應(yīng)用108可以等待來(lái)自用戶(hù)110的某種形式的輸入),并且客戶(hù)機(jī)應(yīng)用108可以指定在檢測(cè)到輸入之后要被調(diào)用的應(yīng)用回調(diào)。在接收到訂閱請(qǐng)求204之后,服務(wù)器應(yīng)用108可以配置或者生成服務(wù)器腳本202來(lái)調(diào)用客戶(hù)機(jī)應(yīng)用108的應(yīng)用回調(diào),并且可以使服務(wù)器腳本202與牽涉對(duì)用戶(hù)輸入的檢測(cè)的本地事件206相關(guān)聯(lián)。設(shè)備402可以繼續(xù)客戶(hù)機(jī)應(yīng)用108的執(zhí)行,其包括本文中所呈現(xiàn)的客戶(hù)機(jī)用戶(hù)接口事件,從而使得客戶(hù)機(jī)應(yīng)用108能夠被通知對(duì)用戶(hù)輸入事件的檢測(cè),而不必針對(duì)這樣的檢測(cè)(例如,經(jīng)由輪詢(xún))監(jiān)控輸入構(gòu)件。這些和其它類(lèi)型的本地事件206和/或服務(wù)器腳本202可以在本文中所呈現(xiàn)的服務(wù)器/客戶(hù)機(jī)架構(gòu)和技術(shù)中被牽涉到。
[0041]D3.服務(wù)器腳本訂閱和執(zhí)行
可以在這些技術(shù)的實(shí)施例之中不同的第三方面牽涉這樣的方式,借此服務(wù)器應(yīng)用108接受來(lái)自相應(yīng)的客戶(hù)機(jī)應(yīng)用108的訂閱請(qǐng)求204和/或代表一個(gè)或多個(gè)客戶(hù)機(jī)應(yīng)用108執(zhí)行與本地事件206相關(guān)聯(lián)的(一個(gè)或多個(gè))服務(wù)器腳本202。
[0042]作為這個(gè)第三方面的第一變例,服務(wù)器應(yīng)用104可以通過(guò)提供關(guān)于客戶(hù)機(jī)應(yīng)用108可以訂閱的可用本地事件206的信息來(lái)便于客戶(hù)機(jī)應(yīng)用108訂閱本地事件206。例如,在從客戶(hù)機(jī)應(yīng)用108接收到識(shí)別可訂閱的本地事件206的集合的請(qǐng)求之后,服務(wù)器應(yīng)用104可以枚舉可由客戶(hù)機(jī)應(yīng)用108訂閱的本地事件206。替換地,服務(wù)器應(yīng)用104可以簡(jiǎn)單地維護(hù)可由客戶(hù)機(jī)應(yīng)用108查詢(xún)的可訂閱的本地事件206的目錄。
[0043]作為這個(gè)第三方面的第二變例,本地服務(wù)器應(yīng)用104可以以許多方式識(shí)別可訂閱的本地事件206。作為一個(gè)這樣的例子,相應(yīng)的本地事件206可以被與本地事件地址相關(guān)聯(lián),所述本地事件地址例如是客戶(hù)機(jī)應(yīng)用108可以通過(guò)其從本地服務(wù)器應(yīng)用104請(qǐng)求資源的超文本傳輸協(xié)議(HTTP)地址。在接收到指定特定地址的客戶(hù)機(jī)請(qǐng)求之后,本地服務(wù)器應(yīng)用104可以確定該地址是否是與針對(duì)本地事件206的訂閱請(qǐng)求相關(guān)聯(lián)的本地事件地址,并且如果是這樣的話,則可以將客戶(hù)機(jī)請(qǐng)求作為由本地客戶(hù)機(jī)應(yīng)用108所發(fā)起的事件訂閱請(qǐng)求204來(lái)處置。作為另一個(gè)這樣的例子,設(shè)備402的相應(yīng)的構(gòu)件可以由包括該構(gòu)件的構(gòu)件名稱(chēng)的本地事件地址來(lái)識(shí)別,并且本地客戶(hù)機(jī)應(yīng)用108可以通過(guò)發(fā)起指定了包括構(gòu)件的構(gòu)件名稱(chēng)的本地事件地址的客戶(hù)機(jī)請(qǐng)求來(lái)訂閱牽涉這樣的構(gòu)件的本地事件206。
[0044]圖6呈現(xiàn)了特寫(xiě)本文中所呈現(xiàn)的技術(shù)的這些變例中的若干個(gè)的示范性場(chǎng)景600的圖解。在這個(gè)示范性場(chǎng)景600中,設(shè)備402包括可以生成一個(gè)或多個(gè)本地客戶(hù)機(jī)應(yīng)用108可以訂閱的本地事件206的一組構(gòu)件,諸如:可由用戶(hù)110操作來(lái)生成指針輸入的鼠標(biāo)構(gòu)件602 ;可由用戶(hù)110操作來(lái)捕獲靜止或運(yùn)動(dòng)圖像的相機(jī)構(gòu)件604 ;以及被配置成執(zhí)行專(zhuān)門(mén)類(lèi)型的處理的處理器構(gòu)件606 (例如,光線跟蹤圖形處理器)。設(shè)備402可以利用本地服務(wù)器應(yīng)用104通過(guò)使相應(yīng)的構(gòu)件與構(gòu)件地址612相關(guān)聯(lián)來(lái)履行這樣的事件訂閱請(qǐng)求204??蛻?hù)機(jī)應(yīng)用108可以將事件枚舉請(qǐng)求608 (例如,對(duì)本地服務(wù)器應(yīng)用104的、枚舉本地客戶(hù)機(jī)應(yīng)用108可以訂閱的本地事件206的類(lèi)型的請(qǐng)求,包括本地客戶(hù)機(jī)應(yīng)用108可訪問(wèn)的構(gòu)件)發(fā)送到本地服務(wù)器應(yīng)用104,并且本地服務(wù)器應(yīng)用104可以用可訂閱的事件枚舉610做出響應(yīng),所述可訂閱的事件枚舉610識(shí)別針對(duì)相應(yīng)的構(gòu)件的、本地客戶(hù)機(jī)應(yīng)用108可以指定來(lái)訂閱由構(gòu)件所生成的本地事件206的構(gòu)件地址612。如果本地客戶(hù)機(jī)應(yīng)用108將指定構(gòu)件的構(gòu)件地址614的事件訂閱請(qǐng)求204發(fā)送到服務(wù)器應(yīng)用104,則本地服務(wù)器應(yīng)用104然后可以使本地應(yīng)用108與由構(gòu)件所生成的本地事件206相關(guān)聯(lián),以及,在檢測(cè)到這樣的本地事件206之后,可以執(zhí)行與由設(shè)備402的構(gòu)件所生成的本地事件206相關(guān)聯(lián)的并且與本地事件206有關(guān)的服務(wù)器腳本202。以這種方式,本地服務(wù)器應(yīng)用104可以使能并且居間促成(mediate)本地客戶(hù)機(jī)應(yīng)用108與設(shè)備402的構(gòu)件的交互。
[0045]作為這個(gè)第三方面的第三變例,除提供將本地事件訂閱服務(wù)提供給一個(gè)或多個(gè)本地客戶(hù)機(jī)應(yīng)用108的本地服務(wù)器應(yīng)用104之外,設(shè)備402還可以包括在其它設(shè)備402上執(zhí)行的其它應(yīng)用(例如,擴(kuò)展本文中所提供的本地服務(wù)模型以便同樣包括傳統(tǒng)的多設(shè)備服務(wù)器/客戶(hù)機(jī)架構(gòu))。作為第一這樣的例子,設(shè)備402可以使得本地客戶(hù)機(jī)應(yīng)用108能夠確定訂閱請(qǐng)求的目標(biāo)為本地服務(wù)器應(yīng)用104或在遠(yuǎn)程設(shè)備上執(zhí)行的遠(yuǎn)程服務(wù)器應(yīng)用。在確定了本地客戶(hù)機(jī)應(yīng)用108的事件訂閱請(qǐng)求204的目標(biāo)是本地服務(wù)器應(yīng)用104之后,設(shè)備402可以將事件訂閱請(qǐng)求204呈現(xiàn)給本地服務(wù)器應(yīng)用104 ;但在確定了事件訂閱請(qǐng)求204的目標(biāo)包括遠(yuǎn)程設(shè)備的遠(yuǎn)程服務(wù)器應(yīng)用之后,設(shè)備402可以將訂閱請(qǐng)求204轉(zhuǎn)發(fā)到遠(yuǎn)程設(shè)備。替換地或附加地,除接收和服務(wù)由本地客戶(hù)機(jī)應(yīng)用108所提供的事件訂閱請(qǐng)求204之外,本地服務(wù)器應(yīng)用104可以接收從在第二設(shè)備上執(zhí)行的遠(yuǎn)程客戶(hù)機(jī)應(yīng)用接收到的事件訂閱請(qǐng)求204,并且可以通過(guò)在檢測(cè)到遠(yuǎn)程應(yīng)用所訂閱的本地事件206之后代表在第二設(shè)備上執(zhí)行的遠(yuǎn)程客戶(hù)機(jī)應(yīng)用執(zhí)行與本地事件206相關(guān)聯(lián)并且與本地事件206有關(guān)的一個(gè)或多個(gè)服務(wù)器腳本202來(lái)履行這樣的事件訂閱請(qǐng)求204。作為一個(gè)這樣的例子,在作為設(shè)備網(wǎng)互操作的設(shè)備的集合的每一個(gè)上提供本地服務(wù)器應(yīng)用104可能是非常有利的,其中每個(gè)本地服務(wù)器應(yīng)用104都被配置成代表在相同的設(shè)備402上本地執(zhí)行的本地客戶(hù)機(jī)應(yīng)用108以及在設(shè)備網(wǎng)的其它設(shè)備402上執(zhí)行的遠(yuǎn)程客戶(hù)機(jī)應(yīng)用來(lái)服務(wù)對(duì)本地事件206的事件訂閱請(qǐng)求204。
[0046]圖7呈現(xiàn)了根據(jù)本文中所呈現(xiàn)的技術(shù)的、包括設(shè)備網(wǎng)702的特寫(xiě)若干設(shè)備704的互操作的示范性場(chǎng)景700的圖解。在這個(gè)示范性場(chǎng)景700中,設(shè)備網(wǎng)702的相應(yīng)的設(shè)備704可以(例如,通過(guò)有線或無(wú)線網(wǎng)絡(luò))互通來(lái)共享關(guān)于在每個(gè)設(shè)備704內(nèi)出現(xiàn)的本地事件206的信息。為此目的,每個(gè)設(shè)備704都可以包括的服務(wù)器應(yīng)用104,其被配置成接收和履行不僅由在相同的設(shè)備704上執(zhí)行的本地客戶(hù)機(jī)應(yīng)用108所提供的而且由在設(shè)備網(wǎng)702的另一設(shè)備704上執(zhí)行的遠(yuǎn)程客戶(hù)機(jī)應(yīng)用所提供的事件訂閱請(qǐng)求204。附加地,在第一設(shè)備704從本地客戶(hù)機(jī)應(yīng)用108接收到將在設(shè)備網(wǎng)702的第二設(shè)備704上執(zhí)行的遠(yuǎn)程服務(wù)器應(yīng)用指定為請(qǐng)求的目標(biāo)的事件訂閱請(qǐng)求204之后,第一設(shè)備704可以將事件訂閱請(qǐng)求204轉(zhuǎn)發(fā)到第二設(shè)備。在檢測(cè)到本地事件206的發(fā)生之后,服務(wù)器應(yīng)用104可以識(shí)別本地客戶(hù)機(jī)應(yīng)用108和在其它設(shè)備704上執(zhí)行的遠(yuǎn)程客戶(hù)機(jī)應(yīng)用,并且可以代表每個(gè)這樣訂閱的客戶(hù)機(jī)應(yīng)用108發(fā)起與本地事件206相關(guān)聯(lián)的一個(gè)或多個(gè)服務(wù)器腳本202的服務(wù)器腳本執(zhí)行208。這個(gè)變例因此將本文中所呈現(xiàn)的本地事件服務(wù)模型擴(kuò)展成包括依照本文中所呈現(xiàn)的技術(shù)在其它設(shè)備704上執(zhí)行的其它客戶(hù)機(jī)應(yīng)用106。
[0047]作為這個(gè)第三方面的第四變例,設(shè)備402可以以節(jié)省設(shè)備402的資源的方式來(lái)調(diào)整本地服務(wù)器應(yīng)用104和/或(一個(gè)或多個(gè))本地客戶(hù)機(jī)應(yīng)用108的執(zhí)行,所述設(shè)備402諸如操作容量有限的電池組和/或在低瓦特功率約束內(nèi)的移動(dòng)設(shè)備,或在處理和/或存儲(chǔ)器被節(jié)省的條件下產(chǎn)生較高設(shè)備性能的處理器。
[0048]作為這個(gè)第四變例的第一例子,本地服務(wù)器應(yīng)用108可以?xún)H當(dāng)來(lái)自一個(gè)或多個(gè)客戶(hù)機(jī)應(yīng)用108的事件訂閱請(qǐng)求204待處理時(shí)才被執(zhí)行。例如,在接收到事件訂閱請(qǐng)求204之后,設(shè)備402可以確定本地服務(wù)器應(yīng)用104是否正在執(zhí)行,并且如果不是,則可以調(diào)用本地服務(wù)器應(yīng)用104的執(zhí)行以便履行事件訂閱請(qǐng)求204。替換地或附加地,在檢測(cè)到缺乏對(duì)本地服務(wù)器應(yīng)用204能夠檢測(cè)到的本地事件206的事件訂閱請(qǐng)求之后,設(shè)備402可以暫時(shí)地或者無(wú)限期地結(jié)束本地服務(wù)器應(yīng)用104的執(zhí)行。以這種方式,設(shè)備402可以以特設(shè)(ad hoc)方式操作本地服務(wù)器應(yīng)用104,并且否則可以在本地服務(wù)器應(yīng)用104不在使用中時(shí)節(jié)省設(shè)備402的資源。
[0049]作為這個(gè)第四變例的第二例子,設(shè)備402的相應(yīng)的處理構(gòu)件可以?xún)H當(dāng)本地事件206已被檢測(cè)到時(shí)才被利用。例如,如果本地事件206包括對(duì)通過(guò)輸入構(gòu)件所接收到的用戶(hù)輸入的處理,則設(shè)備402可以在這樣的本地事件206不正在出現(xiàn)時(shí)抑制(withhold)來(lái)自處理構(gòu)件的功率。而且,這樣的處理可以取決于一個(gè)或多個(gè)客戶(hù)機(jī)應(yīng)用108對(duì)與處理構(gòu)件相關(guān)聯(lián)的本地事件206的訂閱。例如,如果設(shè)備402包括被配置成解釋通過(guò)觸敏顯示構(gòu)件所接收到的觸摸輸入的處理構(gòu)件,則當(dāng)觸敏顯示構(gòu)件不在接收觸摸輸入時(shí)以及可選地進(jìn)一步取決于任何客戶(hù)機(jī)應(yīng)用108是否當(dāng)前被配置成通過(guò)觸敏顯示構(gòu)件來(lái)接收和處理觸摸輸入,設(shè)備402可以減少或者消除提供給處理構(gòu)件的功率。這樣的技術(shù)可以依照本文中所呈現(xiàn)的技術(shù)來(lái)便于設(shè)備資源(諸如功率、處理器、存儲(chǔ)器以及通信容量)的節(jié)省。服務(wù)器腳本202的訂閱和執(zhí)行的這些和其它變例可以被服務(wù)器應(yīng)用104依照本文中所呈現(xiàn)的技術(shù)代表響應(yīng)于對(duì)各種本地事件206的檢測(cè)的并且與對(duì)各種本地事件206的檢測(cè)相關(guān)聯(lián)的一個(gè)或多個(gè)客戶(hù)機(jī)應(yīng)用108利用。
[0050]E.計(jì)算環(huán)境
圖8和以下討論提供了對(duì)用來(lái)實(shí)施本文中所闡述的規(guī)定中的一個(gè)或多個(gè)的實(shí)施例的適合的計(jì)算環(huán)境的簡(jiǎn)要的一般性描述。圖8的操作環(huán)境僅是適合的操作環(huán)境的一個(gè)例子,并且不旨在就操作環(huán)境的使用或功能性的范圍提出任何限制。示例性計(jì)算設(shè)備包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、移動(dòng)設(shè)備(諸如移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、媒體播放機(jī)等等)、多處理器系統(tǒng)、消費(fèi)電子裝置、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括上述系統(tǒng)或設(shè)備中的任一個(gè)的分布式計(jì)算環(huán)境等等。
[0051]雖然不是必需的,但是實(shí)施例在正由一個(gè)或多個(gè)計(jì)算設(shè)備所執(zhí)行的“計(jì)算機(jī)可讀指令”的一般性上下文中被描述。計(jì)算機(jī)可讀指令可以經(jīng)由計(jì)算機(jī)可讀媒體(在下面討論)被分布。計(jì)算機(jī)可讀指令可以被實(shí)施為執(zhí)行特定任務(wù)或者實(shí)施特定抽象數(shù)據(jù)類(lèi)型的程序模塊,諸如函數(shù)、對(duì)象、應(yīng)用編程接口(API)、數(shù)據(jù)結(jié)構(gòu)等。典型地,計(jì)算機(jī)可讀指令的功能性可以被組合或者視需要被分布在各種環(huán)境中。
[0052]圖8圖示了系統(tǒng)800的例子,系統(tǒng)800包括被配置成實(shí)施本文中所提供的一個(gè)或多個(gè)實(shí)施例的計(jì)算設(shè)備802。在一個(gè)配置中,計(jì)算設(shè)備802包括至少一個(gè)處理單元806和存儲(chǔ)器808。取決于計(jì)算設(shè)備的確切配置和類(lèi)型,存儲(chǔ)器808可以是易失性的(例如,諸如RAM)、非易失性的(例如,諸如ROM、閃速存儲(chǔ)器等)或兩者的某種組合。這種配置在圖8中由虛線804來(lái)圖示。
[0053]在其它實(shí)施例中,設(shè)備802可以包括附加的特征和/或功能性。例如,設(shè)備802還可以包括附加的存儲(chǔ)裝置(例如,可拆卸的和/或不可拆卸的),所述存儲(chǔ)裝置包括但不限于磁存儲(chǔ)裝置、光學(xué)存儲(chǔ)裝置等等。這樣的附加存儲(chǔ)裝置在圖8中由存儲(chǔ)裝置810來(lái)圖示。在一個(gè)實(shí)施例中,用來(lái)實(shí)施本文中所提供的一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)可讀指令可以是在存儲(chǔ)裝置810中。存儲(chǔ)裝置810還可以存儲(chǔ)其它計(jì)算機(jī)可讀指令以便實(shí)施操作系統(tǒng)、應(yīng)用程序等等。例如,計(jì)算機(jī)可讀指令可以被加載在存儲(chǔ)器808中以供處理單元806執(zhí)行。
[0054]如本文中所使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀媒體”包括計(jì)算機(jī)存儲(chǔ)媒體。計(jì)算機(jī)存儲(chǔ)媒體包括被以任何方法或技術(shù)實(shí)施以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令或其它數(shù)據(jù)之類(lèi)的信息的易失性和非易失性、可拆卸和不可拆卸媒體。存儲(chǔ)器808和存儲(chǔ)裝置810是計(jì)算機(jī)存儲(chǔ)媒體的例子。計(jì)算機(jī)存儲(chǔ)媒體包括但不限于RAM、R0M、EEPR0M、閃速存儲(chǔ)器或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(DVD)或其它光學(xué)存儲(chǔ)裝置、磁盒、磁帶、磁盤(pán)存儲(chǔ)裝置或其它磁存儲(chǔ)設(shè)備,或能夠被用來(lái)存儲(chǔ)所期望的信息并且能夠被設(shè)備802訪問(wèn)的任何其它介質(zhì)。任何這樣的計(jì)算機(jī)存儲(chǔ)媒體可以是設(shè)備802的一部分。
[0055]設(shè)備802還可以包括允許設(shè)備802與其它設(shè)備進(jìn)行通信的(一個(gè)或多個(gè))通信連接件816。(一個(gè)或多個(gè))通信連接件816可以包括但不限于調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)、集成網(wǎng)絡(luò)接口、射頻發(fā)射機(jī)/接收機(jī)、紅外端口、USB連接,或用于將計(jì)算設(shè)備802連接到其它計(jì)算設(shè)備的其它接口。(一個(gè)或多個(gè))通信連接件816可以包括有線連接件或無(wú)線連接件。(一個(gè)或多個(gè))通信連接件816可以傳送和/或接收通信媒體。
[0056]術(shù)語(yǔ)“計(jì)算機(jī)可讀媒體”可以包括通信媒體。通信媒體典型地將計(jì)算機(jī)可讀指令或其它數(shù)據(jù)具體化為諸如載波或其它傳輸機(jī)制之類(lèi)的“調(diào)制數(shù)據(jù)信號(hào)”,并且包括任何信息遞送媒體。術(shù)語(yǔ)“調(diào)制數(shù)據(jù)信號(hào)”可以包括這樣的信號(hào),所述信號(hào)使其特性中的一個(gè)或多個(gè)以這樣一種方式被設(shè)置或者改變以便將信息編碼在所述信號(hào)中。
[0057]設(shè)備802可以包括(一個(gè)或多個(gè))輸入設(shè)備814,諸如鍵盤(pán)、鼠標(biāo)、筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備、紅外相機(jī)、視頻輸入設(shè)備和/或任何其它輸入設(shè)備。諸如一個(gè)或多個(gè)顯不器、揚(yáng)聲器、打印機(jī)和/或任何其它輸出設(shè)備之類(lèi)的(一個(gè)或多個(gè))輸出設(shè)備812也可以被包括在設(shè)備802中。(一個(gè)或多個(gè))輸入設(shè)備814和(一個(gè)或多個(gè))輸出設(shè)備812可以經(jīng)由有線連接、無(wú)線連接或其任何組合被連接到設(shè)備802。在一個(gè)實(shí)施例中,來(lái)自另一計(jì)算設(shè)備的輸入設(shè)備或輸出設(shè)備可以被用作針對(duì)計(jì)算設(shè)備802的(一個(gè)或多個(gè))輸入設(shè)備814或(一個(gè)或多個(gè))輸出設(shè)備812。
[0058]計(jì)算設(shè)備802的構(gòu)件可以被各種互連線(諸如總線)連接。這樣的互連線可以包括外圍構(gòu)件互連線(PCI)(諸如PCI Express)、通用串行總線(USB)、火線(IEEE 1394)、光學(xué)總線結(jié)構(gòu)等等。在另一實(shí)施例中,計(jì)算設(shè)備802的構(gòu)件可以被網(wǎng)絡(luò)互連。例如,存儲(chǔ)器808可以由位于由網(wǎng)絡(luò)所互連的不同物理位置中的多個(gè)物理存儲(chǔ)器單元組成。
[0059]本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,被利用來(lái)存儲(chǔ)計(jì)算機(jī)可讀指令的存儲(chǔ)設(shè)備可以跨越網(wǎng)絡(luò)被分布。例如,可經(jīng)由網(wǎng)絡(luò)818訪問(wèn)的計(jì)算設(shè)備820可以存儲(chǔ)計(jì)算機(jī)可讀指令以便實(shí)施本文中所提供的一個(gè)或多個(gè)實(shí)施例。計(jì)算設(shè)備802可以訪問(wèn)計(jì)算設(shè)備820并且下載計(jì)算機(jī)可讀指令的一部分或全部以供執(zhí)行。替換地,計(jì)算設(shè)備802可以按需下載多條計(jì)算機(jī)可讀指令,或者一些指令可以在計(jì)算設(shè)備802處被執(zhí)行以及一些在計(jì)算設(shè)備820處被執(zhí)行。
[0060]F.術(shù)語(yǔ)的使用
盡管已經(jīng)用特定于結(jié)構(gòu)特征和/或方法動(dòng)作的語(yǔ)言描述了本主題,但是應(yīng)當(dāng)理解,所附權(quán)利要求中定義的主題未必限于上面所描述的特定特征或動(dòng)作。相反,上面所描述的特定特征和行為作為實(shí)施權(quán)利要求的示例性形式被公開(kāi)。
[0061]如在本申請(qǐng)中所使用的那樣,術(shù)語(yǔ)“構(gòu)件”、“模塊”、“系統(tǒng)”、“接口”等等通常旨在指的是計(jì)算機(jī)相關(guān)實(shí)體,要么硬件、硬件和軟件的組合、軟件,要么執(zhí)行中的軟件。例如,構(gòu)件可以是但不限于是在處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行文件、執(zhí)行的線程、程序和/或計(jì)算機(jī)。通過(guò)說(shuō)明,在控制器上運(yùn)行的應(yīng)用和控制器兩者都可以是構(gòu)件。一個(gè)或多個(gè)構(gòu)件可以駐留在執(zhí)行的進(jìn)程和/或線程內(nèi),并且構(gòu)件可以位于一個(gè)計(jì)算機(jī)上和/或分布在兩個(gè)或更多個(gè)計(jì)算機(jī)之間。
[0062]此外,所要求保護(hù)的主題可以使用產(chǎn)生軟件、固件、硬件或其任何組合的標(biāo)準(zhǔn)編程和/或工程技術(shù)被實(shí)施為方法、裝置或制品以便控制計(jì)算機(jī)實(shí)施所公開(kāi)的主題。如本文中所使用的術(shù)語(yǔ)“制品”旨在包含可從任何計(jì)算機(jī)可讀設(shè)備、載體或媒體訪問(wèn)的計(jì)算機(jī)程序。當(dāng)然,本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,在不背離所要求保護(hù)的主題的范圍或精神的情況下可以對(duì)這種配置做出許多修改。
[0063]本文提供了實(shí)施例的各種操作。在一個(gè)實(shí)施例中,所描述的操作中的一個(gè)或多個(gè)可以構(gòu)成在一個(gè)或多個(gè)計(jì)算機(jī)可讀媒體上存儲(chǔ)的計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令如果被計(jì)算設(shè)備執(zhí)行,則將使計(jì)算設(shè)備執(zhí)行所描述的操作。操作中的一些或全部被描述的順序不應(yīng)該被解釋為暗示這些操作必定是順序相關(guān)的。供替換的排序?qū)⒈坏靡嬗诒久枋龅谋绢I(lǐng)域的技術(shù)人員了解。進(jìn)一步地,應(yīng)理解,并非所有操作都必定存在于本文中所提供的每個(gè)實(shí)施例中。
[0064]而且,單詞“示范性”在本文中被用來(lái)意指用作例子、實(shí)例或圖解。本文中描述為“示范性”的任何方面或設(shè)計(jì)未必將被解釋為優(yōu)于其它方面或設(shè)計(jì)。相反,單詞示范性的使用旨在以具體的方式呈現(xiàn)概念。如在本申請(qǐng)中所使用的那樣,術(shù)語(yǔ)“或”旨在意指包括性的“或”而不是排他性的“或”。也就是說(shuō),除非另外指定,或從上下文是清楚的,否則“X采用A或B”旨在意指自然的包括性的排列中的任一個(gè)。也就是說(shuō),如果X采用A ;X采用B ;或X采用A和B兩者,則在前面的實(shí)例中的任一個(gè)下“X采用A或B”被滿(mǎn)足。此外,除非另外指定或從上下文清楚的是針對(duì)單數(shù)形式,否則如在本申請(qǐng)和所附權(quán)利要求中所使用的冠詞“一”和“一個(gè)”通常可以被解釋為意指“一個(gè)或多個(gè)”。
[0065]并且,盡管已經(jīng)相對(duì)于一個(gè)或多個(gè)實(shí)施方案示出和描述了本公開(kāi)內(nèi)容,但是等同變更和修改將被本領(lǐng)域的技術(shù)人員基于對(duì)本說(shuō)明書(shū)和附圖的閱讀和理解而想到。本公開(kāi)內(nèi)容包括所有這樣的修改和變更,并且僅由以下權(quán)利要求的范圍所限定。特別地,關(guān)于由上面描述的構(gòu)件(例如,元件、資源等)所執(zhí)行的各種功能,除非另外指示,否則用來(lái)描述這樣的構(gòu)件的術(shù)語(yǔ)旨在對(duì)應(yīng)于執(zhí)行所描述的構(gòu)件的所指定的功能的任何構(gòu)件(例如,其是功能上等效的),即使在結(jié)構(gòu)上不等同于所公開(kāi)的執(zhí)行本公開(kāi)內(nèi)容的本文中說(shuō)明的示范性實(shí)施方案中的功能的結(jié)構(gòu)。此外,雖然可能已經(jīng)相對(duì)于若干實(shí)施方案中的僅一個(gè)公開(kāi)了本公開(kāi)內(nèi)容的特定特征,但是這樣的特征可以被與其它實(shí)施方案的如對(duì)于任何給定或特定應(yīng)用而言可能是期望的且有利的一個(gè)或多個(gè)其它特征組合。此外,就術(shù)語(yǔ)“包括”、“具有”、“有”、“帶有”或其變例被用在【具體實(shí)施方式】或權(quán)利要求中來(lái)說(shuō),這樣的術(shù)語(yǔ)旨在以類(lèi)似于術(shù)語(yǔ)“包括”的方式為包括性的。
【權(quán)利要求】
1.一種在具有處理器的設(shè)備上履行請(qǐng)求的方法,所述處理器執(zhí)行至少一個(gè)本地客戶(hù)機(jī)應(yīng)用,所述方法包括: 在設(shè)備上執(zhí)行指令,所述指令被配置成: 生成使至少一個(gè)服務(wù)器腳本與至少一個(gè)本地事件相關(guān)聯(lián)的本地服務(wù)器; 在從本地客戶(hù)機(jī)應(yīng)用接收到指定所選擇的本地事件的訂閱請(qǐng)求之后,使所選擇的本地事件與本地客戶(hù)機(jī)應(yīng)用相關(guān)聯(lián);以及 在檢測(cè)到與至少一個(gè)服務(wù)器腳本和本地客戶(hù)機(jī)應(yīng)用相關(guān)聯(lián)的本地事件之后,在本地服務(wù)器內(nèi)代表本地客戶(hù)機(jī)應(yīng)用執(zhí)行與本地事件相關(guān)聯(lián)的并且與本地事件有關(guān)的服務(wù)器腳本。
2.根據(jù)權(quán)利要求1所述的方法: 本地服務(wù)器包括web服務(wù)器,所述web服務(wù)器包括Node, js模塊;以及至少一個(gè)服務(wù)器腳本包括JavaScript,其代表本地客戶(hù)機(jī)應(yīng)用調(diào)用web服務(wù)器的Node, js 模塊。
3.根據(jù)權(quán)利要求1所述的方法,選自本地事件集合的本地事件包括: 指示設(shè)備的輸入構(gòu)件對(duì)本地輸入的接收的本地輸入事件; 指示設(shè)備的檢測(cè)器構(gòu)件對(duì)本地用戶(hù)的檢測(cè)的本地用戶(hù)事件; 指示設(shè)備對(duì)本地?cái)?shù)據(jù)處理實(shí)例的完成的本地處理事件;以及 由客戶(hù)機(jī)應(yīng)用導(dǎo)向本地服務(wù)器的客戶(hù)機(jī)請(qǐng)求。
4.根據(jù)權(quán)利要求1所述的方法: 本地事件包括在第三應(yīng)用在設(shè)備上的執(zhí)行期間出現(xiàn)的本地應(yīng)用事件;以及 檢測(cè)本地事件包括:監(jiān)控第三應(yīng)用的執(zhí)行以便檢測(cè)本地應(yīng)用事件。
5.根據(jù)權(quán)利要求4所述的方法: 第三應(yīng)用定義特定于應(yīng)用的事件;以及 所述指令被進(jìn)一步配置成:在從本地客戶(hù)機(jī)應(yīng)用接收到指定第三應(yīng)用的特定于應(yīng)用的事件的訂閱請(qǐng)求之后,使特定于應(yīng)用的事件與第三應(yīng)用相關(guān)聯(lián)。
6.根據(jù)權(quán)利要求5所述的方法,所述指令被進(jìn)一步配置成在從本地客戶(hù)機(jī)應(yīng)用接收到指定目標(biāo)的訂閱請(qǐng)求之后: 確定目標(biāo)是否包括設(shè)備上的本地服務(wù)器; 在確定目標(biāo)包括設(shè)備上的本地服務(wù)器之后,將訂閱請(qǐng)求呈現(xiàn)給本地服務(wù)器;以及 在確定目標(biāo)包括在設(shè)備外的遠(yuǎn)程服務(wù)器之后,將訂閱請(qǐng)求發(fā)送到遠(yuǎn)程服務(wù)器。
7.根據(jù)權(quán)利要求4所述的方法: 所述指令被進(jìn)一步配置成:在從在第二設(shè)備上執(zhí)行的遠(yuǎn)程客戶(hù)機(jī)應(yīng)用接收到訂閱請(qǐng)求之后,使所選擇的本地事件與遠(yuǎn)程客戶(hù)機(jī)應(yīng)用相關(guān)聯(lián);以及 在檢測(cè)到與至少一個(gè)服務(wù)器腳本和遠(yuǎn)程客戶(hù)機(jī)應(yīng)用相關(guān)聯(lián)的本地事件之后,在本地服務(wù)器內(nèi)代表遠(yuǎn)程客戶(hù)機(jī)應(yīng)用執(zhí)行與本地事件相關(guān)聯(lián)的服務(wù)器腳本。
8.根據(jù)權(quán)利要求4所述的方法: 本地服務(wù)器對(duì)分別指定地址的訂閱請(qǐng)求進(jìn)行響應(yīng); 相應(yīng)的本地事件與本地事件地址相關(guān)聯(lián);以及 從客戶(hù)機(jī)接收訂閱請(qǐng)求包括:從客戶(hù)機(jī)應(yīng)用接收指定與本地事件相關(guān)聯(lián)的本地事件地址的訂閱請(qǐng)求。
9.根據(jù)權(quán)利要求8所述的方法:相應(yīng)的本地事件與設(shè)備的可由構(gòu)件名稱(chēng)識(shí)別的至少一個(gè)構(gòu)件相關(guān)聯(lián);以及本地事件的本地事件地址包括與本地事件相關(guān)聯(lián)的構(gòu)件的構(gòu)件名稱(chēng)。
10.根據(jù)權(quán)利要求1所述的方法,所述指令被進(jìn)一步配置成:在檢測(cè)本地事件之前,減少給設(shè)備的至少一個(gè)處理構(gòu)件的功率;以及 在檢測(cè)到本地事件之后,恢復(fù)給至少一個(gè)處理構(gòu)件的功率。
【文檔編號(hào)】G06F9/44GK103975301SQ201280061010
【公開(kāi)日】2014年8月6日 申請(qǐng)日期:2012年10月11日 優(yōu)先權(quán)日:2011年10月11日
【發(fā)明者】A.巴-茲夫, G.金基, B.C.貝克曼, S.艾薩克斯, M.本-伊泰, E.亞里夫, B.A.伊阿卡斯 申請(qǐng)人:微軟公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
泰宁县| 富蕴县| 黔南| 祁连县| 精河县| 马关县| 资中县| 邢台市| 边坝县| 油尖旺区| 襄樊市| 余姚市| 望谟县| 甘德县| 洪雅县| 新泰市| 德江县| 古丈县| 陕西省| 孝义市| 邵阳县| 翁牛特旗| 响水县| 贺兰县| 临清市| 祥云县| 辛集市| 北海市| 广西| 静宁县| 广宗县| 伽师县| 龙胜| 西充县| 阳高县| 拜城县| 莎车县| 丰台区| 团风县| 额尔古纳市| 莫力|