專利名稱:中間件應(yīng)用消息/事件模型的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及無(wú)線電信領(lǐng)域,更具體地說(shuō),本發(fā)明涉及用于在無(wú)線電信系統(tǒng)的移動(dòng)終端中的第一和第二軟件構(gòu)件(諸如應(yīng)用程序和平臺(tái)軟件服務(wù)構(gòu)件)之間傳送和接收消息的系統(tǒng)和方法。
相關(guān)技術(shù)描述自從在80年代第一次引入蜂窩電信系統(tǒng)以來(lái),系統(tǒng)中使用的移動(dòng)終端(移動(dòng)臺(tái))變得日益復(fù)雜。最初,設(shè)計(jì)移動(dòng)終端主要為提供話音電話業(yè)務(wù),即接收并傳送話音通信。在隨后的若干年中,開(kāi)發(fā)了還包括傳送與話音電話呼叫的用戶數(shù)據(jù)無(wú)關(guān)的用戶數(shù)據(jù)的能力的移動(dòng)終端。這種用戶數(shù)據(jù)包括例如要在通過(guò)個(gè)人電腦(PC)發(fā)起的撥號(hào)網(wǎng)絡(luò)連接上傳送的數(shù)據(jù)。
如今,正在開(kāi)發(fā)用于未來(lái)移動(dòng)電信系統(tǒng)的所謂“第三代(3G)”系統(tǒng)。3G系統(tǒng)將把高速因特網(wǎng)接入與傳統(tǒng)的話音通信結(jié)合起來(lái),并將為用戶提供除話音通信以外的接入因特網(wǎng)瀏覽、流式音頻/視頻、定位、視頻會(huì)議以及許多其它能力。
已經(jīng)建立了第三代伙伴項(xiàng)目(3GPP),以確保全球正在開(kāi)發(fā)的3G系統(tǒng)之間的兼容性。通用移動(dòng)電話系統(tǒng)(UMTS)是由3GPP開(kāi)發(fā)的,用于提供包括能夠在全球任何地方傳遞話音、數(shù)據(jù)和多媒體的陸地和衛(wèi)星系統(tǒng)的3G系統(tǒng)。
經(jīng)由3GPP標(biāo)準(zhǔn)化包括在蜂窩電信系統(tǒng)中功能大大增加,這對(duì)要用于系統(tǒng)中的移動(dòng)終端的開(kāi)發(fā)者提出了大量要求。移動(dòng)終端是尺寸、存儲(chǔ)器和功率受限的″資源缺乏的″環(huán)境,這一事實(shí)加重了上述要求。
傳統(tǒng)上,移動(dòng)終端廠商已經(jīng)設(shè)計(jì)、制造并銷(xiāo)售了基本完備的移動(dòng)終端系統(tǒng),該系統(tǒng)包括基本終端操作所需要的所有硬件和軟件,以及基于廠商或特定用戶對(duì)市場(chǎng)需求的理解來(lái)提供期望特征和功能所需的硬件和軟件。這種方法并不提供快速適應(yīng)市場(chǎng)需求迅速變化或者滿足多個(gè)股東的不同需求的靈活性。
認(rèn)識(shí)到用于設(shè)計(jì)和制造移動(dòng)終端的傳統(tǒng)過(guò)程的不足,已經(jīng)開(kāi)發(fā)了移動(dòng)終端平臺(tái)組件,其包括可作為一個(gè)單元銷(xiāo)售給多個(gè)用戶的多個(gè)功能上互補(bǔ)的軟件和硬件單元。每個(gè)用戶然后可將其自己的應(yīng)用程序安裝、加載到平臺(tái)組件中并運(yùn)行,以便提供滿足用戶自身特定需要的定制移動(dòng)終端平臺(tái)系統(tǒng)。在共同轉(zhuǎn)讓的美國(guó)專利申請(qǐng)序列號(hào)10/359911和10/359835中詳細(xì)描述了移動(dòng)終端平臺(tái)組件和平臺(tái)系統(tǒng),這兩個(gè)專利申請(qǐng)公開(kāi)通過(guò)引用結(jié)合于本文中。
如上所述的平臺(tái)系統(tǒng)(其中,分別開(kāi)發(fā)移動(dòng)終端平臺(tái)組件軟件和應(yīng)用程序,隨后通過(guò)在移動(dòng)終端平臺(tái)組件中安裝、加載并運(yùn)行應(yīng)用程序的方式來(lái)結(jié)合移動(dòng)終端平臺(tái)組件軟件和應(yīng)用程序)需要經(jīng)由平臺(tái)組件中的接口將與服務(wù)請(qǐng)求相應(yīng)的結(jié)果消息(也可包括事件信息傳遞)從平臺(tái)組件中的軟件傳送給應(yīng)用程序??墒褂没跅?過(guò)程的方法(即回調(diào)模式)或基于串行的方法(即全消息模式)來(lái)傳送這種消息。
回調(diào)模式是一種經(jīng)過(guò)充分證明的簡(jiǎn)單技術(shù),該技術(shù)允許應(yīng)用程序集中于特定應(yīng)用功能,而將與基本和復(fù)雜機(jī)制相關(guān)的處理留給平臺(tái)或框架。軟件開(kāi)發(fā)者可以將消息直接路由到結(jié)果的處理程序(功能/過(guò)程/方法)。例如,開(kāi)發(fā)者/用戶可啟動(dòng)用戶接口應(yīng)用程序,其中,例如窗口管理程序?qū)⒈3钟脩艚换ナ录畔⒒蛳⒌南魉偷蕉x明確的處理程序。用戶代碼的調(diào)用完全由窗口管理程序確定。增值功能是開(kāi)發(fā)者可以訪問(wèn)或可用的,而消息循環(huán)和消息釋放不是用戶可見(jiàn)的。因此,不需要開(kāi)發(fā)者將不同的消息路由到程序的專用部分,并且開(kāi)發(fā)者不能使系統(tǒng)降級(jí)。因此,在回調(diào)模式中,應(yīng)用代碼不能控制何時(shí)以及以什么順序處理某個(gè)消息。在一些情況下,應(yīng)用程序可能需要控制處理消息的順序或者處理特定消息的時(shí)間(即優(yōu)先級(jí)處理)。
相應(yīng)地,另一種稱為全消息模式的技術(shù)可用作回調(diào)模式的一種替代。全消息模式使消息在例如應(yīng)用線程上排隊(duì)。排隊(duì)消息然后等待應(yīng)用程序處理。可以有序方式(諸如用FIFO技術(shù))處理排隊(duì)消息,或者用并行或優(yōu)先級(jí)方式處理排隊(duì)消息。在此情況下,應(yīng)用代碼能夠完全控制消息循環(huán)。
當(dāng)前的解決方案(諸如結(jié)合到PalmOS和Brew環(huán)境中的那些解決方案)允許用戶使用回調(diào)模式或全消息模式,但是用戶或應(yīng)用程序不能夠自由選擇接收輸入消息的模式。回調(diào)或全消息模式是針對(duì)應(yīng)用程序預(yù)先確定的。
因此,需要一種消息模型,該消息模型為用戶(應(yīng)用程序)提供通過(guò)回調(diào)模式或全消息模式接收消息的選擇。用戶可在不同情況下個(gè)別地選擇哪種消息模式最適合問(wèn)題。
發(fā)明內(nèi)容
在本發(fā)明的一個(gè)實(shí)施例中,用于在產(chǎn)品的平臺(tái)域和應(yīng)用域之間傳送信息的系統(tǒng)包括平臺(tái)域,該平臺(tái)域具有軟件構(gòu)件和接口構(gòu)件。所述接口構(gòu)件具有至少一個(gè)接口,用于為應(yīng)用域中的應(yīng)用程序或模塊提供對(duì)軟件構(gòu)件的訪問(wèn);以及消息傳送機(jī)制,用于經(jīng)由所述接口在平臺(tái)域和應(yīng)用域之間傳送消息。消息傳送機(jī)制包括消息模型,用于使應(yīng)用域中的應(yīng)用程序或另一個(gè)模塊可以在回調(diào)模式和全消息模式之間選擇或切換,以便從平臺(tái)域接收消息。消息傳送模型還包括消息處理程序,用于根據(jù)選擇的模式路由消息。
在本發(fā)明的另一個(gè)實(shí)施例中,平臺(tái)域具有軟件構(gòu)件和接口構(gòu)件,該接口構(gòu)件具有至少一個(gè)接口,用于為應(yīng)用域中的應(yīng)用程序或模塊提供對(duì)軟件構(gòu)件的訪問(wèn)。一種在應(yīng)用域和平臺(tái)域之間傳送消息的方法包括應(yīng)用域中的應(yīng)用程序或模塊,該應(yīng)用程序或模塊選擇回調(diào)模式或全消息模式,或者在回調(diào)模式和全消息模式之間切換。上述模式用于從平臺(tái)域接收消息。消息處理程序根據(jù)選擇的模式路由消息。
一種用于在第一和第二軟件構(gòu)件之間傳送消息的消息傳送機(jī)制,其包括消息模型,用于允許第一和第二軟件構(gòu)件之一選擇回調(diào)模式和全消息模式,或者在回調(diào)模式和全消息模式之間切換,所述模式用于在第一和第二軟件構(gòu)件之間接收消息。所述機(jī)制還包括消息處理程序,用于根據(jù)選擇的模式路由消息。
通過(guò)以下結(jié)合附圖對(duì)本發(fā)明的詳細(xì)描述,可清除本發(fā)明的其它優(yōu)點(diǎn)和具體細(xì)節(jié)。
圖1是示意性地顯示用于無(wú)線電信系統(tǒng)的移動(dòng)終端的平臺(tái)系統(tǒng)的框圖,以幫助解釋本發(fā)明的原理;圖2是示意性地顯示圖1的平臺(tái)系統(tǒng)的移動(dòng)終端平臺(tái)組件的配置視圖的框圖,以進(jìn)一步幫助解釋本發(fā)明的原理;圖3是示意性地顯示圖1和2的移動(dòng)終端平臺(tái)組件的軟件體系結(jié)構(gòu)的框圖,以進(jìn)一步幫助解釋本發(fā)明的原理;圖4是示意性地顯示圖1-3的中間件服務(wù)層的細(xì)節(jié)的框圖,以進(jìn)一步幫助解釋本發(fā)明的原理;圖5是示意性地顯示根據(jù)本發(fā)明原理的圖4的中間件服務(wù)層的OPA域的細(xì)節(jié)的框圖;圖6是示意性地顯示根據(jù)本發(fā)明原理,在控制全消息模式或回調(diào)模式的過(guò)程中所使用的信令和構(gòu)件的框圖;以及圖7說(shuō)明根據(jù)本發(fā)明原理的全消息模式或回調(diào)模式的調(diào)用流程。
本發(fā)明示范實(shí)施例的詳細(xì)描述圖1是示意性地顯示用于無(wú)線電信系統(tǒng)的移動(dòng)終端的平臺(tái)系統(tǒng)的框圖,用于幫助解釋本發(fā)明的原理。該平臺(tái)系統(tǒng)總體用標(biāo)號(hào)10表示,其包括移動(dòng)終端平臺(tái)組件12和已經(jīng)安裝、加載并運(yùn)行在移動(dòng)終端平臺(tái)組件中的一個(gè)或多個(gè)應(yīng)用程序(即應(yīng)用軟件)14中。平臺(tái)系統(tǒng)10適于結(jié)合在一般性地用虛線16表示的移動(dòng)終端中。
移動(dòng)終端平臺(tái)組件12包括軟件服務(wù)構(gòu)件22、硬件構(gòu)件24和接口構(gòu)件26。軟件服務(wù)構(gòu)件22包括多個(gè)結(jié)構(gòu)完善的用于提供服務(wù)的功能軟件單元,所述服務(wù)經(jīng)接口構(gòu)件26提供給用戶。用戶包括平臺(tái)用戶(例如電話制造商)和終端用戶(例如電話用戶)。在圖1所示的示范系統(tǒng)中,所述多個(gè)軟件單元包括多個(gè)垂直方向的功能軟件棧30-38。
硬件構(gòu)件24包括一組硬件單元,該組硬件單元與它們各自的功能軟件棧相關(guān)聯(lián)并由它們各自的功能軟件??刂啤T趫D1所示的示范系統(tǒng)中,硬件單元是與軟件棧30-38相關(guān)聯(lián)的不同硬件塊40-48。
接口構(gòu)件26包括中間件服務(wù)層,其包括至少一個(gè)應(yīng)用編程接口(API),用于在移動(dòng)終端平臺(tái)組件12中安裝、加載并運(yùn)行一個(gè)或多個(gè)應(yīng)用程序14,該中間件服務(wù)層用于將移動(dòng)終端平臺(tái)組件12與使用移動(dòng)終端平臺(tái)組件12的應(yīng)用程序相隔離,并且為應(yīng)用程序14提供各種其它的服務(wù)。下面將描述中間件服務(wù)層的具體細(xì)節(jié)。
為了以后擴(kuò)展平臺(tái)系統(tǒng)10的功能,移動(dòng)終端平臺(tái)組件12適于作為與應(yīng)用軟件14(本文中所用術(shù)語(yǔ)“應(yīng)用軟件”可以是提供用戶可能希望獲得的功能的任何軟件)分離的完整的、封閉的單元來(lái)設(shè)計(jì)、實(shí)現(xiàn)(裝配)和測(cè)試。因此,移動(dòng)終端制造商和具有開(kāi)發(fā)能力的其它各方可以開(kāi)發(fā)或者獲得他們自己的應(yīng)用軟件,并在以后將該軟件添加到移動(dòng)終端平臺(tái)組件12中,以定制平臺(tái)系統(tǒng)10。因此,可以將移動(dòng)終端平臺(tái)組件12銷(xiāo)售或者轉(zhuǎn)給多個(gè)不同的用戶,每個(gè)用戶可以通過(guò)在平臺(tái)組件中安裝、加載并運(yùn)行他們自己的應(yīng)用軟件來(lái)定制平臺(tái)系統(tǒng)10,以滿足他們自身對(duì)平臺(tái)系統(tǒng)的特定需求。
圖2是示意性地顯示圖1的移動(dòng)平臺(tái)系統(tǒng)12的配置視圖的一個(gè)示例的框圖,用于進(jìn)一步幫助理解本發(fā)明的原理。如圖2所示,移動(dòng)終端平臺(tái)組件12經(jīng)由在主CPU 50中執(zhí)行的軟件來(lái)控制。主CPU 50可包括一個(gè)或多個(gè)處理器,如微處理器、微型可編程處理器或DSP(數(shù)字信號(hào)處理器)。軟件服務(wù)構(gòu)件22的軟件棧30-38各包括硬件驅(qū)動(dòng)器軟件60-68,以操作與每個(gè)棧相關(guān)聯(lián)的硬件單元。在上述共同轉(zhuǎn)讓的美國(guó)專利申請(qǐng)序列號(hào)10/359835中詳細(xì)給出了移動(dòng)終端平臺(tái)組件12和平臺(tái)系統(tǒng)10的更多細(xì)節(jié)。
最好以使結(jié)合在移動(dòng)終端平臺(tái)組件12中的軟件的組織易于理解的方式配置該軟件,使得該軟件更容易設(shè)計(jì)、更容易升級(jí)或修改。圖3是示意性地顯示移動(dòng)終端平臺(tái)組件12的軟件體系結(jié)構(gòu)的框圖,以進(jìn)一步幫助解釋本發(fā)明的原理。
如圖3所示,除了如上所述將軟件服務(wù)構(gòu)件22組織成多個(gè)垂直的功能軟件棧,還可將軟件服務(wù)構(gòu)件22排列,以定義多個(gè)水平層,以使中間件服務(wù)層的軟件和軟件服務(wù)構(gòu)件的軟件共同定義分層結(jié)構(gòu)(一般性地用標(biāo)號(hào)70表示),在該分層結(jié)構(gòu)中,各層以遞減次序從高服務(wù)層到低服務(wù)層排列。
該軟件結(jié)構(gòu)和標(biāo)準(zhǔn)ISO/OSI(ISO開(kāi)放系統(tǒng)互連)模型的不同之處在于,它包括補(bǔ)充多個(gè)垂直分割的軟件層的多個(gè)水平分割功能軟件單元。水平分割非常有助于創(chuàng)建獨(dú)立的模塊(服務(wù))構(gòu)件。
分層結(jié)構(gòu)的最高層是中間件服務(wù)層。軟件服務(wù)構(gòu)件22的層包括提供應(yīng)用服務(wù)的應(yīng)用服務(wù)器層80、為應(yīng)用程序提供特定平臺(tái)服務(wù)的平臺(tái)服務(wù)層82、提供會(huì)話協(xié)議和特定應(yīng)用協(xié)議的協(xié)議層84、提供音頻訪問(wèn)/控制、數(shù)據(jù)通信傳輸協(xié)議、消息傳輸協(xié)議等的傳輸層86、提供外部數(shù)據(jù)IF訪問(wèn)、結(jié)構(gòu)化存儲(chǔ)服務(wù)和其它低級(jí)平臺(tái)支持服務(wù)的數(shù)據(jù)訪問(wèn)層88、邏輯驅(qū)動(dòng)器層90和封裝硬件相關(guān)性的物理驅(qū)動(dòng)器層92。此外,軟件服務(wù)構(gòu)件22包括提供平臺(tái)組件所需要的一般服務(wù)的基本系統(tǒng)服務(wù)層94。
底部的兩層90和92構(gòu)成硬件抽象層(HAL),用于隔離軟件和硬件之間的相關(guān)性。只有物理驅(qū)動(dòng)器層涉及硬件細(xì)節(jié)(即,ASIC硬件中的哪些寄存器是編址的)。邏輯驅(qū)動(dòng)器層90提供到硬件的邏輯映射,即,該層提供移動(dòng)終端平臺(tái)組件12的硬件和軟件部分之間的橋接。
軟件本身組織成多個(gè)軟件模塊,圖3中明確指示了模塊102、104和106。在軟件服務(wù)構(gòu)件22中,單個(gè)模塊可僅位于一個(gè)垂直功能棧中,并且可僅位于該棧內(nèi)的一個(gè)水平層中。每層可包含一到多個(gè)模塊,并且特定棧內(nèi)特定層中的所有模塊具有相同的抽象等級(jí)。各模塊之間的通信通過(guò)軟件底板(Software Black Plane-SWBP)112實(shí)現(xiàn),SWBP 112受一組軟件模塊-模塊訪問(wèn)基本規(guī)則制約。這些規(guī)則可概括為-軟件模塊可調(diào)用其下所有層中的功能。
-對(duì)串行數(shù)據(jù)流方向無(wú)任何限制。串行數(shù)據(jù)流可以流往任何方向。
-軟件模塊可以從不調(diào)用在其所在層以上的層接口中(在SWBP112中)的功能,與層屬于哪一個(gè)模塊無(wú)關(guān)。
-軟件模塊可調(diào)用相同垂直棧中其自身層中的層接口中的功能。
-軟件模塊可調(diào)用另一個(gè)垂直棧內(nèi)相同層中的軟件模塊中的功能(此能力允許限制垂直棧中層的數(shù)量)。
在SWBP 112的不同模塊和接口之間不存在硬耦合(hardcoupling)。因此,可以自由地變更模塊和/或接口的實(shí)現(xiàn),而不會(huì)對(duì)該接口的客戶產(chǎn)生任何影響。這是一種重要功能,因?yàn)樗试S增加、移去或變更單個(gè)模塊而又不會(huì)影響平臺(tái)組件中的其它模塊。
在上述共同轉(zhuǎn)讓的美國(guó)專利申請(qǐng)序列號(hào)10/359911中描述了分層體系結(jié)構(gòu)的更多細(xì)節(jié),包括實(shí)現(xiàn)移動(dòng)終端平臺(tái)組件內(nèi)模塊之間內(nèi)部通信的SWBP軟件結(jié)構(gòu)。
中間件服務(wù)層用于在移動(dòng)終端平臺(tái)組件12中的軟件和平臺(tái)組件中所要安裝、加載并運(yùn)行的應(yīng)用軟件14之間提供明確定義的接口。此外,中間件服務(wù)層封裝移動(dòng)終端平臺(tái)組件12,通過(guò)中間件服務(wù)層將平臺(tái)組件與應(yīng)用程序14相隔離,并為應(yīng)用程序14提供各種不同的服務(wù)。
圖4是示意性地顯示中間件服務(wù)層的細(xì)節(jié)的框圖。如圖4所示,中間件服務(wù)層包括多個(gè)API域,包括非本機(jī)環(huán)境如Java執(zhí)行環(huán)境API域202、開(kāi)放應(yīng)用框架(OAF)API域204、開(kāi)放平臺(tái)API(OPA)域206和UI工具包API域208。
雖然API位于中間件服務(wù)層,但移動(dòng)終端平臺(tái)組件12支持多個(gè)應(yīng)用環(huán)境。在圖4中,中間件服務(wù)層支持本機(jī)應(yīng)用程序(即經(jīng)編譯以通過(guò)特定處理器及其指令集運(yùn)行的應(yīng)用程序)和非本機(jī)應(yīng)用程序如JAVA J2ME CLDC/MIDP(Java 2微型版連接有限設(shè)備配置/移動(dòng)信息設(shè)備簡(jiǎn)表)應(yīng)用程序的環(huán)境。每個(gè)應(yīng)用環(huán)境具有其自己的特性并定義如下-開(kāi)發(fā)應(yīng)用程序的方法(編程語(yǔ)言支持、編譯和鏈接)。
-執(zhí)行應(yīng)用程序的方法(例如,解釋或本機(jī)代碼執(zhí)行)-提供的功能服務(wù)。
-使用中潛在的限制。
通過(guò)提供多個(gè)應(yīng)用環(huán)境選擇,有助于提供具有不同需求,例如成本、易用性、上市時(shí)間、功能集、尺寸、便攜性等的范圍廣泛的產(chǎn)品。
共同轉(zhuǎn)讓的美國(guó)專利申請(qǐng)序列號(hào)10/359772中描述了中間件服務(wù)層的更多細(xì)節(jié),該申請(qǐng)的公開(kāi)通過(guò)引用結(jié)合于本文中。
圖5是示意性地顯示根據(jù)本發(fā)明原理的開(kāi)放平臺(tái)(OPA)域206的主要軟件模塊的框圖。如圖所示,OPA域206包括五個(gè)模塊本機(jī)環(huán)境管理(NEM)模塊230;本機(jī)應(yīng)用核心(NAC)模塊232;OPA接口和處理程序模塊234;中間件支持服務(wù)模塊236;以及本機(jī)擴(kuò)展插件程序模塊238。本機(jī)環(huán)境管理模塊230負(fù)責(zé)控制平臺(tái)系統(tǒng)10中的本機(jī)應(yīng)用程序、接收來(lái)自應(yīng)用管理程序的有關(guān)本機(jī)應(yīng)用程序的控制命令,并且跟蹤當(dāng)前在系統(tǒng)中運(yùn)行的本機(jī)應(yīng)用程序。中間件支持服務(wù)模塊236為OPA域206提供對(duì)不同處理程序公用或者需要集中的服務(wù),例如目標(biāo)管理和資源監(jiān)督。
可以將本機(jī)擴(kuò)展插件程序模塊238看成是通過(guò)OPA接口和處理程序模塊234對(duì)平臺(tái)組件功能的可選擴(kuò)展。NE插件程序模塊238受接口準(zhǔn)則、范例和機(jī)制的支配,所述接口準(zhǔn)則、范例和機(jī)制與適用并控制OPA接口和處理程序模塊234的接口準(zhǔn)則、范例和機(jī)制相同。OPA本機(jī)擴(kuò)展插件程序模塊238通過(guò)OPA接口和處理程序模塊234訪問(wèn)平臺(tái)功能。
本機(jī)應(yīng)用核心模塊232管理并負(fù)責(zé)線程和消息處理復(fù)雜性(否則應(yīng)用程序必須自己處理)。它的目的還在于通過(guò)隱藏OS的實(shí)現(xiàn)細(xì)節(jié)以實(shí)現(xiàn)OS獨(dú)立性,從而使應(yīng)用軟件解脫運(yùn)行時(shí)復(fù)雜性,所述復(fù)雜性包括消息路由/過(guò)濾和消息相關(guān)的資源處理。本機(jī)應(yīng)用核心模塊232的主要職責(zé)是隱藏應(yīng)用程序14的啟動(dòng)和關(guān)閉階段的細(xì)節(jié)以及消息處理過(guò)程中的細(xì)節(jié)。
圖6顯示了根據(jù)本發(fā)明原理,應(yīng)用程序14使用回調(diào)模式或全消息模式,以便經(jīng)由中間件服務(wù)層從平臺(tái)組件12的軟件服務(wù)構(gòu)件22接收消息的過(guò)程中涉及的構(gòu)件和信令。消息模型250使應(yīng)用程序14可以根據(jù)何種模式對(duì)應(yīng)用程序14的當(dāng)前操作和情形最有利在回調(diào)模式252或全消息模式254之間選擇。一旦應(yīng)用程序進(jìn)入期望的模式,則消息模型250啟動(dòng)與選擇的模式(即回調(diào)模式252或全消息模式254)相關(guān)聯(lián)的信令協(xié)定。NAC模塊232知道選擇的模式并根據(jù)必要的信令協(xié)定處理消息。
如果應(yīng)用程序14選擇進(jìn)入回調(diào)模式252,NAC模塊232就將消息導(dǎo)向OPA接口和處理程序模塊234中的適當(dāng)處理程序,該處理程序然后根據(jù)回調(diào)模式將消息格式化。在回調(diào)模式252中,軟件開(kāi)發(fā)者可以用功能/過(guò)程/方法(例如通用功能或?qū)S霉δ?直接接收結(jié)果。當(dāng)應(yīng)用程序14在執(zhí)行回調(diào)之后將執(zhí)行控制返回給中間件服務(wù)層時(shí),進(jìn)入回調(diào)模式252。一旦應(yīng)用程序14將控制返回給中間件服務(wù)層,就可以觸發(fā)其它的回調(diào)功能。但是,在執(zhí)行回調(diào)功能期間,應(yīng)用程序通過(guò)使用全消息模式254可以處理其它消息。
如果應(yīng)用程序14選擇進(jìn)入全消息模式254,NAC模塊232便根據(jù)全消息模式254將消息導(dǎo)向適當(dāng)?shù)膽?yīng)用消息隊(duì)列。軟件開(kāi)發(fā)者現(xiàn)在能夠完全控制消息循環(huán)。全消息模式254是默認(rèn)模式,并且在應(yīng)用程序14控制其自身線程時(shí)激活。在此情況下,應(yīng)用程序14可以選擇在任何時(shí)刻通過(guò)到中間件服務(wù)層的顯式請(qǐng)求來(lái)輪詢消息隊(duì)列。在全消息模式254下接收消息有幾種選擇。例如,用戶或軟件開(kāi)發(fā)者可選擇請(qǐng)求阻塞呼叫線程(最好使用超時(shí))直到消息可用,或者檢查消息而不阻塞線程。同樣,可使用過(guò)濾參數(shù),從而可以某種順序響應(yīng)消息,過(guò)濾掉不太重要的消息以便后續(xù)處理。在全消息模式254中,應(yīng)用代碼負(fù)責(zé)釋放消息。因此應(yīng)用程序14在某些情況下可選擇將接收的消息轉(zhuǎn)發(fā)給另一個(gè)應(yīng)用程序14,而不需要再次釋放和分配消息,從而提高了性能。
當(dāng)從全消息模式254切換到回調(diào)模式252時(shí),軟件開(kāi)發(fā)者可使中間件服務(wù)層的軟件調(diào)用正確的回調(diào)功能。此外,應(yīng)用程序14可以在任何時(shí)候(甚至實(shí)時(shí)地)在回調(diào)模式252和全消息模式254之間變更。因此,應(yīng)用程序14具有在任何時(shí)候選擇最適合各問(wèn)題的消息接收模式的能力。回調(diào)模式252和全消息模式254可以以軟件實(shí)體的任意組合在應(yīng)用軟件域中共存。
圖7說(shuō)明根據(jù)本發(fā)明原理的全消息模式或回調(diào)模式的調(diào)用流程。在步驟300中,系統(tǒng)啟動(dòng)后應(yīng)用程序14首次獲得對(duì)其主線程的控制。應(yīng)用程序14將保持這種控制(如步驟302所示),直到應(yīng)用程序14決定等待來(lái)自中間件服務(wù)層的消息。然后,應(yīng)用程序14將決定304在回調(diào)模式下還是在全消息模式下等待消息。如果決定是回調(diào)模式,則應(yīng)用程序14將執(zhí)行返回語(yǔ)句,該語(yǔ)句將應(yīng)用線程的控制轉(zhuǎn)給NAC模塊232(如308所示)。然后,NAC模塊232將輪詢?cè)摼€程的消息隊(duì)列以獲取現(xiàn)有消息(如310所示)。NAC模塊232將持續(xù)輪詢隊(duì)列,直到發(fā)現(xiàn)消息為止,之后,NAC模塊將調(diào)用先前由應(yīng)用程序14指定的回調(diào)方法以處理該消息。這使循環(huán)結(jié)束,應(yīng)用程序14又可以決定(如304所示)應(yīng)用程序是進(jìn)入回調(diào)模式還是進(jìn)入全消息模式。
如果選擇了全消息模式,則應(yīng)用程序14必須確定是進(jìn)入阻塞模式還是進(jìn)入非阻塞模式(如306所示)。應(yīng)用程序14將通過(guò)向中間件服務(wù)層中的OPA接口和處理程序模塊234請(qǐng)求消息來(lái)達(dá)此目的。請(qǐng)求類型還將指示請(qǐng)求應(yīng)該是非阻塞的還是阻塞的。如果發(fā)起非阻塞請(qǐng)求,則該請(qǐng)求將應(yīng)用線程的控制轉(zhuǎn)給NAC模塊232(如308所示)。然后,NAC模塊232將根據(jù)請(qǐng)求規(guī)范輪詢?cè)摼€程的消息隊(duì)列,以了解是否存在消息。如果發(fā)現(xiàn)了匹配消息,則將該消息從消息隊(duì)列中移去(如312所示)并將其返回給應(yīng)用程序14。如果沒(méi)有發(fā)現(xiàn)消息,則NAC模塊232將線程的控制返回給應(yīng)用程序14,而不傳送任何消息。這使循環(huán)結(jié)束,應(yīng)用程序14又可以決定應(yīng)用程序是進(jìn)入回調(diào)模式還是進(jìn)入全消息模式(如304所示)。
如果選擇了全消息模式,則應(yīng)用程序14又必須確定是進(jìn)入阻塞模式還是進(jìn)入非阻塞模式(如306所示)。如以上針對(duì)非阻塞模式的所述,應(yīng)用程序14將通過(guò)向中間件服務(wù)層中的OPA接口和處理程序模塊234請(qǐng)求消息來(lái)達(dá)此目的。請(qǐng)求類型還將指示請(qǐng)求應(yīng)該是非阻塞的還是阻塞的。如果發(fā)起阻塞請(qǐng)求,則該請(qǐng)求將應(yīng)用程序14線程的控制轉(zhuǎn)給NAC(如308所示)。NAC模塊232然后會(huì)根據(jù)請(qǐng)求規(guī)范輪詢?cè)摼€程的消息隊(duì)列,以了解是否存在消息。如果沒(méi)有發(fā)現(xiàn)消息,則NAC模塊232將繼續(xù)輪詢消息隊(duì)列以獲取請(qǐng)求的消息,直到發(fā)現(xiàn)一條消息或者超過(guò)潛在的指定超時(shí)期為止。一旦發(fā)現(xiàn)匹配消息,便從消息隊(duì)列中移去該消息(如312所示)并將其返回給應(yīng)用程序14。這使循環(huán)結(jié)束,應(yīng)用程序14又可以決定應(yīng)用程序是進(jìn)入回調(diào)模式還是進(jìn)入全消息模式(如304所示)。
以上所述的是本發(fā)明的示范實(shí)施例,但應(yīng)理解,可以在不脫離本發(fā)明保護(hù)范圍的前提下以許多種方式對(duì)本發(fā)明加以修改。例如,雖然對(duì)本發(fā)明的描述主要結(jié)合無(wú)線電信系統(tǒng)的移動(dòng)終端的特定平臺(tái)系統(tǒng)中的消息傳送來(lái)進(jìn)行,但本發(fā)明也可結(jié)合移動(dòng)終端的其它平臺(tái)、其它產(chǎn)品的平臺(tái)中的消息傳送來(lái)使用。由于可以以許多種方式來(lái)改變本發(fā)明,應(yīng)該認(rèn)識(shí)到,本發(fā)明僅受所附權(quán)利要求書(shū)所要求的范圍限制。
權(quán)利要求
1.一種用于在產(chǎn)品的平臺(tái)域和應(yīng)用域之間傳送消息的系統(tǒng),所述系統(tǒng)包括平臺(tái)域,其具有軟件構(gòu)件和接口構(gòu)件,所述接口構(gòu)件具有至少一個(gè)接口,用于為所述應(yīng)用域中的應(yīng)用程序或模塊提供對(duì)所述軟件構(gòu)件的訪問(wèn);以及消息傳送機(jī)制,用于經(jīng)由所述接口在所述平臺(tái)域和所述應(yīng)用域之間傳送消息,所述消息傳送機(jī)制包括消息模型,用于使所述應(yīng)用域中的應(yīng)用程序或另一個(gè)模塊可以在回調(diào)模式和全消息模式之間選擇或切換,以便從所述平臺(tái)域接收消息;以及消息處理程序,用于根據(jù)所述選擇的模式路由消息。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于所述消息處理程序包括在所述平臺(tái)域中。
3.如權(quán)利要求2所述的系統(tǒng),其特征在于所述接口包括中間件服務(wù)層;并且所述消息處理程序包括作為路由器包括在所述中間件服務(wù)層中的本機(jī)應(yīng)用核心模塊。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于所述本機(jī)應(yīng)用核心模塊包括在所述中間件服務(wù)層的開(kāi)放平臺(tái)API(OPA)域中。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于對(duì)所述消息模型的支持包括在所述平臺(tái)域中并由所述應(yīng)用域中的所述模塊控制。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于如果選擇所述回調(diào)模式,則通過(guò)在調(diào)用回調(diào)功能/過(guò)程/方法之后所述應(yīng)用程序?qū)?zhí)行控制返回給所述消息處理程序的方式進(jìn)入所述回調(diào)模式。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于如果選擇所述全消息模式,則通過(guò)在調(diào)用回調(diào)功能/過(guò)程/方法之后所述應(yīng)用程序保持所述執(zhí)行控制并輪詢所述消息處理程序以獲取排隊(duì)消息的方式進(jìn)入所述全消息模式。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于所述應(yīng)用域中的所述應(yīng)用程序或所述模塊可在任何時(shí)候在所述回調(diào)模式和所述全消息模式之間變更或切換。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于所述平臺(tái)域包括用于無(wú)線電信系統(tǒng)的移動(dòng)終端的平臺(tái)。
10.一種在應(yīng)用域和平臺(tái)域之間傳送消息的方法,所述平臺(tái)域具有軟件構(gòu)件和接口構(gòu)件,所述接口構(gòu)件具有至少一個(gè)接口,用于為所述應(yīng)用域中的應(yīng)用程序或模塊提供對(duì)所述軟件構(gòu)件的訪問(wèn),所述方法包括所述應(yīng)用域中的所述應(yīng)用程序和所述模塊,所述應(yīng)用程序和所述模塊選擇回調(diào)模式或全消息模式,或者在所述回調(diào)模式和所述全消息模式之間切換,所述模式用于從所述平臺(tái)域接收消息;以及消息處理程序,其根據(jù)所述選擇的模式路由消息。
11.如權(quán)利要求10所述的方法,其特征在于如果選擇所述回調(diào)模式,則所述方法還包括如下步驟通過(guò)在調(diào)用回調(diào)功能/過(guò)程/方法之后所述應(yīng)用程序?qū)?zhí)行控制返回給所述消息處理程序的方式進(jìn)入所述回調(diào)模式。
12.如權(quán)利要求10所述的方法,其特征在于如果選擇所述全消息模式,所述應(yīng)用程序還包括步驟通過(guò)在調(diào)用回調(diào)功能/過(guò)程/方法之后所述應(yīng)用程序保持所述執(zhí)行控制并輪詢所述消息處理程序以獲取排隊(duì)消息的方式進(jìn)入所述全消息模式。
13.如權(quán)利要求10所述的方法,其特征在于還包括如下步驟所述應(yīng)用域中的所述應(yīng)用程序或所述模塊在任何時(shí)候在所述回調(diào)模式和所述全消息模式之間切換。
14.如權(quán)利要求10所述的方法,其特征在于所述平臺(tái)域包括用于無(wú)線電信系統(tǒng)的移動(dòng)終端的平臺(tái)。
15.一種用于在第一和第二軟件構(gòu)件之間傳送消息的消息傳送機(jī)制,所述消息傳送機(jī)制包括消息模型,用于使所述第一和所述第二軟件構(gòu)件之一可以選擇回調(diào)模式或全消息模式,或者在所述回調(diào)模式和所述全消息模式之間切換,所述模式用于在所述第一和所述第二軟件構(gòu)件之間接收消息;以及消息處理程序,用于根據(jù)所述選擇的模式路由消息。
16.如權(quán)利要求15所述的機(jī)制,其特征在于所述第二軟件構(gòu)件在包括接口構(gòu)件的平臺(tái)域中,所述接口構(gòu)件包括用于為所述第一軟件構(gòu)件提供對(duì)所述第二軟件構(gòu)件的訪問(wèn)的接口,并且所述消息處理程序包括在所述接口構(gòu)件中。
17.如權(quán)利要求16所述的機(jī)制,其特征在于所述接口構(gòu)件包括中間件服務(wù)層;所述消息處理程序包括含于所述中間件服務(wù)層中的本機(jī)應(yīng)用核心模塊;以及所述本機(jī)應(yīng)用核心模塊適于用作路由器。
18.如權(quán)利要求17所述的機(jī)制,其特征在于所述本機(jī)應(yīng)用核心模塊包括在所述中間件服務(wù)層的開(kāi)放平臺(tái)API(OPA)域中。
19.如權(quán)利要求15所述的機(jī)制,其特征在于對(duì)所述消息模型的支持包括在所述平臺(tái)域中并且由所述應(yīng)用域中的所述模塊控制。
20.如權(quán)利要求15所述的機(jī)制,其特征在于如果選擇所述回調(diào)模式,則通過(guò)在調(diào)用回調(diào)功能/過(guò)程/方法之后所述應(yīng)用程序?qū)?zhí)行控制返回給所述消息處理程序的方式進(jìn)入所述回調(diào)模式。
21.如權(quán)利要求15所述的機(jī)制,其特征在于如果選擇所述全消息模式,則通過(guò)在調(diào)用回調(diào)功能/過(guò)程/方法之后所述應(yīng)用程序保持所述執(zhí)行控制并且輪詢消息處理程序以獲取排隊(duì)消息的方式進(jìn)入所述全消息模式。
22.如權(quán)利要求15所述的機(jī)制,其特征在于所述應(yīng)用程序可以在任何時(shí)候在所述回調(diào)模式和所述全消息模式之間切換。
23.如權(quán)利要求16所述的機(jī)制,其特征在于所述平臺(tái)域包括用于無(wú)線電信系統(tǒng)的移動(dòng)終端的平臺(tái)。
全文摘要
用于在產(chǎn)品的第一和第二軟件構(gòu)件(諸如應(yīng)用軟件和平臺(tái)軟件)之間傳送消息的系統(tǒng)和方法。示范系統(tǒng)包括具有軟件構(gòu)件和接口構(gòu)件的平臺(tái),接口構(gòu)件具有用于為應(yīng)用域中的應(yīng)用程序或模塊提供對(duì)軟件構(gòu)件的訪問(wèn)的接口。系統(tǒng)還包括消息傳送機(jī)制,用于經(jīng)由所述接口在應(yīng)用軟件或模塊和平臺(tái)之間傳送消息,該消息傳送機(jī)制包括允許應(yīng)用程序選擇回調(diào)模式或全消息模式以在應(yīng)用軟件或模塊和平臺(tái)之間接收消息的消息模型;以及用于根據(jù)選擇的模式路由消息的消息處理程序。
文檔編號(hào)H04Q7/32GK1685693SQ03822481
公開(kāi)日2005年10月19日 申請(qǐng)日期2003年9月22日 優(yōu)先權(quán)日2002年9月23日
發(fā)明者J·漢松, B·比耶爾, C·T·樂(lè), L·伊斯貝里 申請(qǐng)人:艾利森電話股份有限公司