專利名稱:擴(kuò)展基于腳本的應(yīng)用程序的能力和執(zhí)行效率的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及基于腳本的應(yīng)用程序的執(zhí)行。
背景技術(shù):
今天,使用越來(lái)越多的終端設(shè)備,例如移動(dòng)電話、具有無(wú)線通信能力的PDA、個(gè)人計(jì)算機(jī)、自助服務(wù)亭和雙向?qū)ず魴C(jī)。在這些設(shè)備上運(yùn)行的軟件應(yīng)用程序增加了它們的實(shí)用性。例如,移動(dòng)電話可以包括針對(duì)城市范圍檢索天氣的應(yīng)用程序,或者PDA可以包括允許用戶購(gòu)買雜貨的應(yīng)用程序。這些軟件應(yīng)用程序利用與網(wǎng)絡(luò)的連接給用戶提供及時(shí)和有用的服務(wù)。然而,由于一些設(shè)備的有限資源,開(kāi)發(fā)用于多種設(shè)備的軟件應(yīng)用程序仍然是困難并且耗時(shí)的工作。
基于腳本語(yǔ)言的應(yīng)用程序受限于提供并執(zhí)行復(fù)雜邏輯和復(fù)合處理的能力。多數(shù)傳統(tǒng)編程語(yǔ)言包含顯式函數(shù)和/或程序調(diào)用,以實(shí)現(xiàn)更復(fù)合的功能。然而,這些語(yǔ)言使用更復(fù)雜的語(yǔ)法,并且一般需要使用更復(fù)雜的編程知識(shí)。
傳統(tǒng)編程語(yǔ)言的另一個(gè)缺點(diǎn)在于這些語(yǔ)言對(duì)于用于執(zhí)行應(yīng)用程序的平臺(tái)不是完全中性的。當(dāng)前的腳本語(yǔ)言(例如JavaScript)和傳統(tǒng)的編程語(yǔ)言(例如C++)的另一個(gè)缺點(diǎn)在于語(yǔ)言的編程能力不是可擴(kuò)展的。
公開(kāi)了可擴(kuò)展的基于腳本的系統(tǒng)和方法,以消除或緩和至少一部分上述缺點(diǎn)。
發(fā)明內(nèi)容
基于腳本語(yǔ)言的應(yīng)用程序受限于提供和執(zhí)行復(fù)雜邏輯和復(fù)合處理的能力。多數(shù)傳統(tǒng)編程語(yǔ)言包含顯式函數(shù)和/或程序調(diào)用,以實(shí)現(xiàn)更復(fù)雜的功能,然而,這些語(yǔ)言使用更復(fù)雜的語(yǔ)法,并且一般需要使用更復(fù)雜的編程知識(shí)。傳統(tǒng)編程語(yǔ)言的另一個(gè)缺點(diǎn)在于這些語(yǔ)言對(duì)于用于執(zhí)行應(yīng)用程序的平臺(tái)不是完全中性的。與當(dāng)前用于實(shí)現(xiàn)基于腳本的工作流程的系統(tǒng)和方法相反,提供了用于擴(kuò)展由終端執(zhí)行的應(yīng)用程序的能力的系統(tǒng)和方法。該應(yīng)用程序包括基于腳本的工作流程和非可執(zhí)行內(nèi)容。一種這樣的方法包括加載由腳本解釋器解釋的工作流程,使得工作流程被配置為具有多個(gè)可執(zhí)行單元。該方法還提供了由可執(zhí)行單元引用的全局符號(hào)結(jié)構(gòu),所述全局符號(hào)結(jié)構(gòu)包括用于使選定的可執(zhí)行單元與相應(yīng)外部組件相連的尋址。由終端的本地運(yùn)行時(shí)間環(huán)境提供外部組件,用于執(zhí)行由選定的可執(zhí)行單元所指定的動(dòng)作。該方法還依次執(zhí)行可執(zhí)行單元,從而通過(guò)全局符號(hào)結(jié)構(gòu)的相應(yīng)全局符號(hào),將選定的執(zhí)行單元的執(zhí)行重定向到各個(gè)外部組件。由運(yùn)行時(shí)間環(huán)境和應(yīng)用程序的工作流程共享全局符號(hào)結(jié)構(gòu)的內(nèi)容的預(yù)定知識(shí)。
公開(kāi)了一種方法,用于擴(kuò)展由終端執(zhí)行的應(yīng)用程序的能力,所述應(yīng)用程序包括基于腳本的工作流程和非可執(zhí)行內(nèi)容,所述方法包括步驟加載由腳本解釋器解釋的工作流程,工作流程被配置為具有多個(gè)可執(zhí)行單元;提供由可執(zhí)行單元引用的全局符號(hào)結(jié)構(gòu),所述全局符號(hào)結(jié)構(gòu)包括用于使選定的可執(zhí)行單元與相應(yīng)外部組件相連的尋址,由終端的本地運(yùn)行時(shí)間環(huán)境提供外部組件,用于執(zhí)行由選定的可執(zhí)行單元所指定的動(dòng)作;以及依次執(zhí)行可執(zhí)行單元,從而通過(guò)全局符號(hào)結(jié)構(gòu)的相應(yīng)全局符號(hào),將選定的執(zhí)行單元的執(zhí)行重定向到各個(gè)外部組件;其中,由運(yùn)行時(shí)間環(huán)境和應(yīng)用程序的工作流程共享全局符號(hào)結(jié)構(gòu)的內(nèi)容的預(yù)定知識(shí)。
還公開(kāi)了一種終端,配置用于擴(kuò)展由本地運(yùn)行時(shí)間環(huán)境執(zhí)行的應(yīng)用程序的能力,所述應(yīng)用程序包括基于腳本的工作流程和非可執(zhí)行內(nèi)容,所述終端包括腳本解釋器,用于解釋工作流程,所述工作流程被配置為具有多個(gè)可執(zhí)行單元;全局符號(hào)結(jié)構(gòu),配置用于由可執(zhí)行單元引用,全局符號(hào)結(jié)構(gòu)包括用于使選定的可執(zhí)行單元與相應(yīng)外部組件相連的尋址,由終端的本地運(yùn)行時(shí)間環(huán)境提供外部組件,用于執(zhí)行由選定的可執(zhí)行單元所指定的動(dòng)作;代理重定向模塊,用于在執(zhí)行工作流程期間重定向選定的執(zhí)行單元,通過(guò)全局符號(hào)結(jié)構(gòu)的相應(yīng)全局符號(hào),將選定的執(zhí)行單元重定向到各個(gè)外部組件;其中,由運(yùn)行時(shí)間環(huán)境和應(yīng)用程序的工作流程共享全局符號(hào)結(jié)構(gòu)的內(nèi)容的預(yù)定知識(shí)。
還提供了一種計(jì)算機(jī)程序產(chǎn)品,用于擴(kuò)展由終端的本地運(yùn)行時(shí)間環(huán)境執(zhí)行的應(yīng)用程序的能力,所述應(yīng)用程序包括基于腳本的工作流程和非可執(zhí)行內(nèi)容,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì);腳本解釋模塊,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,用于解釋工作流程,工作流程被配置為具有多個(gè)可執(zhí)行單元;全局符號(hào)結(jié)構(gòu),存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,配置用于由可執(zhí)行單元引用,全局符號(hào)結(jié)構(gòu)包括用于使選定的可執(zhí)行單元與相應(yīng)外部組件相連的尋址,由終端的本地運(yùn)行時(shí)間環(huán)境提供外部組件,用于執(zhí)行由選定的可執(zhí)行單元所指定的動(dòng)作;代理重定向模塊,與全局符號(hào)結(jié)構(gòu)相連,用于在執(zhí)行工作流程期間重定向選定的執(zhí)行單元,通過(guò)全局符號(hào)結(jié)構(gòu)的相應(yīng)全局符號(hào),將選定的執(zhí)行單元重定向到各個(gè)外部組件;其中,由運(yùn)行時(shí)間環(huán)境和應(yīng)用程序的工作流程共享全局符號(hào)結(jié)構(gòu)的內(nèi)容的預(yù)定知識(shí)。
在下面參考附圖的詳細(xì)描述中,這些及其他特征將變得顯而易見(jiàn),圖中圖1是網(wǎng)絡(luò)系統(tǒng)的方框圖;圖2是圖1所示的通用終端的方框圖;圖3示出了圖2所示的終端的處理框架;圖4示出了圖3所示的應(yīng)用程序的應(yīng)用程序空間的表示;以及圖5是圖4所示的腳本的示例工作流程“getCompanyInfo”。
具體實(shí)施例方式
網(wǎng)絡(luò)系統(tǒng)參考圖1,網(wǎng)絡(luò)系統(tǒng)10包括用于經(jīng)由相連的廣域網(wǎng)(WAN)104(例如但不局限于因特網(wǎng))與服務(wù)器106所訪問(wèn)的一個(gè)或多個(gè)應(yīng)用程序服務(wù)器110進(jìn)行交互的多個(gè)終端100,服務(wù)器106可以是管理服務(wù)器。終端經(jīng)由服務(wù)器106在網(wǎng)絡(luò)104上從應(yīng)用程序服務(wù)器110接收應(yīng)用程序107。通用終端100可以是任意適當(dāng)?shù)挠?jì)算機(jī)平臺(tái),例如但不局限于如桌面終端116等有線設(shè)備或其他有線設(shè)備(例如筆記本計(jì)算機(jī))、無(wú)線設(shè)備101、PDA、自助服務(wù)亭等。此外,系統(tǒng)10還可以具有用于經(jīng)由局域網(wǎng)(LAN)114使桌面終端116(或其他有線設(shè)備)與服務(wù)器106相連的網(wǎng)關(guān)服務(wù)器112。
此外,系統(tǒng)10可以具有用于使無(wú)線設(shè)備101與WAN 104相連的無(wú)線網(wǎng)絡(luò)102。可以認(rèn)識(shí)到,除了如圖1所示的之外,可以使其他終端和計(jì)算機(jī)(未示出)經(jīng)由WAN 104和相關(guān)網(wǎng)絡(luò)與服務(wù)器106相連。為了簡(jiǎn)化,下文中將通用終端100、無(wú)線設(shè)備101和個(gè)人計(jì)算機(jī)116稱為終端100。此外,為了簡(jiǎn)化,下文中將系統(tǒng)10的網(wǎng)絡(luò)102、104、114稱為網(wǎng)絡(luò)104??梢哉J(rèn)識(shí)到,如果希望,可以存在多個(gè)服務(wù)器106、110,并且/或者可以組合服務(wù)器106和110的功能。還可以認(rèn)識(shí)到,可以由提供方案定義服務(wù)(例如網(wǎng)絡(luò)服務(wù))的服務(wù)提供商118來(lái)實(shí)現(xiàn)服務(wù)器106、110。此外,當(dāng)獲得和執(zhí)行應(yīng)用程序107時(shí),終端100還可以作為單機(jī)設(shè)備工作。例如,可以經(jīng)由計(jì)算機(jī)可讀介質(zhì)212(參見(jiàn)圖2)將應(yīng)用程序加載到終端上,如下面進(jìn)一步所定義的;此外,或者代替地,可以經(jīng)由與外部介質(zhì)設(shè)備或計(jì)算機(jī)平臺(tái)相連的直接有線連接(例如USB端口、串行接口等)將應(yīng)用程序加載到終端上。
該系統(tǒng)10應(yīng)用于被劃分為相關(guān)基于腳本的工作流程307(參見(jiàn)圖3)和非可執(zhí)行內(nèi)容的應(yīng)用程序107。非可執(zhí)行內(nèi)容可以是以一些預(yù)定語(yǔ)言(例如但不局限于結(jié)構(gòu)化定義語(yǔ)言,例如XML)描述應(yīng)用程序?qū)嶓w的離散單元或模板。在終端100的容器框架206(參見(jiàn)圖3)中評(píng)價(jià)內(nèi)容,并且可由工作流程腳本307作為全局符號(hào)324(參見(jiàn)圖3)的庫(kù)使用。該庫(kù)有助于針對(duì)適當(dāng)服務(wù)304的代理訪問(wèn)或獲得所請(qǐng)求的數(shù)據(jù)。工作流程尋址應(yīng)用程序107的外部非可執(zhí)行實(shí)體的處理被稱為代理重定向,如下面進(jìn)一步所述的。在終端100上提供的應(yīng)用程序107還可以通過(guò)本地符號(hào)表322(參見(jiàn)圖3)來(lái)訪問(wèn)本地實(shí)體。
通用終端參考圖2,終端100可以無(wú)限制地包括移動(dòng)電話(或者其他無(wú)線設(shè)備)、PDA、筆記本和/或桌面計(jì)算機(jī)、雙向?qū)ず魴C(jī)或雙模通信終端。終端100包括經(jīng)由連接218與終端基礎(chǔ)設(shè)施204相連的網(wǎng)絡(luò)連接接口200,例如無(wú)線收發(fā)機(jī)或有線網(wǎng)絡(luò)接口卡或調(diào)制解調(diào)器。在終端100的工作期間,連接接口200可與網(wǎng)絡(luò)104相連,例如通過(guò)無(wú)線鏈路(例如RF、IF等)與無(wú)線網(wǎng)絡(luò)102相連(參見(jiàn)圖1),使終端100能夠經(jīng)由網(wǎng)絡(luò)104互相通信并與外部系統(tǒng)(例如服務(wù)器106,參見(jiàn)圖1)進(jìn)行通信,并且能夠協(xié)調(diào)終端100和服務(wù)器106、110之間的請(qǐng)求/響應(yīng)消息105。網(wǎng)絡(luò)104支持在終端100和與網(wǎng)絡(luò)104相連的外部系統(tǒng)之間在請(qǐng)求/響應(yīng)消息105中傳輸應(yīng)用程序107。網(wǎng)絡(luò)104還可以支持終端100和位于網(wǎng)絡(luò)104外部的終端之間的電話呼叫的語(yǔ)音通信。無(wú)線網(wǎng)絡(luò)102可以使用無(wú)線數(shù)據(jù)傳輸協(xié)議,例如但不局限于DataTAC、GPRS或CDMA。
再次參考圖2,終端100還具有通過(guò)連接222與終端基礎(chǔ)設(shè)施204相連的用戶接口202,以便于與用戶(未示出)進(jìn)行交互。用戶接口202可以包括例如但不局限于QWERTY鍵盤(pán)、小鍵盤(pán)、軌跡球、手寫(xiě)筆、鼠標(biāo)、麥克風(fēng)的一個(gè)或多個(gè)輸入設(shè)備以及例如LCD屏幕顯示器和/或揚(yáng)聲器的一個(gè)或多個(gè)用戶輸出設(shè)備。如果屏幕是觸摸敏感的,則還可以將顯示器用作由終端基礎(chǔ)設(shè)施204控制的用戶輸入設(shè)備。
再次參考圖2,由終端基礎(chǔ)設(shè)施204啟用終端100的操作。終端基礎(chǔ)設(shè)施204包括計(jì)算機(jī)處理器208和相關(guān)存儲(chǔ)模塊210。計(jì)算機(jī)處理器208通過(guò)執(zhí)行由操作系統(tǒng)和位于存儲(chǔ)模塊210中的客戶端應(yīng)用程序107提供的相關(guān)指令,操縱通信終端100的網(wǎng)絡(luò)接口200、用戶接口202以及框架206的操作;計(jì)算機(jī)處理器208可以包括一個(gè)或多個(gè)處理單元,處理單元可以包括一個(gè)或多個(gè)通用處理器和/或?qū)S锰幚砥?例如ASIC、FPGA、DSP等)。此外,可以認(rèn)識(shí)到,終端基礎(chǔ)設(shè)施204可以包括與處理器208相連的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)212,用于向處理器提供用于加載和執(zhí)行客戶端應(yīng)用程序107的指令。計(jì)算機(jī)可讀介質(zhì)212可以包括硬件和/或軟件,例如(僅作為示例)磁盤(pán)、磁帶、例如CD/DVD ROM的光可讀介質(zhì)和存儲(chǔ)卡。在每一種情況中,計(jì)算機(jī)可讀介質(zhì)212可以采用小盤(pán)、軟盤(pán)、磁帶、硬盤(pán)驅(qū)動(dòng)器、固態(tài)存儲(chǔ)卡或設(shè)置在存儲(chǔ)模塊210中的RAM的形式。應(yīng)該注意,可以單獨(dú)或組合地使用上面列出的示例計(jì)算機(jī)可讀介質(zhì)212。
處理框架參考圖2,由處理框架216提供客戶端運(yùn)行時(shí)間環(huán)境。潛在地存在可以由給定終端100的處理框架206使用的多個(gè)這種運(yùn)行時(shí)間環(huán)境。終端100的框架206通過(guò)連接220與基礎(chǔ)設(shè)施204相連,并且是與基礎(chǔ)設(shè)施204的處理器208和相關(guān)操作系統(tǒng)的終端100功能的接口。優(yōu)選地,終端100的客戶端運(yùn)行時(shí)間環(huán)境能夠產(chǎn)生、主持、并執(zhí)行終端100上的客戶端應(yīng)用程序107;如果多個(gè)運(yùn)行時(shí)間環(huán)境可用,選擇特定一個(gè)與給定應(yīng)用程序107一起使用。一旦應(yīng)用程序107被加載到終端100上,可以由設(shè)備100上的組件框架206執(zhí)行應(yīng)用程序107,組件框架206將組件應(yīng)用程序107變換為本地代碼(native code),由設(shè)備基礎(chǔ)設(shè)施204中的處理器208執(zhí)行??蛇x地,可以作為本地代碼來(lái)執(zhí)行應(yīng)用程序107,或由終端100上的另一個(gè)軟件模塊或操作系統(tǒng)來(lái)解釋?xiě)?yīng)用程序107。在任何情況下,在終端100所提供的終端運(yùn)行時(shí)間環(huán)境中運(yùn)行應(yīng)用程序107;客戶端運(yùn)行時(shí)間可以是從一組可用客戶端運(yùn)行時(shí)間環(huán)境中選擇出的一個(gè)。再次參考圖1,由終端100提供的一個(gè)或多個(gè)客戶端運(yùn)行時(shí)間環(huán)境可以被配置用于使終端100作為網(wǎng)絡(luò)服務(wù)(網(wǎng)絡(luò)服務(wù)118)的網(wǎng)絡(luò)客戶端來(lái)工作。可以認(rèn)識(shí)到,客戶端運(yùn)行時(shí)間環(huán)境還可以使終端100作為由服務(wù)118提供的任意其他通用方案定義服務(wù)的客戶端??蚣?06主持(host)并評(píng)價(jià)應(yīng)用程序107,并且提供服務(wù)304以解釋工作流程組件、評(píng)價(jià)非可執(zhí)行應(yīng)用程序?qū)嶓w并將應(yīng)用程序引用解析為非可執(zhí)行內(nèi)容或內(nèi)置功能。
優(yōu)選地,框架206的一個(gè)或多個(gè)終端運(yùn)行時(shí)間環(huán)境對(duì)于駐留可執(zhí)行版本的客戶端應(yīng)用程序107(參見(jiàn)圖2),支持下面的基本功能,例如但不局限于具有本地符號(hào)表322(參見(jiàn)圖3)以及全局符號(hào)表324(參見(jiàn)圖3)的預(yù)定知識(shí)。在應(yīng)用程序107和框架206之間共享全局符號(hào)表324的內(nèi)容的知識(shí);提供經(jīng)由網(wǎng)絡(luò)104向服務(wù)器106發(fā)送消息105的通信能力;在終端100的輸入設(shè)備上提供用戶數(shù)據(jù)輸入能力,以提供用于將消息105輸出到服務(wù)器106的數(shù)據(jù)部分;提供響應(yīng)消息105(輸入消息)的數(shù)據(jù)呈現(xiàn)或輸出能力或者服務(wù)器106的無(wú)關(guān)聯(lián)通知;提供數(shù)據(jù)存儲(chǔ)服務(wù),以在終端100的存儲(chǔ)模塊210(參見(jiàn)圖2)中保持本地客戶端數(shù)據(jù);以及為用于協(xié)調(diào)應(yīng)用程序107的工作的腳本語(yǔ)言提供執(zhí)行環(huán)境。
此外,客戶端運(yùn)行時(shí)間環(huán)境的特定功能包括(而不局限于)語(yǔ)言的服務(wù)支持、協(xié)調(diào)存儲(chǔ)定位、聯(lián)網(wǎng)、I/O操作期間的數(shù)據(jù)管理、在終端100的輸出設(shè)備上協(xié)調(diào)圖形、以及提供對(duì)面向核心對(duì)象類和支持文件/庫(kù)的訪問(wèn)。由終端100實(shí)施的運(yùn)行時(shí)間環(huán)境的示例可以包括但不局限于微軟的公共語(yǔ)言運(yùn)行時(shí)(CLR)和Sun微系統(tǒng)的Java運(yùn)行時(shí)間環(huán)境(JRE)。
再次參考圖3,處理框架206通過(guò)全局符號(hào)表324來(lái)實(shí)現(xiàn)擴(kuò)展應(yīng)用程序107的基于腳本的命令的能力,下面進(jìn)一步進(jìn)行描述。處理框架206可以提供與應(yīng)用程序107分離的通用服務(wù)模塊304功能。此外,框架206還可以具有其他模塊,例如但不局限于應(yīng)用程序管理器306、解釋模塊308、腳本解釋器310、供應(yīng)管理器311和代理重定向器312。可以認(rèn)識(shí)到,由多個(gè)應(yīng)用程序107共享分離的服務(wù)功能。服務(wù)模塊304包括例如但不局限于持續(xù)模塊314、通信模塊316、屏幕(呈現(xiàn))模塊318和設(shè)備訪問(wèn)模塊320。
再次參考圖3,通用服務(wù)模塊304通過(guò)全局符號(hào)表324與應(yīng)用程序107進(jìn)行交互。通過(guò)與模塊304所操作的功能和/或非可執(zhí)行組件326、328、330、332的交互,可以增強(qiáng)或擴(kuò)展應(yīng)用程序107的腳本307的命令的功能。通信服務(wù)316管理組件應(yīng)用程序107和外部系統(tǒng)10之間經(jīng)由網(wǎng)絡(luò)104的連接性,包括在執(zhí)行應(yīng)用程序107期間按照需要與服務(wù)器106進(jìn)行通信。持續(xù)管理器314允許將應(yīng)用程序107的更新數(shù)據(jù)內(nèi)容存儲(chǔ)在存儲(chǔ)模塊210中。屏幕管理器318與用戶接口202(參見(jiàn)圖2)進(jìn)行交互,以獲得來(lái)自用戶的輸入并向終端100的用戶顯示或呈現(xiàn)輸出。屏幕管理器318負(fù)責(zé)向和從接口202通信以終端100的本地格式表達(dá)的數(shù)據(jù)。設(shè)備訪問(wèn)模塊320監(jiān)控各種應(yīng)用程序107和駐留在終端100上的其他功能實(shí)體(例如模塊304)之間的交互??梢哉J(rèn)識(shí)到,按照希望,除了示出的,具有用于擴(kuò)展應(yīng)用程序腳本307的功能的各個(gè)服務(wù)314、316、318、320的模塊304的其他配置和功能的劃分也是可以的。
再次參考圖3,框架206具有供應(yīng)管理器311,用于管理終端100上軟件應(yīng)用程序107的供應(yīng)。應(yīng)用程序供應(yīng)可以包括存儲(chǔ)、檢索、下載和刪除應(yīng)用程序107,以及配置應(yīng)用程序107用于訪問(wèn)可訪問(wèn)全局符號(hào)表324的服務(wù)304。可以將應(yīng)用程序管理器306用于與用戶接口202(參見(jiàn)圖2)進(jìn)行交互、管理應(yīng)用程序的存在時(shí)間等。解釋模塊308管理對(duì)工作流程自身本地符號(hào)322和外部全局符號(hào)324的引用。腳本解釋器310以應(yīng)用程序107的工作流程的語(yǔ)言執(zhí)行腳本307。腳本解釋器310被示出為解釋模塊308的組件;然而,在其他實(shí)施方式中腳本解釋器310可以是獨(dú)立組件。代理重定向器312處理對(duì)任意全局符號(hào)324集合的請(qǐng)求,并將請(qǐng)求定向到適當(dāng)?shù)姆?wù)模塊304,用于隨后的腳本功能擴(kuò)展。表324的全局符號(hào)是從腳本307的可執(zhí)行工作流程內(nèi)對(duì)容器框架206提供的組件326、328、330、332的引用。這些全局符號(hào)324隱式地包含應(yīng)用程序107所需的功能細(xì)節(jié)。表322的本地符號(hào)是從腳本307的可執(zhí)行工作流程內(nèi)對(duì)在應(yīng)用程序107中其他地方定義的實(shí)體(例如但不局限于非可執(zhí)行實(shí)體)的引用。與通過(guò)服務(wù)模塊304提供擴(kuò)展能力的表324的全局符號(hào)相比,表322的本地符號(hào)表示應(yīng)用程序107提供的本地功能。
可以認(rèn)識(shí)到,按照希望,除了示出的,具有用于實(shí)現(xiàn)符號(hào)表322、324的各個(gè)服務(wù)306、308、310、312的處理框架206的其他配置也是可以的。這種可選配置可以無(wú)限制地包括可選的功能分布在服務(wù)中和/或與其他服務(wù)中功能的組合。
代理處理參考圖4,在混合內(nèi)容應(yīng)用程序107的情況下,典型地不可能單獨(dú)在一個(gè)范圍(scope)內(nèi)執(zhí)行整個(gè)應(yīng)用程序107。而是方便地在分離空間400中構(gòu)造應(yīng)用程序107的一些方案的模型,并且允許離散可執(zhí)行單位的腳本307通過(guò)表324或其他數(shù)據(jù)結(jié)構(gòu)來(lái)尋址和操作空間400。在腳本307的腳本語(yǔ)言的語(yǔ)義學(xué)中,表324與提供給代理重定向器312(參見(jiàn)圖3)并且可由腳本解釋器310(參見(jiàn)圖3)使用的全局符號(hào)組相連。該方法允許腳本307的離散和非連續(xù)可執(zhí)行分段一致地尋址和操作基于框架206的組件326、328、330、332,整體影響應(yīng)用程序107的行為。例如,圖4示出了按照運(yùn)行時(shí)間分布的應(yīng)用程序空間400的可視表示。如圖所示,應(yīng)用程序工作流程107對(duì)在非可執(zhí)行應(yīng)用程序?qū)嶓w(作為云400示出)的云狀空間400中定義的符號(hào)324進(jìn)行引用404。通過(guò)由容器框架206提供的服務(wù)304(參見(jiàn)圖3),針對(duì)滿足引用所需的終端100的實(shí)際本地執(zhí)行空間402,代理406這些訪問(wèn)。本地執(zhí)行空間402包括對(duì)可以駐留在終端100的框架206上的服務(wù)模塊304的外部(相對(duì)于應(yīng)用程序107)組件326、328、330、332的訪問(wèn)。
外部組件再次參考圖3,經(jīng)由全局符號(hào)324,通過(guò)相應(yīng)的服務(wù)模塊314、316、318、320訪問(wèn)外部組件326、328、330、332。組件326可以代表數(shù)據(jù)組件,用于定義由腳本307引用的數(shù)據(jù)實(shí)體。數(shù)據(jù)組件326的示例可以包括訂單、用戶和金融交易。數(shù)據(jù)組件326可以定義描述數(shù)據(jù)實(shí)體需要何種信息,并且以什么格式表達(dá)該信息。例如,在特定示例中,數(shù)據(jù)組件326可以定義由以下內(nèi)容組成的訂單格式化為數(shù)字的訂單的唯一標(biāo)識(shí)符、格式化為串的項(xiàng)列表、具有日期時(shí)間格式的訂單創(chuàng)建時(shí)間、格式化為串的訂單狀態(tài)以及根據(jù)另一數(shù)據(jù)組件326的定義進(jìn)行格式化的下訂單的用戶。此外,參考圖1,因?yàn)楦鶕?jù)網(wǎng)絡(luò)服務(wù)118編寫(xiě)規(guī)則,數(shù)據(jù)部分(單元)通常從消息105被傳送到消息105,優(yōu)選地存在數(shù)據(jù)組件326的持續(xù)性(persistence)。可以認(rèn)識(shí)到,可以根據(jù)網(wǎng)絡(luò)服務(wù)118編寫(xiě)定義(如果有的話),動(dòng)態(tài)地產(chǎn)生數(shù)據(jù)組件326,或者由應(yīng)用程序設(shè)計(jì)者根據(jù)復(fù)合類型定義和/或消息相關(guān)信息來(lái)定義數(shù)據(jù)組件326。
再次參考圖3,外部組件328可以代表消息組件404,消息組件404可以定義組件應(yīng)用程序107用于與終端100上其他駐留應(yīng)用程序107和/或例如網(wǎng)絡(luò)服務(wù)118的外部系統(tǒng)(參見(jiàn)圖1)進(jìn)行通信的消息的格式。例如,消息組件328之一可以描述(在特定示例中)用于發(fā)出訂單的消息,該消息包括訂單的唯一標(biāo)識(shí)符、訂單的狀態(tài)以及與訂單相關(guān)的注釋。一些示例中可以以結(jié)構(gòu)化定義語(yǔ)言寫(xiě)出消息組件328,并且在一些示例中消息組件328可以唯一地代表(并且映射到)WSDL消息,并且可以在運(yùn)行時(shí)間動(dòng)態(tài)地產(chǎn)生該組件。因此,可以按照用于表達(dá)網(wǎng)絡(luò)服務(wù)接口的定義語(yǔ)言(例如但不局限于WSDL和BPEL),根據(jù)標(biāo)準(zhǔn)網(wǎng)絡(luò)服務(wù)118元數(shù)據(jù),動(dòng)態(tài)地產(chǎn)生客戶端應(yīng)用程序消息105(參見(jiàn)圖1)的組件定義以及相關(guān)數(shù)據(jù)內(nèi)容。
再次參考圖3,外部組件330可以代表呈現(xiàn)組件。呈現(xiàn)組件330可以按照用戶接口202(參見(jiàn)圖2)的顯示來(lái)定義組件應(yīng)用程序107的外觀和行為。呈現(xiàn)組件330可以指定GUI屏幕和控制以及當(dāng)用戶使用用戶接口202與組件應(yīng)用程序107進(jìn)行交互時(shí)要執(zhí)行的動(dòng)作。例如,呈現(xiàn)組件330可以定義屏幕、標(biāo)簽、編輯框、按鈕和菜單以及當(dāng)用戶在編輯框中鍵入或按下按鈕時(shí)要采取的行為。多數(shù)網(wǎng)絡(luò)服務(wù)118消費(fèi)者使用網(wǎng)絡(luò)服務(wù)操作結(jié)果的可視呈現(xiàn),并因此在其能夠顯示用戶接口屏幕的終端100上提供運(yùn)行時(shí)間環(huán)境。
代理引用參考圖3和4,代理引用是腳本解釋器310可以通過(guò)其滿足對(duì)于基于框架206的組件326、328、330、332的請(qǐng)求404的處理,典型地基于框架206的組件326、328、330、332在工作流程307的語(yǔ)言中不可用。代理重定向器312依賴于應(yīng)用程序107啟動(dòng)時(shí)由應(yīng)用程序管理器306提供的符號(hào)組。這些符號(hào)324可以與應(yīng)用程序107自身定義的組件(即本地符號(hào)322)相對(duì)應(yīng),或者可以與框架206提供的功能(即全局符號(hào)324)相對(duì)應(yīng)。在任何情況下,符號(hào)組對(duì)于解釋模塊308是完全任意的??梢哉J(rèn)識(shí)到,全局符號(hào)庫(kù)324的可能內(nèi)容是在腳本307的開(kāi)發(fā)者和功能模塊304的開(kāi)發(fā)者之間共享的固定知識(shí),所述功能模塊304提供了經(jīng)由全局符號(hào)324鏈接的外部引用功能。
代理引用方案示例參考圖3和4,為了示出如何將代理方案500(參見(jiàn)圖3)應(yīng)用于所述應(yīng)用程序107的類型,考慮使用腳本語(yǔ)言(例如ECMAScript)來(lái)定義腳本307的工作流程單元并且允許以某種結(jié)構(gòu)語(yǔ)言(例如XML)表達(dá)屏幕330、消息328和數(shù)據(jù)326組件的示例應(yīng)用程序107組??梢哉J(rèn)識(shí)到,用于提供對(duì)組件330、328、326的訪問(wèn)的相應(yīng)功能模塊318、316、314可以是基于本地運(yùn)行時(shí)間語(yǔ)言的,或者可選地一個(gè)或多個(gè)語(yǔ)言。
屏幕330屏幕330描述了向用戶呈現(xiàn)并顯示的可視組件。屏幕330指定怎樣處理與用戶的交互。作為其定義的一部分,屏幕330指定了構(gòu)成其的所有數(shù)據(jù)收集字段和怎樣呈現(xiàn)信息。屏幕330由其名稱(例如scrName(全局符號(hào)324))引用,并且支持對(duì)其各種數(shù)據(jù)字段中的任何字段的訪問(wèn),并且還提供內(nèi)置功能,例如但不局限于·check();以及·display()。
消息328消息328由自和向應(yīng)用程序107運(yùn)送的各種字段組成。消息328由名稱(例如msgName(全局符號(hào)324))引用,并且支持但不局限于send()功能??梢酝ㄟ^(guò)名稱尋址消息328的所有字段。
數(shù)據(jù)326數(shù)據(jù)326由可尋址字段組成,并且由名稱(例如DataName(全局符號(hào)324))引用。數(shù)據(jù)326可以是例如但不局限于load()’ed和save()’ed。load()操作指定了唯一地識(shí)別數(shù)據(jù)326的參數(shù)。
工作流程腳本307的工作流程單元可以以適當(dāng)?shù)哪_本和/或編碼語(yǔ)言例如ECMAScript寫(xiě)出,并且由名稱(workflowName(全局符號(hào)324))尋址。
下面給出示例的工作流程。該工作流程示出了具有對(duì)與框架206相關(guān)的外部符號(hào)324的嵌入引用的典型腳本語(yǔ)言。這些符號(hào)是·scrOrderEntry和scrCompanyInfo,兩個(gè)都是表示典型屏幕330全局對(duì)象324的變量;·DataCompany,表示數(shù)據(jù)326全局對(duì)象324的變量;以及·msgGetsubsidiaries,表示消息328全局對(duì)象324的變量。
此外,通過(guò)訪問(wèn)非可執(zhí)行內(nèi)容(純文本)的字段或功能(斜體字)進(jìn)一步改進(jìn)這些引用404中的每一個(gè)Workflowgetcompanyinfo{scrOrderEntry.check(“itemId”);companyName=scrOrderEntry.partVendor;company=dataCompany.load(companyName);if(company.hasSubsidiaries){msgGetsubsidiaries.send();}scrCompanyInfo.display();}參考圖5,方案500示出了圖3的各種模塊怎樣協(xié)同工作以實(shí)現(xiàn)引導(dǎo)(vector)對(duì)這些全局符號(hào)324的請(qǐng)求的目標(biāo)。
用于執(zhí)行該工作流程307的步驟序列如下1.在應(yīng)用程序管理器306評(píng)價(jià)應(yīng)用程序107期間,在一些點(diǎn)處做出用于執(zhí)行工作流程腳本307.getCompanyInfo的請(qǐng)求;2.應(yīng)用程序管理器306指示501解釋模塊308的腳本解釋器310加載工作流程307;
3.應(yīng)用程序管理器306將符號(hào)庫(kù)322、324提供502給滿足對(duì)消息328、屏幕330和數(shù)據(jù)326組件的所有外部引用的代理重定向模塊312。
4.然后,應(yīng)用程序管理器306指示腳本解釋器開(kāi)始執(zhí)行503腳本307。腳本307被解釋為(由腳本307)定義(保留的)、聲明為本地符號(hào)322的語(yǔ)言或未知的語(yǔ)言(即外部符號(hào)324)的符號(hào)322、324序列。
5.將對(duì)未知符號(hào)324(例如屏幕scrCompanyInfo或者msgGetSubsidiaries)的引用404傳遞504給代理重定向模塊312。
6.代理重定向模塊312根據(jù)應(yīng)用程序管理器306所提供的全局符號(hào)庫(kù)324來(lái)辨別符號(hào);以及7.代理重定向模塊312通過(guò)將它們分別尋址506、508、510到適當(dāng)?shù)目蚣芊?wù)316、314、318,來(lái)處理引用,提供所請(qǐng)求的字段或執(zhí)行例如消息send()等請(qǐng)求。
上述描述涉及一個(gè)或多個(gè)典型系統(tǒng)和方法。各種變化對(duì)于本領(lǐng)域的技術(shù)人員是顯而易見(jiàn)的,并且這些變化包括在本申請(qǐng)的范圍內(nèi)。
例如,盡管在提供的示例中使用XML和ECMAScript的子集,按照希望,可以使用其他語(yǔ)言和語(yǔ)言變體來(lái)定義組件326、328、330和腳本307。此外,使用該方法,系統(tǒng)10整體上可以擴(kuò)展應(yīng)用程序107執(zhí)行以超出腳本307的腳本語(yǔ)言的能力。可以將復(fù)合處理或更復(fù)雜的邏輯移動(dòng)到框架206,由此可以更有效地(即本地地)進(jìn)行處理并且由多個(gè)應(yīng)用程序107共享。
應(yīng)用程序107可以對(duì)于應(yīng)用程序107所尋址到的框架206類型是完全中性的。此外,在框架206導(dǎo)出可以在稍后改進(jìn)的任意全局符號(hào)324組時(shí),該方法便于系統(tǒng)10的進(jìn)一步擴(kuò)展。按照這種方式,通過(guò)修改將腳本307的各個(gè)腳本單元鏈接到共享服務(wù)模塊304的引用406(參見(jiàn)圖4),以及通過(guò)修改組件326、328、330、332的內(nèi)容,在擴(kuò)展開(kāi)發(fā)商使用的編程能力的同時(shí),腳本307的腳本語(yǔ)法可以保持不變。
權(quán)利要求
1.一種用于擴(kuò)展由終端執(zhí)行的應(yīng)用程序的能力的方法,所述應(yīng)用程序包括基于腳本的工作流程和非可執(zhí)行內(nèi)容,所述方法包括步驟加載由腳本解釋器解釋的工作流程,工作流程被配置為具有多個(gè)可執(zhí)行單元;提供由可執(zhí)行單元引用的全局符號(hào)結(jié)構(gòu),全局符號(hào)結(jié)構(gòu)包括用于使選定的可執(zhí)行單元與相應(yīng)外部組件相連的尋址,由終端的本地運(yùn)行時(shí)間環(huán)境提供外部組件,用于執(zhí)行由選定的可執(zhí)行單元指定的動(dòng)作;以及依次執(zhí)行可執(zhí)行單元,從而通過(guò)全局符號(hào)結(jié)構(gòu)的相應(yīng)全局符號(hào),將選定的執(zhí)行單元的執(zhí)行重定向到各個(gè)外部組件;其中,由運(yùn)行時(shí)間環(huán)境和應(yīng)用程序的工作流程共享全局符號(hào)結(jié)構(gòu)的內(nèi)容的預(yù)定知識(shí)。
2.根據(jù)權(quán)利要求1所述的方法,還包括步驟將可執(zhí)行單元引用到從包括全局符號(hào)結(jié)構(gòu)和本地符號(hào)結(jié)構(gòu)的組中選擇出的任意結(jié)構(gòu)。
3.根據(jù)權(quán)利要求2所述的方法,其中,全局符號(hào)結(jié)構(gòu)被配置為包含可執(zhí)行單元和外部組件之間的引用,所述外部組件由構(gòu)成了服務(wù)框架的多個(gè)服務(wù)模塊提供。
4.根據(jù)權(quán)利要求3所述的方法,其中,本地符號(hào)結(jié)構(gòu)被配置為包含可執(zhí)行單元和在應(yīng)用程序中其他地方本地定義的本地組件組之間的引用。
5.根據(jù)權(quán)利要求4所述的方法,其中,本地符號(hào)結(jié)構(gòu)和全局符號(hào)結(jié)構(gòu)包括由腳本解釋器引用的任意結(jié)構(gòu)。
6.根據(jù)權(quán)利要求2所述的方法,還包括步驟采用代理重定向模塊,用于協(xié)調(diào)對(duì)全局符號(hào)的引用,并將相應(yīng)請(qǐng)求定向到適當(dāng)?shù)耐獠拷M件。
7.根據(jù)權(quán)利要求6所述的方法,其中,由服務(wù)模塊提供外部組件,服務(wù)模塊是用于訪問(wèn)外部組件中的消息組件的通信服務(wù)。
8.根據(jù)權(quán)利要求7所述的方法,其中,消息組件定義了應(yīng)用程序用于與其他應(yīng)用程序進(jìn)行交互的消息格式。
9.根據(jù)權(quán)利要求6所述的方法,其中,由服務(wù)模塊提供外部組件,服務(wù)模塊是用于訪問(wèn)外部組件中的數(shù)據(jù)組件的持續(xù)服務(wù)。
10.根據(jù)權(quán)利要求9所述的方法,其中,數(shù)據(jù)組件定義了由可執(zhí)行單元引用的數(shù)據(jù)實(shí)體。
11.根據(jù)權(quán)利要求6所述的方法,其中,由服務(wù)模塊提供外部組件,服務(wù)模塊是用于訪問(wèn)外部組件中的呈現(xiàn)組件的呈現(xiàn)服務(wù)。
12.根據(jù)權(quán)利要求11所述的方法,其中,呈現(xiàn)組件定義了當(dāng)呈現(xiàn)在終端的用戶接口上時(shí)應(yīng)用程序的呈現(xiàn)和行為。
13.根據(jù)權(quán)利要求2所述的方法,其中,以平臺(tái)中性腳本語(yǔ)言表達(dá)工作流程。
14.根據(jù)權(quán)利要求13所述的方法,其中,由服務(wù)模塊提供外部組件,針對(duì)工作流程的可執(zhí)行單元的表達(dá)之外的修改,配置服務(wù)模塊。
15.根據(jù)權(quán)利要求13所述的方法,其中,針對(duì)工作流程的可執(zhí)行單元的表達(dá)之外的修改,配置外部組件。
16.根據(jù)權(quán)利要求2所述的方法,還包括執(zhí)行執(zhí)行單元,作為包括用于以預(yù)定語(yǔ)言描述應(yīng)用程序?qū)嶓w的模板的非可執(zhí)行內(nèi)容。
17.根據(jù)權(quán)利要求16所述的方法,其中,所述語(yǔ)言是結(jié)構(gòu)化定義語(yǔ)言。
18.根據(jù)權(quán)利要求17所述的方法,其中,所述結(jié)構(gòu)化定義語(yǔ)言是基于XML的。
19.根據(jù)權(quán)利要求2所述的方法,還包括步驟由多個(gè)應(yīng)用程序共享外部組件。
20.根據(jù)權(quán)利要求2所述的方法,其中,由方案定義服務(wù)通過(guò)與終端相連的網(wǎng)絡(luò)服務(wù)器提供應(yīng)用程序,所述終端是從包括有線設(shè)備和無(wú)線設(shè)備的組中選出的。
21.一種終端,配置用于擴(kuò)展由本地運(yùn)行時(shí)間環(huán)境執(zhí)行的應(yīng)用程序的能力,所述應(yīng)用程序包括基于腳本的工作流程和非可執(zhí)行內(nèi)容,所述終端包括腳本解釋器,用于解釋工作流程,所述工作流程被配置為具有多個(gè)可執(zhí)行單元;全局符號(hào)結(jié)構(gòu),配置用于由可執(zhí)行單元引用,全局符號(hào)結(jié)構(gòu)包括用于使選定的可執(zhí)行單元與相應(yīng)外部組件相連的尋址,由終端的本地運(yùn)行時(shí)間環(huán)境提供外部組件,用于執(zhí)行選定的可執(zhí)行單元指定的動(dòng)作;代理重定向模塊,用于在執(zhí)行工作流程期間重定向選定的執(zhí)行單元,通過(guò)全局符號(hào)結(jié)構(gòu)的相應(yīng)全局符號(hào),將選定的執(zhí)行單元重定向到各個(gè)外部組件;其中,由運(yùn)行時(shí)間環(huán)境和應(yīng)用程序的工作流程共享全局符號(hào)結(jié)構(gòu)的內(nèi)容的預(yù)定知識(shí)。
22.根據(jù)權(quán)利要求21所述的終端,還包括引用到從包括全局符號(hào)結(jié)構(gòu)和本地符號(hào)結(jié)構(gòu)的組中選出的任意結(jié)構(gòu)的可執(zhí)行單元。
23.根據(jù)權(quán)利要求22所述的終端,還包括構(gòu)成了服務(wù)框架的多個(gè)服務(wù)模塊,其中,全局符號(hào)結(jié)構(gòu)被配置為包含可執(zhí)行單元和服務(wù)框架所提供的外部組件之間的引用。
24.根據(jù)權(quán)利要求23所述的終端,其中,本地符號(hào)結(jié)構(gòu)被配置為包含可執(zhí)行單元和在應(yīng)用程序中其他地方本地定義的本地組件組之間的引用。
25.根據(jù)權(quán)利要求24所述的終端,其中,本地符號(hào)結(jié)構(gòu)和全局符號(hào)結(jié)構(gòu)包括由腳本解釋器引用的任意結(jié)構(gòu)。
26.根據(jù)權(quán)利要求22所述的終端,還包括代理重定向模塊,協(xié)調(diào)對(duì)全局符號(hào)的引用,并將相應(yīng)請(qǐng)求定向到適當(dāng)?shù)耐獠拷M件。
27.根據(jù)權(quán)利要求26所述的終端,其中,由服務(wù)模塊提供外部組件,服務(wù)模塊是用于訪問(wèn)外部組件中的消息組件的通信服務(wù)。
28.根據(jù)權(quán)利要求27所述的終端,其中,消息組件定義了應(yīng)用程序用于與其他應(yīng)用程序進(jìn)行交互的消息格式。
29.根據(jù)權(quán)利要求26所述的終端,其中,由服務(wù)模塊提供外部組件,服務(wù)模塊是用于訪問(wèn)外部組件中的數(shù)據(jù)組件的持續(xù)服務(wù)。
30.根據(jù)權(quán)利要求29所述的終端,其中,數(shù)據(jù)組件定義了由可執(zhí)行單元引用的數(shù)據(jù)實(shí)體。
31.根據(jù)權(quán)利要求26所述的終端,其中,由服務(wù)模塊提供外部組件,服務(wù)模塊是用于訪問(wèn)外部組件中的呈現(xiàn)組件的呈現(xiàn)服務(wù)。
32.根據(jù)權(quán)利要求31所述的終端,其中,呈現(xiàn)組件定義了當(dāng)呈現(xiàn)在終端的用戶接口上時(shí)應(yīng)用程序的呈現(xiàn)和行為。
33.根據(jù)權(quán)利要求22所述的終端,其中,以平臺(tái)中性腳本語(yǔ)言表達(dá)工作流程。
34.根據(jù)權(quán)利要求33所述的終端,其中,由服務(wù)模塊提供外部組件,針對(duì)工作流程的可執(zhí)行單元的表達(dá)之外的修改,配置服務(wù)模塊。
35.根據(jù)權(quán)利要求33所述的終端,其中,針對(duì)工作流程的可執(zhí)行單元的表達(dá)之外的修改,配置外部組件。
36.根據(jù)權(quán)利要求22所述的終端,執(zhí)行單元具有作為包括用于以預(yù)定語(yǔ)言描述應(yīng)用程序?qū)嶓w的模板的非可執(zhí)行內(nèi)容。
37.根據(jù)權(quán)利要求36所述的方法,其中,所述語(yǔ)言是結(jié)構(gòu)化定義語(yǔ)言。
38.根據(jù)權(quán)利要求37所述的方法,其中,所述結(jié)構(gòu)化定義語(yǔ)言是基于XML的。
39.根據(jù)權(quán)利要求22所述的方法,其中,由多個(gè)應(yīng)用程序共享外部組件。
40.根據(jù)權(quán)利要求22所述的方法,其中,由方案定義服務(wù)通過(guò)與終端相連的網(wǎng)絡(luò)服務(wù)器提供應(yīng)用程序,所述終端是從包括有線設(shè)備和無(wú)線設(shè)備的組中選出的。
41.一種計(jì)算機(jī)程序產(chǎn)品,用于擴(kuò)展由終端的本地運(yùn)行時(shí)間環(huán)境執(zhí)行的應(yīng)用程序的能力,所述應(yīng)用程序包括基于腳本的工作流程和非可執(zhí)行內(nèi)容,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì);腳本解釋模塊,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,用于解釋工作流程,工作流程被配置為具有多個(gè)可執(zhí)行單元;全局符號(hào)結(jié)構(gòu),存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,配置用于由可執(zhí)行單元引用,全局符號(hào)結(jié)構(gòu)包括用于使選定的可執(zhí)行單元與相應(yīng)外部組件相連的尋址,由終端的本地運(yùn)行時(shí)間環(huán)境提供外部組件,用于執(zhí)行選定的可執(zhí)行單元指定的動(dòng)作;代理重定向模塊,與全局符號(hào)結(jié)構(gòu)相連,用于在執(zhí)行工作流程期間重定向選定的執(zhí)行單元,通過(guò)全局符號(hào)結(jié)構(gòu)的相應(yīng)全局符號(hào),將選定的執(zhí)行單元重定向到各個(gè)外部組件;其中,由運(yùn)行時(shí)間環(huán)境和應(yīng)用程序的工作流程共享全局符號(hào)結(jié)構(gòu)的內(nèi)容的預(yù)定知識(shí)。
全文摘要
基于腳本語(yǔ)言的應(yīng)用程序受限于提供和執(zhí)行復(fù)雜邏輯和復(fù)合處理的能力。多數(shù)傳統(tǒng)編程語(yǔ)言包含顯式函數(shù)和/或程序調(diào)用,以實(shí)現(xiàn)更復(fù)雜的功能,然而,這些語(yǔ)言使用更復(fù)雜的語(yǔ)法,并且一般需要使用更復(fù)雜的編程知識(shí)。提供了用于擴(kuò)展由終端執(zhí)行的應(yīng)用程序的能力的系統(tǒng)和方法。該應(yīng)用程序包括基于腳本的工作流程和非可執(zhí)行內(nèi)容。一種這樣的方法包括加載由腳本解釋器解釋的工作流程,使得工作流程被配置為具有多個(gè)可執(zhí)行單元。該方法還提供了由可執(zhí)行單元引用的全局符號(hào)結(jié)構(gòu),所述全局符號(hào)結(jié)構(gòu)包括用于使選定的可執(zhí)行單元與相應(yīng)外部組件相連的尋址。由終端的本地運(yùn)行時(shí)間環(huán)境提供外部組件,用于執(zhí)行由選定的可執(zhí)行單元所指定的動(dòng)作。該方法還依次執(zhí)行可執(zhí)行單元,從而通過(guò)全局符號(hào)結(jié)構(gòu)的相應(yīng)全局符號(hào),將選定的執(zhí)行單元的執(zhí)行重定向到各個(gè)外部組件。由運(yùn)行時(shí)間環(huán)境和應(yīng)用程序的工作流程共享全局符號(hào)結(jié)構(gòu)的內(nèi)容的預(yù)定知識(shí)。
文檔編號(hào)G06F9/445GK1867897SQ200480029912
公開(kāi)日2006年11月22日 申請(qǐng)日期2004年2月13日 優(yōu)先權(quán)日2003年10月2日
發(fā)明者布賴恩·R·戈林, 邁克爾·申菲爾德, 約翰·F·A·達(dá)姆斯 申請(qǐng)人:捷訊研究有限公司