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

使用計(jì)算上下文的網(wǎng)絡(luò)接口路由的制作方法

文檔序號(hào):7675747閱讀:218來(lái)源:國(guó)知局
專利名稱:使用計(jì)算上下文的網(wǎng)絡(luò)接口路由的制作方法
使用計(jì)算上下文的網(wǎng)絡(luò)接口路由
背景技術(shù)
多穴(multihomed)主機(jī)設(shè)備,S卩,諸如移動(dòng)計(jì)算設(shè)備等具有不止一個(gè)網(wǎng) 絡(luò)連接的設(shè)備,不具備隱式地和動(dòng)態(tài)地選擇用于特定遠(yuǎn)程數(shù)據(jù)交換的網(wǎng)絡(luò)鏈路 的能力或當(dāng)計(jì)算環(huán)境的上下文滿足特定條件時(shí)選擇網(wǎng)絡(luò)鏈路能力。 一般地,經(jīng) 由在偏好選擇中由用戶設(shè)置的默認(rèn)連接來(lái)路由所有話務(wù),或者由在其他連接不 可用時(shí)可用的特定網(wǎng)絡(luò)連接來(lái)發(fā)送所有話務(wù)。不幸的是,默認(rèn)網(wǎng)絡(luò)連接可能并 非是對(duì)可用網(wǎng)絡(luò)資源的最佳利用或可能不是在特定時(shí)間用戶最感興趣的。例 如,在可用網(wǎng)絡(luò)和對(duì)較低帶寬連接的默認(rèn)選擇之間可能存在的差別很大的數(shù)據(jù) 傳輸速率可以不恰當(dāng)?shù)卦黾酉螺d時(shí)間或占用處理器容量。此外,不同的連接選 項(xiàng)可具有不同的使用費(fèi)用并且默認(rèn)的網(wǎng)絡(luò)連接在當(dāng)時(shí)可能并不是對(duì)用戶最有 價(jià)值的。
概述
在存在多個(gè)活動(dòng)網(wǎng)絡(luò)連接的情況下使用計(jì)算機(jī)操作環(huán)境的計(jì)算上下文的 知識(shí),例如對(duì)進(jìn)程線程的知曉,來(lái)路由IP話務(wù)??梢詫⒘硗獾膽?yīng)用程序協(xié)議 接口 (API)添加到操作系統(tǒng)的網(wǎng)絡(luò)層以將特定計(jì)算上下文映射到特定網(wǎng)絡(luò)接 口 。具有與通過通信網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)傳輸?shù)挠成涞挠?jì)算上下文相關(guān)聯(lián)的標(biāo)識(shí)參數(shù) 的任何進(jìn)程都綁定至先前與該計(jì)算上下文相關(guān)聯(lián)的網(wǎng)絡(luò)接口而不是另外可能 是默認(rèn)的替換網(wǎng)絡(luò)接口。此外,可以使得父進(jìn)程線程所創(chuàng)建的進(jìn)程線程繼承父 線程的計(jì)算上下文以將話務(wù)分配給相同的網(wǎng)絡(luò)接口。該路由框架可具有關(guān)于多 穴主機(jī)設(shè)備,例如移動(dòng)計(jì)算設(shè)備的特定應(yīng)用程序。
提供本概述以便以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一 些概念。本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也 不旨在用于限制所要求保護(hù)的主題的范圍。所要求保護(hù)主題的其他特征、細(xì)節(jié)、 功能、以及優(yōu)點(diǎn)將從如附圖中進(jìn)一步示出的以及在所附權(quán)利要求中所定義的以 下更詳細(xì)描寫的各實(shí)施例和實(shí)現(xiàn)的詳細(xì)描述中變得顯而易見。附圖簡(jiǎn)述


圖1是基于此處所描述的計(jì)算上下文框架來(lái)使用路由功能的計(jì)算機(jī)網(wǎng)絡(luò) 的示意圖。
圖2是此處所描述的網(wǎng)絡(luò)接口路由框架的一個(gè)實(shí)現(xiàn)的示意圖。 圖3是此處所描述的網(wǎng)絡(luò)接口路由框架的另一個(gè)實(shí)現(xiàn)的示意圖。 圖4是用于基于計(jì)算上下文將網(wǎng)絡(luò)接口分配給應(yīng)用程序線程的過程的示 意圖。
圖5是用于將網(wǎng)絡(luò)接口從一個(gè)應(yīng)用程序線程分配給另一個(gè)應(yīng)用程序線程 的過程的示意圖。
圖6是可在計(jì)算上下文路由系統(tǒng)的實(shí)現(xiàn)中使用的通用移動(dòng)計(jì)算設(shè)備的示意圖。
圖7是可在計(jì)算上下文路由系統(tǒng)的實(shí)現(xiàn)中使用的通用計(jì)算機(jī)系統(tǒng)的示意圖。
發(fā)明詳述
在現(xiàn)代計(jì)算設(shè)備中,并且尤其對(duì)于移動(dòng)計(jì)算設(shè)備,計(jì)算設(shè)備同時(shí)利用多個(gè) 網(wǎng)絡(luò)接口是常見的。例如,"智能電話"可以支持用于藍(lán)牙(一種短程無(wú)線連
接標(biāo)準(zhǔn))、無(wú)線局域網(wǎng)(WLAN或Wi-Fi)、以及通用分組無(wú)線電業(yè)務(wù)(GPRS) /通用移動(dòng)電信系統(tǒng)(UMTS)(用于通過無(wú)線電頻譜的數(shù)據(jù)發(fā)送和接收的分組 交換協(xié)議)的通信接口。雖然GPRS幾乎始終是可用的,但是Wi-Fi連接通常 只在移動(dòng)設(shè)備在例如家庭無(wú)線網(wǎng)絡(luò)、工作場(chǎng)所無(wú)線網(wǎng)絡(luò)、或者公共或半公共無(wú) 線網(wǎng)絡(luò)(例如,在咖啡店或商務(wù)顧客酒店可用)的Wi-Fi網(wǎng)絡(luò)的范圍之內(nèi)時(shí)可 用。這些網(wǎng)絡(luò)接口可具有成本、安全性、以及帶寬方面的非常不同的特性。
因?yàn)橥ㄟ^Wi-Fi連接傳輸數(shù)據(jù)的成本相比于通過GPRS連接傳輸?shù)拿總€(gè)數(shù) 據(jù)單元(例如,每兆字節(jié)(MB))的成本一般是可忽略的,所以期望只要可 能的時(shí)候就使用Wi-Fi接口 。對(duì)于一般相比于GPRS連接在Wi-Fi網(wǎng)絡(luò)上要大 得多的可用帶寬,該相同的偏好可能也是如此。
然而,存在為何對(duì)應(yīng)用程序而言在不止一個(gè)網(wǎng)絡(luò)可用的情況下優(yōu)選地選擇 更慢或更昂貴的網(wǎng)絡(luò)連接是較佳的多個(gè)理由。例如,某些網(wǎng)絡(luò)可以提供對(duì)只在該網(wǎng)絡(luò)上可用的特定服務(wù)器和服務(wù)的訪問。取決于在計(jì)算設(shè)備上運(yùn)行的用戶或 應(yīng)用程序的特定需求,不同的網(wǎng)絡(luò)連接可以是到達(dá)它們的最佳連接。在這些情 況下,基于當(dāng)前計(jì)算上下文選擇用于特定通訊任務(wù)的網(wǎng)絡(luò)接口鏈路可以是有價(jià) 值的。當(dāng)此處使用數(shù)據(jù)"網(wǎng)絡(luò)鏈路"或"鏈路"時(shí),它一般指的是通過特定硬件 通信設(shè)備或"網(wǎng)絡(luò)接口"直接連接的對(duì)等體之間的連接。例如,連接到相同的 以太網(wǎng)段的所有計(jì)算機(jī)(例如,交換器或集線器)在相同的網(wǎng)絡(luò)鏈路上。在另 一個(gè)示例中,用Wi-Fi卡連接到相同無(wú)線接入點(diǎn)的所有設(shè)備使用相同的網(wǎng)絡(luò)鏈 路。在又一個(gè)示例中,當(dāng)用戶通過該用戶的計(jì)算機(jī)上的調(diào)制解調(diào)器使用撥號(hào)連 接來(lái)到達(dá)因特網(wǎng)服務(wù)供應(yīng)商(ISP)時(shí),確切地存在連接到同一網(wǎng)絡(luò)鏈路(即, 在該用戶計(jì)算機(jī)上的調(diào)制解調(diào)器)的兩個(gè)節(jié)點(diǎn)(該用戶的計(jì)算機(jī)以及ISP的調(diào) 制解調(diào)器)。節(jié)點(diǎn)使用路由協(xié)議來(lái)判定使用哪條網(wǎng)絡(luò)鏈路來(lái)發(fā)送針對(duì)下一個(gè)目 的地節(jié)點(diǎn)的分組(即,節(jié)點(diǎn)判定將使用哪條網(wǎng)絡(luò)鏈路來(lái)"更靠近"目的地節(jié)點(diǎn))。當(dāng)此處使用術(shù)語(yǔ)"網(wǎng)絡(luò)連接"時(shí),它一般用于描述在不必連接到同一網(wǎng)絡(luò) 鏈路的兩個(gè)節(jié)點(diǎn)之間的邏輯連接。這對(duì)于因特網(wǎng)是常見情況。網(wǎng)絡(luò)連接意味著 使用標(biāo)準(zhǔn)網(wǎng)際協(xié)議(IP)來(lái)在節(jié)點(diǎn)之間交換數(shù)據(jù)。當(dāng)此處使用術(shù)語(yǔ)"網(wǎng)絡(luò)套接字"或"套接字"時(shí),它一般用于描述網(wǎng)絡(luò)連 接的端點(diǎn)。為了設(shè)置網(wǎng)絡(luò)連接,兩個(gè)節(jié)點(diǎn)都創(chuàng)建網(wǎng)絡(luò)套接字,將套接字相關(guān)聯(lián)(即,"連接")以建立網(wǎng)絡(luò)連接,并使用IP協(xié)議來(lái)通過該連接交換數(shù)據(jù)。 因此,在該上下文中,在網(wǎng)絡(luò)鏈路只提供對(duì)直接與特定硬件通信設(shè)備(g卩,網(wǎng) 絡(luò)接口)相連接的節(jié)點(diǎn)的訪問,而網(wǎng)絡(luò)連接和相關(guān)聯(lián)的網(wǎng)絡(luò)套接字允許對(duì)通過 遍歷經(jīng)由多個(gè)網(wǎng)絡(luò)鏈路相連接的一組節(jié)點(diǎn)可到達(dá)的節(jié)點(diǎn)的訪問的意義上,網(wǎng)絡(luò) 鏈路可被認(rèn)為是比網(wǎng)絡(luò)套接字或網(wǎng)絡(luò)連接"低級(jí)"。"計(jì)算上下文"意味著可以使用由特定應(yīng)用程序或計(jì)算設(shè)備的用戶具體標(biāo) 識(shí)的偏好來(lái)動(dòng)態(tài)地做出對(duì)網(wǎng)絡(luò)鏈路接口的選擇而不是僅僅選擇活動(dòng)的默認(rèn)網(wǎng) 絡(luò)鏈路或利用現(xiàn)存的路由表。在應(yīng)用程序編程的說法中,網(wǎng)絡(luò)路由選擇因此將 基于程序執(zhí)行的特定"線程"從而做出。類似于多條線交織在一起以形成一片 纖維的方式,線程是程序?qū)⑵渥陨矸殖蓛蓚€(gè)或多個(gè)同時(shí)運(yùn)行的任務(wù)的方式???以在許多計(jì)算機(jī)系統(tǒng)上并行執(zhí)行多個(gè)線程。該多線程化一般通過時(shí)間片(其中單個(gè)處理器在不同的線程之間切換)或通過多處理(其中線程在各獨(dú)立的處理 器上執(zhí)行)來(lái)發(fā)生。此外,處理器可以同時(shí)處理來(lái)自同時(shí)執(zhí)行的多個(gè)應(yīng)用程序 的線程。圖1提供了可如何開發(fā)應(yīng)用程序以實(shí)現(xiàn)基于計(jì)算上下文(即,執(zhí)行的特定 線程)的網(wǎng)絡(luò)接口的選擇的示例。在該示例中,開發(fā)"新聞閱讀器"應(yīng)用程序 104以供在與分布式網(wǎng)絡(luò)計(jì)算系統(tǒng)100 (例如,因特網(wǎng))相連接的移動(dòng)計(jì)算設(shè)備102上使用。移動(dòng)設(shè)備102可配備若干不同的通信網(wǎng)絡(luò)接口。例如,移動(dòng)設(shè) 備102可具有用于與諸如無(wú)線頭戴式耳機(jī)等外圍設(shè)備進(jìn)行通信或用于與臺(tái)式計(jì) 算機(jī)進(jìn)行同步的短程藍(lán)牙網(wǎng)絡(luò)接口 112。該移動(dòng)設(shè)備102也可具有用于當(dāng)在無(wú) 線接入點(diǎn)的范圍中時(shí)進(jìn)行高速數(shù)據(jù)傳輸?shù)腤i-Fi網(wǎng)絡(luò)接口 114。該移動(dòng)設(shè)備102 還可具有用于在可能與該移動(dòng)設(shè)備102的電話組件的語(yǔ)音通信服務(wù)的覆蓋范圍 同延的大得多的地理區(qū)域上的數(shù)據(jù)通信的GPRS網(wǎng)絡(luò)接口 116。新聞閱讀器應(yīng)用程序104可被設(shè)計(jì)為每天早晨更新可用新聞項(xiàng)列表并且 當(dāng)Wi-Fi連接可用時(shí)或如果用戶顯式地指示花費(fèi)額外的錢以通過GPRS來(lái)下載 文章的意愿時(shí)下載完整的新聞文章。從其下載新聞?dòng)嗛喸春臀恼碌木W(wǎng)絡(luò)服務(wù)器 118上的庫(kù)120可由該移動(dòng)設(shè)備的Wi-Fi網(wǎng)絡(luò)接口或GPRS網(wǎng)絡(luò)接口來(lái)訪問。 然而,控制庫(kù)120的軟件是由第三方來(lái)編寫的,并且新聞閱讀器應(yīng)用程序104 的開發(fā)者不可訪問控制庫(kù)120或網(wǎng)絡(luò)服務(wù)器118以指示新聞?dòng)嗛喸椿蛭恼聭?yīng)通 過哪個(gè)網(wǎng)絡(luò)來(lái)傳送的源代碼。為了實(shí)現(xiàn)基于上下文的正確的網(wǎng)絡(luò)選擇,新聞閱讀器應(yīng)用程序104的開發(fā) 者可在新聞閱讀器應(yīng)用程序104中編寫?yīng)毩⒖蓤?zhí)行的線程以實(shí)現(xiàn)本程序的期望 目標(biāo)。例如,可以編寫第一程序性線程106以周期性地下載新聞?dòng)嗛喸础T谠?示例中,用戶可以設(shè)置新聞閱讀器應(yīng)用程序104中指示新聞?dòng)嗛喸聪螺d應(yīng)在每 天早晨執(zhí)行的時(shí)間組件。此外,新聞閱讀器應(yīng)用程序104的默認(rèn)網(wǎng)絡(luò)可被設(shè)置 為Wi-Fi以利用更低的成本以及更快的下載速度。新聞閱讀器應(yīng)用程序104可 被設(shè)計(jì)為監(jiān)視可用的聯(lián)網(wǎng)接口并且只在該設(shè)備在用戶設(shè)置的時(shí)間窗內(nèi)通過 Wi-Fi來(lái)連接時(shí)觸發(fā)與第三方庫(kù)130的實(shí)際連接。在第二示例性程序性線程108中,新聞閱讀器應(yīng)用程序104的開發(fā)者可以 將默認(rèn)設(shè)為一旦可以從庫(kù)120獲得新聞文章并且僅當(dāng)在Wi-Fi連接114的范圍8中時(shí)作為后臺(tái)操作來(lái)下載實(shí)際的新聞文章。同樣,在第三示例性程序性線程110 中,新聞應(yīng)用程序104可被配置為只下載用戶所選的新聞文章。對(duì)于許多移動(dòng)設(shè)備操作系統(tǒng)(例如,WINDOWS CE),存在對(duì)IP聯(lián)網(wǎng)層 的擴(kuò)展,該擴(kuò)展允許傳輸層驅(qū)動(dòng)程序顯式地將套接字(即,網(wǎng)絡(luò)連接的邏輯抽 象)綁定或分配到物理網(wǎng)絡(luò)接口 (例如,Wi-Fi、 GPRS/UMTS、 LAN、藍(lán)牙), 因此顯式地通過該綁定接口發(fā)送由該套接字生成的所有話務(wù)。該操作系統(tǒng)功能 可被應(yīng)用程序的開發(fā)者用于具有多個(gè)網(wǎng)絡(luò)接口選項(xiàng)的移動(dòng)設(shè)備或其他計(jì)算設(shè) 備。然而,這些套接字綁定功能可能不是例如圖1的新聞文章庫(kù)120等可用于 為移動(dòng)設(shè)備上的應(yīng)用程序的通信需求服務(wù)的第三方應(yīng)用程序所期望的。即使具有多個(gè)活動(dòng)網(wǎng)絡(luò)接口以及將套接字綁定到網(wǎng)絡(luò)接口的能力,沒有某些另外的功能,也不能夠?qū)崿F(xiàn)上述新聞閱讀器應(yīng)用程序104。這是因?yàn)殚_發(fā)者 不具有對(duì)第三方庫(kù)的控制(用于傳遞選擇特定接口的參數(shù)),也不能夠?qū)⒙?lián)網(wǎng) 層配置為自動(dòng)地將話務(wù)從主存庫(kù)120的網(wǎng)絡(luò)服務(wù)器118路由到特定網(wǎng)絡(luò)接口。 此外,網(wǎng)絡(luò)協(xié)議將使用最初由設(shè)備或特定應(yīng)用程序?yàn)橥ㄐ旁拕?wù)所選的默認(rèn)網(wǎng)絡(luò) 來(lái)路由由特定應(yīng)用程序生成的或用于該特定應(yīng)用程序的所有分組話務(wù)。新聞閱讀器應(yīng)用程序104的開發(fā)者的目標(biāo)是使由第一線程106以及第二線 程108生成的所有網(wǎng)絡(luò)話務(wù)都通過Wi-Fi網(wǎng)絡(luò)路由。另外,開發(fā)者想讓新聞閱 讀器應(yīng)用程序104決定用于根據(jù)第三線程IIO顯式地選擇的新聞文章的路由。 新聞閱讀器應(yīng)用程序應(yīng)能夠動(dòng)態(tài)地選擇話務(wù)應(yīng)通過Wi-Fi連接還是GPRS連 接。為了實(shí)現(xiàn)這些目標(biāo),可以引入映射表來(lái)將計(jì)算上下文(例如,各線程或其 他參數(shù))映射到操作系統(tǒng)的聯(lián)網(wǎng)層中的接口。該映射表包含對(duì)應(yīng)于用于應(yīng)通過 其路由外出話務(wù)的每個(gè)受監(jiān)視的計(jì)算上下文(例如,程序線程)的物理網(wǎng)絡(luò)接 口的標(biāo)識(shí)符。聯(lián)網(wǎng)層中的路由代碼甚至在到接口的連接"丟失"(例如,因?yàn)?所配置的接口不可用所以丟棄分組)的情況下也遵循所選的物理網(wǎng)絡(luò)接口。作為默認(rèn),先前的配置(例如,父線程的配置)是固有的或是由運(yùn)行的計(jì) 算上下文所創(chuàng)建的任何新的計(jì)算上下文假設(shè)的,而不是事先需要綁定到對(duì)應(yīng)于 用于網(wǎng)絡(luò)連通性的每個(gè)線程的特定套接字。因此,新程序性線程默認(rèn)地繼承其 父線程的偏好。以此方式,對(duì)于每個(gè)進(jìn)程情形,只有第一個(gè)(主)線程必須被分配給物理網(wǎng)絡(luò)接口,而隨后創(chuàng)建的線程自動(dòng)被分配給相同的接口,除非以其 他方式顯式地配置。有了該框架,開發(fā)者因此能夠?qū)崿F(xiàn)新聞閱讀器應(yīng)用程序以按照上下文來(lái)選 擇網(wǎng)絡(luò)接口。當(dāng)實(shí)例化該應(yīng)用程序時(shí),第一線程106可被顯式地綁定到Wi-Fi 接口。即使無(wú)線鏈路還未被分配IP地址,這在移動(dòng)操作系統(tǒng)的聯(lián)網(wǎng)層中也是 可能的。該顯式綁定保證新聞閱讀器應(yīng)用程序104無(wú)論在什么情況下都不會(huì)通 過選擇更昂貴的網(wǎng)絡(luò)連接或默認(rèn)當(dāng)前正由該移動(dòng)設(shè)備用于其他話務(wù)的連接而 為用戶產(chǎn)生不需要的成本。一旦在移動(dòng)設(shè)備102與分發(fā)第三方庫(kù)120的網(wǎng)絡(luò)服務(wù)器118之間啟動(dòng) Wi-Fi連接,應(yīng)用程序就可產(chǎn)生第一線程106作為后臺(tái)線程(即,新的計(jì)算上 下文)以周期性地檢索可用新聞項(xiàng)的列表。在該示例中,該新線程繼承主線程 的聯(lián)網(wǎng)接口準(zhǔn)則。因此,應(yīng)用程序不需要任何額外的工作來(lái)確保正確地路由IP 分組。注意,不需要重寫現(xiàn)存的使用網(wǎng)絡(luò)的組件以從該解決方案中獲益,因?yàn)?調(diào)用另一個(gè)組件的父線程的上下文網(wǎng)絡(luò)特性可以在實(shí)例化時(shí)被簡(jiǎn)單地附著到 子線程組件。一旦新的新聞項(xiàng)列表可用,第一線程106就產(chǎn)生第二線程108以處理待決 新聞消息的排隊(duì)列表。再一次,對(duì)于新聞閱讀器應(yīng)用程序104沒有額外的工作, 因?yàn)閬?lái)自第一線程106的設(shè)置被傳播至第二線程108的新計(jì)算上下文。當(dāng)用戶在應(yīng)用程序的用戶界面中點(diǎn)擊第二線程108還未下載的新聞項(xiàng)時(shí), 新聞閱讀器應(yīng)用程序104詢問用戶是否愿意為通過GPRS的即時(shí)傳輸支付額外 的費(fèi)用。如果用戶接受這些費(fèi)用,則新聞閱讀器應(yīng)用程序104創(chuàng)建第三線程 110,但然后修改對(duì)應(yīng)于該第三線程110的聯(lián)網(wǎng)接口綁定以將其鎖定到GPRS 連接。以上對(duì)于圖1的示例性場(chǎng)景所述的網(wǎng)絡(luò)接口的上下文選擇和綁定的這一 概念的實(shí)現(xiàn)可被分成兩個(gè)問題。第一個(gè)問題涉及如何將特定聯(lián)網(wǎng)連接始發(fā)的所 有話務(wù)路由到指定的聯(lián)網(wǎng)接口。第二個(gè)問題涉及如何將從計(jì)算上下文(例如, 特定程序線程)中創(chuàng)建的聯(lián)網(wǎng)連接綁定到特定聯(lián)網(wǎng)接口。對(duì)于第一個(gè)問題的一個(gè)可能的解決方案使用如在圖2所描繪的實(shí)現(xiàn)200 中所表示的一個(gè)或多個(gè)分層協(xié)議驅(qū)動(dòng)程序210、 212??捎蓱?yīng)用程序訪問的應(yīng)用程序協(xié)議接口 (API) 204與操作系統(tǒng)的聯(lián)網(wǎng)功能接口。具體地,可以調(diào)用被
大多數(shù)因特網(wǎng)和網(wǎng)絡(luò)應(yīng)用程序用于處理網(wǎng)絡(luò)連接的套接字API 204,例如, Windows套接字API WinSock。在取決于被假定為支持套接字到物理接口的顯 式綁定的底層基礎(chǔ)協(xié)議216時(shí),分層協(xié)議驅(qū)動(dòng)程序210、 212將各線程映射到 物理網(wǎng)絡(luò)接口。
分層協(xié)議驅(qū)動(dòng)程序210、 212具有兩個(gè)責(zé)任。由第一分層協(xié)議210表示的 第一責(zé)任是向應(yīng)用程序展示接口以操控映射表從計(jì)算上下文(例如,特定程序 線程)轉(zhuǎn)換到聯(lián)網(wǎng)接口。使用該層,應(yīng)用程序能夠修改其綁定。
由第二分層協(xié)議212表示的第二責(zé)任是通過連接套接字的傳輸層服務(wù)供 應(yīng)商接口 (SPI) 206來(lái)截取調(diào)用。第二分層協(xié)議212監(jiān)視對(duì)特定網(wǎng)絡(luò)接口的顯 式綁定請(qǐng)求以使得分層協(xié)議驅(qū)動(dòng)程序210、 212不干擾故意綁定的套接字。當(dāng) 標(biāo)識(shí)未綁定的套接字時(shí),第二分層協(xié)議驅(qū)動(dòng)程序212顯式地將該套接字綁定到 由映射表基于計(jì)算上下文(如果設(shè)置了這些上下文屬性)指示的網(wǎng)絡(luò)接口,并 且修改該套接字的屬性以經(jīng)由所選物理網(wǎng)絡(luò)接口來(lái)路由始發(fā)分組。
因此,對(duì)于沒有顯式網(wǎng)絡(luò)綁定的套接字,如在套接字API與第一分層協(xié)議 210之間的通信箭頭208所指示的,分層協(xié)議驅(qū)動(dòng)程序200應(yīng)用與當(dāng)前計(jì)算上 下文(例如,線程)相關(guān)聯(lián)的綁定。然而,如在套接字API204與基礎(chǔ)協(xié)議216 之間的通信箭頭214所指示的,分層協(xié)議驅(qū)動(dòng)程序200并不干擾對(duì)網(wǎng)絡(luò)連接的 現(xiàn)存的顯式套接字綁定。
回想將從計(jì)算上下文中創(chuàng)建的聯(lián)網(wǎng)套接字綁定到特定聯(lián)網(wǎng)接口的第二個(gè) 問題。如圖3所描繪的,用于路由話務(wù)的另一個(gè)實(shí)現(xiàn)通過直接將應(yīng)用專用路由 屬性添加到現(xiàn)存的路由表308來(lái)修改路由子系統(tǒng)300來(lái)解決該問題。路由子系 統(tǒng)300可具有允許操控聯(lián)網(wǎng)協(xié)議層306以基于屬于特定進(jìn)程的任何計(jì)算上下文 (例如,線程)來(lái)路由的附加上下文映射接口 310。
當(dāng)執(zhí)行"connect()"(連接)操作或由程序員使用"bind()"(綁定)操作來(lái)顯 式地連接時(shí),套接字一般自動(dòng)地或隱式地被連接到聯(lián)網(wǎng)接口。該任務(wù)是使隱式 綁定可通過在映射或路由表308中將計(jì)算上下文與聯(lián)網(wǎng)接口相關(guān)聯(lián)來(lái)配置,并 且使聯(lián)網(wǎng)層306的隱式綁定代碼遵循該路由表308。通常將聯(lián)網(wǎng)套接字連接到 聯(lián)網(wǎng)接口316、 318、 320、 322的各操作由上下文映射接口 310截取,從而使應(yīng)用程序開發(fā)者能夠創(chuàng)建從計(jì)算上下文(例如,線程標(biāo)識(shí))到特定聯(lián)網(wǎng)接口 316、
318、 320、 322的映射制度。
圖3部分地示出了一般如何處理由來(lái)自單個(gè)進(jìn)程的不同線程生成的聯(lián)網(wǎng) 話務(wù)。兩個(gè)示例性應(yīng)用程序302、304被描繪為各自并行地執(zhí)行四個(gè)線程302a-d、 304a-d。在每個(gè)線程的生存期期間,生成需要被傳送至遠(yuǎn)程站點(diǎn)的話務(wù)。線程 302b、 302d、 304a、 304b、 304c不包含上下文信息,而線程302a、 302c、 304d 包括上下文信息。此外,線程302a的上下文指示由該進(jìn)程產(chǎn)生的信息應(yīng)通過 GPRS接口 316而非另一個(gè)接口來(lái)發(fā)送。這在圖3中由在線程302a與聯(lián)網(wǎng)層 306之間的具有單個(gè)點(diǎn)的虛線來(lái)指示。線程302a的上下文指示由該進(jìn)程產(chǎn)生的 信息應(yīng)通過GPRS接口 316而非另一個(gè)接口來(lái)發(fā)送。這在圖3中由在線程302c、 304d與聯(lián)網(wǎng)層306之間的具有兩個(gè)點(diǎn)的虛線來(lái)指示。
如果沒有上下文映射,則所有通信量一般將使用聯(lián)網(wǎng)層306的現(xiàn)存的接口 來(lái)通過聯(lián)網(wǎng)層306 (例如,創(chuàng)建套接字、建立到遠(yuǎn)程站點(diǎn)的連接、以及最終通 過該連接來(lái)發(fā)送數(shù)據(jù))。該話務(wù)由從線程302b、 302d、 304a、 304b、 304c到 聯(lián)網(wǎng)層306的實(shí)線箭頭以及從聯(lián)網(wǎng)層306到網(wǎng)絡(luò)接口 316、 318、 320、 322中 的每一個(gè)的實(shí)線箭頭來(lái)表示。由聯(lián)網(wǎng)層306所選擇的特定接口僅僅是當(dāng)時(shí)的默 認(rèn)接口,例如,在設(shè)備范圍中或連接到該設(shè)備的或被用戶選為默認(rèn)的無(wú)論哪個(gè) 接口。在聯(lián)網(wǎng)層306中發(fā)生了什么對(duì)于應(yīng)用程序302、 304是透明的,但最終 將每一信息片段都傳遞至物理網(wǎng)絡(luò)接口 316、 318、 320、 322以供發(fā)送。
普通的接口配置導(dǎo)致路由表308具有對(duì)應(yīng)于每個(gè)活動(dòng)聯(lián)網(wǎng)接口 316、 318、 320、 322的默認(rèn)路由。注意,對(duì)應(yīng)于每個(gè)網(wǎng)絡(luò)接口 316、 318、 320、 322的完 整的IP參數(shù)集在初始化了網(wǎng)絡(luò)接口之后可用。該信息是IP地址、網(wǎng)絡(luò)掩碼、 以及網(wǎng)絡(luò)接口的默認(rèn)網(wǎng)關(guān)的形式,.并且由本地機(jī)器的管理員來(lái)硬編碼或者在配 置期間從由自動(dòng)分配配置的動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)服務(wù)器返回的數(shù)據(jù)中 設(shè)置。
然而,在路由表中不存在實(shí)際上將數(shù)據(jù)從套接字綁定到特定網(wǎng)絡(luò)接口的標(biāo) 準(zhǔn)化。在每個(gè)網(wǎng)絡(luò)接口存在一個(gè)默認(rèn)路由入口的情況下,能夠以多種方式處理 不以直接連接的網(wǎng)絡(luò)為目標(biāo)的外出話務(wù)(即,由默認(rèn)路由表處理的話務(wù))。這 些話務(wù)可被發(fā)送至套接字所綁定到的網(wǎng)絡(luò)接口上的網(wǎng)關(guān);發(fā)送至默認(rèn)路由所附連的網(wǎng)絡(luò)接口上的網(wǎng)關(guān);或被發(fā)送至可用網(wǎng)絡(luò)接口中的任一個(gè),這實(shí)際上經(jīng)常 切換實(shí)際所使用的網(wǎng)關(guān)(例如,WINDOWS 2000)。
然而,如在對(duì)于圖l所描述的新聞閱讀器應(yīng)用程序的示例中,隨著移動(dòng)設(shè) 備的出現(xiàn),標(biāo)準(zhǔn)聯(lián)網(wǎng)協(xié)議可能不夠靈活。某些應(yīng)用程序可能出于包括性能、安 全性和可用性的目的而需要對(duì)通過其應(yīng)路由信息的聯(lián)網(wǎng)接口的更精細(xì)粒度的 控制。因此,在圖3中,已通過將附加上下文映射接口 310添加到聯(lián)網(wǎng)層306 而使路由表308可被訪問。該上下文映射接口 310允許程序員設(shè)置從例如基于 線程標(biāo)識(shí)的特定線程到基于接口標(biāo)識(shí)的物理網(wǎng)絡(luò)接口的路由映射。
如圖3所示,第一應(yīng)用程序302和第二應(yīng)用程序304中的每一個(gè)都向上下 文映射接口 310提供上下文映射信息。上下文映射接口 310使用來(lái)自第一和第 二應(yīng)用程序302、 304的上下文信息來(lái)將基于計(jì)算上下文的附加上下文路由準(zhǔn) 則312、 314添加到路由表308。上下文路由準(zhǔn)則312、 314可采用將特定線程 標(biāo)識(shí)與由網(wǎng)絡(luò)接口的IP參數(shù)標(biāo)識(shí)的特定網(wǎng)絡(luò)接口相關(guān)的綁定指令的形式。對(duì) 于需要被路由的任何分組,由路由表308來(lái)執(zhí)行查找。如果分組包括對(duì)應(yīng)于上 下文路由準(zhǔn)則312、 314的上下文信息,則創(chuàng)建套接字(或如果己經(jīng)創(chuàng)建則選 擇套接字),啟動(dòng)連接到遠(yuǎn)程主機(jī)的嘗試,并且通過所配置的網(wǎng)絡(luò)接口來(lái)發(fā)送 分組。否則,使用普通路由表來(lái)路由該分組。
例如,對(duì)于圖1的示例性新聞閱讀器應(yīng)用程序,上下文映射接口 310可以 在由應(yīng)用程序302、 304指示時(shí)將GPRS字段312以及Wi-Fi字段314寫入路 由表308。當(dāng)在網(wǎng)絡(luò)層306處接收到具有對(duì)應(yīng)于GPRS網(wǎng)絡(luò)接口選擇的線程標(biāo) 識(shí)信息的來(lái)自第一應(yīng)用程序302的線程302a(圖3中被指示為虛線對(duì)之間具有 單個(gè)點(diǎn)的虛線)時(shí),基于路由表308的GPRS字段312創(chuàng)建套接字并將其直接 綁定到GPRS網(wǎng)絡(luò)接口 316。同樣地,當(dāng)在網(wǎng)絡(luò)層306處接收到具有對(duì)應(yīng)于 Wi-Fi網(wǎng)絡(luò)接口選擇的線程標(biāo)識(shí)信息的來(lái)自第一應(yīng)用程序302的線程302c或者 來(lái)自第二應(yīng)用程序304的線程304d(圖3中被指示為虛線對(duì)之間具有兩個(gè)點(diǎn)的 虛線)時(shí),基于路由表308的Wi-Fi字段314創(chuàng)建套接字并將其直接綁定到 Wi-Fi網(wǎng)絡(luò)接口 322。
啟用基于計(jì)算上下文的套接字綁定因而允許應(yīng)用程序進(jìn)行控制,通過該控 制,通過簡(jiǎn)單地將聯(lián)網(wǎng)接口的聯(lián)網(wǎng)套接字綁定到可用接口中的一個(gè)來(lái)路由聯(lián)網(wǎng)接口話務(wù)而不干擾傳統(tǒng)路由。添加控制以在通信套接字的核心聯(lián)網(wǎng)層中啟用直 接通過路由表到網(wǎng)絡(luò)接口的隱式綁定允許該聯(lián)網(wǎng)層也路由與傳輸控制協(xié)議 (TCP)或用戶數(shù)據(jù)報(bào)協(xié)議(UDP)連接不相關(guān)的分組,例如,網(wǎng)間控制報(bào)文
協(xié)議(ICMP)以及由受監(jiān)視的計(jì)算上下文生成的密鑰交換分組。
圖4示意性表示了由應(yīng)用程序傳遞至聯(lián)網(wǎng)層的基于計(jì)算上下文的綁定事 件400。在該綁定事件400中涉及三個(gè)組件應(yīng)用程序線程402、線程路由接 口 404、以及該聯(lián)網(wǎng)層的路由子系統(tǒng)406。應(yīng)用程序線程402使用被添加到聯(lián) 網(wǎng)層的路由能力。線程路由接口 404是被展示為對(duì)現(xiàn)存網(wǎng)絡(luò)API的擴(kuò)展的聯(lián)網(wǎng) 層的擴(kuò)展API。路由子系統(tǒng)406是網(wǎng)絡(luò)API的一部分。
在綁定事件400的初始操作408中,客戶機(jī)應(yīng)用程序線程402收集與隨后 的網(wǎng)絡(luò)操作相關(guān)的計(jì)算上下文。 一般地,該計(jì)算上下文可以是環(huán)境特性的任何 集合,例如線程標(biāo)識(shí)、事務(wù)標(biāo)識(shí)、纖程標(biāo)識(shí)(纖程是運(yùn)行在操作系統(tǒng)之上并且 不與內(nèi)核交互的線程)、時(shí)間或日期戳、當(dāng)前處理器負(fù)荷、網(wǎng)絡(luò)成本差異等等。 注意,可能的計(jì)算上下文的集合是完全可擴(kuò)展的。然而在圖4的示例中,計(jì)算 上下文只包括線程標(biāo)識(shí)符。
在注冊(cè)操作410中,客戶機(jī)應(yīng)用程序的線程402向線程路由接口 API 404 注冊(cè)所獲得的計(jì)算上下文。在該示例中,來(lái)自客戶機(jī)的線程402將兩個(gè)參數(shù)傳 遞給線程路由接口 404:計(jì)算上下文特性集和通過其路由在給定上下文中生成 的所有話務(wù)的網(wǎng)絡(luò)接口標(biāo)識(shí)符。這會(huì)將計(jì)算上下文特性與例如以太網(wǎng)電纜或 WiFi連接的網(wǎng)絡(luò)接口相關(guān)聯(lián)。注意,不保證通過通信網(wǎng)絡(luò)發(fā)送至特定設(shè)備的 話務(wù)將始終通過該特定接口被回復(fù),因?yàn)樵趯?shù)據(jù)轉(zhuǎn)發(fā)至該設(shè)備時(shí)選擇目的地 設(shè)備的已知地址中的一個(gè)是由中間網(wǎng)絡(luò)來(lái)決定的。
在連接操作412中,客戶機(jī)應(yīng)用程序的線程402生成網(wǎng)絡(luò)話務(wù)以通過例如 直接調(diào)用聯(lián)網(wǎng)API的路由子系統(tǒng)406 (例如,通過發(fā)送套接字、綁定、連接、 或其他網(wǎng)絡(luò)接口命令)來(lái)連接到遠(yuǎn)程主機(jī)。或者,客戶機(jī)應(yīng)用程序的線程402 可以訪問最終訪問聯(lián)網(wǎng)API的庫(kù)(甚至是對(duì)于其沒有源可用或?qū)τ谄涑绦騿T不 具有改變的權(quán)限的庫(kù))。路由子系統(tǒng)406然后執(zhí)行設(shè)置操作414,在該操作中, 實(shí)例化套接字并將其綁定到所標(biāo)識(shí)的網(wǎng)絡(luò),將計(jì)算上下文映射到給定的網(wǎng)絡(luò)鏈路接口,并且將與該線程相關(guān)聯(lián)的信息存儲(chǔ)在表中。 一旦創(chuàng)建套接字并實(shí)現(xiàn)與
遠(yuǎn)程主機(jī)的連接,就將完成的連接的通知416返回給線程402。
當(dāng)線程402在發(fā)送操作418中將數(shù)據(jù)發(fā)送至遠(yuǎn)程主機(jī)時(shí),網(wǎng)絡(luò)API的路由 子系統(tǒng)406執(zhí)行對(duì)線程路由接口 404的內(nèi)部查找操作420以確定注冊(cè)的計(jì)算上 下文集之一當(dāng)前是否有效。將來(lái)自線程路由接口的綁定信息返回422給路由子 系統(tǒng)406。如果找到了相關(guān)的計(jì)算上下文,則通過對(duì)該上下文注冊(cè)的網(wǎng)絡(luò)接口 (例如,以太網(wǎng)、Wifi等)發(fā)送426該數(shù)據(jù)。對(duì)于該數(shù)據(jù)繞過普通路由表査找。 如果在將發(fā)送該數(shù)據(jù)時(shí)沒有計(jì)算上下文是有效的,則執(zhí)行通過現(xiàn)存的路由表的 普通查找操作428并且通過該査找所返回的鏈路接口來(lái)發(fā)送430分組。 一旦發(fā) 送該分組,就向線程402提供確認(rèn)432。
圖5示出了來(lái)自操作系統(tǒng)的對(duì)于創(chuàng)建具有傳遞自父線程的計(jì)算上下文信 息的子線程的所需支持。在某些方面,圖5可被視作圖4的擴(kuò)展,其描述了如 何處理計(jì)算上下文映射的自動(dòng)繼承?;叵朐趫D4中,如果在數(shù)據(jù)將通過網(wǎng)絡(luò)離 開客戶機(jī)時(shí)沒有計(jì)算上下文匹配,則在普通路由表的幫助下路由所有數(shù)據(jù)。然 而,操作系統(tǒng)可被配置為從現(xiàn)存的計(jì)算上下文自動(dòng)地生成導(dǎo)出上下文并且通過 與原始上下文相關(guān)聯(lián)的接口發(fā)送該數(shù)據(jù)。
圖5的示例示意性表示了基于由應(yīng)用程序傳遞至聯(lián)網(wǎng)層的計(jì)算上下文的 子線程創(chuàng)建事件500。在子線程創(chuàng)建事件500中涉及三個(gè)組件應(yīng)用程序線程 502、線程路由接口 504、以及操作系統(tǒng)的核心內(nèi)核506。應(yīng)用程序線程502使 用被添加到聯(lián)網(wǎng)層的路由能力。線程路由接口 504是被展示為對(duì)現(xiàn)存網(wǎng)絡(luò)API 的擴(kuò)展的聯(lián)網(wǎng)層的擴(kuò)展API。操作系統(tǒng)軟件的核心內(nèi)核506負(fù)責(zé)提供對(duì)計(jì)算機(jī) 硬件以及對(duì)各種計(jì)算機(jī)進(jìn)程的安全訪問。
在注冊(cè)操作508中,客戶機(jī)應(yīng)用程序的父線程502向線程路由接口 504 API 注冊(cè)所獲得的計(jì)算上下文。在該示例中,來(lái)自客戶機(jī)的父線程502將兩個(gè)參數(shù) 傳遞給線程路由接口 504:計(jì)算上下文特性集以及通過其路由在給定上下文中 生成的所有話務(wù)的網(wǎng)絡(luò)接口標(biāo)識(shí)符。這會(huì)將計(jì)算上下文特性與例如以太網(wǎng)電纜 或WiFi連接的網(wǎng)絡(luò)接口相關(guān)聯(lián)。路由子系統(tǒng)504然后執(zhí)行設(shè)置操作510,在
該操作中,將計(jì)算上下文映射到給定網(wǎng)絡(luò)鏈路接口并且將該信息存儲(chǔ)在表中。
15一旦在線程路由接口 504的映射表中設(shè)置該參數(shù),則將完成的連接的通知512
返回給父線程502。
接著,在創(chuàng)建操作514中,原始父線程502創(chuàng)建新的子線程516,該新的 子線程開始與父線程502并行地執(zhí)行另外的進(jìn)程。然而,在映射表中對(duì)于父線 程502所記錄的計(jì)算上下文將不會(huì)匹配子線程516的計(jì)算上下文,因?yàn)橛蓛?nèi)核 506分配給子線程516的線程標(biāo)識(shí)對(duì)于該特定進(jìn)程是唯一的。為了將父線程502 的各計(jì)算上下文特性轉(zhuǎn)移到子線程516,需要修改內(nèi)核506以使得只要?jiǎng)?chuàng)建新 線程就將通知發(fā)送給線程路由接口 504。
兩個(gè)參數(shù)被傳遞至線程路由接口 504:父線程502的線程標(biāo)識(shí)參數(shù)以及子 線程516的線程標(biāo)識(shí)參數(shù)。這些參數(shù)在傳遞操作518中從內(nèi)核506傳遞至線程 路由接口 504以創(chuàng)建繼承關(guān)系。線程路由接口 504更新映射表以標(biāo)識(shí)套接字并 且將父線程502的網(wǎng)絡(luò)接口與子線程516綁定。 一旦更新了線程路由接口 504 的映射表,就將完成的操作的通知522返回給內(nèi)核506。
現(xiàn)在當(dāng)子線程516在發(fā)送操作524中將數(shù)據(jù)發(fā)送至遠(yuǎn)程主機(jī)時(shí),可以將父 線程502和子線程516兩者的參數(shù)傳遞至網(wǎng)絡(luò)API的路由子系統(tǒng)。如對(duì)于圖4 所描述的,路由子系統(tǒng)執(zhí)行對(duì)線程路由接口 504API的內(nèi)部査找操作以確定注 冊(cè)的計(jì)算上下文集中的一個(gè)當(dāng)前是否有效。將來(lái)自線程路由接口 504的綁定信 息返回給路由子系統(tǒng),該信息將子線程516標(biāo)識(shí)為與父線程502相同的套接字 和網(wǎng)絡(luò)接口相關(guān)聯(lián)。因此,如在與發(fā)送操作524相關(guān)聯(lián)的通知526中所指示的, 通過對(duì)與父線程502和子線程516兩者都相關(guān)聯(lián)的上下文注冊(cè)的網(wǎng)絡(luò)接口來(lái)發(fā) 送數(shù)據(jù)。
圖6描繪了在基于位置的高速緩存系統(tǒng)中使用的示例性移動(dòng)設(shè)備600。該 移動(dòng)設(shè)備600包括如在任何標(biāo)準(zhǔn)計(jì)算設(shè)備中的處理器602以及存儲(chǔ)器604。下 文中所描述的處理器602、存儲(chǔ)器604、以及其他組件可以通過系統(tǒng)總線614 來(lái)接口。系統(tǒng)總線614可以是若干類型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器 總線或存儲(chǔ)器控制器、外圍總線、交換光纖、點(diǎn)對(duì)點(diǎn)連接、以及局部總線。存 儲(chǔ)器604 —般包括易失性存儲(chǔ)器(例如,RAM)和非易失性存儲(chǔ)器(例如, ROM或PCMCIA卡)。操作系統(tǒng)606可以駐留在存儲(chǔ)器604中并且在處理器602上執(zhí)行。 一個(gè)示例性操作系統(tǒng)可以是來(lái)自微軟公司的WINDOWS CE操作 系統(tǒng)。
一個(gè)或多個(gè)應(yīng)用程序606可被加載到存儲(chǔ)器604中以由處理器602結(jié)合操 作系統(tǒng)606來(lái)執(zhí)行。示例性應(yīng)用程序可包括電子郵件程序、時(shí)間安排程序、個(gè) 人信息管理程序、文字處理程序、電子數(shù)據(jù)表程序、因特網(wǎng)瀏覽器程序、音樂 文件管理程序、以及照片和視頻文件管理程序。存儲(chǔ)器604還可包括在處理器 602上執(zhí)行的通知管理器610。如將在以下更詳細(xì)描述的,通知管理器610處 理從應(yīng)用程序608到一個(gè)或多個(gè)用戶通知設(shè)備的通知請(qǐng)求。
移動(dòng)計(jì)算設(shè)備600還具有可以使用一個(gè)或多個(gè)電池來(lái)實(shí)現(xiàn)的電源612。通 過使用代替電池或?yàn)殡姵刂匦鲁潆姷呐c移動(dòng)設(shè)備600相連接的電源線或供電數(shù) 據(jù)傳輸電纜,電源612也可以來(lái)自外部AC源。電源612被連接到移動(dòng)設(shè)備600 的大多數(shù)(如果不是全部)組件以供每個(gè)組件工作。
在一個(gè)實(shí)施例中,移動(dòng)設(shè)備600可包括通信能力,例如,移動(dòng)設(shè)備600 作為無(wú)線電話來(lái)工作。具有電話能力的無(wú)線設(shè)備600 —般包括用于與無(wú)線電話 網(wǎng)接口的天線616、發(fā)射機(jī)618、以及接收機(jī)620。另外,移動(dòng)設(shè)備600可包括 話筒634以及揚(yáng)聲器636以供用戶進(jìn)行電話通信。揚(yáng)聲器636還可以是用于與 有線或無(wú)線耳機(jī)或頭戴式耳機(jī)相連接的有線或無(wú)線輸出端口的形式。
移動(dòng)設(shè)備600可以通過一個(gè)或多個(gè)通信接口 622與眾多其他網(wǎng)絡(luò)相連接, 例如,無(wú)線LAN (Wi-Fi)網(wǎng)絡(luò)、有線LAN或WAN、 GPRS、藍(lán)牙、UMTS 或任何其他網(wǎng)絡(luò)。天線616或多根天線可用于不同的通信目的,例如,射頻識(shí) 別(RFID)、微波發(fā)射和接收、Wi-Fi發(fā)射和接收、以及藍(lán)牙發(fā)射和接收。
移動(dòng)設(shè)備600 —般還包括某一類型的用戶界面。如圖6所示,移動(dòng)設(shè)備 600可具有鍵盤624和顯示器626 。鍵盤624可以是有限數(shù)字觸摸墊、全"qwerty" 鍵盤、或兩者的組合。鍵盤624也可包括專用按鈕、滾輪、跟蹤球、以及其他 界面選項(xiàng),例如,菜單選擇或?qū)Ш芥I或電話功能鍵。除了描繪信息之外,顯示 器626還可以是觸摸屏顯示器,該顯示器是允許通過用用戶的手指或指示筆觸 摸顯示屏以通過圖形界面來(lái)做出輸入選擇或直接在在顯示器626上寫字母和數(shù) 字來(lái)輸入數(shù)據(jù)。
17移動(dòng)設(shè)備600還可具有一個(gè)或多個(gè)外部通知機(jī)制.。在圖6所描繪的實(shí)施例
中,移動(dòng)設(shè)備600包括音頻生成器628、發(fā)光二極管(LED) 630、以及振動(dòng)設(shè) 備632。這些設(shè)備可直接耦合到電源612,使得當(dāng)被激活時(shí),即使處理器602 以及其它組件可能關(guān)閉以節(jié)省電池電量,它們也可保持一段由通知管理器610 指示的保持通電時(shí)間。
用于實(shí)現(xiàn)本發(fā)明的圖7的示例性硬件和操作環(huán)境包括計(jì)算機(jī)700形式的通 用計(jì)算設(shè)備,包括處理單元702、系統(tǒng)存儲(chǔ)器704、以及操作上將包括系統(tǒng)存 儲(chǔ)器704在內(nèi)的各種系統(tǒng)組件耦合至處理單元702的系統(tǒng)總線718??梢灾淮?在一個(gè)或者存在一個(gè)以上處理單元702,使得計(jì)算機(jī)700的處理器包括單個(gè)中 央處理單元(CPU),或者多個(gè)處理單元,通常稱為并行處理環(huán)境。計(jì)算機(jī)700 可以是常規(guī)計(jì)算機(jī)、網(wǎng)絡(luò)服務(wù)器、分布式計(jì)算機(jī)、或者任何其他類型的計(jì)算機(jī); 本發(fā)明不限于此。
系統(tǒng)總線718可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線 或存儲(chǔ)控制器、外圍總線、交換光纖、點(diǎn)對(duì)點(diǎn)連接、以及使用各種總線體系結(jié) 構(gòu)中的任一種的局部總線。系統(tǒng)存儲(chǔ)器704可被簡(jiǎn)單地稱為存儲(chǔ)器,并且包括 只讀存儲(chǔ)器(ROM) 706和隨機(jī)存取存儲(chǔ)器(RAM) 705?;据斎?輸出系統(tǒng) (BIOS) 708被存儲(chǔ)在ROM 706中,它包含諸如啟動(dòng)期間幫助在計(jì)算機(jī)700 內(nèi)的各元件之間傳遞信息的基本例程。計(jì)算機(jī)700還包括用于對(duì)硬盤(未示出) 進(jìn)行讀寫的硬盤驅(qū)動(dòng)器730、用于對(duì)可移動(dòng)磁盤736進(jìn)行讀寫的磁盤驅(qū)動(dòng)器 732、以及用于對(duì)可移動(dòng)光盤738,如CD-ROM或其它光介質(zhì)進(jìn)行讀寫的光盤 驅(qū)動(dòng)器734。
硬盤驅(qū)動(dòng)器730、磁盤驅(qū)動(dòng)器732和光盤驅(qū)動(dòng)器734分別由硬盤驅(qū)動(dòng)器接 口 720、磁盤驅(qū)動(dòng)器接口 722和光盤驅(qū)動(dòng)器接口 724連接到系統(tǒng)總線718。驅(qū) 動(dòng)器及其關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)700提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù) 結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲(chǔ)。本領(lǐng)域的技術(shù)人員應(yīng)理解,在示 例操作環(huán)境中可以使用可儲(chǔ)存可由計(jì)算機(jī)訪問的數(shù)據(jù)的任何類型的計(jì)算機(jī)可 讀介質(zhì),例如,磁帶盒、閃存卡、數(shù)字視頻盤、RAM、以及ROM。
在硬盤730、磁盤732、光盤734、 ROM 706、或RAM 705上可以存儲(chǔ)多 個(gè)程序模塊,包括操作系統(tǒng)710、 一個(gè)或多個(gè)應(yīng)用程序712、其它程序模塊714、以及程序數(shù)據(jù)716。用戶可通過諸如鍵盤740和定點(diǎn)設(shè)備742等輸入設(shè)備向個(gè) 人計(jì)算機(jī)700中輸入命令和信息。其他輸入設(shè)備(未示出)可包括,例如,話 筒、操縱桿、圖形輸入板、觸摸屏設(shè)備、圓盤式衛(wèi)星天線、掃描儀、傳真機(jī)、 以及攝像機(jī)。這些和其它輸入設(shè)備通常通過耦合到系統(tǒng)總線718的串行端口接 口 726連接到處理單元702,但也可通過其它接口連接,如并行端口、游戲端 口、或通用串行總線(USB)。
監(jiān)視器744或其它類型的顯示設(shè)備也經(jīng)由接口,諸如視頻適配器746連接 至系統(tǒng)總線718。除監(jiān)視器744之外,計(jì)算機(jī)通常還包括其它外圍輸出設(shè)備, 如打印機(jī)758和揚(yáng)聲器(未示出)。這些和其它輸入設(shè)備通常通過耦合到系統(tǒng) 總線718的串行端口接口 726連接到處理單元702,但也可通過其它接口連接, 如并行端口、游戲端口、或通用串行總線(USB)。
計(jì)算機(jī)700可使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),諸如遠(yuǎn)程計(jì)算機(jī)754的邏輯 連接在網(wǎng)絡(luò)化環(huán)境中操作。這些邏輯連接可由耦合至計(jì)算機(jī)700或者與計(jì)算機(jī) 700整合的通信設(shè)備來(lái)實(shí)現(xiàn);本發(fā)明不限于特定類型的通信設(shè)備。遠(yuǎn)程計(jì)算機(jī) 754可以是另一計(jì)算機(jī)(例如,移動(dòng)計(jì)算設(shè)備)、服務(wù)器、路由器、網(wǎng)絡(luò)個(gè)人 計(jì)算機(jī)、客戶機(jī)、對(duì)等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括許多或所有 相對(duì)于計(jì)算機(jī)700所描述的元件,盡管圖7僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備756。圖 7所描繪的邏輯連接包括局域網(wǎng)(LAN) 750和廣域網(wǎng)(WAN) 752。這樣的 網(wǎng)絡(luò)環(huán)境常見于辦公室網(wǎng)絡(luò)、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng),并且可 以是所有類型的網(wǎng)絡(luò)。
當(dāng)在LAN 750環(huán)境中使用時(shí),計(jì)算機(jī)700可以通過作為一種類型的通信 設(shè)備的網(wǎng)絡(luò)接口或適配器728來(lái)連接到局域網(wǎng)750。當(dāng)在WAN 752環(huán)境中使 用時(shí),計(jì)算機(jī)700通常包括調(diào)制解調(diào)器748、網(wǎng)絡(luò)適配器、或用于通過廣域網(wǎng) 752建立通信的任何其他類型的通信設(shè)備?;?yàn)閮?nèi)置或?yàn)橥庵玫恼{(diào)制解調(diào)器748 經(jīng)由串行端口接口 726連接到系統(tǒng)總線718。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于個(gè)人計(jì) 算機(jī)700所描繪的程序模塊或其部分可以存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中??梢?理解,所示的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的 其它手段和通信設(shè)備。在示例性實(shí)現(xiàn)中,上下文路由接口可以作為操作系統(tǒng)710、應(yīng)用程序712、 或其他程序模塊714的一部分來(lái)包含。狀態(tài)描述文件、對(duì)象數(shù)據(jù)值、以及其他 數(shù)據(jù)可作為程序數(shù)據(jù)716來(lái)存儲(chǔ)。
此處所描述的技術(shù)可被實(shí)現(xiàn)為一個(gè)或多個(gè)系統(tǒng)中的邏輯操作和/或模塊。 邏輯操作可被實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)中執(zhí)行的處理器實(shí)現(xiàn)的步驟的 序列以及在一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)中的互連機(jī)器或電路模塊。同樣地,各組件 模塊的描述可以按照由模塊執(zhí)行或?qū)崿F(xiàn)的操作來(lái)提供。所得的實(shí)現(xiàn)是取決于實(shí) 現(xiàn)所描述的技術(shù)的底層系統(tǒng)的性能要求的選擇問題。從而,組成此處所述的技 術(shù)的實(shí)施例的邏輯操作被不同地稱為操作、步驟、對(duì)象或模塊。此外,應(yīng)該理 解,除非以其他方式明確地要求保護(hù)或權(quán)利要求語(yǔ)言固有地需要一特定的次
序,否則邏輯操作可以按任何次序來(lái)執(zhí)行。
以上說明、示例和數(shù)據(jù)提供了對(duì)本發(fā)明的各示例性實(shí)施例的結(jié)構(gòu)和使用的 全面描述。盡管以上帶著一定程度的特殊性或?qū)σ粋€(gè)或多個(gè)單獨(dú)實(shí)施例的參考 描述了本發(fā)明的各實(shí)施例,但是本領(lǐng)域的技術(shù)人員能夠?qū)λ_的實(shí)施例做出 多種改變而不背離本發(fā)明的精神或范圍。更具體地,應(yīng)該理解,所描述的技術(shù) 可以獨(dú)立于個(gè)人計(jì)算機(jī)釆用。因此可構(gòu)想其他實(shí)施例。其目的是以上描述中所 包含以及在附圖中所示出的所有一切應(yīng)當(dāng)解釋為僅僅是例示特定實(shí)施例而非 限制??梢詫?duì)細(xì)節(jié)或結(jié)構(gòu)做出更改而不背離如所附權(quán)利要求書中定義的本發(fā)明 的基本要素。
權(quán)利要求
1.一種用于將數(shù)據(jù)路由到網(wǎng)絡(luò)接口(400)的方法,包括接收通過通信網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的請(qǐng)求(418);標(biāo)識(shí)與所述數(shù)據(jù)相關(guān)聯(lián)的計(jì)算上下文(408);將所述計(jì)算上下文作為路由準(zhǔn)則來(lái)包括(414);以及基于所述計(jì)算上下文將所述數(shù)據(jù)路由到至所述通信網(wǎng)絡(luò)的特定網(wǎng)絡(luò)接口(424)。
2. 如權(quán)剁姜求1所述的方法,其特征在于,還包括經(jīng)由所述特定網(wǎng) 絡(luò)接口發(fā)送所述數(shù)據(jù)。
3. 如權(quán)利要求1所述的方法,其特征在于,所述路由操作還包括將 所述計(jì)算上下文映射到所述特定網(wǎng)絡(luò)接口。
4. 如權(quán)利要求l所述的方法,其特征在于,所述路由操作還包括 實(shí)例化通信套接字;將所述通信套接字與所述計(jì)算上下文相關(guān)聯(lián);以及 將所述通信套接字綁定到所述特定網(wǎng)絡(luò)接口 。
5. 如權(quán)利要求1所述的方法,其特征在于,所述計(jì)算上下文包括可 擴(kuò)展計(jì)算上下文集。
6. —種具有用于執(zhí)行實(shí)現(xiàn)如權(quán)利要求1所述的方法的計(jì)算機(jī)進(jìn)程的 計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。
7. —種用于將數(shù)據(jù)路由到多個(gè)網(wǎng)絡(luò)接口中的一個(gè)(400)的方法,包括標(biāo)識(shí)與所述數(shù)據(jù)相關(guān)聯(lián)的計(jì)算上下文(408);以及基于所述相關(guān)聯(lián)的計(jì)算上下文做出關(guān)于通過所述多個(gè)網(wǎng)絡(luò)接口中的一個(gè)來(lái)傳輸數(shù)據(jù)的路由決定(420)。
8. 如權(quán)利要求6所述的方法,其特征在于,還包括 將所述計(jì)算上下文映射到所述特定網(wǎng)絡(luò)接口以創(chuàng)建映射的關(guān)系;以及 存儲(chǔ)所述映射的關(guān)系;以及其中所述做出路由決定的操作還包括訪問所述映射的關(guān)系以確定所述多 個(gè)網(wǎng)絡(luò)接口中用于路由所述數(shù)據(jù)的傳輸?shù)囊粋€(gè)網(wǎng)絡(luò)接口。
9. 如權(quán)利要求6所述的方法,其特征在于,所述計(jì)算上下文包括執(zhí) 行應(yīng)用程序的進(jìn)程線程。
10. 如權(quán)利要求9所述的方法,其特征在于,所述進(jìn)程線程創(chuàng)建子進(jìn) 程線程,并且所述方法還包括將所述進(jìn)程線程的計(jì)算上下文與所述子進(jìn)程線程相關(guān)聯(lián);以及 基于所述進(jìn)程線程的計(jì)算上下文做出關(guān)于通過所述多個(gè)網(wǎng)絡(luò).接口中的一 個(gè)來(lái)傳輸由所述子進(jìn)程線程生成的另外的數(shù)據(jù)的路由決定。
11. 如權(quán)利要求6所述的方法,其特征在于,所述計(jì)算上下文包括可 擴(kuò)展計(jì)算上下文集。
12. —種具有用于執(zhí)行實(shí)現(xiàn)如權(quán)利要求6所述的方法的計(jì)算機(jī)進(jìn)程的 計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。
13. —種在具有多個(gè)網(wǎng)絡(luò)接口 (112、 114、 116)的計(jì)算設(shè)備中做出網(wǎng) 絡(luò)接口路由決定(400)的方法,所述方法包括作為應(yīng)用程序進(jìn)程的一部分,向聯(lián)網(wǎng)層呈現(xiàn)標(biāo)識(shí)所述計(jì)算設(shè)備的計(jì)算上下文的參數(shù)(410);將所述參數(shù)映射到在所述應(yīng)用程序進(jìn)程與所述聯(lián)網(wǎng)層之間提供的路由接口中的特定網(wǎng)絡(luò)接口以創(chuàng)建映射的關(guān)系(414);將所述參數(shù)與發(fā)送自所述應(yīng)用程序進(jìn)程以供傳輸?shù)臄?shù)據(jù)相關(guān)聯(lián)(408); 將與所述數(shù)據(jù)相關(guān)聯(lián)的所述參數(shù)與所述映射的關(guān)系相比較(420);以及 將所述數(shù)據(jù)路由到所述參數(shù)所映射到的所述特定網(wǎng)絡(luò)接口 (424)。
14. 如權(quán)利要求12所述的方法,其特征在于,所述路由還執(zhí)行以下步驟創(chuàng)建通信套接字;將所述通信套接字與所述計(jì)算上下文相關(guān)聯(lián);以及將所述通信套接字綁定到所述特定網(wǎng)絡(luò)接口 。
15. 如權(quán)利要求12所述的方法,其特征在于,還包括向所述聯(lián)網(wǎng)層注 冊(cè)所述映射的關(guān)系。
16. 如權(quán)利要求14所述的方法,其特征在于,所述注冊(cè)操作還包括 將所述映射的關(guān)系存儲(chǔ)在路由表中;以及從所述路由表訪問所述映射的關(guān)索。
17. 如權(quán)利要求12所述的方法,其特征在于,所述參數(shù)包括進(jìn)程線程 標(biāo)識(shí)。
18. 如權(quán)利要求12所述的方法,其特征在于,所述參數(shù)包括可擴(kuò)展計(jì) 算上下文集。
19. 如權(quán)利要求12所述的方法,其特征在于,還包括-從所述應(yīng)用程序進(jìn)程創(chuàng)建子應(yīng)用程序進(jìn)程;以及 將所述映射的關(guān)系歸屬于所述子應(yīng)用程序進(jìn)程,其中 所述參數(shù)還與發(fā)送自所述子應(yīng)用程序進(jìn)程的另外的數(shù)據(jù)相關(guān)聯(lián)。
20. —種具有用于執(zhí)行實(shí)現(xiàn)如權(quán)利要求12所述的方法的計(jì)算機(jī)進(jìn)程的 計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。
全文摘要
在存在多個(gè)活動(dòng)網(wǎng)絡(luò)連接(316、318、320、322)的情況下使用計(jì)算機(jī)操作環(huán)境的計(jì)算上下文的知識(shí),例如對(duì)進(jìn)程線程的知曉(302a-d、304a-d),來(lái)路由IP話務(wù)??梢詫⒁环N額外的的協(xié)議(310)添加到操作系統(tǒng)的網(wǎng)絡(luò)層(306)以將特定計(jì)算上下文映射到特定網(wǎng)絡(luò)接口(316、318、320、322)。具有與請(qǐng)求通過通信網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸?shù)挠成涞挠?jì)算上下文(410)相關(guān)聯(lián)的標(biāo)識(shí)參數(shù)的任何進(jìn)程都綁定至先前與計(jì)算上下文(424)相關(guān)聯(lián)的網(wǎng)絡(luò)接口而不是另外可能是默認(rèn)的替換網(wǎng)絡(luò)接口。此外,可以使得父進(jìn)程線程(502)所創(chuàng)建的進(jìn)程線程(516)繼承父線程(502)的計(jì)算上下文以將話務(wù)分配給相同的網(wǎng)絡(luò)接口。該路由框架可具有關(guān)于多穴主機(jī)設(shè)備,例如移動(dòng)計(jì)算設(shè)備(600)的特定應(yīng)用程序。
文檔編號(hào)H04L12/28GK101405993SQ200780009284
公開日2009年4月8日 申請(qǐng)日期2007年2月8日 優(yōu)先權(quán)日2006年3月13日
發(fā)明者F·范梅根, I·W·塞爾莫, W·馬努瑟克 申請(qǐng)人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1