專利名稱:用于移動站應(yīng)用識別指定狀態(tài)消息的方法和裝置的制作方法
背景技術(shù):
1.發(fā)明領(lǐng)域本發(fā)明涉及無線通信領(lǐng)域。本發(fā)明尤其涉及在無線通信系統(tǒng)中使移動站應(yīng)用能夠識別指定狀態(tài)消息的新穎的方法和裝置。
2.相關(guān)技術(shù)說明A.無線通信系統(tǒng)無線通信和與計(jì)算機(jī)有關(guān)的技術(shù)中的近來的革新,以及因特網(wǎng)訂戶的空前增長已經(jīng)為移動計(jì)算鋪平了道路。實(shí)際上,移動計(jì)算的普及已提出了對當(dāng)前的因特網(wǎng)基礎(chǔ)結(jié)構(gòu)的更大需求以向移動用戶提供更多的支持。該基礎(chǔ)結(jié)構(gòu)的生命線是提供各種服務(wù)的面向分組的網(wǎng)際協(xié)議(IP),包括局域和廣域網(wǎng)絡(luò)(LAN和WAN)間的分組(數(shù)據(jù)報)的尋址和路由。在1981年9月的因特網(wǎng)標(biāo)準(zhǔn)(草案)791(RFC),名為“INTERNET PROTOCOL DARPA INTERNETPROGRAM PROTOCOL SPECIFICATION”中定義了IP協(xié)議。
所述IP協(xié)議是網(wǎng)絡(luò)層協(xié)議,將數(shù)據(jù)封裝成IP分組用于傳輸。尋址和路由信息附于所述分組的首部。例如,IP首部包含識別發(fā)送和接收主機(jī)的32-比特地址。由中間路由器使用這些地址,為該分組選擇一條通過網(wǎng)絡(luò)通向計(jì)劃地址處的最終目的地的通路。從而,所述IP協(xié)議允許將世界上任何因特網(wǎng)節(jié)點(diǎn)發(fā)出的分組路由到世界上任何其它的因特網(wǎng)節(jié)點(diǎn)。另一方面,使用傳輸層從事特定應(yīng)用,所述傳輸層包括傳輸控制協(xié)議(TCP)或用戶數(shù)據(jù)報協(xié)議(UDP)。
移動用戶的當(dāng)前趨勢是連同諸如蜂窩網(wǎng)或便攜式電話機(jī)的無線通信設(shè)備一起,使用諸如膝上型或掌上型計(jì)算機(jī)的移動計(jì)算機(jī)訪問因特網(wǎng)。也就是說,正如用戶常規(guī)地使用“有線”通信設(shè)備將其計(jì)算機(jī)與陸基網(wǎng)絡(luò)連接那樣,移動用戶將使用通常稱為“移動站”(MS)的無線通信設(shè)備使其移動終端與這樣的網(wǎng)絡(luò)連接。如這里所使用的,所述移動站或MS指的是公用無線電網(wǎng)絡(luò)中的任何訂戶站。
圖1(先有技術(shù))說明了無線數(shù)據(jù)通信系統(tǒng)的高級方塊圖,其中移動站110通過基站/移動交換中心(BS/MSC)106與互通功能(IWF)108通信。所述IWF108用作因特網(wǎng)的訪問接入點(diǎn)。IWF108耦合至BS/MSC106,并通常與其處于同一地點(diǎn),如本領(lǐng)域中眾所周知的那樣所述BS/MSC 106可以是常規(guī)無線基站。另一致力于無線數(shù)據(jù)通信系統(tǒng)的標(biāo)準(zhǔn)協(xié)議是第3代伙伴計(jì)劃2(“3GPP2”),1999年12月公布的名為“WIRELESS IP NETWORK STANDARD”。例如所述第3代無線IP網(wǎng)絡(luò)標(biāo)準(zhǔn)包括分組數(shù)據(jù)服務(wù)節(jié)點(diǎn)(“PDSN”),它功能上類似所述IWF108。
在所述MS110和所述IWF108之間存在致力于數(shù)據(jù)通信的各種協(xié)議。例如,電信行業(yè)協(xié)會(TIA)/電子行業(yè)協(xié)會(EIA)臨時標(biāo)準(zhǔn)IS-95,1993年7月公布的名為“MOBILE STATION-BASE STATION COMPATIBILITYSTANDARD FOR DUAL-MODE WIDESPREAD SPECTRUM CELLULARSYSTEM”,廣泛地提供了用于寬帶擴(kuò)展頻譜無線通信系統(tǒng)的標(biāo)準(zhǔn)。而且,1998年2月公布的名為“DATA SERVICE OPTIONS FOR WIDEBAND SPREADSPECTRUM SYSTEMSPACKET DATA SERVICES”的TIA/EIA IS-707.5標(biāo)準(zhǔn),定義了在TIA/EIA IS-95系統(tǒng)上支持分組數(shù)據(jù)傳輸能力的要求并且規(guī)定了可以用于所述MS110和所述IWF108間通過所述BS/MSC106通信的分組數(shù)據(jù)載體服務(wù)。同樣地,1999年3月公布的名為“DATA SERVICE OPTIONS FORSPREAD SPECTRUM SYSTEMSPACKET DATA SERVICES”的TIA/EIA IS-707-A.5標(biāo)準(zhǔn)以及名為“DATA SERVICE OPTIONS FOR SPREAD SPECTRUMSYSTEMSHIGH-SPEED PACKET DATA SERVICES”的TIA/EIA IS-707-A.9標(biāo)準(zhǔn),也定義了在TIA/EIA IS-95系統(tǒng)上支持分組數(shù)據(jù)傳輸?shù)囊?。此外,另一致力于所述MS110和所述IWF108間的通信的標(biāo)準(zhǔn)協(xié)議是1999年7月公布的名為“INTRODUCTION TO CDMA 2000 STADARDS FOR SPREADSPECTRUM SYSTEMS”的TIA/EIA IS-2000標(biāo)準(zhǔn)。
IS-707.5介紹了所述MS110和所述BS/MSC106間(Um接口)以及所述BS/MSC106和所述IWF108間(L接口)的通信協(xié)議選擇模型。例如,中繼模型代表在所述MS110和所述IWF108間的Um接口上存在點(diǎn)到點(diǎn)協(xié)議(PPP)鏈路的情況。在因特網(wǎng)標(biāo)準(zhǔn)(草案)1661(RFC1661),名為“THE POINT-TO-POINT PROTOCOL(PPP)”中詳細(xì)描述了所述PPP協(xié)議。
圖2(先有技術(shù))是所述IS-707.5中繼模型中的每個實(shí)體中的協(xié)議棧的圖。該圖的最左端是以常規(guī)縱向格式顯示的通信協(xié)議棧,示出了在所述MS110上運(yùn)行的協(xié)議層。說明了所述MS110協(xié)議棧通過所述Um接口與BS/MSC106協(xié)議棧邏輯連接。接著說明了所述BS/MSC106協(xié)議棧通過所述L接口與IWF108協(xié)議棧邏輯連接。
圖2中描述的操作如下諸如所述MS110運(yùn)行的應(yīng)用程序的頂層實(shí)體200需要在因特網(wǎng)上發(fā)送數(shù)據(jù)。具有代表性的應(yīng)用可以是web瀏覽器程序(如Netscape NavigatorTM,Microsoft Internet ExplorerTM)。所述web瀏覽器請求通用資源定位器(URL),如超鏈接“http//www.Qualcomm.com”。同樣在所述頂層協(xié)議200中的域名系統(tǒng)(DNS)通過使用域名解析將文本主機(jī)名轉(zhuǎn)換成32-比特的數(shù)字IP地址,該域名解析將名字轉(zhuǎn)換成因特網(wǎng)中的地址。同樣是所述頂層協(xié)議200的超文本傳輸協(xié)議(HTTP)為所請求的URL構(gòu)造獲取消息,并指定TCP將用于發(fā)送該消息以及用于HTTP操作。傳輸層202使用本領(lǐng)域中眾所周知的端口80作為目的端口,將HTTP操作發(fā)送到應(yīng)用。
作為傳輸層協(xié)議202的TCP協(xié)議開啟到由DNS指定的IP地址的連接并且發(fā)送應(yīng)用層HTTP獲取消息。所述TCP協(xié)議規(guī)定了IP協(xié)議將用于消息傳輸。所述網(wǎng)絡(luò)層協(xié)議204的IP協(xié)議向指定的IP地址發(fā)送TCP分組。鏈路層協(xié)議206的PPP編碼所述IP分組并將它們發(fā)送到中繼層協(xié)議208。所述中繼層協(xié)議208的一個例子是說明的TIA/EIA-232F標(biāo)準(zhǔn),該標(biāo)準(zhǔn)在1997年10月公布的名為“INTERFACE BETWEEN DATA TERMINAL EQUIPMENT AND DATACIRCUIT-TERMINATING EQUIPMENT EMPLOYING SERIAL MINARYDATA INTERCHANGE”中定義。要理解到可以使用本領(lǐng)域的普通技術(shù)人員所知的其它標(biāo)準(zhǔn)或協(xié)議來定義跨越層的傳輸。例如,其它可用的協(xié)議可以包括1998年12月公布的“UNIVERSAL SERIAL BUS(USB)SPECIFICATION,Revision 1.1”以及1999年7月公布的“BLUETOOTHSPECIFICATION VERSION 1.0A CORE”。最后,所述中繼層協(xié)議208將PPP分組傳遞給無線鏈路協(xié)議(RLP)210并且然后傳遞給IS-95協(xié)議212,用于在Um接口上向Bs/MSC 106傳輸。在1998年2月公布的名為“DATA SERVICEOPTIONS FOR WIDEBAND SPREAD SPECTRUM SYSTEMSRADIO LINKPROTOCOL”的IS-707.2標(biāo)準(zhǔn)中定義了所述RLP協(xié)議210,并且在上面標(biāo)識的IS-95標(biāo)準(zhǔn)中定義了所述IS-95協(xié)議。
所述BS/MSC106上的互補(bǔ)的中繼層協(xié)議220在所述Um接口上通過IS-95層218并隨后通過RLP層216接收PPP分組。所述中繼層協(xié)議220在L接口上將這些分組傳遞給所述IWF108上的中繼層協(xié)議228。所述IWF108上的PPP協(xié)議鏈路層226從所述中繼層協(xié)議228接收所述PPP分組,并終止所述MS110和所述IWF108間的PPP連接。所述分組在IWF108上從所述PPP層226傳遞到IP層224用于檢驗(yàn)所述IP分組首部以作最后的路由選擇,這在此情況下是www.Qualcomm.com。
假設(shè)由所述MS110產(chǎn)生的IP分組的最終目的地不是所述IWF108,就通過網(wǎng)絡(luò)層協(xié)議224以及鏈路層協(xié)議225將所述分組傳送到因特網(wǎng)上的下一路由器(未示出)。如此,根據(jù)所述IS-707.5標(biāo)準(zhǔn)中繼模型,通過所述BS/MSC106和所述IWF108將來自所述MS110的IP分組傳遞到其最終的目的地。
在所述MS110分組到達(dá)其最終目的地之前,必需首先建立數(shù)據(jù)鏈路連接。如在RFC1661中說明的那樣,這要求所述點(diǎn)到點(diǎn)鏈路(即所述PPP協(xié)議206和226)的每一端首先發(fā)送PPP鏈路控制協(xié)議(LCP)分組,以建立、配置和測試該數(shù)據(jù)鏈路連接。在LCP建立了該鏈路之后,所述PPP協(xié)議206然后可以發(fā)送網(wǎng)絡(luò)控制協(xié)議(NCP)分組以配置所述網(wǎng)絡(luò)層協(xié)議204和224。PPP鏈路中用于IP的NCP是IP控制協(xié)議(IPCP)。在1992年5月公布的名為“THEPPP INTERNET PROTOCOL CONTROL PROTOCOL(IPCP)”的因特網(wǎng)標(biāo)準(zhǔn)(草案)1332(RFC1332)中詳細(xì)描述了IPCP。然而,在IPCP協(xié)商之前,可能需要驗(yàn)證階段。在配置了所述網(wǎng)絡(luò)層協(xié)議的每一個之后,可以在它們之間的鏈路上發(fā)送來自每個網(wǎng)絡(luò)層協(xié)議的分組。
B.應(yīng)用程序接口支持所述MS110上的通信協(xié)議棧的大多數(shù)處理(即使不是全部)由應(yīng)用程序執(zhí)行。一般地,常規(guī)的數(shù)據(jù)網(wǎng)絡(luò)使用應(yīng)用程序接口(API)使在一個計(jì)算機(jī)上運(yùn)行的應(yīng)用程序能與在另一計(jì)算機(jī)上運(yùn)行的應(yīng)用程序通信。所述API利用“套接件”,它使調(diào)用應(yīng)用避開底層網(wǎng)絡(luò)的協(xié)議的差異。為了實(shí)現(xiàn)網(wǎng)絡(luò)互連通信,API包括允許例如打開套接件、向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)、從網(wǎng)絡(luò)接收數(shù)據(jù)以及關(guān)閉套接件的應(yīng)用的功能。公用網(wǎng)絡(luò)程序接口包括在UnixTM操作系統(tǒng)下運(yùn)行的伯克利系統(tǒng)開發(fā)(BSD)套接件接口以及在WindowsTM操作系統(tǒng)下運(yùn)行的WindowsTM套接件接口(WinSockTM)。
由于BSD套接件或WinSockTM都不支持所述無線MS110上的通信協(xié)議棧(見圖2),就需要支持這樣的棧的新的API。特別地,所需的是一種在無線通信系統(tǒng)中用于移動站應(yīng)用識別指定狀態(tài)消息的新穎的方法和裝置。
發(fā)明概述本發(fā)明致力于上面確定的需要,提供了一種在無線通信系統(tǒng)中用于移動站應(yīng)用識別指定狀態(tài)消息的方法和裝置。在一個實(shí)現(xiàn)中,本發(fā)明包括應(yīng)用程序接口(API),方便了與通信網(wǎng)絡(luò)通信的移動站通信協(xié)議棧與移動站應(yīng)用間的通信。所述移動站應(yīng)用調(diào)用一函數(shù)。所述API根據(jù)其狀態(tài)和所調(diào)用的函數(shù)選擇至少一個指定狀態(tài)消息。然后,所述API向所述移動站應(yīng)用報告所選擇的指定狀態(tài)消息。
附圖簡述圖1(先有技術(shù))是無線通信系統(tǒng)中的高級方塊圖,其中移動站連接到因特網(wǎng)。
圖2(先有技術(shù))示意地描述了TIA/EIA IS-707.5中繼模型的每個實(shí)體中的協(xié)議棧。
圖3示意地描述了本發(fā)明的實(shí)施例的特點(diǎn)。
圖4和圖5是檢測指定事件的流程圖。
圖6是描述異步連接的方塊圖。
圖7是描述異步套接件輸入的方塊圖。
圖8至圖10是本發(fā)明的實(shí)施例的狀態(tài)圖。
詳細(xì)描述本發(fā)明的實(shí)施例可以以各種實(shí)現(xiàn)方式實(shí)現(xiàn),包括軟件、固件和/或硬件。因此,將描述本發(fā)明的操作和性能而不具體涉及軟件編碼或硬件組成。理解到根據(jù)這里的說明,本領(lǐng)域的普通技術(shù)人員能夠設(shè)計(jì)使移動站應(yīng)用能夠識別指定狀態(tài)消息的軟件和/或硬件來實(shí)現(xiàn)本發(fā)明。
圖3描述了MS110中的應(yīng)用260、通信協(xié)議棧280以及API270。應(yīng)用260和通信協(xié)議棧280(即協(xié)議層202、204、206、208、210、212)通過API270提供的函數(shù)調(diào)用進(jìn)行通信。換句話說,API270允許應(yīng)用260和通信協(xié)議棧280在不同的處理器和操作系統(tǒng)上運(yùn)行而不損害功能性。本領(lǐng)域普通技術(shù)人員將理解到所調(diào)用的功能的各種名字是可能的而不背離本發(fā)明的范圍。
應(yīng)該注意到通信協(xié)議棧280包含多個存儲數(shù)據(jù)的發(fā)送隊(duì)列和接收隊(duì)列。輸出函數(shù)從應(yīng)用260的存儲器讀取數(shù)據(jù),將該數(shù)據(jù)存儲于通信協(xié)議棧280的一個發(fā)送隊(duì)列之中。輸入函數(shù)從通信協(xié)議棧280的一個接收隊(duì)列讀取數(shù)據(jù),將該數(shù)據(jù)存儲于應(yīng)用260的存儲器中。
為了說明操作,所述MS110接收IP分組。所述MS110的通信協(xié)議棧280對所述IP分組拆去封裝,并且將它們傳遞到傳輸層202(見圖3)。所述IP分組的首部的域指示該傳送,可以是TCP或UDP。根據(jù)所述傳輸層首部中指定的目的地端口號,將所述數(shù)據(jù)路由到通信協(xié)議棧280的適當(dāng)?shù)慕邮贞?duì)列,該隊(duì)列對應(yīng)于某一套接件。然后可以把該數(shù)據(jù)傳送到應(yīng)用260。
在某些情況下,需要用繞過所述協(xié)議棧280的各個層的分組操作來降低等待時間效應(yīng)。這樣的分組包括缺少目的地信息(即目的地端口號)的原始分組數(shù)據(jù),如原始IP分組。如此,從該原始IP分組中不能確定目的應(yīng)用。例如在這樣的情況下,通信協(xié)議棧280可以向所有注冊支持所述IP協(xié)議的套接件發(fā)送接收到的原始IP分組。這允許有效負(fù)荷數(shù)據(jù)被發(fā)送到目的地應(yīng)用。響應(yīng)IP分組的網(wǎng)際控制消息協(xié)議(ICMP)分析引擎也可以接收所述原始分組數(shù)據(jù)。在RFC792名為“INTERNET CONTROL MESSAGE PROTOCOL”中定義了著名的ICMP分析引擎。從該說明書中應(yīng)該清楚地看到,例如,通信協(xié)議棧280在將接收到的分組沿棧向上傳遞到應(yīng)用260之前處理所述分組,這減少了應(yīng)用260進(jìn)行的去封裝的量。
相反地,通過使用所述套接件應(yīng)用260可以在Um接口上傳送原始分組數(shù)據(jù),這將促進(jìn)通信協(xié)議棧280和應(yīng)用260間的通信。此外,應(yīng)用260可以在所述Um接口上傳送原始分組數(shù)據(jù)。例如通信協(xié)議棧280依次將分組的或原始分組數(shù)據(jù)封裝成IP分組并在所述Um接口上傳送它們。在該例子中,通信協(xié)議棧280提供IP首部和校驗(yàn)和以產(chǎn)生所述IP分組。另一方面,對于ICMP,指定的協(xié)議類型將被復(fù)制進(jìn)所述IP首部之中。
如上面所表明的,應(yīng)用260可以創(chuàng)建一套接件,允許在至少一個協(xié)議層202、204、206、208、210、212和應(yīng)用260間數(shù)據(jù)通信,以減少通信協(xié)議棧280的使用中所固有的等待延時。也就是說,應(yīng)用260可以創(chuàng)建繞過所述傳輸層202、所述網(wǎng)絡(luò)層204以及所述鏈路層206的套接件,從而允許應(yīng)用260向RLP層210發(fā)送有效負(fù)荷數(shù)據(jù)或從其上接收有效負(fù)荷數(shù)據(jù)。同樣地,應(yīng)用260可以創(chuàng)建允許應(yīng)用260向IS-95層212發(fā)送有效負(fù)荷數(shù)據(jù)或從其上接收有效負(fù)荷數(shù)據(jù)的套接件。
在一個實(shí)施例中,應(yīng)用260調(diào)用函數(shù)open_netlib()打開通信協(xié)議棧280并分配應(yīng)用標(biāo)識符。所述應(yīng)用標(biāo)識符允許多個應(yīng)用與通信協(xié)議棧280進(jìn)行通信(即多任務(wù)處理)。例如,作為函數(shù)open_netlib()調(diào)用的一部分,應(yīng)用260規(guī)定了指向網(wǎng)絡(luò)回調(diào)函數(shù)的指針和指向套接件回調(diào)函數(shù)的指針。無論何時發(fā)生(或啟用)諸如讀取、寫入以及關(guān)閉話務(wù)信道(即Um)和/或鏈路層(即PPP206)的網(wǎng)絡(luò)子系統(tǒng)指定的事件,調(diào)用所述網(wǎng)絡(luò)回調(diào)函數(shù)以通知應(yīng)用260。無論何時發(fā)生(或啟用)諸如讀取、寫入以及關(guān)閉傳輸層(即TCP)的套接件指定事件,調(diào)用所述套接件回調(diào)函數(shù)以通知應(yīng)用260。對于本領(lǐng)域的普通技術(shù)人員,通信網(wǎng)絡(luò)包括所述話務(wù)信道、所述鏈路層、所述傳輸層中的至少一條應(yīng)該是顯而易見的。
一旦打開了通信協(xié)議棧280,調(diào)用函數(shù)pppopen()來初始化包括所述話務(wù)信道和所述鏈路層的網(wǎng)絡(luò)子系統(tǒng)連接。這是不基于個別套接件的整個應(yīng)用范圍內(nèi)的調(diào)用。然而,它要求所述的應(yīng)用標(biāo)識符。一當(dāng)網(wǎng)絡(luò)子系統(tǒng)連接建立或失敗,調(diào)用所述網(wǎng)絡(luò)回調(diào)函數(shù)提供指定事件通知。例如,如果沒有建立話務(wù)信道,所述網(wǎng)絡(luò)子系統(tǒng)失敗。此外,用net_ioctl()函數(shù)調(diào)用可以設(shè)置所述網(wǎng)絡(luò)子系統(tǒng)的特性。例如該調(diào)用可以規(guī)定所述套接件的數(shù)據(jù)速率。
一旦建立了網(wǎng)絡(luò)子系統(tǒng)連接,通過socket()函數(shù)調(diào)用可以創(chuàng)建并初始化一個套接件(或多個套接件)。然而,在能夠使用所述套接件功能之前,所述socket()函數(shù)調(diào)用返回套接件描述符。然后,應(yīng)用260可以調(diào)用函數(shù)async_select()注冊指定事件以接收異步通知。應(yīng)用260可以作為所述函數(shù)調(diào)用的一部分實(shí)現(xiàn)該注冊,規(guī)定請求通知的所述指定事件的套接件描述符和比特掩碼(即多個事件OR′ed一起)。例如,如果發(fā)生指定事件(即啟用)并且由通信協(xié)議棧280或API270檢測出,調(diào)用所述套接件回調(diào)函數(shù)提供異步通知。所述回調(diào)函數(shù)可以通過使用包括遠(yuǎn)程過程調(diào)用(RPC)上的消息或者硬件或軟件中斷的信號、消息通知應(yīng)用260所述指定事件。
一旦通知應(yīng)用260所述指定事件,那么將調(diào)用函數(shù)getnextevent()來確定要服務(wù)的指定事件。該函數(shù)為所述指定套接件描述符返回所述發(fā)生的指定事件的掩碼。并且它清除所述發(fā)生的指定事件的掩碼中的比特。從而,應(yīng)用260可以不再接收禁用的指定事件的通知。應(yīng)用260必需通過隨后的async_select()函數(shù)調(diào)用來重新注冊(即重新啟用)這些指定事件。
此外,應(yīng)用260可以通過清除指定事件的比特掩碼中相應(yīng)的比特來改變注冊的指定事件。如果早已清除所述比特掩碼中的比特,那么就簡單地忽略該請求。簡單地說,例如通過async_deselect()函數(shù)調(diào)用可以以每事件的方式禁用事件通知。
圖4和圖5是用于檢測所述指定事件的流程圖。例如,如圖4中所示,在塊400中通信協(xié)議棧280等待應(yīng)用260注冊指定事件。在注冊了指定事件之后,在塊402中通信協(xié)議棧280輪詢存儲器。在塊404中,根據(jù)塊402的輪詢信息可以檢測所述指定事件。在塊406中,例如當(dāng)所述通信協(xié)議棧280的存儲器(即所述發(fā)送隊(duì)列)可用于接受足夠量的數(shù)據(jù)時,就檢測到寫事件。可以從應(yīng)用260發(fā)送數(shù)據(jù)。如果塊404的輪詢信息不符合要求(即沒有發(fā)生所述指定事件),那么如同在塊402中一樣,通信協(xié)議棧280繼續(xù)輪詢所述存儲器。
在圖5中,如塊500中描述的那樣,通信協(xié)議棧280等待應(yīng)用260注冊指定事件。在這段時間中,可以禁用中斷通知。如此,所述中斷通知不能觸發(fā)或被觸發(fā)。如塊500中所示,在注冊了指定事件之后,在塊502中可以根據(jù)所述指定時間的出現(xiàn)觸發(fā)中斷通知。例如,當(dāng)將數(shù)據(jù)寫入通信協(xié)議棧280的存儲器(即所述接收隊(duì)列)中時,發(fā)生讀事件。從而,在塊504中,當(dāng)接收到所述中斷通知時,通信協(xié)議棧280檢測到所述讀事件。所述存儲于通信協(xié)議棧280的存儲器的數(shù)據(jù)可以來自通信網(wǎng)絡(luò)。此外,對于所述讀事件,可以將所述存儲的數(shù)據(jù)傳送到應(yīng)用260。
最后,當(dāng)由于例如諸如傳輸層的數(shù)據(jù)鏈路連接終止而套接件可重新使用時,檢測到關(guān)閉事件。
提供了下面的異步連接(見圖6)和異步輸入(間圖7)的例子來說明異步事件通知的使用。
參考圖6,通過open_netlib()函數(shù)調(diào)用,進(jìn)入了通信協(xié)議棧280并且規(guī)定了回調(diào)函數(shù)。所述pppopen()函數(shù)調(diào)用(A)初始化所述網(wǎng)絡(luò)子系統(tǒng)連接(B)。在建立了所述網(wǎng)絡(luò)子系統(tǒng)連接之后,調(diào)用(C)所述回調(diào)函數(shù)來報告所述網(wǎng)絡(luò)子系統(tǒng)的可用性。
假設(shè)已經(jīng)打開并分配了套接件,connect()函數(shù)調(diào)用初始化TCP連接(E)。進(jìn)一步,應(yīng)用260調(diào)用函數(shù)async_select() (F)注冊指定事件以接收通知。在該例子中,所關(guān)心的指定事件是一當(dāng)建立連接就發(fā)生的寫事件。
一當(dāng)建立了連接,如果在掩碼中注冊了所述指定事件,就調(diào)用所述回調(diào)函數(shù)。如果是這樣的話,那么調(diào)用所述回調(diào)函數(shù)(G)提供異步通知。一旦通知了應(yīng)用260,它調(diào)用函數(shù)getnextevent()(H)確定發(fā)生了哪個指定事件(I)。同樣地,該調(diào)用清除所述掩碼(J)中的事件的比特(即寫事件)。應(yīng)用260必需通過async_select()函數(shù)調(diào)用重新注冊隨后的指定事件的通知。
在圖7中,給出了異步套接件讀的說明。為了初始化讀,應(yīng)用260發(fā)出read()函數(shù)調(diào)用(A)。假設(shè)缺少讀數(shù)據(jù),應(yīng)用260調(diào)用函數(shù)async_select()(B)注冊事件(即在所述掩碼中設(shè)置相應(yīng)的比特)以接收通知。在該例子中,所關(guān)心的指定事件是當(dāng)有應(yīng)用260要讀取的數(shù)據(jù)時就發(fā)生的讀事件。
一當(dāng)數(shù)據(jù)存儲于所述接收隊(duì)列中,如果在所述掩碼中指定了讀事件就調(diào)用所述回調(diào)函數(shù)。如果是這樣的話,那么就調(diào)用所述回調(diào)函數(shù)(C)提供異步通知。一旦通知了應(yīng)用260,它調(diào)用函數(shù)getnextevent()(D)確定發(fā)生了哪個指定事件(E)。同樣地,該調(diào)用清除所述掩碼(F)中的事件的比特。應(yīng)用260必需通過async_select()函數(shù)調(diào)用重新注冊隨后的指定事件的通知。最后,為了讀取存儲于所述接收隊(duì)列中的數(shù)據(jù),應(yīng)用260必需發(fā)出read()函數(shù)調(diào)用(G)。
在圖8至圖10中,說明了本發(fā)明的實(shí)施例的狀態(tài)機(jī)。在圖8-9中,假設(shè)通信協(xié)議棧280開啟并且建立了網(wǎng)絡(luò)子系統(tǒng)連接(即話務(wù)信道以及鏈路層(如有必要)—原始套接件可以繞過所述網(wǎng)絡(luò)子系統(tǒng))。本領(lǐng)域的普通技術(shù)人員將理解到狀態(tài)的各種名字是可能的而不背離本發(fā)明的范圍。
在狀態(tài)間異步轉(zhuǎn)換的狀態(tài)機(jī)控制(即啟用或禁用)所述指定事件,如讀、寫和關(guān)閉。在操作的開始可以禁用所述指定事件并且在預(yù)定狀態(tài)啟用該指定事件來幫助應(yīng)用260識別MS110的狀態(tài)。
并且,API270根據(jù)API270的狀態(tài)和應(yīng)用260調(diào)用的函數(shù)類型報告指定狀態(tài)消息,該消息為應(yīng)用260所特有(即不僅僅是一般的)。所述指定狀態(tài)消息可以反映出底層通信網(wǎng)絡(luò)的狀態(tài)。例如以函數(shù)調(diào)用的參數(shù)將所述狀態(tài)消息報告給應(yīng)用260。
例如在圖8中,說明了API270的TCP套接件的狀態(tài)圖。未初始化的套接件以“空”狀態(tài)800開始。由于未分配,所述套接件不“存在”。通過socket()函數(shù)調(diào)用可以建立并初始化所述套接件,該調(diào)用返回用于套接件相關(guān)的函數(shù)的套接件描述符。在socket()函數(shù)調(diào)用之后,所述狀態(tài)機(jī)轉(zhuǎn)換到“初始化”狀態(tài)805。
在初始化狀態(tài)805中,無論何時由于close()函數(shù)調(diào)用而可能終止TCP連接時所述狀態(tài)機(jī)轉(zhuǎn)換回到所述空狀態(tài)800。所述close()函數(shù)調(diào)用釋放所有套接件相關(guān)的資源。另一方面,connect()函數(shù)調(diào)用初始化TCP連接并將所述狀態(tài)機(jī)轉(zhuǎn)換到“開啟”狀態(tài)810。
在所述開啟狀態(tài)810中,當(dāng)(1)發(fā)生網(wǎng)絡(luò)子系統(tǒng)故障,(2)建立所述TCP連接失敗或(3)改變的IP地址時,所述狀態(tài)機(jī)轉(zhuǎn)換到“已關(guān)閉”狀態(tài)815。并且,在終止所述TCP連接的close()函數(shù)調(diào)用之后,所述狀態(tài)機(jī)將所述套接件轉(zhuǎn)換到“關(guān)閉”狀態(tài)820而啟動終止過程。最后,一當(dāng)建立了TCP連接,所述狀態(tài)機(jī)轉(zhuǎn)換到“打開”狀態(tài)825。
在所述打開狀態(tài)825中,打開所述套接件進(jìn)行讀寫。特別地是,立刻啟用所述寫事件,而根據(jù)數(shù)據(jù)是否存儲于所述通信協(xié)議棧280的存儲器之中啟用所述讀事件。當(dāng)(1)發(fā)生網(wǎng)絡(luò)子系統(tǒng)故障;(2)建立所述TCP連接失敗;(3)試圖終止TCP連接,如由網(wǎng)絡(luò)服務(wù)器發(fā)起的TCP復(fù)位、TCP中斷或TCP關(guān)閉以及(4)IP地址的改變時,所述狀態(tài)機(jī)轉(zhuǎn)換到所述已關(guān)閉狀態(tài)815。諸如通過close()函數(shù)調(diào)用的應(yīng)用發(fā)起的TCP連接終止將狀態(tài)機(jī)轉(zhuǎn)換到關(guān)閉狀態(tài)820。
在所述已關(guān)閉狀態(tài)815中,發(fā)生了所述讀、寫和關(guān)閉事件。在終止所述TCP連接的close()函數(shù)調(diào)用之后,所述狀態(tài)機(jī)將所述套接件轉(zhuǎn)換到所述空狀態(tài)800,釋放所述套接件并使其可重新使用。
在關(guān)閉狀態(tài)820中,當(dāng)(1)發(fā)生網(wǎng)絡(luò)故障;(2)試圖終止TCP連接,如由網(wǎng)絡(luò)服務(wù)器發(fā)起的TCP復(fù)位或TCP關(guān)閉;(3)計(jì)時器到期以及(4)IP地址的改變時,所述狀態(tài)機(jī)轉(zhuǎn)換到“等待關(guān)閉”狀態(tài)830。為了防止終止TCP連接中的延遲,所述API270使用一當(dāng)所述TCP連接終止開始就啟動的計(jì)時器。如所見,所述計(jì)時器的期滿將所述狀態(tài)機(jī)轉(zhuǎn)換到所述等待關(guān)閉狀態(tài)830。
在所述等待關(guān)閉狀態(tài)830中,close()函數(shù)調(diào)用終止所述TCP連接并將所述狀態(tài)機(jī)轉(zhuǎn)換到所述空狀態(tài)800。在該狀態(tài)830中發(fā)生了所述關(guān)閉事件。
表1-3說明了API270支持的指定狀態(tài)消息。在所述空狀態(tài)(表1-3中未示出)中,描述的“沒有額外資源可用”的指定狀態(tài)消息可以報告給應(yīng)用260。
表1
表2
表3
圖9用例子說明了API270的UDP套接件的狀態(tài)圖。未初始化的套接件開始于“空”狀態(tài)900。如上面關(guān)于所述空狀態(tài)800所述闡述的那樣,由于未分配,所述套接件不“存在”。通過socket()函數(shù)調(diào)用可以建立并初始化所述套接件,該調(diào)用返回用于套接件相關(guān)的函數(shù)的套接件描述符。在socket()函數(shù)調(diào)用之后,所述狀態(tài)機(jī)轉(zhuǎn)換到“打開”狀態(tài)905。
在所述打開狀態(tài)905中,打開所述套接件進(jìn)行讀寫。特別地是,立刻啟用所述寫事件,而根據(jù)數(shù)據(jù)是否存儲于所述通信協(xié)議棧280的存儲器之中啟用所述讀事件。當(dāng)發(fā)生網(wǎng)絡(luò)子系統(tǒng)故障時所述狀態(tài)機(jī)轉(zhuǎn)換到“已關(guān)閉”狀態(tài)910。諸如通過close()函數(shù)調(diào)用的應(yīng)用發(fā)起的UDP連接終止將狀態(tài)機(jī)轉(zhuǎn)換到空狀態(tài)900。
在所述已關(guān)閉狀態(tài)910中,啟用所述讀、寫和關(guān)閉事件。在終止所述UDP連接的close()函數(shù)調(diào)用之后,所述狀態(tài)機(jī)將所述套接件轉(zhuǎn)換到所述空狀態(tài)900,釋放所述套接件并使其可重新使用。
表4-6說明了API270支持的指定狀態(tài)消息。在所述空狀態(tài)(表1-3中未示出)中,如上面所聲明的,“沒有額外資源可用”的指定狀態(tài)消息可以報告給應(yīng)用260。
表4
表5
表6
圖10說明了控制諸如話務(wù)信道(即Um)和鏈路層(即PPP206)的網(wǎng)絡(luò)子系統(tǒng)的狀態(tài)圖。open_netlib()函數(shù)調(diào)用開啟所述網(wǎng)絡(luò)子系統(tǒng),并將套接件初始化成“已關(guān)閉”狀態(tài)1000。pppopen()函數(shù)調(diào)用初始化所述網(wǎng)絡(luò)子系統(tǒng)連接,將所述套接件轉(zhuǎn)換到“開啟”狀態(tài)1005。由輸入PPP呼叫發(fā)出的向MS110的尋呼也將所述套接件轉(zhuǎn)換到所述開啟狀態(tài)。在兩種情況中,一當(dāng)成功協(xié)商,所述MS110試圖通過話務(wù)信道同步并建立RLP和PPP。
在所述開啟狀態(tài)1005中,一當(dāng)建立了網(wǎng)絡(luò)子系統(tǒng)連接,所述套接件轉(zhuǎn)換到“打開”狀態(tài)1010。另一方面,如果沒有建立所述網(wǎng)絡(luò)子系統(tǒng)連接,所述套接件就轉(zhuǎn)換回到所述已關(guān)閉狀態(tài)1000。
在所述打開狀態(tài)1010中,調(diào)用回調(diào)函數(shù)識別應(yīng)用1060啟用的指定事件,如讀、寫和關(guān)閉。在此時刻,所述MS110能夠通過話務(wù)信道通信。然而,當(dāng)發(fā)生網(wǎng)絡(luò)子系統(tǒng)故障時所述套接件轉(zhuǎn)換到所述已關(guān)閉狀態(tài)1000,這調(diào)用了所述回調(diào)函數(shù)。諸如通過close()函數(shù)調(diào)用的應(yīng)用發(fā)起的網(wǎng)絡(luò)子系統(tǒng)連接終止將所述套接件轉(zhuǎn)換到“關(guān)閉”狀態(tài)1015。
在所述關(guān)閉狀態(tài)1015中,當(dāng)所述網(wǎng)絡(luò)子系統(tǒng)連接終止時所述套接件轉(zhuǎn)換到所述已關(guān)閉狀態(tài)1000。在所述已關(guān)閉狀態(tài)1000中,調(diào)用所述回調(diào)函數(shù)識別應(yīng)用260啟用的指定事件。
表7說明了API270支持的對應(yīng)于特定函數(shù)調(diào)用的指定狀態(tài)消息。
表7
在另一實(shí)施例中,一種機(jī)器可以讀取機(jī)器可讀的包括諸如編碼軟件代碼的編碼信息的媒體,以使上述的處理能使移動站應(yīng)用識別指定狀態(tài)消息。所述機(jī)器可讀媒體可以從諸如存儲器或存儲磁盤的存儲設(shè)備或從所述通信網(wǎng)絡(luò)接受編碼信息。當(dāng)制造所述媒體時還可以對所述機(jī)器可讀媒體以編碼信息進(jìn)行編程。所述機(jī)器可以包括應(yīng)用260、通信協(xié)議棧280和API270的至少一個,而所述機(jī)器可讀媒體可以包括存儲器或存儲磁盤。
雖然關(guān)于某些實(shí)施例示出了本發(fā)明,但不應(yīng)認(rèn)為它是如此限制的。相反,本發(fā)明僅由附加的權(quán)利要求及其相關(guān)要求限制。
權(quán)利要求
1.一種用于移動站應(yīng)用識別多個指定狀態(tài)消息的方法,其特征在于所述方法包括在移動站通信協(xié)議棧和通信網(wǎng)絡(luò)之間通信;在所述移動站通信協(xié)議棧和所述移動站應(yīng)用間通過移動站應(yīng)用接口而通信;由所述移動站應(yīng)用調(diào)用函數(shù);由所述移動站應(yīng)用接口根據(jù)所述移動站應(yīng)用接口狀態(tài)和所調(diào)用的函數(shù)選擇至少一個指定狀態(tài)消息;由所述移動站應(yīng)用接口向所述移動站應(yīng)用報告至少一條指定狀態(tài)消息。
2.如權(quán)利要求1所述的方法,其特征在于所述移動站應(yīng)用以所調(diào)用的函數(shù)的參數(shù)向所述移動站應(yīng)用報告至少一條指定狀態(tài)消息。
3.如權(quán)利要求1所述的方法,其特征在于所述應(yīng)用移動站應(yīng)用接口包括多個狀態(tài)。
4.如權(quán)利要求3所述的方法,其特征在于所述移動站應(yīng)用接口在狀態(tài)間異步轉(zhuǎn)換。
5.一種用于移動站應(yīng)用識別多個指定狀態(tài)消息的裝置,其特征在于所述裝置包括與通信網(wǎng)絡(luò)通信的移動站通信協(xié)議棧;調(diào)用函數(shù)的移動站應(yīng)用;根據(jù)所述移動站應(yīng)用接口狀態(tài)和所要調(diào)用的函數(shù)選擇至少一個指定狀態(tài)消息的移動站應(yīng)用接口,其中所述移動站應(yīng)用接口適應(yīng)于允許所述移動站應(yīng)用和所述移動站通信協(xié)議棧間的通信,并且其中所述移動站應(yīng)用接口適應(yīng)于向所述移動站應(yīng)用報告至少一條指定狀態(tài)消息。
6.如權(quán)利要求5所述的裝置,其特征在于所述移動站應(yīng)用接口適應(yīng)于以所調(diào)用的函數(shù)的參數(shù)向所述移動站應(yīng)用報告至少一條指定狀態(tài)消息。
7.如權(quán)利要求5所述的裝置,其特征在于所述移動站應(yīng)用接口包括多個狀態(tài)。
8.如權(quán)利要求5所述的裝置,其特征在于所述移動站應(yīng)用接口適應(yīng)于在狀態(tài)間異步轉(zhuǎn)換。
9.一種包括編碼信息的機(jī)器可讀媒體,其特征在于當(dāng)由機(jī)器讀取時造成以下處理在移動站通信協(xié)議棧和通信網(wǎng)絡(luò)之間通信;在所述移動站通信協(xié)議棧和所述移動站應(yīng)用間通過移動站應(yīng)用接口通信;由所述移動站應(yīng)用調(diào)用函數(shù);由所述移動站應(yīng)用接口根據(jù)所述移動站應(yīng)用接口狀態(tài)和所調(diào)用的函數(shù)選擇至少一個指定狀態(tài)消息;由所述移動站應(yīng)用接口向所述移動站應(yīng)用報告至少一條指定狀態(tài)消息。
10.如權(quán)利要求9所述的機(jī)器可讀媒體,其特征在于所述移動站應(yīng)用以所調(diào)用的函數(shù)的參數(shù)向所述移動站應(yīng)用報告至少一條指定狀態(tài)消息。
11.如權(quán)利要求9所述的機(jī)器可讀媒體,其特征在于所述移動站應(yīng)用接口包括多個狀態(tài)。
12.如權(quán)利要求11所述的機(jī)器可讀媒體,其特征在于所述移動站應(yīng)用接口適應(yīng)于在狀態(tài)間異步轉(zhuǎn)換。
全文摘要
本發(fā)明揭示了一種在無線通信系統(tǒng)中用于移動站應(yīng)用識別指定狀態(tài)消息的方法和裝置。本發(fā)明包括方便與通信網(wǎng)絡(luò)通信的移動站通信協(xié)議棧和移動站應(yīng)用間的通信的應(yīng)用程序接口(API)。所述移動站應(yīng)用調(diào)用函數(shù)。所述API根據(jù)其狀態(tài)和所調(diào)用的函數(shù)選擇至少一個指定狀態(tài)消息。然后,所述API向所述移動站應(yīng)用報告所選擇的指定狀態(tài)消息。
文檔編號H04B7/26GK1449614SQ01807775
公開日2003年10月15日 申請日期2001年3月29日 優(yōu)先權(quán)日2000年3月30日
發(fā)明者N·阿波羅, H·吉爾基 申請人:高通股份有限公司