專利名稱:在客戶機(jī)和服務(wù)器之間分配應(yīng)用任務(wù)的方法以及應(yīng)用服務(wù)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式應(yīng)用、客戶機(jī)/服務(wù)器構(gòu)形(topography)、語音處理領(lǐng)域,并尤其涉及基于被訪問的客戶機(jī)資源的客戶機(jī)/服務(wù)器應(yīng)用任務(wù)分配。
背景技術(shù):
傳統(tǒng)的客戶機(jī)/服務(wù)器分布式應(yīng)用沒有考慮客戶機(jī)在給定時間具有的處理能力的量,并且沒有試圖使可用的客戶機(jī)資源與以客戶機(jī)為中心的任務(wù)匹配。相反,客戶機(jī)/服務(wù)器應(yīng)用通常遵循“一刀切”范式,其中對每個客戶機(jī)的處理方式與每個其它客戶機(jī)都相同。對通過客戶機(jī)可用的處理能力(在可用帶寬、CPU能力、存儲器和其它資源方面)的忽略會大大減小客戶機(jī)的響應(yīng)性?;蛘撸瑹o法訪問和利用可用的客戶機(jī)資源會不必要地消耗服務(wù)器資源以及其它有限的網(wǎng)絡(luò)資源。
一刀切范式的缺陷在運(yùn)行在具有有限資源的手持設(shè)備和其它計算設(shè)備上的客戶機(jī)/服務(wù)器應(yīng)用中尤其成問題。例如,與各種語音應(yīng)用交互的手持設(shè)備例如智能電話(smart phone)、個人數(shù)據(jù)助理、普及計算設(shè)備、嵌入式設(shè)備等的廣泛應(yīng)用已使得語音識別和合成成為軟件開發(fā)的最前沿。語音識別和語音合成能力可消耗極大量的計算資源例如CPU周期、RAM和非易失存儲器。另外,利用分布式語音處理應(yīng)用的設(shè)備的能力會有很大的變化。結(jié)果,一些客戶機(jī)設(shè)備可本地執(zhí)行語音處理任務(wù),其它客戶機(jī)設(shè)備可本地執(zhí)行期望的語音處理任務(wù)的一部分,而還有其它的客戶機(jī)設(shè)備不能使用本地資源執(zhí)行重要的語音處理任務(wù)。
因?yàn)樵S多客戶機(jī)設(shè)備具有多任務(wù)處理能力,從而當(dāng)其它活動較低時這些客戶機(jī)設(shè)備可本地執(zhí)行語音處理任務(wù),但是當(dāng)執(zhí)行其它以客戶機(jī)為中心的任務(wù)時缺乏資源來本地執(zhí)行語音處理任務(wù),這種情況會變得更復(fù)雜。
因此,需要這樣的機(jī)制,其可分析客戶機(jī)內(nèi)可用的能力和資源,并可根據(jù)該分析在客戶機(jī)和服務(wù)器之間分配應(yīng)用任務(wù)。優(yōu)選地,此機(jī)制能夠使用被靜態(tài)和/或動態(tài)確定的客戶機(jī)資源信息來分配任務(wù)。
發(fā)明內(nèi)容
這里給出的主題包括根據(jù)文中公開的發(fā)明安排的一實(shí)施例的用于根據(jù)可用的客戶機(jī)資源在服務(wù)器和/或客戶機(jī)之間分配應(yīng)用任務(wù)的系統(tǒng)、方法和裝置。根據(jù)可用資源分配任務(wù)的一個優(yōu)點(diǎn)是可因此將相當(dāng)大的一部分服務(wù)器負(fù)荷卸載給客戶機(jī)設(shè)備,而客戶機(jī)設(shè)備的用戶不會遭受差的性能。
可根據(jù)特定于應(yīng)用的代碼進(jìn)行任務(wù)分配,在該代碼中軟件設(shè)計者可為計算密集的任務(wù)配置資源閾值。這些閾值可確定是在客戶機(jī)還是在服務(wù)器上執(zhí)行這些密集的任務(wù)。還可自動執(zhí)行任務(wù)分配而不需要顯式的開發(fā)者代碼。開發(fā)者可選擇的設(shè)置可開啟或關(guān)閉針對開發(fā)者可選擇的任務(wù)的自動任務(wù)分配,從而允許設(shè)計時的應(yīng)用優(yōu)化。因此,所提供的解決方案是非常靈活的方案,其可根據(jù)獨(dú)立于任務(wù)的或特定于任務(wù)的配置設(shè)置來針對所有應(yīng)用任務(wù)或針對所選擇的應(yīng)用任務(wù)實(shí)施。
例如,所公開的發(fā)明可用于在客戶機(jī)和服務(wù)器之間分配語音處理任務(wù)。在一個實(shí)施例中,當(dāng)語音處理任務(wù)是語音識別任務(wù)時,應(yīng)用程序設(shè)計員可指定將在哪里加載語法以及根據(jù)語法的大小將在哪里執(zhí)行語音識別任務(wù)。另外,客戶機(jī)可周期性地將可用資源傳達(dá)給應(yīng)用服務(wù)器,從而服務(wù)器可根據(jù)客戶機(jī)的當(dāng)前可用的資源調(diào)整工作負(fù)荷。應(yīng)用服務(wù)器還可向客戶機(jī)動態(tài)輪詢資源信息以進(jìn)行其工作負(fù)荷確定。這些確定所基于的資源可包括但不局限于可用的客戶機(jī)存儲器、客戶機(jī)CPU能力、和用于將數(shù)據(jù)傳送給客戶機(jī)的網(wǎng)絡(luò)吞吐量。另外,在具體安排中,應(yīng)用服務(wù)器還可接收對服務(wù)器資源可用性的指示,并通過平衡任務(wù)的性能需要與客戶機(jī)和/或服務(wù)器的可用資源來作為其工作流程確定的基礎(chǔ)。
本發(fā)明可根據(jù)與文中給出的材料一致的許多方面來實(shí)施。例如,本發(fā)明的一個方面可包括用于在客戶機(jī)和服務(wù)器之間分配應(yīng)用任務(wù)的軟件方法。該方法可包括檢測用于執(zhí)行至少一個應(yīng)用任務(wù)的基于客戶機(jī)的計算資源的步驟??蓪z測到的基于客戶機(jī)的計算資源的至少一個指示傳送給位于遠(yuǎn)程的應(yīng)用服務(wù)器,并且遠(yuǎn)程服務(wù)器可根據(jù)至少一個指示確定是將至少一個應(yīng)用任務(wù)分配給客戶機(jī)還是服務(wù)器組件。
本發(fā)明的另一個方面可包括應(yīng)用服務(wù)系統(tǒng),該系統(tǒng)包括服務(wù)器引擎、客戶機(jī)引擎、負(fù)荷分析器和負(fù)荷分配器。服務(wù)器引擎可位于應(yīng)用服務(wù)器內(nèi),并且可被配置為選擇性地執(zhí)行用于應(yīng)用服務(wù)器的至少一個應(yīng)用任務(wù)。客戶機(jī)引擎可位于在應(yīng)用服務(wù)器的遠(yuǎn)程位置的客戶機(jī)內(nèi),并且可被配置為選擇性地執(zhí)行用于應(yīng)用服務(wù)器的一個或多個應(yīng)用任務(wù)。負(fù)荷分析器可檢測客戶機(jī)的計算資源,并將此檢測到的計算資源的指示傳送給負(fù)荷分配器。負(fù)荷分配器可根據(jù)從負(fù)荷分析器接收到的指示選擇性地在服務(wù)器引擎和客戶機(jī)引擎之間分配應(yīng)用任務(wù)。
應(yīng)指出,本發(fā)明的各方面可實(shí)現(xiàn)為用于控制計算設(shè)備以實(shí)現(xiàn)文中所述的功能的程序,或使計算設(shè)備能夠執(zhí)行對應(yīng)于文中所述的步驟的過程的程序。此程序可通過將該程序存儲在磁盤、光盤、半導(dǎo)體存儲器、任何其它的記錄媒介內(nèi)被提供,或者也可作為經(jīng)由載波傳遞的被數(shù)字編碼的信號被提供。所述的程序可以是單個程序,或者可被實(shí)現(xiàn)為多個子程序,每個子程序與單個計算設(shè)備交互或者以分布方式在網(wǎng)絡(luò)空間內(nèi)交互。
附圖中示出目前優(yōu)選的實(shí)施例,但是應(yīng)理解本發(fā)明并不局限于所示的精確安排和手段。
圖1是示出根據(jù)文中公開的發(fā)明安排的一實(shí)施例的分布式應(yīng)用服務(wù)系統(tǒng)的示意圖,該系統(tǒng)根據(jù)客戶機(jī)資源在客戶機(jī)和應(yīng)用服務(wù)器之間分配任務(wù)。
圖2是根據(jù)文中公開的發(fā)明安排的一實(shí)施例的根據(jù)客戶機(jī)資源在客戶機(jī)/服務(wù)器環(huán)境中分配應(yīng)用任務(wù)的系統(tǒng)的流程。
圖3是根據(jù)文中公開的發(fā)明安排的一實(shí)施例的用于在客戶機(jī)和服務(wù)器之間分配應(yīng)用任務(wù)的方法的流程圖。
具體實(shí)施例方式
圖1是示出根據(jù)文中公開的發(fā)明安排的一實(shí)施例的分布式應(yīng)用服務(wù)系統(tǒng)100的示意圖,該系統(tǒng)根據(jù)客戶機(jī)資源在客戶機(jī)120和應(yīng)用服務(wù)器群集130之間分配任務(wù)。系統(tǒng)100可包括經(jīng)由網(wǎng)絡(luò)140通信連接到應(yīng)用服務(wù)器群集130的客戶機(jī)120??蛻魴C(jī)120可包括客戶機(jī)引擎122,該引擎是客戶機(jī)120內(nèi)的用于執(zhí)行一個或多個任務(wù)的計算空間。應(yīng)用服務(wù)器群集130可利用語音服務(wù)器132來執(zhí)行一個或多個任務(wù)。例如,語音服務(wù)器132可管理TTS引擎群集134和/或識別引擎群集136,它們可分別執(zhí)行文本到語音任務(wù)和語音識別任務(wù)。
在一個實(shí)施例中,客戶機(jī)120可位于具有有限資源的計算設(shè)備例如手持設(shè)備、嵌入式設(shè)備、普及計算設(shè)備等中。具有有限資源的計算設(shè)備常常利用小型的操作系統(tǒng)平臺,該平臺可以是為包括或嵌入在移動或其它空間受限的設(shè)備內(nèi)而設(shè)計的、桌面操作系統(tǒng)的縮小版本。例如,計算設(shè)備可利用來自加利福尼亞Sunnydale的PalmSource公司的Palm OS、嵌入式Linux操作系統(tǒng)等。客戶機(jī)120還可位于與個人數(shù)據(jù)助理(PDA)或智能電話相比具有較少受限制的資源但是仍然局限于可定義的一組計算資源的傳統(tǒng)計算設(shè)備例如臺式計算機(jī)或筆記本計算機(jī)內(nèi)。
負(fù)荷分析器112可以是分析客戶機(jī)120的配置以及在任何給定時間點(diǎn)上可用于客戶機(jī)120的計算資源124的計算組件。如這里所用的,計算資源124可包括可適當(dāng)影響客戶機(jī)120執(zhí)行任務(wù)的能力的任何資源。更具體地,計算資源可包括但不局限于存儲器、CPU能力和用于與客戶機(jī)120交換數(shù)據(jù)的通信吞吐量水平。
在一個實(shí)施例中,負(fù)荷分析器112可以是客戶機(jī)120的軟件組件。在其它實(shí)施例中,負(fù)荷分析器112可以是應(yīng)用服務(wù)器群集130的組件、獨(dú)立的應(yīng)用、網(wǎng)絡(luò)140的網(wǎng)絡(luò)元件的硬件或軟件內(nèi)包含的例程等。
負(fù)荷分配器114可根據(jù)從負(fù)荷分析器112接收到的指示在語音服務(wù)器132和客戶機(jī)引擎122之間選擇性地分配應(yīng)用任務(wù)116,其中所述指示傳達(dá)關(guān)于資源124的信息。在一個實(shí)施例中,負(fù)荷分配器114可以是應(yīng)用服務(wù)器群集130的軟件組件。在其他實(shí)施例中,負(fù)荷分配器114可以是客戶機(jī)120的組件、獨(dú)立的應(yīng)用、網(wǎng)絡(luò)140的網(wǎng)絡(luò)元件的硬件或軟件內(nèi)包含的例程等。
在一個具體實(shí)施例中,負(fù)荷分配器114可確定執(zhí)行所識別的應(yīng)用任務(wù)所必需的資源水平。此外,負(fù)荷分配器114在確定必需的資源水平時,可考慮期望的性能水平、應(yīng)用任務(wù)的執(zhí)行時間需求以及其它這樣的因素。負(fù)荷分配器114在進(jìn)行任務(wù)分配確定時可利用被確定的資源水平、期望的性能水平、資源指示以及多個推理規(guī)則。
在另一個實(shí)施例中,特定的推理規(guī)則可根據(jù)建立的資源下限或建立的資源上限進(jìn)行操作。具有被負(fù)荷分配器114確定為低于該資源下限的資源需求的應(yīng)用任務(wù)116可總是被分配給客戶機(jī)引擎122。具有高于資源上限的資源需求的應(yīng)用任務(wù)可總是被分配給語音服務(wù)器132。具有位于該下限和上限之間的資源需求的應(yīng)用任務(wù)可被負(fù)荷分配器114根據(jù)客戶機(jī)120的當(dāng)前可用的資源分配。
在又一個實(shí)施例中,負(fù)荷分配器114的資源分配可以是基于特定于正被分配的應(yīng)用任務(wù)的類型的因素以及其中相關(guān)聯(lián)的準(zhǔn)則進(jìn)行的。例如,當(dāng)應(yīng)用任務(wù)是語音處理任務(wù)時,負(fù)荷分配器114的確定可以是根據(jù)特定于語音處理的因素做出的。
更具體地,可被分配的一種類型的語音處理任務(wù)包括語音識別任務(wù)。任務(wù)分配器114可至少部分地根據(jù)語音識別任務(wù)中使用的語法的大小來選擇性地分配語音識別任務(wù)。例如,可使用下面的偽代碼來實(shí)現(xiàn)特定于語音識別任務(wù)的分配如果語法小(例如包括美國50個州),則將語音識別任務(wù)分配給客戶機(jī)引擎122<grammar src=″state.jsgf″reco=″local″/>
如果語法大(例如包括100000個街道名稱),則將語音識別任務(wù)分配給語音服務(wù)器132<grammar src=″streets.jsgf″reco=″server″/>
如果語法中等(例如包括一個州中的300個城市),則根據(jù)可用的客戶機(jī)120的資源選擇性地分配語音識別任務(wù)<grammar src=″cities.jsgf″reco=″resource_availability_dependent″/>
應(yīng)理解,“語法小”的情況代表資源需求下限的實(shí)現(xiàn),“語法大”的情況代表資源需求上限的實(shí)現(xiàn)。此外,下限和上限可被特別地配置以考慮客戶機(jī)210的硬件和軟件配置。例如,對于移動電話,“小”可被定義為包括50個或更多的條目,但是對于更穩(wěn)健的計算平臺例如個人數(shù)據(jù)助理,“小”可包括數(shù)千個條目。
另一種類型的可被分配的語音處理任務(wù)包括文本到語音轉(zhuǎn)換任務(wù)。負(fù)荷分配器114可至少部分地根據(jù)文本到語音轉(zhuǎn)換任務(wù)的復(fù)雜性來選擇性地分配該文本到語音轉(zhuǎn)換任務(wù)。復(fù)雜性可基于多種因素中的任何一個,這些因素包括但不局限于將被轉(zhuǎn)換的文本的長度、得到的語音的音質(zhì)、以及該文本到語音轉(zhuǎn)換任務(wù)所需的多種語言(混合語言TTS)。例如,可使用下面的偽代碼來實(shí)現(xiàn)特定于文本到語音轉(zhuǎn)換任務(wù)的分配。
如果TTS復(fù)雜性低,則將TTS轉(zhuǎn)換任務(wù)分配給客戶機(jī)引擎122<prompt tts=″local″/>
如果TTS復(fù)雜性高,則將TTS轉(zhuǎn)換任務(wù)分配給語音服務(wù)器132<prompt tts=″server″/>
如果TTS復(fù)雜性中等,則根據(jù)可用的客戶機(jī)引擎120的資源來分配TTS轉(zhuǎn)換任務(wù)<prompt tts=″resource_availability_dependent″/>
如圖中所示,網(wǎng)絡(luò)140可代表能夠傳送被數(shù)字編碼的信息的任何通信機(jī)制。網(wǎng)絡(luò)140可包括電話網(wǎng)絡(luò)例如公共交換電話網(wǎng)絡(luò)(PSTN)或移動電話網(wǎng)絡(luò)、計算機(jī)網(wǎng)絡(luò)例如局域網(wǎng)或廣域網(wǎng)、電纜網(wǎng)絡(luò)、衛(wèi)星網(wǎng)絡(luò)、廣播網(wǎng)絡(luò)等。此外,網(wǎng)絡(luò)140可使用無線以及基于線路的通信路徑??筛鶕?jù)任何通信協(xié)議例如基于包的通信協(xié)議或基于電路的通信協(xié)議經(jīng)由網(wǎng)絡(luò)140傳送被數(shù)字編碼的信息。
應(yīng)理解,文中公開的本發(fā)明并不局限于語音處理應(yīng)用,而是還可應(yīng)用于其它應(yīng)用從而其它應(yīng)用可利用文中詳細(xì)說明的動態(tài)卸載技術(shù)。當(dāng)與其他應(yīng)用一起使用時,可將語音服務(wù)器132替換為執(zhí)行用于所述其他應(yīng)用的一個或多個任務(wù)的一個或多個服務(wù)器引擎132。
應(yīng)理解,圖1中所示的安排僅用于說明的目的,且本發(fā)明在這方面是不受限制的??蛻魴C(jī)120和應(yīng)用服務(wù)器群集130都可以分布的方式或集中的方式來實(shí)現(xiàn)。例如,盡管典型的情況是從群集例如應(yīng)用服務(wù)器群集130來提供應(yīng)用,但是這里也考慮了非群集的服務(wù)器體系結(jié)構(gòu)例如包含單個、獨(dú)立的應(yīng)用服務(wù)器的體系結(jié)構(gòu)。
另外,可歸于系統(tǒng)100的各個組件的功能可以與文中所示的方式不同的方式組合或分開。例如,在本發(fā)明的一個實(shí)施例中,負(fù)荷分析器112和負(fù)荷分配器114可被實(shí)現(xiàn)為單個集成的組件。在本發(fā)明的另一個實(shí)施例中,負(fù)荷分析器112的功能可在多個分離的軟件組件中實(shí)現(xiàn)。
圖2是根據(jù)文中公開的發(fā)明安排的一實(shí)施例的根據(jù)客戶機(jī)資源在客戶機(jī)/服務(wù)器環(huán)境中分配應(yīng)用任務(wù)的系統(tǒng)200的流程。在一個實(shí)施例中,系統(tǒng)200可代表系統(tǒng)100的信息流。在這種實(shí)施例種,應(yīng)用服務(wù)器205、負(fù)荷分析器210、負(fù)荷分配器215、客戶機(jī)引擎220和服務(wù)器引擎230可分別對應(yīng)于應(yīng)用服務(wù)器群集130、負(fù)荷分析器112、負(fù)荷分配器114、客戶機(jī)引擎122和語音服務(wù)器132。但是,系統(tǒng)200并不局限于此,而是可在任何能夠根據(jù)客戶機(jī)資源分配任務(wù)的系統(tǒng)的情境中執(zhí)行。
在系統(tǒng)200中,如流程250所示,可從客戶機(jī)引擎220向負(fù)荷分析器210傳送詳細(xì)描述客戶機(jī)的硬件和軟件配置以及能力的客戶機(jī)規(guī)格說明。在一個實(shí)施例中,可在客戶機(jī)注冊期間或當(dāng)客戶機(jī)的用戶遠(yuǎn)程連接到應(yīng)用服務(wù)器205時執(zhí)行流程250。另外,可使用客戶機(jī)規(guī)格說明信息來建立特定于客戶機(jī)的閾值。
在流程252中,負(fù)荷分析器210可向客戶機(jī)引擎220輪詢可用資源。特別地,客戶機(jī)可位于多任務(wù)計算環(huán)境中,其中可在客戶機(jī)上執(zhí)行可能與應(yīng)用服務(wù)器205提供的應(yīng)用無關(guān)的多個任務(wù)??捎觅Y源可以是影響客戶機(jī)的處理應(yīng)用任務(wù)的能力的任何資源,例如存儲器、可用CPU周期以及應(yīng)用服務(wù)器205和客戶機(jī)引擎220之間的可用網(wǎng)絡(luò)吞吐量。在流程254中,客戶機(jī)引擎220可向負(fù)荷分析器210指示可用資源。流程252和響應(yīng)流程254可不時地被重復(fù)以保持對資源可用性的精確報告。
在流程260中,可從應(yīng)用服務(wù)器205將應(yīng)用任務(wù)傳送給負(fù)荷分配器215。如流程262所示,如果該任務(wù)所需的資源水平低于下閾值,則負(fù)荷分配器215可將該任務(wù)分配給客戶機(jī)引擎220。在流程264中,如果該任務(wù)所需的資源水平高于上閾值,則可將該任務(wù)傳送給服務(wù)器引擎230。
流程262和264是可選的和可分開實(shí)施的流程,其在被實(shí)施時可以是可配置的值。建立下閾值和上閾值的優(yōu)點(diǎn)是加速任務(wù)分配。例如,當(dāng)任務(wù)比較不重要并且消耗很少的資源時,下閾值允許將該任務(wù)自動分配給客戶機(jī)引擎220以便本地執(zhí)行。當(dāng)任務(wù)非常消耗資源以至于客戶機(jī)永遠(yuǎn)不能在期望的能力限制內(nèi)執(zhí)行該任務(wù)時,上閾值可允許將該任務(wù)自動分配給服務(wù)器引擎230。在一個實(shí)施例中,可根據(jù)客戶機(jī)規(guī)格說明250在特定于客戶機(jī)的基礎(chǔ)上自動調(diào)整這些可配置的閾值。
在流程266中,當(dāng)用于應(yīng)用任務(wù)的資源水平位于下閾值和上閾值之間時,負(fù)荷分配器215可向負(fù)荷分析器210查詢可用的客戶機(jī)資源。此步驟也在其中可選地沒有實(shí)施流程262和/或264的實(shí)施例中執(zhí)行。在流程268中,負(fù)荷分析器210可將用于確定是否有足夠的客戶機(jī)資源可用于該應(yīng)用任務(wù)的數(shù)據(jù)返回給負(fù)荷分配器215。在流程270中,當(dāng)資源可用時,負(fù)荷分配器215可將任務(wù)分配給客戶機(jī)引擎220。在流程272中,當(dāng)資源不可用時,負(fù)荷分配器215可將任務(wù)分配給服務(wù)器引擎230。
圖3是根據(jù)文中公開的發(fā)明安排的一實(shí)施例的用于在客戶機(jī)和服務(wù)器之間分配應(yīng)用任務(wù)的方法300的流程圖。方法300可在系統(tǒng)100和/或系統(tǒng)200的情境中執(zhí)行。但是方法300在這方面是不受限制的,并且可在其中根據(jù)客戶機(jī)的資源在客戶機(jī)和服務(wù)器之間分配分布式應(yīng)用的資源的任何系統(tǒng)的情境內(nèi)執(zhí)行??蛻魴C(jī)的資源可通過客戶機(jī)的硬件規(guī)格說明靜態(tài)地確定,和/或通過間歇地確定客戶機(jī)可用于執(zhí)行應(yīng)用服務(wù)器任務(wù)的資源來動態(tài)地確定。
方法300可在步驟315開始,在該步驟可檢測基于客戶機(jī)的資源。在步驟310,可將檢測到的資源指示給應(yīng)用服務(wù)器。在步驟315,可判定是否更新資源信息。當(dāng)將更新客戶機(jī)的資源時,該方法可從步驟315循環(huán)回步驟305。更新資源可通過從應(yīng)用服務(wù)器輪詢客戶機(jī)、通過周期性地使客戶機(jī)將可用資源公布到應(yīng)用服務(wù)器、通過這兩種技術(shù)的組合或通過其它這樣的技術(shù)發(fā)生。當(dāng)在步驟315中不更新客戶機(jī)的資源時,該方法可轉(zhuǎn)到步驟320,在該步驟可識別將被執(zhí)行的應(yīng)用任務(wù)。在此步驟還可確定執(zhí)行該應(yīng)用任務(wù)需要的通常的資源水平。
例如,當(dāng)該應(yīng)用任務(wù)是語音識別任務(wù)時,可使用用于語音識別話語的語法的大小來確定所需的資源水平。在另一個實(shí)施例中,當(dāng)應(yīng)用任務(wù)是文本到語音轉(zhuǎn)換任務(wù)時,可使用轉(zhuǎn)換的復(fù)雜性來確定所需的資源水平。
在可選步驟325中,當(dāng)用于該任務(wù)的資源水平低于指定的資源下限時,該方法可跳到步驟340,在該步驟可將該任務(wù)分配給客戶機(jī)。否則該方法可轉(zhuǎn)到步驟330。在可選步驟330中,當(dāng)該任務(wù)的資源水平高于指定的資源上限時,該方法可跳到步驟345,在該步驟可將該任務(wù)分配給服務(wù)器。否則,該方法可轉(zhuǎn)到步驟335。
在步驟335中,可確定客戶機(jī)是否具有足夠的可用資源以在可接受的性能水平上執(zhí)行任務(wù)。當(dāng)客戶機(jī)具有足夠的資源時,該方法可轉(zhuǎn)到步驟340,在該步驟可將該任務(wù)分配給客戶機(jī)。當(dāng)在步驟335中客戶機(jī)不具有足夠的可用資源時,該方法可從步驟335轉(zhuǎn)到步驟345,在該步驟可將該任務(wù)分配給服務(wù)器。
該方法可從步驟340或345前進(jìn)到步驟350,在該步驟該方法可通過循環(huán)回步驟315而繼續(xù)執(zhí)行,在該步驟315,可更新資源可用性,并且可識別并根據(jù)客戶機(jī)資源可用性分配另外的應(yīng)用任務(wù)。
本發(fā)明可在硬件、軟件或硬件和軟件的組合中實(shí)現(xiàn)。本發(fā)明可在一個計算機(jī)系統(tǒng)中以集中的方式實(shí)現(xiàn),或者以其中不同元件分散在一些互連的計算機(jī)系統(tǒng)上的分布方式實(shí)現(xiàn)。適于執(zhí)行文中所述的方法的任何類型的計算機(jī)系統(tǒng)或其它裝置都是適合的。典型的硬件和軟件的組合可以是具有這樣的計算機(jī)程序的通用計算機(jī)系統(tǒng),該計算機(jī)程序在被裝載和執(zhí)行時控制該計算機(jī)系統(tǒng)以便該系統(tǒng)執(zhí)行文中所述的方法。
本發(fā)明還可被包含在計算機(jī)程序產(chǎn)品中,該計算機(jī)程序產(chǎn)品包含可使能實(shí)現(xiàn)文中所述的方法的所有特征,并且當(dāng)被裝載在計算機(jī)系統(tǒng)中時能夠執(zhí)行這些方法。本上下文中的計算機(jī)程序是指旨在使具有信息處理能力的系統(tǒng)直接地或在以下任何一個或全部的操作之后執(zhí)行特定功能的一組指令的以任何語言、代碼和符號表示的任何表達(dá)a)轉(zhuǎn)換成另一種語言、代碼或符號;b)以不同的物質(zhì)形式再現(xiàn)。
本發(fā)明可體現(xiàn)為其它形式而不會背離本發(fā)明的精神或基本屬性。因此,應(yīng)參照下面的權(quán)利要求而不是前述說明來指示本發(fā)明的范圍。
權(quán)利要求
1.一種用于在客戶機(jī)和服務(wù)器之間分配應(yīng)用任務(wù)的軟件方法,該方法包括以下步驟檢測能夠執(zhí)行至少一個應(yīng)用任務(wù)的基于客戶機(jī)的計算資源;將該檢測到的基于客戶機(jī)的計算資源的至少一個指示傳送給位于遠(yuǎn)程的應(yīng)用服務(wù)器;以及該應(yīng)用服務(wù)器根據(jù)該至少一個指示確定是將至少一個應(yīng)用任務(wù)分配給客戶機(jī)還是分配給服務(wù)器組件。
2.根據(jù)權(quán)利要求1的方法,其中,所述檢測步驟還包括動態(tài)檢測當(dāng)前可用的基于客戶機(jī)的資源,其中該方法還包括以下步驟在所述應(yīng)用服務(wù)器操作時重復(fù)所述動態(tài)檢測和傳送步驟,從而該確定步驟是基于被間歇地更新的信息進(jìn)行的。
3.根據(jù)權(quán)利要求1的方法,其中,所述確定步驟還包括以下步驟將由所述至少一個指示指示的基于客戶機(jī)的計算資源與相關(guān)于所述應(yīng)用任務(wù)的至少一個先前確定的資源閾值相比較;以及當(dāng)所述基于客戶機(jī)的計算資源有利地比較該先前確定的資源閾值時,將該至少一個應(yīng)用任務(wù)分配給客戶機(jī),否則將該至少一個應(yīng)用任務(wù)分配給服務(wù)器組件。
4.根據(jù)權(quán)利要求1的方法,還包括以下步驟為應(yīng)用服務(wù)器任務(wù)建立資源下限;將與小于該資源下限的資源需求相關(guān)聯(lián)的所有應(yīng)用服務(wù)器任務(wù)分配給客戶機(jī)。
5.根據(jù)權(quán)利要求1的方法,還包括以下步驟為應(yīng)用服務(wù)器任務(wù)建立資源上限;將與大于該資源上限的資源需求相關(guān)聯(lián)的所有應(yīng)用服務(wù)器任務(wù)分配給服務(wù)器組件。
6.根據(jù)權(quán)利要求2的方法,還包括以下步驟為應(yīng)用服務(wù)器任務(wù)建立資源下限;將與小于該資源下限的資源需求相關(guān)聯(lián)的所有應(yīng)用服務(wù)器任務(wù)分配給客戶機(jī);為應(yīng)用服務(wù)器任務(wù)建立資源上限;將與大于該資源上限的資源需求相關(guān)聯(lián)的所有應(yīng)用服務(wù)器任務(wù)分配給服務(wù)器組件;以及執(zhí)行所述確定步驟以選擇性地分配具有位于該資源下限和資源上限之間的資源需求的所有應(yīng)用服務(wù)器任務(wù)。
7.根據(jù)權(quán)利要求1的方法,其中,所述至少一個應(yīng)用服務(wù)器任務(wù)包括語音識別任務(wù),且其中所述確定步驟至少部分地基于該語音識別任務(wù)中使用的語法的大小。
8.根據(jù)權(quán)利要求7的方法,還包括以下步驟建立下語法大小,其中將使用具有低于所述下語法大小的相關(guān)聯(lián)的大小的語法的所有語音識別任務(wù)分配給客戶機(jī)。
9.根據(jù)權(quán)利要求7的方法,還包括以下步驟建立上語法大小,其是將使用具有高于所述上語法大小的相關(guān)聯(lián)的大小的語法的所有語音識別任務(wù)分配給服務(wù)器組件。
10.根據(jù)權(quán)利要求1的方法,其中,所述至少一個應(yīng)用服務(wù)器任務(wù)包括文本到語音轉(zhuǎn)換任務(wù),且其中所述確定步驟至少部分地基于該文本到語音轉(zhuǎn)換任務(wù)的復(fù)雜性。
11.根據(jù)權(quán)利要求10的方法,其中,所述復(fù)雜性是根據(jù)將被文本到語音轉(zhuǎn)換的文本的長度和得到的文本轉(zhuǎn)換的語音所需的音質(zhì)中的至少一個確定的。
12.根據(jù)權(quán)利要求10的方法,其中,所述復(fù)雜性是根據(jù)生成文本到語音結(jié)果所需的多種語言確定的。
13.一種應(yīng)用服務(wù)系統(tǒng),該系統(tǒng)包括位于應(yīng)用服務(wù)器內(nèi)并被配置為選擇性地執(zhí)行用于該應(yīng)用服務(wù)器的至少一個應(yīng)用任務(wù)的服務(wù)器引擎;位于在所述應(yīng)用服務(wù)器的遠(yuǎn)程位置的客戶機(jī)內(nèi)并被配置為選擇性地執(zhí)行用于該應(yīng)用服務(wù)器的所述至少一個應(yīng)用任務(wù)的客戶機(jī)引擎;被配置為檢測所述客戶機(jī)的計算資源并將這些被檢測到的計算資源的指示傳送給負(fù)荷分配器的負(fù)荷分析器;以及被配置為根據(jù)從該負(fù)荷分析器接收到的指示選擇性地在該服務(wù)器引擎和該客戶機(jī)引擎之間分配應(yīng)用任務(wù)的負(fù)荷分配器。
14.根據(jù)權(quán)利要求13的系統(tǒng),其中,所述負(fù)荷分析器被配置為動態(tài)確定用于所述客戶機(jī)的當(dāng)前可用的資源,并且其中該負(fù)荷分配器根據(jù)當(dāng)前資源可用性將應(yīng)用任務(wù)分配給該客戶機(jī)。
15.根據(jù)權(quán)利要求13的系統(tǒng),其中,所述負(fù)荷分析器位于該客戶機(jī)內(nèi),且其中該客戶機(jī)是手持計算設(shè)備。
16.根據(jù)權(quán)利要求13的系統(tǒng),其中,所述負(fù)荷分析器檢測的計算資源包括客戶機(jī)的存儲容量、客戶機(jī)的CPU能力、和用于與客戶機(jī)交換數(shù)據(jù)的通信吞吐量水平中的至少兩個。
17.根據(jù)權(quán)利要求14的系統(tǒng),其中,所述負(fù)荷分配器還包括資源下限,其中具有低于該資源下限的資源需求的應(yīng)用任務(wù)總是被分配給所述客戶機(jī)引擎;資源上限,其中具有高于該資源上限的資源需求的應(yīng)用任務(wù)總是被分配給所述服務(wù)器引擎;
18.根據(jù)權(quán)利要求13的系統(tǒng),其中,所述應(yīng)用任務(wù)包括至少一個語音識別任務(wù),且其中所述負(fù)荷分配器至少部分地根據(jù)該語音識別任務(wù)中使用的語法的大小來選擇性地分配該語音識別任務(wù)。
19.根據(jù)權(quán)利要求13的系統(tǒng),其中,所述應(yīng)用任務(wù)包括至少一個文本到語音轉(zhuǎn)換任務(wù),且其中所述負(fù)荷分配器至少部分地根據(jù)該文本到語音轉(zhuǎn)換任務(wù)的復(fù)雜性分配該文本到語音轉(zhuǎn)換任務(wù),其中復(fù)雜性是基于選自包括將被轉(zhuǎn)換的文本的長度、得到的語音的音質(zhì)、以及該文本到語音轉(zhuǎn)換任務(wù)所需的多種語言中的組的至少一個因素。
20.一種機(jī)器可讀的存儲器,在該存儲器上存儲有具有多個代碼部分的計算機(jī)程序,所述代碼部分可被機(jī)器執(zhí)行以便使該機(jī)器執(zhí)行以下步驟檢測能夠執(zhí)行至少一個應(yīng)用任務(wù)的基于客戶機(jī)的計算資源;將該檢測到的基于客戶機(jī)的計算資源的至少一個指示傳送給位于遠(yuǎn)程的應(yīng)用服務(wù)器;以及該應(yīng)用服務(wù)器根據(jù)該至少一個指示確定是將至少一個應(yīng)用任務(wù)分配給客戶機(jī)還是分配給服務(wù)器組件。
全文摘要
一種用于在客戶機(jī)和服務(wù)器之間分配應(yīng)用任務(wù)的軟件方法可包括檢測用于執(zhí)行至少一個應(yīng)用任務(wù)的基于客戶機(jī)的計算資源的步驟??蓪⒃摍z測到的基于客戶機(jī)的計算資源的至少一個指示傳送給位于遠(yuǎn)程的應(yīng)用服務(wù)器,該應(yīng)用服務(wù)器可根據(jù)該至少一個指示確定是將至少一個應(yīng)用任務(wù)分配給客戶機(jī)還是分配給服務(wù)器組件。
文檔編號H04L29/00GK1819576SQ20061000730
公開日2006年8月16日 申請日期2006年2月7日 優(yōu)先權(quán)日2005年2月11日
發(fā)明者C·阿加皮, C·W·小克羅斯, N·D·梅蒂亞努, P·D·帕特爾 申請人:國際商業(yè)機(jī)器公司