中文字幕无码日韩视频无码三区

管理與可用網絡的連接的系統和方法

文檔(dang)序(xu)號:6655576閱讀:578來源:國知(zhi)局(ju)
專利名稱:管理與可用網絡的連接的系統和方法
技術領域
本發明涉及于不同位置在移動設備(例如,膝上型電腦、蜂窩式電話和個人數字助理(PDA))和可用通信網絡(包括專用連接)之間建立電子通信的領域。更具體地說,本發明涉及一種管理移動設備和可用網絡之間的連接的系統和方法。這通過下述操作來實現基于諸如可用性、優先級等準則在每個位置確定適當的連接簡檔,然后基于所述簡檔在所述位置建立連接。如果建立連接的第一嘗試失敗,則系統嘗試使用另一簡檔(具有下一最高優先級)來建立連接。
背景技術
隨著建立計算機系統所需的部件的尺寸減小,便攜式電子設備和計算機系統(例如,膝上型電腦、蜂窩式電話和個人數字助理(PDA))日益普及。一些計算機幾乎是“手掌大小”的。大多數小型計算機系統用于實現各種個人信息管理(PIM)應用,比如說,諸如地址本、日程管理器(日歷、日期本等)和電子便箋。許多PAD和蜂窩式電話集成在一起,結果產生提供無線通信性能的單個智能設備。
在今天的環境中,在各個位置有效地連接這些移動電子設備的能力對于證明它們的使用是很重要的。普遍情況是,單個用戶具有的便攜式電子設備可連接到一個或更多其它計算機系統和/或服務器,諸如通過無線連接(藍牙、IrDA)、局域網(LAN、直接或無線(WIFI-802.11和GPRS(通用分組無線業務)))和傳統撥號調制解調器(例如,PPP(點到點協議)、USB、GSM(全球移動通信系統)等)進行連接。移動設備具有連接到一個或更多可用網絡的多種可能,并且存在各種有助于這種連接的協議。今天有許多通信選擇可用,多數設備被配置為僅有助于特定類型的連接,所述連接必須由用戶手動選擇。本領域的技術人員應理解,在本申請中對通信網絡的參考包括通過專用連接進行的點到點直接通信。
本領域所需要的是改進的連接方案和配置的移動設備,所述移動設備被配置為在特定位置將其自動連接到最佳可用網絡。

發明內容
本發明另外的特點和優點將在下面的描述中進行闡述,并將部分地通過所述描述變得明顯,或者將通過本發明的實施而被了解。可通過在所附權利要求中具體指出的手段及其組合來實現和獲得本發明的特點和優點。通過下面的描述和所附權利要求,本發明的這些和其它特點將變得更加清楚,或者可通過在這里闡述的本發明的實施來了解所述本發明的這些和其它特點。
本發明涉及一種當用戶從一個位置移動到另一個位置時自動管理移動設備和一個或更多可用網絡之間的連接的系統和方法。根據本發明的一方面,連接管理器特征使用算法來確定與移動設備連接的適當網絡(包括專用連接),所述算法依據幾種連接特性、特定優先級、可用性和適用性(usability)。眾所周知,移動設備可使用多種不同的通信技術來連接到不同的網絡(WiFi、藍牙、GPRS(通用分組無線業務)、撥號(PPP(點到點協議))和GSM(全球移動通信系統)等),并且存在許多規定這種連接的協議。當用戶想要連接到適當的網絡時,系統根據環境來決定使用哪個連接簡檔。連接管理器特征基于幾個準則來確定用于連接到通信網絡的最適當簡檔。連接管理器通過查詢簡檔中的每個“插件程序”(負責建立物理連接的代碼)來確定簡檔的可用性。如果所有插件程序可用,則簡檔可用。可用性可取決于系統配置和外部環境而改變。關于可用性,某些現有的技術可實時地確定是否存在網絡覆蓋。與每個技術有關的插件程序可定義使用這種技術的可用性。例如,移動電話指示信號強度信息。對于有關電話的網絡,本發明基于網絡的信號強度來指示可用性。連接算法不嘗試不可用的連接。WiFi驅動器在后臺確定WiFi網絡是否可用。例如,如果一定范圍之內沒有其它的藍牙設備,則藍牙連接會是不可用的。
關于適用性,用戶通過在連接類型的簡檔列表中檢查簡檔來確定所述簡檔的適用性。只有在列表中查到的簡檔是可使用的。當請求自動連接時,連接管理器特征僅考慮可用的簡檔。如果用戶由于某種原因決定不使用特定簡檔,則用戶可決定禁用移動設備。
每個簡檔還具有分配給它的優先級。在嘗試連接到網絡期間,首先嘗試具有較高優先級的簡檔。例如,LAN技術通常較快并且經濟,而WAN技術(撥號或PPP)通常較慢并且昂貴。通常,LAN技術具有比WAN技術高的優先級。如果對連接的初始嘗試失敗,則連接管理器嘗試基于下一具有最高優先級的可用簡檔來進行連接,直到連接被建立或再沒有可用的簡檔。
根據本發明的另一方面,所述系統和方法使用用于搜索連接簡檔的算法,所述連接簡檔符合指定的搜索準則或搜索字符串以及諸如可用性、優先級和使用的能力的其它參數,所述使用的能力例如禁用設備還是啟用設備。
根據本發明的另一方面,所述系統和方法使用有助于在應用級別進行容易操作的連接簡檔表示格式。通過這一格式,可從外部(遠程設備之間)容易地改變連接簡檔。再有,連接管理器特征幫助遠程(在遠程設備之間)配置和管理連接簡檔。作為一示例,例如,通過使用短消息系統(SMS),或者在執行同步(例如,HotSync)操作的同時,可經由無線通信遠程配置移動設備,所述同步操作通常在諸如個人數字助理(例如,Palm設備)的設備和桌上型電腦之間執行。
根據本發明的另一方面,本發明的系統和方法關注管理連接管理器和各種連接的結構。根據各種應用的運行情況,或根據特定應用的需要,連接管理器可同時連接到不同的網絡(包括專用連接)。
根據本發明的系統和方法致力于現有技術中的需要,并提供用于在移動設備和一個或更多可用網絡之間自動或手動建立連接的改進方法。本發明包括具有在遠程移動設備和可用的適當網絡之間實現連接的連接管理器特征的系統和方法。


為了描述可獲得本發明的上述以及其它優點和特征的方式,將通過參照在附圖中示出的本發明的特定實施例來提供對以上簡要描述的本發明的更加具體的描述。應理解,這些附圖僅描述本發明的典型實施例,因此并不認為其限制本發明的范圍,將通過使用附圖以附加的特征和細節來描述和解釋本發明,在附圖中圖1示出用于展現實施本發明的各個方面的環境的計算設備(例如,膝上型電腦或PDA設備)的基本部件;圖2示出如計算設備中所示根據本發明優選實施例的連接管理器特征的結構;圖3是根據本發明優選實施例相互作用以有助于連接管理器特征的連接性能的用戶接口、輸入/輸出、系統進程和數據庫管理進程之間的關系;圖4是存儲在與連接管理器有關的連接管理數據庫中的普通連接類型的圖的一示例;以及圖5示出根據本發明一優選實施例在通信管理器圖(“CMG”)中的插件程序(用于配置和控制通信部件的活動對象或代碼)和接口(對從視圖的某個點看起來等同的圖的節點進行抽象的方式)。
具體實施例方式
以下詳細描述本發明的各個實施例。盡管描述了涉及電子移動設備(例如,便攜式計算機)的特定實現,但是應理解,這里的描述僅是示例性的,并不限制本發明的各個方面的范圍。相關技術領域的技術人員將認識到在不脫離本發明的精神和范圍的情況下,可容易地使用其它部件和配置,或代替這里描述的部件和配置。
圖1和它的有關討論意在提供適用的計算環境的簡要的總體描述,在所述計算環境中,可實現本發明的優選實施例的各個方面。這里描述的本發明的系統和處理主要可應用在電子設備(諸如膝上型電腦、蜂窩式電話、尋呼機等便攜式計算機系統)和通信網絡之間建立通信。手持的便攜式類型的計算機系統的一個示例被稱為個人數字助理(諸如Palm設備的PDA)。盡管可應用于各種各樣的平臺和設備,但是作為示例,這里將對于示例性便攜式或移動計算機系統,例如,PDA來描述本發明的實施例。
此外,這里描述的本發明的各個方面至少部分地涉及諸如程序模塊的,由個人計算機(膝上型)或手持計算設備(PDA)執行的計算機可執行指令。通常,程序模塊可包括例行程序、對象、部件、數據結構等,它們執行特定任務或實現特定抽象的數據類型或函數。本領域的技術人員將認識到,可以用非手持或移動設備的計算機系統配置來實施本發明,所述計算機系統配置以其它方式包括在基于多處理器的系統、基于多處理器或可編程的消費電子設備、網絡PC、迷你計算機、大型計算機等之中。還可在由通過通信網絡鏈接的遠程處理設備來執行任務的分布式計算環境中實施本發明。在分布式計算環境中,程序模塊可位于本地和遠程存儲裝置設備中。
繼續參照圖1,通常示出示例性便攜式或移動計算機系統(諸如PDA)來實現本發明的各個方面。便攜式或移動計算機系統包括通用計算設備100,其包括中央處理單元(CPU)120。通過系統總線110將系統存儲器130和各種其它的系統部件連接到CPU 120。系統總線110可以是下述幾種類型的總線結構中的任何一種存儲器總線或存儲控制器、外圍總線、或使用各種總線結構中的任何一種的本地總線。系統存儲器130包括只讀存儲器(ROM)140(典型地包括諸如PDA中的閃速存儲器),用于存儲操作系統和應用代碼;以及隨機存取存儲器(RAM)150,用于存儲用于應用的臨時數據。
計算設備100還包括諸如鍵盤或觸摸屏(在Palm PDA設備的情況下用鐵筆來使用)的基本輸入設備,它們用于從用戶接收數據。計算設備100還包括諸如LCD的基本輸出設備154,用于向用戶顯示用戶界面(UI)和其它信息。如果計算設備100是膝上型電腦,則還可包括諸如硬盤驅動器的存儲設備160。
最后,計算設備100包括通信接口180,用于與通信網絡通信。通信接口180的示例包括無線通信硬件(例如,GPRS(通用分組無線業務)、WiFi等)和直接通信硬件(例如,撥號調職解調器和直接LAN連接)。
在計算機系統100具體為PDA設備的示例中,將通信鏈路耦合到與PDA設備關聯的支架(cradle)或線纜底座(cable dock)(未示出),用來通過通信線路接收和發起與計算機系統100的通信。支架提供計算機系統100之間的電和機械的通信接口或鏈接,以進行雙向通信。在一示例性實施例中,包括支架的通信鏈路和線路可以是串行通信鏈路或USB鏈路。計算機系統100還可包含無線紅外通信機制,用于向期望與其通信的其它設備發送信息或從其接收信息。
在本發明的一實施例中,通信鏈路可以是串行通信端口,或者也可以是多個公知的通信標準和協議中的任何一種,所述通信標準和協議例如并行通信、SCSI、火線(IEEE 1394)、以太網等。計算機系統100還可包含一個或更多其它無線通信介質,例如,蜂窩式電話、藍牙和/或無線LAN(例如,IEEE 802.11),它們全部可用于在便攜式計算機系統100和主機計算機之間建立通信鏈路,或用于直接與互聯網建立通信鏈路。
存儲在ROM 140中的操作系統和應用代碼定義基于流傳輸構架的輸入/輸出系統,以建立通信。如本領域技術人員所公知的,流傳輸構架是已建立的用于建立標準組件通信協議的構架。或者,可使用本領域技術人員所知的其它網絡結構來代替流傳輸構架。根據這里公開的實施例,當在移動設備上運行的應用或操作系統想要發起連接時,本領域技術人員所知的流傳輸驅動器和模塊被打開并連接到一起。例如,可通過打開串行端口來發起通信,通過打開流傳輸驅動器來打開所述串行端口。根據用于接入互聯網的技術,過打開并鏈接多個驅動器或模塊來建立到互聯網的連接。流傳輸構架和IOS(輸入/輸出系統)不定義服務或有助于應用和系統建立流傳輸堆棧的庫。在優選實施例中,應用和系統不直接與流傳輸驅動器和模塊相互作用。
此外,在本發明的優選實施例中,存儲有用的連接信息(例如,串行接口波特率、PPP密碼、撥號電話號碼等)。為了高效地建立連接,以可容易地訪問的方式來存儲所述信息。還以可容易地由用戶進行編輯的方式來存儲所述信息。
現在參照圖2,由連接管理器200控制通信接口。連接管理器200是用于在手持或其它計算設備100上創建、配置和建立任何類型的連接,而不考慮所述手持或其它計算設備100是客戶機、服務器還是它們的組合的部件。連接管理器200包括各種配置板,并負責實現設備100和通信網絡之間的連接(標號205通常指示與通信網絡的通信鏈路)。根據本發明一優選實施例,連接管理器200高效地管理今天的通信環境中可行的所有類型的連接。
為了建立物理連接,連接管理器200定義稱為“連接簡檔”的數據結構或通信堆棧。連接簡檔是定制插件程序和引用的每個插件程序的配置設置的對象。插件程序是負責配置和連接一個或更多通信部件的代碼段,所述通信部件實現規定物理連接的一個或更多協議。插件程序還包含用于簡檔用戶界面部件以實現物理連接的指令。連接管理器200經由“向導”界面手動地,經由API(應用程序接口)自動地,或從外部位置下載來創建連接簡檔。它可以經由UI界面手動或經由API自動地修改連接簡檔。
連接簡檔典型地存儲在連接簡檔數據庫202中,但是也可專用于特定系統應用。連接管理器200如通信線路203所示與連接簡檔數據庫202通信并管理連接簡檔數據庫202。它允許用戶、首要的應用或系統執行各種任務中的任何一種,例如,編輯、創建、刪除、改變、連接或斷開存儲在連接簡檔數據庫中的任何連接簡檔。
應理解,可創建連接簡檔以表示本領域技術人員已知的任何種類的物理連接。通過從連接管理器圖(其示例在圖4和圖5中示出)定義插件程序和接口節點的序列來創建連接簡檔(對象),所述連接管理器圖形成從高級別部件到低級別部件的完整路徑,其實際上建立了物理連接。作為示例,電話撥號互聯網連接簡檔包括多個項目,諸如定義撥號參數(例如,電話號碼)的撥號項目,定義PPP參數(例如,注冊、密碼)的PPP元素、定義電話參數(例如,電話驅動器)的電話項目等。
應認識到,流傳輸構架和輸入輸出系統(IOS)是本來就可插入的,即,可通過提供新的流傳輸模塊和驅動器容易地添加新的技術。添加的每個技術提供定義例如如何連接、如何編輯的運用所述技術的代碼的連接管理器插件程序、用戶參數等。連接簡檔項目僅僅是對連接管理器插件程序的引用(PPP項目指定PPP插件程序)。
連接管理器200提供由系統塊208指示的標準連接API(應用程序接口),用于啟動連接并處理連接簡檔。為了啟動連接,連接管理器200使用存儲在連接簡檔數據庫202中的信息。特定連接簡檔定義插件程序,即,涉及建立連接的通信協議。為了啟動連接,連接管理器200根據確定的特定連接協議,沿著線路212(見插件程序入口點)請求插件程序。以下,更加詳細地描述由連接管理器200用來搜索連接簡檔的算法。同樣地,在本申請的后面也將更詳細地描述系統或用戶與連接管理器數據庫202之間的相互作用。
作為一示例,通過PPP鏈路上的標準IP連接來示出連接。在函數方面提供CncProfileFindConnect函數。為了使得諸如Palm的PDA設備能夠與遠程TCP服務器服務進行通信,下面的操作是必需的。首先,從移動設備100的通信接口180建立互聯網連接(如果已經打開的話)。然后,打開串行端口(串行插件程序)。接著,進行撥號(電話或調制解調器插件程序),運行PPP,然后交換網絡接入信息(PPP插件程序)。最后,在PPP上運行互聯網協議。或者,關于公知的TCP服務,可使用標準報路(socket)來創建與遠程主機的TCP連接。
連接管理器200提供用于建立物理連接的統一方式。以下描述的示例示出連接管理器200如何與BSD報路API協作創建物理普通連接(IP、串行、RfCom、IrComm)//initialize a standard BSD Socket sockaddr structure(IP Address,//TCP service,etc).mySocketDescriptor…//Search the database for an Internet profile and connect itCncProfileFindConnect(“IP/*”);//Create a TCP socket with the BSD Socket APImySocket=socket(PF_INET,SOCK_STREAM,getprotobyname(“TCP”));bind(mySocket,mySocketDescriptor,...)連接管理器200結構還可用作存儲“服務級別連接”。下面研究服務級別插件程序的示例。TCP插件程序負責打開TCP報路。所述插件需要兩個參數IP地址(或服務器的名稱)和請求的TCP服務的名稱或標識。使用TCP簡檔的應用會如下所示mySocket=CncProfileFindConnect(“TCPmyhost.mydomain.com,http/*”)連接管理器200還可用于管理諸如HOTSYNC、SMTP或OBEX連接的應用級別簡檔。連接管理器200沿著線路209與由系統塊210所示的API簡檔接口通信。應用級別簡檔的某些示例如下所示mySocket=CncProfileFindConnect(“HOTSYNC/*”);mySocket=CncProfileFindConnect(“SMTP/*”);mySocket=CncProfileFindConnect(“OBEX/*”);在一種情況下,在任何互聯網協議可用之前(由此,不需要調用CncConnect(“IP/*”))可進行報路調用。在這種情況下,報路算法可選擇嘗試在建立所述報路之前打開“IP/*”連接簡檔,而不是發送用于在輸出設備154(見圖1)顯示的錯誤消息(例如,“不能到達網絡”)。
CncProfileFindConnect函數返回文件描述符。所述文件描述符由IOS提供。應用和其它共享的庫將正常地使用這一文件描述符來讀取/寫入數據、配置連接或選擇連接。IOS API將用于這一目的。
現在參照圖3并繼續參照圖2,應注意到,連接管理器進展用戶界面220(見圖2)發生在連接管理器線程224(見圖3)中。圖3還表示主UI線程229(示出應用代碼231和連接管理器SHIM 227)和IOS線程223(示出IOS服務器代碼235)。IO進程237沿著管道241與系統進程228通信。
存在另一種稱為持久連接的連接,這里也將對其進行描述。持久連接是可獨立于啟動它的進程存在的活動連接。必須由除了啟動持久連接的進程之外的其它進程來管理定義所述系統連接的系統資源。
如果連接所需的所有系統資源僅為UI進程226(見圖3)所“擁有”,則當從一應用切換到另一應用時,所述連接將丟失。示出這一情況的示例是當用戶使用物理移動設備100的面板(圖1中輸入設備152的一部分)上的“連接”按鈕,來啟動互聯網連接,并隨后切換到網絡剪取或郵件應用時。用戶不希望在切換應用的同時停止連接。連接停止通常應僅響應于用戶請求而發生,或由于一段時間的不活動(例如,在超時周期過去)而可能發生。
連接管理器200有助于關于持久連接的狀態信息的存儲。連接管理器200提供API以測試連接的狀態。由連接部件將關于連接的狀態的情況通知連接管理器200。例如,IP和PPP具有系統進程中的線程,所述系統進程關于連接和斷開與連接管理器200的通信。
使用系統進程228中的線程(軟件任務)來管理諸如連接密碼的敏感信息保證了實際的安全。將異步操作通知所有連接管理器客戶機。每個連接管理器客戶機經由IOS管道連接到連接管理器線程224。在管道上實施客戶機請求。連接服務器處理所述請求并經由相同的管道來應答所述請求。
明確地參照圖3,基于以下假設來描述連接管理器200的操作調用者在用戶界面(UI)進程26的主線程。后臺進程、其它UI進程線程或其它系統線程可使用通常由系統塊208所示的連接管理器API。
在連接管理器200內,連接管理器庫(由圖3的標號227示出的SHIM,用于調用連接管理器的代碼)在數據庫管理器進程230的控制器發起經由管道225與連接管理器線程224的通信。結果,連接管理器線程224在它本身和調用進程(從UI進程226)之間創建雙向通信通道232。連接管理器線程224實現簡單的“服務器”,輪詢指定的管道文件描述符以及所有通信通道的“接收通道”文件描述符。這里,不定義由連接管理器線程224和連接管理器庫使用的暗含的消息協議。
為了更詳細地描述連接管理器200的操作,由標有UI構架的系統塊表示并由標號206示出的連接管理器200的內核是不攜帶特定連接層或特定簡檔參數的知識的類框架。所述框架負責使用連接管理器簡檔和連接管理器插件程序來啟動插件程序的配置UI部件。UI構架206通過UI處理連接管理器的形式和創建、編輯以及刪除之間的轉變。
由標有連接引擎的系統塊表示并由標號204指示連接管理器200中使用連接簡檔和連接插件程序來創建實際連接的部分。
連接管理器200提供完整的一組API,其劃分為幾個類別。對于標準應用,連接API 208可作為發起和/或終止連接的首要應用接口。簡檔API 210是執行用于創建、編輯、刪除或完成連接簡檔的操作的應用接口。對于專門的應用(諸如輸入設備152上的面板的操作),由系統塊212表示并由標號212指示的數據庫API是到用于創建、編輯、刪除和記錄連接簡檔數據庫202中的連接的操作的接口。
API的另一示例由系統塊214表示,由標號214示出,并標有用于注冊插件程序的安裝API。可由以下描述的插件程序來調用安裝API。對于插件程序,由標號216指示的實用程序API(工具箱)由連接管理器200提供,并由任何特定的插件程序使用。插件程序提供由通信管理器調用的多個入口點(見鏈路218),來建立連接,顯示UI等。如先前所示,連接管理器插件程序(見由標號220指示的標有CM插件程序的塊)是負責在通信堆棧內層的簡檔和建立的代碼段和資源。這一層可包含一個或更多通信部件,并實現一個或更多協議。插件程序還包含用于簡檔特定層的UI。插件程序的各個示例是藍牙、IP、PPP、USB等。因此,插件程序定義某些由連接管理器引擎204調回的標準入口點。可在帶有相同代碼的模塊中封裝多個插件程序(見220)。模塊定義至少一個激勵碼(launch code),例如,sysCnc。另一示例是LaunchCmdGetPlugins,由此插件程序模塊將返回在所述模塊中定義的插件程序的列表和計數。模塊還可定義激勵碼sysCncPluginLaunchCmdRegister。一旦在模塊中定義的插件程序被添加到定義接口、邊緣、簡檔、模板等的連接管理器數據庫202,連接管理器200就調用所述激勵碼sysCncPluginLaunchCmdRegister。如果特定模塊取決于在另一模塊中定義的插件程序,則為了避免對于模塊的依賴會產生的問題,模塊可列舉“調回”函數。
在安裝步驟(硬復位時間或熱安裝)中,使用CncRegisterPluginModule()API注冊連接管理器插件模塊(例如,在reset或HotSync通知中)。在簡檔步驟中,連接管理器200用sysCncPluginLaunchCmdPlugins來加載插件程序模塊并調用模塊的主入口點。插件程序模塊返回插件程序排列和插件程序計數。連接管理器200將插件程序添加到它的數據庫202。然后,連接管理器200用sysCncPluginLaunchCmdRegister調用模塊的主入口點。插件程序模塊將邊緣、接口、簡檔和模塊添加到數據庫202,或將Done字段設置為false,以便后來被調回。
對于特定應用,確定要連接的哪個簡檔涉及進程。例如,如果特定應用想要建立與互聯網的連接,則系統或用戶,而不是應用來確定適當的連接簡檔。在這種情況下,應用僅知道用于連接的簡檔開始于引用能夠實現TCP/IP連接的技術的特定項目。
根據本發明的優選方面,連接管理器200使得搜索簡檔能夠開始于一個或更多公知的技術。連接管理器200搜索適合搜索字符串和其它參數的連接簡檔,所述其它參數諸如簡檔的優先級、適用性、可用性等。自動連接算法使用搜索函數來確定正確的用于連接的簡檔。簡檔搜索字符串具有與簡檔字符串相同的格式,但是由兩個字符“/*”來終止。
作為示例,注意到,所有互聯網簡檔開始于“NetOut”項目。應用可通過搜索或連接“NetOut”字符串來搜索或連接正確的簡檔。連接算法將搜索開始于“NetOut”項目的所有簡檔,并假設其它規則(優先級、可用性、適用性)將試驗所述正確的簡檔。
現在參照圖4,可將根據一示例性實施例的連接管理器數據庫202組織為所有普通連接類型的圖(“CMG”)。圖4表示這種圖的簡化示例。在所述圖中,節點是通信部件,部件的邊緣(a,b)僅表示在部件b的上面可直接使用部件a。在圖4中示出各種插件程序。由標號240指示IP接口插件程序(圖4中的“IPIF”)。由標號242指示IP鏈路層插件程序(圖4中的“ILL”)。由標號244指示點到點協議插件程序(“PPP”)。由標號246指示AT撥號插件程序(“數據調用(Datacall)”)。由標號248指示串行插件程序(“串行(Serial)”)。
可如下建立圖4所示的CMG。在初始化時間,連接管理器200和它的插件程序220(圖2)建立包括所有普通連接路徑的缺省CMG。當添加新的通信部件時,有關的連接管理器插件程序負責CMG的進展。
在某些環境下,應用會想要添加或刪除接口,或者CMG的邊緣。例如,HotSync會想要添加HotSync接口來組合所有能進行HotSync操作的連接。不允許應用創建或刪除插件程序。連接管理器200提供API來處理這一圖。包括插件程序和系統代碼的授權代碼能夠創建或刪除插件程序和接口節點,以及普通路徑。一般的用戶應用不能這樣做。
連接簡檔是CMG的節點序列,其中,每個節點標有如上所示的特性表。所述節點序列定義涉及連接的插件程序和接口。特性是用于插件程序的簡檔參數。
P=({a1 a2...an},{p1 p2...pn}),其中,a1、a2...an是CMG中的節點,pl、p2...pn是分別標有al、a2...an的簡檔節點的特性。
將連接簡檔正常地存儲在連接管理器數據庫中(見圖3)。應用具有處理其它應用不可見的專用連接簡檔的能力。連接簡檔可引用其它連接簡檔。在這種情況下,當需要時(例如,當連接時),將簡檔“線性化”,即,將簡檔引用擴展到它們表示的插件程序/接口序列。
當用簡檔啟用插件程序函數時,所述插件程序函數將能夠訪問相同簡檔中的其它節點的特性表。例如,如果rs232接口節點與定義普通rs232參數的特性表有關,則串行插件程序將能夠訪問這些參數。
簡檔的節點序列可以是CMG中的有效路徑,也可以不是有效路徑。CMG僅定義普通路徑。應用將能夠定義/使用非普通路徑,假設將有關通信部件設計為一起相互作用。例如,可通過PPP調試應用將PPP客戶機連接到TCP報路,即使CMG沒有定義這樣的路徑。
當進行物理連接時,應用程序通常僅與最高級別部件相互作用,所述最高級別部件定義連接類型。在TCP/IP的示例中,程序應用不需要了解較低級別的連接。
現在參照圖5,其示出連接管理器200內的插件程序和接口。連接管理器接口表示連接管理器圖的節點。接口是對從視圖的某個點看起來等同的圖的節點進行抽象的方式。接口不與任何一個通信部件直接關聯,并且不帶有代碼或UI。在圖5中,由標號250指示IP接口插件程序(“IPIF”)。由標號252指示IP鏈路層插件程序(“ILL”)。由標號254指示點到點協議插件程序(“PPP”)。由標號256指示串行插件程序(“串行(Serial)”)。由標號258指示紅外接口插件程序(“IRIF”)。由標號260指示藍牙插件程序(“藍牙(Bluetooth)”)。由標號262指示PluginsRoot接口(“插件程序根(PluginsRoot)”,具有從PluginsRoot接口到每個插件程序的邊界)。由標號264指示鏈路接口(到Serial、IRIF(紅外)和Bluetooth的點)。
可由用戶經由通過編程或通過軟件安裝的連接應用來創建簡檔。連接管理器200還允許經由連接應用或通過編程來修改和管理現有的簡檔。程序應用還可創建和處理僅對所述應用可見的專用連接簡檔。
當應用或系統想要連接連接簡檔時,連接管理器200調回與簡檔的每個項目有關的每個插件程序。應用或系統僅對連接管理器200進行函數調用,并接著接收表示所述連接的文件描述符。
連接管理器200的另一方面處理如何表示連接簡檔。換言之,如何通過任何編程語言來容易地處理連接簡檔(其作為每個項目可定義參數的列表),以及如何通過網絡實現連接簡檔的交換(例如,通過空中鏈路實現配置)。
在本發明的優選實施例中,將字符串格式定義為容易地表示任何種類的連接簡檔。高級別語言具有容易使用的字符串操作例行程序。本發明的連接管理器200定義消除如字節存儲順序的典型交換問題的格式。如本領域的技術人員所公知的,字節存儲順序(endianness)處理計算機內部存儲數字的模式(以自然類型的字節次序,諸如整型)。連接管理器200內部地處理連接簡檔的二進制表示。函數將連接簡檔的字符串表示解碼為內部二進制表示,另一函數以字符串表示來編碼簡檔的內部二進制表示。字符串是插件程序名稱的列表,其中某些值指示它們的配置參數。
連接簡檔字符串是連接簡檔的內部文本表示。其為容易地表示連接簡檔的方式。例如,連接向導應用將使用連接簡檔字符串來創建新的連接簡檔并將其存儲在連接管理器數據庫中。
連接簡檔字符串的一般格式為
“a1:p1/a2:p2/.../an:pn”,其中,a1、a2...an是CMG中的節點,p1、p2...pn是分別標有a1、a2...an的簡檔節點的特性表。特性表是由逗號分隔的參數值。使用包括在大括號中的文本十六進制表示來編碼二進制參數。字符串參數包括在引號中。必須用引用的可打印符號(=XY)來表示特殊字符以及等號和引號標記。整型以數字開始。十六進制數字以0x開始。
以下是示例sprinth(profile,″SerialMgrname=′PortCOM1′,crea=0x31323334/SerialBaud=%d,FCtl=0x%X,Bits=0x%X″,B9600,CRTSCTS,CS8);profileId=CncProfileDecode(″SerialMgrPort1Profile″,profile);連接簡檔ID是整型值(unit32_t),其表示一個,并且僅表示一個存儲的連接簡檔。這是引用現有的連接簡檔的最佳方式。連接管理器API充分使用連接簡檔ID。插件程序和接口也具有ID。
作為一示例,以下描述用于表示連接的字符串格式的細節字符串格式的細節::= 定義非終結符<...> 非終結符‘x’ 字符{...} 包括在括號中的元素可重復0到n次[...] 包括在括號中的元素可重復0或1次| 或者(僅兩個元素中的一個)nothing 沒有實際意義(僅為注釋)
<connection profile string>::=<element>{‘/’<element>}<element>::=<element_name>[‘’<param_list>]<param_list>::=nothing|<param>{‘,’<param>}<param>::=<param_name>‘=’<param_value>
<param_value>::=<param_string>|<param_binary>|<param_integer>
<param_name>是1到4個字符,某些字符不允許“”、“=”、“/”或空格。也不允許是參數名稱的十六進制模式“[”ascii十六進制表示的4字節“]”。示例
,User,Pass。
<element_name>是字符序列。某些字符不允許“”、“=”、“/”或空格。示例PPP,Phone,Serial。
<param_string>是引用的可打印字符串,以單引號開始和結束。示例‘This a=0A=0Dstring’。
<param_binary>是字節序列。每個字節由兩個十六進制數字表示,其以“[”開始,并以“]”結束。示例

<param_interger>是32比特的無符號整型。它可以是十進制或十六進制表示。示例18972,0XFEA4。
作為一示例,以下示出如何以C語言從連接簡檔字符串創建新的連接簡檔<pre listing-type="program-listing"> profileId=CncProfileDecode( ″RAS via Serial″, ″NetOut/IPIF/ILL″ ″/PPPUser=′pptestras′,Pass=′pptestras′,ConT=30000″ ″/ScriptLogS=[″ ″7320434C49454E5400″ //Send′CLIENT′ ″64203100″ //Delay 1 ″7320434C49454E5400″ //Send′CLIENT′ ″772056455200″ //Wait′VER′ ″00]″//End ″/RS 232 at 115000bps″);</pre>
連接管理器200用諸如可量測性、可維護性、靈活性的網絡配置來方便地解決過去的問題。為了示出其優點,應注意到,在過去,負擔在于用于理解通信設置的調用代碼上。例如,網絡模塊具有調用特定任務管理器撥號連接調制解調器或撥號連接蜂窩式電話的條件碼。如果添加了新的傳輸,例如,藍牙,則必須更新網絡模塊以包括用于與藍牙API通信并理解藍牙參數的代碼。
根據優選實施例的連接管理器200具有通過HotSync、輻射或SMS操作來“交換”連接簡檔并接收連接簡檔的能力。這方便地允許遠程管理。或者,可完成輻射或發送配置。不考慮如何接收內容(對象),自動地注冊所述內容(對象),并且連接管理器200可使用它。也將進入的內容(對象)自動地通知連接管理器200。可使用由庫(SMS、電子郵件、Ir等)提供的所有傳輸來發送或接收對象。由于安全原因,可對這些對象進行標記和加密。
此外,連接管理器200提供類“內容”API。應用僅具有堆棧中上層協議的知識,所述上層協議是它們正使用的,并且將應用盡可能地從其它連接細節屏蔽。連接管理器200提供“非完整連接簡檔”能力。應用可使用連接簡檔進行連接,所述連接簡檔沒有完全規定,并且其在運行時間自動完成或通過用戶的干涉而完成。有兩種類型的非完整簡檔路徑沒有完全規定。例如,應用可請求TCP/IP連接,而不指定串行連接的種類。如果缺少某些設置,則應用以“AOL”簡檔進行連接,在所述“AOL”協議中,PPP注冊和密碼是缺少的。連接管理器200提供用于后臺任務或自動重新連接模式的非UI模式。
對于ROM 140(見圖1)中的通信部件,可在ROM中預先定義連接簡檔。在提供硬復位之后,由設置應用激勵設置插件程序(見“設置CDB”),以在RAM 150的連接數據庫中創建簡檔。此外,如果某些簡檔不完整,則插件程序在請求它們的設置向導中添加步驟。
對于其它通信部件,通過應用建立連接簡檔,所述應用為某些安裝代碼或諸如電話應用的專用應用。應用可決定通過將連接簡檔存儲在數據庫中并在連接時間提供明確的連接字符串來保持連接簡檔是專用的。終端用戶也可在任何時間手動地創建或完成連接簡檔。
從不通過連接管理器200創建連接簡檔。然而,當向連接管理器200注冊連接管理器插件程序時,它們有時將創建缺省簡檔。
連接管理器200不直接與I/O子系統相互作用。相反,連接管理器插件程序220(圖2)與I/O子系統相互作用以建立連接。連接管理器插件程序220負責通過IOS調用打開和配置某些通信部件,并負責處理某些異常情況的通知。在連接建立期間的某時刻,插件程序請求它的子進行連接(它調用CncConfigureChild),獲得文件描述符,推入它上面的某些模塊,并返回新的文件描述符。
存儲在連接管理器數據庫202(圖2)中的連接簡檔具有分配的優先級。通過編程或通過用戶來分配連接簡檔優先級。通常將簡檔插入等同簡檔的列表(例如,所有互聯網簡檔在相同的列表中)。優先級用于當第一次插入簡檔時找到所述簡檔在列表中的位置。可通過編程(通常遵循用戶動作)改變簡檔在列表中的順序。搜索算法總是首先返回關于列表順序的簡檔。例如,缺省互聯網連接將是互聯網列表中的第一簡檔。
連接簡檔具有可用性和狀態信息。可用性表示簡檔是否可在當時被連接(例如,如果用戶將Palm設備放入它的支架上,則“支架上的Palm設備互聯網連接”變得可用)。狀態表示簡檔是否被連接。
模板是當創建新的簡檔時使用的特殊簡檔。當創建新的簡檔時,用戶將必須選擇將被復制到實際簡檔的模板。宏簡檔是具有以‘{’開頭的名稱的簡檔(kCncMacroSpecialChar)。當創建時,宏簡檔未附于任何插件程序或接口。它們用作簡檔或模板中的引用。當用戶創建新的簡檔時,使用兩個特殊宏{REPLACE}和{USING}。
鏈接對象用于將幾個不同的名稱關聯到相同的簡檔。它們如同符號鏈接或快捷方式那樣作用它們引用另一對象,當它們被搜索時,它們指向的實際對象被返回。當創建具有國際性名稱的缺省簡檔,而且當這樣的簡檔可由具有公知的國際性獨立名稱的其它簡檔引用時,以上處理是非常有用的。例如,稱為“115200bps的RS232”的鏈路可指向有關國際性的簡檔。
為了創建簡檔,應用和系統將能夠創建連接簡檔并將其添加到連接管理器數據庫202。連接管理器提供用于搜索連接管理器數據庫202以找到匹配搜索字符串的簡檔的API。搜索字符串可與簡檔字符串進行比較,可定義節點特性,也可以不定義節點特性,可通過joker終止搜索字符串。搜索算法將使用CMG和存儲的簡檔來在有效簡檔字符串中完成搜索字符串。例如,給出“IP/*”搜索字符串,算法將搜索所有互聯網簡檔。搜索API將包括至少兩個函數CncProfileFindFirst和CncProfileFindNext。第一函數在連接管理器數據庫202中創建臨時搜索簡檔,并執行第一搜索。第二函數搜索下一簡檔。應用可多次調用這一函數,以檢索與搜索字符串相應的所有簡檔。最后,調用CncProfileClose函數,以釋放臨時搜索簡檔。按照與簡檔順序有關的順序返回簡檔。
為了便于使用,簡檔必須被配置,即,簡檔中的每個插件程序必須至少具有連接所需要的參數。有三種分配參數給節點的方式將參數存儲在插件程序的特性表中。這可通過編程(在創建簡檔時進行)來完成。第二種方式可通過插件程序的配置調回來完成代碼定義缺省參數并/或能夠在其它簡檔節點的特性表中找到參數值。最后一種方式是請用戶定義缺少的參數。再一次,插件程序的責任是定義允許用戶輸入配置參數的UI。一旦完成并配置連接簡檔,則連接管理器能夠嘗試關于它的連接。
ROM 140(見圖1)包含多個通信部件,諸如TCP/IP、PPP、IrComm和IrDA,連同它們的插件程序和優選連接簡檔。第一次運行時或硬復位之后,連接管理器220在RAM 150(見圖1)中創建簡檔數據庫。ROM 140中的每個插件程序具有向連接管理器200注冊并添加缺省簡檔的責任。例如,在插件程序注冊器中創建稱為“紅外連接”的簡檔,提供串行接口,并且不要求接口。現在,當諾基亞電話驅動器封裝進入時,它將創建電話簡檔“紅外連接上的諾基亞”和TCP/IP簡檔“經由紅外與諾基亞之間的互聯網”。它甚至可以檢查在設備上什么硬件可用,并由此創建簡檔(例如,僅當藍牙硬件存在時創建藍牙簡檔)。
可通過安裝代碼、簡檔應用和第三方應用來使用下面的API。如果系統不信任應用代碼,則可應用一些限制。例如,非信任應用將不能夠獲得諸如VPN或PPP密碼的敏感參數。
涉及以下描述的發明的方面的一種實現與Palm PDA設備的操作系統有關。在所述實現中,連接管理器200包括CncMgr.h file和對存根庫CncClientLib.a的鏈路。以下描述的表指示關于這一具體實現的可用性常數。



盡管上述描述可包含特定細節,但是不應以任何方式將它們解釋為限制權利要求。所描述的本發明的實施例的其它配置是本發明的范圍的一部分。例如,在單個計算設備上和所述設備內的節點之間可存在格式協商,或者在網絡的節點之間的通信網絡上會出現所述協商。因此,應僅由所附權利要求及其合法等同物來限定本發明,而不是由所給出的任何具體示例來限定。
權利要求
1.一種用于在移動設備和一個或更多通信網絡或一個或更多專用連接之間建立連接的方法,所述方法包括以下步驟將多個連接簡檔存儲在數據庫中,以實現與在所述移動設備周圍的環境中可用的一個或多個通信網絡的物理連接;按照從高到低的排列將優先級與所述多個通信網絡中的每一個進行關聯;確定所述多個通信網絡中的哪一個具有最高優先級,并選擇用于實現連接的通信網絡;以及嘗試建立到所選擇的通信網絡的連接。
2.如權利要求2所述的方法,其中,嘗試的步驟是建立連接的第一嘗試。
3.如權利要求2所述的方法,還包括步驟如果第一嘗試失敗,則嘗試用于建立與被給予下一最高優先級的另一通信網絡的連接的第二嘗試。
4.如權利要求1所述的方法,其中,所述一個或更多通信網絡包括無線通信網絡。
5.如權利要求4所述的方法,其中,無線通信網絡使用藍牙技術。
6.如權利要求4所述的方法,其中,無線通信網絡使用IrDA技術。
7.如權利要求4所述的方法,其中,無線通信網絡是WiFi-802.11網絡。
8.如權利要求4所述的方法,其中,無線通信網絡是GPRS網絡。
9.如權利要求1所述的方法,其中,經由撥號調制解調器來接入通信網絡。
10.如權利要求9所述的方法,其中,撥號調制解調器提供到PPP(點到點協議)網絡的接入。
11.如權利要求1所述的方法,其中,確定步驟還包括確定通信網絡是否可用。
12.如權利要求1所述的方法,其中,嘗試建立連接的步驟包括一次或更多嘗試,直到沒有通信網絡剩余。
13.如權利要求1所述的方法,還包括步驟在嘗試建立連接之前,考慮所選擇的通信網絡的適用性。
14.如權利要求1所述的方法,其中,由存儲在移動設備內的存儲器中的應用程序來創建連接簡檔。
15.如權利要求1所述的方法,其中,從外部下載連接簡檔。
16.一種用于在移動設備和通信網絡之間建立連接的系統,所述系統包括連接簡檔數據庫,用于存儲多個連接簡檔,以實現與在所述移動設備周圍的環境中可用的多個通信網絡的物理連接;連接管理器,用于按照從高到低的排列將優先級與所述多個通信網絡中的每一個進行關聯;并確定所述多個通信網絡中的哪一個具有最高優先級,連接管理器選擇用于實現連接的適當通信網絡;以及通信接口,用于嘗試建立到所選擇的通信網絡的連接。
17.如權利要求16所述的系統,其中,通信接口嘗試用于基于被分配最高優先級的第一連接簡檔建立連接的第一嘗試。
18.如權利要求17所述的系統,其中,如果第一嘗試失敗,則通信接口嘗試用于建立與被給予較低優先級的另一通信網絡的連接的第二嘗試。
19.如權利要求16所述的系統,其中,所述一個或更多通信網絡包括無線通信網絡。
20.如權利要求19所述的系統,其中,無線通信網絡使用藍牙技術。
21.如權利要求19所述的系統,其中,無線通信網絡使用IrDA技術。
22.如權利要求19所述的系統,其中,無線通信網絡是WiFi-802.11網絡。
23.如權利要求19所述的系統,其中,無線通信網絡是GPRS網絡。
24.如權利要求16所述的系統,其中,由撥號調制解調器接入通信網絡。
25.如權利要求24所述的系統,其中,撥號調制解調器接入PPP網絡。
26.如權利要求24所述的系統,其中,連接管理器確定所選擇的通信網絡是否可用。
27.如權利要求24所述的系統,其中,通信接口繼續嘗試建立連接,直到沒有通信網絡剩余。
28.如權利要求16所述的系統,其中,在嘗試建立連接之前,連接管理器還考慮所選擇的通信網絡的適用性。
29.如權利要求16所述的系統,其中,由存儲在移動設備內的存儲器中的應用程序來創建連接簡檔。
30.如權利要求16所述的系統,其中,從外部下載連接簡檔。
全文摘要
公開了在用戶改變位置時自動管理移動設備和一或多個可用網絡(包括專用連接)間的連接的系統和方法。連接管理器確定連接簡檔并向每個可用簡檔分配可用性和優先級。已知,移動設備有連到不同網絡的多種可能且有許多規定該連接的協議。連接管理器確定最適當簡檔以接到可用網絡。若連接初始嘗試失敗,則連接管理器基于帶有最高優先級的下一可用簡檔嘗試連接直到連接被建立或不再有可用簡檔。連接管理器用算法來搜索符合指定準則或搜索字符串及如可用性、優先級和適用性的其它參數的連接簡檔。該系統和方法使用幫助在應用級別的容易處理的連接簡檔表示格式。可通過該格式在遠程設備之間容易地交換簡檔。此外,連接管理器幫助簡檔的遠程配置和管理。
文檔編號G06F21/00GK1947450SQ200580012262
公開日2007年4月11日 申請日期2005年2月9日 優先權日2004年2月9日
發明者雷內·珀爾蒂爾, 阿蘭·巴斯蒂, 加文·M·皮爾庫克, 雷吉斯·尼古拉斯, 丹尼斯·伯格 申請人:Palm源公司
網(wang)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1