專利名稱:通過利用客戶機處理能力來減小遠程應用的帶寬要求的系統(tǒng)和方法
技術領域:
本發(fā)明涉及遠程應用領域,更具體地說,涉及減少這種應用程序的傳輸數(shù)據(jù)的系統(tǒng)和方法。
背景技術:
因特網(wǎng)已成為與以各種格式可得到巨大信息倉庫通信的主干。許多公司正在開發(fā)在因特網(wǎng)上使用的、簡化實時決策過程(例如事務型應用程序)的各種應用程序。一般來說,這些遠程應用包含遠程數(shù)據(jù)的雙向或單向訪問。
由于其性能和可靠性方面的問題,用于此用途的因特網(wǎng)的全部潛力仍然無法被實現(xiàn)。具體地說,因特網(wǎng)的性能局限性之一是帶寬問題?,F(xiàn)代的遠程應用要求大量信息的高速傳輸。當在低帶寬數(shù)據(jù)傳輸介質(zhì),例如一般的電話線路上使用這樣的應用程序時,應用不能正確地運行和/或會導致較長的等待時間。在支持許多用戶(即具有低的帶寬-用戶比)的高帶寬環(huán)境中,這種問題也是明顯的。對于本公開來說,術語“低帶寬”指的是實際低帶寬或者低的帶寬/用戶比。低帶寬/用戶比,因特網(wǎng)服務提供商(ISP)的基本設施,到因特網(wǎng)主干線的網(wǎng)關,或者內(nèi)容提供商的Web服務器和/或應用服務器可能導致瓶頸。消除這些問題可能是成本高得驚人或者不切實際。例如,不僅增大帶寬成本高昂,而且在一些缺少增大帶寬的基本設施的區(qū)域中,實際上不可能增大帶寬。
增大帶寬要求歸因于傳輸?shù)臄?shù)據(jù)的復雜性不斷增大,以及因特網(wǎng)如何交換信息。因特網(wǎng)一般使用超文本置標語言(HTML)和其相關格式,例如可擴展置標語言(XML)和動態(tài)HTML(DHTML)。因特網(wǎng)還可使用超文本傳輸協(xié)議(HTTP),文件傳輸協(xié)議(FTP)和其它基于傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)的相關通信協(xié)議。
HTML定義指示web瀏覽器如何顯示文檔的內(nèi)容的特殊的嵌入式指示的語法和布置,所述文檔由一個或多個HTML文本文件或相關的介質(zhì)文件,或者許多格式,包括文本、圖像或其它支持介質(zhì)的其它嵌入式文件組成。HTML指令web瀏覽器客戶機應用程序如何通過特殊的超文本鏈接或者通過嵌入式程序,比如Java小應用程序使文檔交互作用,所述嵌入式程序使文檔與其它文檔連接,以及與其它因特網(wǎng)資源連接。另外,嵌入式程序能夠并且通常確實包含它們自己的呈可執(zhí)行代碼形式的交互邏輯和相關資源。
服務器數(shù)字處理系統(tǒng)(服務器DPS)一般運行web服務器和/或應用服務器程序來使文檔,一般是用HTML語言編寫的超文本文檔可用。Web服務器和/或應用服務器一般具有運行外部程序的標準接口,例如公共網(wǎng)關接口(CGI),Java小服務程序,Java服務器頁(JSP)和活動服務器頁(ASP)或者其它服務器端解決方案。這樣的程序處理輸入的信息請求,并返回恰當?shù)奈臋n或者動態(tài)產(chǎn)生文檔。例如,網(wǎng)關可接收查詢,確定響應,把響應轉換成HTML頁,從而服務器DPS可把結果發(fā)送給客戶機數(shù)字處理系統(tǒng)(客戶機DPS)??蛻魴CDPS一般運行web瀏覽器(允許從服務器DPS取回并顯示信息的程序)。服務器端技術,例如JSP和ASP使用處理以腳本語言或者Java編寫的命令的腳本引擎或Java。
web服務器和/或應用服務器和web瀏覽器利用HTTP通信。在HTTP中,web瀏覽器建立與web服務器和/或應用服務器的連接,并把HTTP請求消息發(fā)送給服務器DPS。作為響應,web服務器和/或應用服務器檢查授權,執(zhí)行任何請求的動作,并返回包含由請求的動作產(chǎn)生的HTML文檔的HTTP響應消息,或者錯誤消息。web服務器和/或應用服務器隨后取回所述文檔,并在HTTP響應消息中將其返回給Web瀏覽器。
客戶機DPS可向服務器DPS申請使用應用文檔,例如事務型應用表格??蛻魴CDPS的申請導致在服務器DPS上構成整個表格。該表格隨后被打包并傳送給客戶機DPS。一般來說,客戶機DPS接收HTML代碼,并在客戶機DPS解析和呈遞該表格。
圖1圖解說明根據(jù)現(xiàn)有技術的,客戶機DPS向服務器DPS請求并接收遠程應用表格的進程。圖1中所示的進程始于操作105,其中客戶機DPS請求使用遠程應用表格??砂凑崭鞣N方式,包括通過因特網(wǎng),企業(yè)內(nèi)部網(wǎng),外聯(lián)網(wǎng),局域網(wǎng)(LAN),廣域網(wǎng)(WAN)以及其它網(wǎng)絡,和它們的組合,從客戶機DPS向服務器DPS發(fā)出所述請求(申請)。為了方便起見,客戶機DPS和服務器DPS之間的數(shù)據(jù)傳輸路徑被稱為“云”(cloud)。通過云的申請的傳輸受到可用帶寬的限制。由于所述申請一般只是少量的數(shù)據(jù),因此該瓶頸不會導致明顯的時延。
在操作110,服務器DPS接收申請。所述申請由服務器DPS的web服務器/應用服務器接收。
在操作115,服務器DPS確定所述申請是否是對標準接口文件(對本例來說,JSP文件)的請求。如果所述申請是JSP文件,那么在操作116,服務器執(zhí)行JSP處理操作。JSP文件被取回并被傳給小服務程序引擎。如果JSP先前未被例示,那么小服務程序引擎解析JSP文件,并產(chǎn)生小服務程序源代碼。小服務程序引擎隨后編譯源代碼,并例示該小服務程序。在操作117,小服務程序隨后輸出標準HTML代碼。
如果在操作115,申請不是JSP文件,那么在操作118,服務器DPS從虛擬目錄獲得HTML代碼。
在操作120,HTML代碼(來自JSP小服務程序或來自虛擬目錄)通過云從服務器DPS被傳送給客戶機DPS。該HTML代碼相當巨大,會在傳輸中導致較長的時延,尤其是對于低帶寬/用戶環(huán)境來說。
在操作125,客戶機DPS接收HTML代碼。HTML代碼在客戶機DPS被接收,并在被解析和呈遞之前可被緩存。這種緩存在呈現(xiàn)遠程應用表格方面加入了時延。
在操作130,在所有傳輸代碼已被解析和呈遞之后,在客戶機DPS完成遠程應用表格呈現(xiàn)。
歸因于HTML是如何構成的,在這樣的方案中傳送的許多代碼與文檔的格式化結構相關。這相當于并不提供特定于用戶的益處的大量的傳輸數(shù)據(jù)。已用成功程度不同的幾種途徑解決了這種情形。例如,為了避免每次向客戶機DPS傳送文檔,終端服務器模擬在客戶機DPS的屏幕。這在實際運行應用程序的服務器DPS上開啟一個客戶機會話,只有屏幕模擬被傳送給客戶機DPS。即,不包括典型web頁傳輸?shù)某尸F(xiàn)代碼或邏輯。客戶機DPS具有應用模擬器,并且只傳送與表格的交互作用(即,鍵入的輸入和/或鼠標移動)。借助終端服務器,各種算法被用于減少所需的數(shù)據(jù)傳輸。終端服務器允許減少客戶機DPS上的處理能力,但是在服務器DPS上,處理要求顯著增大。這樣的方案并不向諸如典型的(模擬)電話線路之類的低帶寬/用戶介質(zhì)提供明顯的緩減,并且具有眾多的其它缺陷。一個缺陷是初始設置需要大約幾兆字節(jié)(MB)的數(shù)據(jù)傳輸,它以插件、對象的形式被安裝在客戶機DPS上,或者直接被安裝到客戶機DPS硬盤上(即,不安裝到瀏覽器高速緩沖存儲器中)。于是,這種安裝越過了安全屏障。這種安裝需要明確的用戶許可,改變了客戶機DPS的配置,產(chǎn)生沖突可能性及不可靠的弱點的了解。另外,終端服務器是特定于系統(tǒng)的。即,由于需要在客戶機DPS上的安裝,因此終端服務器并不是與系統(tǒng)無關的。此外,在用戶缺少能夠安裝初始組件的管理權,或者終端服務器不能通過防火墻或代理的情況下,終端服務器會變得不可用。
減少事務型應用表格中的所需數(shù)據(jù)傳輸?shù)臄?shù)量的另一種嘗試是在客戶機DPS上產(chǎn)生某一環(huán)境,以改變與服務器DPS的交互作用的安裝方案。其一個例子是Java虛擬機(JVM),它是運行Java小程序的獨立操作環(huán)境。JVM的原理是在客戶機DPS上安裝與操作系統(tǒng)和瀏覽器無關的環(huán)境。由于它可減少不斷傳送文件結構化代碼的需要,因此它有可能能夠減少數(shù)據(jù)傳輸。
但是,由于需要初始安裝,因此JVM也具有終端服務器的缺陷。對于JVM來說,由于JVM需要對象和額外的類別,因此初始安裝可能高達11MB。JVM不僅安裝其整個環(huán)境,而且每個應用需要它自己的專用環(huán)境(即,向服務器請求另外的類別)。由于不得不訪問更多的數(shù)據(jù),應用程序行動遲緩。此外,JVM要求更大的客戶機DPS處理能力。JVM適用于小型的特別集中的應用程序,但是通常,JVM仍然需要如此多的代碼,以致它不能顯著減少事務型應用表格的所需數(shù)據(jù)傳輸?shù)臄?shù)量。
遠程應用表格的通過云傳輸?shù)倪^量數(shù)據(jù)的另一例子是提交和數(shù)據(jù)確認過程。許多遠程應用要求用戶輸入將由服務器DPS確認的數(shù)據(jù)。一般來說,用戶必須提交完整的表格,在試圖確認具體輸入之前,服務器DPS必須接收所述完整表格。如果在完成該表格方面存在錯誤,那么必須采用整頁生成過程來重新生成恰當?shù)匕阎导尤氲阶侄魏湾e誤消息中的頁。如果在用戶輸入數(shù)據(jù)中沒有檢測到任何錯誤,那么服務器DPS產(chǎn)生包含確認信息的頁。該頁隨后通過云被傳送給客戶機DPS由用戶核實。如果用戶核實后提交該表格,那么可繼續(xù)進行對應的數(shù)據(jù)庫進程和其它任務。如果用戶不能核實數(shù)據(jù),那么如上所述必須采用頁生成過程。該過程不僅需要通過云的大量數(shù)據(jù)傳輸,而且在由于錯誤輸入的緣故而傳輸和/或重新生成頁時,導致相當長的等待時間。
典型的遠程應用的另一缺陷在于它們一般被較差地呈現(xiàn)。這種“外觀和感覺”或用戶友好性特征與典型的遠程應用以批處理模式運行、并且不能與服務器實時交互作用的事實有關。一般來說,表格相當長,導致用戶不得不滾動,并且在表格完整之前,不從服務器提供任何反饋。典型的遠程應用不能以“聊天”模式運行,因為關閉、傳輸和重新打開該頁的連續(xù)過程會導致延遲并且打亂的表現(xiàn)。
需要一種減少客戶機DPS和服務器DPS之間的經(jīng)過云的數(shù)據(jù)傳輸?shù)挠行到y(tǒng)和方法。這樣的數(shù)據(jù)傳輸可包括數(shù)據(jù)文件或一批數(shù)據(jù)文件的傳輸,包括文本、音頻、介質(zhì)、嵌入式程序、可執(zhí)行代碼或者在主服務器DPS公布的其它數(shù)據(jù)的傳輸。這樣的系統(tǒng)應減少訪問和呈現(xiàn)遠程應用表格期間的、以及關于提交和數(shù)據(jù)確認的數(shù)據(jù)傳輸。
最好,這樣的系統(tǒng)不應需要在客戶機DPS上的安裝(即,采用零安裝技術),并且不應修改客戶機DPS的安全端(side)。這樣的系統(tǒng)還應通過代理和防火墻。此外,這樣的系統(tǒng)應為遠程應用提供用戶友好的交互作用(例如圖形用戶界面和“聊天模式”)。
在客戶機DPS正在通過低帶寬/用戶介質(zhì)訪問高帶寬數(shù)據(jù)應用程序時,對這種系統(tǒng)的需求最明顯,盡管這樣的系統(tǒng)將要增大一些帶寬容量。
發(fā)明內(nèi)容
本發(fā)明的實施例提供減少用于遠程應用表格的傳輸代碼的方法和系統(tǒng)。在客戶機數(shù)字處理系統(tǒng)(DPS)接收使一個或多個函數(shù)與遠程應用鏈接的第一代碼。每個函數(shù)包含產(chǎn)生對象結構代碼的指令代碼和一組對象參數(shù)。對象結構代碼被用于產(chǎn)生對應的對象。使一個或多個函數(shù)與遠程應用表格鏈接。接收第二代碼以便調(diào)用一個或多個函數(shù)。一個或多個函數(shù)被調(diào)用,從而在客戶機DPS構成一個或多個對象。根據(jù)對象參數(shù),構成的一個或多個對象被呈現(xiàn)為遠程應用表格的一部分。
根據(jù)附圖,以及根據(jù)下面的詳細說明,本發(fā)明的實施例的其它特征和優(yōu)點將是顯而易見的。
參考用于舉例說明本發(fā)明的實施例的下述說明和附圖,可更好地理解本發(fā)明。附圖中圖1圖解說明根據(jù)現(xiàn)有技術的,其中客戶機DPS向服務器DPS請求和接收遠程應用表格的過程;圖2圖解說明根據(jù)本發(fā)明的一個實施例的,其中傳送、接收和處理允許減少數(shù)據(jù)傳輸?shù)膽贸绦虻臄?shù)字處理系統(tǒng)(DPS)的網(wǎng)絡;圖3是根據(jù)本發(fā)明的一個實施例的系統(tǒng)的結構示意圖;圖4是圖解說明根據(jù)本發(fā)明的一個實施例的,其中客戶機DPS訪問并呈現(xiàn)允許減少數(shù)據(jù)傳輸?shù)倪h程應用的過程的流程圖;圖5是圖解說明根據(jù)本發(fā)明的一個實施例的,其中對照服務器DPS數(shù)據(jù)庫確認用戶輸入數(shù)據(jù)的過程的流程圖;圖6是圖解說明根據(jù)本發(fā)明的一個實施例的,其中刷新遠程應用表格的過程的流程圖;圖7是圖解說明根據(jù)本發(fā)明的一個實施例的,其中在客戶機DPS完成用戶數(shù)據(jù)輸入類型確認和字段完成確認的過程的流程圖;圖8圖解說明根據(jù)本發(fā)明的一個實施例的可用于服務器DPS或客戶機DPS的數(shù)字處理系統(tǒng)的一個實施例。
具體實施例方式
本發(fā)明的一個實施例顯著減少了遠程事務型應用表格的在服務器DPS和客戶機DPS之間傳送的所需代碼的數(shù)量,同時保持了全部和附加的功能。雖然描述了具體例子,為了劃定本發(fā)明的范圍,術語表格一般指的是為在遠程應用上使用而產(chǎn)生的對象的任意組合。對于一個實施例來說,這是通過減少對客戶機的數(shù)據(jù)傳輸來完成的。對于一個實施例,在客戶機DPS訪問遠程應用表格之后,服務器DPS把由許多函數(shù)組成的核心庫傳送給客戶機DPS。核心庫被保存在客戶機DPS的瀏覽器高速緩沖存儲器上。核心庫包括稱為類屬微型匯編器(GMA)的一組函數(shù)。GMA被用于在客戶機DPS上構成類屬(例如通常使用的)對象。即,初始傳輸內(nèi)的代碼調(diào)用GMA的函數(shù)來產(chǎn)生HTML代碼,從而構成類屬對象。HTML代碼的產(chǎn)生和對象的構成在客戶機進行,而不是在服務器DPS進行。對象是事務型應用表格的一部分,并且可以是要交換的各種字段的信息,包括文本、文本區(qū)、復選框等。對于一個實施例,當產(chǎn)生文檔時,標準接口程序的程序邏輯請求特定應用所需的其它對象,并向服務器DPS請求構成這些對象所需的函數(shù)。構成這樣的對象所需函數(shù)被稱為專用微型匯編器(SMA)。
本發(fā)明的一個實施例的預期優(yōu)點是減少遠程應用的傳輸數(shù)據(jù)的數(shù)量。本發(fā)明的一個實施例的另一預期優(yōu)點是通過帶寬/用戶比較低的介質(zhì)提供全功能事務型應用。本發(fā)明的一個實施例的另一預期優(yōu)點是在客戶機DPS完成多數(shù)遠程應用表格處理,從而釋放服務器DPS處理資源。本發(fā)明的一個實施例的另一預期優(yōu)點是在初始下載大大減少,并且不在客戶機上進行任何安裝(即,采用零安裝技術)的情況下,提供事務型應用表格。本發(fā)明的一個實施例的另一預期優(yōu)點是在不修改客戶機DPS的安全端的情況下,提供對遠程應用的訪問。本發(fā)明的一個實施例的另一預期優(yōu)點是向遠程應用提供用戶友好的交互作用。本發(fā)明的一個實施例的另一預期優(yōu)點是向客戶機DPS提供在客戶機DPS上構成應用對象的函數(shù)。本發(fā)明的一個實施例的另一預期優(yōu)點是一開始只提供構成類屬對象所必需的那些函數(shù),提供確認,并向遠程應用提供用戶友好的交互作用。
在下面的說明中,陳述了各種具體細節(jié)。但是,可在沒有這些具體細節(jié)的情況下實踐本發(fā)明的實施例。在其它情況下,為了不使下面的說明變得難以理解,沒有詳細表示公知電路、結構和技術。
說明書中對“一個實施例”或“某一實施例”的引用意味著結合該實施例描述的特定特征,結構或特性被包括在本發(fā)明的至少一個實施例中。從而,短語“在一個實施例中”或“在某一實施例中”在本說明書中各個地方的出現(xiàn)不一定都指的是相同實施例。此外,特定的特征、結構或特性可在一個或多個實施例中按照任何適當方式組合。
圖2圖解說明根據(jù)本發(fā)明的一個實施例的其中可傳送,接收和處理允許減少數(shù)據(jù)傳輸(RDTE)應用程序的數(shù)字處理系統(tǒng)(DPS)的網(wǎng)絡。DPS的網(wǎng)絡200包括多個客戶機DPS205a-205d,與表示成服務器DPS220的一個或多個服務器DPS220耦接。服務器DPS220和客戶機DPS205a-205d被配置成傳遞多個各種數(shù)據(jù)文件。例如,根據(jù)本發(fā)明的一個實施例,服務器DPS220保存有供客戶機DPS訪問的減少數(shù)據(jù)傳輸?shù)膽贸绦?21。數(shù)據(jù)文件可和事務型應用表格有關,或者可以是許多不同類型的文件,例如包括視頻、音頻、圖形、文本、多介質(zhì)等的任意組合。例如,數(shù)據(jù)文件可以是音頻/視頻文件,例如具有活動圖像和聲音的程序。通過任意類型的通信網(wǎng)絡,例如(但不限于)因特網(wǎng),廣域網(wǎng)(WAN)(未示出),或局域網(wǎng)(LAN),企業(yè)內(nèi)部網(wǎng)等,數(shù)據(jù)可在服務器DPS和客戶機DPS之間傳遞,多個不同的設備可通過所述任意類型的通信網(wǎng)絡通信。例如,如圖2中所示,客戶機DPS205a和205d通過LAN211與服務器220耦接,而客戶機DPS205b和205c通過因特網(wǎng)210與服務器220耦接,因特網(wǎng)210是具有如上所述傳遞數(shù)據(jù)的方法,并且為本領域的技術人員公知的網(wǎng)絡的網(wǎng)絡。耦接服務器DPS和客戶機DPS的通信鏈路不一定是直接鏈路,可以是間接鏈路,包括(但不限于)廣播無線信號,網(wǎng)絡通信等。
下面參考圖8說明了根據(jù)本發(fā)明的一個實施例的可用于服務器DPS220或客戶機DPS205a-205d的數(shù)字處理系統(tǒng)的一個實施例。
圖3是根據(jù)本發(fā)明的一個實施例的系統(tǒng)的結構概述圖。圖3中所示的例證系統(tǒng)300被表示成以Java為中心的環(huán)境(例如Java2平臺企業(yè)版(J2EE))。這只是用于舉例說明,本發(fā)明不應被理解為局限于此。
系統(tǒng)300包括服務器層301,后端302和客戶機層303的例證實施例,如下進一步說明。
服務器層301包括應用程序開發(fā)環(huán)境,例如J2EE web容器310。Web容器310包括HTML代碼311和RDTE遠程應用HTML代碼311a;小服務程序312和RDTE小服務程序312a;JSP313和RDTEJSP313a;和CGI314和RDTE CGI314a。web容器310還包括RDTE遠程應用核心庫315和其它函數(shù)316,下面說明。
服務器層301還包括運行通過保存平臺邏輯的組件體系結構(例如Enterprise Java Beans)建立的各種組件321的應用程序320。除了其它功能之外,這些組件可提供存儲器管理和安全功能。應用程序320可包括允許各種數(shù)據(jù)文件的產(chǎn)生、管理和傳遞的計算機間消息接發(fā)API322,以及向應用程序提供數(shù)據(jù)庫訪問的數(shù)據(jù)庫訪問API323(例如Java DataBase Connectivity)。
服務器層301還包括向客戶機層302提供RDTE遠程應用頁,并處理服務器層301和后端302之間的應用操作的web/應用服務器330。
除了其它功能之外,還提供數(shù)據(jù)庫管理功能的后端302包括響應用戶查詢的各種數(shù)據(jù)庫環(huán)境340a-340d。
客戶機層303包括客戶機DPS web瀏覽器350,客戶機DPS web瀏覽器350包括HTML解析和表現(xiàn)軟件351,腳本函數(shù)352,和瀏覽器高速緩沖存儲器353。核心庫360保存在瀏覽器高速緩沖存儲器353上,核心庫360是用于產(chǎn)生應用頁的最常見對象的函數(shù)庫。根據(jù)本發(fā)明的一個實施例,當最初訪問某一遠程應用時,該函數(shù)庫從服務器DPS被傳送給客戶機DPS。核心庫360包括GMA361,確認函數(shù)362,定步器函數(shù)363,deltalyzer函數(shù)364,用戶接口函數(shù)365,及其它函數(shù)和對象366(例如日期函數(shù),數(shù)組函數(shù)等)。對于一個實施例,核心庫約為15千字節(jié),能夠構成多數(shù)最常用的HTML對象。附錄A包括根據(jù)本發(fā)明的一個實施例,用于構成輸入文本對象或輸入口令對象的例證函數(shù)。對于一個實施例,這樣的函數(shù)被包含在GMA中。
不是核心庫的一部分的其它函數(shù)可在一開始由服務器DPS傳送給客戶機DPS,并保存在瀏覽器高速緩沖存儲器上。例如,如圖3中所示,SMA370a-370c被保存在瀏覽器高速緩沖存儲器360。瀏覽器高速緩沖存儲器360還包括alpha微型匯編器(AMA)375,它是可包括對GMA或SMA的調(diào)用的表格專用函數(shù)。由于SMA和AMA不是核心庫的一部分,因此只有當編程語言包括對它們的調(diào)用時,才傳輸它們。
由于RDTE遠程應用的所有函數(shù)都保存在客戶機DPS瀏覽器高速緩沖存儲器,因此本發(fā)明避免了客戶機端安裝的缺陷。
下面更詳細地討論核心庫以及SMA和AMA的各個函數(shù)。
類屬微型匯編器作為核心庫的一部分的類屬微型匯編器(GMA)是提供小型函數(shù)的代碼庫,所述小型函數(shù)和參數(shù)一起允許客戶機DPS匯編常用對象(例如,文本,文本區(qū),復選框等)的HTML代碼。對于一個實施例,GMA參數(shù)產(chǎn)生特定頁的多數(shù)必需對象的必需HTML代碼。這減少了傳輸數(shù)據(jù)的數(shù)量,因為服務器不再必須傳送每個對象的所有HTML代碼。GMA還增加了用于下面進一步討論的確認過程的確認屬性(例如數(shù)據(jù)類型,所需字段等)。該過程在運行于客戶機上的相同環(huán)境內(nèi)發(fā)生,從而不必在客戶機上安裝新環(huán)境。另外或者另一方面,GMA可包含直接與文檔對象模塊(DOM)通信,從而在不產(chǎn)生HTML代碼的情況下在客戶機上產(chǎn)生對象的指令。這種情況下,服務器調(diào)用在GMA中定義的函數(shù)來產(chǎn)生特定對象。
專用微型匯編器GMA被設計成只包含產(chǎn)生最常用對象所需的函數(shù),于是,GMA不包含用于產(chǎn)生HTML代碼,從而產(chǎn)生特定表格所需的一些對象的參數(shù)。這只是因為該對象未被頻繁使用到足以包括在GMA中。即,為了傳送盡可能少的數(shù)據(jù),GMA必須只包含最基本的對象。對于這樣不太常用的對象,程序員可把對專用微型匯編器(SMA)的調(diào)用包括在RDTE遠程應用代碼中,并且依據(jù)用戶對表格的訪問,從服務器DPS傳送到客戶機DPS。SMA專用于未被頻繁使用到足以包括在GMA中的類屬對象。例如,用于產(chǎn)生日歷的參數(shù)可被指定一個SMA(即不包括在GMA中),因為并不是總是需要日歷。在一個實施例中,用于產(chǎn)生日歷的SMA約為4千字節(jié)。
只有當程序員已把對特定SMA的調(diào)用包括在編程邏輯中(例如包括在JSP中)時,即,只有當程序員確定特定表格需要該SMA時,客戶機DPS才請求SMA。在收到GMA之后,客戶機DPS確定當產(chǎn)生表格時需要什么對象,隨后向服務器申請所需的SMA。這有助于使核心庫的大小保持最小,并減少傳輸數(shù)據(jù)的數(shù)量。
Alpha微型匯編器Alpha微型匯編器(AMA)具有特定表格的靜態(tài)部分。AMA中的函數(shù)可包括對GMA中的函數(shù)(類屬對象)的調(diào)用,或者對SMA中的函數(shù)(專用對象)的調(diào)用。例如,AMA的函數(shù)可包括對文本元素或者對日歷(如果特定表格需要日歷)的調(diào)用。本發(fā)明的系統(tǒng)能夠在許多不同的環(huán)境(例如JSP、ASP等)上工作。于是,在服務器DPS上會不得不存在包含把專用AMA用于特定表格的編程邏輯的特定于環(huán)境的文檔,例如JSP或ASP文檔。AMA可手動生成或者通過使用集成編程環(huán)境(即集成開發(fā)環(huán)境(IDE))來生成。下面說明的deltalyzer函數(shù)允許把值插入AMA的靜態(tài)對象中。
Deltalvzers可采用附加機構來進一步減少所需的數(shù)據(jù)傳輸,稱為deltalyzing表格。產(chǎn)生表格的包含表格的所有靜態(tài)部分的AMA。一旦特定表格的這種AMA已被調(diào)用,并且駐留在客戶機DPS上,那么可從客戶機DPS瀏覽器高速緩沖存儲器訪問表格的靜態(tài)部分,從而服務器DPS不必重新傳輸該數(shù)據(jù)。當隨后使用該特定表格時,服務器DPS只傳送與特定AMA交互作用的動態(tài)數(shù)據(jù)。包含表格的靜態(tài)部分的AMA和與AMA交互作用的動態(tài)信息的這種組合被稱為deltalyzer。deltalyzer同樣可手動生成或者通過使用IDE來生成。
deltalyzer的思想是在靜態(tài)部分已被傳送、并且在客戶機DPS上可用的情況下,通過只發(fā)送交互式表格的動態(tài)部分,減少數(shù)據(jù)傳輸。動態(tài)結構可包括例如特定名稱,電話號碼,日期,和其它特定于實例的信息,而靜態(tài)結構包括該信息被置于表格內(nèi)的對象和字段。例如,用戶第一次訪問特定的事務表格時,服務器可傳送在客戶機DPS上高速緩存的該表格的AMA。服務器隨后傳送與特定AMA交互作用的動態(tài)信息。用戶下次調(diào)用相同表格時,客戶機DPS包含來自瀏覽器高速緩沖存儲器的靜態(tài)部分,只向服務器DPS申請?zhí)囟ū砀竦膭討B(tài)部分。于是,在服務器DPS上會不得不存在包含建立特定表格的專用AMA的邏輯的特定于環(huán)境的文檔。
過程圖4是圖解說明根據(jù)本發(fā)明的一個實施例的,其中客戶機DPS訪問并呈現(xiàn)RDTE遠程應用的過程的流程圖。在一個備選實施例中,可包括在客戶機DPS接收核心庫的初始操作。圖4中所示的過程400開始于操作405,在操作405,客戶機DPS向服務器DPS請求RDTE遠程應用表格。例如,客戶機可請求特定的事務型應用表格格。
在操作410,服務器DPS通過云把所請求表格的RDTE代碼傳送給客戶機DPS。由于該代碼將調(diào)用核心庫的函數(shù)以及適用的SMA和AMA,因此和典型的現(xiàn)有技術方案相比,傳輸?shù)拇a的數(shù)量相當小。該代碼通過可用帶寬經(jīng)由所述云被傳送,不過由于其大小被減小,因此它被更快地傳送,并且限制更少。當初始傳送的代碼被接收時,它被緩存在客戶機DPS web瀏覽器。
在操作415,客戶機DPS web瀏覽器開始解析并表現(xiàn)來自緩沖器的代碼。初始代碼包含鏈接核心庫與所述表格的請求。此時,如果核心庫還未被保存在客戶機DPS的瀏覽器高速緩沖存儲器中,那么瀏覽器會向服務器DPS請求核心庫。在調(diào)用核心庫時,核心庫被包含為緩沖器的一部分。如果表格包含SMA,那么初始代碼包含連接特定SMA和表格的請求,并且重復上面關于鏈接核心庫說明的過程。同樣地,如果表格被deltalyzed,那么初始代碼包含連接適用的AMA與表格的請求,并重復鏈接過程。
在操作420,瀏覽器繼續(xù)解析和表現(xiàn)代碼,并確定正在解析的指令是否包含對微型匯編器函數(shù)的調(diào)用。如果是,那么調(diào)用該函數(shù),并根據(jù)它已收到的參數(shù),該函數(shù)在客戶機DPS上產(chǎn)生對應的目標構成代碼(例如HTML代碼)。(不調(diào)用微型匯編器函數(shù)的指令由瀏覽器在操作421按照典型方式處理。)在操作425,微型匯編器產(chǎn)生的代碼被記錄為表格的一部分。即,對應于被調(diào)用函數(shù)的HTML代碼現(xiàn)在被包含為所請求的遠程應用表格的一部分。
在操作430,如果在緩沖器中存在更多代碼,那么如上所述解析和表現(xiàn)所述代碼,直到所有傳輸?shù)拇a都已被接收和處理為止。
在操作435,請求的表格被呈現(xiàn)在客戶機DPS上,用戶能夠在客戶機DPS的瀏覽器環(huán)境內(nèi)訪問和使用所請求的表格。
作為上面參考圖4說明的過程的結果,多數(shù)遠程應用表格處理在客戶機DPS完成,從而釋放了服務器DPS處理資源。
其它過程通過下面討論的微型匯編器和客戶機端確認過程(CSVP)的使用,數(shù)據(jù)傳輸要求被顯著減小。對于一些事務表格來說,與現(xiàn)有技術方案相比,所述減小可高達80-90%。通過提供一種機構,對于一些應用程序來說,傳輸數(shù)據(jù)的數(shù)量可被進一步減少,通過所述機構,客戶機DPS可在事務期間(例如在完成事務型應用表格格時)與服務器DS通信。本質(zhì)上,這種能力允許用戶把應用程序從批處理模式改變?yōu)椤傲奶臁蹦J健τ谝粋€實施例,通過使用“定步器”(PM)來實現(xiàn)這種功能。
定步器HTML幀允許程序員用多個視圖(例如獨立窗口或子窗口)呈現(xiàn)文檔。內(nèi)嵌幀元素(Iframe)允許程序員把HTML文件插入另一HTML文檔中。對于一個實施例,本發(fā)明的系統(tǒng)使用PM來實現(xiàn)隱藏式Iframe,所述隱藏式Iframe提供允許遠程應用按照“聊天”模式,而不是批處理模式操作的備選通信路徑。PM向GMA申請產(chǎn)生一個新的Iframe,該新的Iframe隨后可被用于請求服務器DPS,并接收響應,之后該新的Iframe可從DOM中清除。這些交互作用可以是時間觸發(fā)的(在特定的時間或持續(xù)時間觸發(fā)),用戶觸發(fā)的,或者特定動作觸發(fā)的。在一個實施例中,為了適應同步交互作用,產(chǎn)生一個請求隊列,以致當收到后續(xù)請求時,服務器DPS還沒有回答的請求不會被丟棄。這允許客戶機DPS通過服務器DPS更有效地與保存的數(shù)據(jù)交互作用。
對于本發(fā)明的一個實施例,微型匯編器可把一個或多個PM插入RDTE遠程應用表格內(nèi)。根據(jù)表格和數(shù)據(jù)交換的目的,以各種方式嵌入PM。例如,可以不同的方式嵌入PM,以便實現(xiàn)實時數(shù)據(jù)庫確認過程,減小數(shù)據(jù)傳輸?shù)乃⑿逻^程,除了其它之外還模擬標準的客戶機DPS保存過程。PM的使用允許與服務器DPS的無縫干預,從而提供改進的用戶交互作用。即,由于PM只允許數(shù)據(jù)被刷新,因此消除了由表格關閉和重新打開導致的現(xiàn)有技術的數(shù)據(jù)確認方案的打亂影響。
數(shù)據(jù)庫確認過程如上所述,PM可被用于確認用戶輸入數(shù)據(jù)被包含在后端數(shù)據(jù)庫內(nèi)。當用戶把數(shù)據(jù)輸入例如事務表格的特定字段時,PM使輸入的數(shù)據(jù)與給應用服務器的查詢數(shù)據(jù)庫并且確保輸入數(shù)據(jù)正確的請求一起被發(fā)送給服務器。只有包含在規(guī)定字段中的數(shù)據(jù)才從客戶機DPS被傳送給服務器DPS(即,不是像典型的現(xiàn)有技術方案中那樣傳送整頁)。當輸入時(即在事務期間),數(shù)據(jù)被發(fā)送給服務器。
圖5是圖解說明根據(jù)本發(fā)明的一個實施例的,其中通過后端數(shù)據(jù)庫,經(jīng)由服務器DPS確認用戶輸入數(shù)據(jù)的過程的流程圖。圖5中所示的過程開始于操作505,在操作505,客戶機DPS的用戶把要求數(shù)據(jù)庫確認的用戶輸入數(shù)據(jù)輸入該用戶已訪問的,并且呈現(xiàn)在客戶機DPS上的RDTE遠程應用表格的數(shù)據(jù)輸入字段中。例如,該數(shù)據(jù)可以是與特定客戶名稱相聯(lián)系的客戶標識數(shù)據(jù)(CID)。數(shù)據(jù)庫確認對用戶證實輸入的CID對應于所需的客戶。
在操作510,當用戶離開數(shù)據(jù)輸入字段時,“onChange”觸發(fā)器被激活。對于一個實施例,onChange觸發(fā)器由產(chǎn)生該字段的微型匯編器插入代碼中。onChange觸發(fā)器激活通過云把用戶輸入數(shù)據(jù)(例如CID)傳送給服務器DPS的對應數(shù)據(jù)庫確認PM。
在操作515,服務器DSP接收該申請。該申請由服務器DPS的web服務器/應用服務器接收。如果申請是關于標準接口文件,例如JSP文件的申請,那么服務器DSP從虛擬目錄取回JSP文件。JSP文件被取回并被傳送給小服務程序引擎。如果JSP先前未被例示,那么小服務程序引擎解析JSP文件,并產(chǎn)生小服務程序源代碼。小服務程序引擎隨后編譯該源代碼,并且例示該小服務程序。
在操作520,利用用戶輸入的數(shù)據(jù)(例如CID),查詢數(shù)據(jù)庫(例如客戶名稱數(shù)據(jù)庫)。
如果在操作520,查詢沒有根據(jù)用戶輸入數(shù)據(jù)返回任何有效的對應數(shù)據(jù)(例如客戶名稱),那么在操作525,服務器DPS通過PM把指示這種情況的少量代碼傳送給客戶機DPS作為答復。例如,代碼可指示用戶輸入的CID不對應于客戶名稱。對于一個實施例,代碼可激活顯示非對應信息的彈出式窗口。
在操作526,焦點被重新設置到數(shù)據(jù)輸入字段,并選擇數(shù)據(jù)。
如果在操作520,查詢返回有效數(shù)據(jù)(例如客戶名稱),那么在操作530,服務器DPS通過PM把包含有效數(shù)據(jù)(例如客戶名稱)的少量代碼傳送給客戶機DPS作為答復。
在操作535,客戶機DPS web瀏覽器接收答復,并把查詢的數(shù)據(jù)庫數(shù)據(jù)提供給用戶進行確認。對于一個實施例,代碼可激活顯示對應信息的彈出式窗口。例如,對應于輸入的CID的客戶名稱被輸入對應的查閱字段中,從而用戶能夠確認它是所需的客戶。
刷新過程對于一個實施例,本發(fā)明的系統(tǒng)提供實現(xiàn)減少傳輸數(shù)據(jù)的數(shù)量的遠程應用表格刷新過程的能力。PM被用于把指示最后刷新表格的時間的時間戳記和會話標識傳送給服務器DPS。服務器DPS隨后只傳送為調(diào)用構成在傳輸?shù)臅r間戳記之后的對象的微型匯編器而需要的代碼。如果不存在任何新的對象(即,在時間戳記之后),那么服務器為此發(fā)送一條消息。這樣,當刷新時,客戶機DPS不重新申請整個表格,從而與現(xiàn)有技術的刷新過程相比,顯著減少了數(shù)據(jù)傳輸量。
圖6是圖解說明根據(jù)本發(fā)明的一個實施例的,其中刷新RDTE遠程應用表格的過程的流程圖。圖6中所示的過程600開始于操作605,在操作605中,用戶啟動已被該用戶訪問、并且呈現(xiàn)在客戶機DPS上的RDTE遠程應用表格的刷新過程。例如,用戶可能正在訪問電子郵件表,并且可能正在啟動刷新過程以確定是否存在新郵件。刷新過程開始使用定步器把刷新請求傳送給服務器DPS。刷新請求包括會話標識和指示最后的刷新過程的時間(即自該最后時間以來,數(shù)據(jù)被確認為如當前一樣)的時間戳記。
在操作610,利用用戶標識和時間戳記查詢數(shù)據(jù)庫,確定從傳送的時間戳記時起,是否存在給特定用戶的刷新數(shù)據(jù)。
在操作615,如果不存在刷新數(shù)據(jù)(例如沒有新的電子郵件),那么服務器DPS傳送向客戶機DPS提供帶有該意思的消息的代碼。對于一個實施例,服務器DPS傳送的代碼在客戶機DPS上激活一個彈出式窗口,通知用戶不存在新的電子郵件。
在操作620,如果存在刷新數(shù)據(jù),那么服務器DPS只傳送包括刷新數(shù)據(jù)(例如新的電子郵件消息)的少量代碼。該代碼激活一個微型匯編器,導致刷新數(shù)據(jù)被加入到現(xiàn)有表格中(例如,新的電子郵件消息被加入到收件箱中)。
和現(xiàn)有技術相比,使用PM來確認數(shù)據(jù)顯著減少了傳送數(shù)據(jù)的數(shù)量,并且減少了提交表格時的等待時間,因為在提交表格之前,用戶輸入數(shù)據(jù)已被確認。PM的另一優(yōu)點在于減少了服務器DPS執(zhí)行的處理。
數(shù)據(jù)類型和字段完成確認過程各種微型匯編器可通過把觸發(fā)器插入到對象中,借助對象屬性(例如數(shù)據(jù)類型或所需字段屬性),實現(xiàn)數(shù)據(jù)傳輸減少過程。這樣的觸發(fā)器可被用于實現(xiàn)客戶機端用戶輸入數(shù)據(jù)類型和所需字段完成確認,以及提供減少數(shù)據(jù)傳輸?shù)乃⑿逻^程,如下所述。對于一個實施例,與現(xiàn)有技術方案的包括整個確認腳本相反,本發(fā)明的系統(tǒng)提供通過對象屬性,實現(xiàn)減少數(shù)據(jù)傳輸?shù)拇_認過程的能力。確認過程允許用戶在把表格傳送給服務器DPS之前,核實用戶輸入數(shù)據(jù)有效和所需字段完成。對于一個實施例,確認過程在表格完成期間確認用戶數(shù)據(jù)輸入,并在提交表格時確認所需字段完成。實現(xiàn)這樣的確認過程避免了現(xiàn)有技術方案的過多數(shù)據(jù)傳輸,現(xiàn)有技術方案的數(shù)據(jù)傳輸量可相當于在無數(shù)據(jù)確認情況下,遠程應用的數(shù)據(jù)傳輸數(shù)量的2-3倍。
圖7是圖解說明根據(jù)本發(fā)明的一個實施例的、其中在客戶機DPS完成用戶數(shù)據(jù)輸入類型確認和字段完成確認的過程的流程圖。圖7中所示的過程開始于操作705,在操作705,客戶機DPS的用戶把用戶輸入數(shù)據(jù)輸入該用戶已訪問的、并且呈現(xiàn)在客戶機DPS上的RDTE遠程應用表格的數(shù)據(jù)輸入字段中。
在操作710,當用戶離開數(shù)據(jù)輸入字段時,“onChange”觸發(fā)器被激活。對于一個實施例,onChange觸發(fā)器由產(chǎn)生該字段的微型匯編器插入代碼中。onChange觸發(fā)器激活包含在RDTE核心庫中的數(shù)據(jù)類型確認函數(shù)。
在操作715,確認函數(shù)比較輸入數(shù)據(jù)輸入字段的用戶輸入數(shù)據(jù)的類型與RDTE數(shù)據(jù)類型屬性定義的有效數(shù)據(jù)類型。對于一個實施例,數(shù)據(jù)類型屬性由產(chǎn)生該字段的微型匯編器插入代碼中。
在操作716,如果用戶輸入數(shù)據(jù)的數(shù)據(jù)類型與數(shù)據(jù)類型屬性定義的數(shù)據(jù)類型不相符,那么代碼提供用戶輸入數(shù)據(jù)類型不正確的指示符。隨后重新聚焦于該數(shù)據(jù)輸入字段并選擇數(shù)據(jù)。對于一個實施例,無效數(shù)據(jù)指示符被實現(xiàn)成客戶機DPS上的彈出式窗口。
在操作717,如果用戶輸入數(shù)據(jù)的數(shù)據(jù)類型與數(shù)據(jù)類型屬性定義的數(shù)據(jù)類型相符,那么聚焦于下一數(shù)據(jù)輸入字段(如果有的話),根據(jù)需要,對所有數(shù)據(jù)輸入字段不斷重復數(shù)據(jù)類型確認的過程。
在操作720,在最后的數(shù)據(jù)輸入字段已被確認之后,用戶提交該表格。所述提交激活onSubmit觸發(fā)器,onSubmit觸發(fā)器激活包含在RDTE核心庫中的所需字段完成確認過程。對于一個實施例,onSubmit觸發(fā)器由產(chǎn)生RDTE遠程應用表格的微型匯編器插入代碼中。
在操作725,所需字段確認過程從RDTE遠程應用表格的第一數(shù)據(jù)輸入字段開始,并確定該字段是否需要數(shù)據(jù)輸入。對于一個實施例,通過參考當微型匯編器產(chǎn)生該HTML對象時,插入該對象中的所需字段屬性進行所述確定。
在操作726,如果不需要該字段,那么過程繼續(xù)處理下一數(shù)據(jù)輸入字段。
在操作730,如果需要該字段,那么所需字段確認過程確定該字段是否已被填寫。所需字段完成確認過程包含在核心庫中。如果該所需字段未被填寫,那么取消提交過程,代碼提供所需字段還未被填寫的指示符。對于一個實施例,未完成的所需字段指示符被實現(xiàn)成客戶機DPS上的彈出式窗口。
在操作731,隨后聚焦于未被填寫的所需字段。重復確定所需字段和它們是否已被填寫的過程,直到完成所有所需字段為止。
在操作732,如果所需的數(shù)據(jù)輸入字段完成,那么確定是否存在要確認的其它字段。
在操作735,RDTE遠程應用表格通過云從客戶機DPS被提交給服務器DPS。由于已關于用戶輸入數(shù)據(jù)類型和所需字段完成對數(shù)據(jù)進行了確認,因此不必如同現(xiàn)有技術系統(tǒng)中通常的那樣重復提交過程。
一般事項本發(fā)明的實施例可用于減少遠程應用的在服務器DPS和客戶機DPS之間輸送的所需數(shù)據(jù)的數(shù)量,同時保持全部功能。對于一個實施例,當客戶機訪問遠程應用時,服務器DPS傳送函數(shù)的核心庫,稱為GMA的一組函數(shù)隨后被用于在客戶機DPS上,而不是在服務器DPS上構成類屬對象。函數(shù)包含關于對象的物理特性的信息,以及關于要構成的對象的數(shù)據(jù)類型的元數(shù)據(jù)。對于一個實施例,核心庫和各種其它微型匯編器被保存在客戶機DPS的瀏覽器高速緩沖存儲器上。由于不存在任何安裝,因此這種實施例的方法避免了破壞客戶機DPS安全性,并且不是特定于系統(tǒng)的。
此外,如圖3中所示,核心庫還包括用戶接口函數(shù)。這些函數(shù)允許以和現(xiàn)有技術的典型方案相比,更加用戶友好的格式呈現(xiàn)遠程應用表格。例如,為了打開一個表現(xiàn)對象(例如窗口),現(xiàn)有技術的方案可能需要多達40行的代碼。這限制了程序員的為遠程應用提供用戶友好的觀感的能力。本發(fā)明的系統(tǒng)和方法在這方面提供更大的靈活性。用戶接口函數(shù)包含用于調(diào)用各種HTML表現(xiàn)對象的少量代碼。這允許程序員包括用戶友好的“外觀和感覺”,而不會顯著增大傳送數(shù)據(jù)的數(shù)量。
根據(jù)本發(fā)明的各個實施例的系統(tǒng)和方法為用戶交互式遠程應用提供顯著的帶寬減少,但是并不局限于此,通??杀粦糜谌魏芜h程數(shù)據(jù)訪問。
圖8圖解說明根據(jù)本發(fā)明的一個實施例,可用于服務器DPS200,或者客戶機DPS205a-205d的數(shù)字處理系統(tǒng)的一個實施例。對于本發(fā)明的備選實施例,處理系統(tǒng)801可以是包括與總線807耦接的處理器803的計算機或者機頂盒。在一個實施例中,存儲器805,存儲器811,顯示控制器809,通信接口813和輸入/輸出控制器815也與總線807耦接。
處理系統(tǒng)801通過通信接口813與外部系統(tǒng)連接。通信接口813可包括模擬調(diào)制解調(diào)器,綜合業(yè)務數(shù)字網(wǎng)(ISDN)調(diào)制解調(diào)器,電纜調(diào)制解調(diào)器,數(shù)字用戶線(DSL)調(diào)制解調(diào)器,T-1線接口,T-3線接口,光載波接口(例如OC-3),權標環(huán)網(wǎng)接口,衛(wèi)星傳輸接口,無線接口或耦接某一設備與其它設備的其它接口。通信接口813還可包括無線電收發(fā)器或者無線電話信號等。
對于本發(fā)明的一個實施例,在通信接口813和云830之間接收/發(fā)射通信信號825。在本發(fā)明的一個實施例中,通信信號25可被用于連接處理系統(tǒng)801與另一計算機系統(tǒng),網(wǎng)絡集線器,路由器等。在本發(fā)明的一個實施例中,通信信號825被認為是機器可讀信號,它可通過電線,電纜,光纖,或者通過大氣等被傳輸。
在本發(fā)明的一個實施例中,處理器803可以是常規(guī)微處理器,例如(但不限于)Intel x86或Pentium系微處理器,Motorola系微處理器等。存儲器805可以是機器可讀介質(zhì),例如動態(tài)隨機存取存儲器(DRAM),并且可以包括靜態(tài)隨機存取存儲器(SRAM)。顯示控制器809按照常規(guī)方式控制顯示器819,在本發(fā)明的一個實施例中,顯示器819可以是陰極射線管(CRT),液晶顯示器(LCD),有源矩陣顯示器,電視監(jiān)視器等。與輸入/輸出控制器815耦接的輸入/輸出裝置817可以是鍵盤,磁盤驅(qū)動器,打印機,掃描儀和其它輸入和輸出裝置,包括鼠標,跟蹤球,軌跡板等。
存儲器811可包括機器可讀介質(zhì),例如(但不限于)硬盤,軟盤,光盤,智能卡或另一形式的數(shù)據(jù)存儲器。在本發(fā)明的一個實施例中,存儲器811可包括可拆卸介質(zhì),只讀介質(zhì),可讀/可寫介質(zhì)等。一些數(shù)據(jù)可在計算機系統(tǒng)801中的軟件執(zhí)行期間,由直接存儲器存取過程寫入存儲器805。軟件可駐留在存儲器811、存儲器805中,或者可通過調(diào)制解調(diào)器或通信接口813傳送或接收。對本說明書來說,術語“機器可讀介質(zhì)”應被理解為包括能夠保存數(shù)據(jù)、信息、或者對由處理器803執(zhí)行的指令序列編碼,從而實現(xiàn)本發(fā)明的方法的任何介質(zhì)。術語“機器可讀介質(zhì)”應被理解為包括(但不限于)固態(tài)存儲器、光盤和磁盤、載波信號等。
本發(fā)明包括各種操作。本發(fā)明的操作可由硬件組件執(zhí)行,或者可用如上所述的機器可執(zhí)行指令具體體現(xiàn)。另一方面,步驟可由硬件和軟件的組合實現(xiàn)??梢园ㄓ嬎銠C可讀介質(zhì)的計算機程序產(chǎn)品的形式提供本發(fā)明,計算機可讀介質(zhì)保存有可被用于對計算機(或者其它電子設備)編程、從而實現(xiàn)如上所述的根據(jù)本發(fā)明的過程的指令。
雖然利用幾個實施例說明了本發(fā)明,不過本領域的技術人員會認識到本發(fā)明并不局限于說明的實施例,相反在所附權利要求的精神和范圍內(nèi)可做出各種修改和改變。從而,上面的說明應被看作是對本發(fā)明的舉例說明,而不是對本發(fā)明的限制。
附錄A/*functions for creating the″input text″or″input password″*/function CT(a,b,e){DW(NB(1)+b[2]+′<input′+(IB(e)?B″type=password″)+CL(b[7])+I(a)+(LL(d[1])?PO(d[1],c[1])B)+INB(′I=″′,b[2],″″)+RQ(b[3])+′size=′+b[4]*(b[4]<=20?1NT)+INB(′maxlength=″′,b[5],″″)+′t=′+b[6]+′′+VAL(b[6],b[8],b[9])+′>′);}function PO(a,b,c,d){return((a?。健濉鍇|b?。健濉??′STYLE=″position′+(IB(c)?′absolute;′′relative;′)+(INB(′left′,a,′px;′)+INB(′top′,b,′px;′)+RB(d)+″″)IB(d)?′STYLE=″positiionrelative″′′STYLE=″positionrelative;′+d+″″);}function CL(a){return INB(″class=\″″,a,″\″″)}function VAL(a,b,c){varr,if(LL(a)){r=′onfocus=″if(Y(this.V)==\′undefined\′)this.V=T″onchange=″W.C=T;this.V=VLT(this,\″+a+′\′,F(xiàn));′+B;if(LL(b))r+=F)((this.V)?′+b+′\′\′)′;r+=′″onblur=″if(this.V==F){this.focus();this.select();}″′}elser=′onchange=″W.C=T;′+RB(b)+′;return r}/*code for creating a text input*/CT(″13″,″10 90 NameT 15 15 4″,″″,″i97″);
權利要求
1.一種方法,包括在客戶機數(shù)字處理系統(tǒng)(DPS)接收用于鏈接一個或多個函數(shù)到遠程應用的第一代碼,每個函數(shù)包含產(chǎn)生對象構成代碼從而產(chǎn)生對應對象的指令代碼,和一組對象參數(shù);使所述一個或多個函數(shù)與遠程應用表格鏈接;接收第二代碼以調(diào)用一個或多個函數(shù);調(diào)用一個或多個函數(shù),從而在客戶機DPS構成一個或多個對象;和根據(jù)對象參數(shù),呈現(xiàn)構成的一個或多個對象作為遠程應用表格的一部分。
2.按照權利要求1所述的方法,還包括把所述一個或多個函數(shù)接收到客戶機DPS的先行步驟。
3.按照權利要求1所述的方法,其中在web瀏覽器執(zhí)行接收、鏈接和調(diào)用操作。
4.按照權利要求3所述的方法,其中所述一個或多個函數(shù)、第一代碼和第二代碼被保存在web瀏覽器的高速緩沖存儲器中。
5.按照權利要求1所述的方法,其中指令代碼是指示腳本引擎產(chǎn)生HTML代碼,從而構成對象的腳本語言。
6.按照權利要求1所述的方法,其中所述一個或多個函數(shù)、第一代碼和第二代碼通過云從服務器DPS傳送給客戶機DPS。
7.按照權利要求6所述的方法,其中所述云是選自因特網(wǎng)、企業(yè)內(nèi)聯(lián)網(wǎng)、企業(yè)外部網(wǎng)、局域網(wǎng)、廣域網(wǎng)和它們的組合的通信路徑。
8.按照權利要求7所述的方法,其中通過選自模擬接口、數(shù)字接口、光載波接口、ISDN、DSL、衛(wèi)星接口、無線電收發(fā)器、無線接口和它們的組合的通信接口傳送所述一個或多個函數(shù)、第一代碼和第二代碼。
9.按照權利要求1所述的方法,其中所述一個或多個函數(shù)包括具有構成類屬對象的指令代碼的函數(shù)子集。
10.按照權利要求1所述的方法,其中所述一個或多個函數(shù)包括具有構成專用對象的指令代碼的函數(shù)子集。
11.按照權利要求1所述的方法,其中所述一個或多個函數(shù)包括具有構成遠程應用表格的靜態(tài)對象的指令代碼的函數(shù),以致遠程應用表格的后續(xù)使用只需要與靜態(tài)對象交互作用的動態(tài)數(shù)據(jù)。
12.按照權利要求1所述的方法,還包括把數(shù)據(jù)輸入遠程應用表格的數(shù)據(jù)輸入字段中,所述數(shù)據(jù)輸入字段由函數(shù)之一產(chǎn)生,函數(shù)的對象參數(shù)包括規(guī)定數(shù)據(jù)輸入字段的有效數(shù)據(jù)類型的確認屬性;和使用確認屬性和數(shù)據(jù)的屬性來確定數(shù)據(jù)是否有效。
13.按照權利要求12所述的方法,還包括根據(jù)所述確定,提供數(shù)據(jù)有效性的指示。
14.按照權利要求1所述的方法,還包括使用遠程應用表格的數(shù)據(jù)輸入字段的所需輸入屬性來確定該數(shù)據(jù)輸入字段需要數(shù)據(jù)輸入,所述數(shù)據(jù)輸入字段由函數(shù)之一產(chǎn)生,函數(shù)的對象參數(shù)包括所需輸入屬性;和確定數(shù)據(jù)還未被輸入該數(shù)據(jù)輸入字段。
15.還按照權利要求14所述的方法,還包括接收所需數(shù)據(jù)輸入字段未完成的指示;把數(shù)據(jù)輸入所述數(shù)據(jù)輸入字段;確定數(shù)據(jù)已被輸入所述數(shù)據(jù)輸入字段;和把遠程應用表格提交給服務器DPS。
16.一種方法,包括提供將一個或多個函數(shù)鏈接到遠程應用的第一代碼,每個函數(shù)包含在客戶機DPS產(chǎn)生對象構成代碼從而產(chǎn)生對應對象的指令代碼,和一組對象參數(shù);提供第二代碼以調(diào)用一個或多個函數(shù),以致可使一個或多個對象與遠程應用表格鏈接,一個或多個函數(shù)可被調(diào)用,從而構成一個或多個對象,根據(jù)對象參數(shù),呈現(xiàn)構成的一個或多個對象作為遠程應用表格的一部分。
17.按照權利要求16所述的方法,還包括向客戶機DPS提供所述一個或多個函數(shù)的先行步驟。
18.按照權利要求16所述的方法,其中指令代碼是指示腳本引擎產(chǎn)生HTML代碼從而構成對象的腳本語言。
19.按照權利要求16所述的方法,其中所述一個或多個函數(shù)、第一代碼和第二代碼通過選自因特網(wǎng)、企業(yè)內(nèi)聯(lián)網(wǎng)、企業(yè)外部網(wǎng)、局域網(wǎng)、廣域網(wǎng)和它們的組合的通信路徑從服務器DPS傳送給客戶機DPS。
20.按照權利要求19所述的方法,其中通過選自模擬接口、數(shù)字接口、光載波接口、ISDN、DSL、衛(wèi)星接口、無線電收發(fā)器、無線電話機和它們的組合的通信接口傳送所述一個或多個函數(shù)、第一代碼和第二代碼。
21.按照權利要求16所述的方法,其中所述一個或多個函數(shù)包括具有構成類屬對象的指令代碼的函數(shù)子集。
22.按照權利要求16所述的方法,其中所述一個或多個函數(shù)包括具有構成專用對象的指令代碼的函數(shù)子集。
23.按照權利要求16所述的方法,其中所述一個或多個函數(shù)包括具有構成遠程應用表格的靜態(tài)對象的指令代碼的函數(shù),以致遠程應用表格的后續(xù)使用只需要與靜態(tài)對象交互作用的動態(tài)數(shù)據(jù)。
24.一種方法,包括在客戶機DPS和服務器DPS之間建立至少兩個通信路徑;通過所述至少兩個通信路徑中的第一通信路徑,從客戶機DPS訪問遠程應用表格;把數(shù)據(jù)輸入遠程應用的數(shù)據(jù)輸入字段;通過所述至少兩個通信路徑中的第二通信路徑,把輸入的數(shù)據(jù)和對應的數(shù)據(jù)庫查詢從客戶機DPS傳送給服務器DPS;在服務器DPS確定傳送的數(shù)據(jù)是否有效;和把有效性指示符從服務器DPS傳送給客戶機DPS。
25.按照權利要求24所述的方法,其中確定傳送的數(shù)據(jù)是否有效包括比較傳送的數(shù)據(jù)和保存的數(shù)據(jù)。
26.按照權利要求24所述的方法,其中實現(xiàn)申請隊列,以便容納多個同步申請。
27.一種提供可執(zhí)行指令的機器可讀介質(zhì),當被處理器執(zhí)行時,所述可執(zhí)行指令使處理器執(zhí)行包括下述操作的方法在客戶機DPS接收將一個或多個函數(shù)鏈接到遠程應用的第一代碼,每個函數(shù)包含產(chǎn)生對象構成代碼從而產(chǎn)生對應對象的指令代碼,和一組對象參數(shù);使所述一個或多個函數(shù)與遠程應用表格鏈接;接收第二代碼以調(diào)用一個或多個函數(shù);調(diào)用一個或多個函數(shù),從而在客戶機DPS構成一個或多個對象;和根據(jù)對象參數(shù),呈現(xiàn)構成的一個或多個對象作為遠程應用表格的一部分。
28.按照權利要求27所述的機器可讀介質(zhì),還包括把所述一個或多個函數(shù)接收到客戶機DPS的先行操作。
29.按照權利要求27所述的機器可讀介質(zhì),其中在web瀏覽器執(zhí)行接收、鏈接和調(diào)用操作。
30.按照權利要求29所述的機器可讀介質(zhì),其中所述一個或多個函數(shù)、第一代碼和第二代碼被保存在web瀏覽器的高速緩沖存儲器中。
31.按照權利要求27所述的機器可讀介質(zhì),其中指令代碼是指示腳本引擎產(chǎn)生HTML代碼從而構成對象的腳本語言。
32.按照權利要求27所述的機器可讀介質(zhì),其中所述一個或多個函數(shù)、第一代碼和第二代碼通過云從服務器DPS傳送給客戶機DPS。
33.按照權利要求32所述的機器可讀介質(zhì),其中所述云是選自因特網(wǎng)、企業(yè)內(nèi)聯(lián)網(wǎng)、企業(yè)外部網(wǎng)、局域網(wǎng)、廣域網(wǎng)和它們的組合的通信路徑。
34.按照權利要求33所述的機器可讀介質(zhì),其中通過選自模擬接口、數(shù)字接口、光載波接口、ISDN、DSL、衛(wèi)星接口、無線電收發(fā)器、無線接口和它們的組合的通信接口傳送所述一個或多個函數(shù)、第一代碼和第二代碼。
35.按照權利要求27所述的機器可讀介質(zhì),其中所述一個或多個函數(shù)包括具有構成類屬對象的指令代碼的函數(shù)子集。
36.按照權利要求27所述的機器可讀介質(zhì),其中所述一個或多個函數(shù)包括具有構成專用對象的指令代碼的函數(shù)子集。
37.按照權利要求27所述的機器可讀介質(zhì),其中所述一個或多個函數(shù)包括具有構成遠程應用表格的靜態(tài)對象的指令代碼的函數(shù),以致遠程應用表格的后續(xù)使用只需要與靜態(tài)對象交互作用的動態(tài)數(shù)據(jù)。
38.按照權利要求27所述的機器可讀介質(zhì),還包括把數(shù)據(jù)輸入遠程應用表格的數(shù)據(jù)輸入字段中,所述數(shù)據(jù)輸入字段由函數(shù)之一產(chǎn)生,函數(shù)的對象參數(shù)包括規(guī)定數(shù)據(jù)輸入字段的有效數(shù)據(jù)類型的確認屬性;和使用確認屬性和數(shù)據(jù)的屬性來確定數(shù)據(jù)是否有效。
39.按照權利要求38所述的機器可讀介質(zhì),還包括根據(jù)所述確定,提供數(shù)據(jù)有效性的指示。
40.按照權利要求27所述的機器可讀介質(zhì),還包括使用遠程應用表格的數(shù)據(jù)輸入字段的所需輸入屬性來確定該數(shù)據(jù)輸入字段需要數(shù)據(jù)輸入,所述數(shù)據(jù)輸入字段由函數(shù)之一產(chǎn)生,函數(shù)的對象參數(shù)包括所需輸入屬性;和確定數(shù)據(jù)還未被輸入該數(shù)據(jù)輸入字段。
41.還按照權利要求40所述的機器可讀介質(zhì),還包括接收所需數(shù)據(jù)輸入字段未完成的指示;把數(shù)據(jù)輸入所述數(shù)據(jù)輸入字段;確定數(shù)據(jù)已被輸入所述數(shù)據(jù)輸入字段;和把遠程應用表格提交給服務器DPS。
42.一種提供可執(zhí)行指令的機器可讀介質(zhì),當被處理器執(zhí)行時,所述可執(zhí)行指令使處理器執(zhí)行包括下述操作的方法在客戶機DPS和服務器DPS之間建立至少兩個通信路徑;通過所述至少兩個通信路徑中的第一通信路徑,從客戶機DPS訪問遠程應用表格;把數(shù)據(jù)輸入遠程應用的數(shù)據(jù)輸入字段;通過所述至少兩個通信路徑中的第二通信路徑,把輸入的數(shù)據(jù)和對應的數(shù)據(jù)庫查詢從客戶機DPS傳送給服務器DPS;在服務器DPS確定傳送的數(shù)據(jù)是否有效;和把有效性指示符從服務器DPS傳送給客戶機DPS。
43.按照權利要求42所述的機器可讀介質(zhì),其中確定傳送的數(shù)據(jù)是否有效包括比較傳送的數(shù)據(jù)和保存的數(shù)據(jù)。
44.按照權利要求42所述的機器可讀介質(zhì),其中實現(xiàn)申請隊列,以便容納多個同步申請。
45.一種系統(tǒng),包括一個服務器DPS,提供將一個或多個函數(shù)鏈接到一個遠程應用的第一代碼,每個函數(shù)包含在客戶機DPS產(chǎn)生對象構成代碼從而產(chǎn)生對應對象的指令代碼,和一組對象參數(shù),以及提供一個第二代碼以調(diào)用一個或多個函數(shù);和一個客戶機DPS,接收第一代碼,使所述一個或多個函數(shù)與遠程應用表格鏈接,接收第二代碼,調(diào)用一個或多個函數(shù)從而在客戶機DPS構成一個或多個對象,并根據(jù)對象參數(shù),呈現(xiàn)構成的一個或多個對象作為遠程應用表格的一部分。
46.按照權利要求45所述的系統(tǒng),其中服務器DPS向客戶機DPS提供所述一個或多個函數(shù)。
47.按照權利要求45所述的系統(tǒng),其中在web瀏覽器執(zhí)行接收、鏈接和調(diào)用操作。
48.按照權利要求45所述的系統(tǒng),其中所述一個或多個函數(shù)、第一代碼和第二代碼被保存在web瀏覽器的高速緩沖存儲器中。
49.按照權利要求45所述的系統(tǒng),其中指令代碼是指示腳本引擎產(chǎn)生HTML代碼從而構成對象的腳本語言。
50.按照權利要求45所述的系統(tǒng),其中所述一個或多個函數(shù)、第一代碼和第二代碼通過選自因特網(wǎng)、企業(yè)內(nèi)聯(lián)網(wǎng)、企業(yè)外部網(wǎng)、局域網(wǎng)、廣域網(wǎng)和它們的組合的通信路徑從服務器DPS傳送給客戶機DPS。
51.按照權利要求50所述的系統(tǒng),其中通過選自模擬接口、數(shù)字接口、光載波接口、ISDN、DSL、衛(wèi)星接口、無線電收發(fā)器、無線接口和它們的組合的通信接口傳送所述一個或多個函數(shù)、第一代碼和第二代碼。
52.按照權利要求45所述的系統(tǒng),其中所述一個或多個函數(shù)包括具有構成類屬對象的指令代碼的函數(shù)子集。
53.按照權利要求45所述的系統(tǒng),其中所述一個或多個函數(shù)包括具有構成專用對象的指令代碼的函數(shù)子集。
54.按照權利要求45所述的系統(tǒng),其中所述一個或多個函數(shù)包括具有構成遠程應用表格的靜態(tài)對象的指令代碼的函數(shù),以致遠程應用表格的后續(xù)使用只需要與靜態(tài)對象交互作用的動態(tài)數(shù)據(jù)。
55.一種系統(tǒng),包括一個服務器DPS,包括保存有遠程應用表格的存儲器;一個客戶機DPS,通過至少兩個通信路徑與服務器DPS耦接,從而客戶機DPS通過所述至少兩個通信路徑中的第一通信路徑訪問遠程應用表格,把數(shù)據(jù)輸入遠程應用的數(shù)據(jù)輸入字段,并通過所述至少兩個通信路徑中的第二通信路徑,把輸入的數(shù)據(jù)和對應的數(shù)據(jù)庫查詢傳送給服務器DPS。
56.按照權利要求55所述的系統(tǒng),其中服務器DPS確定傳送的數(shù)據(jù)是否有效,并把有效性指示符傳送給客戶機DPS。
57.按照權利要求56所述的系統(tǒng),還包括一個數(shù)據(jù)庫,以便確定傳送的數(shù)據(jù)是否有效包括比較傳送的數(shù)據(jù)和保存在數(shù)據(jù)庫的數(shù)據(jù)。
58.按照權利要求56所述的系統(tǒng),其中在客戶機DPS上實現(xiàn)申請隊列,以便容納多個同步申請。
全文摘要
一種減少遠程應用表格的傳輸代碼的方法和系統(tǒng)。在客戶機數(shù)字處理系統(tǒng)(DPS)接收使一個或多個函數(shù)與遠程應用鏈接的第一代碼。每個函數(shù)包含產(chǎn)生對象結構代碼的指令代碼和一組對象參數(shù)。對象結構代碼被用于產(chǎn)生對應的對象。使一個或多個函數(shù)與遠程應用表格鏈接。接收第二代碼以便調(diào)用一個或多個函數(shù)。一個或多個函數(shù)被調(diào)用,從而在客戶機DPS構成一個或多個對象。根據(jù)對象參數(shù),構成的一個或多個對象被呈現(xiàn)為遠程應用表格的一部分。
文檔編號H04J3/16GK1729461SQ200380107291
公開日2006年2月1日 申請日期2003年11月17日 優(yōu)先權日2002年11月18日
發(fā)明者雅各布·德里奇, 露易斯·德里奇 申請人:杰克比公司