專利名稱:用于建立無線組件應(yīng)用的方法、移動通信設(shè)備和服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本申請涉及無線通信,特別是涉及用于移動通信設(shè)備的軟件。
背景技術(shù):
當(dāng)今使用的移動通信設(shè)備的數(shù)目不斷增加,例如移動電話、具有無
線通信能力的PDA、和雙向?qū)ず魴C。運行在這些移動通信設(shè)備上的軟 件應(yīng)用程序增加了它們的實用性。例如,一部移動電話可以包括檢索針 對一個城市范圍的氣候的應(yīng)用程序,或一個PDA可以包括使得使用者 選購雜貨的應(yīng)用程序。這些軟件應(yīng)用程序利用了這些設(shè)備的移動性及 對于無線網(wǎng)絡(luò)連接性的優(yōu)點,以便向用戶提供及時和有用的服務(wù),而與 該用戶的所在位置無關(guān)。但是,由于移動通信設(shè)備的受限的資源以及把 數(shù)據(jù)無線地提供至移動通信設(shè)備的復(fù)雜性,開發(fā)用于移動通信設(shè)備的 軟件應(yīng)用程序依然是困難和耗時的任務(wù)。
當(dāng)前,移動通信設(shè)備被配置用于通過基于互聯(lián)網(wǎng)的瀏覽器和/或本 機應(yīng)用程序與Web服務(wù)通信。瀏覽器具有能適于在跨平臺基礎(chǔ)上針對 各種不同設(shè)備操作的優(yōu)點,但缺點是從Web服務(wù)請求頁面(HTML屏幕 清晰度),這種缺點將妨礙包括在該屏幕中的數(shù)據(jù)的持續(xù)性。瀏覽器的另 一缺點是該屏幕在運行時間呈現(xiàn),這將可能導(dǎo)致資源緊張。本機應(yīng)用程 序具有的優(yōu)點是針對移動設(shè)備的類型而專門開發(fā),從而提供針對每一 個運行時環(huán)境相對優(yōu)化的應(yīng)用程序。但是,本機應(yīng)用程序具有的缺點是 它不是獨立的平臺,因此需要開發(fā)同一個應(yīng)用程序的多個版本,以及在 規(guī)模上相對大,從而重耗了移動設(shè)備的存儲器資源。而且,應(yīng)用程序的開 發(fā)人需要具有例如^^和€++的編程語言的經(jīng)驗來構(gòu)建這些硬編碼的 本機應(yīng)用程序。需要能運行在具有各種運行時環(huán)境的Web服務(wù)客戶機 上、又具有降低的移動設(shè)備資源消耗的應(yīng)用程序。
在此公開的系統(tǒng)和方法提供了一個基于組件的應(yīng)用環(huán)境,以便克
5服或至少在一定程度上減輕上述的缺點。
發(fā)明內(nèi)容
當(dāng)前的應(yīng)用程序不能適應(yīng)于運行在具有各種運行時環(huán)境的客戶機 上,并且會不希望地消耗太多的移動設(shè)備的資源。瀏覽器是一個具有從
一Web服務(wù)請求頁面(HTML的屏幕清晰度)的一個缺點的應(yīng)用程序,這 種缺點妨礙了該屏幕中包括的數(shù)據(jù)的持續(xù)性。瀏覽器的另一缺點是該 屏幕在運行時間呈現(xiàn),這可能導(dǎo)致資源緊張。本機應(yīng)用程序是當(dāng)前應(yīng)用 程序的另一實例,具有的缺點是它不是獨立的平臺,從而需要開發(fā)同一 個應(yīng)用程序的多個版本,同時有相當(dāng)大的規(guī)模,從而重負(fù)了移動設(shè)備的 存儲器資源。與當(dāng)前應(yīng)用程序相反,提供了一個建立無線組件應(yīng)用程序 及與無線組件應(yīng)用程序進(jìn)行通信的系統(tǒng)。該系統(tǒng)包括在移動通信設(shè)備 上執(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ù)組件、顯示組件和消息組件聯(lián)系(tie) 在一起,工作流組件寫為例如ECMAScript的子集的編程語言中的一組 指令。
因此,本發(fā)明提供了一種經(jīng)過網(wǎng)絡(luò)由移動通信設(shè)備與Web服務(wù)進(jìn) 行交互的方法。本方法包括步驟接收用于在Web服務(wù)和通信設(shè)備之 間建立通信的一個請求網(wǎng)絡(luò)消息;響應(yīng)該請求網(wǎng)絡(luò)消息發(fā)送包括多個 組件的一個組件應(yīng)用程序,第一組組件具有以結(jié)構(gòu)化定義語言表示的 描述符而第二組組件被表示成一系列指令,這些組件被配置用于通過 通信設(shè)備的運行時環(huán)境進(jìn)行提供,以便產(chǎn)生配置作為Web服務(wù)的Web客
戶機的該組件應(yīng)用程序的一個可執(zhí)行版本;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng)絡(luò)在Web服務(wù)和通信設(shè)備之間的隨后的信息交換。
還公開了一種移動通信設(shè)備,被配置來使用包括多個組件的組件
應(yīng)用程序的可執(zhí)行版本經(jīng)過網(wǎng)絡(luò)與Web服務(wù)進(jìn)行交互。該設(shè)備包括
用于操作該移動設(shè)備的設(shè)備基礎(chǔ)結(jié)構(gòu),該移動設(shè)備包括用于執(zhí)行該可
執(zhí)行版本的處理器和相關(guān)存儲器;耦合到該設(shè)備基礎(chǔ)結(jié)構(gòu)的用戶接口, 該設(shè)備基礎(chǔ)結(jié)構(gòu)具有被配置用于與該可執(zhí)行版本通信的輸入設(shè)備和輸 出設(shè)備;無線收發(fā)機,耦合到該設(shè)備基礎(chǔ)結(jié)構(gòu)并且被配置用于與該網(wǎng) 絡(luò)通信;以及一個運行時環(huán)境,用于協(xié)調(diào)該可執(zhí)行版本的執(zhí)行,用于 把該設(shè)備配置作為Web服務(wù)的Web客戶機,該運行時環(huán)境被配置用于與 具有以結(jié)構(gòu)化定義語言表示的描述符的第一組組件以及被表示成一系 列指令的第二組組件進(jìn)行交互;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng) 絡(luò)在該Web服務(wù)和該通信設(shè)備之間的隨后的信息交換。
還公開了一種計算機程序產(chǎn)品,用于配置一個移動通信設(shè)備,以 便使用包括多個組件的一個組件應(yīng)用程序的可執(zhí)行版本經(jīng)過網(wǎng)絡(luò)與 Web服務(wù)進(jìn)行交互。該計算機程序產(chǎn)品包括 一個計算機可讀介質(zhì); 存儲在該計算機可讀介質(zhì)上的運行時環(huán)境模塊,用于協(xié)調(diào)該可執(zhí)行版 本的執(zhí)行,以便把該設(shè)備配置為Web服務(wù)的Web客戶機,該運行時環(huán)境 被配置用于與具有以結(jié)構(gòu)化定義語言表示的描述符的第一組組件和被 表示成一系列指令的第二組組件進(jìn)行交互;其中該可執(zhí)行版本的執(zhí)行 提供經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信設(shè)備之間的隨后的信息交換。
還公開了一個服務(wù)器,配置來用于提供Web服務(wù),以便經(jīng)過網(wǎng)絡(luò) 與一個移動通信設(shè)備進(jìn)行交互。該服務(wù)器包括 一個網(wǎng)絡(luò)接口,用于 接收一個請求網(wǎng)絡(luò)消息,以便在Web服務(wù)和通信設(shè)備之間建立通信; 耦合到該網(wǎng)絡(luò)接口用于響應(yīng)該請求網(wǎng)絡(luò)消息進(jìn)行發(fā)送的一個組件應(yīng)用 程序,該組件應(yīng)用程序包括多個組件,第一組組件具有以一種結(jié)構(gòu)化定 義語言表示的描述符,而第二組組件被表示成一系列指令,這些組件被 配置用于由該通信設(shè)備的運行時環(huán)境進(jìn)行提供,以便產(chǎn)生把該設(shè)備配 置作為Web服務(wù)的Web客戶機的該組件應(yīng)用程序的一個可執(zhí)行版本;其 中該可執(zhí)行版本的執(zhí)行提供經(jīng)過網(wǎng)絡(luò)在該Web服務(wù)和該通信設(shè)備之間 的隨后的信息交換。
7還提供了一種移動通信設(shè)備,被配置來使用包括多個組件的組件
應(yīng)用程序的可執(zhí)行版本經(jīng)過網(wǎng)絡(luò)與Web服務(wù)進(jìn)行交互。該設(shè)備包括 一個基礎(chǔ)結(jié)構(gòu)裝置,用于操作該移動設(shè)備來執(zhí)行該可執(zhí)行版本; 一個
用戶接口裝置,耦合到被配置來用于與該可執(zhí)行版本通信的基礎(chǔ)結(jié)構(gòu)
裝置; 一個收發(fā)機裝置,耦合到該設(shè)備基礎(chǔ)結(jié)構(gòu)并且被配置用于與該 網(wǎng)絡(luò)通信;以及一個運行時間裝置,用于協(xié)調(diào)該可執(zhí)行版本的執(zhí)行, 以便把該設(shè)備配置作為Web服務(wù)的Web客戶機,該運行時間裝置被配置 用于與具有以結(jié)構(gòu)化定義語言表示的描述符的第一組組件以及被表示
成一系列指令的第二組組件交互;其中該可執(zhí)行版本的執(zhí)行提供經(jīng)過 網(wǎng)絡(luò)在該Web服務(wù)和該通信設(shè)備之間的隨后的信息交換。
在下面參考附圖作出的詳細(xì)描述中,這些和其它特點將變得顯見, 其中
圖l是一個通信系統(tǒng)的框圖; 圖2是圖1的一個移動通信設(shè)備的框圖; 圖3是圖2的一個組件應(yīng)用程序的方框圖; 圖4是表示圖3的一個示例組件應(yīng)用程序的框圖; 圖5是表示建立圖3的無線組件應(yīng)用程序的一個方法的流程圖; 圖6是用于在圖l的一個設(shè)備和Web服務(wù)之間進(jìn)行通信的一個方法 的流程圖7示出實施圖3的組件應(yīng)用程序的一個示例方法; 圖8示出實施圖3的組件應(yīng)用程序的另一示例方法;以及 圖9是圖2設(shè)備的另一示例的框圖。
具體實施例方式
網(wǎng)絡(luò)系統(tǒng)
參考圖1,網(wǎng)絡(luò)系統(tǒng)10包括移動通信設(shè)備100,用于通過一個耦合的 無線網(wǎng)絡(luò)102和互聯(lián)網(wǎng)絡(luò)104與由Web服務(wù)器106提供的一個或者多個Web服務(wù)交互。當(dāng)與Web服務(wù)器106的Web服務(wù)通信時,設(shè)備100分別地發(fā) 送與接收請求/響應(yīng)消息105。通過使用消息標(biāo)題信息形式的請求/響應(yīng) 消息105以及相關(guān)的數(shù)據(jù)內(nèi)容,該設(shè)備100能操作為Web服務(wù)的Web客戶 機,例如從在線商戶請求和接收產(chǎn)品報價和可得性。Web服務(wù)是一個系 統(tǒng)的示例,通信設(shè)備100上的客戶應(yīng)用程序302(參見圖2)通過無線網(wǎng)絡(luò) 102與互聯(lián)網(wǎng)絡(luò)104與該系統(tǒng)交互,以便把實用工具提供到移動通信設(shè) 備100的用戶。在通信設(shè)備100和Web服務(wù)之間發(fā)送的消息105能夠穿越 (traverse) —個消息映射服務(wù)(沒示出),該消息映射服務(wù)在由設(shè)備IOO 和Web服務(wù)使用的不同格式之間轉(zhuǎn)換該消息105。
為了滿足適當(dāng)?shù)恼埱?響應(yīng)消息105, Web服務(wù)器106通過各種協(xié)議 (例如但不局限于HTTP和組件API)與一個應(yīng)用服務(wù)器110通信,以便向 曾經(jīng)提供在該設(shè)備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)于一個對象的一種方法(或一個功能),設(shè)備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直接下 載/上載到設(shè)備100。應(yīng)該進(jìn)一步認(rèn)識到,設(shè)備100可以通過網(wǎng)絡(luò)102、 104與一個或多個Web服務(wù)器106和相關(guān)的應(yīng)用服務(wù)器110通信。還應(yīng)該 認(rèn)識到,該設(shè)備100能夠直接耦合到應(yīng)用服務(wù)器110,從而按照期望旁路 該Web服務(wù)器106。
服務(wù)器環(huán)境
參見圖l,Web服務(wù)器106提供了在通信設(shè)備100上由客戶應(yīng)用程序 302使用的信息消息105。另外或作為一種選擇,Web服務(wù)器106可以接收 并且使用由在該通信設(shè)備100上執(zhí)行該客戶應(yīng)用程序302提供的信息消 息105,或完成在通信設(shè)備100上執(zhí)行的代表客戶應(yīng)用程序302的任務(wù)。 Web服務(wù)可被定義為Web服務(wù)器106的一個軟件服務(wù),該Web服務(wù)可以實 觀使用注冊在通用發(fā)現(xiàn)描述和集成(UDDI)中的Web服務(wù)描述語言 (WSDL)表示的一個接口,并且能夠通過經(jīng)例如簡單對象訪問協(xié)議 (SOAP)的適當(dāng)協(xié)議在互聯(lián)網(wǎng)絡(luò)104上表述來與客戶設(shè)備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)用程序,其中從該客戶設(shè)備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á)。因此,設(shè)備100的用戶經(jīng)過網(wǎng)絡(luò)102、 104利用由服務(wù)器106提供的服 務(wù)。
客戶機環(huán)境
參考圖2,組件應(yīng)用程序302是軟件應(yīng)用程序,如圖3描述的那樣, 能夠以例如可擴展標(biāo)記語言(XML)和ECMAScript的 一 個子集寫成。 XML和ECMAScript是基于標(biāo)準(zhǔn)的語言,使得軟件開發(fā)者以便攜和獨立 平臺的方式開發(fā)組件應(yīng)用程序302。通過無線網(wǎng)絡(luò)102無線發(fā)送該組件 應(yīng)用程序302,并且裝入到設(shè)備基礎(chǔ)結(jié)構(gòu)204的存儲器模塊210中。另外, 組件應(yīng)用程序302可以經(jīng)由一個串行連接、USB連接、或例如 IR,802.11 (x)和/或Bluetooth 的短程無線通信系統(tǒng)加載到該設(shè)備100 上。 一旦加載到移動通信設(shè)備100,則該組件應(yīng)用程序302可由移動通信 設(shè)備100上的組件框架結(jié)構(gòu)執(zhí)行,把組件應(yīng)用程序302轉(zhuǎn)換成本機代碼, 由該設(shè)備基礎(chǔ)結(jié)構(gòu)204中的處理器208執(zhí)行該本機代碼。另外,該組件應(yīng) 用程序302可被執(zhí)行作為本機代碼或由該移動通信設(shè)備100上的其它軟 件模塊或操作系統(tǒng)編譯,提供作為此后以數(shù)字206表示的一個本機運行 時環(huán)境的組件框架結(jié)構(gòu)206。
再次參考圖1和2,由設(shè)備100提供的客戶機運行時環(huán)境206能夠被 配置來使設(shè)備100操作為Web服務(wù)的(Web服務(wù)器106的)Web客戶機。設(shè) 備100的客戶機運行時環(huán)境206最好能夠在設(shè)備100上生成、主控和執(zhí)行
10該客戶應(yīng)用程序302(其為組件應(yīng)用程序的形式,參見圖3)。另外,該客 戶機運行時環(huán)境206的具體功能可以包括但不局限于例如對于語言、協(xié) 調(diào)存儲器分配、連網(wǎng)、在I/0操作過程中的數(shù)據(jù)管理、在設(shè)備100的輸 出設(shè)備上諧調(diào)圖形以及提供對定向分類和支持文件/庫的核心對象的 存取的支持。由設(shè)備100實施的運行時環(huán)境206的實例可以包括例如但 不局限于由微軟(Microsoft)公司提供的公用語言運行時間(CLR)和Sun Microsystems公司提供的Java運行時環(huán)境(JRE)。
設(shè)備100的終端運行時環(huán)境206最好支持用于客戶應(yīng)用程序302的 駐留可執(zhí)行版本的下列基本功能,例如但不局限于
提供把消息105發(fā)送到通過網(wǎng)絡(luò)102、 104連接的該Web服務(wù)器106 的Web服務(wù)的通信能力;
在設(shè)備100的一個輸入設(shè)備上由用戶提供數(shù)據(jù)輸入能力,以便提供 給該Web服務(wù)器106的Web服務(wù)的輸出消息105(到該服務(wù)的消息)的數(shù) 據(jù)部分;
提供用于Web服務(wù)的響應(yīng)消息105(輸入信息)的數(shù)據(jù)、或在該輸出 設(shè)備上的Web服務(wù)器106的不相關(guān)提示的數(shù)據(jù)顯示或輸出能力;
提供數(shù)據(jù)存儲器服務(wù),以便在設(shè)備100的存儲器模塊210(參見圖2) 中保持本地客戶機數(shù)據(jù);以及
提供用于腳本語言的執(zhí)行環(huán)境,以便協(xié)調(diào)客戶應(yīng)用程序302的應(yīng)用 程序組件400,402、 404、 406(參見圖3)的操作。
因此,該本機客戶機終端運行時環(huán)境206為客戶應(yīng)用程序302提供 了接口,并且將接口提供給設(shè)備100的處理器208的功能和設(shè)備基礎(chǔ)結(jié) 構(gòu)204的操作系統(tǒng)。該運行時環(huán)境206最好在設(shè)備100上提供一個受控 的、安全的和穩(wěn)定的環(huán)境,其中執(zhí)行組件應(yīng)用程序302。該運行時環(huán)境 206提供該組件400、 402、 404、 406的定義,以便創(chuàng)建具體針對通信設(shè) 備100的每一各個設(shè)備基礎(chǔ)結(jié)構(gòu)20的實際Web客戶機。
通信設(shè)備
參考圖1和圖2,該移動通信設(shè)備100是例如但不局限于移動電話、 PDA、雙向?qū)ず魴C和雙模式通信設(shè)備(參見圖9)。設(shè)備100包括一個網(wǎng)絡(luò) 連接接口,例如通過連接218耦合到設(shè)備基礎(chǔ)結(jié)構(gòu)204的一臺無線收發(fā)機200。在設(shè)備100的操作期間,該無線收發(fā)機200可連接到網(wǎng)絡(luò)102、 104,例如通過RF鏈路連接到無線網(wǎng)絡(luò)102,使設(shè)備100能夠通過網(wǎng)絡(luò) 102、 104與外部系統(tǒng)(例如Web服務(wù)器106)彼此通信。該無線收發(fā)機200 還幫助該設(shè)備100協(xié)調(diào)在客戶應(yīng)用程序302和服務(wù)器106、 IIO之間的請 求/響應(yīng)消息105。網(wǎng)絡(luò)102、 104支持在連接到網(wǎng)絡(luò)102、 104的設(shè)備100 和外部系統(tǒng)之間在請求/響應(yīng)消息105中的數(shù)據(jù)發(fā)送。該網(wǎng)絡(luò)102、 104 還可以支持對于在通信設(shè)備100和該網(wǎng)絡(luò)102、 104外部的設(shè)備之間的電 話呼叫的語音通信。無線網(wǎng)絡(luò)102能使用一種無線數(shù)據(jù)傳輸協(xié)議,例如 但不局限于DataTAC、 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) 容能夠在連接設(shè)備100和服務(wù)器106的Web服務(wù)之間流動。
再次參考圖2,設(shè)備100還具有通過連接222耦合到設(shè)備基礎(chǔ)結(jié)構(gòu) 204的一個用戶接口202,以便與用戶(沒示出)交互。用戶接口202包括一 個或者多個用戶輸入設(shè)備,例如但不局限于QWERTY鍵盤、輔助鍵盤、 軌跡輪、輸入筆、鼠標(biāo)器、話筒,以及輸出設(shè)備,例如LCD屏幕顯示器 和/或揚聲器。如果該屏幕是觸摸敏感的,則該顯示器還可以用作通過設(shè) 備基礎(chǔ)結(jié)構(gòu)204控制的用戶輸入設(shè)備。在運行時環(huán)境206中執(zhí)行的客戶 應(yīng)用程序302采用該請求/響應(yīng)消息消息105時,設(shè)備100的用戶釆用該 用戶接口202來經(jīng)過系統(tǒng)10(參見圖l)協(xié)調(diào)該請求/響應(yīng)消息消息105。
再次參考圖2,通過設(shè)備基礎(chǔ)結(jié)構(gòu)204啟動移動通信設(shè)備100的操 作。設(shè)備基礎(chǔ)結(jié)構(gòu)204包括一個計算機處理器208和該相關(guān)存儲器模塊 210。通過執(zhí)行由操作系統(tǒng)以及放置在存儲器模塊210中的客戶應(yīng)用程 序302提供的相關(guān)指令,計算機處理器控制該網(wǎng)絡(luò)接口200、用戶接口 202和通信設(shè)備100的運行時環(huán)境206的操作。應(yīng)該進(jìn)一步認(rèn)識到,設(shè)備 基礎(chǔ)結(jié)構(gòu)204可以包括耦合到處理器208的計算機可讀存儲介質(zhì)212,用 于把指令提供到處理器和/或?qū)⒖蛻魬?yīng)用程序302加載/更新到該存儲器 模塊210中。計算機可讀介質(zhì)212可以包括硬件和/或軟件,例如只舉例來 說有磁盤、磁帶、光可讀介質(zhì),例如CD/DVD、 ROMS以及存儲卡。在 每種情況下,該計算機可讀介質(zhì)212都可以采取小盤、軟盤、盒帶、硬 盤驅(qū)動器、固態(tài)存儲卡、或提供在存儲器模塊210中的RAM的形式。
12應(yīng)該指出,上述列出實例計算機可讀介質(zhì)212能被單獨或組合使用。 組件應(yīng)用程序
參考圖3,組件應(yīng)用程序302的框圖包括數(shù)據(jù)組件400、顯示組件402 和消息組件404,這些組件通過與客戶機運行時環(huán)境206的通信214由工 作流組件406協(xié)調(diào)。該結(jié)構(gòu)化定義語言可用于把組件400、 402、 404構(gòu) 造為一系列元數(shù)據(jù)記錄,該元數(shù)據(jù)記錄包括表示資源的具體屬性的若 干預(yù)定義單元,使得每一單元能夠具有一個或多個值。每一元數(shù)據(jù)設(shè)計 通常具有定義的特征,例如但不局限于有限數(shù)量的單元,每一單元的 名稱,及每一單元的含意。示例的元數(shù)據(jù)設(shè)計包括例如但不局限于都柏 林(Dublin)核心(DC)、英-美分類規(guī)則(AACR2)、政府信息定位服務(wù) (GILS)、編碼檔案描述(EAD)、 IMS全球?qū)W術(shù)協(xié)會(IMS)、及澳大利亞 政府定位服務(wù)(AGLS)。編碼句法使得設(shè)備基礎(chǔ)結(jié)構(gòu)204(參見圖2)處理 組件400、 402、 404的元數(shù)據(jù),并且編碼方案包括例如但不局限于XML、 HTML、 XHTML、 XSML、 RDF、機讀目錄(MARC)及多用途互聯(lián)網(wǎng)郵 件擴展(MIME)??蛻魴C運行時環(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ù)實體的示例有訂單、用戶及金融交 易。數(shù)據(jù)組件400定義為了描述該數(shù)據(jù)實體所要求的信息以及表達(dá)的信 息格式。舉例而言,該數(shù)據(jù)組件400可以定義例如但不局限于包括以下 內(nèi)容的訂單格式化為數(shù)字的訂單的唯一標(biāo)識符,被格式為字符串的 項目列表,具有日期-時間格式的訂單創(chuàng)建的時間,格式化為字符串的訂 單狀態(tài),以及下訂單的用戶,該訂單被根據(jù)該數(shù)據(jù)組件400的另一定義 而格式化。
再次參考圖4,該消息組件404定義由組件應(yīng)用程序302使用的消息 格式,以便與例如Web服務(wù)的外部系統(tǒng)通信。例如,該消息組件404之一 可以描述例如但不局限于用于下訂單的消息,該訂單包括用于該訂單 的唯一標(biāo)識符、訂單的狀態(tài)以及與訂單相關(guān)的注釋。
再次參考圖4,該顯示組件402限定了當(dāng)組件應(yīng)用程序302由用戶接 口202顯示時該組件應(yīng)用程序302的外觀及工作情況。顯示組件402能夠
13規(guī)定GUI屏幕和控制,以及當(dāng)用戶使用該用戶口202與該組件應(yīng)用程序 302交互時將被執(zhí)行的動作。例如,該顯示組件402可以限定屏幕、標(biāo)號、 編輯框、按鈕和菜單,以及當(dāng)用戶鍵入一個編輯框或按下一個按鈕時將 要采取的動作。大多數(shù)Web服務(wù)消費者使用Web服務(wù)操作結(jié)果的可視顯 示,因此在能夠顯示用戶接口屏幕的設(shè)備100上提供該運行時環(huán)境。
參考圖1和4,應(yīng)該認(rèn)識到在上述客戶組件應(yīng)用程序302定義主控模 式中,該顯示組件402可以根據(jù)客戶機平臺和設(shè)備100的環(huán)境改變。例如, 某些情況下,Web服務(wù)用戶不要求一個直觀顯示。該組件應(yīng)用程序302 的組件400、 402、 404、 406的應(yīng)用定義可以被主控在Web服務(wù)注冊表 中,作為平臺-中性數(shù)據(jù)400、消息404、具有針對各種預(yù)定客戶機運行 時間的一組平臺-專用顯示組件402描述符的工作流406組件描述符的 一個集束(參見圖2)。當(dāng)該發(fā)現(xiàn)或配置請求消息105被發(fā)出時,該客戶機 類型應(yīng)該被規(guī)定作為這一請求消息105的一部分。為了在針對該通信設(shè) 備100的不同客戶機平臺打包組件應(yīng)用程序302的同時能夠避免復(fù)制數(shù) 據(jù)、消息及工作流元數(shù)據(jù),應(yīng)用程序定義可在該應(yīng)用服務(wù)器110(例如) 上被主控作為與顯示組件402的不同組鏈接的平臺-中性組件定義的一 個集束。當(dāng)用戶作出發(fā)現(xiàn)或下載請求消息105時,該通信設(shè)備100、 116 的客戶機運行時類型被確認(rèn)并且配置適當(dāng)?shù)募?,由該Web服務(wù)器106 經(jīng)過網(wǎng)絡(luò)102、 104傳遞到設(shè)備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被寫 為編程語言或腳本語言(例如但不局限于ECMAScript腳本語言)的一
系列指令,并且如所述的那樣能夠成被編譯成本機代碼并由運行時環(huán) 境206執(zhí)行。工作流組件406的一個示例可以是對數(shù)據(jù)賦值、管理屏幕 或發(fā)送該消息105。當(dāng)具有顯示組件時,能夠創(chuàng)建多個工作流定義,以 便支持在設(shè)備100中變化的能力和特征。能夠確定該適當(dāng)?shù)墓ぷ髁鞫x,并在該應(yīng)用程序302的下載和提供之時發(fā)送。
ECMA(歐洲計算機制造商聯(lián)合會)腳本是一種標(biāo)準(zhǔn)的腳本語言,其
中的腳本能夠被稱為由另一程序而不是由計算機處理器編譯或執(zhí)行的 指令的序列。其它的腳本語言的示例有Perl、 Rexx、 VBScript、 JavaScript 以及Tcl/Tk。通常,腳本語言是指令性語言,用于管理、定制以及自動 操作現(xiàn)有系統(tǒng)的設(shè)施,例如設(shè)備IOO。在這種系統(tǒng)中,已經(jīng)可通過用戶接 口202(參見圖2)得到有用的功能,并且該腳本語言是用于表明編制程序 控制功能的一個機制。以此方式,設(shè)備100提供了完成該腳本語言能力 的對象及設(shè)施的主機運行時環(huán)境。
具體地說,EMCAScript是一個面向?qū)ο蟮木幊陶Z言,用于在該主機 運行時環(huán)境中執(zhí)行計算和管理計算的對象。ECMAScript能被用作一個 網(wǎng)頁腳本語言,提供一種機制,執(zhí)行服務(wù)器106、 IIO的計算,作為系統(tǒng) 10的基于網(wǎng)頁的客戶服務(wù)器結(jié)構(gòu)的一部分(參見圖l)。ECMAScript提供 用于各種的主機運行時環(huán)境的核心腳本能力,并且因此該核心腳本語 言能被認(rèn)為是對于若干具體主機運行時環(huán)境是操作平臺中性。運行時 環(huán)境206(參見圖2)能夠提供用于通信設(shè)備100的客戶機方計算的 ECMAScript主機運行時環(huán)境,例如但不局限于;表示框、菜單、彈出、 對話框、文本區(qū)、定位點、幀、歷史、cookies和輸入/輸出的對象。另 外,運行時環(huán)境206的主機運行時環(huán)境提供把腳本代碼附加到事件的一 個裝置,這些事件例如但不限于聚焦的改變、頁面和圖像加載、卸載、 出錯和異常中止、選擇、形式提交、及鼠標(biāo)動作。在使用ECMA腳本 的實施方案中,出現(xiàn)在工作流組件406中的代碼把用戶接口單元與固定 的和計算的文本及圖像組合,并且對用戶在該用戶接口202上的交互作 出反應(yīng)。Web服務(wù)器106(參見圖l)提供用于服務(wù)器一側(cè)的計算的不同的 主機環(huán)境,包括表示請求、客戶和文件的對象,以及鎖定和共享數(shù)據(jù)的機 制。通過把客戶機一側(cè)和服務(wù)器一側(cè)腳本一起使用,有可能在提供用于 基于Web的組件應(yīng)用程序302的一個定制用戶接口202的同時,在客戶 通信設(shè)備100和服務(wù)器106、 IIO之間分配計算。
ECMAScript還定義一組內(nèi)置的操作符,可以不是嚴(yán)格意義上的功 能或方法。ECMAScript操作符比如但不局限地包括各種一元操作符、
15相乘操作符、加法算符、逐位移位操作符、關(guān)系操作符、相等操作符、 二進(jìn)制按位算符、二進(jìn)制邏輯操作符、賦值算符和逗點算符。但是
ECMAScript句法類似于Java句法,ECMAScript句法被解限(relaxed),
以便使其能被開發(fā)人員用作一種容易使用的腳本語言。例如,一個 ECMAScript中的變量不要求申明其類型,也不是與屬性相關(guān)的類型, 并且不要求限定的函數(shù)在調(diào)用之前出現(xiàn)文字聲明。應(yīng)該認(rèn)識到,在基 于一個類別的面向?qū)ο蟮木幊陶Z言中,通常由實例攜帶狀態(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組件被提供在通信設(shè)備100上 時,客戶機運行時環(huán)境206(參見圖2)能夠基于元定義來產(chǎ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)用程序的 定義被運行于由各種不同通信設(shè)備100表示的各種終端系統(tǒng)環(huán)境206 上。
利用與下列文檔類型定義(DTD)—致的限定組件,下面的示例示出 了如何能夠使用例如但不局限于XML的一個結(jié)構(gòu)化定義語言以及例 如但不局限于ECMAScript的操作平臺中性腳本/編程語言來表示W(wǎng)eb 服務(wù)客戶應(yīng)用程序302的方式
< ! ELEMENT wcApp (desc ,iconUrl , res*, wcData*,wcMsg*, style*, wcScr*,wcFlow) >
< ! ATTLIST wcApp
name CDATA#REQUIRED title CDATA#IMPUED,,3S|e},,(as|e4 sru0 d山o ,,3S|ei,(9S|ej I a叫)Aejje ,八uv.,(人uv 3jea uea|oog jsq山nN ! 6u!」is) 3dAi
a3ain。3id存v丄vao s山eu
pia!iP丄sn丄丄v i >
< (V丄VaOd弁)P阿P丄N3IAI313 i > "3n化,(9siei i ami) psis!sJ3d
a3aino3id弁v丄va。 3山eu
印ea3M丄S門丄丄V i >
< (+P阿)印ea。AA丄N3IAI313 i > OOfr iusuod山o。印eQ sid山ex3
-,,95叫,(95問9叫)p9JJ9^3p
。3yin03y弁(入ue (p,s (s6e山! | i山x) sd人i
。3,。3y弁v丄vao l川 。3Jdin。3id# v丄va。 s山eu
sai丄s門丄丄V i >
< (Vl/aOd#) ssj丄N3IAI313 i > < (V丄VaOd弁)IJnuoo!丄N3IAI313 i >
< (V丄VaOd弁)3S9p丄N3IAG13 i >
a3門diAii弁v丄vao iy ru!ioNii印su!
a3門d隨v丄vao uo!sj9八 a3iidiAii弁N/丄va?!筼pu3A
雖,S/SI憲法能改a3腦。3id弁v丄vao s山eu
9l人is丄S門丄丄V i > < (6 iuo" 9|Ais丄N3W313 i >
d3門dlAII弁V丄VaO山e」ed ,.3Sie丄,(9s問! 3叫)6o|e,p
,,3s|e》,,(9s|e) 9叫)u!eui
a3門diAii弁v丄va。 3im jos3m丄sn丄丄v i >
<}u3a3 'i tisa^3j '6 nua山Y(jié) ino人Ei) jcdsom丄N3IA13"I3 i > Z0fr siu3uoa山o。 uo阿ussaid sia山ex3
d3門dlAIWV丄VaO 6u!dde山 C13門d隨(,IAIX Aej」V3iea UB3ioog | J9q山nN I 6,s)滿
a3yino3bJ弁v丄vcK) s,
pis!i山丄sn丄丄v i >
< (V丄VaOd弁)Pl3!i山丄N3IAI313 i >
a3門d,v丄vao判qd
6siapm丄si1丄丄v i >
G3門dWI弁V丄V。3 6u!ddeaj 。3腦03y弁V丄vaO suueu
6siaiom丄s門丄丄v i > < (,PI3!1山)6siAi3M丄N3W313 i >
雖,e/w憲法跑改
e 'zenoooi60oz<formula>formula see original document page 19</formula><formula>formula see original document page 20</formula>< ! ATTLIST edit
name CDATA #REQUIRED value CDATA#IMPUED mapping CDATA #IMPLIED
type (char | number | date | pwd | phone | email)"char' readonly (true | false)"false" placement CDATA翻PUED style CDATA翻PLIED
< ! ELEMENT textarea (condition , event ) >
< ! ATTLIST textarea
name CDATA #REQUIRED value CDATA #IMPUED mapping CDATA #IMPLIED readonly (true | false)"false" placement CDATA #IMPLIED style CDATA #IMPUED
< ! ELEMENT image (condition , event ) >
< ! ATTLIST image
name CDATA #REQUIRED resName CDATA #REQUIRED placement CDATA #IMPLIED< ! ELEMENT choice (condition , event , entry*) >
< ! ATTLIST choice
name CDATA#REQUIRED value CDATA濯PLIED mapping CDATA濯PLIED
type (singleUst | multiList | dropdown | checkbox | radio)"singleList' readonly (true false)"false" placement CDATA#IMPLIED style CDATA濯PLIED
< ! ELEMENT entry (#PCDATA) >
< ! ELEMENT button (condition , event ) >
< ! ATTLIST button
name CDATA#REQUIRED label CDATA#REQUIRED image (true | false)"false" placement CDATA#IMPLIED style CDATA#IMPLIED
ExampleWorkflow Component 406
< ! ELEMENTwcFlow(block+) >
< ! ELEMENTpblock (#PCDATA) >
< ! ATTLIST pblock
id CDATA#REQUIRED
22pa圓CDATA,PLIED
如上給出的那樣,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ū)、單項選擇表、多項 選擇表、下拉列表、復(fù)選框、單選按鈕、或包括一組其它顯示組件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也可以參考外部對象類型,允許對以組件應(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。這些屏幕將提供在通信設(shè)備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ù)由設(shè)備100接收以及隨后由 相關(guān)消息組件404、工作流組件406、顯示組件402和數(shù)據(jù)組件400處理 的響應(yīng)消息105,顯示訂單狀態(tài)屏幕506。訂單狀態(tài)屏幕506包含描述該 用戶已經(jīng)制定的訂單的信息,以及當(dāng)選擇時引起專用屏幕502被顯示的 一個菜單項。該消息組件404轉(zhuǎn)送針對該消息105的輸入和輸出的所需 數(shù)據(jù)。對應(yīng)的數(shù)據(jù)組件400協(xié)調(diào)在設(shè)備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="Wireless Piza"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="17 >
< dfield name="passwordHash"type="String'V >
< dfield name="street"type="Stn'ng7 >
< dfield name="city"type="String7 >
< dfield name="postartype-''String'V >
< dfield name="phone"type="String7 >
< /wcData >
< wcData name="OrderStatus" >
<dfield name="confNumber"type="Number''key=T/ >
< dfield name="status"type="String7 >
< dfield name="datetime"type="Date7 >
< /wcData >
< wcData name="〇rder" >
< dfield name="orderld"type="Number''key='T7 >
< dfield name="speciartype="String"/ >
< dfield name=''user"cmp=''true"cmpName=',User7 >
< dfield name="datetime"type="Date7 >
< dfield name="orderStatus"cmp=''true"cmpName="OrderStatus7 >
< /wcData >
< wcData name-"Special" >
< dfield name="desc"key=''rtype="String7 >
< dfield name="prJce"type="Number7 >
< /wcData >
< wcMsg name-"inAddSpeciar'mapping-"Speciar >
< /wcMsg >
< wcMsg name="inRemoveSpeciarpblock=''mhRemoveSpecial" >
< mfield name="desc"mapping="Special. desc'V >
25< /wcMsg >
< wcMsg name="in〇rderStatus" >
< mfield name="orderld''m3pping=''〇rder. orderld'7 >
< mfiefd name="status"mapping="〇rder, orderStatus'7 >
< /wcMsg >
< wcMsg name="inUserlnfo"mapping="User" >
< /wcMsg >
< wcMsg name="outOrder" >
< mfield name="speciar'mapping="〇rder. special"/ >
< mfield name=''user"mapping="Order. user"/ >
< mfield name="datetime"mapping="〇rder. datetime'/ >
< /wcMsg >
< wcScr name:"scrSpecials"title:"Specials"main-"true" >
< layout type=''flow" >
< choice name slSpecials"value-"Specia10, desc +'- $'+ SpecialO. price" type="singleUst'V >
< /layout >
< msnu >
< item name="login"label=''Login" >
< action screen="scrLogin'7 > <condition
pblock="chLoggedin"result="false7 >
< /item > < item name="order"label="Order" >
< 3cti0n
screen=',scrDelivery"param="Application. authenticatedUser'V >
< condition pblock="chl_oggedin'V >
< /item >
< item name="viewOrderStatus"label='View Orders
Status" >
< action screen="scr〇rdersUst7 >
26< condition pblock="chLoggedin7 >
< /item >
< /menu >
< /wcScr >
< wcScr name="scrLogin"dialog="true" >
< layout type="verticar >
< layout type="flow" >
< label name="lblUserName'Value="User
Name :'"/ >
< edit name="edUserName"type="char7 >
< /layout >
< layout type="flow" >
< label
name="lblPassword'Value="Password :7 >
< edit name="edPassword"type="pwd7 >
< /layout >
< button name=',btnLogiIV'label=''Login', >
<〇vent
type onClick"pblock ahLogin"param-"edUserName. vaXue'V>
< /button >
< /Isyout >
< /wcScr >
< wcScr name="scrDelivery"title="Please provide delivery information"param="User" >
< layout type-"vertical" >
< layout type="flow" >
< label name="lblStreet"value="Street :7 >
< edit name="street"mapping="User.
street" type=',char'V >
< /Isyout >< layout type="flow" >
< label name="lblCityValue="City :"/ >
< edit name二"city"mapping二"User. city"
type="char7 >
< /layout >
< layout type="flow" >
< label
name=''lblPostalCode"value="Postal code :7 >
< edit name postalCode"mapping User,
postartype="char7 >
< /layout >
< layout type="flow" >
< label
name="lblPhone'Value="Telephone :"/ >
< edit name="phone''mapping=''User.
phone" type="phone7>
< /layout >
< layout type="flow" >
< label name="lblDate"value="Date of
delivery :7 >
< edit name="d3te,'type="d3te7 >
< /13yout >
< /layout >
< msnu >
< item name="sendOrder"label="Send Order" >
< 3cti0n
pblock="ahSend〇rder"param="User7 >
< /item >
< /menu >
< /wcScr >< wcScr name="scrOrderStatus"title="Order status"param="Order" > < layout type="verticarparam="%" >
< layout type="flow" >
< label
name="lblSpecialr'Value="Special :7 >
< label
name="lblSpecialMapped"value="@OrderO. special"/ >
< /layout >
< layout type="flow" >
< label
name="lblConfNumber'Value="ConfirmatJon number :7 >
< label name="lblConfNumberMapped"
value="@Order0, orderStatus. confNumber'V >
< /Isyout >
< layout type="flow" >
< label name="lblStatus"value="Status :7>
< label
name="lblStatusMapped"value="@〇rdero. orderStatus. status"/ >
< /layout >
< layout type="flow" >
< label name="lblConfDate"value="Date of
last status update :7 >
< label name-"lblConfDateMapped"
value="@Order0. orderStatus. datetime'V >
< /layout >
< separator/ >
< /layout >
< menu >
< item name="continue"label=''Continue" >
< action screen="scrSpecJals'V >< /item >
< /menu >
< 「6什6Sh >
< msg > inOrderStatus < /msg >
< /refresh >
< /wcScr >
< wcScr name=''scrOrdersList''title="Previous Orders" >
< layout type-"vertical" >
< label name="lbllnstructions'Value="Select one or
more order :'7 >
< choice name="mlOrderList"value="@Order0. datetime +,-'+ @〇rders. special" mapping=''Order0''type="multiUsn >
< /layout >
< menu >
< item name="view〇rder"label='View Order" >
< action
screen="scr〇rderStatus''param="mlOrderUst. selected"/ >
< /item >
< /menu >
< /wcScr >
< wcFlow >
< pblock id chLoggedin" >
return Application. authenticatedUser! = null ;
< /pblock >
<pblock id="ahLogin"param="User, name" >
if (User. passwordHash == Util. md5
(scrLogin.edPassword)) {
Application. authenticatedUser = User; scrLogin. back ();.
} else {
30Dialog, display ("Invalid login !'曙);
< /pblock >
< pblock id="ahSendOrder"param="User" >
Order, orderld = Util, guid ();
Order, special = scrSpecials. sISpecials. selected ;
Order: user = User;
Order, datetime = scrDelivery. date ;
OrderStatus. confNumber = Util. guid (); OrderStatus. status ="Sent. Pending response."; OrderStatus. date = UtiLcurrentDate 0 ; Order. OrderStatus = OrderStatus ;
outOrder. send 0 ; scrOrderStatus. display (Order);
< /pblock >
< pblock id="mhRemoveSpeciar'param="inRemoveSpeciar >
Special, desc = inRemoveSpecial. desc ; Special, delete 0 ;
< /pblock > < /wcFlow >
< /wcApp >
圖5是表示一個方法的流程圖,該方法建立該無線組件應(yīng)用程序 302,用于隨后的經(jīng)過網(wǎng)絡(luò)102、 104對于設(shè)備100的通信。還參考圖3, 該方法以創(chuàng)建該數(shù)據(jù)組件400的步驟600為起點,定義例如用戶和訂單 的數(shù)據(jù)實體。該方法以創(chuàng)建顯示組件402的步驟602繼續(xù),用于定義諸 如屏幕、按鍵、菜單和圖像的用戶接口單元。該方法以創(chuàng)建消息組件
31402的步驟604繼續(xù),用于定義被發(fā)送到例如在服務(wù)器106(參見圖1)上的 Web服務(wù)的外部系統(tǒng)的消息格式。組件400、 402、 404被以結(jié)構(gòu)化定義 語言表示,例如但不局限于以基于XML的一個結(jié)構(gòu)化定義語言表示。 該方法以步驟606結(jié)束,嘗試?yán)霉ぷ髁鹘M件406把數(shù)據(jù)組件400、顯示 組件402和消息組件404聯(lián)系在一起,以便定義應(yīng)用程序302的工作表 現(xiàn)。該工作流組件406被寫作一系列指令,例如但不局限于上述的 ECMAScript。構(gòu)建一個無線組件應(yīng)用程序302的方法可以包括比圖5所
示步驟更少或更多的步驟。
參見圖l及圖6,示出了設(shè)備100和Web服務(wù)器的Web服務(wù)之間的交 互的操作800。Web服務(wù)接收該請求設(shè)備100開始與Web服務(wù)通信的請求 消息105 (802)。 Web服務(wù)把要求的組件應(yīng)用程序302的組件400、 402、 404、 406(如果有任何一個)上載到設(shè)備100(804),以便支持在Web服務(wù)和 設(shè)備100之間的隨后的信息交換。該設(shè)備接收該發(fā)送的組件應(yīng)用程序 302,并且開始由該運行時環(huán)境206(參見圖3)提供該組件400、 402、 404、 406 (806),以便通過產(chǎn)生該組件應(yīng)用程序302的一個可執(zhí)行版本而把 該設(shè)備配置為Web服務(wù)的一個Web客戶機。設(shè)備100的用戶把數(shù)據(jù)輸入 到設(shè)備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上輸出。設(shè)備100接收包含該數(shù)據(jù)的消息105
(814),并且該組件應(yīng)用程序302的可執(zhí)行版本適當(dāng)?shù)匕褦?shù)據(jù)輸出在用 戶接口202上。而且按照上述的那樣,在設(shè)備100和Web服務(wù)之間執(zhí)行 數(shù)據(jù)交換(816),或結(jié)束該交換(818),并且該組件應(yīng)用程序302的可 執(zhí)行版本被按照期望或保存在存儲器210 (參見圖2)中或者從運行時 環(huán)境206中刪除。
參考圖l、 3和7,例如當(dāng)設(shè)備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)。
參見圖l、 3和8,操作過程(000)示出針對一個動作的數(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不使用全部編程語言、而是 相反地使用例如比較淺顯易學(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的維護,包括在設(shè)備100上的該組件應(yīng)用 程序302的修改和更新。
圖9是一個雙模式移動通信設(shè)備710的框圖,是圖1和6的設(shè)備100 的進(jìn)一步的示例。該雙模式移動通信設(shè)備710包括收發(fā)機711、微處 理器738、顯示器722、閃速存儲器724、 RAM存儲器726、輔助輸入/ 輸出(I/O)設(shè)備728、串行端口730、鍵盤732、揚聲器734、話筒736、 短程無線通信子系統(tǒng)740,并且還可包括其它設(shè)備子系統(tǒng)742。收發(fā)機 711優(yōu)選地包括發(fā)送與接收天線716及718、接收器712、發(fā)射器714、 一個或多個本機振蕩器713及數(shù)字信號處理器720。在該閃速存儲器724 中,該雙模式移動通信設(shè)備710最好包括能由微處理器738 (和/或DSP 720)執(zhí)行的多個軟件模塊724A-724N,包括語音通信模塊724A、數(shù)據(jù)
33通信模塊724B、和用于執(zhí)行多個其它功能的多個其它操作模塊724N。 該雙模式移動通信設(shè)備710最好是具有語音及數(shù)據(jù)通信能力的一 個雙向通信設(shè)備。因此該雙模式移動通信設(shè)備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、 一個或多個本機振蕩器713,并也可包括DSP 720。該DSP 720被用于對發(fā)射器714和接收器712的信號接收和發(fā)送, 并且也用來從發(fā)射器714接收控制信息以及把控制信息提供到接收器 712。如果該語音和數(shù)據(jù)通信以單一頻率出現(xiàn),或是緊挨的頻率設(shè)置, 則可以與發(fā)射器714和接收器712結(jié)合使用單一本機振蕩器713。另外, 如果實現(xiàn)語音通信與對應(yīng)的數(shù)據(jù)通信利用的是不同頻率,則可用多個 本機振蕩器713產(chǎn)生對應(yīng)于該語音和數(shù)據(jù)網(wǎng)絡(luò)719的多個頻率。雖然圖9 中描述的是兩個天線716、 718,但是雙模式移動通信設(shè)備710能被以單 個天線結(jié)構(gòu)使用。經(jīng)由在DSP 720和微處理器738之間的鏈路與通信模 塊711通信包括語音和數(shù)據(jù)信息的信息。通信子系統(tǒng)711的詳細(xì)設(shè)計, 例如頻帶、組件選擇、功率電平等,取決于其中要操作雙模式移動通 信設(shè)備710的通信網(wǎng)絡(luò)719。例如,想要操作在北美市場中的一個雙模 式移動通信設(shè)備710可以包括被設(shè)計來利用MobitexTM或DataTACTM移 動數(shù)據(jù)通信網(wǎng)絡(luò)工作的一個通信子系統(tǒng)711,并且也可以設(shè)計來利用例 如AMPS、 TDMA、 CDMA、 PCS等多種語音通信網(wǎng)絡(luò)的任何之一操作; 而想要使用在歐洲的設(shè)備710可以配置來利用通用無線分組服務(wù)
(GPRS)數(shù)據(jù)通信網(wǎng)絡(luò)和GSM語音通信網(wǎng)絡(luò)來操作。其它類型的分離 和集成的數(shù)據(jù)和語音網(wǎng)絡(luò)也同樣可以利用該雙模式移動通信設(shè)備710。 根據(jù)單一或幾個網(wǎng)絡(luò)719的類型,對于該雙模式移動通信設(shè)備710 的接入要求也可能變化。例如,在Mobitex和DataTAC數(shù)據(jù)網(wǎng)絡(luò)中,使 用與每一個設(shè)備相關(guān)的唯一標(biāo)識號碼把移動設(shè)備注冊在網(wǎng)絡(luò)上。但是 在GPRS數(shù)據(jù)網(wǎng)絡(luò)中,網(wǎng)絡(luò)接入與用戶或移動設(shè)備的使用者相關(guān)。GPRS
34設(shè)備通常要求一個用戶的標(biāo)識模塊("SIM"),要求該模塊來在一個 GPRS網(wǎng)絡(luò)上操作雙模式移動通信設(shè)備??梢圆僮鞅镜丶捶蔷W(wǎng)絡(luò)通信功
能(如果有的話),無需該SIM,但除了任意法定要求的操作,例如911 緊急呼叫之外, 一個雙模式移動通信設(shè)備將不能執(zhí)行任何涉及經(jīng)過數(shù) 據(jù)網(wǎng)絡(luò)719的通信功能。
在完成任何要求的網(wǎng)絡(luò)注冊或激活處理過程之后,該雙模式移動 通信設(shè)備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ù)雜的通信功能,例如使用DSP720執(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ā)機711既用于語音通信又用于數(shù)據(jù)通信,但是該 雙模式移動通信設(shè)備710有可能包括兩個不同的收發(fā)機,第一收發(fā)機用 于發(fā)送和接收語音信號,第二收發(fā)機用于發(fā)送和接收數(shù)據(jù)信號。
除了處理該通信信號之外,該DSP 720還提供接收器和發(fā)射器的控 制。例如,加到該接收器712和發(fā)射器714的通信信號的增益等級可以 通過該DSP 720中執(zhí)行的自動增益控制算法自適應(yīng)地控制。其它收發(fā)機 控制算法還可以在DSP 720中執(zhí)行,以便提供收發(fā)機711的更復(fù)雜的控 制。
微處理器738最好管理和控制該雙模式移動通信設(shè)備710的總體操 作。許多類型的微處理器或微控制器能被使用于其中,或另外單一DSP 720可用于執(zhí)行微處理器738的功能。在收發(fā)機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在雙模式移動通信設(shè)備 710和多個其它語音設(shè)備之間發(fā)送與接收語音呼叫。類似地,該數(shù)據(jù)通信模塊724B可能提供可操作用于發(fā)送和接收數(shù)據(jù)的一個高級用戶接
口,例如經(jīng)由網(wǎng)絡(luò)719在該雙模式移動通信設(shè)備710和多個其它數(shù)據(jù)設(shè) 備之間發(fā)送和接收例如電子郵件消息、文件、管理器數(shù)據(jù)、短文本消 息等數(shù)據(jù)。在該雙模式移動通信設(shè)備710中, 一個如上所述的組件框架 結(jié)構(gòu)206還可以被執(zhí)行作為一個軟件模塊或應(yīng)用程序,或結(jié)合到軟件模 塊724A-724N之一中。
微處理器738還與其它雙模式移動通信設(shè)備子系統(tǒng)相互作用,例如 顯示器722、閃速存儲器724、隨機存取存儲器(RAM) 726、輔助輸 入/輸出(I/O)子系統(tǒng)728、串行端口730、鍵盤732、揚聲器734、話筒 736、短程通信子系統(tǒng)740以及任何其它通常被指定為742的雙模式移動 通信設(shè)備子系統(tǒng)。
圖9所示的某些子系統(tǒng)執(zhí)行通信相關(guān)的功能,而其它子系統(tǒng)可以提 供執(zhí)行駐留或在設(shè)備有關(guān)的功能。值得注意的是,例如鍵盤732和顯示 器722的某些子系統(tǒng)既可用于通信相關(guān)的功能,例如經(jīng)過數(shù)據(jù)通信網(wǎng)輸 入用于發(fā)送的文本消息,又可用于設(shè)備駐留功能,例如計算機或任務(wù) 列表或其他PDA類型的功能。
由微處理器738使用的操作系統(tǒng)軟件最好被存儲在諸如閃速存儲 器724的一個持久存儲器中。除了控制雙模式移動通信設(shè)備710的全部 低級功能的該操作系統(tǒng)之外,閃速存儲器724可能包括多個高級軟件應(yīng) 用程序或模塊,例如語音通信模塊724A、數(shù)據(jù)通信模塊724B、管理器 模塊(沒示出)或任何其它類型的軟件模塊724N。閃速存儲器724還 可包括為存儲數(shù)據(jù)的文件系統(tǒng)。這些模塊由微處理器738執(zhí)行,并且提 供在雙模式移動通信設(shè)備的用戶和移動設(shè)備之間的一種高級接口。這 種接口通常包括通過顯示器722提供的圖形組件,以及通過輔助 1/0728、鍵盤732、揚聲器734和送話器736提供的輸入/輸出組件。該操 作系統(tǒng),具體地說是雙模式移動通信設(shè)備軟件應(yīng)用程序或模塊、或其 部分,可以臨時裝入到例如RAM 726的一個易失性存儲器中,用于更 快地操作。而且,在將接收的通信信號永久地寫入到設(shè)置在持久存儲 器724之前,接收的通信信號也可以被暫存到RAM726。
可被加載到雙模式移動通信設(shè)備710上的一個示例性應(yīng)用模塊
36724N是一種個人信息管理器(PIM)應(yīng)用程序,提供例如日歷事件、
約定以及任務(wù)項的PDA功能。此模塊724N也可以與管理電話呼叫、語 音郵件等的語音通信模塊724A交互,并且還可以與用于管理電子郵件 通信以及其它數(shù)據(jù)傳輸?shù)臄?shù)據(jù)通信模塊交互。另外,語音通信模塊 724A的和數(shù)據(jù)通信模塊724B的全部功能都可被集成到該PIM模塊中。
該閃速存儲器724最好提供一種文件系統(tǒng)提供,以便促進(jìn)在雙模式 移動通信設(shè)備710上的PIM數(shù)據(jù)項的存儲。該PIM應(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與存儲的或主機系統(tǒng)相關(guān)的一個對應(yīng)組的數(shù)據(jù)無 縫地集成、同步及更新,藉此創(chuàng)建與具體用戶相關(guān)的用于數(shù)據(jù)項的鏡 像系統(tǒng)。
該雙模式移動通信設(shè)備710還可以通過在一個接口框中放置該雙 模式移動通信設(shè)備710而手動地與一個主系統(tǒng)同步,該接口框把該雙模 式移動通信設(shè)備710的串行端口730耦合到該主系統(tǒng)的串行端口。該串 行端口730還可以被用于使得一個用戶能夠通過一個外部設(shè)備或軟件 應(yīng)用程序設(shè)置優(yōu)選項,或下載用于安裝的其它應(yīng)用模塊724N。此有線 下載路徑可被用于把一個加密密鑰加載到雙模式移動通信設(shè)備710上, 這是比通過無線網(wǎng)絡(luò)719交換加密信息更安全的方法。
另外,可通過網(wǎng)絡(luò)719、輔助I/0子系統(tǒng)728、串行端口730、短程 通信子系統(tǒng)740或任何其它適當(dāng)?shù)淖酉到y(tǒng)742把應(yīng)用模塊724N加載到 該雙模式移動通信設(shè)備710上,并且由使用者安裝在閃速存儲器724或 RAM 726中。在應(yīng)用程序安裝中的這種靈活性增加了雙模式移動通信 設(shè)備710的功能性,并且可以提供增強的在設(shè)備功能、通信相關(guān)功能或 二者。例如,安全通信應(yīng)用程序可以使得能夠使用雙模式移動通信設(shè) 備710來執(zhí)行電子商務(wù)功能和其它這種金融事務(wù)處理。
當(dāng)按照數(shù)據(jù)通信模式操作該雙模式設(shè)備時,例如文本消息或下載 的網(wǎng)頁的一個接收信號將由收發(fā)機711處理并且提供到微處理器738, 最好進(jìn)一步處理該接收信號以便輸出到顯示器722,或也可以輸出到一 個輔助I/0設(shè)備728。雖然例如已知的DVORAK形式的完整字母數(shù)字鍵盤的其它形式也可被使用,但是雙模式移動通信設(shè)備710的用戶還可以
利用最好是以QWERTY形式排列的一個完成的字母數(shù)字鍵盤的鍵盤 732組成例如電子郵件消息的數(shù)據(jù)項。利用多個輔助I/0設(shè)備728進(jìn)一步 增強對于雙模式移動通信設(shè)備710的用戶輸入,該輔助I/0設(shè)備728可以 包括指輪輸入設(shè)備、觸摸板、各種開關(guān)、搖動輸入開關(guān)等。由該用戶 輸入的組成數(shù)據(jù)項可被隨后經(jīng)過通信網(wǎng)絡(luò)719由收發(fā)機711發(fā)送。
當(dāng)該雙模式移動通信設(shè)備710以語音通信模式操作時,該雙模式移 動通信設(shè)備710的整個操作基本上類似于該數(shù)據(jù)模式,只是該接收信號 最好被輸出到揚聲器734,并且用于發(fā)送的語音信號是由話筒736產(chǎn)生。
另外,例如語音消息記錄子系統(tǒng)的語音或音頻i/o子系統(tǒng)也可被在該雙
模式移動通信設(shè)備710上執(zhí)行。雖然最好是主要通過揚聲器734實現(xiàn)語 音或音頻信號的輸出,但是也可用顯示器722提供主叫方的標(biāo)識、語音 呼叫的持續(xù)時間或其它語音呼叫相關(guān)信息的指示。例如,該微處理器 738與語音通信模塊和操作系統(tǒng)軟件結(jié)合,可以檢測一個輸入語音呼叫 的呼叫者識別信息,并且將該語音呼叫顯示在顯示器722上。
雙模式移動通信設(shè)備710還包括一個短程通信子系統(tǒng)740。例如, 該短程通信子系統(tǒng)740可以包括一個紅外設(shè)備和相關(guān)的電路與元件,或 例如藍(lán)牙模塊或802.11模塊的短程無線通信模塊,以便提供與類似啟 動的系統(tǒng)和設(shè)備的通信。本領(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)用程序被描述為 在移動通信設(shè)備上執(zhí)行的應(yīng)用程序,但是組件應(yīng)用程序也可以在例如 無線配置的個人計算機的其他計算機系統(tǒng)上執(zhí)行。
38
權(quán)利要求
1. 一種建立組件應(yīng)用程序的方法,所述組件應(yīng)用程序在設(shè)備上執(zhí)行,以提供服務(wù)器和所述設(shè)備之間通過網(wǎng)絡(luò)進(jìn)行的通信,所述方法包括創(chuàng)建定義數(shù)據(jù)實體的數(shù)據(jù)組件;創(chuàng)建定義用戶接口單元的顯示組件;創(chuàng)建定義消息格式的消息組件,所述消息格式被發(fā)送給以所述服務(wù)器作為主機的服務(wù);以及使用工作流組件來將數(shù)據(jù)組件、顯示組件和消息組件聯(lián)系在一起,以定義組件應(yīng)用程序在所述設(shè)備上執(zhí)行時與所述服務(wù)器上的服務(wù)進(jìn)行交互的行為。
2. 如權(quán)利要求l所述的方法,還包括通過網(wǎng)絡(luò)向所述設(shè)備發(fā)送組 件應(yīng)用程序。 一
3. 如權(quán)利要求2所述的方法,其中,所述服務(wù)是web服務(wù)。
4. 如權(quán)利要求3所述的方法,其中,所述設(shè)備是移動通信設(shè)備, 所述網(wǎng)絡(luò)是無線網(wǎng)絡(luò)。
5. 如權(quán)利要求l所述的方法,其中,所述數(shù)據(jù)實體是用于定義以 下任一項的實體用戶、訂單或金融交易。
6. 如權(quán)利要求5所述的方法,其中,包括訂單的數(shù)據(jù)實體定義了 格式化為數(shù)字的訂單唯一標(biāo)識符、格式化為字符串的項目列表、具有 日期-時間格式的訂單創(chuàng)建時間、格式化為字符串的訂單狀態(tài)以及下訂 單的用戶。
7. 如權(quán)利要求l所述的方法,其中,所述顯示組件的用戶接口單 元定義了以下任一項標(biāo)記、分隔符、圖像、按鈕、編輯字段、文本區(qū)、單項選擇表、多項選擇表、下拉列表、復(fù)選框、單選按鈕、或包 括由所述組件應(yīng)用程序提供的一組其它顯示組件的屏幕。
8. 如權(quán)利要求l所述的方法,其中,以結(jié)構(gòu)化定義語言來定義所 述數(shù)據(jù)組件、顯示組件和消息組件。
9. 如權(quán)利要求8所述的方法,其中,所述結(jié)構(gòu)化定義語言是可擴展標(biāo)記語言XML。
10. 如權(quán)利要求9所述的方法,其中,將所述數(shù)據(jù)組件,顯示組件 和消息組件定義為一系列元數(shù)據(jù)記錄,所述元數(shù)據(jù)記錄包括表示資源 的具體屬性的若干預(yù)定義單元,使得每一單元能夠具有一個或多個值。
11. 如權(quán)利要求10所述的方法,其中,所述元數(shù)據(jù)記錄由具有定 義的特征的設(shè)計來定義,如有限數(shù)量的單元、每一單元的名稱以及每 一單元的含意。
12. 如權(quán)利要求l所述的方法,其中,將所述工作流組件寫為Web 腳本語言中的一系列指令。
13. 如權(quán)利要求12所述的方法,其中,所述工作流組件參考外部 對象類型,所述外部對象類型允許對以組件應(yīng)用程序定義的組件執(zhí)行 操作。
14. 如權(quán)利要求12所述的方法,其中,所述Web腳本語言是歐洲計 算機制造商聯(lián)合會ECMAScript。
15. 如權(quán)利要求14所述的方法,其中,所述設(shè)備的運行時環(huán)境提 供了 ECMAScript主機運行時環(huán)境。
16. 如權(quán)利要求15所述的方法,其中,所述設(shè)備具有運行時環(huán)境, 一旦接收到組件應(yīng)用程序,所述運行時環(huán)境使用ECMAScript來產(chǎn)生組 件應(yīng)用的可執(zhí)行版本。
17. —種服務(wù)器,被配置用于提供web服務(wù),以便經(jīng)過網(wǎng)絡(luò)與移動 通信設(shè)備進(jìn)行交互,所述web服務(wù)與在所述移動通信設(shè)備上執(zhí)行的組件 應(yīng)用程序進(jìn)行通信,web服務(wù)器包括網(wǎng)絡(luò)接口,用于接收請求網(wǎng)絡(luò)消息,以便在web服務(wù)和通信設(shè)備之 間建立通信;處理器,用于執(zhí)行指令;存儲器,耦合到所述處理器,用于存儲要在所述處理器上執(zhí)行的 指令,所述指令包括創(chuàng)建定義數(shù)據(jù)實體的數(shù)據(jù)組件; 創(chuàng)建定義用戶接口單元的顯示組件;創(chuàng)建定義消息格式的消息組件,所述消息格式被發(fā)送給以所述服務(wù)器作為主機的服務(wù);以及使用工作流組件來將數(shù)據(jù)組件、顯示組件和消息組件聯(lián)系在一起, 以定義組件應(yīng)用程序在所述設(shè)備上執(zhí)行時與所述服務(wù)器上的服務(wù)進(jìn)行 交互的行為。
全文摘要
提供了一種建立無線組件應(yīng)用程序的系統(tǒng)和方法。在移動通信設(shè)備上執(zhí)行組件應(yīng)用程序,該移動通信設(shè)備通過一個無線網(wǎng)絡(luò)和互聯(lián)網(wǎng)與Web服務(wù)通信。該組件應(yīng)用程序包括數(shù)據(jù)組件、顯示組件,以及消息組件,這些組件以XML代碼寫成。該組件應(yīng)用程序還包括工作流組件,能夠被寫成ECMAScript的一個子集中,并且被嵌入在XML代碼中。
文檔編號H04L29/08GK101453491SQ20091000133
公開日2009年6月10日 申請日期2003年12月24日 優(yōu)先權(quán)日2002年12月26日
發(fā)明者卡緬·B·維塔諾夫, 布倫杜沙·L·弗里奇, 布賴恩·R·戈林, 比埃拉·比布爾, 羅伯特·克蘭, 邁克爾·申菲爾德 申請人:捷訊研究有限公司