專利名稱:使用插件軟件擴展移動平臺功能的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及無線電信領(lǐng)域;更具體地說,本發(fā)明涉及擴展并修改無線通信系統(tǒng)移動終端平臺的功能而不修改其基本功能的方法和系統(tǒng),相關(guān)技術(shù)描述對于許多終端用戶移動產(chǎn)品的制造商和其他平臺客戶而言,提供可配置程度高的平臺是具有吸引力的選擇??膳渲眯詫τ诟呒壒δ芏杂绕渲匾?,這是由于一些客戶需要這種功能,并且常常喜歡內(nèi)部開發(fā)這種功能,而其他客戶對于將這種功能包括在他們的產(chǎn)品中沒有興趣。
然而,提供可配置程度高的移動終端平臺為平臺的提供者帶來了一些困難。例如,提供者必須支持加到平臺中的任何高級功能,并且支持不同用戶可能要求的許多種配置,例如通過為客戶提供針對其具體配置的平臺文檔。同樣,由于不能期望所有平臺配置都正常工作,平臺提供者有必要測試每個特定配置以確保增加的功能以用戶期望的方式工作。此外,在許多情況下,增加的功能將依賴于平臺中提供的其他功能并具有對上述其他功能的邏輯相關(guān)性,這樣,如果刪除了上述其他功能,則增加的功能可能不再正常工作。
此外,平臺提供者常常希望維持其專有平臺的細節(jié)。為了達此目的,平臺提供者不應(yīng)該讓客戶或任何其他一方直接接觸其代碼庫,而是最好由客戶將平臺簡單地看成是具有定義接口和定義行為的“黑匣子”。
然而,可配置程度高的平臺可表現(xiàn)出維護專有平臺的細節(jié)的困難。例如,平臺提供者的通常做法是與第三方簽約以開發(fā)平臺的高級附加軟件。平臺提供者可以開發(fā)用于平臺且隨平臺一起交付的應(yīng)用軟件。這種情況可能發(fā)生的一個典型的例子關(guān)于產(chǎn)品特定的功能,例如控制用戶界面的觀感的功能,該功能經(jīng)常作為高級圖形庫來實現(xiàn)。由于觀感是品牌特定的,此功能在不同產(chǎn)品和品牌之間會有所不同。
然而,如果契約第三方來開發(fā)高級附加程序,則該用戶將需要訪問平臺代碼庫以便開發(fā)功能,從而迫使提供者將專有信息揭示給第三方。
此外,在已經(jīng)配置平臺并將該平臺交付給用戶之后,平臺功能將已經(jīng)經(jīng)過測試、穩(wěn)定并被固定。然而,客戶可能具有修改、擴展并配置交付平臺的附加需求,而交付平臺的設(shè)計已預(yù)先排除了這種可能性。例如,客戶可能希望修改所提供的功能的不同部分以使該平臺適應(yīng)特定需要,或者增加比交付平臺中所包括的更強大的功能(即,平臺提供者視為在平臺域范圍之外的功能)。此外,客戶可能想在比平臺提供者在基本平臺組件配置中所提供的更詳細的層次上配置平臺功能,或者想執(zhí)行某種形式的最后一刻配置,以便基于終端用戶準備支付的內(nèi)容來將功能加到平臺中或從中刪除。
一般而言,用于移動終端和其他產(chǎn)品的當(dāng)前平臺并未提供可借以擴展、刪除或改變平臺功能的有效過程。
發(fā)明概述本發(fā)明提供了可借以擴展或者改變無線電信系統(tǒng)移動終端平臺或另一個產(chǎn)品平臺的功能的系統(tǒng)和方法。用于擴展和/或修改產(chǎn)品平臺的功能的系統(tǒng)具有平臺域,該平臺域具有軟件服務(wù)構(gòu)件,用于提供功能;以及接口構(gòu)件,其具有至少一個接口,用于提供對軟件服務(wù)構(gòu)件的訪問,以使應(yīng)用軟件能夠經(jīng)由所述至少一個接口在平臺中安裝、加載并運行。該系統(tǒng)還包括與應(yīng)用軟件共同使用的插件軟件,用于經(jīng)由所述至少一個接口擴展和/或修改平臺域的軟件服務(wù)構(gòu)件的功能。
一種用于擴展和/或修改產(chǎn)品平臺的功能的方法包括提供平臺域,該平臺域具有軟件服務(wù)構(gòu)件,用于提供功能;以及接口構(gòu)件,其具有至少一個接口,用于提供對軟件服務(wù)構(gòu)件的功能的訪問,以使應(yīng)用軟件能夠經(jīng)由所述至少一個接口在平臺中安裝、加載并運行。該方法還包括與應(yīng)用軟件一起提供插件軟件,用于經(jīng)由所述至少一個接口擴展和/或修改平臺域的軟件服務(wù)構(gòu)件的功能。所述方法還包括經(jīng)由所述插件軟件擴展和/或修改軟件服務(wù)構(gòu)件的功能。
通過以下結(jié)合附圖所作的詳細描述,將闡明本發(fā)明的其他優(yōu)點和具體細節(jié)。
附圖簡述
圖1是框圖,其示意性地顯示了用于無線電信系統(tǒng)移動終端的平臺系統(tǒng),以幫助解釋本發(fā)明的原理;圖2是框圖,其示意性地顯示了圖1的平臺系統(tǒng)的移動終端平臺組件的配置視圖,以進一步幫助解釋本發(fā)明的原理;圖3是框圖,其示意性地顯示了圖1和2的移動終端平臺組件的軟件體系結(jié)構(gòu),以進一步幫助解釋本發(fā)明的原理;圖4A是邏輯框圖,其示意性地顯示了圖1-3的中間件服務(wù)層的細節(jié);圖4B是圖4A的框圖的實現(xiàn)視圖;圖5是框圖,其示意性地顯示了開放平臺API(OPA)域的主要軟件模塊;圖6A和6B是框圖,其分別示意性地顯示了開放平臺API(OPA)域的邏輯和實現(xiàn)視圖;以及圖7A和7B是分別示意性地顯示了插件軟件模型在回調(diào)模式和全消息模式中實現(xiàn)消息模型一致的順序圖。
本發(fā)明示范實施例的詳細描述圖1是框圖,其示意性地顯示了用于無線電信系統(tǒng)移動終端的平臺系統(tǒng),以幫助解釋本發(fā)明的原理。平臺系統(tǒng)一般地由標號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包括多個用于提供服務(wù)的、結(jié)構(gòu)完善的功能軟件單元,所述服務(wù)經(jīng)由接口構(gòu)件26提供給用戶。在圖1所示的示范系統(tǒng)10中,多個軟件單元包括多個垂直方向的功能軟件棧30-38。
在圖1所示的示范系統(tǒng)10中,硬件構(gòu)件10包括一組硬件塊40-48,這些硬件塊與它們各自的功能軟件棧30-38相關(guān)聯(lián)并由它們各自的功能軟件棧30-38控制。接口構(gòu)件26包括中間件服務(wù)層,該中間件服務(wù)層包括至少一個應(yīng)用編程接口(API),用于在移動終端平臺組件12中安裝、加載并運行一個或多個應(yīng)用軟件14,該中間件服務(wù)層將移動終端平臺組件12與使用移動終端平臺組件12的應(yīng)用軟件隔離,并且為應(yīng)用軟件14提供各種其他的服務(wù)。
平臺系統(tǒng)10的移動終端平臺組件12適于作為與應(yīng)用軟件14(本文中所用的術(shù)語“應(yīng)用軟件”可以是提供用戶可能希望獲得的功能的任何軟件)分離的完整的、封閉的單元來設(shè)計、實現(xiàn)(裝配)和測試。相應(yīng)地,用戶可以開發(fā)或者獲得他們自身的應(yīng)用軟件,并在以后將該軟件加到移動終端平臺組件12,以完善平臺系統(tǒng)10。相應(yīng)地,可以將移動終端平臺組件12銷售或者轉(zhuǎn)讓給多個不同的用戶,其中每個用戶可以通過在平臺組件中安裝、加載并運行他們自己的應(yīng)用軟件來完善平臺系統(tǒng)10,以滿足他們自己對于平臺系統(tǒng)的特定需求。
圖2是框圖,其示意性地顯示了圖1的移動終端平臺系統(tǒng)12的配置視圖的一個示例,以進一步幫助理解本發(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)讓的美國專利申請No.10/359835中詳細給出了移動終端平臺組件12和平臺系統(tǒng)10的更多細節(jié)。
最好以使結(jié)合在移動終端平臺組件12中的軟件組織易于理解的方式配置該軟件,以使該軟件更容易設(shè)計、更容易升級或修改。圖3是框圖,其示意性地顯示了移動終端平臺組件12的軟件體系結(jié)構(gòu),以進一步幫助解釋本發(fā)明的原理。
如圖3所示,除了如上所述將軟件服務(wù)構(gòu)件22組織成多個垂直的功能軟件棧以外,也可將軟件服務(wù)構(gòu)件22排列,以定義多個水平層,使得中間件服務(wù)層的軟件和軟件服務(wù)構(gòu)件22的軟件共同定義一個分層結(jié)構(gòu)(一般地由標號70表示),其中各層下降次序從高服務(wù)層到低服務(wù)層排列。
該軟件體系結(jié)構(gòu)和標準ISO/OSI(ISO開放系統(tǒng)互連)模型的不同之處在于,它包括補充多個垂直分割的軟件層的多個水平分割的功能軟件單元。水平分割非常有助于創(chuàng)建獨立的模塊(服務(wù))構(gòu)件。
分層結(jié)構(gòu)的最高層是中間件服務(wù)層,它是接口構(gòu)件26的組成部分。軟件服務(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包括提供平臺組件12所需一般服務(wù)的基本系統(tǒng)服務(wù)層94。
底部的兩層90和92構(gòu)成硬件抽象層(HAL),用于隔離軟件和硬件之間的相關(guān)性。只有物理驅(qū)動器層涉及硬件細節(jié)(即,尋址ASIC硬件中的寄存器)。邏輯驅(qū)動器層90提供到硬件的邏輯映射,即,該層提供移動終端平臺組件的硬件和軟件部分之間的橋梁。
軟件本身組織成多個軟件模塊,圖3中明確指示了模塊102、104和106。在軟件服務(wù)構(gòu)件22中,單個模塊可只駐留在一個垂直功能棧中,并且可僅駐留在該棧內(nèi)的一個水平層中。每層可包含一到多個模塊,并且特定棧中特定層中的所有模塊具有相同的抽象等級。不同模塊之間的通信經(jīng)由受一組用于軟件模塊與模塊訪問的基本規(guī)則約束的軟件底板(SWBP)112來完成。這些規(guī)則可概括為-軟件模塊可調(diào)用其所在層以下所有層的功能。
-不存在對串行數(shù)據(jù)流(包含例如事件信息或數(shù)據(jù)流)方向的任何限制。串行數(shù)據(jù)流方向可以是任意的。
-軟件模塊絕不可調(diào)用在其所在層以上的層接口(在SWBP 112中)的功能,與該層屬于哪一個模塊無關(guān)。
-軟件模塊可調(diào)用相同垂直棧中其自身層中的層接口中的功能。
-軟件模塊可調(diào)用另一個垂直棧中的相同層中的軟件模塊中的功能(允許此功能以限制垂直棧中層的數(shù)量)。
SWBP 112中的不同模塊和接口之間不存在硬耦合。因此,可以隨意改變接口的實現(xiàn)和/或模塊,而不對該接口的客戶產(chǎn)生任何影響。此能力允許增加、刪除或改變單個模塊而不影響平臺組件中的其他模塊。在共同轉(zhuǎn)讓的美國專利申請No.10/359911中描述了分層體系結(jié)構(gòu)的更多細節(jié),包括實現(xiàn)移動終端平臺組件內(nèi)模塊之間的內(nèi)部通信的SWBP軟件結(jié)構(gòu),所述申請的公開通過引用結(jié)合于本文中。
中間件服務(wù)層用于在移動終端平臺組件12中的軟件和要在平臺組件中安裝、加載并運行的應(yīng)用軟件14之間的明確定義的接口;并對移動終端平臺組件12進行封裝,且通過中間件服務(wù)層將平臺組件12與應(yīng)用軟件隔離,以及為應(yīng)用軟件14提供各種其他服務(wù)。
圖4A是框圖,其示意性地顯示了接口構(gòu)件26的中間件服務(wù)層的細節(jié)。如圖4A所示,中間件服務(wù)層包括多個API域,包括非本機環(huán)境如Java執(zhí)行環(huán)境API域202、開放應(yīng)用框架(OAF)API域204、開放平臺API(OPA)域206和UI工具包域208。
通過中間件服務(wù)層中的API,移動終端平臺組件12支持多個應(yīng)用環(huán)境。在圖4A的示范實施例中,中間件服務(wù)層支持本機應(yīng)用軟件(即,經(jīng)編譯以通過特定處理器及其指令集運行的應(yīng)用軟件)的環(huán)境和非本機應(yīng)用軟件如JAVA J2ME CLDC/MIDP(Java 2微型版連接有限設(shè)備配置/移動信息設(shè)備簡檔)應(yīng)用軟件的環(huán)境。每個執(zhí)行環(huán)境具有其自身的特性,定義如下-開發(fā)應(yīng)用軟件的方法(編程語言支持、編譯和鏈接)。
-執(zhí)行應(yīng)用軟件的方法(例如,解釋或本機代碼執(zhí)行)。
-提供的功能服務(wù)。
-潛在的使用限制。
通過提供多個應(yīng)用環(huán)境選擇,便于提供具有不同要求,例如成本、易用性、上市時間、功能集、尺寸、便攜性等要求的各式各樣的產(chǎn)品。每個API域包括多個軟件模塊,各API域的細節(jié)參見共同轉(zhuǎn)讓的美國專利申請No.10/359772,該申請的公開通過引用結(jié)合于本文中。
圖4B是應(yīng)用域500和中間件域501的實現(xiàn)視圖。圖4B顯示了兩個插件軟件插件軟件A 510和插件軟件B 512,這兩個插件軟件駐留在應(yīng)用域500中,以便擴展和/或修改中間件域501的開放平臺API 514的服務(wù)。插件軟件A 510可僅依賴于開放平臺API 514,而插件軟件B 512可依賴于插件軟件A 510及開放平臺API 514。本機應(yīng)用軟件508和非本機應(yīng)用軟件506均依賴于插件軟件A 510、插件軟件B 512以及開放平臺API(OPA)514。在非本機環(huán)境(例如Java虛擬機)的情況下,在應(yīng)用軟件506依賴于非本機環(huán)境504的意義上,應(yīng)用相關(guān)性是間接的。非本機環(huán)境504依賴于插件軟件A 512、插件軟件B 512以及開放平臺API 514。
圖5是框圖,其示意性地顯示了根據(jù)本發(fā)明示范實施例的開放平臺(OPA)域206的主要軟件模塊。如圖所示,OPA域206包括五個模塊本機環(huán)境管理(NEM)模塊230、本機應(yīng)用核心(NAC)模塊232、OPA接口和處理程序模塊234、中間件支持服務(wù)模塊236以及本機擴展插件軟件模塊238。
本機環(huán)境管理模塊230負責(zé)控制平臺系統(tǒng)10中的本機應(yīng)用軟件。本機環(huán)境管理模塊230是涉及本機應(yīng)用軟件的控制命令的接收者,并且跟蹤當(dāng)前在系統(tǒng)中運行的本機應(yīng)用軟件。
本機應(yīng)用核心模塊232管理并維護線程化和消息處理復(fù)雜性,否則應(yīng)用軟件必須親自處理。本機應(yīng)用核心模塊232還可通過簡化操作系統(tǒng)的實現(xiàn)細節(jié)來實現(xiàn)操作系統(tǒng)無關(guān)性,以使應(yīng)用軟件擺脫運行復(fù)雜性,包括消息路由/過濾和消息相關(guān)資源處理。本機應(yīng)用核心模塊232的另一個重要職責(zé)是簡化應(yīng)用軟件的啟動和關(guān)閉階段以及消息處理過程中的細節(jié)。
中間件支持服務(wù)模塊236為OPA域206提供不同處理程序公用的或者需要集中化的服務(wù),如目標管理和資源監(jiān)督。
本機擴展插件軟件模塊238為平臺組件12的提供者提供靈活擴展的可能性。插件軟件通過為終端用戶設(shè)備制造商或另一方所編寫的應(yīng)用軟件14提供附加接口和附加服務(wù),從而有效擴展了平臺組件的功能。
圖5是顯示作為開放平臺API(OPA)域206的一個模塊的插件軟件的邏輯視圖,而圖6A則是顯示根據(jù)本發(fā)明另一個示范實施例的開放平臺API(OPA)域240的更一般的表示的邏輯視圖,其中開放平臺API域240具有多個開放平臺API模塊242、244、246和248以及插件軟件模塊250。在本邏輯視圖中,也將插件軟件模塊250顯示為結(jié)合在開放平臺API域240中,這是因為,從客戶的觀點來看,插件軟件模塊250會表現(xiàn)為平臺組件的中間件服務(wù)構(gòu)件260的組成部分。然而,插件軟件模塊250實際上包括在平臺組件12之上的應(yīng)用軟件域270中運行并使用平臺組件所提供的功能的獨立實體。這樣,從實現(xiàn)的觀點來看,它位于平臺組件上方,使用開放平臺API訪問平臺組件功能,如圖6B的實現(xiàn)視圖所示。
插件軟件支持平臺組件所支持的所有應(yīng)用軟件機制,并且符合平臺組件中定義的應(yīng)用模型。換句話說,插件軟件將遵從與開放平臺API所輸出的提供的OPA服務(wù)相同的范例。這些包括但不限于·就如何定義和操作接口和構(gòu)件而言的構(gòu)件模型一致。插件軟件實現(xiàn)為構(gòu)件并將通過基于定義的功能或方法的接口來為終端產(chǎn)品應(yīng)用軟件提供其服務(wù)。
·命名慣例一致。插件軟件使用與開放平臺API相同的接口方法命名慣例。同樣,在這些接口方法中定義的參數(shù)和類型將遵從開放平臺API中采用的命名慣例。
·非期望事件處理一致。插件軟件將以與平臺相同的方式處理功能的可能的錯誤行為。根據(jù)與開放平臺API相同的范例將有關(guān)這種錯誤的信息傳遞給應(yīng)用軟件。
·消息模型一致。插件軟件將支持兩種用于傳遞異步請求的結(jié)果的模式,即回調(diào)模式和全消息模式。
·基于對象和接口的范例。
就上述倒數(shù)第二點而言,消息模型一致對插件軟件的行為和如何構(gòu)建插件軟件的影響很大。尤其是,平臺組件消息模型為應(yīng)用軟件提供雙模式,以便接收由異步服務(wù)請求或事件訂閱產(chǎn)生的結(jié)果。雙模式指通過回調(diào)機制(回調(diào)模式)或消息隊列(全消息模式)接收結(jié)果。這為平臺組件客戶軟件開發(fā)者提供了根據(jù)不同消息模型,組織不同應(yīng)用軟件的靈活性和自由度,具體依應(yīng)用功能的性質(zhì)而定。
應(yīng)用軟件通過執(zhí)行或不執(zhí)行返回語句來確定應(yīng)用軟件接收異步結(jié)果所用的模式。如果應(yīng)用軟件決定以回調(diào)模式接收結(jié)果,則應(yīng)用軟件在完成異步服務(wù)請求后返回執(zhí)行控制。如果決定采用全消息模式,則應(yīng)用軟件在服務(wù)請求之后不返回執(zhí)行控制,而是獨自輪詢消息隊列并手動調(diào)用消息處理代碼。本解決方案的另一個好處在于應(yīng)用軟件實際上可以在運行時隨時在回調(diào)和全消息模式之間切換。
插件軟件模型符合消息模型的雙模式,并將此靈活性透明地提供給客戶的應(yīng)用軟件。圖7A和圖7B中示意性地顯示了根據(jù)本發(fā)明一個實施例,用于實現(xiàn)這種一致的順序,圖7A示意性地顯示了回調(diào)模式的順序310,圖7B示意性地顯示了全消息模式的順序。這些順序圖顯示了開放平臺API(OPA)316、插件軟件(或?qū)嵱贸绦?314和請求服務(wù)的應(yīng)用軟件312之間的交互作用。
1.在啟動時,客戶應(yīng)用軟件將從OPA接收執(zhí)行控制。也可選擇要求根據(jù)用于初始化OPA服務(wù)(平臺組件功能)的相同范例來初始化插件軟件服務(wù)。當(dāng)調(diào)用插件軟件接口“IY”(即應(yīng)用軟件請求插件軟件的服務(wù))時,插件軟件將依靠一個或幾個OPA服務(wù)接口“IX”來執(zhí)行該任務(wù)。如圖7A和7B所示,對于回調(diào)模式和全消息模式,這些服務(wù)請求步驟是相同的。
2.取決于希望如何接收結(jié)果,客戶應(yīng)用軟件將執(zhí)行控制返回給OPA(回調(diào)模式310)或者如圖7A和7B中的318所示,通過全消息模式320輪詢消息。
3.平臺組件知道服務(wù)“IX”是為插件軟件執(zhí)行的,會通過調(diào)用插件方法例如根據(jù)322的處理消息方法將結(jié)果返回給插件軟件。插件軟件將來自平臺組件的結(jié)果轉(zhuǎn)換成圖7A所示的消息格式并且將該消息返回給本例中以O(shè)PA 316表示的平臺組件。注意,如果應(yīng)用軟件已向插件軟件指示其僅僅希望以回調(diào)模式接收消息,則此步驟可以省略,這將加速結(jié)果的處理和傳遞。平臺組件知道應(yīng)用軟件等待結(jié)果的消息模式,因此將返回結(jié)果。取決于那種模式有效,至少兩種方案是可能的·如果應(yīng)用軟件處于根據(jù)圖7A的回調(diào)模式310中,則用回調(diào)方法“ICBY_OnService”給出結(jié)果。在此情況下,插件軟件將處理結(jié)果并將其格式化,以便可以使用過程調(diào)用通過棧返回。
·如果應(yīng)用軟件處于根據(jù)圖7B的全消息模式320中,則利用步驟Handle_Message 322中由插件軟件創(chuàng)建的消息來傳遞結(jié)果。當(dāng)插件軟件將結(jié)果以消息格式返回給OPA 316時,OPA反過來將控制從Get_Message返回給應(yīng)用軟件312,從而傳遞該結(jié)果。
使用根據(jù)本發(fā)明原理的插件軟件模型,克服了上述關(guān)于改變移動終端平臺功能的問題。例如,通過使用用于高級功能實現(xiàn)的OPA插件軟件,平臺提供者可提供更精簡和更穩(wěn)定的平臺,該平臺仍然包括視為滿足終端用戶產(chǎn)品需求的基本和/或缺省的平臺功能。這使高級功能的管理更靠近應(yīng)用域、終端用戶產(chǎn)品的制造商以及其他用戶,這是由于提供了作為插件軟件的非標準附加功能,這些功能可根據(jù)相關(guān)的特定產(chǎn)品容易地增加/刪除。
此外,采用本發(fā)明的實施例,第三方開發(fā)者可以將附加功能作為一個或幾個插件軟件實現(xiàn),而無需將涉及平臺代碼庫的專有信息透露給第三方開發(fā)者或其他各方。尤其是,由于插件軟件是應(yīng)用域軟件的實體,第三方開發(fā)者可以選擇僅使用缺省/基本的平臺API。
通過采用如上所述的插件技術(shù),平臺組件的提供者可選擇僅將代碼庫的受控的和指定的部分(即,獨立插件軟件中的一個或幾個)透露給用戶。例如,提供者可以選擇將作為源代碼的插件軟件提供給客戶,客戶隨后可變更并修改插件軟件的代碼,以調(diào)整插件軟件的功能和行為。
通過提供具有更高級功能的多個插件軟件,終端用戶產(chǎn)品制造商或其他方容易擴展平臺組件的功能。同樣,平臺提供者也可以將特定制造商的擴展傳遞給平臺組件,所述擴展不被視為平臺組件所提供的部分基本功能。
通過提供具有擴展功能的多個插件軟件,還容易執(zhí)行平臺組件的“最后時刻”配置,例如用于調(diào)整平臺組件以適應(yīng)不同產(chǎn)品的不同需要,或者在購買時定制終端用戶產(chǎn)品。采用本發(fā)明的實施例,使用平臺組件的終端用戶制造商容易作出是采用平臺提供者插件軟件還是內(nèi)部開發(fā)功能的決定。
如上所述,可能需要產(chǎn)品平臺的更高級功能的一個示例有關(guān)產(chǎn)品特定的功能,例如控制用戶界面觀感的功能。對于具有高級用戶界面的移動終端和其他專用消費品,用戶界面的觀感是市場上產(chǎn)品區(qū)分和定位的關(guān)鍵,并因此對商業(yè)成功而言很重要。因此,希望移動終端和其他產(chǎn)品的平臺在定義產(chǎn)品觀感中提供很多自由度。
窗口系統(tǒng)核心與觀感定義的分離是已得到證明并被廣泛使用的概念。X窗口系統(tǒng)表現(xiàn)出這一點,并且存在使用這種類型的體系結(jié)構(gòu)在相同窗口系統(tǒng)之上建立具有不同觀感的系統(tǒng)的各種示例。另一方面,改變給定實現(xiàn)的觀感的能力是受限制的。
傳統(tǒng)上,Java VM的移植在低級別UI支持上實現(xiàn)。在很大程度上,觀感是通過Java中圖形對象的實現(xiàn)來定義的。MIDP(移動信息設(shè)備簡檔)的引入提出了另一種方法,其中僅在抽象層次上定義圖形對象。觀感由執(zhí)行VM的底層系統(tǒng)定義。如果要實現(xiàn)Java應(yīng)用軟件與在Java VM外執(zhí)行的其他應(yīng)用軟件之間的觀感一致性,可以將相同的圖形對象組用于以上二者。這對于具有已定義觀感的系統(tǒng)而言是直接了當(dāng)?shù)摹?br>
根據(jù)MIDP規(guī)范,移動設(shè)備中的Java VM理想地依賴于它正在其上運行的平臺來提供UI支持。這意味著對于包括Java VM的移動平臺,MIDP支持也應(yīng)該是平臺的一部分。另一方面,對于用于不同廠商的高度描述(highly profiled)的消費品,提供對觀感的最高的可能控制級別是重要的。顯然,最高級別控制是通過控制圖形對象定義來取得的。這兩種對平臺的矛盾要求不能用先前描述的方法滿足。
然而,根據(jù)本發(fā)明的另一個示范實施例,將一組圖形對象和實用程序定義為開放平臺API(OPA)中的一個或多個插件軟件。為了MIDP支持,一個或多個插件軟件的接口必須固定且足夠,但實現(xiàn)方式可隨意改變。
根據(jù)本發(fā)明的原理,可以在本機應(yīng)用軟件和執(zhí)行環(huán)境如Java之間共享高級圖形對象和實用程序的實現(xiàn)。同時,平臺用戶對圖形用戶界面的觀感和行為的控制程度非常高。
雖然所述內(nèi)容構(gòu)成本發(fā)明的示范實施例,應(yīng)該理解,在不脫離本發(fā)明范圍的前提下,可以許多種方式對本發(fā)明進行改動。例如,雖然主要結(jié)合特定移動終端平臺組件來描述本發(fā)明,但這并非為了限制本發(fā)明,因為本發(fā)明也可以用在移動終端和其他產(chǎn)品的其他平臺中。由于可以以許多種方式修改本發(fā)明,應(yīng)該認識到,本發(fā)明僅應(yīng)該僅由所附權(quán)利要求書要求的范圍來限定。
權(quán)利要求
1.一種用于擴展和/或修改產(chǎn)品平臺的功能的系統(tǒng),包括平臺域,其具有軟件服務(wù)構(gòu)件,用于提供功能;以及接口構(gòu)件,其具有至少一個接口,用于提供對所述軟件服務(wù)構(gòu)件功能的訪問,以使應(yīng)用域軟件能夠通過所述至少一個接口在所述平臺中安裝、加載并運行;以及插件軟件,其由所述應(yīng)用軟件使用,以便經(jīng)由所述至少一個接口擴展和/或修改所述平臺域的所述軟件服務(wù)構(gòu)件的功能。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于所述至少一個接口包括應(yīng)用編程接口。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于所述插件軟件包括駐留在所述應(yīng)用軟件的域中的軟件并使用至少所述平臺域和其他插件軟件之一的功能。
4.如權(quán)利要求1或2所述的系統(tǒng),其特征在于所述插件軟件遵從與所述應(yīng)用編程接口所輸出的提供的服務(wù)相同的范例。
5.如權(quán)利要求4所述的系統(tǒng),其特征在于所述提供的服務(wù)包括構(gòu)件模型一致、命名慣例一致、非期望事件處理一致和消息模型一致中的一項或多項。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于所述消息模型包括回調(diào)模式和全消息模式。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于所述插件軟件包括多個插件軟件模塊。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于所述插件軟件包括定義一組圖形對象和實用程序,以定義所述平臺的觀感的插件軟件。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于所述平臺域包括用于無線電信系統(tǒng)移動終端的平臺。
10.用于擴展和/或修改產(chǎn)品平臺的功能的方法,包括提供平臺域,其具有軟件服務(wù)構(gòu)件;用于提供功能;以及接口構(gòu)件,其具有至少一個接口,用于提供對所述軟件服務(wù)構(gòu)件功能的訪問,以使應(yīng)用域軟件能夠通過所述至少一個接口在所述平臺中安裝、加載并運行;提供與所述應(yīng)用軟件一起的插件軟件,用于經(jīng)由所述至少一個接口擴展和/或修改所述平臺域的所述軟件服務(wù)構(gòu)件的功能;以及經(jīng)由所述插件軟件擴展和/或修改所述軟件服務(wù)構(gòu)件的功能。
11.如權(quán)利要求10所述的方法,其特征在于所述插件軟件包括駐留在所述應(yīng)用軟件域中并使用所述平臺域的所述功能的軟件。
12.如權(quán)利要求10所述的方法,其特征在于所述至少一個接口包括應(yīng)用編程接口,并且其中所述插件軟件遵從與所述應(yīng)用編程接口所輸出的提供的服務(wù)相同的范例。
13.如權(quán)利要求12所述的方法,其特征在于所述提供的服務(wù)包括構(gòu)件模型一致、命名慣例一致、異常處理一致和消息模型一致中的一項或多項。
14.如權(quán)利要求13所述的方法,其特征在于所述消息模型包括回調(diào)模式和全消息模式,并且所述應(yīng)用域軟件適于在所述回調(diào)模式和所述全消息模式之間切換。
15.如權(quán)利要求10所述的方法,其特征在于所述插件軟件包括定義一組用于定義所述平臺的觀感的圖形對象和實用程序的插件軟件,并且其中擴展和/或修改所述功能的所述步驟包括改變所述平臺的所述觀感。
16.如權(quán)利要求10所述的方法,其特征在于由所述平臺的提供者的客戶執(zhí)行擴展和/或修改所述功能的所述步驟。
17.如權(quán)利要求16所述的方法,其特征在于所述客戶包括終端用戶產(chǎn)品制造商。
18.如權(quán)利要求10所述的方法,其特征在于由簽約改變所述功能的第三方執(zhí)行擴展和/或修改所述功能的所述步驟。
19.如權(quán)利要求10所述的方法,其特征在于擴展和/或修改所述功能的所述步驟包括在所述平臺的所述軟件服務(wù)構(gòu)件中添加或刪除功能。
20.如權(quán)利要求10所述的方法,其特征在于所述平臺域包括用于無線電信系統(tǒng)的無線終端的平臺。
21.如權(quán)利要求10所述的方法,其特征在于通過下載應(yīng)用軟件和/或一個到幾個插件軟件來執(zhí)行修改所述功能的所述步驟。
全文摘要
用于擴展和/或修改產(chǎn)品如無線電信系統(tǒng)移動終端的平臺的功能的方法和系統(tǒng)。該系統(tǒng)包括平臺域,該平臺域具有軟件服務(wù)構(gòu)件,用于提供功能;接口構(gòu)件,其具有至少一個接口,用于提供對軟件服務(wù)構(gòu)件的訪問,以使應(yīng)用軟件能夠經(jīng)由所述至少一個接口在平臺中安裝、加載并運行。該系統(tǒng)還包括與應(yīng)用軟件共同使用的插件程序,用于經(jīng)由至少一個接口擴展和/或修改平臺域的軟件服務(wù)構(gòu)件的功能。
文檔編號H04Q7/32GK1685751SQ03822474
公開日2005年10月19日 申請日期2003年9月22日 優(yōu)先權(quán)日2002年9月23日
發(fā)明者B·比耶爾, M·丹尼爾松, J·漢松, C·T·樂, H·斯文松 申請人:艾利森電話股份有限公司