專利名稱:使用ui儲(chǔ)存庫(kù)的公共ui組件執(zhí)行無(wú)線應(yīng)用程序的系統(tǒng)和方法
技術(shù)領(lǐng)域:
10 本申請(qǐng)大體上涉及應(yīng)用程序在無(wú)線設(shè)備的用戶接口上的表示。
背景技術(shù):
今天,所使用的終端設(shè)備的數(shù)量持續(xù)增加,如移動(dòng)電話、具有無(wú) 線通信能力的PDA和雙向?qū)ず魴C(jī)等。運(yùn)行在這些設(shè)備上的軟件應(yīng)用程
15序增加了其功能性。例如,移動(dòng)電話可以包括檢索城市范圍的天氣的 應(yīng)用程序,或者PDA可以包括允許用戶購(gòu)買(mǎi)雜貨的應(yīng)用程序。這些軟 件應(yīng)用程序利用對(duì)網(wǎng)絡(luò)的連接性,以便向用戶提供及時(shí)有用的服務(wù)。 但是,由于一些設(shè)備的受限資源,以及向設(shè)備傳遞大量數(shù)據(jù)的復(fù)雜性, 開(kāi)發(fā)針對(duì)多種設(shè)備的軟件應(yīng)用程序仍然是困難而耗時(shí)的任務(wù)。
20 目前,將設(shè)備配置為通過(guò)基于因特網(wǎng)的瀏覽器和/或本地應(yīng)用程
序與網(wǎng)絡(luò)服務(wù)進(jìn)行通信。本地應(yīng)用程序具有針對(duì)設(shè)備平臺(tái)的類型專門(mén) 研發(fā)的優(yōu)點(diǎn),從而針對(duì)每次運(yùn)行時(shí)刻的環(huán)境,提供了相對(duì)優(yōu)化的應(yīng)用 程序。但是,本地應(yīng)用程序具有以下缺點(diǎn)非平臺(tái)無(wú)關(guān),必需開(kāi)發(fā)相 同應(yīng)用程序的多個(gè)版本,以及尺寸相對(duì)較大,從而給設(shè)備的存儲(chǔ)器資
25 源造成了嚴(yán)重的負(fù)擔(dān)。此外,應(yīng)用程序開(kāi)發(fā)商需要使用如Java和C++ 等編程語(yǔ)言的經(jīng)驗(yàn),以便構(gòu)建這些硬編碼本地應(yīng)用程序。存在對(duì)能夠 運(yùn)行在客戶端設(shè)備上的應(yīng)用程序的需要,其具有廣泛的運(yùn)行時(shí)刻環(huán)境, 以及具有對(duì)設(shè)備資源的減少的消耗。
需要使用動(dòng)態(tài)且交互式的用戶接口 (UI),在定義用于管理設(shè)備
30 (如無(wú)線等)上的應(yīng)用程序表示的應(yīng)用程序組件屏幕時(shí),提供最大程
度的靈活性和效率。由于無(wú)線設(shè)備資源的限制,重要的是具有一種使 用減少的可執(zhí)行代碼的有效應(yīng)用程序數(shù)據(jù)表示方法。
這里所公開(kāi)的系統(tǒng)和方法提供了一種用于產(chǎn)生用戶接口元素的 執(zhí)行環(huán)境,以排除或消除上述缺點(diǎn)中的至少一些。
發(fā)明內(nèi)容
需要的是利用動(dòng)態(tài)、交互式用戶接口 (UI),在定義用于管理設(shè)
備上的應(yīng)用程序表示的無(wú)線應(yīng)用程序的組件屏幕時(shí),提供最大的自由 度和效率。由于無(wú)線設(shè)備資源的限制,重要的是具有一種使用減少的
10可執(zhí)行代碼來(lái)進(jìn)行有效應(yīng)用程序數(shù)據(jù)表示的方法。與目前的用戶接口
可視化系統(tǒng)和方法相反,提供了一種系統(tǒng)和方法,具有智能運(yùn)行時(shí)刻
設(shè)備框架的執(zhí)行環(huán)境,用于在設(shè)備上聲明的用戶接口 (ui)上產(chǎn)生用
戶接口元素。所提出的方法通過(guò)XML元數(shù)據(jù)UI定義(或其他結(jié)構(gòu)定義 語(yǔ)言計(jì)劃(schema))實(shí)現(xiàn)了用戶接口定義,代替了需要在應(yīng)用程序的
15 執(zhí)行代碼中實(shí)現(xiàn)屏幕元素。將UI定義存儲(chǔ)在公共UI儲(chǔ)存庫(kù)中,作為 設(shè)備上的應(yīng)用程序的公共資源,并在運(yùn)行時(shí)執(zhí)行。UI定義與設(shè)備的目 標(biāo)平臺(tái)無(wú)關(guān)。可以根據(jù)需要,定制和標(biāo)記設(shè)備上的所有應(yīng)用程序的"感 觀"。與應(yīng)用程序邏輯分離地定義UI元素的布局和次序提供了應(yīng)用程 序的模塊化。這種模塊化允許重新使用已經(jīng)定義的UI屏幕,并在不同
20 的應(yīng)用程序之間進(jìn)行共享。所述系統(tǒng)具有主題和標(biāo)記儲(chǔ)存庫(kù)、UI儲(chǔ)存 庫(kù)、可視化引擎、執(zhí)行環(huán)境和UI服務(wù)。所述方法包括以下步驟解析 XML定義、應(yīng)用主題和標(biāo)記特征、向執(zhí)行環(huán)境提供屏幕模型、對(duì)用戶 接口進(jìn)行可視化以及事件處理。
根據(jù)本發(fā)明,提出了一種產(chǎn)生用于顯示在無(wú)線設(shè)備的用戶接口上
25 的屏幕表示的方法,將屏幕表示定義為以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá)的用戶 接口定義集合,結(jié)構(gòu)定義語(yǔ)言被配置為由被配置為在無(wú)線設(shè)備上運(yùn)行 的多個(gè)應(yīng)用程序所引用,所述方法的特征在于包括以下步驟接收來(lái) 自多個(gè)應(yīng)用程序中的第一應(yīng)用程序的對(duì)屏幕表示的請(qǐng)求;從無(wú)線設(shè)備 上的存儲(chǔ)器中檢索與屏幕表示相對(duì)應(yīng)的用戶接口定義集合;解析用戶
30接口定義的結(jié)構(gòu)定義語(yǔ)言,以確定用戶接口元素;將顯示特征應(yīng)用于
用戶接口元素,以產(chǎn)生屏幕模型;以及將屏幕模型提供給第一應(yīng)用程 序,以便以顯示條件和屏幕值進(jìn)行填充,以產(chǎn)生屏幕表示;其中將屏 幕表示配置用于隨后對(duì)用戶接口的顯示,以便通過(guò)用戶事件與用戶進(jìn) 行交互。
5 本發(fā)明還提供了一種用于產(chǎn)生用于顯示在無(wú)線設(shè)備的用戶接口 上的屏幕表示的系統(tǒng),將屏幕表示定義為以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá)的用 戶接口定義集合,結(jié)構(gòu)定義語(yǔ)言被配置為由被配置為在無(wú)線設(shè)備上運(yùn) 行的多個(gè)應(yīng)用程序所引用,所述系統(tǒng)的特征在于包括存儲(chǔ)器,用于 存儲(chǔ)由多個(gè)應(yīng)用程序進(jìn)行引用的多個(gè)用戶接口定義集合;可視化引擎, 10用于接受多個(gè)應(yīng)用程序中的第一應(yīng)用程序的屏幕表示請(qǐng)求,以及用于 解析從存儲(chǔ)器中檢索出的選定用戶接口定義集合的結(jié)構(gòu)定義語(yǔ)言,以 確定屏幕表示的用戶接口元素,選定的用戶接口定義對(duì)應(yīng)于所請(qǐng)求的 屏幕表示;與可視化引擎相連的屏幕模塊,用于將顯示特征應(yīng)用于用
戶接口元素,以產(chǎn)生定義了屏幕表示的屏幕模型;執(zhí)行環(huán)境,用于向
15 第一應(yīng)用程序提供屏幕模型,以便以顯示條件和屏幕值進(jìn)行填充;以 及用戶接口服務(wù),用于再現(xiàn)屏幕模型,以便向用戶接口提供屏幕表示; 其中無(wú)線設(shè)備的用戶與用戶接口上的屏幕表示進(jìn)行交互。
本發(fā)明還提供了一種計(jì)算機(jī)程序產(chǎn)品,用于產(chǎn)生用于顯示在無(wú)線 設(shè)備的用戶接口上的屏幕表示,將屏幕表示定義為以配置用于由無(wú)線
20 設(shè)備上提供的多個(gè)應(yīng)用程序所引用的結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá)的用戶接口 定義集合,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì);存儲(chǔ)在所述 計(jì)算機(jī)可讀介質(zhì)上的存儲(chǔ)器模塊,用于存儲(chǔ)由多個(gè)應(yīng)用程序進(jìn)行引用 的多個(gè)用戶接口定義集合;存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)上的可視化引 擎,用于接受多個(gè)應(yīng)用程序中的第一應(yīng)用程序的屏幕表示請(qǐng)求,以及
25 用于解析從存儲(chǔ)器中檢索出的選定用戶接口定義集合的結(jié)構(gòu)定義語(yǔ) 言,以確定屏幕表示的用戶接口元素,選定的用戶接口定義對(duì)應(yīng)于所 請(qǐng)求的屏幕表示;與可視化引擎模塊相連的屏幕模塊,用于將顯示特 征應(yīng)用于用戶接口元素,以產(chǎn)生定義了屏幕表示的屏幕模型;執(zhí)行環(huán) 境,用于將屏幕模型提供給第一應(yīng)用程序,以便填充顯示環(huán)境和屏幕
30值;以及存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)上的再現(xiàn)模塊,用于再現(xiàn)屏幕模
型,以便向用戶接口提供屏幕表示;其中無(wú)線設(shè)備的用戶與用戶接口
上的屏幕表示進(jìn)行交互。
5 通過(guò)以下僅作為實(shí)例而參照附圖做出的詳細(xì)描述,這些和其他特
征將變得更加清楚,其中
圖l是網(wǎng)絡(luò)系統(tǒng)的方框圖2是圖1所示的普通設(shè)備的方框圖3示出了與圖2所示的設(shè)備的UI儲(chǔ)存庫(kù)交互的多個(gè)應(yīng)用程序; 10 圖4是使UI定義在圖2所示的用戶接口上可視化的系統(tǒng);
圖5示出了圖4所示的UI存儲(chǔ)庫(kù)的UI定義層次;以及 圖6是圖4所示的系統(tǒng)的示例操作的流程圖。
具體實(shí)施方式
15 網(wǎng)絡(luò)系統(tǒng)
參照?qǐng)Dl,網(wǎng)絡(luò)系統(tǒng)IO包括多個(gè)普通終端設(shè)備100,用于通過(guò)如 但不局限于因特網(wǎng)的相連廣域網(wǎng)(WAN)104與一個(gè)或多個(gè)網(wǎng)絡(luò)服務(wù)106 交互。這些普通終端設(shè)備100可以是但并不局限于個(gè)人計(jì)算機(jī)116、 無(wú)線設(shè)備101、PDA、自助信息站等。由服務(wù)106提供的普通服務(wù)可以
20 是其他服務(wù),如但并不局限于SQL數(shù)據(jù)庫(kù)、基于IDL的CORBA和 RMI/工IOP系統(tǒng)、遺留數(shù)據(jù)庫(kù)、J2EE、 SAPRFC和COM/DCOM組件。此夕卜, 系統(tǒng)10還可以具有網(wǎng)關(guān)服務(wù)器112,用于通過(guò)局域網(wǎng)(LAN) 14將桌 面終端116與服務(wù)106相連。此外,系統(tǒng)10還可以具有無(wú)線網(wǎng)絡(luò)102, 用于將無(wú)線設(shè)備101與W顏104相連。應(yīng)當(dāng)意識(shí)到,其他設(shè)備和計(jì)算
25 機(jī)(未示出)可以通過(guò)WAN 104和除圖1所示的其他關(guān)聯(lián)網(wǎng)絡(luò)與網(wǎng)絡(luò) 服務(wù)106相連。此后,為了簡(jiǎn)單,將普通終端設(shè)備100、無(wú)線設(shè)備102 和個(gè)人計(jì)算機(jī)稱為設(shè)備IOO。為了簡(jiǎn)單,針對(duì)系統(tǒng)10的以下描述選擇 網(wǎng)絡(luò)服務(wù)106。但是,應(yīng)當(dāng)意識(shí)到,如果需要,可以用其他服務(wù)替換 網(wǎng)絡(luò)服務(wù)106。此外,為了簡(jiǎn)單,此后將系統(tǒng)10的網(wǎng)絡(luò)102、 104、 112
30 稱為網(wǎng)絡(luò)104。
再次參照?qǐng)D1,設(shè)備100在與網(wǎng)絡(luò)服務(wù)106進(jìn)行通信時(shí),分別發(fā) 送和接收請(qǐng)求/相應(yīng)消息105。設(shè)備100可以通過(guò)使用消息報(bào)頭信息和 關(guān)聯(lián)數(shù)據(jù)內(nèi)容形式的的請(qǐng)求/響應(yīng)消息105,作為網(wǎng)絡(luò)服務(wù)106的網(wǎng)絡(luò) 客戶端進(jìn)行操作,例如,從在線貿(mào)易商那里請(qǐng)求和接收產(chǎn)品價(jià)格和可 5 用性。網(wǎng)絡(luò)服務(wù)106是通信設(shè)備100上的客戶端應(yīng)用程序302 (參見(jiàn) 圖2)通過(guò)無(wú)線網(wǎng)絡(luò)104與之交互、以便向通信設(shè)備100的用戶提供 實(shí)用性的系統(tǒng)的示例。
再次參照?qǐng)D1,為了滿足適當(dāng)?shù)恼?qǐng)求/相應(yīng)消息105,網(wǎng)絡(luò)服務(wù)106 可以通過(guò)多種協(xié)議(如但并不局限于HTTP和組件API)與應(yīng)用程序服
10 務(wù)器110進(jìn)行通信,以便在設(shè)備100上提供其時(shí),向客戶端應(yīng)用程序 302 (參見(jiàn)圖2)展示相關(guān)的商業(yè)邏輯(方法)。應(yīng)用程序服務(wù)器110 還可以包含網(wǎng)絡(luò)服務(wù)106軟件,從而網(wǎng)絡(luò)服務(wù)106可以被認(rèn)為是應(yīng)用 程序服務(wù)器110的子集。設(shè)備100的應(yīng)用程序302可以使用應(yīng)用程序 服務(wù)器110的商業(yè)邏輯,類似于調(diào)用與對(duì)象有關(guān)的方法(或函數(shù))。應(yīng)
15 當(dāng)意識(shí)到,可以通過(guò)消息105,經(jīng)由網(wǎng)絡(luò)104,將客戶端應(yīng)用程序302 與應(yīng)用程序服務(wù)器110相關(guān)地直接下載/上載到設(shè)備100。還應(yīng)當(dāng)意識(shí) 至ij,設(shè)備100可以通過(guò)網(wǎng)絡(luò)104與一個(gè)或多個(gè)網(wǎng)絡(luò)服務(wù)106和關(guān)聯(lián)應(yīng) 用程序服務(wù)器110進(jìn)行通信。
20 服務(wù)器環(huán)境
參照?qǐng)D1,網(wǎng)絡(luò)服務(wù)106提供由設(shè)備100上的客戶端應(yīng)用程序302 (參見(jiàn)圖2)使用的信息消息105。可選地,或此外,網(wǎng)絡(luò)服務(wù)106 可以接收和使用由設(shè)備100上所執(zhí)行的客戶端應(yīng)用程序302所提供的 信息消息105,或者以設(shè)備100上所執(zhí)行的客戶端應(yīng)用程序302的名 25義執(zhí)行任務(wù)??梢詫⒕W(wǎng)絡(luò)服務(wù)106定義為軟件服務(wù),其可以實(shí)現(xiàn)如利 用登記在網(wǎng)絡(luò)服務(wù)登記中的通用發(fā)現(xiàn)描述和集成(UDDI)中的網(wǎng)絡(luò)服 務(wù)描述語(yǔ)言(WSDL)所表達(dá)的接口,并能夠通過(guò)如簡(jiǎn)單對(duì)象存取協(xié)議 (SOAP)等適當(dāng)?shù)膮f(xié)議暴露在網(wǎng)絡(luò)104上,通過(guò)消息105與客戶端設(shè) 備100進(jìn)行通信??蛇x地,網(wǎng)絡(luò)服務(wù)106可以使用其他已知的通信協(xié) 30議、消息105格式,以及可以按照除上述之外的其他網(wǎng)絡(luò)服務(wù)語(yǔ)言來(lái)
表達(dá)接口。
客戶端環(huán)境
參照?qǐng)D2,通過(guò)網(wǎng)絡(luò)104傳輸組件應(yīng)用程序302,并加載到設(shè)備 5 100的設(shè)備基礎(chǔ)設(shè)施204的存儲(chǔ)模塊210??蛇x地,可以通過(guò)串行連接、 USB連接、或如IR、 802.11 (x)、藍(lán)牙TM等短距離無(wú)線通信系統(tǒng)(未 示出)來(lái)加載組件應(yīng)用程序302。 一旦被加載到設(shè)備100中,則可以 由設(shè)備100上的執(zhí)行環(huán)境312執(zhí)行組件應(yīng)用程序302,如果需要,其 可以將組件應(yīng)用程序302轉(zhuǎn)換為本地代碼,并通過(guò)設(shè)備基礎(chǔ)設(shè)施204
10 中的處理器208??蛇x地,可以通過(guò)設(shè)備100上的其他軟件模塊(未 示出)或操作系統(tǒng)來(lái)解釋?xiě)?yīng)用程序302。在任何情況下,在由設(shè)備100 提供的執(zhí)行環(huán)境312下運(yùn)行組件應(yīng)用程序302。執(zhí)行環(huán)境312可以由 智能軟件框架206提供,所述智能軟件框架206還能夠提供用于管理 和執(zhí)行典型應(yīng)用程序302行為(如持續(xù)性、消息發(fā)送、屏幕導(dǎo)航和表
15示等)的基本服務(wù)集合。
參照?qǐng)D3,應(yīng)用程序302可以是但并不局限于瀏覽器應(yīng)用程序 302a、本地語(yǔ)言應(yīng)用程序302b禾tV或基于容器的腳本/結(jié)構(gòu)定義語(yǔ)言 (如XML)應(yīng)用程序302c,在適當(dāng)?shù)膱?zhí)行環(huán)境312下執(zhí)行。設(shè)備100 上所提供的每個(gè)應(yīng)用程序302a、 b、 c可以使用用戶接口 (UI)儲(chǔ)存庫(kù)
20 310,從而使UI儲(chǔ)存庫(kù)310包含以結(jié)構(gòu)定義語(yǔ)言(如但并不局限于XML) 描述的UI定義600 (參見(jiàn)圖5)。每個(gè)應(yīng)用程序302a、 b、 c在UI儲(chǔ)存 庫(kù)310中具有其自己的條目,其中存儲(chǔ)了針對(duì)此應(yīng)用程序302a、 b、 c 的UI定義600。 UI定義600由應(yīng)用程序302a、 b、 c使用,以提供對(duì) 用戶接口 202的輸出,以便與設(shè)備100的用戶進(jìn)行交互。瀏覽器應(yīng)用
25 程序302a可以是在瀏覽器執(zhí)行環(huán)境312下在設(shè)備100上執(zhí)行的應(yīng)用程 序302。瀏覽器應(yīng)用程序302a的特征在于在設(shè)備100上較小的覆蓋區(qū) (footprint),由于大多數(shù)應(yīng)用程序邏輯均位于應(yīng)用程序服務(wù)器上(即 網(wǎng)絡(luò)服務(wù)106—一參見(jiàn)圖1)。瀏覽器環(huán)境312提供了 "沙箱"安全環(huán) 境來(lái)執(zhí)行瀏覽器應(yīng)用程序302a,并從而能夠確保適當(dāng)?shù)脑L問(wèn)控制。本
30地語(yǔ)言應(yīng)用程序302b是以特定的語(yǔ)言實(shí)現(xiàn)的應(yīng)用程序302,所述語(yǔ)言
是設(shè)備100的本地環(huán)境312所固有的——例如,C++、 Java等。本地 應(yīng)用程序302b可以使用設(shè)備IOO特征的擴(kuò)展集合,但其很少可以在不 同的設(shè)備100環(huán)境312 (例如,平臺(tái))之間移動(dòng)?;谌萜鞯哪_本/XML 應(yīng)用程序302c是使用腳本語(yǔ)言和以XML或其他結(jié)構(gòu)定義語(yǔ)言所定義的 5 元數(shù)據(jù)而定義的應(yīng)用程序302??梢栽诨谌萜鞯倪\(yùn)行時(shí)刻環(huán)境312 下執(zhí)行這些應(yīng)用程序302c。為了簡(jiǎn)單,此后將應(yīng)用程序302abc稱為 應(yīng)用程序302。
再次參照?qǐng)D1,可以對(duì)由設(shè)備IOO提供的客戶端運(yùn)行時(shí)刻環(huán)境進(jìn) 行配置,從而使設(shè)備100作為網(wǎng)絡(luò)服務(wù)106的網(wǎng)絡(luò)客戶端進(jìn)行操作。
10應(yīng)當(dāng)意識(shí)到,客戶端運(yùn)行時(shí)刻環(huán)境也可以使設(shè)備100成為網(wǎng)絡(luò)104上 的任何其他普通服務(wù)的客戶端,如但并不局限于普通計(jì)劃定義服務(wù)。 此外,框架206的特定功能可以包括但并不局限于對(duì)語(yǔ)言的支持、協(xié) 調(diào)存儲(chǔ)器分配、聯(lián)網(wǎng)、1/0操作期間的數(shù)據(jù)管理、協(xié)調(diào)設(shè)備100的輸 出設(shè)備上的圖形以及提供對(duì)面向核心對(duì)象的類的存取以及支持文件/
15 庫(kù)。由設(shè)備100實(shí)現(xiàn)的運(yùn)行時(shí)刻環(huán)境的示例可以包括如但并不局限于 微軟提出的公共語(yǔ)言運(yùn)行時(shí)間(CLR)和Sun微系統(tǒng)公司提出的Java 運(yùn)行時(shí)刻環(huán)境(JRE)。
通信設(shè)備
20 再次參考圖2,設(shè)備100是諸如但并不局限于移動(dòng)電話、PDA、雙
向?qū)ず魴C(jī)或雙模式通信設(shè)備的設(shè)備。所述設(shè)備100包括網(wǎng)絡(luò)連接接口 200,例如無(wú)線收發(fā)機(jī)或有線網(wǎng)絡(luò)接口卡或調(diào)制解調(diào)器,通過(guò)連接218 與設(shè)備基礎(chǔ)設(shè)施204相連。在設(shè)備100的操作期間,連接接口200可通過(guò) 無(wú)線鏈路(例如RF、 IR等)與諸如無(wú)線網(wǎng)絡(luò)102等網(wǎng)絡(luò)104相連,這使
25 設(shè)備100能夠彼此通信且通過(guò)網(wǎng)絡(luò)104與外部系統(tǒng)(諸如網(wǎng)絡(luò)服務(wù)106) 進(jìn)行通信,并且協(xié)調(diào)客戶端應(yīng)用程序302和服務(wù)106之間的請(qǐng)求/響應(yīng)消 息105(見(jiàn)圖l)。網(wǎng)絡(luò)104支持設(shè)備和外部系統(tǒng)之間的請(qǐng)求/響應(yīng)消息105 的數(shù)據(jù)傳輸,所述外部系統(tǒng)與網(wǎng)絡(luò)104相連。網(wǎng)絡(luò)104還可以支持設(shè)備 100和網(wǎng)絡(luò)104外部的設(shè)備之間的電話呼叫的語(yǔ)音通信。無(wú)線網(wǎng)絡(luò)102
30 可以使用無(wú)線數(shù)據(jù)傳輸協(xié)議,例如但并不局限于DataTAC、GPRS或CDMA。
再次參考圖2,設(shè)備100還具有通過(guò)連接222與設(shè)備基礎(chǔ)設(shè)施204相 連的用戶接口202以便與用戶(未示出)進(jìn)行交互。用戶接口202包括 一個(gè)或多個(gè)用戶輸入設(shè)備,諸如但并不局限于QWERTY鍵盤(pán)、小鍵盤(pán)、 跟蹤輪、鐵筆、鼠標(biāo)、麥克風(fēng)和用戶輸出設(shè)備(例如LCD屏幕顯示器) 5 和/或揚(yáng)聲器。如果屏幕是對(duì)觸摸敏感的,則還可以將所述顯示器用作 由設(shè)備基礎(chǔ)設(shè)施204控制的用戶輸入設(shè)備。由設(shè)備100的用戶采用用戶 接口202來(lái)協(xié)調(diào)系統(tǒng)10 (見(jiàn)圖l)上的請(qǐng)求/響應(yīng)消息105,如由框架206 的客戶端應(yīng)用程序302所采用的那樣。
再次參考圖2,由設(shè)備基礎(chǔ)設(shè)施204啟動(dòng)設(shè)備100的操作。所述設(shè)
i0 備基礎(chǔ)設(shè)施204包括計(jì)算機(jī)處理器208和相關(guān)存儲(chǔ)模塊210。計(jì)算機(jī)處理 器208通過(guò)執(zhí)行由操作系統(tǒng)和位于存儲(chǔ)模塊210中的客戶端應(yīng)用程序 302提供的相關(guān)指令,控制通信設(shè)備100的網(wǎng)絡(luò)接口200、用戶接口202 和框架206的操作。所述存儲(chǔ)模塊還可以包括UI儲(chǔ)存庫(kù)310和主題和標(biāo) 記儲(chǔ)存庫(kù)410,如以下將詳細(xì)描述的。應(yīng)該意識(shí)到,設(shè)備基礎(chǔ)設(shè)施204
15可以與處理器208相連的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)212,用于向處理器提供 指令和/或加載/更新存儲(chǔ)模塊210的客戶端應(yīng)用程序302。所述計(jì)算機(jī) 可讀存儲(chǔ)介質(zhì)212可以包括硬件和/或軟件,僅作為示例,例如磁盤(pán)、 磁帶、可光學(xué)讀取的介質(zhì)(例如CD/DVD ROM)和存儲(chǔ)卡。在每一種情 況下,計(jì)算機(jī)可讀介質(zhì)212可以采用小型盤(pán)、軟盤(pán)、盒式磁帶、硬盤(pán)驅(qū)
20動(dòng)器、固態(tài)存儲(chǔ)卡或RMI的形式,設(shè)置在存儲(chǔ)模塊210中。應(yīng)該注意, 以上所列出的計(jì)算機(jī)可讀介質(zhì)212可以或者單獨(dú)使用或者組合使用。
設(shè)備的框架
再次參考圖2,設(shè)備100的框架206通過(guò)連接220與設(shè)備基礎(chǔ)設(shè)施 25 204相連。設(shè)備100的框架206具有優(yōu)選地能夠產(chǎn)生、主持和執(zhí)行客戶端 應(yīng)用程序302的執(zhí)行環(huán)境312??蚣?06可以被認(rèn)為是提供基本服務(wù)集合 304以管理和執(zhí)行典型應(yīng)用程序302行為(例如但并不局限于持續(xù)性、 提供、消息傳遞、屏幕導(dǎo)航和用戶接口/屏幕服務(wù))的智能軟件框架206。 因此,框架206為客戶應(yīng)用程序302提供適當(dāng)?shù)膱?zhí)行環(huán)境,并且是與處 30 理器208的設(shè)備100功能的接口,并且是設(shè)備基礎(chǔ)設(shè)施204的相關(guān)操作系
統(tǒng)??蚣?06通過(guò)優(yōu)選地在設(shè)備100上提供受控、安全和穩(wěn)定的環(huán)境來(lái) 提供執(zhí)行環(huán)境312,其中應(yīng)用程序302在所述環(huán)境下執(zhí)行。
再次參考圖2,在特定的服務(wù)并未被包括作為客戶端應(yīng)用程序302 的一部分或未被接收為作為應(yīng)用程序302的一部分的單獨(dú)組件(未示 5 出)的情況下,框架206可以向客戶端應(yīng)用程序302提供服務(wù)(標(biāo)準(zhǔn)普 通服務(wù)集合)。如果需要,應(yīng)用程序302具有與服務(wù)304之間的通信。應(yīng) 當(dāng)意識(shí)到,設(shè)備基礎(chǔ)設(shè)施204 (參見(jiàn)圖2)的操作系統(tǒng)的一部分可以表 示任何服務(wù)304。應(yīng)當(dāng)意識(shí)到,通信設(shè)備100的服務(wù)304可以向應(yīng)用程序 302提供功能性,其可以包括上述服務(wù)。此外,可以將服務(wù)304與應(yīng)用
10程序302進(jìn)行集成,而不是作為單獨(dú)的框架來(lái)提供。在任何情況下,組 件應(yīng)用程序302可以通過(guò)集成的和/或單獨(dú)的服務(wù)304來(lái)使用通信設(shè)備 IOO的功能,如以下所討論的那樣。服務(wù)304包括當(dāng)在用戶接口202的輸 出設(shè)備上輸出其時(shí)管理應(yīng)用程序302的表示的UI服務(wù)308 (參見(jiàn)圖4), 如可視化引擎306 (參見(jiàn)圖4)所提供的那樣。服務(wù)304的提供服務(wù)可以
15 管理通信設(shè)備100上的軟件應(yīng)用程序302的提供。服務(wù)304的持續(xù)服務(wù)可 以允許應(yīng)用程序302將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)模塊210中,以及訪問(wèn)UI儲(chǔ)存庫(kù) 310和主題/標(biāo)記儲(chǔ)存庫(kù)410。
用于產(chǎn)生UI屏幕表示的UI系統(tǒng)
20 參照?qǐng)D4,用于對(duì)UI定義進(jìn)行可視化的系統(tǒng)300包括5個(gè)基本模塊,
即
主題和標(biāo)記儲(chǔ)存庫(kù)410;
UI儲(chǔ)存庫(kù)310;
可視化引擎306; 25 執(zhí)行環(huán)境312;以及
UI服務(wù)308。
可以將UI服務(wù)308定義為負(fù)責(zé)再現(xiàn)用戶接口202的UI控制并解釋 來(lái)自那里的用戶輸入的服務(wù)304。 UI服務(wù)308典型地專用于不同的設(shè)備 IOO平臺(tái)(即本地)??梢詫?zhí)行環(huán)境312定義為執(zhí)行所有相應(yīng)應(yīng)用程序 30302的環(huán)境。在一些實(shí)現(xiàn)中,其可以是Java虛擬機(jī)、基于組件的框架或
簡(jiǎn)單地用于運(yùn)行設(shè)備的本地應(yīng)用程序的環(huán)境??梢暬?06可以定義
為用于根據(jù)在環(huán)境312下所執(zhí)行的應(yīng)用程序302的請(qǐng)求,解析存儲(chǔ)在UI 儲(chǔ)存庫(kù)310中的UIXML定義600并解釋其的引擎。UI定義600提供顯示在 用戶接口202上的屏幕元素的功能特征??梢暬?06構(gòu)建針對(duì)用戶 5 接口202的UI屏幕表示602 (參見(jiàn)圖5)的本地屏幕模型307,然后,UI 服務(wù)可以代表所涉及的應(yīng)用程序302呈現(xiàn)給用戶。UI儲(chǔ)存庫(kù)310可以定 義為包括設(shè)備100上的所有應(yīng)用程序302的UI定義600 (參見(jiàn)圖5)的儲(chǔ) 存庫(kù)。主題和標(biāo)記儲(chǔ)存庫(kù)410可以定義為再現(xiàn)UI定義600的信息和規(guī)則 的儲(chǔ)存庫(kù),專用于優(yōu)選地由設(shè)備100的用戶所指定(至少部分指定)的
10 當(dāng)前主題和優(yōu)選地由設(shè)備100的通信公司所選擇的標(biāo)記。主題的示例包 括如自然和技術(shù)喜好等背景主題。標(biāo)記示例包括顏色、布置和標(biāo)志圖 細(xì)節(jié)。來(lái)自主題和標(biāo)記儲(chǔ)存庫(kù)410的信息和再現(xiàn)規(guī)則影響到可視化引擎 306如何從UI儲(chǔ)存庫(kù)310中,針對(duì)選定UI定義600,通過(guò)屏幕模型307, 來(lái)產(chǎn)生UI屏幕表示602。儲(chǔ)存庫(kù)410的再現(xiàn)信息和規(guī)則提供了顯示在用
15 戶接口202上的屏幕元素的外觀特征。
UI定義600
以XML或任何其他結(jié)構(gòu)定義語(yǔ)言來(lái)定義儲(chǔ)存庫(kù)310中的UI定義 600,并由可視化引擎306在應(yīng)用程序302的提供階段和/或執(zhí)行階段期
20 間進(jìn)行解析(參見(jiàn)圖4)。定義600提供顯示在用戶接口202上的屏幕元 素的功能特征,并可以包括以下項(xiàng)目,例如但并不局限于屏幕布局、 屏幕內(nèi)的控制、控制布局、事件處理和多種可視化屬性。參照?qǐng)D5,定 義600包括UI屏幕表示602,可以將其定義為定義了用戶接口202 (參見(jiàn) 圖2)的UI元素集合,在給定的時(shí)刻向用戶展示。UI屏幕表示602可以
25 具有不同的屬性,例如但并不局限于邏輯名稱;標(biāo)題;全屏或?qū)?線模式;前景和背景色;以及缺省字體。定義600還可以具有事件處理 定義604,可以將其定義為規(guī)定了當(dāng)UI屏幕表示602在用戶接口202上有 效時(shí),應(yīng)用程序302應(yīng)當(dāng)如何處理來(lái)自用戶的事件的屏幕元素。定義604 包括將應(yīng)用程序302插入處理中的事件的列表。這些事件可以觸發(fā)要發(fā)
30送給應(yīng)用程序302的消息處理器(例如)的消息,或調(diào)用具有特定命名
約定的方法。對(duì)于基于容器的腳本/XML應(yīng)用程序302,事件處理定義可 以規(guī)定要執(zhí)行或?qū)Ш降浇涌?02的另一屏幕的腳本塊。定義600還包括 屏幕菜單606,可以將其定義為規(guī)定了當(dāng)屏幕表示602在用戶接口202 上有效時(shí),可訪問(wèn)的菜單項(xiàng)集合的屏幕元素。在菜單中對(duì)菜單項(xiàng)進(jìn)行 5 排列,并具有關(guān)聯(lián)動(dòng)作。菜單項(xiàng)動(dòng)作是由事件處理定義使用的UI事件。 定義600還包括U工布局608,其定義了UI控制610在屏幕表示602上的訂 單和定位。UI布局608影響其所包含的UI控制610。定義600還包括能夠 定義為用于構(gòu)建屏幕顯示602的用戶接口元素的UI控制610。公共UI控 制610是但并不局限于編輯框、按鈕、選項(xiàng)控制、圖像控制、滾動(dòng)條 10 和靜態(tài)文本。
在應(yīng)用程序之間共享UI定義
參照?qǐng)D4和5,可以在執(zhí)行環(huán)境312的不同應(yīng)用程序302之間共享UI 定義600。這意味著一個(gè)應(yīng)用程序302可以根據(jù)存儲(chǔ)在另一應(yīng)用程序302 15 的UI儲(chǔ)存庫(kù)310條目中的UI定義600來(lái)實(shí)例化屏幕表示602。這有助于節(jié) 約開(kāi)發(fā)勞動(dòng),以實(shí)現(xiàn)應(yīng)用程序302之間的一致"感觀",并提供更為容 易的維護(hù)。
一個(gè)應(yīng)用程序302可以通過(guò)引用以擁有定義600的應(yīng)用程序302的 應(yīng)用程序302名稱為前綴的UI定義600,來(lái)實(shí)例化來(lái)自屬于另一應(yīng)用程
20 序302的UI定義600的屏幕表示602。例如,可以使用單個(gè)的斜線來(lái)作為 應(yīng)用程序302的名稱與由定義600所產(chǎn)生的引用屏幕表示602的名稱之 間的分界符。例如,如果應(yīng)用程序"A"需要引用應(yīng)用程序"B"的UI 儲(chǔ)存庫(kù)310條目中所定義的屏幕表示602 "OrderStatus",則應(yīng)當(dāng)在應(yīng) 用代碼中通過(guò)"B\OrderStatus"來(lái)查閱屏幕表示602,以便鏈接到定
25 義600,產(chǎn)生"OrderStatus"屏幕表示602。按照這種方式,不同的應(yīng) 用程序302可以共享和執(zhí)行UI定義600。應(yīng)當(dāng)意識(shí)到,有效的應(yīng)用程序 302可以負(fù)責(zé)處理針對(duì)由共享UI定義600所構(gòu)建的屏幕表示602的任何 用戶事件。在上述示例中,應(yīng)用程序"A"還可以提供如應(yīng)用程序"B" 所實(shí)現(xiàn)的"OrderStatus"屏幕表示602所需的事件處理。
30 可視化引擎306可以支持和實(shí)現(xiàn)能夠由設(shè)備100上的所有應(yīng)用程
序302重新使用的預(yù)定義全局UI定義600。通用全局UI定義600的示例是 但并不局限于
1、 1)對(duì)話
URL條目對(duì)話 5 登錄對(duì)話
確認(rèn)對(duì)話 搜索對(duì)話 等等;
2、 2)樣式、主題;以及
10 3、 3)公共布局、控制、動(dòng)畫(huà)等。
根據(jù)無(wú)線設(shè)備目標(biāo)的區(qū)域,頻繁使用的UI定義600的集合可能會(huì) 發(fā)生波動(dòng)。例如,對(duì)于郵件中心設(shè)備IOO,用于寫(xiě)作新電子郵件的形式 將是頻繁使用的UI定義600,因而適合于將其包括在UI定義600的全局 集合中。
15
平臺(tái)無(wú)關(guān)
參照?qǐng)D4,系統(tǒng)300是平臺(tái)無(wú)關(guān)的,由于可以按照平臺(tái)無(wú)關(guān)的方式 定義應(yīng)用程序的用戶接口202??梢暬?06是負(fù)責(zé)根據(jù)每個(gè)UI定義 600來(lái)構(gòu)建平臺(tái)相關(guān)屏幕的模塊。為了在不同的平臺(tái)上重新使用UI定義 20600,可以針對(duì)目標(biāo)平臺(tái)專門(mén)提供可視化引擎306。應(yīng)當(dāng)意識(shí)到,如果 需要,可以調(diào)整可視化引擎306以適應(yīng)于兩個(gè)或更多個(gè)設(shè)備100平臺(tái)。
主題和標(biāo)記
參照?qǐng)D4和5,系統(tǒng)300和相關(guān)方法可以允許設(shè)備100上的所有應(yīng)用 25 程序302的無(wú)縫標(biāo)記(branding)。設(shè)備IOO,例如無(wú)線的,通常是針對(duì) 特定的提供商而進(jìn)行標(biāo)記的對(duì)象,所述提供商或者為無(wú)線服務(wù)的無(wú)線 通信公司或其他提供商。通過(guò)標(biāo)記設(shè)備IOO,無(wú)線提供商可以將所提供 的特征集合與用戶接口202的提供商專用"感觀"相關(guān)聯(lián)。與競(jìng)爭(zhēng)對(duì)手 所具有的產(chǎn)品相比,通過(guò)標(biāo)記其產(chǎn)品,提供商還可以試圖創(chuàng)建更容易 30 吸引用戶的用戶接口202。系統(tǒng)300和相關(guān)方法從UI定義600分離出儲(chǔ)存
庫(kù)410中的標(biāo)記信息??梢愿鶕?jù)應(yīng)用程序開(kāi)發(fā),單獨(dú)創(chuàng)建標(biāo)記信息,以 及可以針對(duì)不同的提供商進(jìn)行定制。由于在可視化引擎306級(jí)考慮標(biāo)記
信息,應(yīng)用特定的標(biāo)記簡(jiǎn)檔表可以影響無(wú)線設(shè)備100上的所有應(yīng)用程序 302。額外安裝的任何應(yīng)用程序302也將考慮設(shè)備100上的標(biāo)記信息。 5 設(shè)備100的另一特征在于使用戶能夠根據(jù)特定的個(gè)人喜好來(lái)定制 用戶接口202的"感觀"的能力。由于以下事實(shí)而特別關(guān)注此特征與 桌面計(jì)算機(jī)100不同,無(wú)線設(shè)備100可能被認(rèn)為是更加私人化。無(wú)線設(shè) 備100可以由用戶攜帶,并很少在幾個(gè)用戶之間共享。使用相同的解決 方案作為標(biāo)記,系統(tǒng)300和相關(guān)方法通過(guò)支持UI主題,提供了用于定制
10 安裝在設(shè)備100上的所有應(yīng)用程序302的用戶接口202的機(jī)制??梢詫⑺?述主題定義為定制設(shè)置的集合??梢詫⒍鄠€(gè)主題存儲(chǔ)在儲(chǔ)存庫(kù)410中, 并根據(jù)用戶的請(qǐng)求加以應(yīng)用。儲(chǔ)存庫(kù)410的規(guī)則和信息提供了顯示在用 戶接口202上的屏幕元素的外觀特征,如但并不局限于針對(duì)如一天的不 同時(shí)間、 一周的不同日子或用戶的不同心情和視覺(jué)偏好而定制的主題
15 禾口布局。
用于處理UI XML儲(chǔ)存庫(kù)的操作
下面,參照?qǐng)D4、 5和6,對(duì)操作700進(jìn)行描述。 步驟701:解析XML定義
20 在應(yīng)用程序302啟動(dòng)時(shí),可視化引擎306從UI儲(chǔ)存庫(kù)310中檢索應(yīng)
用程序的UI定義600。當(dāng)進(jìn)行屏幕激活請(qǐng)求時(shí),可視化引擎306找出屏 幕的XMLUI定義600,并對(duì)其進(jìn)行解析。如果對(duì)UI定義的引用屬于另一 應(yīng)用程序302,可視化引擎306從UI儲(chǔ)存庫(kù)310中檢索所請(qǐng)求的定義600。 對(duì)于UI定義600中的每一項(xiàng),創(chuàng)建相應(yīng)的平臺(tái)專用UI元素,并將其添加
25 為屏幕的本地模型307。例如,當(dāng)遇到編輯控制的定義600時(shí),實(shí)例化 編輯框的平臺(tái)專用類,并添加為屏幕的模型307。本地屏幕模型307是 平臺(tái)專用的,并在屏幕上提供UI定義600的有效再現(xiàn)。可以將額外的UI 元素添加為模型307,以便改善用戶在特定平臺(tái)上的體驗(yàn)。應(yīng)當(dāng)意識(shí)到, 也可以將屏幕模型307產(chǎn)生為平臺(tái)無(wú)關(guān)模型,然后根據(jù)需要,轉(zhuǎn)換到設(shè)
30 備100平臺(tái)。
步驟702:應(yīng)用主題和標(biāo)記特性
在構(gòu)建屏幕模型307期間,可視化引擎306使用主題和標(biāo)記存儲(chǔ)庫(kù) 410中可用的信息/規(guī)則集合,以便將定制的"感觀"賦予UI元素。主 5 題和標(biāo)記儲(chǔ)存庫(kù)410包含針對(duì)需要定制外觀的所有UI元素的再現(xiàn)信息。
步驟703:為執(zhí)行環(huán)境312提供屏幕模型307
一旦已經(jīng)構(gòu)建了屏幕模型307,可視化引擎306就將其傳遞給執(zhí)行 環(huán)境312。通過(guò)執(zhí)行環(huán)境312,使屏幕模型307可用于針對(duì)額外定制的請(qǐng)
10 求應(yīng)用程序302,如果可應(yīng)用的話,并產(chǎn)生針對(duì)用戶接口202的動(dòng)態(tài)屏 幕表示602。應(yīng)用程序302與屏幕表示602的這種交互作用可以包括表示 用戶接口202上的當(dāng)前顯示條件的當(dāng)前值的填充。由于應(yīng)用程序302可 以自由地操縱屏幕模型307,系統(tǒng)300和操作700可以允許構(gòu)建豐富且動(dòng) 態(tài)的屏幕表示602。還應(yīng)當(dāng)意識(shí)到,可視化引擎可以負(fù)責(zé)以當(dāng)前屏幕值
15 全部或部分填充屏幕表示602。
步驟704:對(duì)用戶接口進(jìn)行可視化
在此階段,應(yīng)用程序302向UI服務(wù)308提交屏幕模型307。 UI服務(wù) 308再現(xiàn)模307中的UI元素,并登記應(yīng)用程序302,以便任何事件處理。
20
步驟705:事件處理
UI服務(wù)308將接口202上的任何用戶事件傳播回應(yīng)用程序302,作 為對(duì)應(yīng)用程序邏輯的輸入。應(yīng)用程序302應(yīng)當(dāng)對(duì)事件進(jìn)行處理,并將控 制返回給UI服務(wù)308。對(duì)事件進(jìn)行處理可以涉及對(duì)新屏幕的導(dǎo)航或向用 25 戶發(fā)送可視反饋。此處理可以涉及從UI儲(chǔ)存庫(kù)310中檢索新UI定義600, 以及創(chuàng)建適當(dāng)?shù)男缕聊荒P?07,如上所述,或者可以簡(jiǎn)單地涉及通過(guò) UI服務(wù)308,對(duì)用戶接口上的當(dāng)前屏幕表示602的控制的更新。
樣本UI定義
30 以下是向用戶提示用戶名和密碼的屏幕表示602的樣本UI定義
600。在UI定義600中定義了兩個(gè)導(dǎo)航按鈕610——btnRegister和 btnLogin。這些按鈕610可以分別導(dǎo)航到新用戶注冊(cè)屏幕或嘗試登錄所 輸入的用戶。
5〈xmlScreen name二〃scrLogin〃 title=〃Login〃 dialog=〃true〃 bglmage=〃backg- jpg〃〉
<xmlLayout type=〃vertical〃〉
〈xmlLabel name=〃lblUserName〃 value二〃User Name: 7> <xmlEdit name二〃edUserName〃 type二〃char'7〉 10 〈xmlLabel name=〃lblPassword〃 value二〃Password: 7〉
〈xmlEdit name=〃edPassword〃 type=〃pwd〃/〉 5 〈xmlButton name=〃btnLogin〃 value=〃Login〃〉
<event type二〃onClick〃 handler二〃hLogin7〉 〈/xmlButton>
15 〈xmlButton najne=〃btnRegister〃 value=〃Register〃〉
<event type=〃onClick〃 screen=〃scrRegisterUser〃/> 〈/xmlButton〉 〈/xmlLayouO 〈/xmlScreen〉
20
以下是對(duì)上述屏幕表示602的解釋
■ 〈xmlScreen -定義UI屏幕
o name=〃scrLogin〃 -定義屏幕的邏輯名稱。之后,可以通過(guò)其
邏輯名稱引用所述屏幕 25 o title=〃Login〃 -定義屏幕的標(biāo)題
o dialog=〃tru,-將屏幕定義為與全屏相對(duì)的對(duì)話 o bglmage二〃backg〃 -定義屏幕的背景圖像
■ 〈xmlLayout type=〃vertical〃〉-定義UI控制610的垂直次序
■ 〈xmlLabel name=〃lblUserName〃 value=〃User Name: 7> -以 30邏輯名稱"lblUserName"和數(shù)值"User Name:"定義屏幕上的靜態(tài)標(biāo)
簽
■ 〈xmlEdit name二〃edUse;rName〃 - 以邏輯名稱"edUserName" 定義編輯框
o type^char"-規(guī)定編輯框應(yīng)當(dāng)接受任何字符和數(shù)字 5 ■ 〈xmlButton name=〃btnLogin〃 value=〃Login〃〉-以邏輯名稱
"btnLogin"和標(biāo)簽"Login"定義按鈕
o 〈event type=〃onClick〃 handler=〃hLogin7> -定義在點(diǎn)擊按 鈕時(shí)應(yīng)當(dāng)用于處理用戶事件的句柄。"hLogin"為事件句柄的名稱 o <event type=〃onClick〃 screen=〃scrRegisterUser7〉-以邏 10輯名稱"scrRegisterUser"定義到另一UI定義600的轉(zhuǎn)換
盡管這里己經(jīng)對(duì)一個(gè)或多個(gè)典型系統(tǒng)和方法進(jìn)行了公開(kāi),多種變 體對(duì)本領(lǐng)域的普通技術(shù)人員而言是顯而易見(jiàn)的,而且這種變體在本申 請(qǐng)的范圍之內(nèi)。例如,盡管在所提供的示例中使用XML,也可以使用 其他語(yǔ)言和語(yǔ)言變體來(lái)定義應(yīng)用程序302。
權(quán)利要求
1、一種用于產(chǎn)生用于顯示在無(wú)線設(shè)備(101)的用戶接口(202)上的屏幕表示(602)的方法,將屏幕表示(602)定義為以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá)的用戶接口定義集合(600),結(jié)構(gòu)定義語(yǔ)言被配置為由被配置為在無(wú)線設(shè)備(101)上運(yùn)行的多個(gè)應(yīng)用程序(302)所引用,所述方法的特征在于包括以下步驟接收來(lái)自多個(gè)應(yīng)用程序(302)中的第一應(yīng)用程序的對(duì)屏幕表示(602)的請(qǐng)求;從無(wú)線設(shè)備(101)上的存儲(chǔ)器中檢索與屏幕表示(602)相對(duì)應(yīng)的用戶接口定義(600)集合;解析用戶接口定義(600)的結(jié)構(gòu)定義語(yǔ)言,以確定用戶接口元素;將顯示特征應(yīng)用于用戶接口元素,以產(chǎn)生屏幕模型(307);以及將屏幕模型(307)提供給第一應(yīng)用程序,以便以顯示條件和屏幕值進(jìn)行填充,以產(chǎn)生屏幕表示(602);其中將屏幕表示(602)配置用于隨后對(duì)用戶接口(202)的顯示,以便通過(guò)用戶事件與用戶進(jìn)行交互。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于將屏幕模型設(shè)置在 20 由設(shè)備的應(yīng)用程序執(zhí)行環(huán)境所采用的平臺(tái)相關(guān)或無(wú)關(guān)配置中。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于第一應(yīng)用程序是配 置用于按照?qǐng)?zhí)行環(huán)境的瀏覽器適用形式執(zhí)行的瀏覽器應(yīng)用程序、配置 用于按照?qǐng)?zhí)行環(huán)境的本地形式執(zhí)行的本地應(yīng)用程序,和配置用于按照 執(zhí)行環(huán)境的應(yīng)用程序容器形式執(zhí)行的、基于定義計(jì)劃的組件應(yīng)用程序 中的任意一個(gè)。
4、 根據(jù)權(quán)利要求2所述的方法,其特征在于還包括以下步驟-從存儲(chǔ)器的外觀儲(chǔ)存庫(kù)中檢索外觀特征,所述儲(chǔ)存庫(kù)包括外觀特征的 外觀再現(xiàn)規(guī)則。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于從包括背景主題、 30 標(biāo)記顏色方案和標(biāo)記布置的組中來(lái)選擇規(guī)則。
6、 根據(jù)權(quán)利要求2所述的方法,其特征在于還包括從存儲(chǔ)器 的用戶接口定義儲(chǔ)存庫(kù)中檢索用戶接口定義,所述用戶接口定義儲(chǔ)存 庫(kù)包括針對(duì)功能特性的用戶接口定義。
7、 根據(jù)權(quán)利要求6所述的方法,其特征在于還包括以下步驟 5 包括針對(duì)由用戶接口定義解析而來(lái)的屏幕表示的屬性的用戶接口元素。
8、 根據(jù)權(quán)利要求7所述的方法,其特征在于從包括邏輯名稱、標(biāo)題和缺省字體的組中來(lái)選擇屬性。
9、 根據(jù)權(quán)利要求8所述的方法,其特征在于還包括以下步驟 10包括針對(duì)規(guī)定了用戶事件的處理的事件處理定義的用戶接口元素,由用戶接口定義解析出所述事件處理定義。
10、 根據(jù)權(quán)利要求6 — 9中任意一項(xiàng)所述的方法,其特征在于還包括以下步驟包括針對(duì)規(guī)定了由用戶接口定義解析而來(lái)的菜單項(xiàng)集合的屏幕菜單的用戶接口元素。15
11、根據(jù)權(quán)利要求6 — 10中任意一項(xiàng)所述的方法,其特征在于還包括以下步驟包括針對(duì)用于適應(yīng)用戶事件的用戶接口控制的用戶接口元素,由用戶接口定義解析出所述用戶接口控制。
12、 根據(jù)權(quán)利要求l所述的方法,其特征在于還包括以下步驟 包括針對(duì)用于定義用戶接口控制的次序和位置的用戶接口布局的用戶20接口元素,由用戶接口定義解析出所述用戶接口布局。
13、 根據(jù)權(quán)利要求2所述的方法,其特征在于還包括以下步驟用戶接口服務(wù)解釋用戶事件,并將其轉(zhuǎn)發(fā)給第一應(yīng)用程序,應(yīng)用程序 處理用戶事件,并返回對(duì)用戶接口服務(wù)的控制。
14、 根據(jù)權(quán)利要求l所述的方法,其特征在于還包括以下步驟25通過(guò)修改相應(yīng)的屏幕模型,響應(yīng)用戶事件,更新屏幕表示。
15、 根據(jù)權(quán)利要求12所述的方法,其特征在于由從包括可視化 引擎、第一應(yīng)用程序、用戶接口服務(wù)的組中所選擇的實(shí)體來(lái)執(zhí)行屏幕 模型的填充。
16、 根據(jù)權(quán)利要求2 — 15中任意一項(xiàng)所述的方法,其特征在于第 30 —應(yīng)用程序?qū)嵗瘜儆诙鄠€(gè)應(yīng)用程序中的第二應(yīng)用程序的用戶接口定 義集合,即作為存儲(chǔ)器中的條目而被引用的用戶接口定義集合。
17、根據(jù)權(quán)利要求16所述的方法,其特征在于通過(guò)與多個(gè)應(yīng)用程序之一相對(duì)應(yīng)的惟一應(yīng)用程序標(biāo)識(shí)符來(lái)鏈接存儲(chǔ)器中的每個(gè)用戶接 口定義集合。5
18、根據(jù)權(quán)利要求16或17所述的方法,其特征在于第二應(yīng)用程序提供與用戶接口定義相關(guān)的用戶事件的事件處理。
19、 一種用于產(chǎn)生用于顯示在無(wú)線設(shè)備(101)的用戶接口上的 屏幕表示(602)的系統(tǒng)(300),將屏幕表示(602)定義為以結(jié)構(gòu)定 義語(yǔ)言來(lái)表達(dá)的用戶接口定義集合(600),結(jié)構(gòu)定義語(yǔ)言被配置為由10被配置為在無(wú)線設(shè)備(101)上運(yùn)行的多個(gè)應(yīng)用程序所引用,所述系統(tǒng) 的特征在于包括-存儲(chǔ)器,用于存儲(chǔ)由多個(gè)應(yīng)用程序(302)進(jìn)行引用的多個(gè)用戶 接口定義集合(600);可視化引擎(306),用于接受多個(gè)應(yīng)用程序(302)中的第一應(yīng) 15用程序的屏幕表示(602)請(qǐng)求,以及用于解析從存儲(chǔ)器中檢索出的選 定用戶接口定義(600)集合的結(jié)構(gòu)定義語(yǔ)言,以確定屏幕表示(602) 的用戶接口元素,選定的用戶接口定義(600)對(duì)應(yīng)于所請(qǐng)求的屏幕表 示(602);與可視化引擎(306)相連的屏幕模塊,用于將顯示特征應(yīng)用于 20用戶接口元素,以產(chǎn)生定義了屏幕表示(602)的屏幕模型(307);執(zhí)行環(huán)境(312),用于向第一應(yīng)用程序提供屏幕模型(307),以 便以顯示條件和屏幕值進(jìn)行填充;以及用戶接口服務(wù)(308),用于再現(xiàn)屏幕模型(307),以便向用戶接 口 (202)提供屏幕表示(602); 25 其中無(wú)線設(shè)備(101)的用戶與用戶接口(202)上的屏幕表示(602) 進(jìn)行交互。
20、 根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于將屏幕模型設(shè)置 在由設(shè)備的應(yīng)用程序執(zhí)行環(huán)境所采用的平臺(tái)相關(guān)或無(wú)關(guān)配置中。
21、 根據(jù)權(quán)利要求20所述的系統(tǒng),其特征在于第一應(yīng)用程序是 30配置用于按照?qǐng)?zhí)行環(huán)境的瀏覽器適用形式執(zhí)行的瀏覽器應(yīng)用程序、配 置用于按照?qǐng)?zhí)行環(huán)境的本地形式執(zhí)行的本地應(yīng)用程序,和配置用于按 照?qǐng)?zhí)行環(huán)境的應(yīng)用程序容器形式執(zhí)行的、基于定義計(jì)劃的組件應(yīng)用程 序中的任意一種。
22、 根據(jù)權(quán)利要求20或21所述的系統(tǒng),其特征在于還包括存儲(chǔ) 5器的外觀儲(chǔ)存庫(kù),所述儲(chǔ)存庫(kù)包括外觀特征的外觀再現(xiàn)規(guī)則。
23、 根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于從包括背景主題、 標(biāo)記顏色方案和標(biāo)記布置的組中選擇規(guī)則。
24、 根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于還包括存儲(chǔ)器的 用戶接口定義儲(chǔ)存庫(kù),所述用戶接口定義儲(chǔ)存庫(kù)包括針對(duì)功能特性的 用戶接口定義。
25、 根據(jù)權(quán)利要求24所述的系統(tǒng),其特征在于包括針對(duì)由用戶 接口定義解析而來(lái)的屏幕表示的屬性的用戶接口元素。
26、 根據(jù)權(quán)利要求25所述的系統(tǒng),其特征在于從包括邏輯名稱、 標(biāo)題和缺省字體的組中選擇屬性。
27、根據(jù)權(quán)利要求26所述的系統(tǒng),其特征在于包括針對(duì)規(guī)定了用戶事件的處理的事件處理定義的用戶接口元素,由用戶接口定義解 析出所述事件處理定義。
28、 根據(jù)權(quán)利要求24 — 27中任意一項(xiàng)所述的系統(tǒng),其特征在于包括針對(duì)規(guī)定了由用戶接口定義解析而來(lái)的菜單項(xiàng)集合的屏幕菜單的 20 用戶接口元素。
29、 根據(jù)權(quán)利要求24 — 28中任意一項(xiàng)所述的系統(tǒng),其特征在于包括針對(duì)用于適應(yīng)用戶事件的用戶接口控制的用戶接口元素,由用戶 接口定義解析出所述用戶接口控制。 .
30、 根據(jù)權(quán)利要求29所述的系統(tǒng),其特征在于包括針對(duì)用于定 25義用戶接口控制的次序和位置的用戶接口布局的用戶接口元素,由用戶接口定義解析出所述用戶接口布局。
31、 根據(jù)權(quán)利要求28 — 30中任意一項(xiàng)所述的系統(tǒng),其特征在于還包括用戶接口服務(wù),用于解釋用戶事件,并將其轉(zhuǎn)發(fā)給第一應(yīng)用程 序,應(yīng)用程序處理用戶事件,并返回對(duì)用戶接口服務(wù)的控制。 30
32、根據(jù)權(quán)利要求31所述的系統(tǒng),其特征在于通過(guò)修改相應(yīng)的 屏幕模型,響應(yīng)用戶事件,更新屏幕表示。
33、根據(jù)權(quán)利要求28 — 32中任意一項(xiàng)所述的系統(tǒng),其特征在于 由從包括可視化引擎、第一應(yīng)用程序、用戶接口服務(wù)的組中所選擇的 實(shí)體來(lái)執(zhí)行屏幕模型的填充。 5
34、根據(jù)權(quán)利要求20 — 33中任意一項(xiàng)所述的系統(tǒng),其特征在于第一應(yīng)用程序?qū)嵗瘜儆诙鄠€(gè)應(yīng)用程序中的第二應(yīng)用程序的用戶接口 定義集合,即作為存儲(chǔ)器中的條目而被引用的用戶接口定義集合。
35、 根據(jù)權(quán)利要求34所述的系統(tǒng),其特征在于通過(guò)與多個(gè)應(yīng)用 程序之一相對(duì)應(yīng)的惟一應(yīng)用程序標(biāo)識(shí)符來(lái)鏈接存儲(chǔ)器中的每個(gè)用戶接10 口定義集合。
36、 根據(jù)權(quán)利要求34或35所述的系統(tǒng),其特征在于第二應(yīng)用程 序提供與用戶接口定義相關(guān)的用戶事件的事件處理。
37、 一種計(jì)算機(jī)程序產(chǎn)品,用于產(chǎn)生用于顯示在無(wú)線設(shè)備(101) 的用戶接口上的屏幕表示(602),將屏幕表示(602)定義為以配置用 于由無(wú)線設(shè)備(101)上提供的多個(gè)應(yīng)用程序(302)所引用的結(jié)構(gòu)定 義語(yǔ)言來(lái)表達(dá)的用戶接口定義集合(600),所述計(jì)算機(jī)程序產(chǎn)品包括 計(jì)算機(jī)可讀介質(zhì);存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)上的存儲(chǔ)器模塊,用于存儲(chǔ)由多個(gè)應(yīng) 用程序(302)進(jìn)行引用的多個(gè)用戶接口定義集合(600); 存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)上的可視化引擎(306),用于接受多個(gè)應(yīng)用程序(302)中的第一應(yīng)用程序的屏幕表示(602)請(qǐng)求,以及 用于解析從存儲(chǔ)器中檢索出的選定用戶接口定義集合(600)的結(jié)構(gòu)定 義語(yǔ)言,以確定屏幕表示(602)的用戶接口元素,選定的用戶接口定 義(600)對(duì)應(yīng)于所請(qǐng)求的屏幕表示(602);與可視化引擎模塊(306)相連的屏幕模塊,用于將顯示特征應(yīng)用于用戶接口元素,以產(chǎn)生定義了屏幕表示(602)的屏幕模型(307); 執(zhí)行環(huán)境(312),用于將屏幕模型(307)提供給第一應(yīng)用程序,以便填充顯示環(huán)境和屏幕值;以及存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)上的再現(xiàn)模塊,用于再現(xiàn)屏幕模型 30 (307),以便向用戶接口提供屏幕表示(602); 其中無(wú)線設(shè)備(101)的用戶與用戶接口(202)上的屏幕表示(602) 進(jìn)行交互。
全文摘要
本發(fā)明提供了產(chǎn)生用于顯示在無(wú)線設(shè)備的用戶接口上的屏幕表示的方法,將屏幕表示定義為以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá)的用戶接口定義集合,結(jié)構(gòu)定義語(yǔ)言被配置為由被配置為在無(wú)線設(shè)備上運(yùn)行的多個(gè)應(yīng)用程序所引用,包括以下步驟接收來(lái)自多個(gè)應(yīng)用程序中的第一應(yīng)用程序的對(duì)屏幕表示的請(qǐng)求;從無(wú)線設(shè)備上的存儲(chǔ)器中檢索與屏幕表示相對(duì)應(yīng)的用戶接口定義集合;解析用戶接口定義的結(jié)構(gòu)定義語(yǔ)言,以確定用戶接口元素;將顯示特征應(yīng)用于用戶接口元素,以產(chǎn)生屏幕模型;以及將屏幕模型提供給第一應(yīng)用程序,以便以顯示條件和屏幕值進(jìn)行填充,以產(chǎn)生屏幕表示;其中將屏幕表示配置用于隨后對(duì)用戶接口的顯示,以便通過(guò)用戶事件與用戶進(jìn)行交互。本發(fā)明還提供了相應(yīng)系統(tǒng)。
文檔編號(hào)G06F9/44GK101382889SQ20081017089
公開(kāi)日2009年3月11日 申請(qǐng)日期2005年2月28日 優(yōu)先權(quán)日2004年2月27日
發(fā)明者卡門(mén)·B·維塔諾夫, 布倫杜沙·L·弗里奇, 邁克爾·申菲爾德 申請(qǐng)人:捷訊研究有限公司