專利名稱:創(chuàng)建基于無線應用程序的組件并與之通信的系統(tǒng)和方法
技術領域:
本申請涉及無線通信,特定涉及用于移動通信裝置的軟件。
背景技術:
當今使用的移動通信裝置的數目不斷增加,例如移動電話、具有無線通信能力的PDA、和雙向尋呼機。運行在這些移動通信裝置上的軟件應用程序增加了它們的實用性。例如,一部移動電話可以包括檢索用于一個城市范圍的氣候的應用程序,或一個PDA可以包括使得使用者選購雜貨的應用程序。這些軟件應用程序利用了這些裝置的移動性及對于無線網絡連接性的優(yōu)點,以便提供及時和有用的服務至用戶,不需要考慮該用戶的所在位置。但是,由于例如存儲器的移動通信裝置資源的局限以及把數據無線地提供至移動通信裝置的復雜性,開發(fā)針對移動通信裝置的應用程序依然是困難和耗時的任務。
當前,移動通信裝置被配置用于通過基于互聯網的瀏覽器和/或本機應用程序與Web服務通信。瀏覽器具有能適于在跨平臺基礎上針對各種不同裝置操作的優(yōu)點,但缺點是從Web服務請求頁面(HTML屏幕清晰度),這種缺點將妨礙包括在該屏幕中的數據的暫留性。瀏覽器的另一缺點是該屏幕在運行時間呈現,這將會是資源的嚴重占用。本地應用程序具有針對移動裝置平臺的類型被專門開發(fā)的優(yōu)點,從而提供針對每一個運行時環(huán)境相對優(yōu)化的應用程序。但是,本地應用程序具有的缺點是它不是獨立的平臺,因此需要開發(fā)同一個應用程序的多個版本,以及在規(guī)模上相對大,從而重耗了移動裝置的存儲器資源。因此需要具有對于能運行在具有各種運行環(huán)境的網服務客戶機上、又具有降低的移動裝置資源消耗的應用程序。
在此公開的系統(tǒng)和方法提供了一個基于組件的應用環(huán)境,以便克服或至少在一定程度上減輕上述的缺點。
發(fā)明內容
當前的應用程序不能適應于運行在具有各種運行環(huán)境的客戶機上,并且會不希望地消耗太多的移動裝置的資源。瀏覽器是一個應用程序,具有從一Web服務請求頁面(HTML的屏幕清晰度)的一個缺點,這種缺點妨礙了該屏幕中包括的數據的暫留性。瀏覽器的另一缺點是該屏幕在運行時間呈現,這將會是資源的嚴重占用。本機應用程序是當前應用程序的另一實例,具有的缺點是它不是獨立的操作平臺,從而需要開發(fā)同一個應用程序的多個版本,以及在規(guī)模上相對大,因而重耗了移動裝置的存儲器資源。與當前應用程序相反,提供了一個創(chuàng)建并以無線組件應用程序進行通信的系統(tǒng)。該系統(tǒng)包括移動通信裝置,其通過無線網絡、互聯網、和/或可選的消息映射服務通信。每一個無線組件應用程序都具有一系列以結構化定義語言表示的組件以及一組指令,在移動通信裝置之一上由一個組件框架結構執(zhí)行。該組件能夠包括數據組件、顯示組件、消息組件和/或工作流組件的一個或多個。該組件框架結構執(zhí)行在一個應用程序容器中的組件應用程序,該應用程序容器提供了對于普通框架結構服務的接入,該普通的框架結構服務包括通信服務、屏幕服務、暫留服務、接入服務、提供服務以及實用工具服務的一個或者多個。能夠把消息從組件應用程序發(fā)送至該消息映射服務,把該消息轉換為使用應用程序消息映射的該Web服務所需的格式,然后把該消息發(fā)送到Web服務。對該消息的響應能夠被送到該消息映射服務,轉換成由組件應用程序需要的格式,并且發(fā)送到該組件應用程序。
而且,創(chuàng)建及與無線組件應用程序通信的系統(tǒng)還提供一種方法,用于配置和與一個無線組件應用程序通信。該方法包括步驟把無線組件應用程序配置到一個移動通信裝置,并且一個消息映射配置到一個消息映射服務。在某些情況中該方法還能夠包括步驟把一個消息發(fā)送到該消息映射服務,該步驟利用該消息映射把該消息轉換為Web服務需要的格式,并且隨后把該消息發(fā)送到Web服務。該方法還可以進一步包括步驟把一個響應從該Web服務發(fā)送到該消息映射服務,該步驟把該消息轉換為該無線組件應用程序需要的格式,并且把該消息發(fā)送到該無線組件應用程序。
本發(fā)明在此提供一個移動通信裝置,配置來用于提供從一個服務器經過網絡接收的一個組件應用程序的可執(zhí)行版本。該程序具有包括以結構化定義語言表示的元數據描述符的多個組件。該移動裝置包括一個基礎結構裝置,用于執(zhí)行該可執(zhí)行版本;耦合到該基礎結構的一個接口裝置,配置來用于由該裝置的使用者與該可執(zhí)行版本通信;耦合到該基礎結構裝置的一個通信裝置,被配置來用于與該網絡通信;以及一個框架結構裝置,被配置來用于把該可執(zhí)行版本連接到該基礎結構裝置,并且提供用于該可執(zhí)行版本的一個客戶機運行時環(huán)境。
本發(fā)明還公開了一種計算機程序產品,用于提供一個可在移動通信裝置上執(zhí)行的一個組件應用程序的版本。該程序具有包括以結構化定義語言表示的元數據描述符的多個組件。該計算機程序產品包括一個計算機可讀介質;存儲在該計算機可讀介質上的一個組件框架結構模塊,用于把該可執(zhí)行版本連接到包括處理器和相關存儲器的一個裝置基礎結構;以及一個耦合到該組件框架結構模塊的應用程序容器模塊,用于從該元數據描述信息產生該可執(zhí)行版本以及,用于主控該產生的可執(zhí)行版本的一個客戶機運行時環(huán)境。
本發(fā)明還公開了一種方法,提供一個可在移動通信裝置上執(zhí)行的一個組件應用程序的版本。該方法包括步驟經過網絡從一個服務器接收多個組件,該多個組件表示該組件應用程序,該組件包括以一種結構化定義語言表示的元數據描述符;把該元數據描述符加載到該裝置的一個應用程序容器中,本應用程序容器用于主控該程序的一個客戶機運行時環(huán)境;以及從該元數據描述符中產生該可執(zhí)行版本,用于隨后在該裝置的客戶機運行時環(huán)境中執(zhí)行。
本發(fā)明還公開了一種移動通信裝置,配置來用于提供從一個服務器經過網絡接收的一個組件應用程序的可執(zhí)行版本。該程序具有包括以結構化定義語言表示的元數據描述符的多個組件。該移動裝置包括用于操作該移動裝置的裝置基礎結構,該移動裝置包括用于執(zhí)行該可執(zhí)行版本的一個處理器和相關存儲器;耦合到該裝置基礎結構的用戶接口,該裝置基礎結構具有被配置用于與該可執(zhí)行版本通信的輸入裝置和輸出裝置;耦合到該裝置基礎結構的一個通信裝置,被配置用于連接到一個無線收發(fā)機以便與該網絡通信;以及一個組件框架結構,被配置來用于把該可執(zhí)行版本連接到該裝置基礎結構,并且用于提供該可執(zhí)行版本的一個客戶機運行時環(huán)境。
在下面參考附圖作出的詳細描述中,這些和其它特點將變得顯見,其中圖1是一個通信系統(tǒng)的框圖;圖2是圖1的一個移動通信裝置的方框圖;圖3是圖2的一個組件應用程序的方框圖;圖4是圖3的組件框架結構的框圖;圖5是圖2的移動裝置的示例操作的流程圖;圖6是圖1的通信系統(tǒng)的進一步的示例;圖7是使用圖6的一個消息映射服務的信息系統(tǒng)的框圖;圖8是說明操作圖6的通信裝置的一個無線組件應用程序的一個方法的流程圖;以及圖9是圖2移動通信裝置的另一示例的框圖。
具體實施例方式
參考圖1,通信系統(tǒng)10包括移動通信裝置100,用于通過一個耦合的無線網絡102和互聯網絡104與由Web服務器106提供的一個或者多個Web服務交互。當與Web服務器106的Web服務通信時,裝置100分別地發(fā)送與接收請求/響應消息105。通過使用消息標題信息形式的請求/響應消息105以及相關的數據內容,該移動裝置100將操作為該Web服務的Web客戶機,例如從在線商人請求和接收產品報價和有效性。為了滿足適當的請求/響應消息105,Web服務器106通過各種協(xié)議(例如但不局限于HTTP和組件API)與一個應用服務器110通信,以便向該移動裝置的客戶應用程序302(參見圖2)表明相關的商業(yè)邏輯(方法)。類似于調用關于一個對象的方法(或功能),該移動裝置100的應用程序302能夠使用該應用服務器110的商業(yè)邏輯。應該應該認識到到,該移動裝置100可以通過無線網絡102與一個或多個Web服務器106和相關的應用服務器110通信。還應該認識到,該移動裝置100能夠直接耦合到應用服務器110,從而按照期望旁路該Web服務器106。
參考圖2,該移動通信裝置100是例如但不局限于移動電話、PDA、雙向尋呼機或雙模式通信裝置(參見圖9)。該移動裝置100包括通過連接電路218結合到一個裝置基礎結構204的無線收發(fā)機200。該無線收發(fā)機200可在該移動設備100的操作過程中通過例如RF或IR鏈路的適當的無線通道而連接到該無線網絡102,這將使移動裝置100能夠通過無線網絡102彼此通信,并且與外部系統(tǒng)(例如Web服務器106)通信,并且在客戶應用程序302及服務器106、110(參見圖1)之間協(xié)調該請求/響應消息。該無線網絡102支持在連接到無線網絡102的裝置和外部系統(tǒng)之間在請求/響應消息105中的數據發(fā)送。該無線網絡102還可以支持對于在移動通信裝置100和無線網絡102外部的裝置之間的電話呼叫的語音通信。無線網絡102能使用一種無線數據傳輸協(xié)議,例如但不局限于DataTAC、GPRS或CDMA協(xié)議。
再參考圖2,移動裝置100還具有通過連接電路222耦合到裝置基礎結構204的一個用戶接口202,以便與用戶(沒示出)交互。該用戶接口202包括一個或者多個用戶輸入裝置,例如但不局限于QWERTY鍵盤、輔助鍵盤、軌跡輪、輸入筆、及例如LCD屏幕顯示器的用戶輸出裝置。如果該屏幕是觸摸敏感的,則該顯示器還可以用作通過裝置基礎結構204控制的用戶輸入裝置。該移動裝置100的用戶采用該用戶接口202來協(xié)調在按照由一個組件框架結構206的客戶應用程序302使用的系統(tǒng)10(參見圖1)之上的請求/響應消息的消息105,在下面將進一步描述。
再參考圖2,通過裝置基礎結構204啟動移動通信裝置100的操作。裝置基礎結構204包括一個計算機處理器208和相關存儲器模塊210。通過執(zhí)行由操作系統(tǒng)以及放置在存儲器模塊210中的客戶應用程序302提供的相關指令,計算機處理器208控制該無線收發(fā)機200、該用戶接口202和移動通信裝置100的組件框架結構206的操作。應該進一步認識到,裝置基礎結構204可以包括耦合到處理器208的計算機可讀存儲介質212,用于把指令提供到處理器和/或將客戶應用程序302加載/更新到該存儲器模塊210中。計算機可讀介質212可以包括硬件和/或軟件,例如只舉例來說有磁盤、磁帶、光可讀介質,例如CD/DVD、ROMS以及存儲卡。在每種情況下,該計算機可讀介質212都可以采取小盤、軟盤、盒帶、硬盤驅動器、固態(tài)存儲卡、或提供在存儲器模塊210中的RAM的形式。應該指出,上述列出實例計算機可讀介質212能被單獨或組合使用。
再參考圖2,移動裝置100的組件框架結構206由連接電路220被耦合到裝置基礎結構204。因此,組件框架結構206提供用于一個客戶應用程序302的本機客戶機運行時環(huán)境,并且是對于移動裝置100的處理器功能和一個裝置基礎結構204的相關操作系統(tǒng)的一個接口。該組件框架結構206最好是通過在移動裝置100上提供一個受控、安全和穩(wěn)定的環(huán)境來提供該運行時環(huán)境,其中以一個應用程序容器300執(zhí)行該組件應用程序302。該應用程序容器300可以稱為用于該客戶應用程序302的一個智能主控容器,并且能夠負責用于分析消息元數據(該消息105--參見圖1)并且用于更新在存儲器模塊210中的元數據的表示。
該組件框架結構206還把框架結構服務304(例如但不局限于通信、屏幕、數據暫留、安全性的普通服務的一個標準設置)提供到該客戶應用程序。應用程序302具有與該應用程序容器300的通信,協(xié)調通信216與該框架結構服務304。組件框架結構206的框架結構服務304協(xié)調通過該連接電路220與該裝置基礎結構204的通信。因此,由該組件框架結構206把對于裝置基礎結構204、用戶接口202和無線收發(fā)機200的接入提供到客戶應用程序302。此外,該客戶應用程序302可以是適當抗病毒的客戶應用程序,因為該應用程序容器300能夠控制及生效該組件框架結構206的該客戶應用程序302的往返通信214、216的全部接入。應該認識到,該裝置基礎結構204的操作系統(tǒng)的一部分(參見圖2)能夠表示該應用程序容器300。
再參考圖2,組件框架結構206的客戶機運行時環(huán)境最好能夠產生、主控并執(zhí)行來自元數據定義的該客戶應用程序302(,該客戶應用程序302是組件應用程序的形式-參見下面的描述)。另外,該組件框架結構206的具體功能可以包括對于語言的支持、協(xié)調存儲分配、連網、在I/O操作過程中的數據管理、通過裝置基礎結構204的接口202的輸出裝置上的坐標制圖及提供對核心對象定向分類和支持文件/庫。由組件框架結構206實現的運行時環(huán)境的實例可以包括例如但不局限于由微軟(Microsoft)公司提供的公用語言運行時間(CLR)和Sun Microsystems公司提供的Java運行時環(huán)境(JRE)。該組件框架結構206的運行時環(huán)境支持在該移動裝置100上的客戶應用程序的基本功能,不局限地包括例如提供把消息105發(fā)送到Web服務器106的Web服務的通信能力(參見圖1);由在輸入裝置上的用戶提供數據輸入的能力,以便提供該Web服務器106的的出行消息105(到服務的消息)(參見圖1);在輸出裝置上提供對于服務響應(輸入信息)或Web服務器106的不相關提示(參見圖1)的數據表示或輸出能力;提供數據存儲器服務,把本地客戶機數據保持在存儲器模塊210中;以及提供用于一種腳本語言的執(zhí)行環(huán)境,以便協(xié)調客戶應用程序302的應用程序組件408(參見圖3)的操作。
因此,參考圖2,組件框架結構206被用于執(zhí)行在運行時環(huán)境中的客戶應用程序302(Web服務客戶機應用),并且支持通過請求/響應消息105對Web服務器106的Web服務操作以及相關應用服務器110(參見圖1)的接入。該組件應用程序302包括由組件框架結構206執(zhí)行的軟件應用程序。每次執(zhí)行該組件應用程序302,該組件框架結構206都產生用于該應用程序302的每個組件(例如400、402、404、406--參見圖3)的應用程序容器300。該應用程序容器300加載該應用程序302的組件(例如400、402、404、406)并且能夠創(chuàng)建由在裝置基礎結構204中的處理器208執(zhí)行的本機代碼。該組件框架結構206因此提供該主應用程序容器300,提供用于例如組件400、402,、404、406的定義,以便創(chuàng)建具體用于通信裝置100的分別裝置基礎結構204的每一個的實際Web客戶機。
參考圖3,組件應用程序302的框圖包括數據組件400、顯示組件402和/或消息組件404,這些組件通過通信214由工作流組件406與應用程序容器協(xié)調數據組件400定義由組件應用程序302使用的數據實體。數據組件400可以描述的數據實體的示例有用戶及財務事務處理。數據組件400定義為了描述該數據實體所要求的信息以及表達的信息格式。舉例而言,該數據組件400可以定義例如但不局限于包括針對格式化為數字的訂單的唯一標識符的一個訂單,被格式為字串的項目的一個列表,具有日期-時間格式的訂單被創(chuàng)建的時間,被格式化為字符串的訂單狀態(tài),以及發(fā)出該訂單的一個用尸,該訂單被根據該數據組件400的另一定義而格式化。
該消息組件404定義由組件應用程序302使用的消息格式,以便與例如Web服務106的外部系統(tǒng)通信。舉例而言,該消息組件404之一可以描述例如但不局限于一個用于發(fā)出訂單的消息,該訂單包括用于該訂單的唯一標識符、訂單的狀態(tài)以及與訂單相關的注釋。
該顯示組件402定義了當組件應用程序由用戶接口302顯示時該組件應用程序的外觀及行為。顯示組件402能夠規(guī)定GUI屏幕和控制,以及當用戶使用該用戶口202與該組件應用程序302交互時將被執(zhí)行的動作。例如,該顯示組件402可以限定屏幕、標號、編輯框、按鈕和菜單,以及當用戶鍵入一個編輯框或按下一個按鈕時將要采取的動作。
該組件應用程序302的工作流組件406限定了當將執(zhí)行一個操作時發(fā)生的處理,例如由如上所述的顯示組件規(guī)定的一個操作、或當消息105(參見圖1)從系統(tǒng)10到達時將被執(zhí)行的一個操作。通過工作流組件406定義屏幕工作流及消息處理。該工作流組件406被以程序設計語言或一種腳本語言,例如但不局限于ECMAScript腳本語言寫成,并且如所述的那樣能夠被編譯成本機代碼并由應用程序容器300執(zhí)行。工作流組件406的一個示例可以是對于數據的分配值、管理屏幕或發(fā)送一個消息105。
應該認識到在上述客戶機組件應用程序302定義主控模式中,顯示組件402(參見圖3)可以根據裝置100(參見圖1)的客戶機平臺和環(huán)境改變。例如,某些情況下,Web服務用戶不要求一個可見的顯示。該組件應用程序302的組件400、402、404、406的應用定義可以被主控在一個Web服務注冊表中,作為平臺-中性數據400、消息404、具有針對各種預定客戶機運行時間的一組平臺-專用顯示組件402描述符的工作流406組件描述符的一個集束(即具體的組件框架結構206)。當發(fā)出該發(fā)現或配置請求消息105時(參見圖1),該客戶機類型應該被規(guī)定作為這一請求消息105的一部分。為了在針對該通信裝置100的不同客戶機平臺打包組件應用程序302的同時能夠避免復制數據、消息及工作流元數據,應用程序定義可在該應用服務器110(例如)上被主控作為與顯示組件403a、403b、403c的不同設置鏈接的平臺-中性組件定義的一個集束。當用戶作出發(fā)現或下載請求消息105時,該通信裝置100的客戶機運行時間類型被確認并且配置適當的集束,由該Web服務器106經過無線網絡102傳遞到裝置100。某些情況下,工作流組件406也可以按照專門平臺顯示來管理和配置;以這種方式,具體平臺的公知處理能力可被擴展,提供用于該具體平臺的更高效和/或增強的組件應用程序302。
因此,參考圖3,客戶應用程序302能夠被定義為一組平臺中性的組件定義,指定作循環(huán)數據組件400和消息組件404以及使用XML的顯示組件402(或任何其它適當的結構化定義語言)。工作流組件406能夠使用ECMAScript(或任何其它適當的平臺中性腳本語言)定義。當該組件應用程序302的組件400、402404、406組件被提供在通信裝置100上時,框架結構206的客戶機運行時環(huán)境(參見圖2)能夠產生基于如下描述的基于元定義的組件模板。利用一大類的終端運行時環(huán)境,例如XML或ECMAScript的跨平臺標準可用于定義元數據而不是預先構建該組件應用程序302。這種延遲的約束能夠使得該組件應用程序302的普通應用程序的定義被運行于由各種不同通信裝置100表示的各種終端系統(tǒng)環(huán)境上。
使用XML或其衍生物表示該數據組件400、消息組件404和顯示組件402,以及使用該ECMAScript語言或其子集表示工作流組件406,能夠使得一個應用程序開發(fā)者從任意專用平臺或環(huán)境中提取該Web服務客戶機,并且原則上執(zhí)行″一次生成而各處運行″的應用程序。下面的示例示出了能夠使用例如但不局限于XML的一個結構化定義語言以及例如但不局限于ECMAScript的操作平臺中性腳本/程序設計語言定義組件來表示一個Web服務客戶應用程序302的方式示例XML數據細件400<dataname=″Order″>
<item name=″orderld″type=″Number″key=″true″/>
<item name=″items″type=″String″array=″true″/>
<item name=″user″true″compName=″User″/>
<item name=″orderStatus″type=″String″/>
</data>
…示例XML消息組件404<msg name=″ordConfirmation″type=″response″action=″mhConfirmation″>
<part name=″orderld″type=″String″/>
<part name=″status″type=″String″/>
</msg>
…示例XML顯示組件402<screenname=″scrConfinnation″title=″OrderConfirmation″param=″Order″>
<layouttype=″vertical″>
<widget type=″label″value=″Order Confirmaton Result″/>
<widgettype=″edit″value=″@commat;Order.orderStatus″/>
</layout>
…<menu>
<item label=″Continue″navigate=″@scrMain″/>
…</menu>
</screen>
…示例ECMAScript工作流組件406<actions>
<function name=″mhConfirmation″>
key=ordConfirmation.orderId;order=Order.get(key);order.orderStatus=ordConfirmation.status;
scrConfirmation.display(order);</function>
…</actions>
參考圖4,應用程序302的上述組件400、402、404、406一旦提供在通信裝置100上,則由組件框架結構206的應用程序容器300給出接入到框架結構服務304的預定組??蚣芙Y構服務304例如非限定地包括通信服務306、屏幕服務308、暫留服務310、訪問服務312、提供服務314和實用工具服務316。
參考圖1和4,通信服務306管理在組件應用程序302和外部系統(tǒng)10,例如Web服務106之間的連接。例如,代表組件應用程序302得通信服務306把消息105送到Web服務106。通信服務306還從Web服務106接收該消息105的數據并且把該數據提供到組件應用程序302。該通信服務306接收的數據可以包括對于該組件應用程序302的作出的請求的同步響應以及由該Web服務106推到該移動通信裝置100的異步數據。該通信服務306還管理在該移動通信裝置100從無線網絡102斷開時的連接。當在不由無線網絡102覆蓋的一個區(qū)域中時、或在該無線收發(fā)機被禁用時,該移動通信裝置100從該無線網絡斷開。當該移動通信裝置100是在斷開狀態(tài)中時,由該組件應用程序302發(fā)送的消息可由該通信服務306列隊,并且一旦該移動通信裝置100被重新連接到該無線網絡102時則送出。
再參考圖1和4,屏幕服務308管理當組件應用程序被顯示器在用戶接口202的顯示器裝置上時的可見顯示(參見圖2)。該可見顯示可以包括圖像、圖形用戶接口(GUI)控制以及窗口、和文本。該屏幕服務308管理一個屏幕椎棧,該椎??刂屏擞脩粼谘b置基礎結構204的輸出裝置上看到的內容。
再參考圖1和4,暫留服務310使得組件應用程序302在該裝置基礎結構204的存儲器模塊210(參見圖2)中存儲數據。暫留服務310以透明方式把數據庫操作提供到組件應用程序302。另外,組件框架結構206的運行時環(huán)境促進了對于該消息105的元數據(即XML數據)內容執(zhí)行操作,從而提供了數據的暫留。
再參考圖1和4,接入服務312提供該組件應用程序302對于出現在該移動通信裝置100上的其它軟件應用程序的接入。例如,該接入服務312可以使得該組件應用程序302,例如但不局限于接入一個軟件應用程序,以便送出電子郵件、設置電話呼叫或接入存儲在存儲器模塊210中的聯系信息(參見圖2)。能夠以可靠的在通信裝置100上提供對于其它軟件應用程序的接入。該接入服務312還使得提供提供在移動通信裝置100上的軟件應用程序接入該組件應用程序302。應該認識到,其它軟件程序可以是該裝置基礎結構204的操作系統(tǒng)的一部分(參見圖2)。
再參考圖1和4,該提供服務314在管理該移動通信裝置100上的軟件應用程序的提供。應用程序提供包括請求并接收新的及更新的組件應用程序302,配置用于接入到可通過無線網絡102接入的服務的組件應用程序302,修改組件應用程序302和服務的配置,并且刪除組件應用程序302和服務。該提供服務314執(zhí)行為了提供代表組件應用程序302的軟件應用程序所需的步驟。
再參考圖1和4,該組件應用程序302使用該實用工具服務316來實現各種通用任務。例如,該實用工具服務316可以執(zhí)行數據操作,例如把字串轉換至代表該組件應用程序302的不同格式。
應該認識到,通信裝置100的框架結構服務304可以把包括上述服務的功能提供到組件應用程序302。結果是,該組件應用程序302可以具有對于通信裝置100的功能的接入而不必實現該功能。由于該框架結構服務304提供的功能是存在于大多數無線應用程序中的核心功能,所以每一個當前可利用的硬編碼的無線應用程序都不期望地包含為實現上述服務的某些或全部的代碼。例如,如果在一個通常移動裝置上有十個硬編碼的無線應用程序,則當前已知技術將指令可能的同一個代碼的十個拷貝用于執(zhí)行例如顯示GUI或接入無線網絡的服務。
相比之下,移動通信裝置100的組件框架結構206(參見圖2)最好只有實現出現于該框架結構服務304中的這些服務的代碼的一個拷貝,與出現的組件應用程序302的數量無關。由于該框架結構服務304的編碼復制被最小化,所以與當前可利用的硬編碼的應用程序比較,能夠降低該組件應用程序302的規(guī)模。因此該組件應用程序302能夠消耗較少的存儲器,并且能夠要求很少的時間來通過無線網絡102發(fā)送。這將能夠優(yōu)化該組件應用程序302,以便使用在通常在存儲器和處理能力方面受限的該移動通信裝置100上。此外,軟件應用程序的開發(fā)不需要花費時間和努力來實現由組件框架結構206的框架結構服務304提供的任何功能。
該組件框架結構206的客戶機運行時間加載該組件400、402、404、406定義中包含的元數據,并且通過應用程序容器300在該通信裝置100上建立該應用程序302的可執(zhí)行版本。例如,有兩種用于客戶機運行時間的操作模式基于模板的本機執(zhí)行和基于元數據執(zhí)行。利用基于模板的本機執(zhí)行模型,該運行時間主控該數據、消息、及使用本機代碼預先建立在通信裝置100上的屏幕模板。當加載應用程序302的定義時,由組件框架結構提供的客戶機環(huán)境以來自該組件400、402、404的元數據限定參數填充該模板,并且以本機格式建立可執(zhí)行客戶應用程序302。工作流組件406的該工作流腳本(例如ECMAScript)能夠被轉換成本機代碼,或使用對于本機代碼重定向器一個編譯程序(例如ECMAScript到本機代碼)執(zhí)行,其中該重定向器把對于該腳本語言的呼叫編譯成對于本機組件的操作。隨著基于元數據執(zhí)行,組件框架結構206格式化例如運行時環(huán)境或被保持以在執(zhí)行時間期間解析的例如XML的格式的一個顯示中的組件400、402、404、406定義,或是使用XML(例如)節(jié)點的本機顯示。在執(zhí)行過程中,本機運行時間引擎操作該組件400、402、404、406的定義,而不是操作本機組件實體。應該認識到,該基于模板的方案能有超過基于元數據執(zhí)行的更高的能效,但會要求更復雜的執(zhí)行環(huán)境和更多的存儲器資源。
在每一個組件應用程序302被裝入到該移動通信裝置100上以前,工作流組件406能夠被編譯成本機代碼或例如Java語言字節(jié)碼的一個中間形式。該中間形式被隨即被在該移動通信裝置100上轉換成本機代碼。在工作流組件406被裝載到該移動通信裝置100之前編譯該工作流組件406,能夠有助于保證該包括工作流組件406的編碼僅以一個等級在該移動通信裝置100上解譯。另外,工作流組件406可被裝載到移動通信裝置100上,作為以翻譯語言編寫的代碼,在其被轉換成本機代碼之前由在該移動通信裝置100上由一個解釋程序處理。工作流組件406可以另外由以任何編譯或翻譯的語言寫成的代碼配置。
為了創(chuàng)建具有對上述結構服務304接入并利用操作在一個移動環(huán)境中以便將實用工具提供到用戶的好處的一個組件應用程序302,一個應用程序開發(fā)者能夠產生如上所述組件。能使用標準技術,包括用于數據組件400的可擴展Marlcup語言(XML)、顯示組件402消息組件404以及用于工作流組件406的ECMAScript。然后通過組件框架結構206在一個應用程序容器300中執(zhí)行該組件,使用上述的框架結構服務執(zhí)行工作流組件406并解釋該顯示組件402、數據組件400和消息組件404。這種應用程序開發(fā)模式促進應用程序員所需的專門技術的最小化并且最小化該移動通信裝置100的創(chuàng)建軟件應用程序所需要的時間。此外,一旦已經創(chuàng)建了各種組件,則它們可在多個組件應用程序302中被重新使用,進一步促進開發(fā)。
參考圖1和5,其示出該組件應用程序302模型的操作800。通過經網絡102發(fā)送請求消息105,移動裝置100的用戶聯絡并且隨后從Web服務請求該選擇的應用程序302(802)。該適當的Web服務器106把該請求消息105引導到該適當的應用服務器110,并且隨后經網絡102把該響應消息105中的一組組件定義送到該移動裝置100(804)。響應消息105包括數據組件400、消息組件404、顯示組件402的一系列組件應用程序302(參見圖3),包括以例如但不局限于XML的一種結構化定義語言表示的元數據描述符。該響應消息105還包括工作流組件406,包括以例如但不局限于ECMAScript的編程/腳本語言表示的描述符。該移動裝置裝置100通過組件框架結構206(參見圖2)提供用于該應用程序302的運行時環(huán)境(806),并且使用一個執(zhí)行模型提供該應用程序302的組件400、402、404、406定義(808),以便在該移動裝置100上創(chuàng)建針對該聯系的Web服務的對應Web客戶機。該提供的應用程序302使用該框架結構服務304(參見圖2)來協(xié)調在網絡102上通過消息105對于移動裝置100的接入。移動裝置100的用戶通過該用戶接口202與提供的應用程序302交互。
由于該組件應用程序302可被使用沒有示出的一個集成開發(fā)環(huán)境(IDE)直觀創(chuàng)建,所以上述的組件應用程序模型進一步促進無線應用程序的開發(fā)。該IDE是一種軟件應用程序,使得一個應用程序開發(fā)者使用GUI快速創(chuàng)建上述組件,該GUI為該開發(fā)者提供一個組件的直觀顯示。顯示組件402、數據組件400和消息組件404以一種樹結構瀏覽顯示。開發(fā)者拖放這些組件,以便把它們加到該組件應用程序302。表示顯示組件402的圖標被點擊以開啟一個編輯程序來設計該顯示組件402。在顯示組件402之間的鏈接被直觀顯示,并且被點擊以編輯定義屏幕工作流的工作流組件406。使用一個接口設計顯示組件402,該接口包括其上運行組件應用程序302的該移動通信裝置100的一個顯示。顯示選單選項,并且點擊該選項以限定當該選單選項被選擇時執(zhí)行的工作流組件406。消息組件404能被直觀地映射到數據組件400。消息組件404也可直觀地與一個Web服務106消息相關,并且能夠根據例如以WSDL定義的Web服務106消息創(chuàng)建一個消息組件404。
參見圖6和7,系統(tǒng)10的進一步的實例包括使用信息映射服務108的信息系統(tǒng)。還示出關于Web服務器106、通信服務306、組件框架結構206以及移動通信裝置100的Web服務。為簡化起見,沒有示出其它單元。
該無線網絡102被連接到互聯網絡104,使得該移動通信裝置100能夠把消息107的數據傳輸至連接到該互聯網絡104的系統(tǒng)。在無線網絡102和互聯網絡104之間的連接包括一個互聯網絡網關(沒示出),其使數據能夠從連接到該無線網絡102的裝置,例如移動通信裝置100取道流向連接到該互聯網絡104,例如Web服務的系統(tǒng)。
該Web服務器106上的Web服務提供在該移動通信裝置100上由軟件應用程序302(參見圖2)使用的信息。另外或作為一種選擇,該Web服務可以接收并且使用在本移動通信裝置100上由軟件應用程序提供的信息,或在該移動通信裝置100上執(zhí)行代表軟件應用程序的任務。該Web服務實現在該移動通信裝置100上的具有軟件應用程序302的一個接口,該接口可使用Web服務描述語言(WSDL)表示,并且使用例如簡單對象訪問協(xié)議(SOAP)的一個適當的通信協(xié)議與客戶機系統(tǒng)通信。另外,該Web服務可以使用其它已知的協(xié)議。
Web服務是一個系統(tǒng)的示例,利用該系統(tǒng)使移動通信裝置100上的軟件應用程序通過無線網絡102與互聯網絡104交互,以便把該實用工具提供到移動通信裝置100的使用者。在移動通信裝置100和Web服務之間發(fā)送的消息107完成該消息映射服務108。該消息映射服務108把消息107從由在該移動通信裝置100上的軟件應用程序可用的格式轉換為由該Web服務要求的格式,從而產生消息105。一旦來自移動通信裝置100之一的該消息107被轉換成適當的格式,則該消息映射服務108將把該消息105發(fā)送到Web服務。類似地,一旦來自Web服務的消息或響應被轉換成要求的格式,則該消息映射服務108將把該消息107發(fā)送到該移動通信裝置100。將以圖7更詳細地描述該消息映射服務108。
參見圖7,為了與該Web服務交互以便交換信息,該組件應用程序302(參見圖2)使用通信服務306經由該無線網絡102和互聯網絡104發(fā)送一個無線消息502。例如,根據以組件應用程序302定義的該消息組件404(參見圖3)之一格式化該無線消息502。為了接入該Web服務,使用例如一個SOAP消息504。為了解析不同的信息類型,該消息映射服務108接收該無線消息502,配置該對應的SOAP消息504,并且使用該適當的SOAP協(xié)議經由互聯網絡104把該SOAP消息504發(fā)送到在Web服務器上的Web服務。類似地,使用SOAP把由該Web服務產生的響應消息504經由該互聯網絡104發(fā)送到該消息映射服務108,將其轉換成根據該消息組件404之一的對應的無線消息502,并且送到該移動通信裝置100,其中由代表組件應用程序302的通信服務306接收。
再參考圖7,該消息映射服務108包括針對每一個組件應用程序302的一個應用程序消息映射500(參見圖2)。該應用程序消息映射500定義了從該組件應用程序302接收的每個無線消息502被轉換成例如SOAP消息504的對應Web服務消息的方式,以及從將被送到該組件應用程序302的Web服務接收的例如SOAP消息504的每一個Web服務消息是轉換成對應無線消息502的方式。如上所述,每一無線消息502都能根據在該組件應用程序302中的一個消息組件404而被格式化,同時每一個Web服務消息(例如SOAP消息504)都能夠根據這Web服務的定義而被格式化。該消息映射500規(guī)定了以該定義限定的哪個信息對應于以該應用程序302的消息組件404定義的信息。這些定義能夠被以例如WSDL的一個適當的格式編碼。這一映射被隨后用于在該兩種格式之間的消息502、504的轉換。
應該認識到,不需要把SOAP消息504中的全部信息都映射到對應的無線消息502中的信息。例如,在從無線消息502到SOAP消息504的轉換中,該應用程序消息映射500可以規(guī)定缺省值來在該SOAP消息504中提供在該無線消息502中沒有對應的信息之處。類似地,在從SOAP消息504轉換成無線消息502時,其在該無線消息502中沒有對應定義的SOAP消息504中的信息被拋棄。因此,被包括在來自不由該組件應用程序302使用的Web服務的響應中的信息可以不經該無線網絡102發(fā)送。類似地,在發(fā)送到屬于是每次都由組件應用程序302送出的相同消息的SOAP消息504中需要的信息被缺省,以使不在無線網絡102上發(fā)送冗余信息。結果是,能夠在無線網絡102上少發(fā)送數據,降低無線網絡102的阻塞,并且能夠降低在該移動通信裝置100上為處理該消息502所需的資源量。
因此,該消息映射服務108能夠使組件應用程序302與Web服務集成而無需具有在該移動通信裝置100上執(zhí)行Web信息服務協(xié)議(例如SOAP)。該組件應用程序302也不需要由Web服務使用的格式消息502,或為了與現有的Web服務106集合而執(zhí)行任何其它附加處理。
作為使用該消息映射服務108的選擇,可由通信服務306把消息502、504映射在該移動通信裝置100上。在此示例中,具有Web信息服務協(xié)議的軟件,例如具有SOAP協(xié)議定義的kSOAP被安裝在該移動通信裝置100上,使得該通信服務306能夠與Web服務106直接通信。實際上,該消息502的翻譯發(fā)生在該移動裝置100之處,而不是使用一個中間第三方來執(zhí)行該消息映射服務108。
圖8是一個流程圖,示出配置及與無線組件應用程序600通信的一個方法。該無線組件應用程序600是如上所述的組件應用程序302,包括數據組件400、顯示組件402、消息組件404和工作流組件406(參見圖3)。
參見圖6和8,該方法在步驟602開始,其中無線組件應用程序600被配置到該移動通信裝置100。該無線組件應用程序600經過該無線網絡102發(fā)送到移動通信裝置100。另外,該無線組件應用程序600可經過串行連接電路、USB鏈路、或如BluetoothTM或802.11網絡(沒示出)的短程通信系統(tǒng)裝載到該移動通信裝置100上。
再參考圖6及8,本方法以步驟604繼續(xù),配置該應用程序消息映射108。如上所述,該應用程序消息映射108被用于把消息從該無線組件應用程序600使用的格式轉換為與該無線組件應用程序600正在通信得Web服務所需的格式。應用程序消息映射500(參見圖7)被配置到可經該互聯網絡104接入的專用消息映射服務108。另外,該應用程序消息映射108可被直接配置到移動通信裝置100。步驟606在該移動通信裝置100上執(zhí)行該無線組件應用程序600。如上所述,在該移動通信裝置100上該應用程序結構206(參見圖2)創(chuàng)建該應用程序容器300并且執(zhí)行該應用程序容器300中的無線組件應用程序600,提供該無線組件應用程序600對框架結構服務304的接入。
再參考圖6和8,一旦在該移動通信裝置100上執(zhí)行該無線組件應用程序600,該方法則以步驟608繼續(xù),其中確定該無線組件應用程序600是否希望把該無線消息502送到外部Web服務。該無線組件應用程序600把消息502發(fā)送到該Web服務以便從Web服務請求數據,把數據傳送到該Web服務或請求該Web服務執(zhí)行代表該無線組件應用程序600的一個操作。在確定該無線組件應用程序600沒有更多的消息502送出的場合,該方法終止于步驟610。否則,該方法以步驟612繼續(xù),配置發(fā)送的消息502。根據在該消息組件404(參見圖3)之一中定義的格式由該通信服務構建該消息502。該通信服務隨后經過無線網絡102發(fā)射該消息502。
再參考圖6和8,在步驟614,該消息映射服務108通過無線網絡102和互聯網絡104接收該消息502。該消息映射服務108隨后使用在步驟604配置的應用程序消息映射500把該消息502轉換成SOAP格式。該應用程序消息映射500指定由該Web服務要求的SOAP格式的哪些部分對應于來自該無線組件應用程序600的該消息502的每一部分。在步驟616,該轉換的消息504被隨后使用該SOAP協(xié)議經過該互聯網絡104發(fā)送到該Web服務。做為選擇,在步驟614,可以使用放置在移動通信裝置100上的應用程序消息映射500把該消息502轉換成SOAP格式,并且隨后在步驟616使用kSOAP協(xié)議通過無線網絡102和互聯網絡104直接發(fā)送到Web服務。
再參考圖6和8,一旦該消息由該Web服務接收,該方法以步驟618繼續(xù),其中該Web服務構建對于該消息504的響應。通過互聯網絡104將SOAP格式的響應發(fā)送到該消息映射服務108,其中以步驟620把SOAP格式轉換成該無線組件應用程序600需要的無線格式502。該需要的無線格式被以包括在該無線組件應用程序600中的該消息組件404之一限定(參見圖3)。該消息映射服務108隨后以步驟622通過互聯網絡104和無線網絡102把該響應發(fā)送到無線組件應用程序600。另外,該Web服務可以把該SOAP響應消息504直接發(fā)送到移動通信裝置100,其中該SOAP響應消息504在步驟620使用駐留在移動通信裝置100上的該應用程序消息映射500被轉換成要求的格式。該轉換消息502隨即在步驟622被給出到該無線組件應用程序600。隨后以步驟608繼續(xù)該方法,其中確定是否有更多的消息502將被送出。如果不再有消息502,則本方法在步驟610結束。應該認識到,該進行配置和與無線組件應用程序600通信的方法可以包含少于或多于圖8示出的步驟。
圖9是一個雙模式移動通信裝置710的框圖,是圖1和6的裝置100的進一步的示例。該雙模式移動通信裝置710包括收發(fā)機711、微處理器738、顯示器722、閃速存儲器724、RAM存儲器726、輔助輸入/輸出(I/O)裝置728、串行端口730、鍵盤732、揚聲器734、話筒736、短程無線通信子系統(tǒng)740,并且還可包括其它裝置子系統(tǒng)742。收發(fā)機711優(yōu)選地包括發(fā)送與接收天線716及718、接收器712、發(fā)射器714、一個或多個本地振蕩器713及數字信號處理器720。在該閃速存儲器724中,該雙模式移動通信裝置710最好包括能由微處理器738(和/或DSP 720)執(zhí)行的多個軟件模塊724A-724N,包括語音通信模塊724A、數據通信模塊724B、和用于執(zhí)行多個其它功能的多個其它操作模塊724N。
該雙模式移動通信裝置710最好是具有語音及數據通信能力的一個雙向通信裝置。因此該雙模式移動通信裝置710可以例如經過例如模擬或數字蜂窩網絡的任一個的語音網絡進行通信,并且還可以經過數據網絡通信。圖9中以通信塔719示出語音及數據網絡。這些語音和數據網絡可以是分離的通信網絡,使用分離的基礎結構,例如基站、網絡控制器等,或可被集成為單一無線網絡。
該通信子系統(tǒng)711被用于與該語音和數據網絡719通信,并且包括接收器712、發(fā)射器714、一個或多個本地振蕩器713以及也可包括DSP 720。該DSP 720被用于對發(fā)射器714和接收器712的信號接收和發(fā)送,并且也用來從發(fā)射器714接收控制信息以及把控制信息提供到接收器712。如果該語音和數據通信以單一頻率出現,或是緊密間隔的頻率設置,則可以與發(fā)射器714和接收器712結合使用單一本地振蕩器713。另外,如果實現語音通信與對應的數據通信利用的是不同頻率,則可用多個本地振蕩器713產生對應于該語音和數據網絡719的多個頻率。雖然圖9中描述的是兩個天線716、718,但是雙模式移動通信裝置710能被以單個天線結構使用。經由在DSP720和微處理器738之間的鏈路與通信模塊711通信包括語音和數據信息的信息。通信子系統(tǒng)711的詳細設計,例如頻帶、組件選擇、功率電平等,取決于其中要操作雙模式移動通信裝置710的通信網絡719。例如,想要操作在北美市場中的一個雙模式移動通信裝置710可以包括被設計來利用MobitexTM或DataIACTM移動數據通信網絡的一個通信子系統(tǒng)711,并且也可以設計來利用例如AMPS、TDMA、CDMA、PCS等多種語音通信網絡的任何之一操作;而想要使用在歐洲的裝置710可以配置來利用通用無線分組服務(GPRS)數據通信網絡和GSM語音通信網絡來操作。其它類型的分離和集成的數據和語音網絡也同樣可以利用該雙模式移動通信裝置710。
根據單一或幾個網絡719的類型,對于該雙模式移動通信裝置710的接入要求也可能變化。例如,在Mobitex和DataTAC數據網絡中,使用與每一個裝置相關的唯一標識號碼把移動裝置注冊在網絡上,但是網絡接入與一個訂戶或移動裝置的使用者相關。一個GPRS裝置通常要求一個用戶的標識模塊(″SIM″),要求該模塊來在一個GPRS網絡上操作雙模式移動通信裝置??梢圆僮鞅镜丶捶蔷W絡通信功能(如果有的話),無需該SIM,但除了任意法定要求的操作之外,例如911緊急呼叫,一個雙模式移動通信裝置將不能執(zhí)行任何涉及經過數據網絡719的通信功能。
在完成任何要求的網絡注冊或激活處理過程之后,該雙模式移動通信裝置710可以隨即經過網絡719(或幾個網絡)發(fā)送和接收通信信號,包括語音和數據信號二者。由天線716從通信網絡719接收的信號被路由到該接收器712,該接收器712提供信號放大、降頻變換、濾波、信道選擇等,并且還可以提供模擬數字轉換。接收信號的模擬數字轉換實現更復雜的通信功能,例如使用DSP 720執(zhí)行的數字解調和解碼。以一個類似的方式處理將被發(fā)送到網絡719的信號,該處理包括由DSP 720調制和編碼,并且被隨即提供到發(fā)射器714用于數模轉換、上變頻、濾波、放大,并且通過天線718發(fā)送到通信網絡719(或幾個網絡)。雖然圖9示出了單個收發(fā)機711既用于語音通信又用于數據通信,但是該雙模式移動通信裝置710有可能包括兩個不同的收發(fā)機,第一收發(fā)機用于發(fā)送和接收語音信號,第二收發(fā)機用于發(fā)送和接收數據信號。
除了處理該通信信號之外,該DSP 720還提供接收器和發(fā)射器的控制。例如,加到該接收器712和發(fā)射器714的通信信號的增益等級可以通過該DSP 720中執(zhí)行的自動增益控制算法自適應地控制。其它收發(fā)機控制算法還可以在DSP 720中執(zhí)行,以便提供收發(fā)機711的更復雜的控制。
微處理器738最好管理和控制該雙模式移動通信裝置710的總體操作。許多類型的微處理器或微控制器能被使用于其中,或另外單一DSP 720可用于執(zhí)行微處理器738的功能。在收發(fā)機711中通過DSP 720執(zhí)行包括至少數據和語音通信的低級通信。另外,例如語音通信應用程序724A的高級通信應用以及數據通信應用程序724B可被存儲在閃速存儲器724中供微處理器738執(zhí)行。例如,該語音通信模塊724A可以提供一個高級用戶接口,可操作來經由該網絡719在雙模式移動通信裝置710和多個其它語音裝置之間發(fā)送與接收語音呼叫。類似地,該數據通信模塊724B可能提供可操作用于發(fā)送和接收數據的一個高級用戶接口,例如經由網絡719在該雙模式移動通信裝置710和多個其它數據裝置之間發(fā)送和接收例如電子郵件消息、文件、管理器數據、短文本消息等數據。在該雙模式移動通信裝置710中,一個如上所述的組件框架結構206還可以被執(zhí)行作為一個軟件模塊或應用程序,或結合到軟件模塊724A-724N之一中。
微處理器738還與其它雙模式移動通信裝置子系統(tǒng)交互,例如顯示器722、閃速存儲器724、隨機存取存儲器(RAM)726、輔助輸入/輸出(I/O)子系統(tǒng)728、串行端口730、鍵盤732、揚聲器734、話筒736、短程通信子系統(tǒng)740以及任何其它通常被指定為742的雙模式移動通信裝置子系統(tǒng)。
圖9所示的某些子系統(tǒng)執(zhí)行通信相關的功能,而其它子系統(tǒng)可以提供執(zhí)行駐留或在裝置有關的功能。值得注意的是,例如鍵盤732和顯示器722的某些子系統(tǒng)既可用于通信相關的功能,例如經過數據通信網輸入用于發(fā)送的文本消息,又可用于裝置駐留功能,例如計算機或任務列表或其他PDA類型的功能。
由微處理器738使用的操作系統(tǒng)軟件最好被存儲在諸如閃速存儲器724的一個持久存儲器中。除了控制雙模式移動通信裝置710的全部低級功能的該操作系統(tǒng)之外,閃速存儲器724可能包括多個高級軟件應用程序或模塊,例如語音通信模塊724A、數據通信模塊724B、管理器模塊(沒示出)或任何其它類型的軟件模塊724N。閃速存儲器724還可包括為存儲數據的文件系統(tǒng)。這些模塊由微處理器738執(zhí)行,并且提供在雙模式移動通信裝置的用戶和移動裝置之間的一種高級接口。這種接口通常包括通過顯示器722提供的圖形組件,以及通過輔助I/O728、鍵盤732、揚聲器734和話筒736提供的輸入/輸出組件。該操作系統(tǒng),具體地說是雙模式移動通信裝置軟件應用程序或模塊、或其部分,可以臨時裝入到例如RAM 726的一個易失性存儲器中,用于更快地操作。而且,在將接收的通信信號永久地寫入到設置在持久存儲器724之前,接收的通信信號也可以被暫存到RAM726。
可被加載到雙模式移動通信裝置710上的一個示例性應用模塊724N是一種個人信息管理器(PIM)應用程序,提供例如日歷事件、約定以及任務項的PDA功能。此模塊724N也可以與管理電話呼叫、語音郵件等的語音通信模塊724A交互,并且還可以與用于管理電子郵件通信以及其它數據傳輸的數據通信模塊交互。另外,語音通信模塊724A的和數據通信模塊724B的全部功能都可被集成到該PIM模塊中。
該閃速存儲器724最好提供一種文件系統(tǒng)提供,以便促進在雙模式移動通信裝置710上的PIM數據項的存儲。該PIM應用程序最好包括通過該無線網絡719發(fā)送和接收數據項的能力,或是本身或結合該語音和數據通信模塊724A、724B進行數據項的發(fā)送和接收。PIM數據項最好是通過無線網絡719與存儲的或主機系統(tǒng)相關的一個對應組的數據項無縫地集成、同步及更新,藉此創(chuàng)建與具體用戶相關的用于數據項的鏡像系統(tǒng)。
該雙模式移動通信裝置710還可以通過在一個接口框中放置該雙模式移動通信裝置710而手動地與一個主系統(tǒng)同步,該接口框把該雙模式移動通信裝置710的串行端口730耦合到該主系統(tǒng)的串行端口。該串行端口730還可以被用于使得一個用戶能夠通過一個外部裝置或軟件應用程序設置優(yōu)選項,或下載用于安裝的其它應用模塊724N。此有線下載路徑可被用于把一個加密密鑰加載到雙模式移動通信裝置710上,這是比通過無線網絡719交換加密信息更安全的方法。
另外,可通過網絡719、輔助I/O子系統(tǒng)728、串行端口730、短程通信子系統(tǒng)740或任何其它適當的子系統(tǒng)742把應用模塊724N加載到該雙模式移動通信裝置710上,并且由使用者安裝在閃速存儲器724或RAM 726中。在應用程序安裝中的這種靈活性增加了雙模式移動通信裝置710的功能性,并且可以提供增強的在裝置功能、通信相關功能或二者。例如,安全通信應用程序可以使得能夠使用雙模式移動通信裝置710來執(zhí)行電子商務功能和其它這種金融事務處理。
當按照數據通信模式操作該雙模式裝置時,例如文本消息或下載的網頁的一個接收信號將由收發(fā)機711處理并且提供到微處理器738,最好進一步處理該接收信號以便輸出到顯示器722,或也可以輸出到一個輔助I/O裝置728。雖然例如已知的DVORAK形式的完整字母數字鍵盤的其它形式也可被使用,但是雙模式移動通信裝置710的用戶還可以利用最好是以QWERTY形式排列的一個完成的字母數字鍵盤的鍵盤732組成例如電子郵件消息的數據項。利用多個輔助I/O裝置728進一步增強對于雙模式移動通信裝置710的用戶輸入,該輔助I/O裝置728可以包括指輪輸入裝置、觸摸板、各種開關、搖動輸入開關等。由該用戶輸入的組成數據項可被隨后經過通信網絡719由收發(fā)機711發(fā)送。
當該雙模式移動通信裝置710以語音通信模式操作時,該雙模式移動通信裝置710的整個操作基本上類似于該數據模式,只是該接收信號最好被輸出到揚聲器734,并且用于發(fā)送的語音信號是由話筒736產生。另外,例如語音消息記錄子系統(tǒng)的語音或音頻I/O子系統(tǒng)也可被在該雙模式移動通信裝置710上執(zhí)行。雖然最好是主要通過揚聲器734實現語音或音頻信號的輸出,但是也可用顯示器722提供主叫方的標識、語音呼叫的暫留時間或其它語音呼叫相關信息的指示。例如,該微處理器738與語音通信模塊和操作系統(tǒng)軟件結合,可以檢測一個輸入語音呼叫的呼叫者識別信息,并且將該語音呼叫顯示在顯示器722上。
雙模式移動通信裝置710還包括一個短程通信子系統(tǒng)740。例如,該短程通信子系統(tǒng)740可以包括一個紅外裝置和相關的電路與元件,或例如藍牙模塊或802.11模塊的短程無線通信模塊,以便提供與類似啟動的系統(tǒng)和裝置的通信。本領域的技術人員將理解到,″藍牙″和802.11是指可從分別涉及無線個人域網和無線LAN的電氣和電子工程師學會(IEEE)標準得到的多組規(guī)范。
上述的描述涉及一個或者多個示例的系統(tǒng)和方法。對于在本領域中的技術人員來說將明顯有許多變化,并且這種變化是在該應用程序的范圍之內。例如,雖然上述的示例描述能理解的是實現該SOAP協(xié)議的Web服務,但是該Web服務可以是該移動通信裝置可訪問的任何信息源,并且可以實施一個不同的通信協(xié)議。
雖然在此公開的內容已經描繪了一個或者多個示例系統(tǒng)和方法,但是在不背離如所附權利要求概要的本發(fā)明精神范圍的條件下,本領域技術人員顯然將能作出各種改進。
權利要求
1.一種在移動通信裝置上提供組件應用程序的可執(zhí)行版本的方法,該方法包括步驟經過網絡從一個服務器接收多個組件,該多個組件表示該組件應用程序,組件包括以一種結構化定義語言表示的元數據描述符;把該元數據描述符加載到該裝置的一個應用程序容器中,本應用程序容器用于主控該程序的一個客戶機運行時環(huán)境;以及從該元數據描述符中產生該可執(zhí)行版本,用于隨后在該裝置的客戶機運行時環(huán)境中執(zhí)行。
2.根據權利要求1的方法,其中由一個組件框架結構提供該應用程序容器,該組件框架結構把用于該可執(zhí)行版本的接口提供到包括一個處理器和一個存儲器的裝置的基礎結構。
3.根據權利要求2的方法,其中該應用程序容器是該裝置基礎結構的操作系統(tǒng)的一部分。
4.根據權利要求2的方法,進一步包括步驟由該組件框架結構創(chuàng)建一個第二應用程序容器,用于在一個不同的第二客戶機運行時環(huán)境中主控一個第二組件應用程序。
5.根據權利要求2的方法,其中該應用程序容器的客戶機運行時環(huán)境把該可執(zhí)行版本表示為該服務器的一個客戶機。
6.根據權利要求5的方法,進一步包括步驟通過基于模板的執(zhí)行模型執(zhí)行本機代碼的可執(zhí)行版本,該模型若干預定義的模板,配置用于以該組件的元數據描述符進行填充。
7.根據權利要求6的方法,進一步包括步驟利用與該元數據描述符相關的元數據定義參數填充該預定義的模板,并且使用該填充的模板來建立該本機代碼的可執(zhí)行版本。
8.根據權利要求6的方法,其中該預定模板被提供用于從一組組件中選擇的多個組件,該組組件包括;數據組件、消息組件以及顯示組件。
9.根據權利要求5的方法,進一步包括步驟由一個基于元數據的執(zhí)行模型執(zhí)行該可執(zhí)行版本,該模型被配置用于把該元數據定義保持在該結構化定義語言中以便在執(zhí)行過程中進行解析。
10.根據權利要求5的方法,進一步包括步驟由基于元數據的執(zhí)行模型執(zhí)行該可執(zhí)行版本,該模型被配置用于在執(zhí)行過程中使用結構化定義語言節(jié)點的本機表示。
11.根據權利要求5的方法,進一步包括步驟分析由該應用程序容器從該服務器接收的消息數據,并且更新在該裝置的存儲器中的元數據的表示。
12.根據權利要求11的方法,進一步包括步驟通過該應用程序容器監(jiān)控在可執(zhí)行版本和該組件框架結構之間的通信。
13.根據權利要求12的方法,其中該應用程序容器監(jiān)控包括從一組操作中選擇的操作的消息數據的處理;該組操作包括該消息數據的存儲器分配、在I/O過程中的該消息數據的管理、以及在該裝置的用戶接口上的消息數據的顯示。
14.根據權利要求8的方法,進一步包括步驟經過網絡接收該組件應用程序的一個工作流組件,該工作流組件包括一組指令,用于協(xié)調具有以結構化定義語言表示的元數據描述符的組件的操作。
15.根據權利要求14的方法,進一步包括步驟應用程序容器提供用于該組指令的該客戶機運行時環(huán)境。
16.根據權利要求15的方法,其中該可執(zhí)行版本包括從一批指令中選擇的一個可執(zhí)行指令集,該批指令包括轉換成本機代碼的指令,以及使用具有本機代碼重定向器的語言解釋程序解釋的指令。
17.根據權利要求15的方法,其中該結構化定義語言以XML表示,而該指令集以ECMA腳本表示。
18.根據權利要求4的方法,進一步包括步驟把該可執(zhí)行版本耦合到該裝置上的一組普通服務。
19.根據權利要求18的方法,其中該普通服務被預定義為由組件框架結構提供的框架結構服務的一個標準組。
20.根據權利要求18的方法,其中該預定義的框架結構服務是從一組服務中選擇的,該組服務包括通信、顯示、暫留、接入、提供以及實用工具。
21.根據權利要求20的方法,其中該框架結構服務被配置用于與來自多個組件應用程序的組件進行共享。
22.一種移動通信裝置,被配置用于提供從一個服務器經過網絡接收的一個組件應用程序的可執(zhí)行版本,該程序具有包括以結構化定義語言表示的元數據描述符的多個組件,該移動裝置包括用于操作該移動裝置的裝置基礎結構,該移動裝置包括用于執(zhí)行可執(zhí)行版本的處理器和相關存儲器;耦合到該裝置基礎結構的用戶接口,該裝置基礎結構具有被配置用于與該可執(zhí)行版本通信的輸入裝置和輸出裝置;耦合到該裝置基礎結構的一個通信裝置,并且該通信裝置被配置用于連接到一個無線收發(fā)機以便與該網絡通信;以及一個組件框架結構,被配置來用于把該可執(zhí)行版本連接到該裝置基礎結構,并且用于提供用于該可執(zhí)行版本的客戶機運行時環(huán)境。
23.根據權利要求22的移動通信裝置,還包括由該組件框架結構提供的一個應用程序容器,該應用程序容器用于提供用于可執(zhí)行版本的客戶機運行時環(huán)境。
24.根據權利要求23的移動通信裝置,其中該應用程序容器是該裝置基礎結構的操作系統(tǒng)的一部分。
25.根據權利要求23的移動通信裝置,其中該組件框架結構被配置用于多個應用程序容器,用于在分別的客戶機運行時環(huán)境中主控該組件應用程序的不同的之一。
26.根據權利要求23的移動通信裝置,其中該應用程序容器的客戶機運行時環(huán)境把該可執(zhí)行版本表示為該服務器的一個客戶機。
27.根據權利要求26的移動通信裝置,還包括應用程序容器,被配置用于由基于一個模板的執(zhí)行模型以本機代碼執(zhí)行該可執(zhí)行版本,該模型采用若干預定義的模板,被配置用于以該組件的元數據描述符進行填充。
28.根據權利要求27的移動通信裝置,其中該預定義的模板被配置用于以與該元數據描述符相關的元數據定義參數進行填充,并且該填充的模板是被配置用于建立該本機代碼的可執(zhí)行版本。
29.根據權利要求27的移動通信裝置,其中該預定義的模板被提供用于從一組組件中選擇的多個組件,該組組件包括數據組件、消息組件以及顯示組件。
30.根據權利要求23的移動通信裝置,還包括應用程序容器,被配置來通過一個基于元數據執(zhí)行模型來執(zhí)行該可執(zhí)行版本,該模型保持該結構化定義語言中的元數據定義,用于在執(zhí)行過程中進行解析。
31.根據權利要求23的移動通信裝置,還包括應用程序容器,被配置來由一個基于元數據的執(zhí)行模型來執(zhí)行該可執(zhí)行版本,在執(zhí)行過程中該模型使用結構化定義語言節(jié)點的一個本機顯示。
32.根據權利要求23的移動通信裝置,其中該應用程序容器分析從該服務器接收的消息數據,并且更新在該裝置的存儲器中的元數據的顯示。
33.根據權利要求32的移動通信裝置,其中該應用程序容器監(jiān)控在可執(zhí)行版本和該組件框架結構之間的通信。
34.根據權利要求33的移動通信裝置,其中該應用程序容器監(jiān)控包括對從一組操作中選擇的操作的消息數據的處理,該組操作包括該消息數據的存儲器分配、在I/O過程中的該消息數據的管理、以及在該裝置的用戶接口上的消息數據的顯示。
35.根據權利要求29的移動通信裝置,還包括該程序具有包括一組指令的一個工作流組件,用于協(xié)調具有以結構化定義語言表示的元數據描述符的組件的操作。
36.根據權利要求35的移動通信裝置,其中該應用程序容器提供用于該組指令的不同的客戶機運行時環(huán)境。
37.根據權利要求36的移動通信裝置,其中該可執(zhí)行版本包括從一批指令中選擇的一個可執(zhí)行指令集,該批指令包括轉換成本機代碼的指令,以及使用具有本機代碼重定向器的一個語言解釋程序解釋的指令。
38.根據權利要求36的移動通信裝置,其中該結構化定義語言以XML表示,而該指令集以ECMA腳本表示。
39.根據權利要求25的移動通信裝置,還包括在該裝置上耦合到一組普通服務的可執(zhí)行版本。
40.根據權利要求39的移動通信裝置,其中該普通服務被預定義為由組件框架結構提供的框架結構服務的一個標準組。
41.根據權利要求39的移動通信裝置,其中該預定義的框架結構服務是從一組服務中選擇的,該組服務包括通信、顯示、暫留、接入、提供以及實用工具。
42.根據權利要求41的移動通信裝置,其中該框架結構服務被配置用于與來自多個組件應用程序的組件進行共享。
43.一種移動通信裝置,被配置用于提供從一個服務器經過網絡接收的一個組件應用程序的可執(zhí)行版本,該程序具有包括以結構化定義語言表示的元數據描述符的多個組件,該移動裝置包括一個基礎結構裝置,用于執(zhí)行該可執(zhí)行版本;耦合到該基礎結構的一個接口裝置,被配置來用于由該裝置的使用者與該可執(zhí)行版本通信;耦合到該基礎結構裝置的一個通信裝置,被配置來用于與該網絡通信;以及一個框架結構裝置,被配置來用于把該可執(zhí)行版本連接到該基礎結構裝置,并且用于提供用于該可執(zhí)行版本的客戶機運行時環(huán)境。
44.一種計算機程序產品,用于在一個移動通信裝置上提供一個組件應用程序的可執(zhí)行版本,該程序具有包括以結構化定義語言表示的元數據描述符的多個組件,該計算機程序產品包括一個計算機可讀介質;存儲在該計算機可讀介質上的一個組件框架結構模塊,用于把該可執(zhí)行版本連接到包括處理器和相關存儲器的一個裝置基礎結構;以及一個耦合到該組件框架結構模塊的應用程序容器模塊,用于從該元數據描述符產生該可執(zhí)行版本,以及用于主控該產生的可執(zhí)行版本的客戶機運行時環(huán)境。
全文摘要
提供一種創(chuàng)建無線組件應用程序并與之進行通信的系統(tǒng)及方法。移動通信裝置通過無線網絡、互聯網、和可選的消息映射服務與web服務通信。每一個無線組件應用程序都由在移動通信裝置之一上的一個組件框架結構執(zhí)行,并且包括數據組件、顯示組件、消息組件、及工作流組件。該組件框架結構執(zhí)行在一個應用程序容器中的組件應用程序,該應用程序容器提供了對于框架結構服務的接入,該框架結構服務包括通信服務、屏幕服務、暫留服務、接入服務、提供服務以及實用工具服務。能夠把消息從組件應用程序發(fā)送至該消息映射服務,其使用應用程序消息映射把每一個消息轉換為Web服務所需的格式,然后把該消息送到Web服務。該Web服務把一個響應發(fā)送到該消息映射服務,把該響應轉換為該無線組件應用程序需要的格式,并且把該響應發(fā)送到該無線組件應用程序。
文檔編號H04L29/06GK1757216SQ200380110015
公開日2006年4月5日 申請日期2003年12月24日 優(yōu)先權日2002年12月26日
發(fā)明者邁克爾·申菲爾德, 比埃拉·比布爾, 布倫杜沙·L·弗里奇, 布賴恩·R·戈林, 羅伯特·克蘭, 卡緬·B·維塔諾夫 申請人:捷訊研究有限公司