欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于構(gòu)建無(wú)線應(yīng)用程序的系統(tǒng)和方法

文檔序號(hào):6537189閱讀:215來(lái)源:國(guó)知局
專利名稱:用于構(gòu)建無(wú)線應(yīng)用程序的系統(tǒng)和方法
技術(shù)領(lǐng)域
本申請(qǐng)大體上涉及無(wú)線應(yīng)用程序在無(wú)線設(shè)備的用戶接口上的顯示。
背景技術(shù)
今天,所使用的終端設(shè)備的數(shù)量持續(xù)增加,如移動(dòng)電話、具有無(wú)線通信能力的PDA和雙向?qū)ず魴C(jī)等。運(yùn)行在這些設(shè)備上的軟件應(yīng)用程序增加了其功能性。例如,移動(dòng)電話可以包括檢索城市范圍的天氣的應(yīng)用程序,或者PDA可以包括允許用戶購(gòu)買雜貨的應(yīng)用程序。這些軟件應(yīng)用程序利用對(duì)網(wǎng)絡(luò)的連接性,以便向用戶提供及時(shí)有用的服務(wù)。但是,由于一些設(shè)備的受限資源,以及向設(shè)備傳遞大量數(shù)據(jù)的復(fù)雜性,開發(fā)針對(duì)多種設(shè)備的軟件應(yīng)用程序仍然是困難而耗時(shí)的任務(wù)。
目前,將設(shè)備配置為通過(guò)基于因特網(wǎng)的瀏覽器和/或本地應(yīng)用程序與網(wǎng)絡(luò)服務(wù)進(jìn)行通信。瀏覽器具有適用于針對(duì)多種不同的設(shè)備進(jìn)行跨平臺(tái)操作的優(yōu)點(diǎn),但具有請(qǐng)求來(lái)自網(wǎng)絡(luò)服務(wù)的頁(yè)面(HTML中的屏幕定義)的缺點(diǎn),其妨礙了包含在屏幕中的數(shù)據(jù)的持續(xù)性。本地應(yīng)用程序具有針對(duì)設(shè)備平臺(tái)的類型專門研發(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),必需開發(fā)相同應(yīng)用程序的多個(gè)版本,以及尺寸相對(duì)較大,從而給設(shè)備的存儲(chǔ)器資源造成了嚴(yán)重的負(fù)擔(dān)。此外,應(yīng)用程序開發(fā)商需要使用如Java和C++等編程語(yǔ)言的經(jīng)驗(yàn),以便構(gòu)建這些硬編碼本地應(yīng)用程序,包括屏幕元素與數(shù)據(jù)元素的硬編碼靜態(tài)交互。存在對(duì)能夠運(yùn)行在客戶端設(shè)備上的應(yīng)用程序的需要,其具有利用數(shù)據(jù)和屏幕元素之間的動(dòng)態(tài)交互的廣泛的運(yùn)行時(shí)刻環(huán)境,以及具有對(duì)設(shè)備資源的減少的消耗。
這里所公開的系統(tǒng)和方法提供了一種鏈接屏幕和數(shù)據(jù)組件定義,以排除或消除上述缺點(diǎn)中的至少一些。

發(fā)明內(nèi)容
需要的是,通過(guò)降低對(duì)任何外在編碼的需求以及降低在提供時(shí)由應(yīng)用程序所利用的設(shè)備資源,來(lái)降低開發(fā)無(wú)線應(yīng)用程序中所涉及的復(fù)雜度。描述了一種通過(guò)在應(yīng)用程序數(shù)據(jù)域和UI屏幕和控制之間實(shí)現(xiàn)直接映射來(lái)有效管理用戶接口(UI)的系統(tǒng)和方法。所述設(shè)備具有智能無(wú)線設(shè)備運(yùn)行時(shí)刻環(huán)境(設(shè)備運(yùn)行時(shí)刻),提供基本服務(wù)集合來(lái)管理無(wú)線應(yīng)用程序,包括一系列鏈接屏幕和數(shù)據(jù)組件定義,并且其交互可以簡(jiǎn)化開發(fā)勞動(dòng)和減少資源分配。利用原子數(shù)據(jù)組件定義來(lái)定義針對(duì)該類應(yīng)用程序的數(shù)據(jù)域。利用原子屏幕組件定義來(lái)定義設(shè)備用戶接口和數(shù)據(jù)組件之間的通信。利用如XML等結(jié)構(gòu)定義語(yǔ)言在元數(shù)據(jù)中描述屏幕和數(shù)據(jù)組件定義。將屏幕和數(shù)據(jù)組件定義之間的關(guān)系以屏幕/數(shù)據(jù)映射的形式嵌入在XML定義中。典型地,從一些下層數(shù)據(jù)組件中獲得用于顯示的再現(xiàn)屏幕,并且受到用戶事件影響的屏幕控制會(huì)影響應(yīng)用程序的當(dāng)前狀態(tài)(或數(shù)據(jù)表示)。將對(duì)應(yīng)用程序域數(shù)據(jù)的改變自動(dòng)地與用戶接口同步,并且將用戶輸入數(shù)據(jù)自動(dòng)反映在應(yīng)用程序域數(shù)據(jù)中。在該同步之后的主要機(jī)制是屏幕和數(shù)據(jù)的映射。該機(jī)制能夠創(chuàng)建動(dòng)態(tài)和交互屏幕??梢詫?duì)數(shù)據(jù)組件的所有變化立即反映在屏幕上,反之亦然。該模型允許根據(jù)服務(wù)器到設(shè)備通知來(lái)創(chuàng)建有效無(wú)線應(yīng)用程序。將從服務(wù)器異步推送的數(shù)據(jù)更新即時(shí)地反映在UI屏幕處。
根據(jù)本發(fā)明,提出了一種根據(jù)顯示在無(wú)線設(shè)備的用戶接口上的數(shù)據(jù)對(duì)象來(lái)產(chǎn)生無(wú)線應(yīng)用程序的屏幕元素的方法,所述應(yīng)用程序包括具有至少一個(gè)數(shù)據(jù)字段定義的數(shù)據(jù)組件和具有至少一個(gè)屏幕元素定義的屏幕組件,所述組件定義以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá),所述方法包括以下步驟選擇與為了顯示而選擇的屏幕元素相對(duì)應(yīng)的屏幕組件;識(shí)別屏幕組件中所存在的至少一個(gè)映射,所述映射用于指定由表示所述映射的標(biāo)識(shí)符所定義的屏幕組件和數(shù)據(jù)組件之間的關(guān)系;根據(jù)映射標(biāo)識(shí)符來(lái)選擇由所述映射所映射的數(shù)據(jù)組件;獲取與映射的數(shù)據(jù)組件的數(shù)據(jù)字段定義相對(duì)應(yīng)的數(shù)據(jù)對(duì)象字段值;根據(jù)屏幕元素定義產(chǎn)生屏幕元素,以便根據(jù)映射數(shù)據(jù)組件中所定義的數(shù)據(jù)字段定義的格式來(lái)包括數(shù)據(jù)對(duì)象字段值。
根據(jù)本發(fā)明的另一方面,提出了一種根據(jù)顯示在無(wú)線設(shè)備的用戶接口上的數(shù)據(jù)對(duì)象來(lái)產(chǎn)生無(wú)線應(yīng)用程序的屏幕元素的系統(tǒng),所述應(yīng)用程序包括具有至少一個(gè)數(shù)據(jù)字段定義的數(shù)據(jù)組件和具有至少一個(gè)屏幕元素定義的屏幕組件,所述組件定義以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá),所述方法包括以下步驟映射管理器,用于選擇與屏幕元素相對(duì)應(yīng)的屏幕組件并識(shí)別屏幕組件中所存在的至少一個(gè)映射,所述映射用于指定由表示所述映射的標(biāo)識(shí)符所定義的屏幕組件和數(shù)據(jù)組件之間的關(guān)系,所述映射管理器根據(jù)映射標(biāo)識(shí)符來(lái)選擇由所述映射所映射的數(shù)據(jù)組件;數(shù)據(jù)管理器,用于獲取與映射的數(shù)據(jù)組件的數(shù)據(jù)字段定義相對(duì)應(yīng)的數(shù)據(jù)對(duì)象字段值;以及屏幕管理器,用于根據(jù)屏幕元素定義產(chǎn)生屏幕元素,以便根據(jù)映射數(shù)據(jù)組件中所定義的數(shù)據(jù)字段定義的格式來(lái)包括數(shù)據(jù)對(duì)象字段值。
根據(jù)本發(fā)明的另一方面,提出了一種根據(jù)顯示在無(wú)線設(shè)備的用戶接口上的屏幕元素的變化來(lái)產(chǎn)生無(wú)線應(yīng)用程序的數(shù)據(jù)對(duì)象的方法,所述應(yīng)用程序包括具有至少一個(gè)數(shù)據(jù)字段定義的數(shù)據(jù)組件和具有至少一個(gè)屏幕元素定義的屏幕組件,所述組件定義以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá),所述方法包括以下步驟選擇與所述屏幕元素相對(duì)應(yīng)的屏幕組件;識(shí)別屏幕組件中所存在的至少一個(gè)映射,所述映射用于指定屏幕組件和數(shù)據(jù)組件之間的關(guān)系;選擇由所述映射所映射的數(shù)據(jù)組件;根據(jù)與所映射的數(shù)據(jù)組件相對(duì)應(yīng)的屏幕元素來(lái)獲取變化值;根據(jù)映射數(shù)據(jù)組件中所定義的數(shù)據(jù)字段定義的格式,將所述變化值分配給數(shù)據(jù)對(duì)象的數(shù)據(jù)字段值。
根據(jù)本發(fā)明的另一方面,提出了一種根據(jù)顯示在無(wú)線設(shè)備的用戶接口上的數(shù)據(jù)對(duì)象來(lái)產(chǎn)生無(wú)線應(yīng)用程序的屏幕元素的設(shè)備,所述應(yīng)用程序包括具有至少一個(gè)數(shù)據(jù)字段定義的數(shù)據(jù)組件和具有至少一個(gè)屏幕元素定義的屏幕組件,所述組件定義以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá),所述方法包括以下步驟選擇與為了顯示而選擇的屏幕元素相對(duì)應(yīng)的屏幕組件的裝置;識(shí)別屏幕組件中所存在的至少一個(gè)映射的裝置,所述映射用于指定屏幕組件和數(shù)據(jù)組件之間的關(guān)系;選擇由所述映射所映射的數(shù)據(jù)組件的裝置;獲取與映射數(shù)據(jù)組件的數(shù)據(jù)字段定義相對(duì)應(yīng)的數(shù)據(jù)對(duì)象字段值的裝置;根據(jù)屏幕元素定義產(chǎn)生屏幕元素以便根據(jù)映射數(shù)據(jù)組件中所定義的數(shù)據(jù)字段定義的格式來(lái)包括數(shù)據(jù)對(duì)象字段值的裝置。
根據(jù)本發(fā)明的另一方面,提出了一種根據(jù)顯示在無(wú)線設(shè)備的用戶接口上的數(shù)據(jù)對(duì)象來(lái)產(chǎn)生無(wú)線應(yīng)用程序的屏幕元素的計(jì)算機(jī)程序產(chǎn)品,所述應(yīng)用程序包括具有至少一個(gè)數(shù)據(jù)字段定義的數(shù)據(jù)組件和具有至少一個(gè)屏幕元素定義的屏幕組件,所述組件定義以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá),所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì);存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的映射模塊,用于選擇與所述屏幕元素相對(duì)應(yīng)的屏幕組件并識(shí)別屏幕組件中所存在的至少一個(gè)映射,所述映射用于指定由表示所述映射的標(biāo)識(shí)符所定義的屏幕組件和數(shù)據(jù)組件之間的關(guān)系,所述映射模塊用于根據(jù)映射標(biāo)識(shí)符來(lái)選擇由所述映射映射的數(shù)據(jù)組件;存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的數(shù)據(jù)模塊,用于獲取與映射數(shù)據(jù)組件的數(shù)據(jù)字段定義相對(duì)應(yīng)的數(shù)據(jù)對(duì)象字段值;以及存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的屏幕模塊,用于根據(jù)屏幕元素定義產(chǎn)生屏幕元素,以便根據(jù)映射數(shù)據(jù)組件中所定義的數(shù)據(jù)字段定義的格式來(lái)包括數(shù)據(jù)對(duì)象字段值。


參考僅作為實(shí)例的附圖,在以下詳細(xì)描述中,這些和其他特征將變得更加明顯,其中,圖1是網(wǎng)絡(luò)系統(tǒng)的方框圖;圖2是圖1所示的無(wú)線設(shè)備的方框圖;圖3是圖2所示的設(shè)備的智能框架的方框圖;圖4是圖2所示的組件應(yīng)用程序的方框圖;圖5示出了用于圖4所示的示例組件應(yīng)用程序的典型應(yīng)用程序打包和主持模型;圖6示出了實(shí)現(xiàn)圖5所示的組件應(yīng)用程序的示例方法;
圖7示出了實(shí)現(xiàn)圖5所示的組件應(yīng)用程序的另一示例方法;圖8示出了針對(duì)圖2所示的應(yīng)用程序的數(shù)據(jù)和屏幕組件之間的映射;圖9示出了針對(duì)圖8所示的映射的初始屏幕顯示的操作;圖10示出了針對(duì)圖8所示的映射的根據(jù)用戶事件對(duì)數(shù)據(jù)對(duì)象的更新;以及圖11示出了針對(duì)圖8所示的映射的根據(jù)異步消息對(duì)數(shù)據(jù)對(duì)象的更新。
具體實(shí)施例方式
網(wǎng)絡(luò)系統(tǒng)參照?qǐng)D1,網(wǎng)絡(luò)系統(tǒng)10包括多個(gè)終端設(shè)備100,用于通過(guò)如但不局限于因特網(wǎng)的廣域網(wǎng)(WAN)104與一個(gè)或多個(gè)普通服務(wù)106進(jìn)行交互。這些設(shè)備100可以是但并不局限于PDA、尋呼機(jī)、蜂窩電話等。由服務(wù)106提供的普通服務(wù)可以是網(wǎng)絡(luò)服務(wù)和/或其他服務(wù),如但并不局限于SQL數(shù)據(jù)庫(kù)、基于IDL的CORBA和RMI/IIOP系統(tǒng)、遺留數(shù)據(jù)庫(kù)、J2EE、SAP RFC和COM/DCOM組件。此外,系統(tǒng)10還可以具有無(wú)線網(wǎng)絡(luò)102,用于將無(wú)線設(shè)備100與WAN 104相連。應(yīng)當(dāng)意識(shí)到,其他設(shè)備和計(jì)算機(jī)(未示出)可以通過(guò)WAN 104和除圖1所示的其他關(guān)聯(lián)網(wǎng)絡(luò)與網(wǎng)絡(luò)服務(wù)106相連。為了簡(jiǎn)單,為了在下面描述系統(tǒng)10,選擇根據(jù)計(jì)劃(schema)定義的網(wǎng)絡(luò)服務(wù)106。然而,應(yīng)當(dāng)意識(shí)到,如果需要,可以由其他服務(wù)來(lái)替換該網(wǎng)絡(luò)服務(wù)106。此外,為了簡(jiǎn)單,此后將系統(tǒng)10的網(wǎng)絡(luò)102、104稱為網(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à)格和可用性。網(wǎng)絡(luò)服務(wù)106是通信設(shè)備100上的客戶端應(yīng)用程序302(參見圖2)通過(guò)無(wú)線網(wǎng)絡(luò)104與之相互作用、以便向通信設(shè)備100的用戶提供實(shí)用性的系統(tǒng)的示例。
為了滿足適當(dāng)?shù)恼?qǐng)求/相應(yīng)消息105,網(wǎng)絡(luò)服務(wù)106可以通過(guò)多種協(xié)議(如但并不局限于HTTP和組件API)與應(yīng)用程序服務(wù)器110進(jìn)行通信,以便在設(shè)備100上提供其時(shí),向客戶端應(yīng)用程序302(參見圖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)當(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í)到,設(shè)備100可以通過(guò)網(wǎng)絡(luò)104與一個(gè)或多個(gè)網(wǎng)絡(luò)服務(wù)106和關(guān)聯(lián)應(yīng)用程序服務(wù)器110進(jìn)行通信。
服務(wù)器環(huán)境參照?qǐng)D1,網(wǎng)絡(luò)服務(wù)106提供由設(shè)備100上的客戶端應(yīng)用程序302(參見圖2)使用的信息消息105(同步地或異步地)??蛇x地,或此外,網(wǎng)絡(luò)服務(wù)106可以接收和使用由設(shè)備100上所執(zhí)行的客戶端應(yīng)用程序302所提供的信息消息105,或者以設(shè)備100上所執(zhí)行的客戶端應(yīng)用程序302的名義執(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)行通信。在一些實(shí)現(xiàn)中,SOAP是定義了消息105的XML格式的規(guī)范,包括SOAP中所包括的公知形式的XML段。SOAP還支持其中SOAP消息105作為回繞XML文檔的回繞符(wrapper)的文檔樣式應(yīng)用程序。SOAP的另一可選部分定義了HTTP綁定(即,報(bào)頭),而一些SOAP實(shí)現(xiàn)支持MSMQ、MQ系列、SMTP或TCP/IP傳送協(xié)議??蛇x地,網(wǎng)絡(luò)服務(wù)106可以使用其他已知的通信協(xié)議、消息105格式,以及可以按照除上述之外的其他網(wǎng)絡(luò)服務(wù)語(yǔ)言來(lái)表達(dá)接口。
客戶端環(huán)境參照?qǐng)D2,通過(guò)網(wǎng)絡(luò)104傳輸組件應(yīng)用程序302,并加載到設(shè)備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上的組件框架206執(zhí)行組件應(yīng)用程序302,其可以將組件應(yīng)用程序302轉(zhuǎn)換為本地代碼,并由設(shè)備基礎(chǔ)設(shè)施204中的處理器208執(zhí)行??蛇x地,可以通過(guò)設(shè)備100上的其他軟件模塊或操作系統(tǒng)來(lái)解釋組件應(yīng)用程序302。在任何情況下,在由設(shè)備100提供的終端運(yùn)行時(shí)刻環(huán)境下運(yùn)行組件應(yīng)用程序302,從而所述運(yùn)行時(shí)刻環(huán)境是提供用于管理和執(zhí)行典型應(yīng)用程序302行為(如持續(xù)性、消息發(fā)送、屏幕導(dǎo)航和顯示等)的基本服務(wù)集合的智能軟件框架。
再次參照?qǐng)D1,可以對(duì)由設(shè)備100提供的客戶端運(yùn)行時(shí)刻環(huán)境進(jìn)行配置,從而使設(shè)備100作為網(wǎng)絡(luò)服務(wù)106的網(wǎng)絡(luò)客戶端進(jìn)行操作。應(yīng)當(dāng)意識(shí)到,客戶端運(yùn)行時(shí)刻環(huán)境也可以使設(shè)備100成為網(wǎng)絡(luò)104上的任何其他普通計(jì)劃定義服務(wù)的客戶端。設(shè)備100的客戶端運(yùn)行時(shí)刻環(huán)境最好能夠產(chǎn)生、成為其主機(jī)和執(zhí)行設(shè)備100上的客戶端應(yīng)用程序302(其包括數(shù)據(jù)400和屏幕402組件定義——參見圖4和以下的描述)。此外,客戶端運(yùn)行時(shí)刻環(huán)境的特定功能可以包括但并不局限于對(duì)語(yǔ)言的支持、協(xié)調(diào)存儲(chǔ)器分配、聯(lián)網(wǎng)、I/O操作期間的數(shù)據(jù)管理、協(xié)調(diào)設(shè)備100的輸出設(shè)備上的圖形以及提供對(duì)面向核心對(duì)象的類的存取以及支持文件/庫(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)。
優(yōu)選地,設(shè)備100的終端運(yùn)行時(shí)刻環(huán)境支持客戶端應(yīng)用程序302(參見圖2)的駐留可執(zhí)行版本的以下基本功能,例如但并不局限于為設(shè)備100提供通信能力,以便向網(wǎng)絡(luò)服務(wù)106發(fā)送消息105,或者向通過(guò)網(wǎng)絡(luò)104相連的任何其他普通計(jì)劃定義服務(wù)發(fā)送消息105;在設(shè)備100的輸入設(shè)備上提供用戶的數(shù)據(jù)輸入能力,以便提供網(wǎng)絡(luò)服務(wù)106的輸出消息105的數(shù)據(jù)部分(去往服務(wù)的消息);
提供在輸出設(shè)備上對(duì)網(wǎng)絡(luò)服務(wù)106的響應(yīng)消息105(輸入消息)或不相關(guān)通知的數(shù)據(jù)表示或輸出能力;提供數(shù)據(jù)存儲(chǔ)服務(wù),以便在設(shè)備100的存儲(chǔ)模塊210(參見圖2)中保持本地客戶端數(shù)據(jù);以及提供腳本語(yǔ)言的執(zhí)行環(huán)境,以便協(xié)調(diào)客戶端應(yīng)用程序302的應(yīng)用程序組件400、402(參見圖4)的操作。
參照?qǐng)D2、4和5,客戶端運(yùn)行時(shí)刻(例如,由組件框架206提供)加載包含在組件400、402、404、406定義中的元數(shù)據(jù),并在設(shè)備100上構(gòu)建應(yīng)用程序302的可執(zhí)行版本,例如通過(guò)應(yīng)用程序容器300。存在但并不局限于兩種客戶端運(yùn)行時(shí)刻的操作模型基于模板的本地執(zhí)行和基于元數(shù)據(jù)的執(zhí)行。在基于完全定義組件的應(yīng)用程序302(具有數(shù)據(jù)400、屏幕402、消息404和工作流組件406-見圖4)的情況下,框架206可以利用本地代碼,實(shí)現(xiàn)基于模板的本地執(zhí)行模型,用于主持在設(shè)備100上預(yù)先構(gòu)造的數(shù)據(jù)、消息和屏幕模板500。當(dāng)加載應(yīng)用程序302定義時(shí),由組件框架206提供的客戶端環(huán)境以來(lái)自組件400、402、404的元數(shù)據(jù)定義參數(shù)填充模板500,并按照本地格式構(gòu)建可執(zhí)行客戶端應(yīng)用程序302。可以將工作流組件406的工作流腳本(例如ECMA腳本)轉(zhuǎn)換為本地代碼,或者使用適當(dāng)?shù)哪_本解釋器502(例如,ECMA腳本解釋器)執(zhí)行到本地代碼重定向器504,其中重定向器504通過(guò)本地運(yùn)行時(shí)刻引擎506,將對(duì)腳本語(yǔ)言的調(diào)用解釋為對(duì)本地組件的操作。利用基于元數(shù)據(jù)的執(zhí)行,組件框架206的運(yùn)行時(shí)刻環(huán)境或者將組件400、402、404、406定義保持為XML(例如),其在執(zhí)行時(shí)進(jìn)行解析,或者使用XML(例如)節(jié)點(diǎn)的本地表示。在執(zhí)行期間,本地運(yùn)行時(shí)刻引擎506對(duì)組件400、402、404、406的定義進(jìn)行操作,而并非對(duì)本地組件實(shí)體進(jìn)行操作。應(yīng)當(dāng)意識(shí)到,另一類執(zhí)行模型將包括具有針對(duì)數(shù)據(jù)和屏幕的組件定義400、402的應(yīng)用程序,同時(shí)具有針對(duì)應(yīng)用程序302的剩余消息和工作流元素的更硬編碼(more hard-coded)405的方法。
因此,本地客戶端運(yùn)行時(shí)刻環(huán)境為客戶端應(yīng)用程序302提供了對(duì)設(shè)備100、處理器208的功能性以及設(shè)備基礎(chǔ)設(shè)施204的關(guān)聯(lián)操作系統(tǒng)的接口。優(yōu)選地,運(yùn)行時(shí)刻環(huán)境在設(shè)備100上提供受控、安全和穩(wěn)定的環(huán)境,在其中執(zhí)行組件應(yīng)用程序302。運(yùn)行時(shí)刻環(huán)境提供了組件400、402定義(以及如果使用,定義404、406),以創(chuàng)建專用于設(shè)備100的各個(gè)設(shè)備基礎(chǔ)設(shè)施204的實(shí)際網(wǎng)絡(luò)客戶端。應(yīng)當(dāng)意識(shí)到,為了簡(jiǎn)單,以下描述將涉及由組件框架206提供的客戶端運(yùn)行時(shí)刻環(huán)境,僅作為示例。
通信設(shè)備再次參考圖2,設(shè)備100是如但并不局限于移動(dòng)電話、PDA、雙向?qū)ず魴C(jī)或雙模式通信設(shè)備的設(shè)備。所述設(shè)備100包括網(wǎng)絡(luò)連接接口200,例如無(wú)線收發(fā)機(jī),通過(guò)連接218與設(shè)備基礎(chǔ)設(shè)施204相連。在設(shè)備100的操作期間,連接接口200可通過(guò)無(wú)線鏈路(例如RF、IR等)與如無(wú)線網(wǎng)絡(luò)102等網(wǎng)絡(luò)104相連,這使設(shè)備100能夠彼此通信且通過(guò)網(wǎng)絡(luò)104與外部系統(tǒng)(如網(wǎng)絡(luò)設(shè)備106)進(jìn)行通信,并且協(xié)調(diào)客戶端應(yīng)用程序302和服務(wù)106之間的請(qǐng)求/響應(yīng)消息105(見圖1)。網(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可以使用無(wú)線數(shù)據(jù)傳輸協(xié)議,例如但并不局限于DataTAC、GPRS或CDMA。
再次參考圖2,設(shè)備100還具有通過(guò)連接222與設(shè)備基礎(chǔ)設(shè)施204相連的用戶接口202以便與用戶(未示出)進(jìn)行交互。用戶接口202包括一個(gè)或多個(gè)用戶輸入設(shè)備,如但并不局限于QWERTY鍵盤、小鍵盤、跟蹤輪、鐵筆、鼠標(biāo)、麥克風(fēng)和用戶輸出設(shè)備(例如LCD屏幕顯示器)和/或揚(yáng)聲器。如果屏幕是對(duì)觸摸敏感的,則還可以將所述顯示器用作由設(shè)備基礎(chǔ)設(shè)施204控制的用戶輸入設(shè)備。由設(shè)備100的用戶采用用戶接口202來(lái)協(xié)調(diào)系統(tǒng)10(見圖1)上的請(qǐng)求/響應(yīng)消息105,如由框架206的客戶端應(yīng)用程序302所采用的那樣,下面將進(jìn)一步描述。
再次參考圖2,由設(shè)備基礎(chǔ)設(shè)施204啟動(dòng)設(shè)備100的操作。所述設(shè)備基礎(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的操作。此外,應(yīng)當(dāng)意識(shí)到,設(shè)備基礎(chǔ)設(shè)施204可以與處理器208相連的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)212,用于向處理器提供指令和/或加載/更新存儲(chǔ)模塊210的客戶端應(yīng)用程序302。所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)212可以包括硬件和/或軟件,僅作為示例,例如磁盤、磁帶、可光學(xué)讀取的介質(zhì)(例如CD/DVD ROM)和存儲(chǔ)卡。在每一種情況下,計(jì)算機(jī)可讀介質(zhì)212可以采用小型盤、軟盤、盒式磁帶、硬盤驅(qū)動(dòng)器、固態(tài)存儲(chǔ)卡或RAM的形式,設(shè)置在存儲(chǔ)模塊210中。應(yīng)當(dāng)注意,以上所列出的計(jì)算機(jī)可讀介質(zhì)212可以或者單獨(dú)使用或者組合使用。
組件之間的映射關(guān)系實(shí)際上,由開發(fā)者對(duì)組件400、402的表達(dá)典型地可以具有重疊內(nèi)容,而應(yīng)用程序302的每一個(gè)組件400、402的行為是截然不同的。因此,通過(guò)識(shí)別通常由以下下層數(shù)據(jù)元素來(lái)產(chǎn)生用戶接口202(見圖1)的內(nèi)容的事實(shí)并且根據(jù)這些組件400、402的表達(dá)之間的類似性,便于將特定的映射804(見圖8)引入到屏幕組件402的表達(dá)中,下面將進(jìn)一步描述。參考圖4和8,這些映射804實(shí)質(zhì)上是到與屏幕組件402相關(guān)的屏幕元素802的表達(dá)(屏幕元素定義)、以及在執(zhí)行應(yīng)用程序302期間屏幕組件402在運(yùn)行時(shí)刻如何動(dòng)作的快捷方式。映射804是在屏幕組件402的屏幕元素定義和數(shù)據(jù)組件400定義之間的已聲明關(guān)系。關(guān)于屏幕組件402的表達(dá),使用映射804可以減少描述組件402所需的元數(shù)據(jù)量。因此,使用映射804可以對(duì)描述應(yīng)用程序302所需的“碼”量具有直接影響。關(guān)于組件402在運(yùn)行時(shí)刻如何動(dòng)作,映射804指定了如何由屏幕元素802聲明來(lái)解析和影響已鏈接的數(shù)據(jù)元素(由數(shù)據(jù)組件400來(lái)描述)。在這一點(diǎn)上,指定映射804可以減少開發(fā)者在應(yīng)用程序302中提供附加專用屏幕處理碼的需要。
參考圖8,屏幕組件402的屏幕表示(見圖4)由屏幕元素802構(gòu)成,例如但并不局限于在用戶接口202上顯示且與相應(yīng)數(shù)據(jù)對(duì)象800的數(shù)據(jù)字段示例相關(guān)的UI控制。因此,將每一個(gè)屏幕元素802綁定和映射(804)到各個(gè)數(shù)據(jù)對(duì)象800上。應(yīng)用程序302的用戶可以在用戶接口202上選擇屏幕元素802(見圖1)并在傳播到映射到屏幕元素802上的數(shù)據(jù)對(duì)象800。類似地,可以將對(duì)數(shù)據(jù)對(duì)象800的所有修改(由應(yīng)用程序302邏輯或輸入服務(wù)器消息105驅(qū)動(dòng))反映在映射到這些數(shù)據(jù)對(duì)象800上的屏幕元素802中。通過(guò)映射管理器312來(lái)監(jiān)視對(duì)用戶事件的跟蹤和對(duì)數(shù)據(jù)對(duì)象800的任何直接修改,如下所述。所述映射804用于標(biāo)識(shí)和修改由映射802所影響的數(shù)據(jù)對(duì)象800。映射804隔離相應(yīng)屏幕組件404的屏幕元素802與其鏈接的數(shù)據(jù)組件400的數(shù)據(jù)對(duì)象800。
應(yīng)當(dāng)意識(shí)到,屏幕組件402或數(shù)據(jù)組件400定義包含映射800,定義了數(shù)據(jù)對(duì)象800和屏幕元素802之間的關(guān)系或數(shù)據(jù)對(duì)象800的各個(gè)數(shù)據(jù)字段(或數(shù)據(jù)字段組)與屏幕元素802之間的關(guān)系。應(yīng)當(dāng)意識(shí)到,可以將數(shù)據(jù)對(duì)象800傳遞到用戶接口202,作為參數(shù)。在這種情況下,將從傳遞的參數(shù)中提取映射到屏幕元素804上的數(shù)據(jù)對(duì)象800的數(shù)據(jù)字段值。例如,可以將屏幕組件402的屏幕字段定義中所定義的編輯控制(屏幕元素802)映射到鏈接的數(shù)據(jù)組件400的數(shù)據(jù)字段定義(即一對(duì)一映射804),或者可以將屏幕組件402的屏幕字段中定義的選擇控制(屏幕元素802)映射到數(shù)據(jù)組件400集合的特定數(shù)據(jù)字段中(即一對(duì)多映射804)。
參考圖4和8,如所描述的,除了其他屬性之外,可以將屏幕組件元數(shù)據(jù)映射到鏈接的數(shù)據(jù)組件400的數(shù)據(jù)字段定義。例如,可以將單一屏幕元素802映射到·數(shù)據(jù)組件400的數(shù)據(jù)字段定義之一,或者·通過(guò)主要關(guān)鍵字(或映射標(biāo)識(shí)符)對(duì)數(shù)據(jù)組件400的所有數(shù)據(jù)字段定義-在這種情況下,將映射804解析為主要關(guān)鍵字字段。
可以將選擇/列表屏幕元素802映射到·數(shù)據(jù)組件400的所有示例的集合,或者·作為集合的數(shù)據(jù)組件400的數(shù)據(jù)字段定義之一請(qǐng)參考以下的示例組件應(yīng)用程序302,映射到“User”數(shù)據(jù)組件400的特定數(shù)據(jù)對(duì)象800的“name”字段上的編輯屏幕元素802“ebName”的示例和映射到“User”數(shù)據(jù)組件400的所有數(shù)據(jù)對(duì)象800的“name”字段上的選擇屏幕元素804“cbName”的示例。
設(shè)備框架再次參考圖2,設(shè)備100的框架206通過(guò)連接220與設(shè)備基礎(chǔ)設(shè)施204相連。客戶運(yùn)行時(shí)刻環(huán)境設(shè)備100由框架206提供,并且優(yōu)選地,能夠根據(jù)元數(shù)據(jù)定義,產(chǎn)生、主持和執(zhí)行客戶端應(yīng)用程序302(其中包括組件定義-如下所示)。設(shè)備運(yùn)行時(shí)刻(Device Runtime)可以被認(rèn)為是提供基本服務(wù)集合304以管理和執(zhí)行典型應(yīng)用程序302行為(例如但并不局限于持續(xù)、提供、消息傳遞、屏幕導(dǎo)航和用戶接口/屏幕服務(wù))的智能軟件框架206。因此,框架206為客戶端應(yīng)用程序302提供本地客戶運(yùn)行時(shí)刻環(huán)境,并且是與處理器208的設(shè)備100功能的接口,并且是設(shè)備基礎(chǔ)設(shè)施204的相關(guān)操作系統(tǒng)。框架206通過(guò)優(yōu)選地在設(shè)備100上提供受控、安全和穩(wěn)定的環(huán)境來(lái)提供運(yùn)行時(shí)刻環(huán)境,其中組件應(yīng)用程序302在如應(yīng)用程序容器或執(zhí)行環(huán)境300中執(zhí)行。
參考圖3,框架206可以用于在終端運(yùn)行時(shí)刻環(huán)境內(nèi)執(zhí)行客戶端應(yīng)用程序302(如網(wǎng)絡(luò)服務(wù)客戶端應(yīng)用程序)并且通過(guò)網(wǎng)絡(luò)104上的請(qǐng)求/響應(yīng)消息105,能夠支持對(duì)網(wǎng)絡(luò)服務(wù)106和相關(guān)應(yīng)用程序服務(wù)器110的訪問(wèn)(見圖1)。組件應(yīng)用程序302包括由框架206執(zhí)行的軟件應(yīng)用程序。每一次當(dāng)執(zhí)行應(yīng)用程序302時(shí),框架206為應(yīng)用程序302的每一個(gè)組件400、402(以及如果使用,則定義4040、406-見圖4)創(chuàng)建執(zhí)行環(huán)境300。執(zhí)行環(huán)境300加載應(yīng)用程序302的組件400、402(如果使用,則定義404、406),并且能夠創(chuàng)建由設(shè)備基礎(chǔ)設(shè)施204中的處理器208執(zhí)行的本地代碼。因此,框架206提供主機(jī)執(zhí)行環(huán)境300,用于規(guī)定組件400、402(如果使用,定義404、406)的定義以創(chuàng)建專用于為通信設(shè)備100的每一個(gè)相應(yīng)設(shè)備基礎(chǔ)設(shè)施204的實(shí)際網(wǎng)絡(luò)客戶。僅作為示例,執(zhí)行環(huán)境300可以根據(jù)如上所述的基于模板的本地執(zhí)行和基于元數(shù)據(jù)的執(zhí)行模型來(lái)規(guī)定應(yīng)用程序302。所述執(zhí)行環(huán)境300可以被被稱為客戶端應(yīng)用程序302的智能主機(jī)容器,并且可以負(fù)責(zé)分析屏幕值(屏幕元素802,見圖8)和更新存儲(chǔ)模塊210中的數(shù)值表示(數(shù)據(jù)對(duì)象800)。
再次參考圖3,在特定服務(wù)并未被包括作為組件400、402(如果使用,定義404、406-見圖4)或者被接收為作為組件應(yīng)用程序302的一部分的單獨(dú)組件(未示出)的情況下,框架206還向客戶端應(yīng)用程序302提供框架服務(wù)304(標(biāo)準(zhǔn)普通服務(wù)集合)。應(yīng)用程序302具有與執(zhí)行環(huán)境300的通信,如果需要,能夠協(xié)調(diào)與框架服務(wù)304的通信216。框架206的框架服務(wù)304通過(guò)與設(shè)備基礎(chǔ)設(shè)施204的連接220來(lái)協(xié)調(diào)通信。因此,由框架206和相關(guān)服務(wù)304向客戶端應(yīng)用程序302提供對(duì)設(shè)備基礎(chǔ)設(shè)施204、用戶接口202和網(wǎng)絡(luò)接口200的訪問(wèn)。應(yīng)當(dāng)意識(shí)到,設(shè)備基礎(chǔ)設(shè)施204的操作系統(tǒng)的一部分(見圖2)可以表示執(zhí)行環(huán)境300和所選的框架服務(wù)304的服務(wù)/管理器。
參考圖3和8,框架服務(wù)304包括如但并不局限于通信管理器306、表示管理器308、數(shù)據(jù)管理器310,并且可以包括訪問(wèn)服務(wù)、提供服務(wù)和實(shí)用服務(wù)。訪問(wèn)服務(wù)(未示出)提供對(duì)通信設(shè)備100上存在的其他軟件應(yīng)用程序的應(yīng)用程序302訪問(wèn)。提供服務(wù)(未示出)管理在通信設(shè)備100上的軟件應(yīng)用程序302的提供。應(yīng)用程序提供可以包括請(qǐng)求和接收新的和更新的應(yīng)用程序302;配置用于訪問(wèn)可通過(guò)網(wǎng)絡(luò)104訪問(wèn)的服務(wù)的應(yīng)用程序302;修改應(yīng)用程序302和服務(wù)的配置;以及刪除應(yīng)用程序302和服務(wù)。實(shí)用服務(wù)(未示出)用于實(shí)現(xiàn)各種通用任務(wù),例如執(zhí)行在串到各種格式的轉(zhuǎn)換中的數(shù)據(jù)操作。
參考圖3、8和9,通信管理器306管理應(yīng)用程序302和外部系統(tǒng)10之間的連接性,例如代表應(yīng)用程序302針對(duì)網(wǎng)絡(luò)服務(wù)106(通過(guò)通信管理器306)發(fā)送/接收的消息105和相關(guān)數(shù)據(jù)。如下所述,可以使用通信管理器306來(lái)實(shí)現(xiàn)一串映射804。當(dāng)在用戶接口202的輸出設(shè)備上輸出其時(shí),表示管理器308管理應(yīng)用程序302的表示(見圖2)。數(shù)據(jù)管理器310允許組件應(yīng)用程序302將數(shù)據(jù)存儲(chǔ)在設(shè)備基礎(chǔ)設(shè)施204的存儲(chǔ)模塊210中(見圖2)、應(yīng)當(dāng)意識(shí)到,管理器310可以用于通過(guò)映射804來(lái)協(xié)調(diào)與屏幕組件402鏈接的數(shù)據(jù)組件400的數(shù)據(jù)實(shí)例的修改/創(chuàng)建??蚣?06還具有映射管理器312,用于跟蹤各個(gè)數(shù)據(jù)對(duì)象800和屏幕元素802之間的各個(gè)關(guān)系(映射)804。將映射存儲(chǔ)在與映射管理器312相連的映射表309中。一旦在用戶接口202上初始化了屏幕元素802,則表示管理器308使用映射管理器312來(lái)保持被顯示的屏幕元素802和相應(yīng)數(shù)據(jù)對(duì)象800之間的動(dòng)態(tài)完整性。當(dāng)由用戶通過(guò)用戶接口202來(lái)修改屏幕元素802之一時(shí),映射管理器312負(fù)責(zé)將該變化通過(guò)數(shù)據(jù)管理器310傳播到存儲(chǔ)器210中的適當(dāng)數(shù)據(jù)對(duì)象800。當(dāng)修改存儲(chǔ)器210中的數(shù)據(jù)對(duì)象800之一時(shí),映射管理器312查看對(duì)象800當(dāng)前是否許是在用戶接口202上,如果是這樣,則負(fù)責(zé)通過(guò)表示管理器308來(lái)更新相應(yīng)屏幕元素802,通過(guò)查閱表409中的相應(yīng)映射804,將該變化反映在數(shù)據(jù)對(duì)象800中。應(yīng)當(dāng)意識(shí)到,通信設(shè)備100的框架服務(wù)304向組件應(yīng)用程序302提供功能,所述應(yīng)用程序302包括上述管理器。
因此,框架206允許在用戶接口202上顯示交互應(yīng)用程序302,典型地,表示來(lái)自應(yīng)用程序302域的信息并允許用戶輸入和修改相關(guān)數(shù)據(jù)對(duì)象800和屏幕元素802。所述框架206通過(guò)在應(yīng)用程序數(shù)據(jù)域(數(shù)據(jù)對(duì)象800)和UI屏幕元素802(例如UI控制)之間實(shí)現(xiàn)直接映射800,提供了一種對(duì)用戶接口202進(jìn)行有效管理的系統(tǒng)。將對(duì)應(yīng)用程序域數(shù)據(jù)對(duì)象800的改變動(dòng)態(tài)地與用戶接口202同步,并且將用戶輸入數(shù)據(jù)自動(dòng)地反映在應(yīng)用程序域數(shù)據(jù)對(duì)象800中。在該同步之后的主要機(jī)制在于成對(duì)的屏幕元素802和數(shù)據(jù)對(duì)象800之間的映射804。所述映射系統(tǒng)涉及利用以如XML等結(jié)構(gòu)語(yǔ)言表達(dá)的元數(shù)據(jù)定義的無(wú)線應(yīng)用程序302。映射804機(jī)制能夠在用戶接口202上創(chuàng)建動(dòng)態(tài)和交互屏幕。可以將對(duì)數(shù)據(jù)對(duì)象800的所有改變同步地反映在用戶接口上,反之亦然。映射804的實(shí)現(xiàn)便于根據(jù)服務(wù)器到設(shè)備通知來(lái)構(gòu)造無(wú)線應(yīng)用程序302。由鏈接的UI屏幕元素802將從服務(wù)器異步推送的數(shù)據(jù)對(duì)象800同步地反映在用戶接口202上。這些映射800可以適合于各種無(wú)線應(yīng)用程序302,例如股票交易、新更新、警告、天氣更新。
應(yīng)用程序組件參考圖2,在框架206的終端運(yùn)行時(shí)刻環(huán)境內(nèi)執(zhí)行客戶端應(yīng)用程序302,并且該應(yīng)用程序支持對(duì)由服務(wù)106提供的網(wǎng)絡(luò)服務(wù)操作的訪問(wèn)(見圖1)。WSDL和SOAP協(xié)議定義清楚地包含消息/數(shù)據(jù)模式。在WSDL網(wǎng)絡(luò)服務(wù)定義中,利用消息和數(shù)據(jù)部分的概念來(lái)定義這些操作,所述消息和數(shù)據(jù)部分用于將網(wǎng)絡(luò)服務(wù)客戶端應(yīng)用程序302定義為相關(guān)數(shù)據(jù)400和消息404組件的集合(見圖4)。
參考圖4,組件應(yīng)用程序302的方框圖包括數(shù)據(jù)組件400、表示組件402。應(yīng)用程序302的剩余消息/工作流部分405可以由消息組件404來(lái)提供,所述消息組件404由工作流組件406通過(guò)與執(zhí)行環(huán)境300的通信214來(lái)協(xié)調(diào),或者可以將其設(shè)置為應(yīng)用程序302的硬編碼元素405(如由用用程序開發(fā)者所定義的)。可以使用結(jié)構(gòu)定義語(yǔ)言將組件400、404(以及如果使用了404)構(gòu)造為元數(shù)據(jù)記錄串,由表示資源的指定屬性的多個(gè)預(yù)定元素構(gòu)成,從而每一個(gè)元素可以具有一個(gè)或多個(gè)值。典型地,每一個(gè)元數(shù)據(jù)計(jì)劃具有定義的特征,如但并不局限于有限數(shù)量的元素、每一個(gè)元素的名稱和每一個(gè)元素的含義。示例元數(shù)據(jù)計(jì)劃包括如但并不局限于都柏林內(nèi)核(DC)、英美編錄規(guī)則(AACR2)、政府信息定位符服務(wù)(GILS)、編碼歸檔描述(EAD)、IMS全球?qū)W術(shù)協(xié)會(huì)(IMS)、以及澳大利亞政府定位符服務(wù)(AGLS)。編碼語(yǔ)法允許由設(shè)備基礎(chǔ)設(shè)施204(見圖2)來(lái)處理組件400、402(以及如果使用,404)的元數(shù)據(jù),并且編碼計(jì)劃包括如但并不局限于XML、HTML、XHTML、XSML、RDF、機(jī)器可讀編錄(MARC)和多用途因特網(wǎng)郵件擴(kuò)展(MIME)。
再次參考圖4和8,數(shù)據(jù)組件400定義了由組件應(yīng)用程序302使用的數(shù)據(jù)對(duì)象800,包括以如本地代碼或XML表示的應(yīng)用程序數(shù)據(jù)。數(shù)據(jù)組件400可以描述的數(shù)據(jù)對(duì)象800的示例是訂單、用戶和金融交易。數(shù)據(jù)組件400描述了描述數(shù)據(jù)對(duì)象800需要什么信息、以及以什么格式來(lái)表達(dá)該信息。例如,數(shù)據(jù)組件400可以定義如但并不局限于格式為數(shù)字的由針對(duì)訂單的惟一標(biāo)識(shí)符構(gòu)成的訂單、格式為串的項(xiàng)目列表、具有日期時(shí)間格式的創(chuàng)建訂單的時(shí)間、格式為串的訂單狀態(tài)、以及具有與數(shù)據(jù)組件400的另一個(gè)的定義相一致的格式的進(jìn)行定購(gòu)的用戶。由于通常根據(jù)網(wǎng)絡(luò)服務(wù)106的編排規(guī)則(choreography rule)將數(shù)據(jù)部分(元素)從消息105傳遞到消息105,因此優(yōu)選地,存在數(shù)據(jù)對(duì)象800的持續(xù)性。可以根據(jù)網(wǎng)絡(luò)服務(wù)106的編排定義(如果可用)來(lái)動(dòng)態(tài)產(chǎn)生數(shù)據(jù)對(duì)象800,或者由應(yīng)用程序設(shè)計(jì)者根據(jù)復(fù)雜類型的定義和/或消息相關(guān)信息來(lái)定義數(shù)據(jù)對(duì)象800。應(yīng)當(dāng)意識(shí)到,可以通過(guò)映射804將屏幕組件402映射到數(shù)據(jù)組件400(見圖9),如以下所描述的。
此外,所述數(shù)據(jù)組件400可以由如但并不局限于HTML、XHTML和XML和其他結(jié)構(gòu)定義語(yǔ)言書寫的一串?dāng)?shù)據(jù)字段定義構(gòu)成,其中數(shù)據(jù)對(duì)象800(見圖9)是根據(jù)數(shù)據(jù)字段定義的數(shù)據(jù)實(shí)例。應(yīng)當(dāng)注意,數(shù)據(jù)對(duì)象定義提供了數(shù)據(jù)字段的結(jié)構(gòu)和其相應(yīng)數(shù)據(jù)類型的定義,從而數(shù)據(jù)對(duì)象800是特定數(shù)據(jù)對(duì)象定義的實(shí)例。數(shù)據(jù)字段包括數(shù)據(jù)對(duì)象定義且每一個(gè)數(shù)據(jù)字段具有相關(guān)數(shù)據(jù)類型。此外,復(fù)雜數(shù)據(jù)字段包含子數(shù)據(jù)字段的結(jié)構(gòu)。將數(shù)據(jù)對(duì)象800的定義包括在應(yīng)用程序302的數(shù)據(jù)組件400計(jì)劃中。這些數(shù)據(jù)定義提供用于定義由應(yīng)用程序302所使用的數(shù)據(jù)對(duì)象800的數(shù)據(jù)模型。因此,數(shù)據(jù)組件400是組合在一起的一個(gè)和多個(gè)數(shù)據(jù)字段定義的集合,以便當(dāng)將其實(shí)例化為數(shù)據(jù)對(duì)象800時(shí)定義相應(yīng)數(shù)據(jù)字段值的格式。所述數(shù)據(jù)組件400定義可以經(jīng)由主要或合成關(guān)鍵字或可選定無(wú)需關(guān)鍵字對(duì)其進(jìn)行定義。這些關(guān)鍵字可以與映射804一起使用以提供成對(duì)的映射數(shù)據(jù)400和屏幕402組件之間的惟一鏈接。
再次參考圖4,表示/屏幕組件402定義了由用戶接口202所顯示的應(yīng)用程序302的外觀和行為。當(dāng)用戶使用用戶接口202與組件應(yīng)用程序302進(jìn)行交互時(shí),所述表示組件402可以指定GUI屏幕和和控制以及要執(zhí)行的動(dòng)作。例如,當(dāng)用戶對(duì)編輯框進(jìn)行打字輸入或按下按鈕時(shí),表示組件402可以定義屏幕、標(biāo)簽、編輯框、按鈕和菜單、以及要采用的動(dòng)作。大多數(shù)網(wǎng)絡(luò)服務(wù)消費(fèi)者使用網(wǎng)絡(luò)服務(wù)操作結(jié)果的可視表示,因此在能夠顯示用戶接口屏幕的其設(shè)備100上提供運(yùn)行時(shí)刻環(huán)境。
下面將示出向屏幕組件402以及用于接受傳遞參數(shù)的屏幕組件402傳遞參數(shù)的示例應(yīng)用程序302??紤]該應(yīng)用程序具有·數(shù)據(jù)組件400“User”;·列出了所有用戶名的選擇框的屏幕組件402“srcALLUSERs”,具有顯示所選用戶細(xì)節(jié)的按鈕/菜單項(xiàng);·顯示作為參數(shù)傳遞的用戶細(xì)節(jié)的屏幕組件402“srcUSERInfo”。
示例XML數(shù)據(jù)組件400可以使用以下元數(shù)據(jù)來(lái)定義具有主要關(guān)鍵字字段“name”的數(shù)據(jù)組件400“User”
<cData name=″User″pkey=″name″> <dfield name=″name″type=″String″/>
<dfield name=″street″type=″String″/>
<dfield name=″city″type=″String″/>
<dfield name=″postal″type=″String″/>
<dfield name=″phone″type=″String″/></cData>
示例XML表示組件402“srcALLUSERs”屏幕定義映射到“用戶”數(shù)據(jù)組件400的所有示例的“名稱”字段的選擇控制“cbNames”。屏幕元數(shù)據(jù)定義包含按鈕或菜單項(xiàng),具有以作為參數(shù)傳遞到用戶接口202的所選參數(shù)“用戶”來(lái)顯示屏幕“srcUSERInfo”。<cScr name=″scrAllUsers″>
…<choice name=″cbNames″mapping=″User[].name″/>
…<action screen=″scrUserInfo″param=″cbNames.selected″/>
…</cScr>
屏幕“srcUSERInfo”定義了映射到作為參數(shù)傳遞的“User”數(shù)據(jù)組件400的特定實(shí)例的“name”字段上的編輯控制“ebName”<cScr name=″scrUserInfo″param=″User″>
…<edit name=″e(cuò)bName″mapping=″User.name″/>
…</cScr>
再次參考圖4,可以通過(guò)硬編碼應(yīng)用程序302元素來(lái)設(shè)置應(yīng)用程序302的剩余消息和其他工作流部分105,和/或可以將其設(shè)置為以結(jié)構(gòu)定義語(yǔ)言和代碼/腳本分別描述的另外組件404、406。在使用原子消息組件(atomic message component)404的情況下,這些定義了由組件應(yīng)用程序302使用來(lái)與如網(wǎng)絡(luò)服務(wù)106等外部系統(tǒng)進(jìn)行通信的消息105的格式,并且包括以如本地代碼或XML表示的消息數(shù)據(jù)。例如,消息組件404之一可以描述如但并不局限于定購(gòu)包括訂單的惟一標(biāo)識(shí)符的訂單的消息、訂單的狀態(tài)和與訂單有關(guān)的注釋。以結(jié)構(gòu)定義語(yǔ)言書寫的消息組件404定義能夠惟一地表示(和映射到)WSDL消息,并且可以在運(yùn)行時(shí)刻動(dòng)態(tài)地產(chǎn)生。因此,根據(jù)用于表達(dá)網(wǎng)絡(luò)服務(wù)接口的定義語(yǔ)言的標(biāo)準(zhǔn)網(wǎng)絡(luò)服務(wù)元數(shù)據(jù),如但并不局限于WSDL和BPEL,針對(duì)客戶端應(yīng)用程序消息105的組件定義和相關(guān)數(shù)據(jù)內(nèi)容實(shí)現(xiàn)動(dòng)態(tài)產(chǎn)生。在操作環(huán)境內(nèi)定義網(wǎng)絡(luò)服務(wù)消息105,并且在組件應(yīng)用程序302的定義中的消息組件404之間定義了相關(guān)性??梢允褂妙A(yù)定的消息參數(shù)和/或通過(guò)單獨(dú)的工作流組件406來(lái)實(shí)現(xiàn)該相關(guān)性,如以下進(jìn)一步定義的。
再次參考圖4,在使用組件應(yīng)用程序302的原子工作流組件406的情況下,這些定義了當(dāng)要執(zhí)行動(dòng)作(例如,上述由表示組件402指定的動(dòng)作)時(shí)出現(xiàn)的處理、或當(dāng)消息105從系統(tǒng)10中到達(dá)(見圖1)時(shí)要執(zhí)行的動(dòng)作。可以由工作流組件406來(lái)定義表示工作流和消息105處理。將工作流組件406以編程語(yǔ)言或腳本語(yǔ)言寫作指令串,如但并不局限于ECMA腳本,并且可以編輯為本地代碼并由執(zhí)行環(huán)境300來(lái)執(zhí)行,如上所述。工作流組件406的示例可以給數(shù)據(jù)賦值、操作屏幕或發(fā)送消息105。工作流組件406支持消息105之間的相關(guān)性并定義了應(yīng)用程序流,作為在其他組件400、402、404上操作的一組規(guī)則。將針對(duì)給出的應(yīng)用程序302來(lái)定義多工作流組件。
通常,ECMA(歐洲計(jì)算機(jī)制造者協(xié)會(huì))腳本是標(biāo)準(zhǔn)的腳本語(yǔ)言,其中腳本被稱為由另一程序而非計(jì)算機(jī)處理器解釋或執(zhí)行的指令序列。腳本語(yǔ)言的一些其他示例是Perl、Rexx、VBScript、JavaScript和Tcl/Tk。通常,這些腳本語(yǔ)言是指示性語(yǔ)言,用于操作、定制和使現(xiàn)有系統(tǒng)的設(shè)施自動(dòng)化,例如設(shè)備100。在這樣的系統(tǒng)中,有用的功能已經(jīng)通過(guò)用戶接口202(見圖2)變得可用,并且腳本語(yǔ)言是將功能暴露給程序控制的機(jī)制。按照該方式,設(shè)備100用于提供完成腳本語(yǔ)言能力的對(duì)象和設(shè)施的主機(jī)運(yùn)行時(shí)刻環(huán)境。
基于組件的應(yīng)用程序302的示例組件404、406可以是示例XML消息組件404<msg name=“ordConfirmation″type=”response”action=“mhConfirmation″>
<part name=“orderId″type=″String“/>
<part name=“status″type=″String“/></msg>…示例ECMAScript工作流組件406<actions>
<function name=”mhConfirmation”>
key=ordConfirmation.orderId;order=Order.get(key);order.orderStatus=ordConfirmation.status;scrConfirmation.display(order);</function>
…</actions>
使用XML或派生來(lái)表達(dá)數(shù)據(jù)400、消息404和表示402組件、以及使用ECMA腳本語(yǔ)言或其子集的工作流組件406能夠允許應(yīng)用程序開發(fā)商從任何特定的平臺(tái)或環(huán)境中提取出網(wǎng)絡(luò)服務(wù)客戶端,并在理論上實(shí)現(xiàn)“開發(fā)一次任何地方運(yùn)行”的應(yīng)用程序。以下示例示出了如何能夠利用結(jié)構(gòu)定義語(yǔ)言(例如但并不局限于XML)和平臺(tái)中立腳本/編程語(yǔ)言(例如但并不局限于ECMA腳本)、已定義組件來(lái)表達(dá)網(wǎng)絡(luò)服務(wù)客戶端應(yīng)用程序302。
此外,參考圖4,如以上所給出的,可以看到,消息組件404可以中繼所需數(shù)據(jù),以便輸入和輸出消息105。相應(yīng)數(shù)據(jù)組件400協(xié)調(diào)設(shè)備100的存儲(chǔ)模塊210(見圖2)中的數(shù)據(jù)的存儲(chǔ),以便由表示組件402隨后在用戶接口202(見圖2)上表示。工作流組件406可以協(xié)調(diào)數(shù)據(jù)400、表示402、消息404組件之間的數(shù)據(jù)傳輸。客戶運(yùn)行時(shí)刻能夠直接存儲(chǔ)和更新原子數(shù)據(jù)對(duì)象800。
基于組件的應(yīng)用程序模型的示例基本操作應(yīng)當(dāng)注意,參考以下圖9、10和11來(lái)描述詳細(xì)說(shuō)明處理映射804的操作。
參考圖1、3和6,例如,操作600示出了當(dāng)設(shè)備100接收到包含消息數(shù)據(jù)的響應(yīng)消息105時(shí)(602),適當(dāng)工作流組件406根據(jù)適當(dāng)?shù)南⒔M件404來(lái)解釋消息105的數(shù)據(jù)內(nèi)容(604)。然后,工作流406處理數(shù)據(jù)流(606)并將數(shù)據(jù)插入到相應(yīng)數(shù)據(jù)組件400(910),以便隨后存儲(chǔ)在存儲(chǔ)模塊210(見圖2)中(612)。此外,如果需要,工作流組件406還將數(shù)據(jù)插入到適當(dāng)?shù)谋硎窘M件402(608),以便隨后在用戶接口202(見圖2)上顯示(614)。
參考圖1、3和7,操作700示出了針對(duì)如按下按鈕或選擇菜單項(xiàng)的動(dòng)作的數(shù)據(jù)輸入702,用戶通過(guò)用戶接口202在用戶接口元素上執(zhí)行這些動(dòng)作(703)。相關(guān)工作流組件406根據(jù)適當(dāng)?shù)谋硎窘M件404來(lái)解釋輸入數(shù)據(jù)(704)并創(chuàng)建由適當(dāng)?shù)臄?shù)據(jù)組件400定義的數(shù)據(jù)實(shí)體(706)。然后,所述工作流組件406向數(shù)據(jù)組件400填充由用戶提供的輸入數(shù)據(jù)(710),以便隨后存儲(chǔ)在存儲(chǔ)模塊210(見圖2)中(712)。此外,工作流組件406還將輸入數(shù)據(jù)插入到適當(dāng)消息組件404中(708),以便隨后將輸入數(shù)據(jù)作為數(shù)據(jù)實(shí)體發(fā)送到消息105中的網(wǎng)絡(luò)服務(wù)(714),如由消息組件404所定義的。
在上述操作中,應(yīng)當(dāng)意識(shí)到,如果被包括作為應(yīng)用程序302的硬編碼部分405,則工作流406和消息404組件的操作將相應(yīng)地為其他操作。
預(yù)定和動(dòng)態(tài)屏幕產(chǎn)生無(wú)線應(yīng)用程序302可以具有屏幕元素802和數(shù)據(jù)對(duì)象800的預(yù)定集合,在應(yīng)用程序設(shè)計(jì)階段,在數(shù)據(jù)組件400和屏幕組件404的字段定義中識(shí)別這些集合之間的關(guān)系(映射800)。該模型可以被稱為預(yù)定屏幕和數(shù)據(jù)關(guān)系模型,從而可以使用如XML等結(jié)構(gòu)語(yǔ)言在組件字段定義中以元數(shù)據(jù)來(lái)表達(dá)向用戶表示的屏幕元素802和數(shù)據(jù)對(duì)象800之間的映射804。
還可以根據(jù)與屏幕元素802相關(guān)的數(shù)據(jù)對(duì)象800的結(jié)構(gòu)動(dòng)態(tài)地產(chǎn)生用戶接口202的屏幕。在一些情形中,不能夠提前預(yù)測(cè)通過(guò)消息105(見圖1)作為來(lái)自服務(wù)器(網(wǎng)絡(luò)服務(wù)106)的輸入接收到的數(shù)據(jù)流的格式(例如返回任意XML的網(wǎng)絡(luò)服務(wù)106操作)。在以結(jié)構(gòu)格式來(lái)表示接收到的數(shù)據(jù)流的情況下(例如XML),設(shè)備100可以由框架206使用定義的解釋規(guī)則,對(duì)屏幕格式(例如UI控制、布局等)進(jìn)行智能預(yù)測(cè),以便表示由數(shù)據(jù)流表示的數(shù)據(jù)對(duì)象800。這可以通過(guò)以下方式來(lái)實(shí)現(xiàn)操作數(shù)據(jù)流中的XML(例如)節(jié)點(diǎn)以構(gòu)建相應(yīng)的數(shù)據(jù)組件400,然后,相應(yīng)的數(shù)據(jù)組件400由所述映射管理器312(見圖8)解釋以通過(guò)由框架206最佳確定的映射屏幕組件402來(lái)分配相應(yīng)的屏幕元素802,從而處理變換后的數(shù)據(jù)流的數(shù)據(jù)內(nèi)容。在開發(fā)無(wú)線應(yīng)用程序302和用于將基于計(jì)劃的數(shù)據(jù)流轉(zhuǎn)換為由映射管理器312和轉(zhuǎn)換規(guī)則的開發(fā)者較好理解的組件定義格式的規(guī)則期間,XML內(nèi)容的計(jì)劃將是預(yù)定的。該轉(zhuǎn)換規(guī)則將作為映射管理器312的一部分并設(shè)計(jì)用于轉(zhuǎn)換最通常遇到的XML(例如)結(jié)構(gòu)數(shù)據(jù)流內(nèi)容。而且,用戶可以具有在將其已經(jīng)存儲(chǔ)到設(shè)備100或發(fā)送回服務(wù)器之前更新UI字段和修改數(shù)據(jù)的機(jī)會(huì)。
以下示例示出了XML計(jì)劃的任意XML數(shù)據(jù)流片斷<dataNodel attr1=’val1’attr2=’val2’>
<subDataNode1>abcdefg</subDataNode1>
<subDataNode2>222</subDataNode2>
<subDataNode3>333</subDataNode3>
</dataNode1>
<dataNode1 attr1=’val1’attr2=’val2’>
<subDataNode1>hijklmnop</subDataNode1>
<subDataNode2>555</subDataNode2>
<subDataNode3>666</subDataNode3>
</dataNode1>
映射管理器312使用包含數(shù)據(jù)字段定義的、由應(yīng)用程序開發(fā)者所提供的計(jì)劃定義,<dataEntity name=’dataNode1’>
<dfield name=’subDataNode1’type=’String’/>
<dfield name=’subDataNode2’type=’int’/>
<dfield name=’subDataNode3’type=’int’/>
</dataEntity>并且動(dòng)態(tài)地應(yīng)用轉(zhuǎn)換規(guī)則以便將XML數(shù)據(jù)流轉(zhuǎn)換為應(yīng)用程序可接受的格式(按照提供的計(jì)劃)并產(chǎn)生合適的XML數(shù)據(jù)對(duì)象400<dataEntity name=’dataNode1’key=’0’>
<dfield name=’subDataNode1’>abcdefg</>
<dfield name=’subDataNode2’>222</>
</dataEntity>
<dataEntity name=’dataNode1’key=’1’>
<dfield name=’subDataNode1’>hijklmnop</>
<dfield name=’subDataNode2’type=’int’>555</>
</dataEntity>
數(shù)據(jù)對(duì)象在用戶接口上的表示當(dāng)獲得用戶接口202的屏幕時(shí),需要對(duì)為映射屏幕元素802所顯示的數(shù)據(jù)對(duì)象800進(jìn)行解析。解析要用于初始值的特定數(shù)據(jù)對(duì)象800的不同選項(xiàng)如下
基于屏幕參數(shù)的初始化典型地,將具有映射屏幕元素802的值的數(shù)據(jù)組件400的數(shù)據(jù)對(duì)象800作為參數(shù),傳遞到用戶接口202的屏幕。在以上所給出的示例屏幕組件404中,屏幕“srcUSERInfo”接收用戶的數(shù)據(jù)對(duì)象800,作為所述參數(shù)。在映射到用戶數(shù)據(jù)組件400的數(shù)據(jù)字段定義上的該屏幕上的屏幕元素802將顯示來(lái)自該參數(shù)中的數(shù)據(jù)值。
未解析的初始值如果針對(duì)屏幕定義了映射804但是還沒有解析相關(guān)數(shù)據(jù)組件400的初始數(shù)據(jù)對(duì)象800,則不將顯示針對(duì)映射的屏幕元素802的初始數(shù)據(jù)值。一個(gè)示例將是定義來(lái)輸入針對(duì)新用戶的數(shù)據(jù)值的屏幕。初始用戶數(shù)據(jù)組件400將并非相關(guān)的。在用戶將新值輸入到屏幕元素802的數(shù)據(jù)字段之后,使用映射定義來(lái)創(chuàng)建該數(shù)據(jù)組件400的新數(shù)據(jù)對(duì)象800,如以下將針對(duì)用戶數(shù)據(jù)更新所描述的那樣。
所有數(shù)據(jù)對(duì)象的列表對(duì)于屏幕元素802的選擇控制/列表類型,映射804可以指定將要使用所有創(chuàng)建的數(shù)據(jù)對(duì)象800,如以上所給出的示例屏幕組件404所示。
屏幕表示參考圖3、8和9,該場(chǎng)景850描述了當(dāng)在用戶接口202上繪制新屏幕時(shí)針對(duì)屏幕元素802所執(zhí)行的步驟。在步驟852,所述映射管理器312檢測(cè)映射到數(shù)據(jù)組件400字段上的屏幕元素802。在步驟854,映射管理器312檢查該類型的數(shù)據(jù)對(duì)象800是否被附加到屏幕上-即作為參數(shù)傳遞。如果是這樣,則映射管理器在步驟858處檢索數(shù)據(jù)對(duì)象800的數(shù)據(jù)字段值并將其傳遞到表示管理器308以便在屏幕上顯示其。如果不是這樣,則在步驟856,在屏幕202上顯示針對(duì)該字段類型的默認(rèn)值(例如屏幕空白、數(shù)字0等)。
對(duì)數(shù)據(jù)更新的控制參考圖3和8,根據(jù)映射804元數(shù)據(jù),將用戶輸入的值反映在存儲(chǔ)器210中的相關(guān)數(shù)據(jù)對(duì)象800的字段值中。
所述處理可以涉及以下功能·輸入驗(yàn)證;·數(shù)據(jù)創(chuàng)建;·數(shù)據(jù)更新。
輸入驗(yàn)證用戶輸入數(shù)據(jù)的驗(yàn)證可以自動(dòng)基于數(shù)據(jù)cmp(例如電話號(hào)碼)。
數(shù)據(jù)創(chuàng)建根據(jù)輸入值,如果遇到了新數(shù)據(jù)關(guān)鍵字值,則可以創(chuàng)建新數(shù)據(jù)對(duì)象800。在以上所給出的示例數(shù)據(jù)組件400中,如果輸入先前未定義的名稱,則創(chuàng)建新用戶數(shù)據(jù)對(duì)象800。
數(shù)據(jù)更新作為在用戶接口202上的用戶輸入的結(jié)果,可以更新針對(duì)現(xiàn)有數(shù)據(jù)組件400的數(shù)據(jù)對(duì)象800的字段值。
更新操作兩種方式更新模式可以按照以下兩種方式來(lái)操作·自動(dòng)提交當(dāng)用戶離開屏幕時(shí)提交數(shù)據(jù)。
·管理的轉(zhuǎn)換模式映射指定菜單動(dòng)作(屏幕元素802)以處理數(shù)據(jù)。例如,對(duì)于多訂單屏幕,在最后屏幕上的“提交”菜單項(xiàng)將更新/創(chuàng)建結(jié)果數(shù)據(jù)對(duì)象800。另一菜單項(xiàng)(例如“取消”)可能會(huì)導(dǎo)致輸入數(shù)據(jù)的丟棄。
參考圖3、8和10,以下場(chǎng)景870描述了將用戶接口202上的用戶輸入數(shù)據(jù)(用戶事件)映射到數(shù)據(jù)對(duì)象800上的流程。在步驟872,當(dāng)用戶在屏幕元素802上輸入/更新數(shù)據(jù)時(shí),UI管理器308將所述數(shù)值傳遞到映射管理器312。在步驟874,如果這是映射的屏幕元素802,映射管理器312解析適當(dāng)?shù)臄?shù)據(jù)組件400并從數(shù)據(jù)管理器310中請(qǐng)求數(shù)據(jù)對(duì)象800。在步驟876,數(shù)據(jù)管理器312驗(yàn)證針對(duì)屏幕元素802輸入的數(shù)值與該屏幕元素802映射到其上的數(shù)據(jù)組件400字段類型匹配。在步驟878,數(shù)據(jù)管理器310將修改的數(shù)據(jù)值保存在臨時(shí)存儲(chǔ)器中,而不提交-“臟(dirty)”數(shù)據(jù)。數(shù)據(jù)管理器310還解析這是現(xiàn)有數(shù)據(jù)對(duì)象800的更新還是新數(shù)據(jù)對(duì)象800的創(chuàng)建。在步驟880,將用戶事件確定為被提交(選項(xiàng)A)或被中止(選項(xiàng)B)。對(duì)于提交的確定選項(xiàng)A提交,1)用戶選擇映射到提交動(dòng)作上的按鈕或菜單項(xiàng)(屏幕元素802);2)UI管理器308向映射管理器312通知該動(dòng)作;3)映射管理器312請(qǐng)求數(shù)據(jù)管理器310提交變化;4)數(shù)據(jù)管理器310提交該變化并將數(shù)據(jù)對(duì)象800存儲(chǔ)在存儲(chǔ)器210中。
對(duì)于中止的確定選項(xiàng)B回退,1)用戶通過(guò)選擇未映射到提交動(dòng)作是的按鈕或菜單項(xiàng)(屏幕元素802)來(lái)離開屏幕;2)UI管理器308向映射管理器312通知該動(dòng)作;3)映射管理器312請(qǐng)求數(shù)據(jù)管理器310回退該變化;4)數(shù)據(jù)管理器312丟棄該變化-這可以表示如果作為屏幕組件402到數(shù)據(jù)組件400映射804的結(jié)果創(chuàng)建了新的映射,則僅丟棄對(duì)各個(gè)字段的變化或刪除整個(gè)數(shù)據(jù)對(duì)象800。
控制更新的數(shù)據(jù)如果設(shè)備100可以從外部源(例如網(wǎng)絡(luò)服務(wù)106)異步地接收數(shù)據(jù)更新,則對(duì)與屏幕元素802相關(guān)的數(shù)據(jù)值的改變將會(huì)導(dǎo)致利用新信息的屏幕刷新。參考圖3、8和11,在從服務(wù)器106中接收消息105時(shí)(952),消息管理器312確定消息105是否被映射到框架206中的當(dāng)前執(zhí)行應(yīng)用程序302的數(shù)據(jù)組件400上(954)。如果情況如此,則執(zhí)行以下的進(jìn)一步步驟在步驟956,設(shè)備框架206從服務(wù)器106中接收與數(shù)據(jù)變化有關(guān)的通知;在步驟958,消息管理器306通知數(shù)據(jù)管理器310對(duì)數(shù)據(jù)對(duì)象800執(zhí)行任何相關(guān)的數(shù)據(jù)更新;在步驟960,消息管理器306還向映射管理器312通知該數(shù)據(jù)變化;在步驟962,利用映射804元數(shù)據(jù),映射管理器312驗(yàn)證數(shù)據(jù)變化是否與當(dāng)前屏幕相關(guān);在步驟964,如果變化與當(dāng)前顯示的信息相關(guān),則映射管理器312請(qǐng)求UI管理器308刷新屏幕;以及在步驟966,刷新該屏幕以顯示更新的數(shù)據(jù)對(duì)象800。否則,在步驟968,消息105不會(huì)影響在用戶接口202上顯示的屏幕元素802的當(dāng)前值。
盡管已經(jīng)針對(duì)一個(gè)或多個(gè)基本系統(tǒng)和方法進(jìn)行了公開,但是許多變體對(duì)本領(lǐng)域的技術(shù)人員是顯而易見的,并且這樣的變體在本申請(qǐng)的范圍內(nèi)。例如,盡管在所提供的示例中使用了XML和ECMA腳本的子集,但是還可以使用其他語(yǔ)言和語(yǔ)言變體來(lái)定義組件應(yīng)用程序302。此外,應(yīng)當(dāng)意識(shí)到,作為上述映射804的一種選擇,可以將數(shù)據(jù)字段的定義包含在屏幕組件402(見圖4)中。因此,屏幕元素802的產(chǎn)生將基于包括在屏幕組件402定義中的數(shù)據(jù)字段定義,并且可以將數(shù)據(jù)組件400映射到具有所包括的數(shù)據(jù)字段定義的相應(yīng)屏幕組件402上(804)。因此,數(shù)據(jù)對(duì)象800的產(chǎn)生將依賴于映射屏幕組件402中所包含的數(shù)據(jù)字段定義。
權(quán)利要求
1.一種根據(jù)顯示在無(wú)線設(shè)備的用戶接口上的數(shù)據(jù)對(duì)象來(lái)產(chǎn)生無(wú)線應(yīng)用程序的屏幕元素的方法,所述應(yīng)用程序包括具有至少一個(gè)數(shù)據(jù)字段定義的數(shù)據(jù)組件和具有至少一個(gè)屏幕元素定義的屏幕組件,所述組件定義以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá),所述方法包括以下步驟選擇與為了顯示而選擇的屏幕元素相對(duì)應(yīng)的屏幕組件;識(shí)別屏幕組件中所存在的至少一個(gè)映射,所述映射用于指定由表示所述映射的標(biāo)識(shí)符所定義的屏幕組件和數(shù)據(jù)組件之間的關(guān)系;根據(jù)映射標(biāo)識(shí)符來(lái)選擇由所述映射所映射的數(shù)據(jù)組件;獲取與映射的數(shù)據(jù)組件的數(shù)據(jù)字段定義相對(duì)應(yīng)的數(shù)據(jù)對(duì)象字段值;根據(jù)屏幕元素定義產(chǎn)生屏幕元素,以便根據(jù)映射數(shù)據(jù)組件中所定義的數(shù)據(jù)字段定義的格式來(lái)包括數(shù)據(jù)對(duì)象字段值。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于在由映射所表示的屏幕組件和數(shù)據(jù)組件之間共享數(shù)據(jù)組件的多個(gè)數(shù)據(jù)字段定義。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于還包括將多個(gè)數(shù)據(jù)字段定義與標(biāo)識(shí)符所表示的屏幕組件的屏幕元素定義中的相應(yīng)一個(gè)鏈接的步驟。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于還包括檢測(cè)與屏幕元素相關(guān)的用戶接口的用戶事件的步驟。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于還包括識(shí)別與受影響的屏幕元素的鏈接數(shù)據(jù)組件相對(duì)應(yīng)的屏幕組件中的映射的步驟。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于還包括利用鏈接數(shù)據(jù)組件的數(shù)據(jù)字段定義來(lái)更新存儲(chǔ)器中的數(shù)據(jù)對(duì)象的步驟。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于還包括利用鏈接數(shù)據(jù)組件的數(shù)據(jù)字段定義在存儲(chǔ)器中創(chuàng)建新數(shù)據(jù)對(duì)象的步驟。
8.根據(jù)權(quán)利要求2所述的方法,其特征在于將所述數(shù)據(jù)對(duì)象作為屏幕參數(shù)傳遞到用戶接口。
9.根據(jù)權(quán)利要求2所述的方法,其特征在于通過(guò)第一標(biāo)識(shí)符將第一屏幕元素定義映射到第一數(shù)據(jù)組件;以及通過(guò)第二標(biāo)識(shí)符將第二屏幕元素定義映射到與第一數(shù)據(jù)組件不同的第二數(shù)據(jù)組件。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于利用第一標(biāo)識(shí)符將第一屏幕元素定義和第二屏幕元素定義映射到相同的數(shù)據(jù)組件上。
11.根據(jù)權(quán)利要求2所述的方法,其特征在于所述結(jié)構(gòu)定義語(yǔ)言是基于XML的。
12.根據(jù)權(quán)利要求2所述的方法,其特征在于所述標(biāo)識(shí)符是簡(jiǎn)單主要關(guān)鍵字。
13.根據(jù)權(quán)利要求2所述的方法,其特征在于所述標(biāo)識(shí)符是合成關(guān)鍵字。
14.根據(jù)權(quán)利要求2所述的方法,其特征在于還包括由所述設(shè)備通過(guò)與所述設(shè)備相連的網(wǎng)絡(luò)接收異步通信消息的步驟,所述消息包括消息數(shù)據(jù)對(duì)象。
15.根據(jù)權(quán)利要求2所述的方法,其特征在于還包括檢查與所述設(shè)備上提供的應(yīng)用程序的數(shù)據(jù)組件相對(duì)應(yīng)的、針對(duì)映射的消息的步驟。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于還包括利用鏈接數(shù)據(jù)組件的數(shù)據(jù)字段定義來(lái)更新存儲(chǔ)器中的消息數(shù)據(jù)對(duì)象的步驟。
17.根據(jù)權(quán)利要求15所述的方法,其特征在于還包括利用鏈接數(shù)據(jù)組件的數(shù)據(jù)字段定義在存儲(chǔ)器中創(chuàng)建消息數(shù)據(jù)對(duì)象的步驟。
18.一種根據(jù)顯示在無(wú)線設(shè)備的用戶接口上的數(shù)據(jù)對(duì)象來(lái)產(chǎn)生無(wú)線應(yīng)用程序的屏幕元素的系統(tǒng),所述應(yīng)用程序包括具有至少一個(gè)數(shù)據(jù)字段定義的數(shù)據(jù)組件和具有至少一個(gè)屏幕元素定義的屏幕組件,所述組件定義以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá),所述方法包括以下步驟映射管理器,用于選擇與屏幕元素相對(duì)應(yīng)的屏幕組件并識(shí)別屏幕組件中所存在的至少一個(gè)映射,所述映射用于指定由表示所述映射的標(biāo)識(shí)符所定義的屏幕組件和數(shù)據(jù)組件之間的關(guān)系,所述映射管理器根據(jù)映射標(biāo)識(shí)符來(lái)選擇由所述映射所映射的數(shù)據(jù)組件;數(shù)據(jù)管理器,用于獲取與映射的數(shù)據(jù)組件的數(shù)據(jù)字段定義相對(duì)應(yīng)的數(shù)據(jù)對(duì)象字段值;以及屏幕管理器,用于根據(jù)屏幕元素定義產(chǎn)生屏幕元素,以便根據(jù)映射數(shù)據(jù)組件中所定義的數(shù)據(jù)字段定義的格式來(lái)包括數(shù)據(jù)對(duì)象字段值。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于在由映射所表示的屏幕組件和數(shù)據(jù)組件之間共享數(shù)據(jù)組件的多個(gè)數(shù)據(jù)字段定義。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于將多個(gè)數(shù)據(jù)字段定義與標(biāo)識(shí)符所表示的屏幕組件的相應(yīng)屏幕元素定義相關(guān)聯(lián)。
21.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于還包括表示管理器,配置用于檢測(cè)與屏幕元素相關(guān)的用戶接口的用戶事件。
22.根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于還包括映射管理器,配置用于識(shí)別與受影響的屏幕元素的鏈接數(shù)據(jù)組件相對(duì)應(yīng)的屏幕組件中的映射。
23.根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于還包括數(shù)據(jù)管理器,配置用于利用鏈接數(shù)據(jù)組件的數(shù)據(jù)字段定義來(lái)更新存儲(chǔ)器中的數(shù)據(jù)對(duì)象。
24.根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于還包括數(shù)據(jù)管理器,配置用于利用鏈接數(shù)據(jù)組件的數(shù)據(jù)字段定義在存儲(chǔ)器中創(chuàng)建新數(shù)據(jù)對(duì)象。
25.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于將所述數(shù)據(jù)對(duì)象作為屏幕參數(shù)傳遞到用戶接口。
26.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于通過(guò)第一標(biāo)識(shí)符將第一屏幕元素定義映射到第一數(shù)據(jù)組件;以及通過(guò)第二標(biāo)識(shí)符將第二屏幕元素定義映射到與第一數(shù)據(jù)組件不同的第二數(shù)據(jù)組件。
27.根據(jù)權(quán)利要求26所述的系統(tǒng),其特征在于利用第一標(biāo)識(shí)符將第一屏幕元素定義和第二屏幕元素定義映射到相同的數(shù)據(jù)組件上。
28.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于所述結(jié)構(gòu)定義語(yǔ)言是基于XML的。
29.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于所述標(biāo)識(shí)符是簡(jiǎn)單主要關(guān)鍵字。
30.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于所述標(biāo)識(shí)符是合成關(guān)鍵字。
31.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于還包括通信管理器,用于由所述設(shè)備通過(guò)與所述設(shè)備相連的網(wǎng)絡(luò)接收異步通信消息,所述消息包括消息數(shù)據(jù)對(duì)象。
32.根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于還包括映射管理器,配置用于檢查與所述設(shè)備上提供的應(yīng)用程序的數(shù)據(jù)組件相對(duì)應(yīng)的、針對(duì)映射的消息。
33.根據(jù)權(quán)利要求32所述的系統(tǒng),其特征在于還包括數(shù)據(jù)管理器,配置用于利用鏈接數(shù)據(jù)組件的數(shù)據(jù)字段定義來(lái)更新存儲(chǔ)器中的消息數(shù)據(jù)對(duì)象。
34.根據(jù)權(quán)利要求32所述的系統(tǒng),其特征在于還包括數(shù)據(jù)管理器,配置用于利用鏈接數(shù)據(jù)組件的數(shù)據(jù)字段定義在存儲(chǔ)器中創(chuàng)建消息數(shù)據(jù)對(duì)象。
35.一種根據(jù)顯示在無(wú)線設(shè)備的用戶接口上的屏幕元素的變化來(lái)產(chǎn)生無(wú)線應(yīng)用程序的數(shù)據(jù)對(duì)象的方法,所述應(yīng)用程序包括具有至少一個(gè)數(shù)據(jù)字段定義的數(shù)據(jù)組件和具有至少一個(gè)屏幕元素定義的屏幕組件,所述組件定義以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá),所述方法包括以下步驟選擇與所述屏幕元素相對(duì)應(yīng)的屏幕組件;識(shí)別屏幕組件中所存在的至少一個(gè)映射,所述映射用于指定屏幕組件和數(shù)據(jù)組件之間的關(guān)系;選擇由所述映射所映射的數(shù)據(jù)組件;根據(jù)與所映射的數(shù)據(jù)組件相對(duì)應(yīng)的屏幕元素來(lái)獲取變化值;根據(jù)映射數(shù)據(jù)組件中所定義的數(shù)據(jù)字段定義的格式,將所述變化值分配給數(shù)據(jù)對(duì)象的數(shù)據(jù)字段值。
36.一種根據(jù)顯示在無(wú)線設(shè)備的用戶接口上的數(shù)據(jù)對(duì)象來(lái)產(chǎn)生無(wú)線應(yīng)用程序的屏幕元素的設(shè)備,所述應(yīng)用程序包括具有至少一個(gè)數(shù)據(jù)字段定義的數(shù)據(jù)組件和具有至少一個(gè)屏幕元素定義的屏幕組件,所述組件定義以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá),所述方法包括以下步驟選擇與為了顯示而選擇的屏幕元素相對(duì)應(yīng)的屏幕組件的裝置;識(shí)別屏幕組件中所存在的至少一個(gè)映射的裝置,所述映射用于指定屏幕組件和數(shù)據(jù)組件之間的關(guān)系;選擇由所述映射所映射的數(shù)據(jù)組件的裝置;獲取與映射數(shù)據(jù)組件的數(shù)據(jù)字段定義相對(duì)應(yīng)的數(shù)據(jù)對(duì)象字段值的裝置;根據(jù)屏幕元素定義產(chǎn)生屏幕元素以便根據(jù)映射數(shù)據(jù)組件中所定義的數(shù)據(jù)字段定義的格式來(lái)包括數(shù)據(jù)對(duì)象字段值的裝置。
37.一種根據(jù)顯示在無(wú)線設(shè)備的用戶接口上的數(shù)據(jù)對(duì)象來(lái)產(chǎn)生無(wú)線應(yīng)用程序的屏幕元素的計(jì)算機(jī)程序產(chǎn)品,所述應(yīng)用程序包括具有至少一個(gè)數(shù)據(jù)字段定義的數(shù)據(jù)組件和具有至少一個(gè)屏幕元素定義的屏幕組件,所述組件定義以結(jié)構(gòu)定義語(yǔ)言來(lái)表達(dá),所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì);存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的映射模塊,用于選擇與所述屏幕元素相對(duì)應(yīng)的屏幕組件并識(shí)別屏幕組件中所存在的至少一個(gè)映射,所述映射用于指定由表示所述映射的標(biāo)識(shí)符所定義的屏幕組件和數(shù)據(jù)組件之間的關(guān)系,所述映射模塊用于根據(jù)映射標(biāo)識(shí)符來(lái)選擇由所述映射映射的數(shù)據(jù)組件;存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的數(shù)據(jù)模塊,用于獲取與映射數(shù)據(jù)組件的數(shù)據(jù)字段定義相對(duì)應(yīng)的數(shù)據(jù)對(duì)象字段值;以及存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的屏幕模塊,用于根據(jù)屏幕元素定義產(chǎn)生屏幕元素,以便根據(jù)映射數(shù)據(jù)組件中所定義的數(shù)據(jù)字段定義的格式來(lái)包括數(shù)據(jù)對(duì)象字段值。
全文摘要
一種通過(guò)在應(yīng)用程序數(shù)據(jù)域和UI屏幕和控制之間實(shí)現(xiàn)直接映射來(lái)有效管理用戶接口(UI)的系統(tǒng)和方法。所述設(shè)備具有智能無(wú)線設(shè)備運(yùn)行時(shí)刻環(huán)境(設(shè)備運(yùn)行時(shí)刻),提供基本服務(wù)集合來(lái)管理無(wú)線應(yīng)用程序,包括一系列鏈接屏幕和數(shù)據(jù)組件定義,并且其交互可以簡(jiǎn)化開發(fā)勞動(dòng)和減少資源分配。利用原子數(shù)據(jù)組件定義來(lái)定義針對(duì)該類應(yīng)用程序的數(shù)據(jù)域。利用原子屏幕組件定義來(lái)定義設(shè)備用戶接口和數(shù)據(jù)組件之間的通信。利用如XML等結(jié)構(gòu)定義語(yǔ)言在元數(shù)據(jù)中描述屏幕和數(shù)據(jù)組件定義。將屏幕和數(shù)據(jù)組件定義之間的關(guān)系以屏幕/數(shù)據(jù)映射的形式嵌入在XML定義中。將對(duì)應(yīng)用程序域數(shù)據(jù)的改變自動(dòng)地與用戶接口同步,并且將用戶輸入數(shù)據(jù)自動(dòng)反映在應(yīng)用程序域數(shù)據(jù)中。
文檔編號(hào)G06F9/44GK1661554SQ200510052449
公開日2005年8月31日 申請(qǐng)日期2005年2月28日 優(yōu)先權(quán)日2004年2月27日
發(fā)明者菲拉·比布爾, 邁克爾·申菲爾德, 卡門·B·維塔諾夫, 布萊恩·R·戈林 申請(qǐng)人:捷訊研究有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
礼泉县| 临城县| 曲周县| 万山特区| 石嘴山市| 时尚| 宝山区| 苏州市| 肥东县| 阿勒泰市| 益阳市| 万全县| 枣庄市| 林周县| 大兴区| 资源县| 托克逊县| 建平县| 长岭县| 蓬莱市| 铁岭市| 罗甸县| 东兴市| 阳泉市| 荔浦县| 辽源市| 廊坊市| 衢州市| 图木舒克市| 米林县| 广德县| 乌兰浩特市| 汾阳市| 江阴市| 宁化县| 裕民县| 正安县| 保康县| 洪洞县| 寿宁县| 邵东县|