專利名稱:建立無線組件應(yīng)用的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本申請涉及無線通信,特別是涉及用于移動通信裝置的軟件。
背景技術(shù):
當(dāng)今使用的移動通信裝置的數(shù)目不斷增加,例如移動電話、具有無線通信能力的PDA、和雙向?qū)ず魴C(jī)。運(yùn)行在這些移動通信裝置上的軟件應(yīng)用程序增加了它們的實用性。例如,一部移動電話可以包括檢索針對一個城市范圍的氣候的應(yīng)用程序,或一個PDA可以包括使得使用者選購雜貨的應(yīng)用程序。這些軟件應(yīng)用程序利用了這些裝置的移動性及對于無線網(wǎng)絡(luò)連接性的優(yōu)點,以便向用戶提供及時和有用的服務(wù),而與該用戶的所在位置無關(guān)。但是,由于移動通信裝置的受限的資源以及把數(shù)據(jù)無線地提供至移動通信裝置的復(fù)雜性,開發(fā)用于移動通信裝置的軟件應(yīng)用程序依然是困難和耗時的任務(wù)。
當(dāng)前,移動通信裝置被配置用于通過基于互聯(lián)網(wǎng)的瀏覽器和/或本機(jī)應(yīng)用程序與Web服務(wù)通信。瀏覽器具有能適于在跨平臺基礎(chǔ)上針對各種不同裝置操作的優(yōu)點,但缺點是從Web服務(wù)請求頁面(HTML屏幕清晰度),這種缺點將妨礙包括在該屏幕中的數(shù)據(jù)的持續(xù)性。瀏覽器的另一缺點是該屏幕在運(yùn)行時間呈現(xiàn),這將可能導(dǎo)致資源緊張。本機(jī)應(yīng)用程序具有的優(yōu)點是針對移動裝置的類型而專門開發(fā),從而提供針對每一個運(yùn)行時環(huán)境相對優(yōu)化的應(yīng)用程序。但是,本機(jī)應(yīng)用程序具有的缺點是它不是獨立的平臺,因此需要開發(fā)同一個應(yīng)用程序的多個版本,以及在規(guī)模上相對大,從而重耗了移動裝置的存儲器資源。而且,應(yīng)用程序的開發(fā)人需要具有例如Java和C++的程序設(shè)計語言的經(jīng)驗來構(gòu)建這些硬編碼的本機(jī)應(yīng)用程序。需要能運(yùn)行在具有各種運(yùn)行時環(huán)境的Web服務(wù)客戶機(jī)上、又具有降低的移動裝置資源消耗的應(yīng)用程序。
在此公開的系統(tǒng)和方法提供了一個基于組件的應(yīng)用環(huán)境,以便克服或至少在一定程度上減輕上述的缺點。
發(fā)明內(nèi)容
當(dāng)前的應(yīng)用程序不能適應(yīng)于運(yùn)行在具有各種運(yùn)行時環(huán)境的客戶機(jī)上,并且會不希望地消耗太多的移動裝置的資源。瀏覽器是一個具有從一Web服務(wù)請求頁面(HTML的屏幕清晰度)的一個缺點的應(yīng)用程序,這種缺點妨礙了該屏幕中包括的數(shù)據(jù)的持續(xù)性。瀏覽器的另一缺點是該屏幕在運(yùn)行時間呈現(xiàn),這可能導(dǎo)致資源緊張。本機(jī)應(yīng)用程序是當(dāng)前應(yīng)用程序的另一實例,具有的缺點是它不是獨立的平臺,從而需要開發(fā)同一個應(yīng)用程序的多個版本,同時有相當(dāng)大的規(guī)模,從而重負(fù)了移動裝置的存儲器資源。與當(dāng)前應(yīng)用程序相反,提供了一個建立無線組件應(yīng)用程序及與無線組件應(yīng)用程序進(jìn)行通信的系統(tǒng)。該系統(tǒng)包括在移動通信裝置上執(zhí)行的組件應(yīng)用程序,通過無線網(wǎng)絡(luò)及互聯(lián)網(wǎng)絡(luò)與Web服務(wù)通信。該組件應(yīng)用程序包括一個或多個數(shù)據(jù)組件、顯示組件、和/或消息組件,這些組件應(yīng)用程序以例如XML代碼的結(jié)構(gòu)化定義語言寫成。該組件應(yīng)用程序可以進(jìn)一步包括工作流組件,該工作流組件包括一系列例如以ECMAScript子集寫成的指令,并且在某些實施方案中可被嵌入在XML代碼中。還提供了一種建立組件應(yīng)用程序的方法。該方法包括步驟步驟創(chuàng)建數(shù)據(jù)組件、創(chuàng)建顯示組件、以及創(chuàng)建消息組件。該數(shù)據(jù)組件、顯示組件和消息組件可在某些實施方案中以XML寫成。本方法還包括步驟把該數(shù)據(jù)組件、顯示組件和消息組件與工作流組件合在一起寫作為例如ECMAScript的子集的程序設(shè)計語言中的一組指令。
因此,本發(fā)明提供了一種經(jīng)過網(wǎng)絡(luò)由移動通信裝置與Web服務(wù)進(jìn)行交互的方法。本方法包括步驟接收用于在Web服務(wù)和通信裝置之間建立通信的一個請求網(wǎng)絡(luò)消息;響應(yīng)該請求網(wǎng)絡(luò)消息發(fā)送包括多個組件的一個組件應(yīng)用程序,第一組組件具有以結(jié)構(gòu)化定義語言表示的描述符而第二組組件被表示成一系列指令,這些組件被配置用于通過通信裝置的運(yùn)行時環(huán)境進(jìn)行提供,以便產(chǎn)生配置作為Web服務(wù)的Web客戶機(jī)的該組件應(yīng)用程序的一個可執(zhí)行版本;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng)絡(luò)在Web服務(wù)和通信裝置之間的隨后的信息交換。
還公開了一種移動通信裝置,被配置來使用包括多個組件的組件應(yīng)用程序的可執(zhí)行版本經(jīng)過網(wǎng)絡(luò)與Web服務(wù)進(jìn)行交互。該裝置包括用于操作該移動裝置的裝置基礎(chǔ)結(jié)構(gòu),該移動裝置包括用于執(zhí)行該可執(zhí)行版本的處理器和相關(guān)存儲器;耦合到該裝置基礎(chǔ)結(jié)構(gòu)的用戶接口,該裝置基礎(chǔ)結(jié)構(gòu)具有被配置用于與該可執(zhí)行版本通信的輸入裝置和輸出裝置;無線收發(fā)機(jī),耦合到該裝置基礎(chǔ)結(jié)構(gòu)并且被配置用于與該網(wǎng)絡(luò)通信;以及一個運(yùn)行時環(huán)境,用于協(xié)調(diào)該可執(zhí)行版本的執(zhí)行,用于把該裝置配置作為Web服務(wù)的Web客戶機(jī),該運(yùn)行時環(huán)境被配置用于與具有以結(jié)構(gòu)化定義語言表示的描述符的第一組組件以及被表示成一系列指令的第二組組件進(jìn)行交互;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信裝置之間的隨后的信息交換。
還公開了一種計算機(jī)程序產(chǎn)品,用于配置一個移動通信裝置,以便使用包括多個組件的一個組件應(yīng)用程序的可執(zhí)行版本經(jīng)過網(wǎng)絡(luò)與Web服務(wù)進(jìn)行交互。該計算機(jī)程序產(chǎn)品包括一個計算機(jī)可讀介質(zhì);存儲在該計算機(jī)可讀介質(zhì)上的運(yùn)行時環(huán)境模塊,用于協(xié)調(diào)該可執(zhí)行版本的執(zhí)行,以便把該裝置配置為Web服務(wù)的Web客戶機(jī),該運(yùn)行時環(huán)境被配置用于與具有以結(jié)構(gòu)化定義語言表示的描述符的第一組組件和被表示成一系列指令的第二組組件進(jìn)行交互;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信裝置之間的隨后的信息交換。
還公開了一個服務(wù)器,配置來用于提供Web服務(wù),以便經(jīng)過網(wǎng)絡(luò)與一個移動通信裝置進(jìn)行交互。該服務(wù)器包括一個網(wǎng)絡(luò)接口,用于接收一個請求網(wǎng)絡(luò)消息,以便在Web服務(wù)和通信裝置之間建立通信;耦合到該網(wǎng)絡(luò)接口用于響應(yīng)該請求網(wǎng)絡(luò)消息進(jìn)行發(fā)送的一個組件應(yīng)用程序,該組件應(yīng)用程序包括多個組件,第一組組件具有以一種結(jié)構(gòu)化定義語言表示的描述符,而第二組組件被表示成一系列指令,這些組件被配置用于由該通信裝置的運(yùn)行時環(huán)境進(jìn)行提供,以便產(chǎn)生把該裝置配置作為Web服務(wù)的Web客戶機(jī)的該組件應(yīng)用程序的一個可執(zhí)行版本;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信裝置之間的隨后的信息交換。
還提供了一種移動通信裝置,被配置來使用包括多個組件的組件應(yīng)用程序的可執(zhí)行版本經(jīng)過網(wǎng)絡(luò)與Web服務(wù)進(jìn)行交互。該裝置包括一個基礎(chǔ)結(jié)構(gòu)裝置,用于操作該移動裝置來執(zhí)行該可執(zhí)行版本;一個用戶接口裝置,耦合到被配置來用于與該可執(zhí)行版本通信的基礎(chǔ)結(jié)構(gòu)裝置;一個收發(fā)機(jī)裝置,耦合到該裝置基礎(chǔ)結(jié)構(gòu)并且被配置用于與該網(wǎng)絡(luò)通信;以及一個運(yùn)行時間裝置,用于協(xié)調(diào)該可執(zhí)行版本的執(zhí)行,以便把該裝置配置作為Web服務(wù)的Web客戶機(jī),該運(yùn)行時間裝置被配置用于與具有以結(jié)構(gòu)化定義語言表示的描述符的第一組組件以及被表示成一系列指令的第二組組件交互;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信裝置之間的隨后的信息交換。
在下面參考附圖作出的詳細(xì)描述中,這些和其它特點將變得顯見,其中圖1是一個通信系統(tǒng)的框圖;圖2是圖1的一個移動通信裝置的框圖;圖3是圖2的一個組件應(yīng)用程序的方框圖;圖4是表示圖3的一個示例組件應(yīng)用程序的框圖;圖5是表示建立圖3的無線組件應(yīng)用程序的一個方法的流程圖;圖6是用于在圖1的一個裝置和Web服務(wù)之間進(jìn)行通信的一個方法的流程圖;圖7示出實施圖3的組件應(yīng)用程序的一個示例方法;圖8示出實施圖3的組件應(yīng)用程序的另一示例方法;以及圖9是圖2裝置的另一示例的框圖。
具體的實施方式網(wǎng)絡(luò)系統(tǒng)參考圖1,網(wǎng)絡(luò)系統(tǒng)10包括移動通信裝置100,用于通過一個耦合的無線網(wǎng)絡(luò)102和互聯(lián)網(wǎng)絡(luò)104與由Web服務(wù)器106提供的一個或者多個Web服務(wù)交互。當(dāng)與Web服務(wù)器106的Web服務(wù)通信時,裝置100分別地發(fā)送與接收請求/響應(yīng)消息105。通過使用消息標(biāo)題信息形式的請求/響應(yīng)消息105以及相關(guān)的數(shù)據(jù)內(nèi)容,該裝置100能操作為Web服務(wù)的Web客戶機(jī),例如從在線商戶請求和接收產(chǎn)品報價和可得性。Web服務(wù)是一個系統(tǒng)的示例,通信裝置100上的客戶應(yīng)用程序302(參見圖2)通過無線網(wǎng)絡(luò)102與互聯(lián)網(wǎng)絡(luò)104與該系統(tǒng)交互,以便把實用工具提供到移動通信裝置100的用戶。在通信裝置100和Web服務(wù)之間發(fā)送的消息105能夠穿越(traverse)一個消息映射服務(wù)(沒示出),該消息映射服務(wù)在由裝置100和Web服務(wù)使用的不同格式之間轉(zhuǎn)換該消息105。
為了滿足適當(dāng)?shù)恼埱?響應(yīng)消息105,Web服務(wù)器106通過各種協(xié)議(例如但不局限于HTTP和組件API)與一個應(yīng)用服務(wù)器110通信,以便向曾經(jīng)提供在該裝置100上的客戶應(yīng)用程序302(參見圖2)表明相關(guān)的商業(yè)邏輯(方法)。該應(yīng)用服務(wù)器110也可以包括Web服務(wù)器106軟件,使得該Web服務(wù)器106能夠被考慮是該應(yīng)用服務(wù)器110的一個子集。類似于調(diào)用關(guān)于一個對象的一種方法(或一個功能),裝置100的應(yīng)用程序302能夠使用應(yīng)用服務(wù)器110的商業(yè)邏輯。應(yīng)該認(rèn)識到,能夠經(jīng)由網(wǎng)絡(luò)102、104通過該消息105把涉及應(yīng)用服務(wù)器110的客戶應(yīng)用程序程序302直接下載/上載到裝置100。應(yīng)該進(jìn)一步認(rèn)識到,裝置100可以通過網(wǎng)絡(luò)102、104與一個或多個Web服務(wù)器106和相關(guān)的應(yīng)用服務(wù)器110通信。還應(yīng)該認(rèn)識到,該裝置100能夠直接耦合到應(yīng)用服務(wù)器110,從而按照期望旁路該Web服務(wù)器106。
服務(wù)器環(huán)境參見圖1,Web服務(wù)器106提供了在通信裝置100上由客戶應(yīng)用程序302使用的信息消息105。另外或作為一種選擇,Web服務(wù)器106可以接收并且使用由在該通信裝置100上執(zhí)行該客戶應(yīng)用程序302提供的信息消息105,或完成在通信裝置100上執(zhí)行的代表客戶應(yīng)用程序302的任務(wù)。Web服務(wù)可被定義為Web服務(wù)器106的一個軟件服務(wù),該Web服務(wù)可以實現(xiàn)使用注冊在通用發(fā)現(xiàn)描述和集成(UDDI)中的Web服務(wù)描述語言(WSDL)表示的一個接口,并且能夠通過經(jīng)例如簡單對象訪問協(xié)議(SOAP)的適當(dāng)協(xié)議在互聯(lián)網(wǎng)絡(luò)104上表述來與客戶裝置100通過消息105通信。在某些實施方案中,SOAP是定義用于消息105的XML格式的一個規(guī)范,包括包裝在SOAP單元中的一個良好形成的XML片段。SOAP的其它部分規(guī)定了如何把程序數(shù)據(jù)表示為XML以及如何使用SOAP實現(xiàn)遠(yuǎn)程過程調(diào)用(RPC)。這些可選的SOAP部分被用于實現(xiàn)RPC形式的應(yīng)用程序,其中從該客戶裝置100發(fā)送包括一個可調(diào)用函數(shù)以及轉(zhuǎn)到該函數(shù)的參數(shù)的SOAP請求消息105,并且該服務(wù)器106返回該響應(yīng)消息105結(jié)果執(zhí)行函數(shù)。SOAP還支持文件形式應(yīng)用程序,其中該SOAP消息105是圍繞XML文檔的一個包裝。SOAP的另一可選部分定義HTTP約束(即標(biāo)題),其中某些SOAP實施方案支持MSMQ、MQ系列、SMTP或TCP/IP傳輸協(xié)議。另外,該Web服務(wù)可以使用其它公知通信協(xié)議、消息105格式,并且該接口可以用不同于上述的web服務(wù)語言來表達(dá)。因此,裝置100的用戶經(jīng)過網(wǎng)絡(luò)102、104利用由服務(wù)器106提供的服務(wù)。
客戶機(jī)環(huán)境參考圖2,組件應(yīng)用程序302是軟件應(yīng)用程序,如圖3描述的那樣,能夠以例如可擴(kuò)展標(biāo)記語言(XML)和ECMAScript的一個子集寫成。XML和ECMAScript是基于標(biāo)準(zhǔn)的語言,使得軟件開發(fā)者以便攜和獨立平臺的方式開發(fā)組件應(yīng)用程序302。通過無線網(wǎng)絡(luò)102無線發(fā)送該組件應(yīng)用程序302,并且裝入到裝置基礎(chǔ)結(jié)構(gòu)204的存儲器模塊210中。另外,組件應(yīng)用程序302可以經(jīng)由一個串行連接、USB連接、或例如IR,802.11(x)和/或BluetoothTM的短程無線通信系統(tǒng)加載到該裝置100上。一旦加載到移動通信裝置100,則該組件應(yīng)用程序302可由移動通信裝置100上的組件框架結(jié)構(gòu)執(zhí)行,把組件應(yīng)用程序302轉(zhuǎn)換成本機(jī)代碼,由該裝置基礎(chǔ)結(jié)構(gòu)204中的處理器208執(zhí)行該本機(jī)代碼。另外,該組件應(yīng)用程序302可被執(zhí)行作為本機(jī)代碼或由該移動通信裝置100上的其它軟件模塊或操作系統(tǒng)編譯,提供作為此后以數(shù)字206表示的一個本機(jī)運(yùn)行時環(huán)境的組件框架結(jié)構(gòu)206。
再次參考圖1和2,由裝置100提供的客戶機(jī)運(yùn)行時環(huán)境206能夠被配置來使裝置100操作為Web服務(wù)的(Web服務(wù)器106的)Web客戶機(jī)。裝置100的客戶機(jī)運(yùn)行時環(huán)境206最好能夠在裝置100上生成、主控和執(zhí)行該客戶應(yīng)用程序302(其為組件應(yīng)用程序的形式,參見圖3)。另外,該客戶機(jī)運(yùn)行時環(huán)境206的具體功能可以包括但不局限于例如對于語言、協(xié)調(diào)存儲器分配、連網(wǎng)、在I/O操作過程中的數(shù)據(jù)管理、在裝置100的輸出裝置上諧調(diào)圖形以及提供對定向分類和支持文件/庫的核心對象的存取的支持。由裝置100實施的運(yùn)行時環(huán)境206的實例可以包括例如但不局限于由微軟(Microsoft)公司提供的公用語言運(yùn)行時間(CLR)和Sun Microsystems公司提供的Java運(yùn)行時環(huán)境(JRE)。
裝置100的終端運(yùn)行時環(huán)境206最好支持用于客戶應(yīng)用程序302的駐留可執(zhí)行版本的下列基本功能,例如但不局限于提供把消息105發(fā)送到通過網(wǎng)絡(luò)102、104連接的該Web服務(wù)器106的Web服務(wù)的通信能力;在裝置100的一個輸入裝置上由用戶提供數(shù)據(jù)輸入能力,以便提供給該Web服務(wù)器106的Web服務(wù)的輸出消息105(到該服務(wù)的消息)的數(shù)據(jù)部分;提供用于Web服務(wù)的響應(yīng)消息105(輸入信息)的數(shù)據(jù)、或在該輸出裝置上的Web服務(wù)器106的不相關(guān)提示的數(shù)據(jù)顯示或輸出能力;提供數(shù)據(jù)存儲器服務(wù),以便在裝置100的存儲器模塊210(參見圖2)中保持本地客戶機(jī)數(shù)據(jù);以及提供用于腳本語言的執(zhí)行環(huán)境,以便協(xié)調(diào)客戶應(yīng)用程序302的應(yīng)用程序組件400,402、404、406(參見圖3)的操作。
因此,該本機(jī)客戶機(jī)終端運(yùn)行時環(huán)境206為客戶應(yīng)用程序302提供了接口,并且將接口提供給裝置100的處理器208的功能和裝置基礎(chǔ)結(jié)構(gòu)204的操作系統(tǒng)。該運(yùn)行時環(huán)境206最好在裝置100上提供一個受控的、安全的和穩(wěn)定的環(huán)境,其中執(zhí)行組件應(yīng)用程序302。該運(yùn)行時環(huán)境206提供該組件400、402、404、406的定義,以便創(chuàng)建具體針對通信裝置100的每一各個裝置基礎(chǔ)結(jié)構(gòu)20的實際Web客戶機(jī)。
通信裝置參考圖1和圖2,該移動通信裝置100是例如但不局限于移動電話、PDA、雙向?qū)ず魴C(jī)和雙模式通信裝置(參見圖9)。裝置100包括一個網(wǎng)絡(luò)連接接口,例如通過連接218耦合到裝置基礎(chǔ)結(jié)構(gòu)204的一臺無線收發(fā)機(jī)200。在裝置100的操作期間,該無線收發(fā)機(jī)200可連接到網(wǎng)絡(luò)102、104,例如通過RF鏈路連接到無線網(wǎng)絡(luò)102,使裝置100能夠通過網(wǎng)絡(luò)102、104與外部系統(tǒng)(例如Web服務(wù)器106)彼此通信。該無線收發(fā)機(jī)200還幫助該裝置100協(xié)調(diào)在客戶應(yīng)用程序302和服務(wù)器106、110之間的請求/響應(yīng)消息105。網(wǎng)絡(luò)102、104支持在連接到網(wǎng)絡(luò)102、104的裝置100和外部系統(tǒng)之間在請求/響應(yīng)消息105中的數(shù)據(jù)發(fā)送。該網(wǎng)絡(luò)102、104還可以支持對于在通信裝置100和該網(wǎng)絡(luò)102、104外部的裝置之間的電話呼叫的語音通信。無線網(wǎng)絡(luò)102能使用一種無線數(shù)據(jù)傳輸協(xié)議,例如但不局限于Data TAC、GPRS或CDMA。在無線網(wǎng)絡(luò)102和互聯(lián)網(wǎng)絡(luò)104之間的連接包括一個互聯(lián)網(wǎng)網(wǎng)關(guān)(沒示出),使該消息105和相關(guān)數(shù)據(jù)內(nèi)容能夠在連接裝置100和服務(wù)器106的Web服務(wù)之間流動。
再次參考圖2,裝置100還具有通過連接222耦合到裝置基礎(chǔ)結(jié)構(gòu)204的一個用戶接口202,以便與用戶(沒示出)交互。用戶接口202包括一個或者多個用戶輸入裝置,例如但不局限于QWERTY鍵盤、輔助鍵盤、軌跡輪、輸入筆、鼠標(biāo)器、話筒,以及輸出裝置,例如LCD屏幕顯示器和/或揚(yáng)聲器。如果該屏幕是觸摸敏感的,則該顯示器還可以用作通過裝置基礎(chǔ)結(jié)構(gòu)204控制的用戶輸入裝置。在運(yùn)行時環(huán)境206中執(zhí)行的客戶應(yīng)用程序302采用該請求/響應(yīng)消息消息105時,裝置100的用戶采用該用戶接口202來經(jīng)過系統(tǒng)10(參見圖1)協(xié)調(diào)該請求/響應(yīng)消息消息105。
再次參考圖2,通過裝置基礎(chǔ)結(jié)構(gòu)204啟動移動通信裝置100的操作。裝置基礎(chǔ)結(jié)構(gòu)204包括一個計算機(jī)處理器208和該相關(guān)存儲器模塊210。通過執(zhí)行由操作系統(tǒng)以及放置在存儲器模塊210中的客戶應(yīng)用程序302提供的相關(guān)指令,計算機(jī)處理器控制該網(wǎng)絡(luò)接口200、用戶接口202和通信裝置100的運(yùn)行時環(huán)境206的操作。應(yīng)該進(jìn)一步認(rèn)識到,裝置基礎(chǔ)結(jié)構(gòu)204可以包括耦合到處理器208的計算機(jī)可讀存儲介質(zhì)212,用于把指令提供到處理器和/或?qū)⒖蛻魬?yīng)用程序302加載/更新到該存儲器模塊210中。計算機(jī)可讀介質(zhì)212可以包括硬件和/或軟件,例如只舉例來說有磁盤、磁帶、光可讀介質(zhì),例如CD/DVD、ROMS以及存儲卡。在每種情況下,該計算機(jī)可讀介質(zhì)212都可以采取小盤、軟盤、盒帶、硬盤驅(qū)動器、固態(tài)存儲卡、或提供在存儲器模塊210中的RAM的形式。應(yīng)該指出,上述列出實例計算機(jī)可讀介質(zhì)212能被單獨或組合使用。
組件應(yīng)用程序參考圖3,組件應(yīng)用程序302的框圖包括數(shù)據(jù)組件400、顯示組件402和消息組件404,這些組件通過與客戶機(jī)運(yùn)行時環(huán)境206的通信214由工作流組件406協(xié)調(diào)。該結(jié)構(gòu)化定義語言可用于把組件400、402、404構(gòu)造為一系列元數(shù)據(jù)記錄,該元數(shù)據(jù)記錄包括表示一個資源的具體屬性的若干預(yù)定義單元,使得每一單元能夠具有一個或多個值。每一元數(shù)據(jù)規(guī)劃通常具有定義的特征,例如但不局限于有限數(shù)量的單元,每一單元的名稱,及針對每一單元的含意。示例的元數(shù)據(jù)規(guī)劃包括例如但不局限于都柏林(Dublin)核心(DC)、英-美分類規(guī)則(AACR2)、政府信息定位服務(wù)(GILS)、編碼檔案描述(EAD)、IMS全球?qū)W術(shù)協(xié)會(IMS)、及澳大利亞政府定位服務(wù)(AGLS)。編碼句法使得裝置基礎(chǔ)結(jié)構(gòu)204(參見圖2)處理組件400、402、404的元數(shù)據(jù),并且編碼方案包括例如但不局限于XML、HTML、XHTML、XSML、RDF、機(jī)讀目錄(MARC)及多用途互聯(lián)網(wǎng)郵件擴(kuò)展(MIME)??蛻魴C(jī)運(yùn)行時環(huán)境206對于該組件400、402、404的元數(shù)據(jù)描述符操作,以便提供該應(yīng)用程序302的一個可執(zhí)行版本。
再次參考圖4,數(shù)據(jù)組件400限定由組件應(yīng)用程序302使用的數(shù)據(jù)實體。數(shù)據(jù)組件400可以描述的數(shù)據(jù)實體的示例有用戶及財務(wù)事務(wù)處理。數(shù)據(jù)組件400定義為了描述該數(shù)據(jù)實體所要求的信息以及表達(dá)的信息格式。舉例而言,該數(shù)據(jù)組件400可以定義例如但不局限于包括針對格式化為數(shù)字的訂單的唯一標(biāo)識符的一個訂單,被格式為字串的項目的一個列表,具有日期-時間格式的訂單被創(chuàng)建的時間,被格式化為字符串的訂單狀態(tài),以及發(fā)出該訂單的一個用戶,該訂單被根據(jù)該數(shù)據(jù)組件400的另一定義而格式化。
再次參考圖4,該消息組件404定義由組件應(yīng)用程序302使用的消息格式,以便與例如Web服務(wù)的外部系統(tǒng)通信。例如,該消息組件404之一可以描述例如但不局限于一個用于發(fā)出訂單的消息,該訂單包括用于該訂單的唯一標(biāo)識符、訂單的狀態(tài)以及與訂單相關(guān)的注釋。
再次參考圖4,該顯示組件402限定了當(dāng)組件應(yīng)用程序302由用戶接口202顯示時該組件應(yīng)用程序302的外觀及工作情況。顯示組件402能夠規(guī)定GUI屏幕和控制,以及當(dāng)用戶使用該用戶口202與該組件應(yīng)用程序302交互時將被執(zhí)行的動作。例如,該顯示組件402可以限定屏幕、標(biāo)號、編輯框、按鈕和菜單,以及當(dāng)用戶鍵入一個編輯框或按下一個按鈕時將要采取的動作。大多數(shù)Web服務(wù)消費者使用Web服務(wù)操作結(jié)果的可視顯示,因此在能夠顯示用戶接口屏幕的裝置100上提供該運(yùn)行時環(huán)境。
參考圖1和4,應(yīng)該認(rèn)識到在上述客戶組件應(yīng)用程序302定義主控模式中,該顯示組件402可以根據(jù)客戶機(jī)平臺和裝置100的環(huán)境改變。例如,某些情況下,Web服務(wù)用戶不要求一個直觀顯示。該組件應(yīng)用程序302的組件400、402、404、406的應(yīng)用定義可以被主控在Web服務(wù)注冊表中,作為平臺-中性數(shù)據(jù)400、消息404、具有針對各種預(yù)定客戶機(jī)運(yùn)行時間的一組平臺-專用顯示組件402描述符的工作流406組件描述符的一個集束(參見圖2)。當(dāng)該發(fā)現(xiàn)或配置請求消息105被發(fā)出時,該客戶機(jī)類型應(yīng)該被規(guī)定作為這一請求消息105的一部分。為了在針對該通信裝置100的不同客戶機(jī)平臺打包組件應(yīng)用程序302的同時能夠避免復(fù)制數(shù)據(jù)、消息及工作流元數(shù)據(jù),應(yīng)用程序定義可在該應(yīng)用服務(wù)器110(例如)上被主控作為與顯示組件402的不同組鏈接的平臺-中性組件定義的一個集束。當(dāng)用戶作出發(fā)現(xiàn)或下載請求消息105時,該通信裝置100、116的客戶機(jī)運(yùn)行時類型被確認(rèn)并且配置適當(dāng)?shù)募?,由該Web服務(wù)器106經(jīng)過網(wǎng)絡(luò)102、104傳遞到裝置100。對于那些Web服務(wù)用戶來說,客戶應(yīng)用程序302將包含通過該工作流組件406與數(shù)據(jù)組件400和消息組件404鏈接顯示組件402。
再次參考圖4,該組件應(yīng)用程序302的工作流組件406限定了當(dāng)將執(zhí)行一個操作時發(fā)生的處理,例如由如上所述的顯示組件402規(guī)定的一個操作、或當(dāng)消息105(參見圖1)從系統(tǒng)10到達(dá)時將被執(zhí)行的一個動作。由工作流組件406定義顯示、工作流及消息處理。該工作流組件406被以程序設(shè)計語言或腳本語言,例如但不局限于ECMAScript腳本語言寫作一系列指令,并且如所述的那樣能夠成被編譯成本機(jī)代碼并由運(yùn)行時環(huán)境206執(zhí)行。工作流組件406的一個示例可以是對數(shù)據(jù)賦值、管理屏幕或發(fā)送該消息105。當(dāng)具有顯示組件時,能夠創(chuàng)建多個工作流定義,以便支持在裝置100中變化的能力和特征。能夠確定該適當(dāng)?shù)墓ぷ髁鞫x,并在該應(yīng)用程序302的下載和提供之時發(fā)送。
ECMA(歐洲計算機(jī)制造商聯(lián)合會)腳本是一種標(biāo)準(zhǔn)的腳本語言,其中的腳本能夠被稱為由另一程序而不是由計算機(jī)處理器編譯或執(zhí)行的指令的序列。其它的腳本語言的示例有Perl、Rexx、VBScript、JavaScript以及Tcl/Tk。通常,腳本語言是指令性語言,用于管理、定制以及自動操作現(xiàn)有系統(tǒng)的設(shè)施,例如裝置100。在這種系統(tǒng)中,已經(jīng)可通過用戶接口202(參見圖2)得到有用的功能,并且該腳本語言是用于表明編制程序控制功能的一個機(jī)制。以此方式,裝置100提供了完成該腳本語言能力的對象及設(shè)施的主機(jī)運(yùn)行時環(huán)境。
具體地說,EMCAScript是一個面向?qū)ο蟮某绦蛟O(shè)計語言,用于在該主機(jī)運(yùn)行時環(huán)境中執(zhí)行計算和管理計算的對象。ECMAScript能被用作一個網(wǎng)頁腳本語言,提供一種機(jī)制,執(zhí)行服務(wù)器106、110的計算,作為系統(tǒng)10的基于網(wǎng)頁的客戶服務(wù)器結(jié)構(gòu)的一部分(參見圖1)。ECMAScript提供用于各種的主機(jī)運(yùn)行時環(huán)境的核心腳本能力,并且因此該核心腳本語言能被認(rèn)為是對于若干具體主機(jī)運(yùn)行時環(huán)境是操作平臺中性。運(yùn)行時環(huán)境206(參見圖2)能夠提供用于通信裝置100的客戶機(jī)方計算的ECMAScript主機(jī)運(yùn)行時環(huán)境,例如但不局限于;表示框、菜單、彈出、對話框、文本區(qū)、定位點、幀、歷史、cookies和輸入/輸出的對象。另外,運(yùn)行時環(huán)境206的主機(jī)運(yùn)行時環(huán)境提供把腳本代碼附加到事件的一個裝置,這些事件例如但不限于聚焦的改變、頁面和圖像加載、卸載、出錯和異常中止、選擇、形式提交、及鼠標(biāo)動作。在使用ECMA腳本的實施方案中,出現(xiàn)在工作流組件406中的代碼把用戶接口單元與固定的和計算的文本及圖像組合,并且對用戶在該用戶接口202上的交互作出反應(yīng)。Web服務(wù)器106(參見圖1)提供用于服務(wù)器一側(cè)的計算的不同的主機(jī)環(huán)境,包括表示請求、客戶和文件的對象,以及鎖定和共享數(shù)據(jù)的機(jī)制。通過把客戶機(jī)一側(cè)和服務(wù)器一側(cè)腳本一起使用,有可能在提供用于基于Web的組件應(yīng)用程序302的一個定制用戶接口202的同時,在客戶通信裝置100和服務(wù)器106、110之間分配計算。
ECMAScript還定義一組內(nèi)置的操作符,可以不是嚴(yán)格意義上的功能或方法。ECMAScript操作符比如但不局限地包括各種一元操作符、相乘操作符、加法算符、逐位移位操作符、關(guān)系操作符、相等操作符、二進(jìn)制按位算符、二進(jìn)制邏輯操作符、賦值算符和逗點算符。但是ECMAScript句法類似于Java句法,ECMAScript句法被解限(relaxed),以便使其能被開發(fā)人員用作一種容易使用的腳本語言。例如,一個ECMAScript中的變量不要求申明其類型,也不是與屬性相關(guān)的類型,并且不要求限定的函數(shù)在調(diào)用之前出現(xiàn)文字聲明。應(yīng)該認(rèn)識到,在基于一個類別的面向?qū)ο蟮某绦蛟O(shè)計語言中,通常由實例攜帶狀態(tài)、由類別攜帶方法,并且繼承的只是結(jié)構(gòu)和行為特點。在ECMAScript中,由對象攜帶該狀態(tài)和方法,并且全部的繼承結(jié)構(gòu)、工作表現(xiàn)及狀態(tài)。
組件應(yīng)用程序示例因此,參考圖4,客戶應(yīng)用程序302能夠被定義為一組平臺中性的組件定義,指即對于數(shù)據(jù)組件400和消息組件404組件以及使用XML的顯示組件402(或任何其它適當(dāng)?shù)慕Y(jié)構(gòu)化定義語言)。工作流組件406能夠使用ECMAScript(或任何其它適當(dāng)?shù)钠脚_中性腳本語言)定義。當(dāng)該組件應(yīng)用程序302的組件400、402、404、406組件被提供在通信裝置100上時,客戶機(jī)運(yùn)行時環(huán)境206(參見圖2)能夠基于元定義來產(chǎn)生組件模板。利用一大類的終端運(yùn)行時環(huán)境206,例如XML或ECMAScript的跨平臺標(biāo)準(zhǔn)可用于定義應(yīng)用程序組件元數(shù)據(jù)而不是預(yù)先構(gòu)建該組件應(yīng)用程序302。這種延遲的約束能夠使得該組件應(yīng)用程序302的普通應(yīng)用程序的定義被運(yùn)行于由各種不同通信裝置100表示的各種終端系統(tǒng)環(huán)境206上。
利用與下列文檔類型定義(DTD)一致的限定組件,下面的示例示出了如何能夠使用例如但不局限于XML的一個結(jié)構(gòu)化定義語言以及例如但不局限于ECMAScript的操作平臺中性腳本/程序設(shè)計語言來表示W(wǎng)eb服務(wù)客戶應(yīng)用程序302的方式<!ELEMENT wcApp(desc?,iconUrl?,res*,wcData*,wcMsg*,style*,wcScr*,wcFlow)><!ATTLIST wcAppname CDATA#REQUIREDtitle CDATA#IMPLIEDvendor CDATA#IMPLIEDversion CDATA#IMPLIEDtransportKey CDATA#IMPLIEDinstallNotifURL CDATA#IMPLIEDregisterURL CDATA#IMPLIED><!ELEMENT desc(#PCDATA)><!ELEMENT iconUrl(#PCDATA)><!ELEMENT res(#PCDATA)><!ATTLIST res
name CDATA#REQUIREDurl CDATA#REQUIREDtype(xmlimage)sound)any)#REQUIREDdeferred(true false)″false″->Example Data Component 400<!ELEMENT wcData(field+)><!ATTLIST wcDataname CDATA#REQUIREDpersisted(true!false)″true″><!ELEMENT dfield(#PCDATA)><!ATTLIST dfieldname CDATA#REQUIREDtype(StringNumber Boolean Date Any)″Any″array(truefalse)″false″cmp(true false)″false″cmpName CDATA#IMPLIEDkey(0 1)2)″0″>Example Message Component 404<!ELEMENT wcMsg(mfield*)><!ATTLIST wcMsgname CDATA#REQUIREDmapping CDATA#IMPLIED><!ATTLIST wcMsgpblock CDATA#IMPLIED><!ELEMENT mfield(#PCDATA)><!ATTLIST mfieldname CDATA#REQUIREDtype(String I Number I Boolean Date Array XML)#IMPLIEDmapping CDATA#IMPLIED>Example Presentation Components 402<!ELEMENT wcScr(layout?,menu?,refresh?,event?)><!ATTLIST wcScrname CDATA#REQUIREDtitle CDATA#IMPLIEDmain(true false)″false″dialog(truefalse)″false″param CDATA#IMPLIED><!ELEMENT style(font?)><!ATTLIST stylename CDATA#REQUIREDbgColor CDATA#IMPLIED><!ELEMENT font EMPTY><!ATTLIST fontname CDATA#REQUIREDcolor CDATA#IMPLIEDsize CDATA#IMPLIEDbold(truefalse)″false″italic(true false)″false″underline(true j false)″false″><!ELEMENT refresh(msg+)><!ELEMENT msg(#PCDATA)><!ELEMENT layout(layout*,label*,separator*,edit*,image*,choice*,button*,textarea*)><!ATTLIST layouttype(grid j flow{bordervertical)#REQUIREDparam CDATA#IMPLIEDplacement CDATA#IMPLIEDstyle CDATA#IMPLIED><!ELEMENT menu(item*)><!ELEMENT item(action,condition?)><!ATTLIST itemname CDATA#REQUIREDlabel CDATA#REQUiREDshortcut CDATA#IMPLIED><!ELEMENT action EMPTY><!ATTLIST actionscreen CDATA#IMPLIEDpblock CDATA#IMPLIEDparam CDATA#IMPLIEDacceptChanges(truefalse)″true″><!ELEMENT condition EMPTY><!ATTLIST conditionpblock CDATA#REQUIREDparam CDATA#IMPLIEDresult(truefalse)″true″><!ELEMENT event EMPTY><!ATTLIST eventtype(onlnit onClick onChange onFocusOut)″onlnit″pblock CDATA#IMPLIEDscreen CDATA#IMPLIEDparam CDATA#IMPLIED><!ELEMENT separator EMPTY><!ELEMENT label(condition?,event?)><!ATTLIST labelname CDATA#REQUIREDvalue CDATA#REQUIREDplacement CDATA#IMPLIEDstyle CDATA#IMPLIED><!ELEMENT edit(condition?,event?)><!ATTLIST editname CDATA#REQUIREDvalue CDATA#IMPLIEDmapping CDATA#IMPLIEDtype(char|number|date|pwd|phone|email)″char″readOnly(true|false)″false″placement CDATA#IMPLIEDstyle CDATA#IMPLIED><!ELEMENT textarea(condition?,event?)><!ATTLIST textareaname CDATA#REQUIREDvalue CDATA#IMPLIED
mapping CDATA#IMPLIEDreadOnly(truefalse)″false″placement CDATA#IMPLIEDstyle CDATA#IMPLIED><!ELEMENT image(condition?,event?)><!ATTLIST imagename CDATA#REQUIREDresName CDATA#REQUIREDplacement CDATA#IMPLIED><!ELEMENT choice(condition?,event?,entry*)><!ATTLIST choicename CDATA#REQUIREDvalue CDATA#IMPLIEDmapping CDATA#IMPLIEDtype(singleList|multiList|dropdown|checkbox|radio)″singleList″readOnly(true false)″false″placement CDATA#IMPLIEDstyle CDATA#IMPLIED><!ELEMENT entry(#PCDATA)><!ELEMENT button(condition?,event?)><!ATTLIST buttonname CDATA#REQUIREDlabel CDATA#REQUIREDimage(true|false)″false″placement CDATA#IMPLIEDstyle CDATA#IMPLIED>ExampleWorkflow Component 406<!ELEMENTwcFlow(block+)><!ELEMENTpblock(#PCDATA)><!ATTLIST pblockid CDATA#REQUIREDparam CDATA#IMPLIED>
如上給出的那樣,XML單元限定了示例組件應(yīng)用程序302,包括wcApp單元、wcData單元、wcMsg單元、wcSrc單元、和wcFlow單元。參考圖3,wcApp元件是限定組件應(yīng)用程序302的一個高等級單元。wcData單元限定該示例的數(shù)據(jù)組件400,包括一組命名的類型字段。wcMsg單元限定該示例的消息組件404,類似限定一組名稱的類型字段。wcSrc單元限定該示例的顯示組件402。該示例顯示組件402是一個標(biāo)記、分隔符、圖像、按鈕、編輯字段、文本區(qū)、單項選擇表、多項選擇表、下拉列表、檢查框、無線電按鈕、或包括一組其它顯示組件402的屏幕。
參考上述示例組件應(yīng)用程序302和圖3,該wcFlow單元限定了示例工作流組件406。該XML單元的程序框(pblock)屬性指定了嵌套在wcFlow單元中的一個程序框單元。每一個程序框單元都包括限定該組件應(yīng)用程序302的工作流的一部分的腳本。該腳本以ECMAScript寫成。
為了定義組件應(yīng)用程序302的工作表現(xiàn),工作流組件406使用ECMAScript來參考和操作該數(shù)據(jù)組件400、該顯示組件402和該消息組件404。工作流組件406也可以參考外部對象類型,實現(xiàn)對于以組件應(yīng)用程序302定義的組件執(zhí)行操作。例如,一個wcMsg類型允許由消息組件404限定的消息被評估來確定是否已經(jīng)提供了命令字段,并且確定是否被發(fā)到例如服務(wù)器106的Web服務(wù)的外部系統(tǒng)。wcData的類型確定了由數(shù)據(jù)組件400定義的數(shù)據(jù)實體的收集規(guī)模,并且允許刪去數(shù)據(jù)實體。一個wcScr類型實現(xiàn)把顯示組件402顯示給用戶。類似地,一個專用對話外部對象允許一個消息被在用戶接口202上顯示給用戶(參見圖2)。
具有接口的示例組件應(yīng)用程序302參考圖1和4,示出了說明另一示例組件應(yīng)用程序302的框圖。包括在示例組件應(yīng)用程序302中的顯示組件402定義了一個登錄屏幕500、一個專用屏幕502、一個傳遞信息屏幕504、一個訂單列表屏幕508和訂單狀態(tài)屏幕506。這些屏幕將提供在通信裝置100的用戶接口202上(參見圖2)。該示例的組件應(yīng)用程序302使得用戶瀏覽一個比薩餅菜單、訂單用于遞送的一個比薩餅菜單并且瀏覽過去訂單的細(xì)節(jié)。該用戶首先被提供的是在用戶接口202上的登錄屏幕500。用戶提供一個用戶名和密碼,并且隨后按下登錄按鈕501。工作流組件406對照由服務(wù)器106的Web服務(wù)通過信息105提供的一個用戶分布文件檢驗用戶名和口令。如果用戶成功登錄,則顯示專用屏幕502。從該專用屏幕502中,該用戶能夠選擇菜單項來下訂單或瀏覽訂單狀態(tài),這將確定是否顯示該遞送信息屏幕504,或是否顯示該訂單列表屏幕508。該遞送信息屏幕504使得該用戶指定一個訂單的細(xì)節(jié)。使用描述一個訂單的數(shù)據(jù)組件400存儲由用戶提供的信息。
用戶隨后選定一個菜單選項來發(fā)送訂單,這將啟動工作流組件406把由包括訂單信息的相應(yīng)消息組件404限定的該消息105送到服務(wù)器106上的該Web服務(wù)。訂單列表屏幕508列出過去的訂單,允許用戶選定一個菜單項來瀏覽該一個或多個列出的訂單的細(xì)節(jié)。在發(fā)送出一個訂單或選擇菜單項來瀏覽訂單細(xì)節(jié)之后,根據(jù)由裝置100接收以及隨后由相關(guān)消息組件404、工作流組件406、顯示組件402和數(shù)據(jù)組件400處理的響應(yīng)消息105,顯示訂單狀態(tài)屏幕506。訂單狀態(tài)屏幕506包含描述該用戶已經(jīng)發(fā)出的訂單的信息,以及當(dāng)選擇時引起專用屏幕502被顯示的一個菜單項。該消息組件404轉(zhuǎn)送針對該消息105的輸入和輸出的所需數(shù)據(jù)。對應(yīng)的數(shù)據(jù)組件400協(xié)調(diào)在裝置100的存儲器模塊210(參見圖2)中的數(shù)據(jù)的存儲,用于隨后由該顯示組件402在用戶接口上的顯示。工作流組件406協(xié)調(diào)數(shù)據(jù)在數(shù)據(jù)組件400、顯示組件402和消息組件404之間的變換。
顯示在圖5中的示例組件應(yīng)用程序302以如下的XML和mEScript表示,包括作為″wcData″的數(shù)據(jù)組件400、作為″wcMsg″的消息組件404、作為″wcScr″的顯示組件402、以及作為″wcFlow″的工作流組件406,用于處理其它組件400、402、404<IDOCTYPE wcApp SYSTEM″wcApp.dtd″><wcApp name=″WirelessPiza″title=″WirelessPiza″vendor=″ARG″version=″0.9″>
<desc>Order pizza from your wireless device.</desc>
<iconUrl>http//www.example.com/wirelessPizzalcon.png</iconUrl>
<wcData riame=″User″>
<dfield name=″name″type=″String″key=″1″/>
<dfield name=″passwordHash″type=″String″/>
<dfield name=″street″type=″String″/>
<dfield name=″city″type=″String″/>
<dfield name=″postal″type=″String″/>
<dfield name=″phone″type=″String″/></wcData><wcData name=″OrderStatus″>
<dfield name=″confNumber″type=″Number″key=″1″/>
<dfield name=″status″type=″String″/>
<dfield name=″datetime″type=″Date″/></wcData><wcData name=″Order″>
<dfield name=″orderld″type=″Number″key=″1″/>
<dfield name=″special″type=″String″/>
<dfield name=″user″cmp=″true″cmpName=″User″/>
<dfield name=″datetime″type=″Date″/>
<dfieldname=″orderStatus″cmp=″true″cmpName=″OrderStatus″/></wcData><wcData name=″Special″>
<dfield name=″desc″key=″1″type=″String″/>
<dfield name=″price″type=″Number″/></wcData><wcMsg name=″inAddSpecial″mapping=″Special″></wcMsg><wcMsg name=″inRemoveSpecial″pblock=″mhRemoveSpecial″>
<mfield name=″desc″mapping=″Special.desc″/></wcMsg><wcMsg name=″inOrderStatus″>
<mfield name=″orderld″mapping=″Order.orderld″/>
<mfield name=″status″mapping=″Order.orderStatus″/></wcMsg><wcMsg name=″inUserInfo″mapping=″User″></wcMsg><wcMsg name=″outOrder″>
<mfield name=″special″mapping=″Order.special″/>
<mfield name=″user″mapping=″Order.user″/>
<mfield name=″datetime″mapping=″Order.datetime′/></wcMsg>
<wcScr name=″scrSpecials″title=″Specials″main=″true″>
<layout type=″flow″>
<choice name=″slSpecials″value=″Special0.desc+′-.$′+Special0.price″type=″singleList″/>
</layout>
<menu>
<item name=″login″label=″Login″>
<action screen=″scrLogin″/>
<conditionpblock=″chLoggedin″result=″false″/>
</item><item name=″order″label=″Order″>
<actionscreen=″scrDelivery″param=″Application.authenticatedUser″/>
<condition pblock=″chLoggedin″/>
</item>
<item name=″viewOrderStatus″label=″ViewOrders Status″>
<action screen=″scrOrdersList″/>
<condition pblock=″chLoggedin″/>
</item>
</menu>
</wcScr>
<wcScr name=″scrLogin″dialog=″true″>
<layout type=″vertical″>
<layout type=″flow″>
<labelname=″lblUserName″value=″User Name′”/>
<editname=″edUserName″type=″char″/>
</layout>
<layout type=″flow″>
<labelname=″lblPassword″value=″Password″/>
<editname=″edPassword″type=″pwd″/>
</layout>
<button name=″btnLogin″label=″Login″>
<eventtype=″onClick″pblock=″ahLogin″param=″edUserName.vaXue″/>
</button>
</layout>
</wcScr>
<wcScr name=″scrDelivery″title=″Please provide deliveryinformation″param=″User″>
<layout type=″vertical″>
<layout type=″flow″>
<labelname=″lblStreet″value=″Street″/>
<editname=″street″mapping=″User.street″type=″char″/>
</layout>
<layout type=″flow″>
<labelname=″lblCity′value=″City″/>
<edit name=″city″mapping=″User.city″type=″char″/>
</layout>
<layout type=″flow″>
<labelname=″lblPostalCode″value=″Postal code″/>
<editname=″postalCode″mapping=″User.postal″type=″char″/>
</layout>
<layout type=″flow″>
<labelname=″lblPhone″value=″Telephone″/>
<editname=″phone″mapping=″User.phone″type=″phone″/>
</layout>
<layout type=″flow″>
<label name=″lblDate″value=″Dateof delivery″/>
<edit name=″date″type=″date″/>
</layout>
</layout>
<menu>
<item name=″sendOrder″label=″SendOrder″>
<actionpblock=″ahSendOrder″param=″User″/>
</item>
</menu>
</wcScr>
<wcScr name=″scrOrderStatus″title=″Orderstatus″param=″Order″>
<layout type=″vertical″param=″%″>
<layout type=″flow″>
<labelname=″lblSpecialr″value=″Special″/>
<labelname=″lblSpecialMapped″value=″@OrderO.special″/>
</layout>
<layout type=″flow″>
<labelname=″lblConfNumber″value=″Confirmation number″/>
<labelname=″lblConfNumberMapped″value=″@Order0.orderStatus.confNumber″/>
</layout>
<layout type=″flow″>
<labelname=″lblStatus″value=″Status″/>
<labelname=″lblStatusMapped″value=″@Ordero.orderStatus.status″/>
</layout>
<layout type=″flow″>
<labelname=″lblConfDate″value=″Date of last status update″/>
<labelname=″lblConfDateMapped″value=″@Order0.orderStatus.datetime″/>
</layout>
<separator/>
</layout>
<menu>
<item name=″continue″label=″Continue″>
<action screen=″scrSpecials″/>
</item>
</menu>
<refresh>
<msg>inOrderStatus</msg>
</refresh>
</wcScr>
<wcScr name=″scrOrdersList″title=″Previous Orders″>
<layout type=″vertical″>
<label name=″lbllnstructions″value=″Selectone or more order″/>
<cnoicename=″mlOrderList″value=″@Order0.datetime+′-′+@Orders.special″mapping=″Order0″type=″multiList″/>
</layout>
<menu>
<item name=″viewOrder″label=′View Order″>
<actionscreen=″scrOrderStatus″param=″mlOrderList.selected″/>
</item>
</menu>
</wcScr>
<wcFlow>
<pblock id=″chLoggedin″>
return Application.authenticatedUser?。絥ull;</pblock>
<pblock id=″ahLogin″param=″User.name″>
if(User.passwordHash==Util.md5(scrLogin.edPassword)){Application.authenticatedUser=User;scrLogin.back();.
}else{Dialog.display(″Invalid login!″);}</pblock>
<pblock id=″ahSendOrder″param=″User″>
Order.orderld=Util.guid();Order.special=scrSpecials.slSpecials.selected;Order.user=User;Order.datetime=scrDelivery.date;OrderStatus.confNumber=Util.guid();OrderStatus.status=″Sent.Pendingresponse.″;OrderStatus.date=UtiLcurrentDate();Order.orderStatus=OrderStatus;outOrder.send();scrOrderStatus.display(Order);</pblock>
<pblockid=″mhRemoveSpecial″param=″inRemoveSpecial″>
Special.desc=inRemoveSpecial.desc;Special.delete();</pblock>
</wcFlow></wcApp>
圖5是表示一個方法的流程圖,該方法建立該無線組件應(yīng)用程序302,用于隨后的經(jīng)過網(wǎng)絡(luò)102、104對于裝置100的通信。還參考圖3,該方法以創(chuàng)建該數(shù)據(jù)組件400的步驟600為起點,定義例如用戶和訂單的數(shù)據(jù)實體。該方法以創(chuàng)建顯示組件402的步驟602繼續(xù),用于定義諸如屏幕、按鍵、菜單和圖像的用戶接口單元。該方法以創(chuàng)建消息組件402的步驟604繼續(xù),用于定義被發(fā)送到例如在服務(wù)器106(參見圖1)上的Web服務(wù)的外部系統(tǒng)的消息格式。組件400、402、404被以結(jié)構(gòu)化定義語言表示,例如但不局限于以基于XML的一個結(jié)構(gòu)化定義語言表示。該方法以步驟606結(jié)束,嘗試把數(shù)據(jù)組件400、顯示組件402和消息組件404與工作流組件406合在一起,以便定義應(yīng)用程序302的工作表現(xiàn)。該工作流組件406被寫作一系列指令,例如但不局限于上述的ECMAScript。構(gòu)建一個無線組件應(yīng)用程序302的方法可以包括比圖5所示步驟更少或更多的步驟。
參見圖1及圖6,示出了裝置100和Web服務(wù)器的Web服務(wù)之間的交互的操作800。Web服務(wù)接收該請求裝置100開始與Web服務(wù)通信的請求消息105(802)。Web服務(wù)把要求的組件應(yīng)用程序302的組件400、402、404、406(如果有任何一個)上載到裝置100(804),以便支持在Web服務(wù)和裝置100之間的隨后的信息交換。該裝置接收該發(fā)送的組件應(yīng)用程序302,并且開始由該運(yùn)行時環(huán)境206(參見圖3)提供該組件400、402、404、406(806),以便通過產(chǎn)生該組件應(yīng)用程序302的一個可執(zhí)行版本而把該裝置配置為Web服務(wù)的一個Web客戶機(jī)。裝置100的用戶把數(shù)據(jù)輸入到裝置100的用戶接口202參見圖2)(808)(,用于隨后發(fā)送到Web服務(wù)(810)作為用于接收Web服務(wù)操作的一個請求消息105。該Web服務(wù)處理該請求消息105,并發(fā)送包括數(shù)據(jù)的適當(dāng)?shù)捻憫?yīng)消息105(812),用于隨后在用戶接口202上輸出。裝置100接收包含該數(shù)據(jù)的消息105(814),并且該組件應(yīng)用程序302的可執(zhí)行版本適當(dāng)?shù)匕褦?shù)據(jù)輸出在用戶接口202上。而且按照上述的那樣,在裝置100和Web服務(wù)之間執(zhí)行數(shù)據(jù)交換(816),或結(jié)束該交換(818),并且該組件應(yīng)用程序302的可執(zhí)行版本被按照期望或保存在存儲器210(參見圖2)中或者從運(yùn)行時環(huán)境206中刪除。
參考圖1、3和7,例如當(dāng)裝置100接收包含消息數(shù)據(jù)的響應(yīng)消息105(902)時,操作900示出該適當(dāng)?shù)墓ぷ髁鹘M件406根據(jù)該適當(dāng)?shù)南⒔M件404來編譯該消息105的數(shù)據(jù)內(nèi)容(904)。工作流組件406隨即處理該數(shù)據(jù)內(nèi)容(906),并且把該數(shù)據(jù)插入到相應(yīng)的數(shù)據(jù)組件400中(910),用于隨后在存儲器模塊210(參見圖2)中的存儲(912)。而且如果需要的話,該工作流組件406還把數(shù)據(jù)插入到該適當(dāng)?shù)娘@示組件402中(908),用于隨后在用戶接口202(參見圖2)上的顯示(914)。
參見圖1、3和8,操作過程(1000)示出針對一個動作的數(shù)據(jù)輸入(1002),例如按下一個按鈕或選定一個菜單選項,用戶通過該用戶接口202(參見圖2)在一個用戶接口單元上執(zhí)行這些動作(1003)。該相關(guān)的工作流組件406根據(jù)適當(dāng)?shù)娘@示組件404解釋該輸入數(shù)據(jù)(1004),并且創(chuàng)建由適當(dāng)數(shù)據(jù)組件400限定的數(shù)據(jù)實體(1006)。工作流組件406隨即以由用戶提供的輸入數(shù)據(jù)填充該數(shù)據(jù)組件400(1010),用于隨后在該存儲器模塊210(參見圖2)中的存儲(1012)。而且,該工作流組件406還把該輸入數(shù)據(jù)插入到該適當(dāng)?shù)南⒔M件404中(1008),用于隨后以消息105把作為數(shù)據(jù)實體的該輸入數(shù)據(jù)發(fā)送到Web服務(wù)信號輸入105(1014),如由該消息組件404的定義。
應(yīng)該認(rèn)識到,由于該組件應(yīng)用程序302不使用全部程序設(shè)計語言、而是相反地使用例如比較淺顯易學(xué)的XML和ECMAScript的基于標(biāo)準(zhǔn)的技術(shù),所以使用上述方法創(chuàng)建的組件應(yīng)用程序302,將能需要比硬編碼應(yīng)用程序更少的時間來創(chuàng)建。該方法能夠產(chǎn)生其中該用戶接口202和該數(shù)據(jù)的定義被分離的組件應(yīng)用程序302。這種分離使得在該組件應(yīng)用程序302中的任何組件400、402、404、406的修改而不影響及需要在該組件應(yīng)用程序302中的其它組件400、402、404、406的實質(zhì)改變,并因此可以有助于該組件應(yīng)用程序302的的維護(hù),包括在裝置100上的該組件應(yīng)用程序302的修改和更新。
圖9是一個雙模式移動通信裝置710的框圖,是圖1和6的裝置100的進(jìn)一步的示例。該雙模式移動通信裝置710包括收發(fā)機(jī)711、微處理器738、顯示器722、閃速存儲器724、RAM存儲器726、輔助輸入/輸出(I/O)裝置728、串行端口730、鍵盤732、揚(yáng)聲器734、話筒736、短程無線通信子系統(tǒng)740,并且還可包括其它裝置子系統(tǒng)742。收發(fā)機(jī)711優(yōu)選地包括發(fā)送與接收天線716及718、接收器712、發(fā)射器714、一個或多個本機(jī)振蕩器713及數(shù)字信號處理器720。在該閃速存儲器724中,該雙模式移動通信裝置710最好包括能由微處理器738(和/或DSP 720)執(zhí)行的多個軟件模塊724A-724N,包括語音通信模塊724A、數(shù)據(jù)通信模塊724B、和用于執(zhí)行多個其它功能的多個其它操作模塊724N。
該雙模式移動通信裝置710最好是具有語音及數(shù)據(jù)通信能力的一個雙向通信裝置。因此該雙模式移動通信裝置710可以例如經(jīng)過例如模擬或數(shù)字蜂窩網(wǎng)絡(luò)的任何語音網(wǎng)絡(luò)進(jìn)行通信,并且還可以經(jīng)過數(shù)據(jù)網(wǎng)絡(luò)通信。圖9中以通信塔719示出語音及數(shù)據(jù)網(wǎng)絡(luò)。這些語音和數(shù)據(jù)網(wǎng)絡(luò)可以是分離的通信網(wǎng)絡(luò),使用分離的基礎(chǔ)結(jié)構(gòu),例如基站、網(wǎng)絡(luò)控制器等,或可被集成為單一無線網(wǎng)絡(luò)。
該通信子系統(tǒng)711被用于與該語音和數(shù)據(jù)網(wǎng)絡(luò)719通信,并且包括接收器712、發(fā)射器714、一個或多個本機(jī)振蕩器713,并也可包括DSP 720。該DSP 720被用于對發(fā)射器714和接收器712的信號接收和發(fā)送,并且也用來從發(fā)射器714接收控制信息以及把控制信息提供到接收器712。如果該語音和數(shù)據(jù)通信以單一頻率出現(xiàn),或是緊挨的頻率設(shè)置,則可以與發(fā)射器714和接收器712結(jié)合使用單一本機(jī)振蕩器713。另外,如果實現(xiàn)語音通信與對應(yīng)的數(shù)據(jù)通信利用的是不同頻率,則可用多個本機(jī)振蕩器713產(chǎn)生對應(yīng)于該語音和數(shù)據(jù)網(wǎng)絡(luò)719的多個頻率。雖然圖9中描述的是兩個天線716、718,但是雙模式移動通信裝置710能被以單個天線結(jié)構(gòu)使用。經(jīng)由在DSP 720和微處理器738之間的鏈路與通信模塊711通信包括語音和數(shù)據(jù)信息的信息。通信子系統(tǒng)711的詳細(xì)設(shè)計,例如頻帶、組件選擇、功率電平等,取決于其中要操作雙模式移動通信裝置710的通信網(wǎng)絡(luò)719。例如,想要操作在北美市場中的一個雙模式移動通信裝置710可以包括被設(shè)計來利用MobitexTM或DataTACTM移動數(shù)據(jù)通信網(wǎng)絡(luò)工作的一個通信子系統(tǒng)711,并且也可以設(shè)計來利用例如AMPS、TDMA、CDMA、PCS等多種語音通信網(wǎng)絡(luò)的任何之一操作;而想要使用在歐洲的裝置710可以配置來利用通用無線分組服務(wù)(GPRS)數(shù)據(jù)通信網(wǎng)絡(luò)和GSM語音通信網(wǎng)絡(luò)來操作。其它類型的分離和集成的數(shù)據(jù)和語音網(wǎng)絡(luò)也同樣可以利用該雙模式移動通信裝置710。
根據(jù)單一或幾個網(wǎng)絡(luò)719的類型,對于該雙模式移動通信裝置710的接入要求也可能變化。例如,在Mobitex和DataTAC數(shù)據(jù)網(wǎng)絡(luò)中,使用與每一個裝置相關(guān)的唯一標(biāo)識號碼把移動裝置注冊在網(wǎng)絡(luò)上。但是在GPRS數(shù)據(jù)網(wǎng)絡(luò)中,網(wǎng)絡(luò)接入與用戶或移動裝置的使用者相關(guān)。GPRS裝置通常要求一個用戶的標(biāo)識模塊(″SIM″),要求該模塊來在一個GPRS網(wǎng)絡(luò)上操作雙模式移動通信裝置??梢圆僮鞅镜丶捶蔷W(wǎng)絡(luò)通信功能(如果有的話),無需該SIM,但除了任意法定要求的操作,例如911緊急呼叫之外,一個雙模式移動通信裝置將不能執(zhí)行任何涉及經(jīng)過數(shù)據(jù)網(wǎng)絡(luò)719的通信功能。
在完成任何要求的網(wǎng)絡(luò)注冊或激活處理過程之后,該雙模式移動通信裝置710可以隨即經(jīng)過網(wǎng)絡(luò)719(或幾個網(wǎng)絡(luò))發(fā)送和接收通信信號,包括語音和數(shù)據(jù)信號二者。由天線716從通信網(wǎng)絡(luò)719接收的信號被路由到該接收器712,該接收器712提供信號放大、降頻變換、濾波、信道選擇等,并且還可以提供模擬數(shù)字轉(zhuǎn)換。接收信號的模擬數(shù)字轉(zhuǎn)換實現(xiàn)更復(fù)雜的通信功能,例如使用DSP 720執(zhí)行的數(shù)字解調(diào)和解碼。以一個類似的方式處理將被發(fā)送到網(wǎng)絡(luò)719的信號,該處理包括由DSP 720調(diào)制和編碼,并且被隨即提供到發(fā)射器714用于數(shù)模轉(zhuǎn)換、上變頻、濾波、放大,并且通過天線718發(fā)送到通信網(wǎng)絡(luò)719(或幾個網(wǎng)絡(luò))。雖然圖9示出了單個收發(fā)機(jī)711既用于語音通信又用于數(shù)據(jù)通信,但是該雙模式移動通信裝置710有可能包括兩個不同的收發(fā)機(jī),第一收發(fā)機(jī)用于發(fā)送和接收語音信號,第二收發(fā)機(jī)用于發(fā)送和接收數(shù)據(jù)信號。
除了處理該通信信號之外,該DSP 720還提供接收器和發(fā)射器的控制。例如,加到該接收器712和發(fā)射器714的通信信號的增益等級可以通過該DSP 720中執(zhí)行的自動增益控制算法自適應(yīng)地控制。其它收發(fā)機(jī)控制算法還可以在DSP 720中執(zhí)行,以便提供收發(fā)機(jī)711的更復(fù)雜的控制。
微處理器738最好管理和控制該雙模式移動通信裝置710的總體操作。許多類型的微處理器或微控制器能被使用于其中,或另外單一DSP 720可用于執(zhí)行微處理器738的功能。在收發(fā)機(jī)711中通過DSP 720執(zhí)行包括至少數(shù)據(jù)和語音通信的低級通信。另外,例如語音通信應(yīng)用程序724A的高級通信應(yīng)用以及數(shù)據(jù)通信應(yīng)用程序724B可被存儲在閃速存儲器724中供微處理器738執(zhí)行。例如,該語音通信模塊724A可以提供一個高級用戶接口,可操作來經(jīng)由該網(wǎng)絡(luò)719在雙模式移動通信裝置710和多個其它語音裝置之間發(fā)送與接收語音呼叫。類似地,該數(shù)據(jù)通信模塊724B可能提供可操作用于發(fā)送和接收數(shù)據(jù)的一個高級用戶接口,例如經(jīng)由網(wǎng)絡(luò)719在該雙模式移動通信裝置710和多個其它數(shù)據(jù)裝置之間發(fā)送和接收例如電子郵件消息、文件、管理器數(shù)據(jù)、短文本消息等數(shù)據(jù)。在該雙模式移動通信裝置710中,一個如上所述的組件框架結(jié)構(gòu)206還可以被執(zhí)行作為一個軟件模塊或應(yīng)用程序,或結(jié)合到軟件模塊724A-724N之一中。
微處理器738還與其它雙模式移動通信裝置子系統(tǒng)相互作用,例如顯示器722、閃速存儲器724、隨機(jī)存取存儲器(RAM)726、輔助輸入/輸出(I/O)子系統(tǒng)728、串行端口730、鍵盤732、揚(yáng)聲器734、話筒736、短程通信子系統(tǒng)740以及任何其它通常被指定為742的雙模式移動通信裝置子系統(tǒng)。
圖9所示的某些子系統(tǒng)執(zhí)行通信相關(guān)的功能,而其它子系統(tǒng)可以提供執(zhí)行駐留或在裝置有關(guān)的功能。值得注意的是,例如鍵盤732和顯示器722的某些子系統(tǒng)既可用于通信相關(guān)的功能,例如經(jīng)過數(shù)據(jù)通信網(wǎng)輸入用于發(fā)送的文本消息,又可用于裝置駐留功能,例如計算機(jī)或任務(wù)列表或其他PDA類型的功能。
由微處理器738使用的操作系統(tǒng)軟件最好被存儲在諸如閃速存儲器724的一個持久存儲器中。除了控制雙模式移動通信裝置710的全部低級功能的該操作系統(tǒng)之外,閃速存儲器724可能包括多個高級軟件應(yīng)用程序或模塊,例如語音通信模塊724A、數(shù)據(jù)通信模塊724B、管理器模塊(沒示出)或任何其它類型的軟件模塊724N。閃速存儲器724還可包括為存儲數(shù)據(jù)的文件系統(tǒng)。這些模塊由微處理器738執(zhí)行,并且提供在雙模式移動通信裝置的用戶和移動裝置之間的一種高級接口。這種接口通常包括通過顯示器722提供的圖形組件,以及通過輔助I/O728、鍵盤732、揚(yáng)聲器734和送話器736提供的輸入/輸出組件。該操作系統(tǒng),具體地說是雙模式移動通信裝置軟件應(yīng)用程序或模塊、或其部分,可以臨時裝入到例如RAM 726的一個易失性存儲器中,用于更快地操作。而且,在將接收的通信信號永久地寫入到設(shè)置在持久存儲器724之前,接收的通信信號也可以被暫存到RAM726。
可被加載到雙模式移動通信裝置710上的一個示例性應(yīng)用模塊724N是一種個人信息管理器(PIM)應(yīng)用程序,提供例如日歷事件、約定以及任務(wù)項的PDA功能。此模塊724N也可以與管理電話呼叫、語音郵件等的語音通信模塊724A交互,并且還可以與用于管理電子郵件通信以及其它數(shù)據(jù)傳輸?shù)臄?shù)據(jù)通信模塊交互。另外,語音通信模塊724A的和數(shù)據(jù)通信模塊724B的全部功能都可被集成到該P(yáng)IM模塊中。
該閃速存儲器724最好提供一種文件系統(tǒng)提供,以便促進(jìn)在雙模式移動通信裝置710上的PIM數(shù)據(jù)項的存儲。該P(yáng)IM應(yīng)用程序最好包括通過該無線網(wǎng)絡(luò)719發(fā)送和接收數(shù)據(jù)項的能力,或是本身或結(jié)合該語音和數(shù)據(jù)通信模塊724A、724B進(jìn)行數(shù)據(jù)項的發(fā)送和接收。PIM數(shù)據(jù)項最好是通過無線網(wǎng)絡(luò)719與存儲的或主機(jī)系統(tǒng)相關(guān)的一個對應(yīng)組的數(shù)據(jù)無縫地集成、同步及更新,藉此創(chuàng)建與具體用戶相關(guān)的用于數(shù)據(jù)項的鏡像系統(tǒng)。
該雙模式移動通信裝置710還可以通過在一個接口框中放置該雙模式移動通信裝置710而手動地與一個主系統(tǒng)同步,該接口框把該雙模式移動通信裝置710的串行端口730耦合到該主系統(tǒng)的串行端口。該串行端口730還可以被用于使得一個用戶能夠通過一個外部裝置或軟件應(yīng)用程序設(shè)置優(yōu)選項,或下載用于安裝的其它應(yīng)用模塊724N。此有線下載路徑可被用于把一個加密密鑰加載到雙模式移動通信裝置710上,這是比通過無線網(wǎng)絡(luò)719交換加密信息更安全的方法。
另外,可通過網(wǎng)絡(luò)719、輔助I/O子系統(tǒng)728、串行端口730、短程通信子系統(tǒng)740或任何其它適當(dāng)?shù)淖酉到y(tǒng)742把應(yīng)用模塊724N加載到該雙模式移動通信裝置710上,并且由使用者安裝在閃速存儲器724或RAM 726中。在應(yīng)用程序安裝中的這種靈活性增加了雙模式移動通信裝置710的功能性,并且可以提供增強(qiáng)的在裝置功能、通信相關(guān)功能或二者。例如,安全通信應(yīng)用程序可以使得能夠使用雙模式移動通信裝置710來執(zhí)行電子商務(wù)功能和其它這種金融事務(wù)處理。
當(dāng)按照數(shù)據(jù)通信模式操作該雙模式裝置時,例如文本消息或下載的網(wǎng)頁的一個接收信號將由收發(fā)機(jī)711處理并且提供到微處理器738,最好進(jìn)一步處理該接收信號以便輸出到顯示器722,或也可以輸出到一個輔助I/O裝置728。雖然例如已知的DVORAK形式的完整字母數(shù)字鍵盤的其它形式也可被使用,但是雙模式移動通信裝置710的用戶還可以利用最好是以QWERTY形式排列的一個完成的字母數(shù)字鍵盤的鍵盤732組成例如電子郵件消息的數(shù)據(jù)項。利用多個輔助I/O裝置728進(jìn)一步增強(qiáng)對于雙模式移動通信裝置710的用戶輸入,該輔助I/O裝置728可以包括指輪輸入裝置、觸摸板、各種開關(guān)、搖動輸入開關(guān)等。由該用戶輸入的組成數(shù)據(jù)項可被隨后經(jīng)過通信網(wǎng)絡(luò)719由收發(fā)機(jī)711發(fā)送。
當(dāng)該雙模式移動通信裝置710以語音通信模式操作時,該雙模式移動通信裝置710的整個操作基本上類似于該數(shù)據(jù)模式,只是該接收信號最好被輸出到揚(yáng)聲器734,并且用于發(fā)送的語音信號是由話筒736產(chǎn)生。另外,例如語音消息記錄子系統(tǒng)的語音或音頻I/O子系統(tǒng)也可被在該雙模式移動通信裝置710上執(zhí)行。雖然最好是主要通過揚(yáng)聲器734實現(xiàn)語音或音頻信號的輸出,但是也可用顯示器722提供主叫方的標(biāo)識、語音呼叫的持續(xù)時間或其它語音呼叫相關(guān)信息的指示。例如,該微處理器738與語音通信模塊和操作系統(tǒng)軟件結(jié)合,可以檢測一個輸入語音呼叫的呼叫者識別信息,并且將該語音呼叫顯示在顯示器722上。
雙模式移動通信裝置710還包括一個短程通信子系統(tǒng)740。例如,該短程通信子系統(tǒng)740可以包括一個紅外裝置和相關(guān)的電路與元件,或例如藍(lán)牙模塊或802.11模塊的短程無線通信模塊,以便提供與類似啟動的系統(tǒng)和裝置的通信。本領(lǐng)域的技術(shù)人員將理解到,″藍(lán)牙″和802.11是指可從分別涉及無線個人域網(wǎng)和無線LAN的電氣和電子工程師學(xué)會(IEEE)標(biāo)準(zhǔn)得到的多組規(guī)范。
雖然本說明書的公開在此描繪了一個或者多個示例系統(tǒng)和方法,但在本領(lǐng)域中的人員將顯見可知許多變化,并且這種變化是在本申請的范圍之內(nèi)。例如,雖然XML和ECMAScript的子集被使用于該提供的示例中,但是可用其它語言和語言的變型來定義組件應(yīng)用程序。例如,建議的E4X標(biāo)準(zhǔn)腳本語言可被用于ECMAScript的位置。而且,除上述XML外的其它結(jié)構(gòu)化定義語言能夠包括例如但不局限于資源描述框架結(jié)構(gòu)(RDF)、XSLT和XHTML。此外,雖然該組件應(yīng)用程序被描述為在移動通信裝置上執(zhí)行的應(yīng)用程序,但是組件應(yīng)用程序也可以在例如無線配置的個人計算機(jī)的其他計算機(jī)系統(tǒng)上執(zhí)行。
權(quán)利要求
1.一種由移動通信裝置經(jīng)過網(wǎng)絡(luò)與Web服務(wù)進(jìn)行交互的方法,包括步驟接收用于在Web服務(wù)和該通信裝置之間建立通信的一個請求網(wǎng)絡(luò)消息;響應(yīng)該請求網(wǎng)絡(luò)消息發(fā)送包括多個組件的一個組件應(yīng)用程序,第一組組件具有以結(jié)構(gòu)化定義語言表示的描述符而第二組組件被表示成一系列指令,這些組件被配置用于由通信裝置的運(yùn)行時環(huán)境進(jìn)行提供,以便產(chǎn)生配置作為Web服務(wù)的Web客戶機(jī)的該組件應(yīng)用程序的一個可執(zhí)行版本;其中該可執(zhí)行版本的執(zhí)行用于經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信裝置之間的隨后的信息交換。
2.根據(jù)權(quán)利要求1的方法,其中該運(yùn)行時環(huán)境把用于該可執(zhí)行版本的一個接口提供到一個處理器的功能性及該通信裝置的基礎(chǔ)結(jié)構(gòu)的相關(guān)操作系統(tǒng)。
3.根據(jù)權(quán)利要求2的方法,其中該運(yùn)行時環(huán)境被配置用于實現(xiàn)從該組能力中選擇的能力,該組能力包括;提供用于把一個網(wǎng)絡(luò)消息發(fā)送到該Web服務(wù)的通信;提供由該裝置的用戶輸入的數(shù)據(jù),以便提供用于與Web服務(wù)相關(guān)的一個網(wǎng)絡(luò)消息的數(shù)據(jù)內(nèi)容;響應(yīng)與該Web服務(wù)相關(guān)的一個網(wǎng)絡(luò)消息提供數(shù)據(jù)顯示;提供數(shù)據(jù)存儲服務(wù),用于保持在該裝置的一個存儲器中的本地客戶機(jī)數(shù)據(jù);以及提供用于一個腳本語言的執(zhí)行環(huán)境,用于協(xié)調(diào)在該可執(zhí)行版本中的組件的操作。
4.根據(jù)權(quán)利要求2的方法,其中該運(yùn)行時環(huán)境被配置為該操作系統(tǒng)的一部分。
5.根據(jù)權(quán)利要求2的方法,進(jìn)一步包括步驟從該通信裝置接收一個網(wǎng)絡(luò)消息,該網(wǎng)絡(luò)消息根據(jù)對應(yīng)于該第一組組件的至少之一的結(jié)構(gòu)化定義語言被配置。
6.根據(jù)權(quán)利要求5的方法,進(jìn)一步包括步驟處理該網(wǎng)絡(luò)消息,并且發(fā)送包含根據(jù)該結(jié)構(gòu)化定義語言格式化的消息數(shù)據(jù)的響應(yīng)網(wǎng)絡(luò)消息,該響應(yīng)網(wǎng)絡(luò)消息被配置用于隨后在該通信裝置的用戶接口上的該消息數(shù)據(jù)的顯示。
7.根據(jù)權(quán)利要求2的方法,進(jìn)一步包括步驟把一個數(shù)據(jù)組件包括在第一組組件定義中,該數(shù)據(jù)組件用于限定信息,以便描述由程序使用的數(shù)據(jù)實體以及用于該信息的格式。
8.根據(jù)權(quán)利要求7的方法,進(jìn)一步包括步驟把一個消息組件包括在第一組組件定義中,該消息組件用于限定一個由該程序使用的消息的格式,以便經(jīng)過網(wǎng)絡(luò)與該Web服務(wù)通信。
9.根據(jù)權(quán)利要求8的方法,其中該數(shù)據(jù)組件定義和消息組件定義是平臺中性的,以便適應(yīng)各種不同的運(yùn)行時環(huán)境。
10.根據(jù)權(quán)利要求8的方法,進(jìn)一步包括步驟把一個顯示組件包括在第一組組件中,該顯示組件用于定義當(dāng)組件應(yīng)用程序出現(xiàn)在裝置的一個用戶接口上時的該組件應(yīng)用程序的外觀。
11.根據(jù)權(quán)利要求10的方法,其中該顯示組件是專用于各種預(yù)定運(yùn)行時環(huán)境的平臺。
12.根據(jù)權(quán)利要求10的方法,其中該結(jié)構(gòu)化定義語言是以可擴(kuò)展標(biāo)記語言為基礎(chǔ)。
13.根據(jù)權(quán)利要求10的方法,進(jìn)一步包括步驟把一個工作流組件包括在第二組組件中,該工作流組件用于定義在將要按照由第一組組件之一的規(guī)定而執(zhí)行一個操作時出現(xiàn)的處理過程。
14.根據(jù)權(quán)利要求13的方法,其中用于該工作流組件的一系列指令被以面向?qū)ο蟮某绦蛟O(shè)計語言表示。
15.根據(jù)權(quán)利要求13的方法,其中用于該工作流的一系列指令被表示成一個腳本語言。
16.根據(jù)權(quán)利要求15的方法,其中該腳本語言是以ECMAScript為基礎(chǔ)。
17.根據(jù)權(quán)利要求13的方法,進(jìn)一步包括步驟接收由該通信裝置的用戶與用戶接口單元的交互發(fā)起的一個網(wǎng)絡(luò)消息,該網(wǎng)絡(luò)消息包含由對應(yīng)于該用戶接口單元的工作流組件創(chuàng)建的數(shù)據(jù)實體。
18.根據(jù)權(quán)利要求17的方法,其中根據(jù)該消息組件配置該網(wǎng)絡(luò)消息,以便包含基于該結(jié)構(gòu)化定義語言的數(shù)據(jù)實體。
19.根據(jù)權(quán)利要求18的方法,進(jìn)一步包括步驟發(fā)送包括涉及該數(shù)據(jù)實體的消息數(shù)據(jù)的響應(yīng)網(wǎng)絡(luò)消息,該響應(yīng)網(wǎng)絡(luò)消息被配置用于隨后在該通信裝置的用戶接口上的該消息數(shù)據(jù)的顯示。
20.根據(jù)權(quán)利要求19的方法,其中該消息數(shù)據(jù)被根據(jù)該結(jié)構(gòu)化定義語言被格式化。
21.一種移動通信裝置,被配置用于經(jīng)過網(wǎng)絡(luò)使用包括多個組件的一個組件應(yīng)用程序的可執(zhí)行版本與Web服務(wù)進(jìn)行交互,該裝置包括;用于操作該移動裝置的裝置基礎(chǔ)結(jié)構(gòu),該移動裝置包括用于執(zhí)行該可執(zhí)行版本的處理器和相關(guān)存儲器;耦合到該裝置基礎(chǔ)結(jié)構(gòu)的用戶接口,該裝置基礎(chǔ)結(jié)構(gòu)具有被配置用于與該可執(zhí)行版本通信的輸入裝置和輸出裝置;一個無線收發(fā)機(jī),耦合到該裝置基礎(chǔ)結(jié)構(gòu)并且被配置用于與該網(wǎng)絡(luò)通信;以及一個運(yùn)行時環(huán)境,用于協(xié)調(diào)該可執(zhí)行版本的執(zhí)行,用于把該裝置配置作為Web服務(wù)的Web客戶機(jī),該運(yùn)行時環(huán)境被配置用于與具有以結(jié)構(gòu)化定義語言表示的描述符的第一組組件以及被表示成一系列指令的第二組組件進(jìn)行交互;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信裝置之間的隨后的信息交換。
22.根據(jù)權(quán)利要求21的移動通信裝置,其中該運(yùn)行時環(huán)境把用于該可執(zhí)行版本的一個接口提供到一個處理器的功能性及該通信裝置的一個基礎(chǔ)結(jié)構(gòu)的相關(guān)操作系統(tǒng)。
23.根據(jù)權(quán)利要求22的移動通信裝置,其中該運(yùn)行時環(huán)境被配置用于實現(xiàn)從該組能力中選擇的能力,該組能力包括;提供用于把一個網(wǎng)絡(luò)消息發(fā)送到該Web服務(wù)的通信;提供由該裝置的用戶輸入的數(shù)據(jù),以便提供用于與Web服務(wù)相關(guān)的一個網(wǎng)絡(luò)消息的數(shù)據(jù)內(nèi)容;響應(yīng)與該Web服務(wù)相關(guān)的一個網(wǎng)絡(luò)消息提供數(shù)據(jù)顯示;提供數(shù)據(jù)存儲服務(wù),用于保持在該裝置的一個存儲器中的本地客戶機(jī)數(shù)據(jù);以及提供用于一個腳本語言的執(zhí)行環(huán)境,用于協(xié)調(diào)在該可執(zhí)行版本中的組件的操作。
24.根據(jù)權(quán)利要求22的移動通信裝置,其中該運(yùn)行時環(huán)境被配置為該操作系統(tǒng)的一部分。
25.根據(jù)權(quán)利要求22的移動通信裝置,其中該可執(zhí)行版本被配置用于把一個網(wǎng)絡(luò)消息發(fā)送到該Web服務(wù),根據(jù)對應(yīng)該第一組組件的至少之一的結(jié)構(gòu)化定義語言配置該網(wǎng)絡(luò)消息。
26.根據(jù)權(quán)利要求25的移動通信裝置,其中該可執(zhí)行版本被配置用于接收對應(yīng)于該網(wǎng)絡(luò)消息的一個響應(yīng)網(wǎng)絡(luò)消息,該響應(yīng)網(wǎng)絡(luò)消息用于包括根據(jù)該結(jié)構(gòu)化定義語言而格式化的消息數(shù)據(jù),該響應(yīng)網(wǎng)絡(luò)消息被配置用于隨后在該通信裝置的用戶接口上的該消息的顯示。
27.根據(jù)權(quán)利要求22的移動通信裝置,還包括在第一組組件定義中的一個數(shù)據(jù)組件,該數(shù)據(jù)組件用于定義描述由該程序使用的數(shù)據(jù)實體的信息以及用于該信息的格式。
28.根據(jù)權(quán)利要求27的移動通信裝置,還包括在第一組組件定義中的一個消息組件,該消息組件用于限定一個由該程序使用的消息的格式,以便經(jīng)過網(wǎng)絡(luò)與該Web服務(wù)通信。
29.根據(jù)權(quán)利要求28的移動通信裝置,其中該數(shù)據(jù)組件定義和消息組件定義是平臺中性的,以便適應(yīng)各種不同的運(yùn)行時環(huán)境。
30.根據(jù)權(quán)利要求28的移動通信裝置,還包括在第一組組件中的顯示組件,該顯示組件用于定義在組件應(yīng)用程序出現(xiàn)在裝置的該用戶接口上時的該組件應(yīng)用程序的外觀。
31.根據(jù)權(quán)利要求30的移動通信裝置,其中該顯示組件是專用于各種預(yù)定運(yùn)行時環(huán)境的平臺。
32.根據(jù)權(quán)利要求30的移動通信裝置,其中該結(jié)構(gòu)化定義語言是以可擴(kuò)展標(biāo)記語言為基礎(chǔ)。
33.根據(jù)權(quán)利要求30的移動通信裝置,還包括在該第二組組件中的一個工作流組件,該工作流組件用于定義在將要按照由第一組組件之一的規(guī)定而執(zhí)行一個操作時出現(xiàn)的處理過程。
34.根據(jù)權(quán)利要求33的移動通信裝置,其中用于該工作流組件的該系列指令被表示為一個面向?qū)ο蟮某绦蛟O(shè)計語言。
35.根據(jù)權(quán)利要求33的移動通信裝置,其中用于該工作流的指令系列被表示成腳本語言。
36.根據(jù)權(quán)利要求35的移動通信裝置,其中該腳本語言是以ECMAScript為基礎(chǔ)。
37.根據(jù)權(quán)利要求33的移動通信裝置,其中該可執(zhí)行版本被配置用于發(fā)送由通信裝置的用戶與用戶接口單元的交互發(fā)起的一個網(wǎng)絡(luò)消息,該網(wǎng)絡(luò)消息包含由對應(yīng)于該用戶接口單元的工作流組件創(chuàng)建的數(shù)據(jù)實體。
38.根據(jù)權(quán)利要求37的移動通信裝置,其中根據(jù)該消息組件配置該網(wǎng)絡(luò)消息,以便包含基于該結(jié)構(gòu)化定義語言的數(shù)據(jù)實體。
39.根據(jù)權(quán)利要求38的移動通信裝置,其中該可執(zhí)行版本被配置用于接收包括涉及該數(shù)據(jù)實體的消息數(shù)據(jù)的一個響應(yīng)網(wǎng)絡(luò)消息,該響應(yīng)網(wǎng)絡(luò)消息被配置用于隨后在該通信裝置的用戶接口上的該消息的顯示。
40.根據(jù)權(quán)利要求39的移動通信裝置,其中該消息數(shù)據(jù)根據(jù)該結(jié)構(gòu)化定義語言被格式化。
41.一種計算機(jī)程序產(chǎn)品,用于配置一個移動通信裝置,以便使用包括多個組件的一個組件應(yīng)用程序的可執(zhí)行版本而經(jīng)過網(wǎng)絡(luò)與Web服務(wù)進(jìn)行交互,該計算機(jī)程序產(chǎn)品包括一個計算機(jī)可讀介質(zhì);存儲在該計算機(jī)可讀介質(zhì)上的運(yùn)行時環(huán)境模塊,用于協(xié)調(diào)該可執(zhí)行版本的執(zhí)行,以便把該裝置配置作為Web服務(wù)的Web客戶機(jī),該運(yùn)行時環(huán)境被配置用于與具有以結(jié)構(gòu)化定義語言表示的描述符的第一組組件和被表示成一系列指令的第二組組件進(jìn)行交互;其中,該可執(zhí)行版本的執(zhí)行用于經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信裝置之間的隨后的信息交換。
42.一個服務(wù)器,被配置用于提供Web服務(wù),以便經(jīng)過網(wǎng)絡(luò)與一個移動通信裝置進(jìn)行交互,該服務(wù)器包括一個網(wǎng)絡(luò)接口,用于接收一個請求網(wǎng)絡(luò)消息,以便在Web服務(wù)和通信裝置之間建立通信;耦合到該網(wǎng)絡(luò)接口用于響應(yīng)該請求網(wǎng)絡(luò)消息進(jìn)行發(fā)送的一個組件應(yīng)用程序,該組件應(yīng)用程序包括多個組件,第一組組件具有以一種結(jié)構(gòu)化定義語言表示的描述符,而第二組組件被表示成一系列指令,這些組件被配置用于通過該通信裝置的運(yùn)行時環(huán)境進(jìn)行提供,以便產(chǎn)生把該裝置配置作為Web服務(wù)的Web客戶機(jī)的該組件應(yīng)用程序的一個可執(zhí)行版本;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信裝置之間的隨后的信息交換。
43.一種移動通信裝置,被配置用于經(jīng)過網(wǎng)絡(luò)使用包括多個組件的一個組件應(yīng)用程序的可執(zhí)行版本與Web服務(wù)進(jìn)行交互,該裝置包括;一個基礎(chǔ)結(jié)構(gòu)裝置,用于操作移動裝置來執(zhí)行該可執(zhí)行版本;一個用戶接口裝置,耦合到來用于與該可執(zhí)行版本通信而配置的該基礎(chǔ)結(jié)構(gòu)裝置;一個收發(fā)機(jī)裝置,耦合到該裝置基礎(chǔ)結(jié)構(gòu)并且被配置用于與該網(wǎng)絡(luò)通信;以及一個運(yùn)行時間裝置,用于協(xié)調(diào)該可執(zhí)行版本的執(zhí)行,以便把該裝置配置作為Web服務(wù)的Web客戶機(jī),該運(yùn)行時間裝置被配置用于與具有以結(jié)構(gòu)化定義語言表示的描述符的第一組組件以及表示成一系列指令的第二組組件交互;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信裝置之間的隨后的信息交換。
全文摘要
提供了一種建立無線組件應(yīng)用程序的系統(tǒng)和方法。在移動通信裝置上執(zhí)行組件應(yīng)用程序,該移動通信裝置通過一個無線網(wǎng)絡(luò)和互聯(lián)網(wǎng)與Web服務(wù)通信。該組件應(yīng)用程序包括數(shù)據(jù)組件、顯示組件,以及消息組件,這些組件以XML代碼寫成。該組件應(yīng)用程序還包括工作流組件,能夠被寫成ECMAScript的一個子集中,并且被嵌入在XML代碼中。
文檔編號G06F9/445GK1757014SQ200380109991
公開日2006年4月5日 申請日期2003年12月24日 優(yōu)先權(quán)日2002年12月26日
發(fā)明者邁克爾·申菲爾德, 比埃拉·比布爾, 布倫杜沙·L·弗里奇, 布賴恩·R·戈林, 羅伯特·克蘭, 卡緬·B·維塔諾夫 申請人:捷訊研究有限公司