專利名稱:處理非永久通信鏈路上的通信的方法
技術領域:
本申請涉及通信領域。更具體地,本申請涉及一種處理非永久通信鏈路上的通信的方法。
背景技術:
目前,無線數(shù)據(jù)通信設備由于受到用戶的歡迎而廣泛使用。
這樣的無線數(shù)據(jù)通信設備通常具有多個應用程序,如,電子收發(fā)消息應用程序、互聯(lián)網(wǎng)瀏覽器應用程序、即時收發(fā)消息(IM)應用程序等。
在使用中,無線數(shù)據(jù)通信設備可以臨時位于無線連接不再可用的區(qū)域。因而該無線數(shù)據(jù)通信設備超出覆蓋。
因此,在這樣的情況下,從運行在無線通信設備上的應用程序中生成的輸出消息(也稱為出局消息或要傳送的消息)將對于任何服務器來說,變得不可送達。更精確地,對于每條輸出消息,傳輸/網(wǎng)絡層單獨地向每個應用程序報告消息傳輸失敗。然后,應用程序必須進行相應地編程以處理這樣的故障。
本領域普通技術人員將意識到,這樣的情況尤其在由多個應用程序傳送大量消息時,會產(chǎn)生很大的開銷。
本領域普通技術人員還將意識到,頻繁的無線通信嘗試將顯著地減少無線數(shù)據(jù)通信設備的電池壽命。
存在對克服上述缺陷中的至少一個的方法的需求。
該申請的特征將從查看以下公開、附圖和描述中顯而易見。
為了易于理解該申請,作為附圖中的示例來示出實施例。
圖1是示出了有利地使用處理非永久通信鏈路上通信方法的系統(tǒng)的結構框圖;圖2是示出了使用根據(jù)實施例的通信管理單元,與傳輸/網(wǎng)絡層進行通信的多個通信應用程序的結構框圖;圖3是示出了具體是通信管理單元的實施例的結構框圖;在該實施例中,通信管理單元包括調(diào)度單元、多個隊列和編隊控制單元;圖4是示出了一種方法的流程圖,其中通信應用程序根據(jù)實施例進行通信;執(zhí)行發(fā)現(xiàn)通信鏈路是否可用的檢查;圖5是示出了一種方法的流程圖,其中在通信鏈路可用的情況下,將消息提供給用于傳輸?shù)膫鬏?網(wǎng)絡層;圖6是示出了一種方法的流程圖,其中,將消息提供給實施例中的隊列;根據(jù)第一步,選擇適合的隊列,以及根據(jù)第二步,將消息提供給所選擇的適合隊列;以及圖7是示出了一種方法的流程圖,其中,考慮了當執(zhí)行檢查以發(fā)現(xiàn)通信鏈路是否可用時所發(fā)生的情況。
具體實施例方式
根據(jù)第一方案,提供了一種處理非永久通信鏈路上的通信的方法。該方法包括中心地從多個應用程序中的至少一個應用程序中接收要傳送的消息;檢查非永久通信鏈路的可用性;如果非永久通信鏈路不可用,則將接收到的消息進行編隊以用于將來的傳輸;以及如果該通信鏈路可用,則將消息提供給傳輸/網(wǎng)絡層。
根據(jù)另一方案,提供了一種通信管理單元,用于在非永久通信鏈路上處理從多個應用程序至傳輸/網(wǎng)絡層的通信。所述通信管理單元包括調(diào)度單元,用于從多個應用程序中的至少一個應用程序中接收要傳送的消息;編隊控制單元,用于檢查非永久通信鏈路的可用性;以及隊列,用于如果非永久通信鏈路不可用,則將接收到的消息進行編隊,以及用于如果通信鏈路可用,則將消息提供給傳輸/網(wǎng)絡層。
在以下對實施例的描述中,對附圖的參照是作為示例的演示。將理解,可以在不偏離所公開的應用程序的范圍的情況下,可以構造其它實施例。
現(xiàn)在參照圖1,圖1示出了系統(tǒng)的實施例,其中,可以有利地使用以下公開的用于處理非永久通信鏈路上的通信的方法。
系統(tǒng)包括服務器單元10、網(wǎng)絡12、多個傳送設備16和多個用戶設備18。
服務器單元10適于將要發(fā)送的信號在通信鏈路上提供給多個用戶設備18。在該實施例中,通信鏈路是空中接口,并且未示出。服務器單元10可以包括永久或暫時地與多個用戶設備18連接的任何類型的處理單元。
網(wǎng)絡12包括局域網(wǎng)(LAN)、城域網(wǎng)(MAN)以及廣域網(wǎng)(WAN)中的至少一個。在實施例中,網(wǎng)絡12包括的廣域網(wǎng)是互聯(lián)網(wǎng)。
多個傳送設備16包括無線發(fā)射機,適于將數(shù)據(jù)傳送至多個用戶設備18。
多個用戶設備18包括適于至少處理數(shù)據(jù)的設備。在圖1示出的一個實施例中,多個用戶設備18是無線用戶設備。應當理解,可以使用不同類型的設備,如個人數(shù)字助理(PDA)、智能電話等。在實施例中,多個用戶設備18包括,由Research In Motion Limited制造的Blackberry(TM)設備。
更精確地,服務器單元10適于向網(wǎng)絡12提供,尤其是要發(fā)送的信號。
多個傳送設備16中的至少一個適于將信號傳送至多個用戶設備18中的至少一個。
現(xiàn)在參照圖2,示出了多個應用程序20怎樣與傳輸/網(wǎng)絡層24進行通信。應當理解,在這里公開的實施例中,多個應用程序20位于多個用戶設備18中的至少一個上(圖1)。可選地,多個應用程序可以位于服務器單元10上(圖1)。
提供了通信管理單元22,通信管理單元22適于接收至少一個由多個應用程序20提供的要傳送的消息。通信管理單元22還適于將要傳送的消息提供至傳輸/網(wǎng)絡層24。
在這里的實施例中,通信管理單元22以系統(tǒng)級容器來實現(xiàn)。還將理解,通信管理單元22適于監(jiān)聽與用戶設備18的網(wǎng)絡覆蓋狀態(tài)相關的事件。這些事件由低級傳輸層(也稱為傳輸/網(wǎng)絡層24)產(chǎn)生。傳輸/網(wǎng)絡層24可以使用輪詢解決方案,其中,傳輸/網(wǎng)絡層24周期性地嘗試打開至網(wǎng)絡的成功連接,以檢測無線設備18的狀態(tài)。然而,傳輸層設計者可以使用一些其它解決方案來始終如一地更新無線設備18地狀態(tài)。當通信管理單元22接收來自傳輸層的事件,指示設備超出覆蓋區(qū)時,開始將由多個應用程序20中的任何一個提供的消息進行編隊,以及不嘗試通過傳輸/網(wǎng)絡層24來傳輸任何消息。將理解并在以下進一步示出,可以根據(jù)不同的標準來選擇隊列。事實上,如實施例中,可以每個目的服務器一個隊列(即,標準是目的服務器數(shù))、每應用程序一個隊列(即,標準是應用程序數(shù))、單個隊列等,依據(jù)需求而定。當通信管理單元22接收來自傳輸層的事件,指示設備在覆蓋區(qū)內(nèi)時,繼續(xù)通過傳輸/網(wǎng)絡層24進行消息的傳輸。將理解,在一個實施例中,通信管理單元22還熟知多個應用程序可以與之進行通信的不同的服務器??梢栽趹贸绦虬惭b時間,或者,如在實施例中,在包含通信單元的系統(tǒng)與每個服務器之間最初發(fā)生握手時,來獲得這樣的信息。在這樣的握手之后,可以安裝與該服務器進行通信的應用程序。將理解,必須通知每個服務器,無線設備18回到覆蓋區(qū)內(nèi),然后應當將在服務器上隊列的任何消息發(fā)送至應用程序,這可以通過將任何類型的消息發(fā)送至服務器來實現(xiàn)。所以,如果有至少一個應用程序消息要發(fā)送至服務器,則發(fā)送應用程序消息??蛇x地,可以發(fā)送特定的“心跳(Heartbeat)”消息。當服務器成功地從之前不可達的無線設備18中接收消息時,服務器重新開始至該設備的消息傳輸。
在公開的實施例中,多個應用程序20包括第一通信應用程序26、第二通信應用程序28和第三通信應用程序30。
仍在圖2中公開的實施例中,第一通信應用程序26提供要傳送至通信管理單元22的第一消息,而第二通信應用程序28提供要傳送至通信管理單元22的第二消息,以及第三通信應用程序30提供要傳送至通信管理單元22的第三消息。
通信管理單元22接收由傳輸/網(wǎng)絡層24提供的狀態(tài)信號。狀態(tài)信號表示意在用于傳送消息的通信鏈路的可用性。通信管理單元22提供要發(fā)送至用戶設備18的傳輸/網(wǎng)絡層24的至少一個消息。
傳輸/網(wǎng)絡層24在通信鏈路(這里未示出)上傳送要發(fā)送的消息。
現(xiàn)在參照圖3,示出了通信管理單元22的示例。
在圖3公開的實施例中,通信管理單元22包括調(diào)度單元36、多個隊列32、以及編隊控制單元44。
調(diào)度單元36接收由多個應用程序20提供的要傳送的多個消息。
調(diào)度單元36適于根據(jù)至少一個標準來對多個消息進行分類。在一個實施例中,標準是消息的目的服務器。事實上本領域普通技術人員將理解,第一給定消息會意在遞送至第一服務器,而第二給定消息會意在遞送至第二給定服務器。
多個隊列32中的每個用于存儲由多個應用程序20提供的要傳送至通信管理單元22的多個消息中的至少一個。
在一個實施例中,多個隊列32的隊列數(shù)取決于以上公開的至少一個標準。
通信管理單元22還包括編隊控制單元44。編隊控制單元44適于控制多個隊列32。在公開的實施例中,編隊控制單元44接收由傳輸/網(wǎng)絡層24提供的狀態(tài)信號,以及將多個相應的啟用信號提供給多個隊列32中的每個隊列。提供給給定隊列的啟用信號表示可用的通信鏈路,因而用于清空給定隊列。將理解,根據(jù)依據(jù)隊列類型的不同策略,可以將啟用信號提供給多個隊列32。
多個隊列32中的每個隊列提供發(fā)送至傳輸/網(wǎng)絡層24的相應隊列消息。
在圖3公開的實施例中,多個隊列32包括第一隊列38、第二隊列40和第三隊列42。本領域普通技術人員將理解,在實施例中,不為給定隊列設置最大大小。然而,優(yōu)選地,使用從多個應用程序20的任何一個中發(fā)送的未決消息數(shù)目來設置限制。仍在本實施例中,對于由給定應用程序運行于其中的系統(tǒng)、或在安裝時間由給定應用程序自身規(guī)定的給定應用程序,限制低于最大輸出未決消息數(shù)目。由通信管理單元22來施加該限制。一旦達到限制,則通知給定應用程序。由給定應用程序負責防止用戶發(fā)送任何其它消息。然后,通信管理單元22在達到限制之后,拒絕來自給定應用程序的所有消息。然后,應用程序必須執(zhí)行對所拒絕消息的必要處理。當通信鏈路可用時,圖3中公開的編隊控制單元44可以將第一啟用信號提供給第一隊列38,將第二啟用信號提供給第二隊列40,以及將第三啟用信號提供給第三隊列42。
響應第一啟用信號,第一隊列38可以提供發(fā)送至傳輸/網(wǎng)絡層24的相應隊列消息;而響應第二啟用信號,第二隊列40可以提供發(fā)送至傳輸/網(wǎng)絡層24的相應的隊列消息;以及響應第三啟用信號,第三隊列42可以提供發(fā)送至傳輸/網(wǎng)絡層24的相應的隊列消息。
現(xiàn)在參照圖4,示出了實施例,其中,示出了通信應用程序怎樣根據(jù)實施例進行通信。
根據(jù)步驟50,從通信應用程序中接收傳送消息的請求。由通信管理單元22來接收該請求。
在一個實施例中,消息直接提供給通信管理單元22。
根據(jù)步驟52,為了發(fā)現(xiàn)通信鏈路是否可用,來執(zhí)行檢查。在實施例中,通過檢查屬于輸出消息隊列的狀態(tài)變量的狀態(tài)來執(zhí)行檢查。將狀態(tài)變量設置為“啟用”(即,通信鏈路可用)或者“禁用”(即,通信鏈路不可用)之一。本領域普通技術人員應當理解,依據(jù)由傳輸/網(wǎng)絡層24提供的接收事件來將狀態(tài)變量設置為“啟用”或“禁用”之一。應當理解,由于會有附加原因,甚至在設備在覆蓋區(qū)內(nèi)時,不向服務器發(fā)送任何消息(例如,遠程服務器中斷),所以優(yōu)選地,獨立地為每個隊列保持狀態(tài)變量。檢查隊列狀態(tài),以查看是否應當發(fā)送新消息或使新消息保持隊列。
在通信鏈路不可用的情況下,根據(jù)步驟58,將要傳送的消息提供給隊列。在實施例中,將消息提供給多個隊列32中的隊列。
在通信鏈路可用的情況下,根據(jù)步驟54,將消息提供給傳輸/網(wǎng)絡層24(見圖2)用于傳輸。
根據(jù)步驟56,由傳輸/網(wǎng)絡層24來傳送消息。
參照圖5,示出了根據(jù)一個實施例,怎樣將要傳送的消息提供給傳輸/網(wǎng)絡層24(見圖2)用于傳輸。
根據(jù)步驟60,將要傳送的消息提供給相應的隊列。如上所述,依據(jù)不同的標準,將要傳送的消息提供給相應的隊列。在該實施例中,使用調(diào)度單元36(見圖3),將要傳送的消息提供給相應的隊列。
根據(jù)步驟62,清空相應的隊列,以將隊列消息提供給傳輸/網(wǎng)絡層24。仍在該實施例中,使用由編隊控制單元44(見圖3)提供的啟用信號,來清空相應的隊列。
現(xiàn)在參照圖6,示出了在通信鏈路不可用時,怎樣將要傳送的消息提供給隊列。
根據(jù)步驟70,為要傳送的消息選擇適合隊列。依據(jù)如上所述的至少一個標準,使用調(diào)度單元36(見圖3),在多個隊列32中選擇適合隊列。
根據(jù)步驟72,將要傳送的消息提供給所選擇的適合隊列。
現(xiàn)在參照圖7,示出了在通信鏈路變得可用時發(fā)生的情況。
根據(jù)步驟80,在傳輸/網(wǎng)絡層24(見圖2)處執(zhí)行狀態(tài)檢查。
根據(jù)步驟82,為了發(fā)現(xiàn)通信鏈路現(xiàn)在是否可用,執(zhí)行檢查。
在通信鏈路可用的情況下,以及根據(jù)步驟84,將啟用信號提供給多個隊列32。
根據(jù)步驟86,將指示提供給遠程單元。事實上,指示用于向遠程單元通知,該遠程單元通過通信鏈路與哪個用戶設備18連接,使得用戶設備18可以在遠程單元上重新注冊。
根據(jù)步驟88,清空多個隊列32。
本領域普通技術人員將理解,沒有通信管理單元22,多個應用程序20中的每個將必須獨立地監(jiān)聽和處理覆蓋區(qū)事件。此外,本領域普通技術人員還將理解,必須處理其它不同類型的事件。例如,當用戶關閉或打開無線電/無線覆蓋區(qū)時產(chǎn)生的“無線電開/關”事件。本領域普通技術人員將理解,通信管理單元22能夠處理與網(wǎng)絡覆蓋相關的所有事件,以及將這些事件解譯為是否能夠發(fā)送消息。
盡管以上描述與發(fā)明人當前預計的特定實施例相關,但是將理解,在廣義范圍內(nèi)的申請包括這里描述元件的機械和功能的等同物。
權利要求
1.一種處理非永久通信鏈路上的通信的方法,所述方法包括中心地從多個應用程序中的至少一個應用程序中接收要傳送的消息;檢查所述非永久通信鏈路的可用性;如果所述非永久通信鏈路不可用,則將所述接收到的消息進行編隊以便于將來的傳輸;以及如果所述非永久通信鏈路可用,則將所述消息提供給傳輸/網(wǎng)絡層。
2.如權利要求1所述的方法,其中,對所述接收到的消息進行編隊以便于將來的傳輸包括針對所述接收到的消息,從多個隊列中選擇適合隊列,以及從所述所選擇的適合隊列中提供所述接收到的消息。
3.如權利要求2所述的方法,其中,所述多個隊列包括每應用程序一個隊列和每目的服務器一個隊列之一。
4.如權利要求1所述的方法,其中,所述檢查包括從所述傳輸/網(wǎng)絡層接收狀態(tài)信號。
5.如權利要求4所述的方法,其中,響應由所述傳輸/網(wǎng)絡層提供的至少一個事件,來執(zhí)行所述狀態(tài)信號的所述接收。
6.如權利要求4所述的方法,其中,響應狀態(tài)檢查的請求,來提供所述狀態(tài)信號的所述接收。
7.如權利要求1所述的方法,其中,在具有給定限制的給定隊列中執(zhí)行所述編隊。
8.如權利要求7所述的方法,其中,使用針對給定應用程序發(fā)送的最大消息數(shù)目中的至少一個,來生成所述給定限制。
9.如權利要求7所述的方法,其中,當所述給定隊列達到所述給定限制時,將通知提供到給定應用程序。
10.如權利要求9所述的方法,其中,當接收到所述通知時,所述應用程序通知用戶。
11.一種計算機可讀存儲器,包括當執(zhí)行時進行以下步驟的指令中心地從多個應用程序中的至少一個應用程序中接收要傳送的消息;檢查所述非永久通信鏈路的可用性;如果所述非永久通信鏈路不可用,則將所述接收到的消息進行編隊以便于將來的傳輸;以及如果所述非永久通信鏈路可用,則將所述消息提供給傳輸/網(wǎng)絡層。
12.如權利要求11所述的計算機可讀存儲器,其中,對所述接收到的消息進行編隊以便于將來的傳輸包括針對所述接收到的消息,從多個隊列中選擇適合隊列,以及從所述所選擇的適合隊列中提供所述接收到的消息。
13.如權利要求12所述的計算機可讀存儲器,其中,所述多個隊列包括每應用程序一個隊列和每目的服務器一個隊列之一。
14.如權利要求11所述的計算機可讀存儲器,其中,所述檢查包括從所述傳輸/網(wǎng)絡層中接收狀態(tài)信號。
15.如權利要求14所述的計算機可讀存儲器,其中,響應由所述傳輸/網(wǎng)絡層提供的至少一個事件,來執(zhí)行所述狀態(tài)信號的所述接收。
16.如權利要求14所述的計算機可讀存儲器,其中,響應狀態(tài)檢查的請求,來提供所述狀態(tài)信號的所述接收。
17.如權利要求11所述的計算機可讀存儲器,其中,在具有給定限制的給定隊列中執(zhí)行所述編隊。
18.如權利要求17所述的計算機可讀存儲器,其中,使用針對給定應用程序發(fā)送的最大消息數(shù)目中的至少一個,來生成所述給定限制。
19.如權利要求17所述的計算機可讀存儲器,其中,當所述給定隊列達到所述給定限制時,將通知提供到給定應用程序。
20.如權利要求19所述的計算機可讀存儲器,其中,當接收到所述通知時,所述應用程序通知用戶。
21.一種通信管理單元,用于在非永久通信鏈路上處理從多個應用程序至傳輸/網(wǎng)絡層的通信,所述通信管理單元包括調(diào)度單元,用于從所述多個應用程序中的至少一個應用程序中接收要傳送的消息;編隊控制單元,用于檢查所述非永久通信鏈路的可用性;以及隊列,用于如果所述非永久通信鏈路不可用,則將所述接收到的消息進行編隊,以及用于如果所述通信鏈路可用,則將所述消息提供給傳輸/網(wǎng)絡層。
22.如權利要求21所述的通信管理單元,其中,所述隊列包括多個隊列,其中,所述編隊控制單元還用于針對所述接收到的消息,從所述多個隊列中選擇適合隊列,以及從所述所選擇的適合隊列中提供所述接收到的消息。
23.如權利要求22所述的通信管理單元,其中,所述多個隊列包括每應用程序一個隊列和每目的服務器一個隊列之一。
24.如權利要求21所述的通信管理單元,其中,所述編隊控制單元還用于接收表示所述非永久通信鏈路的可用性的狀態(tài)信號,以及用于在所述非永久通信鏈路可用時,產(chǎn)生啟用信號;以及所述隊列還用于在沒有所述啟用信號時,將所述接收到的消息進行編隊;以及在所述啟用信號存在時,轉發(fā)所述接收到的消息。
25.如權利要求24所述的通信管理單元,其中,所述編隊控制單元響應由所述傳輸/網(wǎng)絡層提供的至少一個事件,來接收所述狀態(tài)信號。
26.如權利要求24所述的通信管理單元,其中,所述編隊控制單元響應狀態(tài)檢查的請求,來接收所述狀態(tài)信號。
27.如權利要求21所述的通信管理單元,其中,所述隊列包括多個隊列,其中,所述編隊控制單元還用于,針對所述接收到的消息,在所述多個隊列中選擇適合隊列;從所述所選擇的適合隊列中提供所述接收到的消息;以及所述多個隊列中的給定隊列具有給定限制。
28.如權利要求27所述的通信管理單元,其中,使用針對給定應用程序發(fā)送的最大消息數(shù)中的至少一個,來生成所述給定限制。
29.如權利要求27所述的方法,其中,所述給定隊列達到所述給定限制,以及當所述給定隊列達到所述給定限制時,將通知提供給給定應用程序。
30.如權利要求29所述的通信管理單元,其中,當接收到所述通知時,所述應用程序通知用戶。
全文摘要
公開了一種處理非永久通信鏈路上的通信的方法,所述方法包括,中心地從多個應用程序接收要傳送的消息;檢查非永久通信鏈路的可用性;如果非永久通信鏈路不可用,則將接收到的消息進行編隊,以便將來的傳輸;以及如果非永久通信鏈路可用,則將消息提供給傳輸/網(wǎng)絡層。
文檔編號H04L29/04GK1957577SQ200680000245
公開日2007年5月2日 申請日期2006年4月18日 優(yōu)先權日2005年4月18日
發(fā)明者詩曼提·卡馬卡爾, 邁克爾·申菲爾德, 卡門·B·維塔諾夫, 杰弗里·克里斯托弗·羅杰斯, 菲拉·比布爾, 布倫杜沙·L·弗里奇 申請人:捷訊研究有限公司