專利名稱::用于在網(wǎng)絡(luò)中傳送動態(tài)信息的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種用于在網(wǎng)絡(luò)中傳送動態(tài)信息的方法和系統(tǒng)。
背景技術(shù):
:計算機網(wǎng)絡(luò)通常用來實現(xiàn)分布式數(shù)據(jù)處理系統(tǒng)。特別是因特網(wǎng)在最近幾年得到廣泛的普及。因特網(wǎng)是以分散設(shè)計連接數(shù)百萬臺計算機的網(wǎng)絡(luò)之網(wǎng)。因特網(wǎng)具有客戶端/服務(wù)器架構(gòu),其中,網(wǎng)絡(luò)的服務(wù)器計算機支持共享資源;客戶端計算機通過網(wǎng)絡(luò)訪問共享資源。因特網(wǎng)還允許各個客戶端計算機與服務(wù)器計算機動態(tài)交互,從而下載和顯示每次由服務(wù)器計算機提供時其內(nèi)容發(fā)生變化的信息。該功能典型地用于處理生成和分發(fā)由服務(wù)器計算機上的數(shù)據(jù)庫查詢產(chǎn)生的報表。一種本
技術(shù)領(lǐng)域:
內(nèi)公知的、用于在因特網(wǎng)中傳送動態(tài)信息的解決方案是運行例如設(shè)計成接受和返回遵循公共網(wǎng)關(guān)接口(CGI)的數(shù)據(jù)的程序,該程序響應(yīng)從客戶端計算機接收的相應(yīng)請求在服務(wù)器計算機上執(zhí)行特定任務(wù)。例如,CGI程序在服務(wù)器計算機的數(shù)據(jù)庫上執(zhí)行查詢;由查詢產(chǎn)生的每個記錄存儲到CGI程序的對應(yīng)變量中。通過讀取這些變量并且執(zhí)行適當(dāng)?shù)牟倏v,在服務(wù)器計算機上構(gòu)建報表。然后,將該報表發(fā)送到客戶端計算機以準(zhǔn)備進行顯示。上述解決方案的一個缺點是服務(wù)器計算機的數(shù)據(jù)庫所采用的數(shù)據(jù)模型通常不匹配可以由服務(wù)器計算機生成的所有報表,從而直接數(shù)據(jù)訪問是不可能的。換句話說,構(gòu)建報表的CGI程序不能直接查詢數(shù)據(jù)庫的單個表。相反,CGI程序必須查詢不同數(shù)據(jù)庫表,從而構(gòu)建要在報表中示出的單個行。這意味著需要動態(tài)存儲器分配過程來存儲CGI程序的對應(yīng)變量,因為由查詢產(chǎn)生的記錄數(shù)是不可預(yù)知的。因而,CGI程序的執(zhí)行易于因在服務(wù)器計算機上缺少存儲器分配而產(chǎn)生錯誤。而且,運行查詢并構(gòu)建報表的CGI程序是相當(dāng)復(fù)雜的。因此,該程序的執(zhí)行嚴重影響服務(wù)器計算機的性能。這一缺點在同時有大量復(fù)雜報表請求向其提交的高可用性(high-availability)服務(wù)器計算機中尤其尖銳。在這種情況下,服務(wù)器計算機上的資源的繁忙利用增加了其響應(yīng)時間,從而降慢了整個網(wǎng)絡(luò)的操作。
發(fā)明內(nèi)容本發(fā)明的一個目的是提高服務(wù)器計算機的可靠性。本發(fā)明的另一個目的是減少要在服務(wù)器計算機上分配和管理的存儲器量。本發(fā)明的另一個目的是避免服務(wù)器計算機上的任何動態(tài)存儲器分配過程。此外,本發(fā)明的一個目的是提高網(wǎng)絡(luò)的性能。本發(fā)明的另一個目的是減少服務(wù)器計算機的響應(yīng)時間。本發(fā)明的另一個目的是簡化響應(yīng)客戶端計算機所提交的每個請求而在服務(wù)器計算機上執(zhí)行的過程。這些和其他相關(guān)目的通過一種在網(wǎng)絡(luò)中傳送動態(tài)信息的方法來實現(xiàn),該方法包括以下步驟由客戶端計算機向網(wǎng)絡(luò)的服務(wù)器計算機請求動態(tài)信息,在服務(wù)器計算機的控制下檢索動態(tài)信息,在服務(wù)器計算機的控制下檢索用于動態(tài)信息的視圖模板,將動態(tài)信息和視圖模板從服務(wù)器計算機發(fā)送到客戶端計算機,并且在客戶端計算機的控制下組合動態(tài)信息與視圖模板,以根據(jù)視圖模板在客戶端計算機上顯示動態(tài)信息。本發(fā)明還提供一種用于執(zhí)行該方法的計算機程序應(yīng)用和存儲該應(yīng)用的產(chǎn)品。此外,本發(fā)明提供一種用于網(wǎng)絡(luò)中傳送動態(tài)信息的相應(yīng)系統(tǒng)。而且,本發(fā)明提供一種可直接裝載到網(wǎng)絡(luò)的服務(wù)器計算機的工作存儲器中的計算機程序,用于當(dāng)該程序在服務(wù)器計算機上運行時,執(zhí)行在網(wǎng)絡(luò)中傳送動態(tài)信息的方法。該方法包括以下步驟從網(wǎng)絡(luò)的客戶端計算機接收動態(tài)信息請求,檢索動態(tài)信息,檢索用于動態(tài)信息的視圖模板,將動態(tài)信息和視圖模板發(fā)送到客戶端計算機,以使客戶端計算機將動態(tài)信息與視圖模板相組合,從而根據(jù)視圖模板在客戶端計算機上顯示動態(tài)信息。最后,本發(fā)明提供一種存儲該程序的產(chǎn)品。被認為是本發(fā)明特征的新穎特性在所附權(quán)利要求中得到闡述。然而,通過參照下面結(jié)合附圖閱讀的詳細描述,本發(fā)明本身及其上述和其他相關(guān)目的和優(yōu)點將會得到更好的理解。圖1是其中可以使用本發(fā)明方法的數(shù)據(jù)處理系統(tǒng)的示意表示;圖2示出系統(tǒng)的客戶端計算機、服務(wù)器計算機和開發(fā)計算機的工作存儲器的部分內(nèi)容;圖3示出描述用于脫機生成靜態(tài)網(wǎng)頁和視圖模板的方法的邏輯的流程圖;以及圖4示出描述用于傳送動態(tài)信息的方法的邏輯的流程圖。具體實施例方式具體參照圖1,該圖示出了數(shù)據(jù)處理系統(tǒng)100。系統(tǒng)100包括網(wǎng)絡(luò)105,它可以具體地是因特網(wǎng)。因特網(wǎng)105由通過電信結(jié)構(gòu)相互連接的數(shù)百萬計算機形成。客戶端計算機110c通過因特網(wǎng)服務(wù)提供商或ISP(圖中未示出)訪問因特網(wǎng)105;訪問因特網(wǎng)105允許客戶端計算機110c的用戶交換信息、發(fā)送和接收電子郵件以及查看文檔。具體地說,服務(wù)器計算機110s的系統(tǒng)(萬維網(wǎng))管理稱作網(wǎng)頁的超文本文檔。每個網(wǎng)頁采用HTML來格式化,其中,HTML是一種支持到其他文檔的鏈接以及圖形、音頻和視頻文件的語言。萬維網(wǎng)(web)使用HTTP協(xié)議,該協(xié)議定義如何格式化和發(fā)送消息,以及響應(yīng)不同命令客戶端計算機110c和服務(wù)器計算機110s應(yīng)采取什么行動。因特網(wǎng)105的一般性服務(wù)器計算機110s通過局域網(wǎng)(LAN)112連接(couple)到對應(yīng)的開發(fā)計算機110d。典型地由個人計算機(PC)組成的各客戶端計算機110c由并行連接到通信總線115c的若干單元形成。詳細地說,微處理器(mP)120c控制客戶端計算機110c的操作。典型地為DRAM(動態(tài)隨機存取存儲器)的工作存儲器125由微處理器120c直接使用,并且只讀存儲器(ROM)130c存儲用于引導(dǎo)客戶端計算機110c的基本程序。另外,若干外圍單元(通過各自接口)也連接到總線115c。具體地說,大容量存儲器由磁性硬盤135c和用于讀取CD-ROM145c的驅(qū)動器140c組成。而且,客戶端計算機110c包括輸入單元(IN)150c(例如,由鍵盤和鼠標(biāo)組成)以及輸出單元(OUT)155c(例如,由監(jiān)視器和打印機組成)。調(diào)制解調(diào)器160c用來將客戶端計算機110c連接到因特網(wǎng)105。各服務(wù)器計算機110s(例如由微型計算機組成)同樣由總線115s、多個微處理器120s、DRAM125s以及ROM130s形成;服務(wù)器計算機110s還包括硬盤135s、用于CD-ROM145s的驅(qū)動器140s、輸入單元150s以及輸出單元155c。調(diào)制解調(diào)器160s將服務(wù)器計算機110s連接到因特網(wǎng)105,而網(wǎng)絡(luò)接口卡(NIC)165s用來將服務(wù)器計算機110s插入到LAN112中。對于開發(fā)計算機110d,也采用了類似結(jié)構(gòu)。具體地說,開發(fā)計算機110d包括總線115d、多個微處理器120d、DRAM125d、ROM130d、硬盤135d、用于CD-ROM145d的驅(qū)動器140d、輸入單元150d、輸出單元155d以及NIC165d。如果采用不同網(wǎng)絡(luò)(如內(nèi)部網(wǎng)),如果各客戶端計算機、服務(wù)器計算機和開發(fā)計算機具有不同結(jié)構(gòu)(例如用網(wǎng)絡(luò)計算機或web電視系統(tǒng)替代PC),如果計算機包括不同單元(如掃描儀或網(wǎng)絡(luò)攝像頭(webcam)),如果服務(wù)器計算機以不同方式連接到開發(fā)計算機(例如通過點到點連接),如果服務(wù)器計算機和開發(fā)計算機由單個系統(tǒng)的不同邏輯分區(qū)組成等等,類似的考慮都同樣適用?,F(xiàn)在考慮圖2,該圖分別示出客戶端計算機、服務(wù)器計算機和開發(fā)計算機的工作存儲器125c、125s以及125d的部分內(nèi)容。信息(程序和數(shù)據(jù))典型地存儲在各自的硬盤上,并且當(dāng)程序正在運行時與操作系統(tǒng)和其他應(yīng)用程序(圖中未示出)一起(至少部分)裝載到工作存儲器中。這些程序最初從CD-ROM安裝到硬盤上。具體考慮客戶端計算機,輸入接口(IN)205常駐在其工作存儲器125中,輸入接口205用于由客戶端計算機的用戶(用鍵盤和鼠標(biāo))輸入數(shù)據(jù)和/或命令。輸入接口205連接到允許用戶通過因特網(wǎng)沖浪的瀏覽器210,從而定位和顯示網(wǎng)頁。插件模塊(plug-inmodule)212使得瀏覽器210能夠解釋用JavaScript(Java腳本)語言編寫的指令。瀏覽器210通過接口直接與客戶端計算機的監(jiān)視器的輸出緩沖區(qū)(OUT)125連接。服務(wù)器計算機的工作存儲器125s包括web服務(wù)器模塊220,它執(zhí)行由各客戶端計算機提交的命令,并且傳送相應(yīng)網(wǎng)頁。web服務(wù)器模塊220訪問靜態(tài)網(wǎng)頁225的倉庫(repository);每個網(wǎng)頁均由在請求時由web服務(wù)器模塊220提取的HTML文檔構(gòu)成。web服務(wù)器還控制腳本230的執(zhí)行,其中每個腳本由一個CGI程序構(gòu)成。CGI程序230訪問用于動態(tài)網(wǎng)頁的視圖模板235的倉庫。每個視圖模板235由帶首標(biāo)(header)和主體(body)的HTML文檔組成。首標(biāo)包括帶有聲明一系列腳本對象的指令的腳本,主體包括用于顯示與腳本對象的不同實例相關(guān)聯(lián)的腳本變量的一系列置標(biāo)標(biāo)記。發(fā)布(publishing)模板240控制網(wǎng)頁225和視圖模板235的更新。CGI程序230在數(shù)據(jù)庫250上運行查詢,從而檢索客戶端計算機的用戶所請求的動態(tài)信息。輸出緩沖區(qū)用于將由CGI程序構(gòu)建的網(wǎng)頁253提供給web服務(wù)器模塊220。各網(wǎng)頁253是從相應(yīng)的視圖模板235通過插入一系列語句到其首標(biāo)而獲得的;每條語句將從數(shù)據(jù)庫提取的記錄(或字段)的值賦給相應(yīng)的腳本變量。下面的代碼提供如上所述從相應(yīng)的視圖模板構(gòu)建的網(wǎng)頁的簡單例子<html><head><title>數(shù)據(jù)-視圖測試</title></head><body><!__******************數(shù)據(jù)部分********************__><SCRIPTlanguage=″JavaScript″>//構(gòu)造函數(shù)functionTableObj(msg1,msg2){//初始化this.msg1=msg1;this.msg2=msg2;}varTableVar=newTableObj(″Text1″,″Text2″);</SCRIPT><!__******************視圖部分********************__>TableView<tableborder=1><tr><td>Rowl</td><td><script>document.write(Table1.msg1);</script></td></tr><tr><td>Row2</td><td><script>document.write(Table1.msg2);</script></td></tr></table></body></html>HTML文檔以<html>標(biāo)記開頭并且以</html>標(biāo)記結(jié)尾。網(wǎng)頁說明(數(shù)據(jù)-視圖測試)置于<head>和</head>標(biāo)記之間。要包含在網(wǎng)頁中的所有信息置于<body>和</body>標(biāo)記之間。HTML文檔具有一個數(shù)據(jù)部分,它以標(biāo)識用JavaScript語言編寫的腳本的標(biāo)記開頭。該腳本包括由一個具有兩行的表組成的對象TableObj的定義。然后聲明這個對象的變量TableVar,并且將由數(shù)據(jù)庫上的查詢產(chǎn)生的動態(tài)信息賦給該變量。在本例中,查詢結(jié)果由文字“Text1”和“Text2”組成,它們分別賦給變量TableVar的第一和第二行。腳本以</SCRIPT>標(biāo)記結(jié)尾。HTML文檔還包括一個視圖部分(以相應(yīng)的注釋行開始)。在<tableborder=1>和</table>標(biāo)記之間定義一個表。表的一個新行以<tr>標(biāo)記開頭。<td>和</td>標(biāo)記表示要置于一行的每個單元格中的一段信息。在本例中,表的第一行包括文字“Row1”和document.writeJavaScript命令的結(jié)果即文字“Text1”。行定義以</tr>標(biāo)記結(jié)尾。以類似的方式,表的第二行由文字“Row2”和“Text2”組成。當(dāng)將HMTL文檔發(fā)送到客戶端計算機時,瀏覽器解釋HTML標(biāo)記。結(jié)果,在客戶端計算機上顯示一個帶有從服務(wù)器計算機的數(shù)據(jù)庫檢索的動態(tài)信息的表??蛻舳擞嬎銠C上的網(wǎng)頁顯示因而分成兩個不同且連貫的步驟。在第一步驟中,從數(shù)據(jù)庫檢索動態(tài)信息并且將其作為腳本變量傳給客戶端計算機。在第二步驟中,將引用腳本變量的指令發(fā)送到客戶端計算機,瀏覽器負責(zé)執(zhí)行這些指令,從而在客戶端計算機上顯示動態(tài)信息。換句話說,根據(jù)模型-視圖-控制器范例,通過三個幾乎獨立的組件(每個組件專用于其任務(wù))來處理在網(wǎng)絡(luò)中傳送動態(tài)信息的過程。具體而言,腳本實現(xiàn)模型,它保存正被操縱的動態(tài)信息。模板實現(xiàn)視圖,它管理向用戶提供動態(tài)信息的圖形和/或文本顯示。瀏覽器實現(xiàn)控制器,它響應(yīng)所有用戶操作并且適當(dāng)?shù)赝ㄖP秃鸵晥D?,F(xiàn)在考慮開發(fā)計算機,管理工具255常駐在其工作存儲器125d中,該工具255用于在結(jié)構(gòu)模型數(shù)據(jù)庫260、圖像數(shù)據(jù)庫263和文本數(shù)據(jù)庫265上編輯、查看、檢索、輸入和執(zhí)行其他管理功能。每個結(jié)構(gòu)模型260定義對應(yīng)的靜態(tài)網(wǎng)頁225或視圖模板235的布局。結(jié)構(gòu)模型260包括對圖像263的引用(用對應(yīng)圖像標(biāo)識符表示);例如,圖像定義用于導(dǎo)航按鈕或頁面標(biāo)題橫幅的背景圖片。靜態(tài)參數(shù)用于將字符串與各自的圖像相關(guān)聯(lián)。結(jié)構(gòu)模型260還包括定義字符串語言的字段(LANG)以及定義其字符的字體的字段(FONT)。文本數(shù)據(jù)庫265包括用于每個參數(shù)的記錄,該記錄由翻譯成一系列不同語言的與參數(shù)相關(guān)聯(lián)的字符串組成。生成模塊270訪問數(shù)據(jù)庫260、263和265;生成模塊270創(chuàng)建新網(wǎng)頁225和視圖模板235,它們將被發(fā)送到服務(wù)器計算機的發(fā)布模板240。各網(wǎng)頁225或視圖模板235是通過插入相關(guān)圖像和字符串從各自的結(jié)構(gòu)模型260獲得的,字符串是采用選定語言和選定字體的字符添加的。訪問模塊275控制使用管理工具255的不同權(quán)限,這些權(quán)限授予開發(fā)計算機的特定用戶或用戶組。為此,目錄(inventory)280存儲不同簡檔(profile),其中每個簡檔由各自的授權(quán)定義,并且目錄285將各用戶(或用戶組)與對應(yīng)的授權(quán)簡檔相關(guān)聯(lián)。例如,網(wǎng)絡(luò)管理員被授權(quán)生成和發(fā)布新網(wǎng)頁和視圖模板,web開發(fā)者被授權(quán)訪問結(jié)構(gòu)模型數(shù)據(jù)庫260,圖形設(shè)計者被授權(quán)訪問圖像數(shù)據(jù)庫263,而翻譯者被授權(quán)訪問文本數(shù)據(jù)庫265。如果整個應(yīng)用(客戶端計算機、服務(wù)器計算機和開發(fā)計算機上的程序)和相應(yīng)數(shù)據(jù)以不同方式構(gòu)造,如果提供了不同模塊或功能,如果數(shù)據(jù)庫存儲在別處,如果服務(wù)器計算機上的腳本遵循不同的標(biāo)準(zhǔn)(如服務(wù)器端包括(Server-SideIncludes,SSI)),如果網(wǎng)頁以不同方式定義(例如使用等效的置標(biāo)標(biāo)記和采用以不同語言編寫的腳本),類似的考慮都同樣適用??蛇x地,每個結(jié)構(gòu)模型包括等效的靜態(tài)參數(shù),字段LANG和FONT以不同方式與結(jié)構(gòu)模型相關(guān)聯(lián)(例如它們存儲在另外的數(shù)據(jù)庫中),字段LANG以等效版本標(biāo)識符替代(例如定義不同區(qū)域信息),字段FONT以等效樣式標(biāo)識符替代(例如,定義字符的顏色)等等。參照圖3,開發(fā)計算機的操作涉及方法300的執(zhí)行,該方法開始于塊305。在塊310,在開發(fā)計算機的監(jiān)視器上顯示具有一系列可能選項的菜單。然后,該方法執(zhí)行對應(yīng)于選定選項的操作。具體地說,如果用戶選擇了管理功能,則執(zhí)行塊315-320,如果用戶選擇了編輯功能,則執(zhí)行塊325-340,而如果用戶選擇了發(fā)布功能,則執(zhí)行塊345-372。相反,如果用戶選擇了退出選項,則該方法結(jié)束于最終塊375。現(xiàn)在考慮塊315(管理功能),系統(tǒng)管理員可以插入、更新或刪除授權(quán)簡檔。繼續(xù)到塊320,系統(tǒng)管理員可以改變與各用戶(或用戶組)相關(guān)聯(lián)的授權(quán)簡檔。然后,該方法返回到塊310,等待新的命令。參照塊325(編輯功能),該方法檢查與當(dāng)前用戶相關(guān)聯(lián)的授權(quán)簡檔。如果用戶作為web開發(fā)者啟動了某部分(在開發(fā)計算機上),該方法傳到塊330。然后,用戶可以插入新結(jié)構(gòu)模型或者可以刪除舊結(jié)構(gòu)模型;而且,用戶可以更新現(xiàn)有結(jié)構(gòu)模型,例如改變它們的布局或內(nèi)容(圖像和字符串)。然后,在塊335,用戶可以為各結(jié)構(gòu)模型更新字段LANG(定義字符串的語言),并且在塊336,他/她可以更新字段FONT(定義字符的字體)。如果用戶作為圖形設(shè)計者啟動了該部分(塊325),該方法繼續(xù)到塊338。在這種情況下,允許用戶更新結(jié)構(gòu)模型所使用的各圖像。如果用戶作為翻譯者啟動該部分(塊325),則方法下傳到塊340,其中,用戶可以將文本數(shù)據(jù)庫的字符串轉(zhuǎn)換成不同語言。然后,無論在哪種情況下,方法都返回到塊310,等待新的命令?,F(xiàn)在考慮塊345(發(fā)布功能),web管理員選擇所要部署的結(jié)構(gòu)模型。在塊350,該方法(根據(jù)字段LANG)識別為第一結(jié)構(gòu)模型的字符串所選的語言;在塊355,該方法同樣(根據(jù)字段FONT)識別為第一結(jié)構(gòu)模型的字符所選的字體。傳到塊360,從各自的數(shù)據(jù)庫中檢索在結(jié)構(gòu)模型中定義的圖像和與對應(yīng)參數(shù)相關(guān)聯(lián)的字符串(以選定語言)。然后,在塊365,通過用對應(yīng)圖像替代圖像標(biāo)識符并且用對應(yīng)字符串替代參數(shù)(以所選字體),脫機生成網(wǎng)頁。在塊370,將所得到的網(wǎng)頁發(fā)送到服務(wù)器計算機,從而進行發(fā)布和投產(chǎn)(putintoproduction)。在塊372,該方法檢查最后一個結(jié)構(gòu)模型是否已被處理。如果否,該方法返回到塊350,以對下一結(jié)構(gòu)模型重復(fù)上述操作;反之,該方法返回到塊310,等待新的命令。參照圖4,每當(dāng)客戶端計算機的用戶希望從服務(wù)器計算機接收動態(tài)信息(如由數(shù)據(jù)庫查詢產(chǎn)生的報表)時,在客戶端和服務(wù)器計算機上執(zhí)行構(gòu)成方法400的非順序過程。在塊405,瀏覽器啟動它的執(zhí)行,然后在塊407進入空閑循環(huán),等待用戶的操作。如果用戶輸入了命令,則執(zhí)行塊410、415、465;反之,如果用戶選擇了關(guān)閉瀏覽器,則其執(zhí)行結(jié)束于最終塊470。具體考慮塊410,用戶輸入用于動態(tài)信息的過濾條件(filter),并且通過選擇當(dāng)前顯示在客戶端計算機上的網(wǎng)頁的相應(yīng)熱點,向服務(wù)器計算機提交相應(yīng)的請求。由web服務(wù)器模塊接收的相關(guān)命令使得CGI程序(表示為命令中的相關(guān)操作)啟動它的執(zhí)行。然后,在塊415,瀏覽器進入空閑循環(huán),等待來自服務(wù)器計算機的所請求網(wǎng)頁。同時,在塊420,CGI程序啟動。繼續(xù)到塊425,CGI程序檢索與之相關(guān)聯(lián)的視圖模板。然后,該方法進入塊430,其中,CGI程序根據(jù)由用戶提供且作為參數(shù)傳給CGI程序的過濾條件,在數(shù)據(jù)庫上運行第一個查詢。在塊435,將從數(shù)據(jù)庫提取的第一條記錄賦給CGI程序的緩沖變量。該方法下傳到塊440,其中,將把CGI程序的緩沖變量的內(nèi)容賦給第一腳本變量的語句插入到視圖模板的首標(biāo)中。在塊445,CGI程序檢查是否從數(shù)據(jù)庫中提取了最后一個查詢記錄。如果否,該方法返回到塊435,以將另一語句插入到視圖模板中(將查詢的下一記錄賦給相同的緩沖變量)。反之,在塊450,該方法檢查最后一個查詢是否已被運行。如果否,該方法返回到塊430,以執(zhí)行對數(shù)據(jù)庫的下一個查詢。反之,在塊455,將所得到的網(wǎng)頁插入到輸出緩沖區(qū)中;然后,在塊460,CGI程序結(jié)束其執(zhí)行,從而使該網(wǎng)頁發(fā)送到客戶端計算機。在塊465,瀏覽器響應(yīng)從服務(wù)器計算機接收的網(wǎng)頁,恢復(fù)其操作。瀏覽器解釋接收文檔中所包含的HTML標(biāo)記。結(jié)果,根據(jù)存儲在其視圖部分中的指令并且使用存儲在其數(shù)據(jù)部分的腳本變量中的動態(tài)信息,將網(wǎng)頁顯示在客戶端計算機的監(jiān)視器上。然后,該方法返回到塊407,等待新的命令。如果程序執(zhí)行例如帶有錯誤例程或換碼功能(escapefunction)的等效方法,如果從容戶端計算機向服務(wù)器計算機動態(tài)地請求不同信息(例如天氣預(yù)報),如果以不同的方式檢索動態(tài)信息和視圖模板,等等,類似的考慮都同樣適用。更一般地說,本發(fā)明提供一種在網(wǎng)絡(luò)中傳送動態(tài)信息的方法。該方法開始于客戶端計算機向網(wǎng)絡(luò)的服務(wù)器計算機請求動態(tài)信息的步驟。在服務(wù)器計算機的控制下檢索動態(tài)信息和用于動態(tài)信息的視圖模板。然后,將動態(tài)信息和視圖模板從服務(wù)器計算機發(fā)送到客戶端計算機。在客戶端計算機的控制下,組合動態(tài)信息與視圖模板,從而根據(jù)視圖模板將動態(tài)信息顯示在客戶端計算機上。本發(fā)明的解決方案消除了在服務(wù)器計算機上獲得整個動態(tài)信息的需要,因為網(wǎng)頁中的信息分布是隨后由客戶端計算機執(zhí)行的。因此,可以直接提取和發(fā)送由數(shù)據(jù)庫上的查詢產(chǎn)生的各記錄。這就減少了要在服務(wù)器計算機上分配和管理的存儲器量,并且避免任何動態(tài)存儲器分配過程。因此,大大提高了服務(wù)器計算機的可靠性。所設(shè)計的解決方案簡化了響應(yīng)由客戶端計算機提交的每個請求而在服務(wù)器計算機上執(zhí)行的過程。事實上,在服務(wù)器計算機上運行的CGI程序簡單地從數(shù)據(jù)庫檢索記錄,并且將語句插入到視圖模板中以將記錄賦給對應(yīng)的腳本變量(而無需執(zhí)行任何操縱)。而且,可以順序地從數(shù)據(jù)庫中提取這些記錄,而不考慮它們在各自網(wǎng)頁中的顯示次序。這就減少了服務(wù)器計算機的響應(yīng)時間。因而,實際顯示動態(tài)信息所需的大部分操作分布到眾多的客戶端計算機上,這些客戶端計算機通常具有未被利用的充足資源。因此,極大地提高了網(wǎng)絡(luò)的整體性能。該解決方案尤其有利于高可用性服務(wù)器計算機,即使考慮不同應(yīng)用也是如此。如上所述的本發(fā)明優(yōu)選實施例還提供其他優(yōu)點。例如,順序提取記錄,并且將把當(dāng)前記錄賦給對應(yīng)變量的對應(yīng)語句插入到視圖模板的第一部分中;視圖模板的第二部分包括在客戶端計算機上執(zhí)行的用于顯示變量的指令。該結(jié)構(gòu)相當(dāng)通用。而且,動態(tài)信息與相應(yīng)視圖模板的組合僅僅需要執(zhí)行用于顯示賦有由查詢產(chǎn)生的記錄的變量的指令。最好,帶有插入語句的視圖模板定義網(wǎng)頁,指令是置標(biāo)標(biāo)記并且語句是腳本代碼。這樣,視圖模板的不同部分(提供動態(tài)信息和對應(yīng)指令)彼此之間直接交互。而且,標(biāo)準(zhǔn)瀏覽器通常支持用于編寫腳本的語言,從而無需在客戶端計算機上作任何改變就可以實現(xiàn)所提出的解決方案??蛇x地,視圖模板和所得到的網(wǎng)頁具有不同的結(jié)果(例如,動態(tài)信息存儲在單獨文件中),該方法在網(wǎng)絡(luò)中實現(xiàn)成采用要在客戶端計算機上顯示的不同結(jié)構(gòu)。將動態(tài)信息和對應(yīng)指令獨立發(fā)送到客戶端計算機,在客戶端計算機上以不同方式組合動態(tài)信息和視圖模板,等等。在本發(fā)明的優(yōu)選實施例中,要在客戶端計算機上顯示的各結(jié)構(gòu)(例如靜態(tài)網(wǎng)頁和視圖模板)是從對應(yīng)的包括靜態(tài)參數(shù)的結(jié)構(gòu)模型脫機生成的。該特性使得創(chuàng)建新網(wǎng)頁的過程十分高效。具體而言,網(wǎng)頁的不同組件如圖像和字符串可以獨立地進行分類和建模。而且,所設(shè)計的特性提供一種快捷方式來自動執(zhí)行大網(wǎng)頁集中的修改。該過程是脫機執(zhí)行的(無需服務(wù)器計算機上的任何操縱),從而不會損害網(wǎng)絡(luò)的性能。最好,每個結(jié)構(gòu)模型包括一個版本標(biāo)識符,該標(biāo)識符定義要賦給靜態(tài)參數(shù)(例如字符串的語言)的當(dāng)前值集合。這樣,版本的任何變化可以同時在大量網(wǎng)頁中以簡單且快捷的方式生效。而且,結(jié)構(gòu)模型還包括樣式標(biāo)識符,該標(biāo)識符定義網(wǎng)頁的外觀(例如字符的字體)。即使在這種情況下,網(wǎng)頁樣式的任何變化也是十分簡單和快捷的。最好,根據(jù)不同的授權(quán)簡檔控制對上述單元的訪問。所提出的特性使得有可能實現(xiàn)網(wǎng)頁的角色管理。例如,圖形設(shè)計者在無需了解任何外語的情況下生成圖像;置于圖像上面的字符串由翻譯者以獨立的方式修改??蛇x地,對開發(fā)計算機的訪問不提供不同權(quán)限,在結(jié)構(gòu)模型中即不包含字體標(biāo)識符也不包含版本標(biāo)識符,或者以標(biāo)準(zhǔn)方式生成網(wǎng)頁。反之亦然,這些附加特性(單獨或相互組合)適合用于生成任何類型的要在客戶端計算機顯示的結(jié)構(gòu),即使不是在上述傳送動態(tài)信息的方法的情況下也是如此。最好,本發(fā)明的解決方案采用可以在CD-ROM上提供的計算機程序應(yīng)用來實現(xiàn)??蛇x地,程序可以在軟盤上分發(fā),預(yù)先裝載到硬盤上,或者存儲在任何其他計算機可讀介質(zhì)上,通過因特網(wǎng)、廣播發(fā)送到計算機,或者更一般地以可裝載到計算機的工作存儲器中的任何其他形式提供。然而,即使采用例如集成在半導(dǎo)體材料的芯片中的硬件結(jié)構(gòu),也可以實現(xiàn)本發(fā)明的方法。而且,需要注意,服務(wù)器計算機上的程序適于作為獨立產(chǎn)品(獨立于其他程序)來實現(xiàn)并投入市場,以便與現(xiàn)有的瀏覽器一起使用。自然地,為了滿足局部和特定要求,本領(lǐng)域的技術(shù)人員一旦閱讀本文之后就可以應(yīng)用上述解決方案,然而,很多修改和變更也包括在由所附權(quán)利要求限定的本發(fā)明的保護范圍內(nèi)。權(quán)利要求1.一種在網(wǎng)絡(luò)中傳送動態(tài)信息的方法,包括以下步驟由客戶端計算機向網(wǎng)絡(luò)的服務(wù)器計算機請求動態(tài)信息,在服務(wù)器計算機的控制下檢索動態(tài)信息,在服務(wù)器計算機的控制下檢索用于動態(tài)信息的視圖模板,將動態(tài)信息和視圖模板從服務(wù)器計算機發(fā)送到客戶端計算機,以及在客戶端計算機的控制下組合動態(tài)信息與視圖模板,以根據(jù)視圖模板在客戶端計算機上顯示動態(tài)信息。2.如權(quán)利要求1所述的方法,其中,動態(tài)信息包括多條記錄,并且視圖模板包括帶有用于顯示多個變量的指令的第一部分;其中檢索動態(tài)信息的步驟包括以下步驟順序提取每條記錄,并且在視圖模板的第二部分中插入將該記錄賦給對應(yīng)變量的語句;以及組合動態(tài)信息與視圖模板的步驟包括執(zhí)行指令的步驟。3.如權(quán)利要求2所述的方法,其中,帶插入語句的視圖模板定義網(wǎng)頁,指令包括置標(biāo)標(biāo)記,并且語句包括腳本代碼。4.如權(quán)利要求1所述的方法,還包括以下步驟提供多個結(jié)構(gòu)模型,其中每個模型用于要在客戶端計算機上顯示的對應(yīng)結(jié)構(gòu),每個結(jié)構(gòu)模型包括多個靜態(tài)參數(shù),提供用于各結(jié)構(gòu)模型的靜態(tài)參數(shù)的當(dāng)前值集合,通過用當(dāng)前的值集合替代靜態(tài)參數(shù),從對應(yīng)的結(jié)構(gòu)模型脫機生成各結(jié)構(gòu),以及使得所生成的結(jié)構(gòu)在服務(wù)器計算機上可用。5.如權(quán)利要求4所述的方法,還包括以下步驟存儲用于各結(jié)構(gòu)模型的靜態(tài)參數(shù)的多個不同值集合,每個值集合由對應(yīng)版本標(biāo)識符定義,將當(dāng)前值集合的版本標(biāo)識符與各結(jié)構(gòu)模型相關(guān)聯(lián),以及根據(jù)相關(guān)版本標(biāo)識符,為各結(jié)構(gòu)模型的靜態(tài)參數(shù)檢索當(dāng)前值集合。6.如權(quán)利要求4所述的方法,還包括以下步驟將樣式標(biāo)識符與各結(jié)構(gòu)模型相關(guān)聯(lián),樣式標(biāo)識符定義對應(yīng)結(jié)構(gòu)的顯示樣式,其中脫機生成各結(jié)構(gòu)的步驟包括在由樣式標(biāo)識符定義的顯示樣式中插入當(dāng)前值集合。7.如權(quán)利要求5所述的方法,還包括以下步驟為結(jié)構(gòu)的開發(fā)系統(tǒng)存儲多個授權(quán)簡檔,以選定授權(quán)簡檔啟動開發(fā)系統(tǒng)的一部分,以及根據(jù)選定授權(quán)簡檔,訪問結(jié)構(gòu)模型或用于靜態(tài)參數(shù)的值集合。8.一種可裝載到數(shù)據(jù)處理系統(tǒng)的工作存儲器中的計算機程序應(yīng)用,用于當(dāng)該應(yīng)用在數(shù)據(jù)處理系統(tǒng)上運行時,執(zhí)行在網(wǎng)絡(luò)中傳送動態(tài)信息的方法,該方法包括以下步驟由客戶端計算機向網(wǎng)絡(luò)的服務(wù)器計算機請求動態(tài)信息,在服務(wù)器計算機的控制下檢索動態(tài)信息,在服務(wù)器計算機的控制下檢索用于動態(tài)信息的視圖模板,將動態(tài)信息和視圖模板從服務(wù)器計算機發(fā)送到客戶端計算機,以及在客戶端計算機的控制下組合動態(tài)信息與視圖模板,以根據(jù)視圖模板在客戶端計算機上顯示動態(tài)信息。9.一種程序應(yīng)用產(chǎn)品,包括在其上存儲了如權(quán)利要求8所述的應(yīng)用的計算機可讀介質(zhì)。10.一種可裝載到網(wǎng)絡(luò)的服務(wù)器計算機的工作存儲器中的計算機程序,用于當(dāng)該程序在服務(wù)器計算機上運行時,執(zhí)行在網(wǎng)絡(luò)中傳送動態(tài)信息的方法,該方法包括以下步驟從網(wǎng)絡(luò)的客戶端計算機接收動態(tài)信息請求,檢索動態(tài)信息,檢索用于動態(tài)信息的視圖模板,將動態(tài)信息和視圖模板發(fā)送到客戶端計算機,從而使客戶端計算機組合動態(tài)信息與視圖模板以根據(jù)視圖模板在客戶端計算機上顯示動態(tài)信息。11.一種程序產(chǎn)品,包括在其上存儲了如權(quán)利要求10所述的程序的計算機可讀介質(zhì)。12.一種用于在網(wǎng)絡(luò)中傳送動態(tài)信息的系統(tǒng),包括客戶端計算機和服務(wù)器計算機,其中客戶端計算機包括用于向服務(wù)器計算機請求動態(tài)信息的裝置,并且服務(wù)器計算機包括用于檢索動態(tài)信息的裝置、用于檢索用于動態(tài)信息的視圖模板的裝置以及用于將動態(tài)信息和視圖模板發(fā)送到客戶端計算機的裝置,客戶端計算機還包括用于組合動態(tài)信息與視圖模板以根據(jù)視圖模板在客戶端計算機上顯示動態(tài)信息的裝置。13.一種用于在網(wǎng)絡(luò)中傳送動態(tài)信息的系統(tǒng),包括客戶端計算機和服務(wù)器計算機,其中客戶端計算機包括用于向服務(wù)器計算機請求動態(tài)信息的軟件模塊,并且服務(wù)器計算機包括用于檢索動態(tài)信息的軟件模塊、用于檢索用于動態(tài)信息的視圖模板的軟件模塊以及用于將動態(tài)信息和視圖模板發(fā)送到客戶端計算機的軟件模塊,客戶端計算機還包括用于組合動態(tài)信息與視圖模板以根據(jù)視圖模板在客戶端計算機上顯示動態(tài)信息的軟件模塊。14.一種用于在網(wǎng)絡(luò)中傳送動態(tài)信息的系統(tǒng),包括客戶端計算機和服務(wù)器計算機,其中客戶端計算機包括用于向服務(wù)器計算機請求動態(tài)信息的瀏覽器,并且服務(wù)器計算機包括用于檢索動態(tài)信息和用于動態(tài)信息的網(wǎng)頁模板的腳本模塊以及用于將動態(tài)信息和網(wǎng)頁模板發(fā)送到客戶端計算機的web服務(wù)器模塊,客戶端計算機的瀏覽器組合動態(tài)信息與網(wǎng)頁模板,以根據(jù)網(wǎng)頁模板在客戶端計算機上顯示動態(tài)信息。全文摘要一種用于在因特網(wǎng)中傳送動態(tài)網(wǎng)頁例如包括由數(shù)據(jù)庫查詢產(chǎn)生的報表的方法和系統(tǒng)。在服務(wù)器計算機上運行查詢,然后將所得到的記錄作為HTML文檔的首標(biāo)中的腳本變量發(fā)送到客戶端計算機。HTML文檔的主體包括用于顯示腳本變量的標(biāo)記,這些標(biāo)記定義記錄的視圖模板??蛻舳擞嬎銠C上的瀏覽器負責(zé)解釋這些HTML標(biāo)記,從而根據(jù)相應(yīng)視圖模板在客戶端計算機上顯示查詢結(jié)果。文檔編號G06F17/30GK1555534SQ02817991公開日2004年12月15日申請日期2002年8月13日優(yōu)先權(quán)日2001年9月13日發(fā)明者馬里諾·塔皮亞多馬蒂奧斯,馬里諾塔皮亞多馬蒂奧斯申請人:國際商業(yè)機器公司