基于模板的网页动态生成方法、程序和系统的制作方法

文档序号:84093阅读:866来源:国知局

专利名称::基于模板的网页动态生成方法、程序和系统的制作方法
技术领域
:本发明涉及一种网页的生成方法、一种用于实施所述方法的计算机程序和一种用于实现所述方法的计算机系统。本发明特别适用于嵌入式系统(embeddedsystem)。
背景技术
:在互联网中,由服务器提供网页并将其传输给客户。在此过程中,网页通常是动态生成,也就是在客户发出请求时才生成网页。由此可使例如不同的浏览器得到支持,并在所用网页中嵌入当前的信息。目前一般用已知脚本语言进行网页的动态创建,例如微软公司的ASP/ASP.net(activeserverpages,动态服务器网页)或开放源代码脚本语言PHP。PHP是“PHPHypertextPreprocessor”(PHP超文本预处理器)的递归缩写。籍此通过运行脚本来创建网页。使用所述的某种脚本语言作为编程环境不仅复杂,而且也需要大量的硬件资源。此外还须精心封装所用脚本,以免对服务器的稳定性产生负面影响。如果使用普通的计算机作为服务器,这种资源需求通常容易满足。在此情况下,使用脚本语言提供了多种灵活创建网页的方法。但是如果服务器的可用资源较少,例如由于微处理器能力较低或服务器的主内存较小,或只配备有较小的甚至没有配备硬盘存储器,就无法使用上述类型的脚本语言。这种情况主要出现在嵌入式系统中,所述系统常应用于自动化
技术领域
:。嵌入式系统的优化方向为成本最小化,其所使用的硬件结构大多有所简化,其中包括存储容量较小、速度较慢的处理器,与此同时,硬件又需尽可能稳定地工作。因而,这种嵌入式系统无法提供脚本语言所需的资源。为使嵌入式系统能够动态创建网页,动态部分迄今为止一直存储在固件内。其结果是无法对动态部分进行后续修改,也无法进行例如面向客户的网页匹配。
发明内容本发明的目的在于在对硬件资源需求较小的情况下实现网页的动态创建。这一目的通过独立权利要求所述的技术特征得以实现。优选的实施方案通过从属权利要求所述的技术特征或在说明书中加以描述。根据本发明,上述目的通过以下网页生成方法加以实现首先提供一由静态代码组成的基本网页,其中存在如下两种方式a)将基本网页链接到至少一个数据文件,所述数据文件进而链接到至少一个模板。在此情况下,通过解析所述数据文件,以及所述链接,由此至少一次解析所述模板,所述解析过程的输出结果作为动态部分对所述基本网页进行补充。b)可选的或作为上述方式的补充,基本网页同时链接到一数据文件与一模板。在此情况下,通过分别解析所述数据文件和所述模板,并将所述解析过程的共同输出结果作为动态部分对所述基本网页进行补充。通过下述方式生成基本网页的一插件,即对数据文件和模板分别进行解析,两个解析过程的共同输出构成上述静态基本网页的一动态部分形式的插件。此外,上述目的还通过一计算机程序而加以实现,借助所述计算机程序可在一计算机系统中执行上述方法。此外,本发明还提供一种用于实施上述方法的计算机系统。本发明的方法用于网页的动态生成。在本发明的说明书中,“网页的动态生成”是指当第三方发出请求时才生成网页。所述第三方为第二计算机或一客户,其由第一计算机或服务器获取网页。在第一步中,提供一由静态代码组成的基本网页。“静态代码”,例如为一ASCII文件,是指长时间保持不变的代码,并且其生成网页中的重复再现部分。该静态部分可以定义网页的布局,或者也可以通过其配色方案来反映企业形象。与此相反,动态代码与静态代码相比,其变化更加频繁,并用于例如在网页上提供针对客户的或日日更新的信息,有些情况下甚至是每秒更新的信息。有关动态代码的另一个例子是网页上经常出现的广告条幅。所述基本网页可存储在计算机系统的一存储模块(例如一EPROM或ASIC)内,并对其进行读取。但也可以借助一合适的程序首先生成所述基本网页。所述基本网页可以是一个文本文件并具有至少一个链接到至少一个数据文件的链接。在第一种情形下,所述数据文件进而具有至少一个链接到至少一个模板的链接。通过使用一解析器,并借助所述数据文件和模板生成基本网页的一插件。所述基本网页和所述插件被传输给客户,并由客户处的浏览器作为单个网页显示在屏幕上。所述插件通过下述方法生成解析器对基本网页进行解析,并找到一链接到所述数据文件的链接。该链接的语法为“处理数据(文件名,模板名)”,其中,“文件名”是所述数据文件的名称,“模板名”是所述模板的名称。由此可以看出,基本网页也会链接至所述模板。为生成所述插件,对数据文件进行解析,然后再对基本网页上位于所述链接之后的部分进行解析。这一过程会根据链接的数量而重复进行,直到整个基本网页解析完成为止。在解析过程中,解析器检验数据文件的语法,并产生一输出结果,所述输出结果被存储在一(输出)缓冲器或主存储器内。所述输出结果当然也可以存在于一数据载体中从而被存储在例如一硬盘上。所述数据文件内部存在至少一个链接到至少一个模板的链接。当解析器到达链接点时,就会对所链接到的模板进行解析。在此过程中,解析器实质上通过将模板的行复制到所述缓冲器内来产生一输出结果。如果模板具有可变结构,解析器则使用可变结构的取值来替代可变结构。在此情况下,所述取值可总体上预先确定或存储在数据文件中。在第二种情形下,基本网页同时链接到一数据文件与一模板。每到达一链接点就会调用一单独的解析器实体。根据链接点在基本网页内的位置和所用的计算机体系结构,所述的各解析器实体在时间上依次相接或(几乎)短时并行所述解析器实体的共同输出结果即构成基本网页的动态插件。本发明的方法的优点在于可动态生成网页,同时,借助本发明中数据文件的内容和模板内容可实现灵活的生成方式。尽管本发明的方法的灵活性和可选方式尚不允许使用脚本语言,但与借助脚本语言来动态生成网页的方案相比,本发明的方法对硬件资源的需求大大降低,特别是对微处理器的能力和主内存的容量要求大大降低。生成的网页原则上可为任意一种文本格式,优选地可为HTML格式或XML格式,从而只需浏览器而无需使用其它的软件就可对其进行图形显示。所述数据文件可包含一可变结构列表,所述模板可包含一与此对应的取值列表。当所述模板被解析时,解析器会将至少一个可变结构使用它的取值来进行替代。所述取值可以存储在数据文件内,也可以是总体上已知的。举例而言,所述模板可以包括一可变结构数组,所述数组例如为一由行和列组成的表格,所述数据文件则包括一个与之对应的取值数组。通过相应更新所述数据文件和改变所述取值,就可灵活地生成所述基本网页的插件。所述数据文件和所述模板优选为XML文件,从而可以跨平台使用。这一点有助于降低维护费用,并简化在不同操作系统中的实施过程。在此情况下可以使用已知的XML文件解析器,其中,鉴于其较高的易用性,DOM解析器尤其适用。此处,DOM是XML文档对象模型(DocumentObjectModel)的缩写,是XML格式文档的可编程用户界面。对一XML数据文件和一与之对应的XML模板的解析通常是依次进行的,所述数据文件中的每一XML节点或标签都被检验是否存在一关连的模板。如果存在一关联的模板,所述模板的内容会被完全解析,其内容被写入输出缓冲器。完成了对所述模板的完全解析后,解析器将处理所述数据文件的剩余部分,直到其被完全解析为止。所述数据文件也可以动态生成以显示当前的信息,其处理方式为,在第三方发出网页请求后才生成数据文件。这种处理方式例如适用于查询一次安装的组件的状态。所述数据文件在进行查询时生成,其中,该数据文件包含一个此次安装所有已连接组件或者说其状态为“ON”的组件的列表。可以使用一辅助程序来生成所述数据文件,所述程序由各微处理器执行。可选的,所述辅助程序也可以驻留在系统的固件或是硬件中,例如一ASIC中。本发明的方法优选借助于一计算机程序来实施。所述计算机程序包括一传统解析器与一用于生成一数据文件和一模板的编辑器,所述传统解析器例如为一DOM解析器。所述编辑器优选为无需手动操作、可自动生成数据文件的编辑器。本发明的计算机系统包括一微处理器、主存储器和(必要时的)硬盘存储器,且可用于实施本发明的方法。为此,所述计算机系统具有用于生成上述由静态代码组成的基本网页的装置和用于通过解析数据文件和模板来生成基本网页的一插件的装置。所述装置可以分别为一解析器(也可以只使用一个解析器),或者是至少一个存储模块,例如一可编程的存储模块(例如EPROM或ASIC)。下面结合附图及附录通过具体实施例对本发明作进一步说明,其中图1为本发明方法的第一种实施方式的示意图;图2为本发明方法的第二种实施方式的示意图;图3为用一网页浏览器显示的整个网页文件;图4为一用于实施本发明方法的计算机系统。附录1为一HTML格式的基本网页文件;附录2为一XML格式的数据文件,附录1中的基本网页文件链接到此数据文件;附录3为一XML格式的模板,附录1中的基本网页文件和附录2中的数据文件链接到此模板。具体实施方式图1显示本发明方法的第一种实施方式的示意图。一基本网页1链接到一数据文件2,所述数据文件进而链接到一模板3。通过对数据文件2和模板3的解析生成基本网页1的一插件4。图2显示本发明方法的第二种实施方式的示意图。一基本网页1链接到一数据文件2与一模板3。通过对数据文件2和模板3的解析生成基本网页1的一插件4。附录1显示一标准的HTML页面,其中,在第15行通过调用“ProcessXMLData”同时链接到一数据文件与一模板。这是因为这个函数调用的两个变量分别是所述数据文件的名称“MainNavigation1.xml”和所述模板的名称“MainNavigation2.xml”。使用一HTML解析器进行解析,具体地说所述HTML解析器为申请人所推广的MWLS服务器的MiniWeb浏览器的解析器。所述解析器会对HTML页面中的前14行进行解析,随后开始对附录2所示的数据文件和附录3所示的模板进行解析。所述数据文件例如定义了有待显示的网页上的多个导航功能按钮。所述按钮显示在图3中的方框5中,并标有“Entrance”、“Variables”、“WebServices”、“Trace”和“VarSimulator”等字样。图2所示的其它网页内容(所述网页通过微软公司的网页浏览器显示)与本发明无关,因此为简化起见未在基本网页中对其进行体现。模板中的第9、10行定义了用于主菜单的所要生成的一组按钮。变量“NAME”用于在所述按钮上编制字样,其中,所述变量在第12行中被赋予一个取值,所述取值根据附录2所示的数据文件为值“Entrance”。第13至15行中定义了当一光标移动到该按钮上时,系统该如何反应。通过所述解析过程生成了附录1所示的HTML基本网页的一动态部分插件。所述动态部分显示在图3中的方框5中。借助所述数据文件和模板生成的按钮并排布置在方框5中。图4显示了一计算机系统,所述计算机系统包括计算机1本身、一显示屏2、一键盘3与一鼠标4。所述系统具有一ASIC形式的装置5,所述装置用于提供一由静态代码组成的基本网页。另一ASIC形式的装置6用于通过对一数据文件与一模板进行解析而生成基本网页的一插件。一可选方案为只设置一个ASIC装置,其用于生成所述基本网页及其动态插件。附录1基本网页示例<prelisting-type="program-listing">  <html><head>  <title>  MiniWebMainNavigation  </title></head><linkrel="stylesheet"type="text/css"href="/CSS/MiniWeb.css"></link>  <scriptlanguage="JScript"src="/Scripts/Portal.js"></script>  <bodyclass="P0RTAL"style="{height=′22px′;top=′0px′;margin-top=′0px′}">  <table>  <tr>  <!--<MWSL>ProcessXMLData(<EXTERNAL  SRC="/XML/MainNavigationl.xml"/>,<TEMPLATES><EXTERNALSRC="/Templates/MainNavigation2.xml"/></TEMPLATES>)</MWSL>-->  </tr>  </table></body></html></pre>附录2数据文件示例<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"/>&lt;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">  <xmlversion="1.0"standalone="yes"><TEMPLATES><TEMPLATENAME="APPLICATION">  <POSITIONNAME="LINE">  <![CDATA[  <td>  <inputclass="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>权利要求1.一种网页,尤其是自动化技术中的网页生成方法,其步骤如下提供一由静态代码组成的基本网页,其中所述基本网页链接到至少一个数据文件,所述数据文件进而链接到至少一个模板,和/或所述基本网页同时链接到至少一个模板与一数据文件;通过对所述数据文件和所述模板进行解析来生成所述基本网页的一插件。2.根据权利要求1所述的方法,其特征在于,生成的网页为HTML或XML格式的网页。3.根据权利要求1所述的方法,其特征在于,所述数据文件包含一可变结构列表,所述模板包含一与此对应的取值列表。4.根据权利要求1所述的方法,其特征在于,所述数据文件和所述模板为XML文件。5.根据权利要求4所述的方法,其特征在于,为生成所述基本网页的插件,每一XML节点均被检验是否存在一关联的模板,如果存在一关连模板则对所述模板进行完全解析。6.根据权利要求1至5中任一项权利要求所述的方法,其特征在于,所述模板具有至少一个可变结构,在生成所述插件时使用所述可变结构存储在所述数据文件中的取值来替代所述可变结构。7.根据权利要求1至5中任一项权利要求所述的方法,其特征在于,当一第三方发出请求时才生成所述网页。8.根据权利要求7所述的方法,其特征在于,在一第三方请求所述网页时生成所述数据文件,随后生成所述网页的插件。9.一种计算机程序产品,其直接加载于一数字计算机的内存中,并包括软件代码段,当在一计算机上运行所述计算机程序产品时,所述软件代码段用于执行权利要求1至8中任一项权利要求所述的步骤。10.根据权利要求9所述的计算机程序产品,且包含于一数据载体中并存储在一计算机存储器内。11.一种计算机系统,包括用于生成一由静态代码组成的基本网页的装置,其中所述基本网页链接到至少一个数据文件,所述数据文件进而链接到至少一个模板,和/或所述基本网页同时链接到至少一个模板与一数据文件;用于通过解析所述数据文件和所述模板来生成所述基本网页的一插件的装置。12.一种自动化系统,包括用于生成一由静态代码组成的基本网页的装置,其中所述基本网页链接到至少一个数据文件,所述数据文件进而链接到至少一个模板,和/或所述基本网页同时链接到至少一个模板与一数据文件;用于通过解析所述数据文件和所述模板来生成所述基本网页的一插件的装置。专利摘要本发明涉及一种动态生成网页的方法,以及一种用于实施所述方法的计算机程序和计算机系统。通常情况下,只有当一客户发出请求时才生成网页。为此需使用像ASP或PHP那样的对硬件资源有很高需求的脚本语言。硬件资源有限的计算机系统,尤其是嵌入式系统,则无法满足这种需求。本发明的目的是提供一种灵活机动、且又节省资源地生成网页的方法。该目的通过为客户提供一静态网页,并为可变的内容组件提供一插件来实现。所述插件借助于一标准解析器、一数据文件与一模板而生成。所述静态网页链接到所述数据文件,所述数据文件链接到所述模板。可选的,所述静态网页也可同时链接到所述数据文件和所述模板。文档编号G06F17/30GK1993694SQ20058002590公开日2007年7月4日申请日期2005年7月21日发明者弗兰克·沃尔克曼,托马斯·塔拉尼斯,托马斯·特罗斯特申请人:西门子公司导出引文BiBTeX,EndNote,RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1