專利名稱::基于模板的網(wǎng)頁動態(tài)生成方法、程序和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種網(wǎng)頁的生成方法、一種用于實施所述方法的計算機程序和一種用于實現(xiàn)所述方法的計算機系統(tǒng)。本發(fā)明特別適用于嵌入式系統(tǒng)(embeddedsystem)。
背景技術(shù):
:在互聯(lián)網(wǎng)中,由服務(wù)器提供網(wǎng)頁并將其傳輸給客戶。在此過程中,網(wǎng)頁通常是動態(tài)生成,也就是在客戶發(fā)出請求時才生成網(wǎng)頁。由此可使例如不同的瀏覽器得到支持,并在所用網(wǎng)頁中嵌入當前的信息。目前一般用已知腳本語言進行網(wǎng)頁的動態(tài)創(chuàng)建,例如微軟公司的ASP/ASP.net(activeserverpages,動態(tài)服務(wù)器網(wǎng)頁)或開放源代碼腳本語言PHP。PHP是“PHPHypertextPreprocessor”(PHP超文本預處理器)的遞歸縮寫。籍此通過運行腳本來創(chuàng)建網(wǎng)頁。使用所述的某種腳本語言作為編程環(huán)境不僅復雜,而且也需要大量的硬件資源。此外還須精心封裝所用腳本,以免對服務(wù)器的穩(wěn)定性產(chǎn)生負面影響。如果使用普通的計算機作為服務(wù)器,這種資源需求通常容易滿足。在此情況下,使用腳本語言提供了多種靈活創(chuàng)建網(wǎng)頁的方法。但是如果服務(wù)器的可用資源較少,例如由于微處理器能力較低或服務(wù)器的主內(nèi)存較小,或只配備有較小的甚至沒有配備硬盤存儲器,就無法使用上述類型的腳本語言。這種情況主要出現(xiàn)在嵌入式系統(tǒng)中,所述系統(tǒng)常應(yīng)用于自動化
技術(shù)領(lǐng)域:
。嵌入式系統(tǒng)的優(yōu)化方向為成本最小化,其所使用的硬件結(jié)構(gòu)大多有所簡化,其中包括存儲容量較小、速度較慢的處理器,與此同時,硬件又需盡可能穩(wěn)定地工作。因而,這種嵌入式系統(tǒng)無法提供腳本語言所需的資源。為使嵌入式系統(tǒng)能夠動態(tài)創(chuàng)建網(wǎng)頁,動態(tài)部分迄今為止一直存儲在固件內(nèi)。其結(jié)果是無法對動態(tài)部分進行后續(xù)修改,也無法進行例如面向客戶的網(wǎng)頁匹配。
發(fā)明內(nèi)容本發(fā)明的目的在于在對硬件資源需求較小的情況下實現(xiàn)網(wǎng)頁的動態(tài)創(chuàng)建。這一目的通過獨立權(quán)利要求所述的技術(shù)特征得以實現(xiàn)。優(yōu)選的實施方案通過從屬權(quán)利要求所述的技術(shù)特征或在說明書中加以描述。根據(jù)本發(fā)明,上述目的通過以下網(wǎng)頁生成方法加以實現(xiàn)首先提供一由靜態(tài)代碼組成的基本網(wǎng)頁,其中存在如下兩種方式a)將基本網(wǎng)頁鏈接到至少一個數(shù)據(jù)文件,所述數(shù)據(jù)文件進而鏈接到至少一個模板。在此情況下,通過解析所述數(shù)據(jù)文件,以及所述鏈接,由此至少一次解析所述模板,所述解析過程的輸出結(jié)果作為動態(tài)部分對所述基本網(wǎng)頁進行補充。b)可選的或作為上述方式的補充,基本網(wǎng)頁同時鏈接到一數(shù)據(jù)文件與一模板。在此情況下,通過分別解析所述數(shù)據(jù)文件和所述模板,并將所述解析過程的共同輸出結(jié)果作為動態(tài)部分對所述基本網(wǎng)頁進行補充。通過下述方式生成基本網(wǎng)頁的一插件,即對數(shù)據(jù)文件和模板分別進行解析,兩個解析過程的共同輸出構(gòu)成上述靜態(tài)基本網(wǎng)頁的一動態(tài)部分形式的插件。此外,上述目的還通過一計算機程序而加以實現(xiàn),借助所述計算機程序可在一計算機系統(tǒng)中執(zhí)行上述方法。此外,本發(fā)明還提供一種用于實施上述方法的計算機系統(tǒng)。本發(fā)明的方法用于網(wǎng)頁的動態(tài)生成。在本發(fā)明的說明書中,“網(wǎng)頁的動態(tài)生成”是指當?shù)谌桨l(fā)出請求時才生成網(wǎng)頁。所述第三方為第二計算機或一客戶,其由第一計算機或服務(wù)器獲取網(wǎng)頁。在第一步中,提供一由靜態(tài)代碼組成的基本網(wǎng)頁?!办o態(tài)代碼”,例如為一ASCII文件,是指長時間保持不變的代碼,并且其生成網(wǎng)頁中的重復再現(xiàn)部分。該靜態(tài)部分可以定義網(wǎng)頁的布局,或者也可以通過其配色方案來反映企業(yè)形象。與此相反,動態(tài)代碼與靜態(tài)代碼相比,其變化更加頻繁,并用于例如在網(wǎng)頁上提供針對客戶的或日日更新的信息,有些情況下甚至是每秒更新的信息。有關(guān)動態(tài)代碼的另一個例子是網(wǎng)頁上經(jīng)常出現(xiàn)的廣告條幅。所述基本網(wǎng)頁可存儲在計算機系統(tǒng)的一存儲模塊(例如一EPROM或ASIC)內(nèi),并對其進行讀取。但也可以借助一合適的程序首先生成所述基本網(wǎng)頁。所述基本網(wǎng)頁可以是一個文本文件并具有至少一個鏈接到至少一個數(shù)據(jù)文件的鏈接。在第一種情形下,所述數(shù)據(jù)文件進而具有至少一個鏈接到至少一個模板的鏈接。通過使用一解析器,并借助所述數(shù)據(jù)文件和模板生成基本網(wǎng)頁的一插件。所述基本網(wǎng)頁和所述插件被傳輸給客戶,并由客戶處的瀏覽器作為單個網(wǎng)頁顯示在屏幕上。所述插件通過下述方法生成解析器對基本網(wǎng)頁進行解析,并找到一鏈接到所述數(shù)據(jù)文件的鏈接。該鏈接的語法為“處理數(shù)據(jù)(文件名,模板名)”,其中,“文件名”是所述數(shù)據(jù)文件的名稱,“模板名”是所述模板的名稱。由此可以看出,基本網(wǎng)頁也會鏈接至所述模板。為生成所述插件,對數(shù)據(jù)文件進行解析,然后再對基本網(wǎng)頁上位于所述鏈接之后的部分進行解析。這一過程會根據(jù)鏈接的數(shù)量而重復進行,直到整個基本網(wǎng)頁解析完成為止。在解析過程中,解析器檢驗數(shù)據(jù)文件的語法,并產(chǎn)生一輸出結(jié)果,所述輸出結(jié)果被存儲在一(輸出)緩沖器或主存儲器內(nèi)。所述輸出結(jié)果當然也可以存在于一數(shù)據(jù)載體中從而被存儲在例如一硬盤上。所述數(shù)據(jù)文件內(nèi)部存在至少一個鏈接到至少一個模板的鏈接。當解析器到達鏈接點時,就會對所鏈接到的模板進行解析。在此過程中,解析器實質(zhì)上通過將模板的行復制到所述緩沖器內(nèi)來產(chǎn)生一輸出結(jié)果。如果模板具有可變結(jié)構(gòu),解析器則使用可變結(jié)構(gòu)的取值來替代可變結(jié)構(gòu)。在此情況下,所述取值可總體上預先確定或存儲在數(shù)據(jù)文件中。在第二種情形下,基本網(wǎng)頁同時鏈接到一數(shù)據(jù)文件與一模板。每到達一鏈接點就會調(diào)用一單獨的解析器實體。根據(jù)鏈接點在基本網(wǎng)頁內(nèi)的位置和所用的計算機體系結(jié)構(gòu),所述的各解析器實體在時間上依次相接或(幾乎)短時并行所述解析器實體的共同輸出結(jié)果即構(gòu)成基本網(wǎng)頁的動態(tài)插件。本發(fā)明的方法的優(yōu)點在于可動態(tài)生成網(wǎng)頁,同時,借助本發(fā)明中數(shù)據(jù)文件的內(nèi)容和模板內(nèi)容可實現(xiàn)靈活的生成方式。盡管本發(fā)明的方法的靈活性和可選方式尚不允許使用腳本語言,但與借助腳本語言來動態(tài)生成網(wǎng)頁的方案相比,本發(fā)明的方法對硬件資源的需求大大降低,特別是對微處理器的能力和主內(nèi)存的容量要求大大降低。生成的網(wǎng)頁原則上可為任意一種文本格式,優(yōu)選地可為HTML格式或XML格式,從而只需瀏覽器而無需使用其它的軟件就可對其進行圖形顯示。所述數(shù)據(jù)文件可包含一可變結(jié)構(gòu)列表,所述模板可包含一與此對應(yīng)的取值列表。當所述模板被解析時,解析器會將至少一個可變結(jié)構(gòu)使用它的取值來進行替代。所述取值可以存儲在數(shù)據(jù)文件內(nèi),也可以是總體上已知的。舉例而言,所述模板可以包括一可變結(jié)構(gòu)數(shù)組,所述數(shù)組例如為一由行和列組成的表格,所述數(shù)據(jù)文件則包括一個與之對應(yīng)的取值數(shù)組。通過相應(yīng)更新所述數(shù)據(jù)文件和改變所述取值,就可靈活地生成所述基本網(wǎng)頁的插件。所述數(shù)據(jù)文件和所述模板優(yōu)選為XML文件,從而可以跨平臺使用。這一點有助于降低維護費用,并簡化在不同操作系統(tǒng)中的實施過程。在此情況下可以使用已知的XML文件解析器,其中,鑒于其較高的易用性,DOM解析器尤其適用。此處,DOM是XML文檔對象模型(DocumentObjectModel)的縮寫,是XML格式文檔的可編程用戶界面。對一XML數(shù)據(jù)文件和一與之對應(yīng)的XML模板的解析通常是依次進行的,所述數(shù)據(jù)文件中的每一XML節(jié)點或標簽都被檢驗是否存在一關(guān)連的模板。如果存在一關(guān)聯(lián)的模板,所述模板的內(nèi)容會被完全解析,其內(nèi)容被寫入輸出緩沖器。完成了對所述模板的完全解析后,解析器將處理所述數(shù)據(jù)文件的剩余部分,直到其被完全解析為止。所述數(shù)據(jù)文件也可以動態(tài)生成以顯示當前的信息,其處理方式為,在第三方發(fā)出網(wǎng)頁請求后才生成數(shù)據(jù)文件。這種處理方式例如適用于查詢一次安裝的組件的狀態(tài)。所述數(shù)據(jù)文件在進行查詢時生成,其中,該數(shù)據(jù)文件包含一個此次安裝所有已連接組件或者說其狀態(tài)為“ON”的組件的列表??梢允褂靡惠o助程序來生成所述數(shù)據(jù)文件,所述程序由各微處理器執(zhí)行??蛇x的,所述輔助程序也可以駐留在系統(tǒng)的固件或是硬件中,例如一ASIC中。本發(fā)明的方法優(yōu)選借助于一計算機程序來實施。所述計算機程序包括一傳統(tǒng)解析器與一用于生成一數(shù)據(jù)文件和一模板的編輯器,所述傳統(tǒng)解析器例如為一DOM解析器。所述編輯器優(yōu)選為無需手動操作、可自動生成數(shù)據(jù)文件的編輯器。本發(fā)明的計算機系統(tǒng)包括一微處理器、主存儲器和(必要時的)硬盤存儲器,且可用于實施本發(fā)明的方法。為此,所述計算機系統(tǒng)具有用于生成上述由靜態(tài)代碼組成的基本網(wǎng)頁的裝置和用于通過解析數(shù)據(jù)文件和模板來生成基本網(wǎng)頁的一插件的裝置。所述裝置可以分別為一解析器(也可以只使用一個解析器),或者是至少一個存儲模塊,例如一可編程的存儲模塊(例如EPROM或ASIC)。下面結(jié)合附圖及附錄通過具體實施例對本發(fā)明作進一步說明,其中圖1為本發(fā)明方法的第一種實施方式的示意圖;圖2為本發(fā)明方法的第二種實施方式的示意圖;圖3為用一網(wǎng)頁瀏覽器顯示的整個網(wǎng)頁文件;圖4為一用于實施本發(fā)明方法的計算機系統(tǒng)。附錄1為一HTML格式的基本網(wǎng)頁文件;附錄2為一XML格式的數(shù)據(jù)文件,附錄1中的基本網(wǎng)頁文件鏈接到此數(shù)據(jù)文件;附錄3為一XML格式的模板,附錄1中的基本網(wǎng)頁文件和附錄2中的數(shù)據(jù)文件鏈接到此模板。具體實施例方式圖1顯示本發(fā)明方法的第一種實施方式的示意圖。一基本網(wǎng)頁1鏈接到一數(shù)據(jù)文件2,所述數(shù)據(jù)文件進而鏈接到一模板3。通過對數(shù)據(jù)文件2和模板3的解析生成基本網(wǎng)頁1的一插件4。圖2顯示本發(fā)明方法的第二種實施方式的示意圖。一基本網(wǎng)頁1鏈接到一數(shù)據(jù)文件2與一模板3。通過對數(shù)據(jù)文件2和模板3的解析生成基本網(wǎng)頁1的一插件4。附錄1顯示一標準的HTML頁面,其中,在第15行通過調(diào)用“ProcessXMLData”同時鏈接到一數(shù)據(jù)文件與一模板。這是因為這個函數(shù)調(diào)用的兩個變量分別是所述數(shù)據(jù)文件的名稱“MainNavigation1.xml”和所述模板的名稱“MainNavigation2.xml”。使用一HTML解析器進行解析,具體地說所述HTML解析器為申請人所推廣的MWLS服務(wù)器的MiniWeb瀏覽器的解析器。所述解析器會對HTML頁面中的前14行進行解析,隨后開始對附錄2所示的數(shù)據(jù)文件和附錄3所示的模板進行解析。所述數(shù)據(jù)文件例如定義了有待顯示的網(wǎng)頁上的多個導航功能按鈕。所述按鈕顯示在圖3中的方框5中,并標有“Entrance”、“Variables”、“WebServices”、“Trace”和“VarSimulator”等字樣。圖2所示的其它網(wǎng)頁內(nèi)容(所述網(wǎng)頁通過微軟公司的網(wǎng)頁瀏覽器顯示)與本發(fā)明無關(guān),因此為簡化起見未在基本網(wǎng)頁中對其進行體現(xiàn)。模板中的第9、10行定義了用于主菜單的所要生成的一組按鈕。變量“NAME”用于在所述按鈕上編制字樣,其中,所述變量在第12行中被賦予一個取值,所述取值根據(jù)附錄2所示的數(shù)據(jù)文件為值“Entrance”。第13至15行中定義了當一光標移動到該按鈕上時,系統(tǒng)該如何反應(yīng)。通過所述解析過程生成了附錄1所示的HTML基本網(wǎng)頁的一動態(tài)部分插件。所述動態(tài)部分顯示在圖3中的方框5中。借助所述數(shù)據(jù)文件和模板生成的按鈕并排布置在方框5中。圖4顯示了一計算機系統(tǒng),所述計算機系統(tǒng)包括計算機1本身、一顯示屏2、一鍵盤3與一鼠標4。所述系統(tǒng)具有一ASIC形式的裝置5,所述裝置用于提供一由靜態(tài)代碼組成的基本網(wǎng)頁。另一ASIC形式的裝置6用于通過對一數(shù)據(jù)文件與一模板進行解析而生成基本網(wǎng)頁的一插件。一可選方案為只設(shè)置一個ASIC裝置,其用于生成所述基本網(wǎng)頁及其動態(tài)插件。附錄1基本網(wǎng)頁示例<prelisting-type="program-listing"> ?。糷tml><head> ?。紅itle> MiniWebMainNavigation ?。?title></head><linkrel="stylesheet"type="text/css"href="/CSS/MiniWeb.css"></link> ?。約criptlanguage="JScript"src="/Scripts/Portal.js"></script> <bodyclass="P0RTAL"style="{height=′22px′;top=′0px′;margin-top=′0px′}"> ?。紅able> <tr> ?。?--<MWSL>ProcessXMLData(<EXTERNAL SRC="/XML/MainNavigationl.xml"/>,<TEMPLATES><EXTERNALSRC="/Templates/MainNavigation2.xml"/></TEMPLATES>)</MWSL>--> ?。?tr> ?。?table></body></html></pre>附錄2數(shù)據(jù)文件示例<prelisting-type="program-listing"> <xmlversion="1.0"standalone="yes"><MAINNAVIGATION><APPLICATIONNAME="Entrance" CLIENTAREA="/Portal/Entrance.html" TITLE="BacktoEntrancePage."/><APPLICATIONNAME="FileBrowser" SECUREGROUP="FileAdministrator" CLIENTAREA="/www" TITLE="BrowsetheFilesystem"/><APPLICATIONNAME="Variables" CLIENTAREA="/%(Accept-Language(HTTP)%)/ TestVar.html" TITLE="ShowsReadandwriteaccessto systemvari-ables"/><APPLICATIONNAME="SystemTest" SECUREGROUP="Test" CLIENTAREA="/SystemTest/SystemTest.html" TITLE="PerformssomesystemtestsontheMiniWebServer"/><APPLICATIONNAME="WebServices" CLIENTAREA="/WebServices" TITLE="WebServicesDemonstrations"/><APPLICATIONNAME="Configuration" SECUREGROUP="FileAdministrator" CLIENTAREA="/Configure.html" TITLE="Loadanewconfigurationtothe MiniWebserver."/><APPLICATIONNAME="Trace" CLIENTAREA="/TRACE/GetDebugBuffer" TITLE="StartstheDebugTracer."/><APPLICATIONNAME="CSSA" SECUREGROUP="User" CLIENTAREA="/CSSA/Main.html"TITLE="PKIInterface."/><APPLICATIONNAME="VarSimulator" CLIENTAREA="/Simulator/Simulatorindex.html" TITLE="Simulateseveralvariables."/></MAINNAVIGATION></pre>附錄3模板文件示例<prelisting-type="program-listing"> ?。紉mlversion="1.0"standalone="yes"><TEMPLATES><TEMPLATENAME="APPLICATION"> <POSITIONNAME="LINE"> ?。?[CDATA[ <td> ?。糹nputclass="MainMenu" type="BUTTON" title="<MWSL>TITLE</MWSL>" value="<MWSL>NAME</MWSL>" OnClick="NavigateApp(′<MWSL>CLIENTAREA</MWSL>′)" OnMouseover="window.status=′<MWSL>TITLE</MWSL>′" OnMouseOut="window.status=′MiniWebClientWork-bench′"/> </td> ]]> ?。?POSITION></TEMPLATE></TEMPLATES></pre>權(quán)利要求1.一種網(wǎng)頁,尤其是自動化技術(shù)中的網(wǎng)頁生成方法,其步驟如下提供一由靜態(tài)代碼組成的基本網(wǎng)頁,其中所述基本網(wǎng)頁鏈接到至少一個數(shù)據(jù)文件,所述數(shù)據(jù)文件進而鏈接到至少一個模板,和/或所述基本網(wǎng)頁同時鏈接到至少一個模板與一數(shù)據(jù)文件;通過對所述數(shù)據(jù)文件和所述模板進行解析來生成所述基本網(wǎng)頁的一插件。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,生成的網(wǎng)頁為HTML或XML格式的網(wǎng)頁。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)文件包含一可變結(jié)構(gòu)列表,所述模板包含一與此對應(yīng)的取值列表。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)文件和所述模板為XML文件。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,為生成所述基本網(wǎng)頁的插件,每一XML節(jié)點均被檢驗是否存在一關(guān)聯(lián)的模板,如果存在一關(guān)連模板則對所述模板進行完全解析。6.根據(jù)權(quán)利要求1至5中任一項權(quán)利要求所述的方法,其特征在于,所述模板具有至少一個可變結(jié)構(gòu),在生成所述插件時使用所述可變結(jié)構(gòu)存儲在所述數(shù)據(jù)文件中的取值來替代所述可變結(jié)構(gòu)。7.根據(jù)權(quán)利要求1至5中任一項權(quán)利要求所述的方法,其特征在于,當一第三方發(fā)出請求時才生成所述網(wǎng)頁。8.根據(jù)權(quán)利要求7所述的方法,其特征在于,在一第三方請求所述網(wǎng)頁時生成所述數(shù)據(jù)文件,隨后生成所述網(wǎng)頁的插件。9.一種計算機程序產(chǎn)品,其直接加載于一數(shù)字計算機的內(nèi)存中,并包括軟件代碼段,當在一計算機上運行所述計算機程序產(chǎn)品時,所述軟件代碼段用于執(zhí)行權(quán)利要求1至8中任一項權(quán)利要求所述的步驟。10.根據(jù)權(quán)利要求9所述的計算機程序產(chǎn)品,且包含于一數(shù)據(jù)載體中并存儲在一計算機存儲器內(nèi)。11.一種計算機系統(tǒng),包括用于生成一由靜態(tài)代碼組成的基本網(wǎng)頁的裝置,其中所述基本網(wǎng)頁鏈接到至少一個數(shù)據(jù)文件,所述數(shù)據(jù)文件進而鏈接到至少一個模板,和/或所述基本網(wǎng)頁同時鏈接到至少一個模板與一數(shù)據(jù)文件;用于通過解析所述數(shù)據(jù)文件和所述模板來生成所述基本網(wǎng)頁的一插件的裝置。12.一種自動化系統(tǒng),包括用于生成一由靜態(tài)代碼組成的基本網(wǎng)頁的裝置,其中所述基本網(wǎng)頁鏈接到至少一個數(shù)據(jù)文件,所述數(shù)據(jù)文件進而鏈接到至少一個模板,和/或所述基本網(wǎng)頁同時鏈接到至少一個模板與一數(shù)據(jù)文件;用于通過解析所述數(shù)據(jù)文件和所述模板來生成所述基本網(wǎng)頁的一插件的裝置。全文摘要本發(fā)明涉及一種動態(tài)生成網(wǎng)頁的方法,以及一種用于實施所述方法的計算機程序和計算機系統(tǒng)。通常情況下,只有當一客戶發(fā)出請求時才生成網(wǎng)頁。為此需使用像ASP或PHP那樣的對硬件資源有很高需求的腳本語言。硬件資源有限的計算機系統(tǒng),尤其是嵌入式系統(tǒng),則無法滿足這種需求。本發(fā)明的目的是提供一種靈活機動、且又節(jié)省資源地生成網(wǎng)頁的方法。該目的通過為客戶提供一靜態(tài)網(wǎng)頁,并為可變的內(nèi)容組件提供一插件來實現(xiàn)。所述插件借助于一標準解析器、一數(shù)據(jù)文件與一模板而生成。所述靜態(tài)網(wǎng)頁鏈接到所述數(shù)據(jù)文件,所述數(shù)據(jù)文件鏈接到所述模板??蛇x的,所述靜態(tài)網(wǎng)頁也可同時鏈接到所述數(shù)據(jù)文件和所述模板。文檔編號G06F17/30GK1993694SQ200580025903公開日2007年7月4日申請日期2005年7月21日優(yōu)先權(quán)日2004年7月30日發(fā)明者弗蘭克·沃爾克曼,托馬斯·塔拉尼斯,托馬斯·特羅斯特申請人:西門子公司