專利名稱:服務(wù)啟動技術(shù)的制作方法
服務(wù)啟動技術(shù)背景服務(wù)可被配置成提供用戶可能感興趣的各種各樣的功能。例如,服務(wù)可被用來提 供到所需餐館的前進(jìn)方向,尋找特定詞語的定義,定位最喜愛的度假地的天氣預(yù)報,等待。 然而,被用來訪問這些服務(wù)的傳統(tǒng)技術(shù)通常是麻煩的并且妨礙了用戶交互。因此,用戶通常 選擇放棄與這些服務(wù)的交互,這對這些服務(wù)的提供者而言還具有不利的財務(wù)后果。概述描述了服務(wù)啟動技術(shù)。在至少一個實現(xiàn)中,計算設(shè)備接收對由應(yīng)用程序顯示在用 戶界面中的文本的選擇。檢測對用戶界面中顯示的多個服務(wù)之一的選擇。響應(yīng)于該檢測, 在無需進(jìn)一步用戶干預(yù)的情況下將所選擇的文本提供給所選服務(wù),以使用所選擇的文本來 啟動所選服務(wù)的操作。在一實現(xiàn)中,一個或多個計算機可讀介質(zhì)包括可執(zhí)行來基于語音輸入確定多個服 務(wù)中的哪些要接收由應(yīng)用程序顯示在用戶界面中的文本的指令。這些指令還可執(zhí)行來在無 需用戶干預(yù)的情況下將該文本提供給所確定的服務(wù)。提供本概述以便以簡化形式介紹將在以下的詳細(xì)描述中進(jìn)一步描述的一些概念。 本概述并不旨在標(biāo)識出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要 求保護(hù)的主題的范圍。附圖簡述
在全部附圖中,使用相同的標(biāo)號來指示相同的特征。
圖1示出根據(jù)一-個或多個實施例的其中可以使用本文所描述的各原理的系統(tǒng)。
圖2示出根據(jù)一-個或多個實施例的具有多層服務(wù)平臺的系統(tǒng)。
圖3示出根據(jù)一-個或多個實施例的具有多層服務(wù)平臺的示例系統(tǒng)。
圖4示出根據(jù)一-個或多個實施例的用戶界面。
圖5示出根據(jù)一-個或多個實施例的用戶界面。
圖6示出根據(jù)一-個或多個實施例的用戶界面。
圖7示出根據(jù)一-個或多個實施例的用戶界面。
圖8示出根據(jù)一-個或多個實施例的用戶界面。
圖9示出根據(jù)一-個或多個實施例的用戶界面。
圖10示出根據(jù)-一個或多個實施例的用戶界面。
圖11示出根據(jù)-一個或多個實施例的用戶界面。
圖12示出根據(jù)-一個或多個實施例的用戶界面。
圖13示出根據(jù)-一個或多個實施例的用戶界面。
圖14示出根據(jù)-一個或多個實施例的用戶界面。
圖15示出根據(jù)-一個或多個實施例的用戶界面。
圖16是描述根據(jù)一個或多個實施例的方法中的各步驟的流程圖。
圖17是描述根據(jù)一個或多個實施例的方法中的各步驟的流程圖。
圖18是描述根據(jù)一個或多個實施例的方法中的各步驟的流程圖。
圖19示出可用于實現(xiàn)一個或多個實施例的示例系統(tǒng)。詳細(xì)描述概覽如上所述,雖然服務(wù)可被用來提供各種各樣的功能,但用于啟動與這些服務(wù)的交 互的傳統(tǒng)技術(shù)是麻煩的。例如,用戶可能查看來自一應(yīng)用程序的文本輸出,如在電子郵件中 接收到的并使用電子郵件應(yīng)用程序來查看的餐館地址。如果用戶希望到餐館的前進(jìn)方向, 則用戶可以與地圖服務(wù)進(jìn)行交互。然而,為得到這些前進(jìn)方向,用戶選擇電子郵件中的包含 該地址的文本并復(fù)制該文本,如通過右擊鼠標(biāo)來顯示具有復(fù)制命令的菜單或使用“ctrl-c” 鍵組合。一旦復(fù)制,用戶通常打開瀏覽器并導(dǎo)航到提供具有地圖功能(例如提供逐個轉(zhuǎn)彎 的前進(jìn)方向)的web服務(wù)的網(wǎng)站。一旦“處于”該網(wǎng)站,用戶隨后可以粘貼該文本(或在另 一示例中重新鍵入它),并隨后按下“回車”來接收所需前進(jìn)方向。因此,如該示例中所示, 用戶傳統(tǒng)上手動地切換上下文(例如,從電子郵件應(yīng)用程序到瀏覽器應(yīng)用程序),這是中斷 性的并且造成與服務(wù)進(jìn)行交互的冗長且通常麻煩的過程。描述了服務(wù)啟動技術(shù)。在一實現(xiàn)中,對服務(wù)的選擇被用來向服務(wù)提供文本以使用 該文本來啟動該服務(wù)的操作。接著以上示例,用戶可以選擇電子郵件中的包含餐館的地址 的文本。用戶隨后可按下熱鍵并說出、點擊、或觸摸所需服務(wù)的表示,在該示例中該表示是 地圖服務(wù)的名稱。所選文本隨后可在無需進(jìn)一步用戶交互的情況下提供給該服務(wù)以生成前 進(jìn)方向。因此,用戶可以“選擇并詢問”以啟動該服務(wù)的操作。在一實現(xiàn)中,還可以使用預(yù) 覽功能以便在不切換上下文的情況下顯示該服務(wù)使用該文本的操作的結(jié)果,這一點的進(jìn)一 步討論可以在以下章節(jié)找到。在以下討論中,提供了題為“操作環(huán)境”的章節(jié),該章節(jié)描述其中可采用一個或多 個實施例的一個環(huán)境。這之后,提供了題為“示例多層服務(wù)平臺”的章節(jié)并且該章節(jié)描述根 據(jù)一個或多個實施例的多層平臺。在至少一些實施例中,多層結(jié)構(gòu)包括被設(shè)計成將服務(wù)與 傳統(tǒng)應(yīng)用程序進(jìn)行整合的全局整合層以及公共控件整合層和自定義整合層。公共控件整合 層可被用來提供可跨各應(yīng)用程序使用以不僅整合應(yīng)用程序所知道的服務(wù)還整合應(yīng)用程序 不知道的服務(wù)的公共控件。自定義整合層可由各應(yīng)用程序用來定制被設(shè)計成整合各種所提 供的服務(wù)的用戶界面。接著,題為“實現(xiàn)示例”的章節(jié)描述多層服務(wù)平臺的示例實現(xiàn)。這之后,題為“全 局整合層——用戶界面示例”、“公共控件整合層——用戶界面示例”、以及“自定義整合 層——用戶界面示例”的章節(jié)各自分別提供根據(jù)一個或多個實施例的用戶界面的示例。接 著,題為“示例過程”的章節(jié)描述根據(jù)一個或多個實施例的示例過程。最后,題為“示例系 統(tǒng)”的章節(jié)描述可用于實現(xiàn)一個或多個實施例的示例系統(tǒng)。操作環(huán)境圖1概括地在100處示出根據(jù)一個或多個實施例的操作環(huán)境。環(huán)境100包括計 算設(shè)備102,計算設(shè)備102具有一個或多個處理器104、一個或多個計算機可讀介質(zhì)106和 駐留在計算機可讀介質(zhì)上并可由處理器執(zhí)行的一個或多個應(yīng)用程序108。應(yīng)用程序108可 包括任何合適類型的應(yīng)用程序,如作為示例而非限制,瀏覽器應(yīng)用程序、閱讀器應(yīng)用程序、 電子郵件應(yīng)用程序、即時消息通信應(yīng)用程序、以及各種其他應(yīng)用程序。計算機可讀介質(zhì)可包括,作為示例而非限制,通常與計算設(shè)備相關(guān)聯(lián)的各種形式的易失性和非易失性存儲器和/ 或存儲介質(zhì)。這樣的介質(zhì)可包括ROM、RAM、閃存、硬盤、可移動介質(zhì)等。計算設(shè)備的一個具 體示例以下在圖19中示出并描述。另外,計算設(shè)備102包括服務(wù)平臺110。在一實現(xiàn)中,服務(wù)平臺可以跨各種應(yīng)用程 序(如以上提到的那些應(yīng)用程序和其他應(yīng)用程序)來整合各個服務(wù),如web服務(wù)(例如,可 通過網(wǎng)絡(luò)112從一個或多個網(wǎng)站114訪問的服務(wù))和/或本地服務(wù)。在至少一些實施例中, 如將在以下顯而易見的,各服務(wù)可以與“不知道”這些服務(wù)的傳統(tǒng)應(yīng)用程序以及知道這些服 務(wù)的應(yīng)用程序進(jìn)行整合。如該附圖中所示,服務(wù)平臺110以駐留在計算機可讀介質(zhì)106上 的計算機可讀指令或代碼的形式駐留。服務(wù)平臺110可以按各種方式來配置。例如,如圖1所示,服務(wù)平臺110被示為包 括表示用于啟動服務(wù)的操作的功能的服務(wù)啟動模塊116。例如,服務(wù)啟動模塊116可以作 為包含復(fù)制功能的操作系統(tǒng)的一部分來包括,例如可經(jīng)由熱鍵組合“CTRL C”訪問的“剪貼 板”。使用這一功能,服務(wù)啟動模塊116可以接收應(yīng)用程序108中的一個或多個所輸出的文 本。還構(gòu)想了文本選擇的各種各樣的其他示例,如“拖放”等等。此外,雖然該示例描述了 對合并在操作系統(tǒng)內(nèi)的用于復(fù)制文本的功能的使用,但還構(gòu)想了其他示例,如通過將服務(wù) 啟動模塊116配置成“獨立”模塊、合并在應(yīng)用程序108中的一個或多個內(nèi),等等。服務(wù)啟動模塊116還表示選擇要使用所選文本執(zhí)行操作的特定服務(wù)的功能。服務(wù) 選擇可按各種方式執(zhí)行。例如,服務(wù)啟動模塊116可以充分利用語音識別技術(shù),并且因此接 受語音輸入。語音識別技術(shù)可以合并在服務(wù)啟動模塊116內(nèi)、在計算設(shè)備102上執(zhí)行的操 作系統(tǒng)內(nèi)、作為獨立模塊,等等。服務(wù)啟動模塊116還可接受觸摸輸入、傳統(tǒng)鼠標(biāo)/鍵盤輸 入等等以選擇特定服務(wù)。服務(wù)啟動模塊116還表示用于使用所選文本來啟動所選服務(wù)的操作的技術(shù)。例 如,一旦選擇了特定服務(wù),則服務(wù)啟動模塊116可以無需進(jìn)一步用戶交互的情況下,例如不 必使用戶在選擇該服務(wù)后將文本手動地“粘貼”到該服務(wù)中,而將所選文本(例如,來自“剪 貼板”)提供給特定服務(wù)。因此,服務(wù)啟動模塊116可以提供對服務(wù)的高效訪問,這一點的 進(jìn)一步討論的可在以下章節(jié)找到。計算設(shè)備102可被具體化為任何合適的計算設(shè)備,諸如作為示例而非限制,臺式 計算機、便攜式計算機、諸如個人數(shù)字助理(PDA)等手持式計算機、蜂窩電話等等。一般而言,在此描述的任何功能可使用軟件、固件(例如,固定邏輯電路)、手動處 理或這些實現(xiàn)的組合來實現(xiàn)。本文使用的術(shù)語“模塊”、“功能”和“邏輯” 一般表示軟件、固 件、或軟件和固件的組合。在軟件實現(xiàn)的情況下,模塊、功能或邏輯表示當(dāng)在處理器(例如, 一個或多個CPU)上執(zhí)行時實現(xiàn)特定任務(wù)的程序代碼。程序代碼可被存儲在一個或多個計 算機可讀存儲器設(shè)備中,如計算機可讀介質(zhì)106。以下描述的服務(wù)啟動技術(shù)的各特征是平臺 無關(guān)的,從而意味著該技術(shù)可在具有各種處理器的各種商用計算平臺上實現(xiàn)。示例多層服各平臺圖2概括地在200處示出根據(jù)一個或多個實施例的具有多層服務(wù)平臺的系統(tǒng)。在 該示例中,系統(tǒng)200包括多個不同的應(yīng)用程序202、204、206、208以及210。應(yīng)用程序可包括 各種應(yīng)用程序,它們的示例在上文或下文中提供。另外,在該示例中,系統(tǒng)200包括被設(shè)計 成跨諸如應(yīng)用程序202-210等各種應(yīng)用程序來整合各個服務(wù)(web服務(wù)和/或本地服務(wù)兩者)的多個不同的平臺層。在該特定示例中,多個不同的層包括全局整合層212、公共控件 整合層214、以及自定義整合層216。在所示出并描述的實施例中,全局整合層212被設(shè)計成啟用并非“服務(wù)知曉”的應(yīng) 用程序以仍然允許用戶從該應(yīng)用程序內(nèi)訪問并使用這些服務(wù)。為此,在至少一些實施例中, 全局整合層提供顯示可用的并可從應(yīng)用程序內(nèi)調(diào)用的一個或多個服務(wù)的通用用戶界面。在 該實施例中,全局整合層的功能由在本地客戶機設(shè)備上操作的操作系統(tǒng)支持。在用戶希望查明哪些服務(wù)可從并非服務(wù)知曉的應(yīng)用程序內(nèi)獲得時,用戶可以采取 由操作系統(tǒng)檢測的特定動作,如使用操作系統(tǒng)桌面上的快捷方式(例如,鍵入熱鍵組合)。 響應(yīng)于檢測到該用戶動作,操作系統(tǒng)可以對本地服務(wù)存儲進(jìn)行API調(diào)用以接收可用服務(wù)的 列表。操作系統(tǒng)隨后可以向用戶呈現(xiàn)列出可用服務(wù)的通用用戶界面。在一個或多個實施例中,一旦向用戶呈現(xiàn)了通用用戶界面,則用戶可以采取多個 不同動作。例如,在一些實施例中,用戶可以將他們的鼠標(biāo)懸停在特定服務(wù)描述或圖標(biāo)上方 并接收該服務(wù)的預(yù)覽。作為替換或補充,用戶可以點擊特定服務(wù)描述或圖標(biāo)并隨后被導(dǎo)航 到該服務(wù)的功能。此外,用戶可以通過說出名稱或適用于從多個服務(wù)中選擇特定服務(wù)的其 他標(biāo)識符來提供語音輸入。到特定服務(wù)的功能的導(dǎo)航可包括本地導(dǎo)航或基于web的導(dǎo)航。 在一個或多個實施例中,導(dǎo)航可包括將諸如用戶選擇的數(shù)據(jù)等數(shù)據(jù)發(fā)送到服務(wù)以供該服務(wù) 操作。因此,在該實施例中,操作系統(tǒng)所提供的通用用戶界面知道被用來呈現(xiàn)可用服務(wù) 并允許用戶選擇這些服務(wù)中的一個或多個的特定API調(diào)用。以此方式,并非“服務(wù)知曉”的 應(yīng)用程序仍然可以用作用戶訪問服務(wù)的起始點。在所示出并描述的實施例中,公共控件整合層214提供可由一個或多個應(yīng)用程序 主存的控件。該控件可允許應(yīng)用程序填充該應(yīng)用程序本機支持的那些服務(wù),以及提供仍然 可向用戶提供并非該應(yīng)用程序本機支持的那些服務(wù)的手段。在用戶希望查明哪些服務(wù)可從應(yīng)用程序內(nèi)獲得時,用戶可以采取特定動作,如進(jìn) 行特定選擇,如文本選擇或文件選擇。響應(yīng)于檢測到該用戶動作,所主存的控件可以對本地 服務(wù)存儲進(jìn)行API調(diào)用以接收可用服務(wù)的列表。該控件隨后可以向用戶呈現(xiàn)列出可用服務(wù) 的用戶界面。這些服務(wù)可包括應(yīng)用程序本機提供的服務(wù)以及其他服務(wù)提供者在本地或遠(yuǎn)程 提供的服務(wù)。在一個或多個實施例中,一旦向用戶呈現(xiàn)了該用戶界面,則用戶可以采取多個不 同動作。例如,用戶可以使用語音來選擇這些服務(wù)之一,如通過說出這些服務(wù)中的特定一個 的標(biāo)識符(例如,服務(wù)的名稱和/或服務(wù)所執(zhí)行的動作,如地圖服務(wù)的“繪制它的地圖”)以 選擇該服務(wù)、說出用戶先前輸入的定制標(biāo)識符以選擇該用戶,等等。在一些實施例中,該用戶可以例如通過語音輸入(例如“預(yù)覽地圖”)來請求特定 服務(wù)的“預(yù)覽”,可以將光標(biāo)“懸?!痹谔囟ǚ?wù)描述或圖標(biāo)上方,等等。作為替換或補充,用 戶隨后可以選擇(例如,點擊)特定服務(wù)描述或圖標(biāo)并隨后被導(dǎo)航到該服務(wù)的功能。到特 定服務(wù)的功能的導(dǎo)航可包括本地導(dǎo)航或基于web的導(dǎo)航。因此,在該實施例中,該控件知道被用來呈現(xiàn)可用服務(wù)并允許用戶選擇這些服務(wù) 中的一個或多個的特定API調(diào)用。以此方式,應(yīng)用程序可以使用該控件來既提供本機服務(wù) 又提供其他服務(wù)提供者所提供的服務(wù)。另外,因為該控件可由許多不同應(yīng)用程序來主存,所以可以跨各種應(yīng)用程序來提供共同的用戶體驗。在一個或多個實施例中,自定義整合層216提供一組API,該組API可由知道這些 API的應(yīng)用程序用來接收所提供的服務(wù)的列表并隨后創(chuàng)建它們自己的用戶界面和用戶體 驗,用戶可以通過該用戶界面和用戶體驗消費所提供的服務(wù)。在描述了多層服務(wù)平臺的一般概念后,現(xiàn)在考慮描述多層服務(wù)平臺的一個具體實 例的實現(xiàn)示例。應(yīng)當(dāng)明白和理解,以下描述只提供一個示例,且不被用來將所要求保護(hù)的主 題的應(yīng)用限于一具體實現(xiàn)。因此,可以在不背離所要求保護(hù)的主題的精神和范圍的情況下 利用其他實現(xiàn)。實現(xiàn)示例圖3概括地在300處示出根據(jù)一個或多個實施例的具有多層服務(wù)平臺的示例系 統(tǒng)。在該示例中,系統(tǒng)300包括web瀏覽器302、閱讀器應(yīng)用程序304、電子郵件應(yīng)用程序 306、即時消息通信應(yīng)用程序308、以及一個或多個所謂的傳統(tǒng)應(yīng)用程序310形式的應(yīng)用程 序。在本文的上下文中,傳統(tǒng)應(yīng)用程序可被認(rèn)為是不知道用戶在使用該應(yīng)用程序時可訪問 的服務(wù)中的至少一些的應(yīng)用程序。所示出的應(yīng)用程序是作為示例提供的,并且不旨在限制 所要求保護(hù)的主題的應(yīng)用。因此,可以在不背離所要求保護(hù)的主題的精神和范圍的情況下 使用其他方法。在該特定示例中,全局整合層包括系統(tǒng)服務(wù)菜單312和服務(wù)管理組件314,而公共 控件整合層包括公共上下文菜單316。此外,在一個或多個實施例中,自定義整合層包括數(shù) 據(jù)識別器組件318、應(yīng)用程序接口(即API) 320、服務(wù)存儲322、預(yù)覽組件324、以及執(zhí)行組件 326。在一個或多個實施例中,全局整合層的系統(tǒng)服務(wù)菜單312可由用戶在使用一個或 多個應(yīng)用程序時用這些應(yīng)用程序提供的上下文來調(diào)用。在實踐中,并非“服務(wù)知曉”的應(yīng)用 程序可被用來調(diào)用系統(tǒng)服務(wù)菜單。在一個或多個實施例中,系統(tǒng)服務(wù)菜單由客戶機設(shè)備的 操作系統(tǒng)支持并可以用各種方式來調(diào)用。例如,對應(yīng)用程序所顯示的文本的選擇可以使得 系統(tǒng)服務(wù)菜單312作為彈出式菜單來在所選文本的旁邊輸出。在另一示例中,在至少一些實施例中,用戶可以通過鍵入特定熱鍵組合來訪問系 統(tǒng)服務(wù)菜單。一旦由操作系統(tǒng)檢測到,則該熱鍵組合造成對應(yīng)用程序接口 320的API調(diào)用 以接收可用服務(wù)的列表??捎梅?wù)可以是在本地提供的服務(wù)和/或遠(yuǎn)程服務(wù)提供者所提供 的服務(wù)。系統(tǒng)服務(wù)菜單312隨后呈現(xiàn)列出可由用戶訪問的可用服務(wù)的用戶界面。在一個或 多個實施例中,系統(tǒng)服務(wù)菜單312所呈現(xiàn)的用戶界面是跨各應(yīng)用程序通用的,從而提供整 合的統(tǒng)一用戶體驗。一旦經(jīng)由系統(tǒng)服務(wù)菜單312所呈現(xiàn)的用戶界面向用戶列出了這些服務(wù),則用戶可 以選擇特定服務(wù),例如通過說出服務(wù)的標(biāo)識符(例如,菜單中所顯示的名稱、先前存儲的自 定義標(biāo)識符,等等)、使用光標(biāo)控制設(shè)備來選擇服務(wù),等等。在一個或多個實施例中,用戶可 以經(jīng)由預(yù)覽組件324通過對所顯示的服務(wù)采取某一動作來接收服務(wù)的預(yù)覽。例如,用戶可以提供語音輸入來使用文本(例如,服務(wù)對所選文本的定義的“預(yù)覽 定義”)啟動特定服務(wù)的預(yù)覽,將光標(biāo)懸停在與該服務(wù)相關(guān)聯(lián)的特定描述或圖標(biāo)上方或附近 并接收該服務(wù)的預(yù)覽,等等。在一個或多個實施例中,可以在不使用戶離開該應(yīng)用程序的上 下文的情況下向該用戶提供預(yù)覽。當(dāng)以此方式懸停光標(biāo)時,例如,操作系統(tǒng)可以對預(yù)覽組件324進(jìn)行API調(diào)用以接收要作為預(yù)覽的一部分來呈現(xiàn)的信息或數(shù)據(jù)。作為替換或補充,通過 點擊特定服務(wù)描述或圖標(biāo),用戶可以使該服務(wù)執(zhí)行。當(dāng)此發(fā)生時,操作系統(tǒng)可以對執(zhí)行組件 326進(jìn)行API調(diào)用,這進(jìn)而可以使該服務(wù)執(zhí)行。該服務(wù)的執(zhí)行可包括,作為示例而非限制,可 以是本地導(dǎo)航或遠(yuǎn)程導(dǎo)航中的任一個或這兩者的導(dǎo)航活動。這可如何完成的示例在下文中 提供。在一個或多個實施例中,服務(wù)管理組件314提供與服務(wù)相關(guān)聯(lián)的各種管理功能。 例如,在一個或多個實施例中,服務(wù)管理組件314可以提供允許用戶添加、刪除、和/或更新 特定服務(wù)的功能。此外,在一個或多個實施例中,服務(wù)管理組件可以允許用戶將特定服務(wù)設(shè) 為用于容易訪問的默認(rèn)服務(wù)。在又一些實施例中,服務(wù)管理組件314可以允許用戶定制如 何選擇文本和/或服務(wù),例如使用用戶可能說出的服務(wù)的自定義標(biāo)識符來啟動該服務(wù)。在一個或多個實施例中,公共控件整合層的公共上下文菜單316提供跨各種應(yīng)用 程序的公共上下文菜單。在一個或多個實施例中,公共上下文菜單是可由各種應(yīng)用程序主 存的控件。在至少一些實施例中,這些應(yīng)用程序不必本機理解服務(wù)或相關(guān)聯(lián)的活動是如何 工作的。而是,通過主存該控件,應(yīng)用程序仍然可以提供該服務(wù)來作為該應(yīng)用程序體驗的一 部分。在應(yīng)用程序主存公共上下文菜單時,該應(yīng)用程序可以用它所提供的服務(wù)以及其他 服務(wù)提供者所提供的其他服務(wù)來填充該菜單。如此,應(yīng)用程序可以提供本機服務(wù)以及非本 機服務(wù)。此外,這些服務(wù)可以位于計算設(shè)備10本地(例如,桌面搜索)和/或可經(jīng)由網(wǎng)絡(luò) 122訪問,如web服務(wù)和其他網(wǎng)絡(luò)服務(wù)。在一個或多個實施例中,公共上下文菜單可知道應(yīng) 用程序接口 320并可進(jìn)行適當(dāng)?shù)腁PI調(diào)用以接收與在服務(wù)存儲322中提供并描述的服務(wù)有 關(guān)的信息。具體而言,在一個或多個實施例中,公共上下文菜單知道特定服務(wù)API。在一個或多個實施例中,數(shù)據(jù)識別器318被配置成識別與其中請求服務(wù)列表的特 定API調(diào)用相關(guān)聯(lián)的數(shù)據(jù)。因此,數(shù)據(jù)識別器318隨后可以確保向調(diào)用者返回正確的服務(wù)集 合。例如,如果用戶選擇文本的特定部分,如地址,則服務(wù)的特定子集可能不適合返回。在 這種情況下,數(shù)據(jù)識別器318可以注意做到返回正確的服務(wù)列表。在一個或多個實施例中,應(yīng)用程序接口 320提供可被用來添加、刪除或以其他方 式管理可被呈現(xiàn)給用戶的服務(wù)的一組API。API可包括被用來接收服務(wù)的列表的那些API。 該組API的一個示例在下文的題為“示例API,,的章節(jié)中提供。在一個或多個實施例中,服務(wù)存儲322被用來維護(hù)與可以提供的不同服務(wù)相關(guān)聯(lián) 的信息和/或數(shù)據(jù)??梢韵蚍?wù)存儲靈活地添加或從中刪除服務(wù)。這可按各種方式來完 成。在一個或多個實施例中,這可以通過使用服務(wù)提供者用來描述所提供的服務(wù)的聲明性 模型來完成。在應(yīng)用程序接口 320接收到調(diào)用時,與該調(diào)用相關(guān)聯(lián)的信息可以從服務(wù)存儲 322中檢索并相應(yīng)地呈現(xiàn)。在一個或多個實施例中,預(yù)覽組件324可被用來提供一個或多個所提供的服務(wù)的 預(yù)覽。如何這樣做的一個示例在下文中提供。在一個或多個實施例中,執(zhí)行組件326可被用來執(zhí)行所提供的服務(wù)中的一個或多 個。如何這樣做的一個示例在下文中提供。全局整合層——用戶界面示例圖4概括地在400處示出閱讀器應(yīng)用程序的用戶界面。在該示例中,用戶在他們的臺式計算機上打開了閱讀器應(yīng)用程序并使用該閱讀器應(yīng)用程序打開了文檔402。在該示 例中,閱讀器應(yīng)用程序不在本機支持要提供給用戶的一個或多個服務(wù)。參考圖5,用戶使用他們的光標(biāo)選擇了文本“博客”,由500處的虛線框示出。響應(yīng) 于這一用戶動作,操作系統(tǒng)對應(yīng)用程序接口 320 (圖3)進(jìn)行API調(diào)用并作為響應(yīng)呈現(xiàn)列出 多個可用服務(wù)的系統(tǒng)服務(wù)菜單502。如圖所示,作為示例而非限制,這些服務(wù)包括,搜索服 務(wù)、定義服務(wù)、調(diào)查服務(wù)、地圖服務(wù)、新聞服務(wù)、圖像服務(wù)、以及翻譯服務(wù)。在所示出并描述的 實施例中,所列出的服務(wù)中沒有一個被閱讀器應(yīng)用程序400在本機支持。參考圖6,向用戶呈現(xiàn)了預(yù)覽600。例如,用戶可以提供啟動預(yù)覽的語音輸入(例 如,“預(yù)覽定義”),可以將光標(biāo)懸停在定義服務(wù)列表的上方或附近,等等。在該特定示例中, 預(yù)覽簡要地定義用戶所選擇的項。在該示例中,預(yù)覽600的呈現(xiàn)是在無需用戶干預(yù)的情況 下操作系統(tǒng)與預(yù)覽組件324相協(xié)作地對應(yīng)用程序接口 320 (圖3)進(jìn)行的API調(diào)用的結(jié)果, 包括所選文本,例如“博客”。在該特定示例中,所呈現(xiàn)的預(yù)覽造成到遠(yuǎn)程服務(wù)提供者的導(dǎo) 航,遠(yuǎn)程服務(wù)提供者進(jìn)而提供在作為遠(yuǎn)程服務(wù)提供者使用該文本所執(zhí)行的操作的結(jié)果的預(yù) 覽中顯示的信息。此時,用戶可以選擇或不選擇進(jìn)一步執(zhí)行該服務(wù)。如果用戶通過例如點擊預(yù)覽 600、提供該服務(wù)的口述標(biāo)識符,等等來選擇執(zhí)行該服務(wù),則可發(fā)生到定義站點的完全導(dǎo)航。 例如,圖7示出作為到定義站點的導(dǎo)航的結(jié)果來提供的用戶界面700。在該示例中,可以提 供用戶所選擇的項的完全定義以及該定義站點提供的其他信息。以此方式,不在本機支持特定服務(wù)的應(yīng)用程序仍然可以通過操作系統(tǒng)的支持來提 供對多個服務(wù)的訪問。此外,這一訪問可以通過可被用來向服務(wù)提供由應(yīng)用程序顯示的所 選文本的口述詞語或其他輸入來用高效的方式提供。作為另一示例,考慮圖8。在此,示出了閱讀器應(yīng)用程序400和文檔402。在該示 例中,用戶使用光標(biāo)選擇了在800處的虛線框指示的地址。參考圖9,向用戶呈現(xiàn)了地圖用戶界面900形式的預(yù)覽。通過點擊該預(yù)覽,用戶可 被導(dǎo)航到可以例如向用戶提供用于接收到該特定地址的駕駛方向的選項以及在地圖站點 處通常提供的其他功能的地圖站點。同樣,在這種情況下,不在本機支持地圖服務(wù)的閱讀器應(yīng)用程序仍然可以通過操 作系統(tǒng)的支持來提供對地圖服務(wù)的訪問。公共控件整合層——用戶界面示例 在一個或多個實施例中,公共控件整合層可以提供可由各應(yīng)用程序用來展示可由 一應(yīng)用程序訪問的服務(wù)的公共控件。在一個或多個實施例中,公共控件采取系統(tǒng)服務(wù)菜單 的形式,如系統(tǒng)服務(wù)菜單312 (圖3)所提供的。作為示例,考慮圖10,它概括地在1000處示 出了電子郵件應(yīng)用程序所提供的用戶界面。在該示例中,用戶如通過使用光標(biāo)控制工具選 擇了在1002處指示的地址。響應(yīng)于用戶的選擇,可以呈現(xiàn)公共控件,這可以不僅向用戶顯示該應(yīng)用程序所提 供的服務(wù),而且還顯示其他服務(wù)提供者所提供的服務(wù)。作為示例,考慮圖11,它示出了列出 該應(yīng)用程序所提供的服務(wù)以及其他服務(wù)提供者所提供的服務(wù)的公共控件1100。具體而言, 在該示例中,該應(yīng)用程序所提供的服務(wù)包括“復(fù)制”服務(wù)和“全選”服務(wù)。另外,也可以顯示該應(yīng)用程序不在本機提供的其他服務(wù)。具體而言,在該示例中,這些服務(wù)包括“Windows Live地圖”服務(wù)、“發(fā)送到Gmail”服務(wù)、以及“用BabelFish翻譯” 服務(wù)。在該示例中,在公共控件110內(nèi)呈現(xiàn)的這些服務(wù)是該控件所進(jìn)行的API調(diào)用的結(jié)果。公共控件1100還被示為包括具有要提供給該服務(wù)以執(zhí)行相應(yīng)操作(例如,到 "Windows Live地圖”)的文本副本(例如,在1002處指示的地址)的部分。以此方式,公 共控件1100可以確認(rèn)將向該服務(wù)發(fā)送哪一文本。此外,公共控件1100還被示為包括位于服 務(wù)的相應(yīng)表示旁邊的、用于指示所表示的服務(wù)可以使用語音輸入來進(jìn)行選擇的指示1104、 1106的示例。參考圖12,用戶將光標(biāo)懸停在地圖服務(wù)的上方或附近,并且作為響應(yīng),向用戶呈現(xiàn) 了提供該服務(wù)的預(yù)覽的地圖預(yù)覽1200?,F(xiàn)在,如上所述,通過點擊預(yù)覽1200,用戶可以被導(dǎo) 航到提供上述其他地圖功能的相關(guān)聯(lián)的地圖站點。還可以使用先前描述的其他選擇技術(shù)。以此方式,公共控件可以跨各種應(yīng)用程序來使用以允許將這些應(yīng)用程序本機支持 的服務(wù)以及該應(yīng)用程序不在本機支持的那些服務(wù)呈現(xiàn)給用戶??绮煌瑧?yīng)用程序使用公共控 件提供了統(tǒng)一的整合用戶體驗。自定義整合層——用戶界面示例在一個或多個實施例中,自定義整合層提供一組API,該組API可由知道這些API 的應(yīng)用程序用來接收所提供的服務(wù)的列表并隨后創(chuàng)建它們自己的用戶界面和用戶體驗,用 戶可以通過該用戶界面和用戶體驗來消費所提供的服務(wù)。作為示例,考慮圖13,它示出了具 有用戶界面1300的即時消息通信應(yīng)用程序形式的應(yīng)用程序。在該示例中,用戶進(jìn)入了與另 一個人的對話。該對話涉及這些參與者想要在哪里就餐。參與者之一提到特定小餐館。參考圖14,用戶選擇了文本、3作 儀886( 儀886餐館)”,如虛線框1400所示。響 應(yīng)于檢測到這一文本選擇,在該示例中,知道該平臺的API的即時消息通信應(yīng)用程序進(jìn)行 了 API調(diào)用以接收回所提供的服務(wù)的列表。在該示例中,用戶說出命令(例如,“繪制它的 地圖”),并且對應(yīng)的地圖服務(wù)被提供并與在1402處示出的圖標(biāo)相關(guān)聯(lián)。在該實現(xiàn)中,地圖 服務(wù)是在無需用戶在說出該命令后進(jìn)行進(jìn)一步交互的情況下提供的。如上所述,地圖服務(wù)可以在不將用戶導(dǎo)航離開當(dāng)前用戶界面的情況下提供該服務(wù) 使用文本執(zhí)行的操作的“預(yù)覽”。作為示例,考慮圖15。在此,向用戶提供了地圖用戶界面 1500形式的預(yù)覽。該預(yù)覽可被配置成可選擇的,使得該用戶可被導(dǎo)航到與該地圖預(yù)覽相關(guān) 聯(lián)的進(jìn)一步功能。例如,用戶可被導(dǎo)航到例如可能提供與該用戶的特定選擇相關(guān)聯(lián)的駕駛 方向的地圖站點。對服務(wù)選擇的進(jìn)一步討論可在以下過程找到。示例過程以下討論描述了可利用上述系統(tǒng)和設(shè)備來實現(xiàn)的各種技術(shù)。這些過程中每一過程 的各方面可用硬件、固件、或軟件、或其組合來實現(xiàn)。這些過程被示為指定由一個或多個設(shè) 備執(zhí)行的操作的一組框,并且其不必限于所示由各框執(zhí)行操作的次序。在以下討論的各部 分中,將對上述環(huán)境和/或用戶界面進(jìn)行參考。圖16是描述根據(jù)一個或多個實施例的全局整合過程中的各步驟的流程圖。該過 程可以結(jié)合任何合適的硬件、軟件、固件或其組合來實現(xiàn)。在至少一些實施例中,該過程的 各方面可由諸如以上示出并描述的服務(wù)平臺等服務(wù)平臺來實現(xiàn)。操作系統(tǒng)檢測用戶動作(框1600)。在以上示例中,用戶正在諸如傳統(tǒng)應(yīng)用程序等 不一定支持希望提供的服務(wù)的應(yīng)用程序內(nèi)工作。在此,用戶動作可以是指示該用戶希望了解并可能消費該應(yīng)用程序不提供的一個或多個服務(wù)的動作。因此,通過該用戶動作(該動 作可構(gòu)成任何類型的動作,如熱鍵組合、口述輸入,等等),用戶可以指示他們希望了解所提 供的服務(wù)。例如,用戶可以選擇文本,啟動語音功能(例如,按下按鈕)并說出可被用來標(biāo) 識這些服務(wù)中的特定一個的一個或多個詞語。操作系統(tǒng)可以檢測到該用戶動作,并作為響應(yīng),檢索應(yīng)用程序不在本機支持的服 務(wù)的列表(框1602)。該服務(wù)的列表可以用各種方式來檢索。在以上示例中,該列表是通過 對平臺支持的API的操作系統(tǒng)調(diào)用來檢索的。向用戶顯示該服務(wù)列表(框1604)。這一步驟可以使用各種用戶界面來以各種方 式執(zhí)行。提供一個或多個服務(wù)的預(yù)覽(框1606)。這一步驟也可按各種方式執(zhí)行。在以上 示例中,響應(yīng)于用戶采取某一動作來提供預(yù)覽,如將他們的光標(biāo)懸停在與該服務(wù)相關(guān)聯(lián)的 圖標(biāo)或該服務(wù)的描述的上方或附近,提供適于啟動這些服務(wù)中的特定一個的預(yù)覽的語音輸 入(例如,“預(yù)覽定義”),等等。提供對服務(wù)功能的訪問(框1608),在該示例中,這可包括 將用戶導(dǎo)航到其中提供該服務(wù)功能的遠(yuǎn)程網(wǎng)站。作為替換或補充,可以在本地提供服務(wù)功 能。顯而易見的是,預(yù)覽是可任選地并且可以在標(biāo)識特定服務(wù)時跳過,并且這一點的示例在 以下描述。圖17是描述根據(jù)一個或多個實施例的服務(wù)選擇過程中的各步驟的流程圖。該過 程可以結(jié)合任何合適的硬件、軟件、固件或其組合來實現(xiàn)。在至少一些實施例中,該過程的 各方面可由諸如以上示出并描述的服務(wù)平臺等服務(wù)平臺來實現(xiàn)。接收對由應(yīng)用程序顯示在用戶界面中的文本的選擇(框1700)。例如,圖1的服務(wù) 啟動模塊116可以接收由應(yīng)用程序108顯示的文本。該文本可以用各種方式來選擇,如通 過使用光標(biāo)控制設(shè)備、鍵盤、觸摸屏、語音輸入,等等。響應(yīng)于接收到所選擇的文本,在無需用戶干預(yù)的情況下輸出多個服務(wù)的表示(框 1702)。例如,服務(wù)啟動模塊116可以在文本被選擇時自動地輸出服務(wù)的表示,這可包括應(yīng) 用程序108不在本機支持的服務(wù)。在另一實現(xiàn)中,這些表示是響應(yīng)于諸如熱鍵組合、語音輸 入等命令來輸出的。檢測對用戶界面中顯示的多個服務(wù)之一的選擇(框1704)。例如,用戶可以提供語 音輸入、“點擊”或“觸摸”(例如,經(jīng)由觸摸屏)菜單中服務(wù)的表示。在語音輸入示例中,可 以說出用于提供表示的詞語(例如,服務(wù)的名稱),可以說出服務(wù)所執(zhí)行的操作的名稱(例 如,“繪制它的地圖”),計算設(shè)備的用戶先前存儲的定制名稱,等等。因此,該服務(wù)可以使用 各種不同的口述輸入來選擇。響應(yīng)于該檢測,在無需進(jìn)一步用戶干預(yù)的情況下將文本的選擇提供給所選服務(wù), 以使用所選擇的文本來啟動所選服務(wù)的操作(框1706)。例如,服務(wù)啟動模塊116可以導(dǎo)航 到所選服務(wù)(例如,通過網(wǎng)絡(luò)112或在計算設(shè)備102本地)并粘貼所選擇的剪貼板的內(nèi)容 (例如,文本)。這一導(dǎo)航和文本粘貼可以在無需用戶一方進(jìn)行交互的情況下執(zhí)行,并且因 此可以在選擇了該服務(wù)后自動地提供。也可以考慮各種其他示例。圖18是描述根據(jù)一個或多個實施例的服務(wù)選擇過程中的各步驟的流程圖。該過 程可以結(jié)合任何合適的硬件、軟件、固件或其組合來實現(xiàn)。在至少一些實施例中,該過程的 各方面可由諸如以上示出并描述的服務(wù)平臺等服務(wù)平臺來實現(xiàn)。檢測對由應(yīng)用程序輸出的文本的選擇(框1800),如通過可被配置成操作系統(tǒng)的一部分的服務(wù)啟動模塊116。輸出多個服務(wù)的表示(框1802)。例如,可以使用熱鍵組合、語音輸入等來啟動具 有多個服務(wù)的表示的菜單的輸出,如顯示在所選文本的旁邊的彈出式菜單?;谡Z音輸入,作出關(guān)于多個服務(wù)中的哪一個要接收由應(yīng)用程序顯示在用戶界面 中的文本的判定(框1804)。例如,用戶可以說出菜單中顯示的表示的名稱(例如,圖6的 “地圖”),可以描述服務(wù)所執(zhí)行的操作(例如,“繪制地址的地圖”),可以使用用戶為一服務(wù) 先前存儲的定制名稱,等等。在一實現(xiàn)中,定制語音輸入可以提供對特定服務(wù)的“語音快捷 方式”。隨后響應(yīng)于該確定在無需用戶干預(yù)的情況下將該文本提供給所確定的服務(wù)(框 1806)。繼續(xù)以上示例,一旦作出選擇了特定服務(wù)的判定,則可以在無需用戶一方與計算設(shè) 備102進(jìn)行進(jìn)一步交互的情況下將該文本提供給該服務(wù)。在一實現(xiàn)中,一旦使用語音輸入執(zhí)行了對服務(wù)的判定,就可以停止對后續(xù)語音輸 入的翻譯(框1808)。例如,語音啟動模塊116可以“關(guān)閉”用于確定語音輸入的底層意義 (例如,確定“說了什么”)的話筒,以便不使該模塊的操作進(jìn)一步復(fù)雜化,這可以節(jié)省計算 設(shè)備102的資源。示例系統(tǒng)圖19示出可以實現(xiàn)上述各實施例的示例計算設(shè)備1900。計算設(shè)備1900可以是例 如圖1的計算設(shè)備102或任何其他合適的計算設(shè)備。計算設(shè)備1900包括一個或多個處理器或處理單元1902、一個或多個存儲器和/或 存儲組件1904、一個或多個輸入/輸出(I/O)設(shè)備1906、以及允許各組件和設(shè)備彼此通信 的總線1908??偩€1908表示任何若干類型的總線結(jié)構(gòu)中的一個或多個,包括存儲器總線或 存儲器控制器、外圍總線、加速圖形端口、以及使用各種總線體系結(jié)構(gòu)的任一種的處理器或 局部總線??偩€1908可包括有線和/或無線總線。存儲器/存儲組件1904表示一個或多個計算機存儲介質(zhì)。組件1904可包括易失 性介質(zhì)(如隨機存取存儲器(RAM))和/或非易失性介質(zhì)(如只讀存儲器(ROM)、閃存、光 盤、磁盤等等)。組件1904可包括固定介質(zhì)(例如,RAM、ROM、固定硬盤驅(qū)動器等)以及可 移動介質(zhì)(例如閃存驅(qū)動器、可移動硬盤驅(qū)動器、光盤等等)。一個或多個輸入/輸出設(shè)備1906允許用戶向計算設(shè)備1900輸入命令和信息,并 還允許向用戶和/或其他組件或設(shè)備呈現(xiàn)信息。輸入設(shè)備的示例包括鍵盤、光標(biāo)控制設(shè)備 (例如鼠標(biāo))、話筒、掃描儀等。輸出設(shè)備的示例包括顯示設(shè)備(例如監(jiān)視器或投影儀)、揚 聲器、打印機、網(wǎng)卡等。各種技術(shù)在此可以在軟件或程序模塊的一般上下文中描述。一般而言,軟件包括 執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。這些模塊 和技術(shù)的實現(xiàn)可以存儲在某種形式的計算機可讀介質(zhì)上或通過某種形式的計算機可讀介 質(zhì)傳輸。計算機可讀介質(zhì)可以是可由計算機訪問的任何一個或多個可用介質(zhì)。作為示例而 非限制,計算機可讀介質(zhì)可以包括“計算機存儲介質(zhì)”?!坝嬎銠C存儲介質(zhì)”包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或 其他數(shù)據(jù)等信息的任何方法或技術(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計 算機存儲介質(zhì)包括但不限于,RAM、ROM、EEPR0M、閃存或其他存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其他光盤存儲、盒式磁帶、磁帶、磁盤存儲或其他磁存儲設(shè)備,或者可用于存 儲所需信息并可由計算機訪問的任何其他介質(zhì)。 盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán) 利要求書中定義的主題不必限于上述具體特征或動作。相反,上文所描述的具體特征和動 作是作為實現(xiàn)權(quán)利要求的示例形式來公開的。
權(quán)利要求
一種由計算設(shè)備實現(xiàn)的方法,包括接收對由應(yīng)用程序顯示在用戶界面中的文本的選擇(1700);檢測對所述用戶界面中顯示的多個服務(wù)之一的選擇(1704);以及響應(yīng)于所述檢測,在無需進(jìn)一步用戶干預(yù)的情況下將所述文本的選擇提供給所選服務(wù),以使用所述文本的選擇來啟動所選服務(wù)的操作(1706)。
2.如權(quán)利要求1所述的方法,其特征在于,對所述多個服務(wù)之一的選擇是是使用光標(biāo) 控制設(shè)備來執(zhí)行的。
3.如權(quán)利要求1所述的方法,其特征在于,還包括響應(yīng)于接收到所述文本的選擇,在無 需用戶干預(yù)的情況下輸出所述多個服務(wù)中的每一個的表示。
4.如權(quán)利要求1所述的方法,其特征在于,所述文本是使用光標(biāo)控制設(shè)備在所述用戶 界面中選擇的,以便所述用戶界面中的其他文本不被選擇并且不被提供給所確定的服務(wù)。
5.如權(quán)利要求1所述的方法,其特征在于,還包括輸出包含所述多個服務(wù)中的每一個 的表示的用戶界面。
6.如權(quán)利要求5所述的方法,其特征在于,至少一個所述表示包括標(biāo)識符,所述標(biāo)識符 指示對于對應(yīng)的所述服務(wù)的選擇可通過提供所述語音輸入來執(zhí)行。
7.如權(quán)利要求1所述的方法,其特征在于,還包括輸出作為所確定的服務(wù)使用所提供 的文本來執(zhí)行的處理的結(jié)果的預(yù)覽。
8.如權(quán)利要求7所述的方法,其特征在于,所述預(yù)覽是在不打開瀏覽器的情況下執(zhí)行的。
9.如權(quán)利要求7所述的方法,其特征在于,所述預(yù)覽是使用語音啟動的。
10.如權(quán)利要求9所述的方法,其特征在于,所述語音輸入與所確定的服務(wù)的名稱相對應(yīng)。
11.如權(quán)利要求9所述的方法,其特征在于,所述語音輸入與用戶對所確定的服務(wù)給出 的先前存儲的定制名稱相對應(yīng)。
12.如權(quán)利要求9所述的方法,其特征在于,一旦使用所述語音輸入執(zhí)行了對所述服務(wù) 的確定,就停止對后續(xù)語音輸入的翻譯。
13.如權(quán)利要求1所述的方法,其特征在于,至少一個所述服務(wù)處于執(zhí)行所述指令的計 算設(shè)備的本地。
14.如權(quán)利要求1所述的方法,其特征在于,至少一個所述服務(wù)處于執(zhí)行所述指令的計 算設(shè)備的遠(yuǎn)程。
全文摘要
描述了服務(wù)啟動技術(shù)。在至少一個實現(xiàn)中,計算設(shè)備接收對由應(yīng)用程序顯示在用戶界面中的文本的選擇。檢測對用戶界面中顯示的多個服務(wù)之一的選擇。響應(yīng)于該檢測,在無需進(jìn)一步用戶干預(yù)的情況下將所選擇的文本提供給所選服務(wù)。
文檔編號G06F17/00GK101978390SQ200980110574
公開日2011年2月16日 申請日期2009年2月27日 優(yōu)先權(quán)日2008年3月25日
發(fā)明者J·T·金, J·加西亞, R·E·德維爾 申請人:微軟公司