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

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

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


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