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