CN1581132A - 服务器、信息处理方法和程序 - Google Patents

服务器、信息处理方法和程序 Download PDF

Info

Publication number
CN1581132A
CN1581132A CNA2004100586673A CN200410058667A CN1581132A CN 1581132 A CN1581132 A CN 1581132A CN A2004100586673 A CNA2004100586673 A CN A2004100586673A CN 200410058667 A CN200410058667 A CN 200410058667A CN 1581132 A CN1581132 A CN 1581132A
Authority
CN
China
Prior art keywords
view
client computer
jsp
file
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004100586673A
Other languages
English (en)
Other versions
CN1311375C (zh
Inventor
近藤豪
广濑绅一
北山文彦
中村宏明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1581132A publication Critical patent/CN1581132A/zh
Application granted granted Critical
Publication of CN1311375C publication Critical patent/CN1311375C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种万维网应用服务器,它适当地执行处理,该处理是关于来自在万维网应用设计时未假定的终端设备的访问。万维网应用服务器包括存储了DLG文件的DLG文件存储单元12,在DLG文件中万维网应用的业务逻辑以一种抽象表示中的定义被描述,使用该DLG文件并执行万维网应用的业务处理的DLG执行单元13,该万维网应用响应客户机的请求,视图特定化器14,在DLG执行单元的处理结果的基础上,通过JSP生成于客户机属性对应的视图,以及响应生成单元16,通过在视图特定化器14中生成的使用JSP文件的视图,来生成并向客户返回响应。

Description

服务器、信息处理方法和程序
技术领域
本发明涉及一种通过网络接收来自预定客户的请求、执行万维网应用的万维网应用服务器,及其信息处理方法。
背景技术
随着网络环境,例如国际互联网(Internet)的建立完善,万维网(web)应用变得广泛,其中可以利用以万维网为基础的网络系统上的浏览器对其进行操作。为了实现万维网应用,要求具备在服务器上动态生成万维网页来响应来自客户(浏览器)的请求,并将该万维网页送往客户的功能。JSP(Java服务器页面)是解决上述问题的常用方法。JSP是一种利用Java(美国太阳微系统公司的商标)语言来实现上述万维网页(web page)动态生成的技术。
现在,有大量不同类型的终端设备可连接到国际互联网上。因此,在万维网应用上需要执行一种适当的处理,它与试图利用上述万维网应用的终端设备的类型相对应。
对于当针对许多终端设备设计万维网应用时允许通过适当的JSP和适当的动作执行万维网应用的处理的现有技术,有美国IBM公司的多设备编写技术(在下文中称作MDAT)(例如,参见“非专利文本1”)。
对于MDAT,在被称为JSP模型2的结构的基础上,提供了用于多种终端设备的基于MVC(模型,视图,控制)模型的万维网应用开发技术。对于以MVC模型为基础的万维网应用,万维网应用被分解成用于描述业务逻辑的模型,一个用于描述万维网屏幕设计的视图,和用于描述针对来自客户的请求和业务处理的协作控制的控制器。它们通过以下方式被创建,其中以抽象表示的定义作为模型,JSP作为视图,servlet作为控制器。
为了使万维网应用适用于多种类型终端,需要提供大量的JSP集合来与各自的终端设备相一致,例如,在用于在终端设备的显示装置上显示处理内容或者结果视图部分中。至于MDAT,根据被称为不专门用于任何特定终端设备的对话的抽象表示,作为这个视图部分的JSP文件由视图特定化器(view specializer)自动生成。然后,应当预先指定被应用软件作为目标的终端设备。视图特定化器从预定简表数据库中获得指定终端设备的属性(所使用的标记语言,屏幕尺寸,可显示色彩数量等等),并因此适当地生成JSP文件。
这样,根据用于识别作为目标的终端设备和基于有关其属性的信息生成JSP文件的方法,当设计万维网应用时,要生成的JSP将变得明显,并可以将针对特定终端设备的定制加到JSP中。
[非专利文档1]
″Everyplace Toolkit for WebSphere Studio″,(online),IBM,[搜索于7月15,2003],Internet<URL:
http://www-3.ibm.com/software/pervasive/products/mobile_apps/ev eryplace_toolkit.shtm
[本发明所要解决的问题]
如上所述,为了通过取决于客户终端设备类型的万维网应用适当地执行处理,有必要提供与利用万维网应用的终端设备的相应类型相对应的视图。但是,生成与可连接到国际互连网的终端设备的非常大量的所有类型相对应的视图,将会导致增加万维网应用开发的负担。
此外,因为可连接到国际互联网的终端设备的类型日益增长,很难适应在设计万维网应用时未假定的终端设备。如上述的MDAT等等,在用于设计万维网应用时生成视图(JSP)的方法中,为了创建、测试以及调试万维网应用,必须创建关于已经存在的终端设备的JSP文件,并且不可能适应任何未知的终端设备。
作为一种适应来自未知终端设备的请求的方法,可以考虑的是,当应用服务器接受来自这种终端设备的第一个请求时,马上为上述终端设备生成与整个万维网应用对应的视图。
但是,当应用服务器接受来自未知终端设备的第一个请求时,如果生成与整个万维网应用相对应的视图,则对上述第一个请求产生响应将是非常耗时的。
而且,根据上述万维网应用的设计,对于一些类型的仅仅使用(或者可不使用多于)万维网应用的一部分功能的终端设备来说,如果创建了与整个万维网应用相对应的视图,由于也针对那些不使用的功能创建视图,这将是浪费的。
需要注意的是,在使用JSP以外的生成万维网应用的视图的方法的情况下,上述的问题也当然存在。
因此,本发明的一个目的是提供一种万维网应用服务器,它也能够针对来自在万维网应用设计时没有假定的终端设备的访问适当地执行处理,从而减少万维网应用开发的负担。
此外,本发明的另一个目的是允许在上述万维网应用服务器中对来自未知终端设备的请求作出有效和快速的响应。
发明内容
为了实现上述目的,本发明被作为一种万维网应用服务器来实现,它通过网络接收来自预定客户机的请求并且执行一种配置如下的万维网应用。这个万维网应用服务器的特征在于包括:存储抽象视图的抽象视图存储单元,该抽象视图是独立于客户机显示形式的视图定义;抽象视图处理执行单元,用于使用该抽象视图针对来自客户机的请求执行处理;视图生成单元,用于根据抽象视图处理执行单元的处理结果,生成与客户机的属性相对应的视图;和响应生成单元,用于使用在视图生成单元中生成的视图来生成并返回给客户机一个响应。
在这里,视图生成单元可通过JSP来生成视图,并且抽象视图用于超链接的链接目的地,这些超链接被包括在已生成的视图而非其它视图中。作为抽象视图,可使用不考虑特定客户机系统结构的抽象表示中的视图定义,或者用国际化JSP描述的视图。万维网应用服务器还包括视图存储单元,用于保存在视图生成单元中生成的视图,并且如果与由抽象视图处理执行单元响应客户机请求而执行的处理结果相对应的客户机的视图已经被保存在视图存储单元中,那么视图生成单元就不会重新生成视图,但响应生成单元可以使用保存在视图存储单元中的视图来生成响应。
根据本发明的另一种万维网应用服务器的特征在于包括:业务执行装置,用于使用不考虑客户机属性的抽象表示的定义来执行万维网应用的业务处理;JSP文件生成装置,用于根据该业务执行装置的业务处理结果生成与客户机属性相一致的JSP文件;和响应装置,用于使用在该JSP文件生成装置中生成的JSP文件来生成和向客户机返回响应。
根据本发明的另一种万维网应用服务器的特征在于包括:定义存储装置,用于存储不考虑客户机属性的抽象表示的定义;处理执行装置,用于使用这种抽象表示的定义针对客户机请求执行处理;模板生成装置,用于生成允许在客户机上显示处理执行装置的处理结果的模板;和响应装置,用于使用在模板生成装置中生成的模板,来生成和返回用来在客户机上显示处理执行装置的处理结果的响应。
此外,为了实现上述目的,本发明也被作为一种信息处理方法来实现,该方法用于接受来自预定客户机的请求,并且由万维网应用通过连接到网络的计算机执行业务处理,该计算机配置将在下文中描述。换句话说,这个信息处理方法的特征在于包括:自客户机接受请求,并且使用存储在预定存储设备中、不考虑客户机属性的抽象表示的定义来执行万维网应用的业务处理的第一步骤;生成允许在客户机上显示处理执行装置的处理结果的模板,并在预定存储设备中存储模板的第二步骤;和使用存储在存储设备中的模板来生成并向客户机返回针对请求的响应的第三步骤。
此外,本发明也可作为一种控制和允许计算机行使上述万维网应用服务器的功能的程序,或者一种允许计算机执行与上述信息处理方法中每一步骤相对应的处理的程序来实现。这种程序可通过将其存储或者分布在磁盘或光盘,半导体内存,或者其他记录介质,或者通过网络发送等方式来提供。
[发明的优点]
当上述万维网应用开发时,每次接收来自客户机的请求时,按照上述配置的本发明生成与客户机对应的视图,而不是针对所有使用万维网应用的客户机(终端设备)生成视图,因此能够适当地针对来自在设计万维网应用时未假定的终端设备的访问执行处理。因此,可减轻万维网应用开发的负担。
此外,因为当本发明接收了客户机的请求时生成针对上述请求执行响应所需的视图,而不是针对上述客户机生成所有与整个万维网应用相对应的视图,因此可对上述请求做出有效和快速的响应。
附图说明
附图1代表性地示出了适合实现实施例的万维网服务器的计算机硬件结构的例子;
附图2示出了根据实施例的万维网应用服务器的功能结构;
附图3示出了在实施例中使用的DLG文件的例子;
附图4示出了一个XML文件的例子,其中描述了实施例的DLG执行单元的功能;
附图5示出了一个JSP文件的例子,它是在设计上述万维网应用或接收来自终端设备的请求时,通过生成整个万维网应用的JSP文件的方法生成的;
附图6示出了一个Struts配置文件的例子,它是在设计上述万维网应用或接收来自终端设备的请求时,通过生成整个万维网应用的JSP文件的方法生成的;
附图7示出了在实施例中创立的万维网应用中的一个万维网应用布置描述符的例子;
附图8示出实施例中设计万维网应用时生成的Struts配置文件(struts-config.xml);
附图9是示出实施例的DLG执行单元的操作的流程图;
附图10示出了由根据实施例的附图3(A)中的DLG文件转换并生成的JSP文件;
附图11示出了实施例的响应生成单元生成的对终端设备的响应的例子;
附图12示出了本发明另一个实施例中使用的国际化JSP文件的例子;
附图13示出了实施例中使用的日语资源的例子;
附图14示出了通过实施例中附图13的日语资源对附图12中国际化JSP文件进行本地化的例子;
附图15示出了根据实施例的万维网应用服务器的功能结构;而
附图16是示出实施例的国际化JSP执行单元的操作的流程图。
[符号说明]
10,20…万维网应用服务器
11…终端简表DB(数据库)
12…DLG文件存储单元
13…DLG执行单元
14…视图特定化器(View specializer)
15…JSP文件存储单元
16…响应生成单元
21…国际化JSP文件存储单元
22…国际化JSP执行单元
101…CPU(中央处理单元)
103…主存储器
105…磁盘单元(HDD)
106…网络接口
具体实施方式
[优选实施例]
实现本发明的最优方式(下文中被称为“实施例”)将在下文中参考附图进行详细描述。
这个实施例作为一种万维网应用服务器来实现,它通过网络(例如国际互连网)接受来自客户机的请求,并且通过万维网应用来执行处理,以向上述客户机返回响应。这里客户机是一种信息终端(个人计算机,PDA(个人数据助理),网络电话等),用于执行可利用万维网应用的软件,在下面的说明书被称为“终端设备”,而不特别区分上述信息终端的硬件和在上述信息终端中运行的软件。例如,如果国际互联网浏览器(美国微软公司的互联网浏览器)被假定为客户机的一个实施例,无论是作为软件的国际互连网浏览器,还是在其上操作上述国际互联网浏览器的硬件,都被称作终端设备。
附图1代表性地示出了适合实现本实施例的万维网应用的计算机硬件结构的例子。
附图1中所示的计算机配有CPU(中央处理单元)101以作为运算装置,通过M/B(主板)芯片组102和CPU总线连接到CPU 101的主存储器103,通过M/B芯片组102和AGP(图像加速端口)与CPU 101相连的视频卡104,通过PCI(外围设备互连)总线与M/B芯片组102连接的硬盘(HDD)105和网络接口106,以及通过桥接电路107和例如ISA(工业标准结构)总线的低速总线从PCI总线连接到M/B芯片组102的软盘驱动器106和键盘/鼠标109。
需要注意,附图1仅仅举例说明了实现该实施例的计算机的硬件结构,并且可以采用其他可应用该实施例的其它各种结构。例如,可以不提供视频卡104,而是仅安装视频存储器以具备在CPU 101中处理图像数据的结构,并且作为外部存储设备,用于CD-R(可记录光盘)或者DVD-RAM(通用数字光盘随机访问存储器)的驱动器可通过例如ATA(AT附件)或者SCSI(小型计算机系统接口)的接口来提供。
附图2示出了一种根据该实施例的万维网应用服务器10的功能结构。
参考附图2,为该实施例中的万维网应用服务器10提供了存储关于不同种类终端设备(客户机,用户代理)的属性的信息的终端简表DB(数据库)11,存储对话文件(这里及此后称为“DLG文件”)的DLG文件存储单元12(其中万维网应用被以不特定于具体终端设备的抽象表示来描述),当执行万维网应用时动态生成JSP的DLG执行单元13和视图特定化器14,保存生成的JSP的JSP文件存储单元15,和解释JSP文件并生成由HTML文档等组成的响应的响应生成单元16。
在上述结构中,终端简表数据库11,DLG文件存储单元12和JSP文件存储单元15例如在附图1所示的计算机的主存储器103或者磁盘单元105中实现。另外,DLG执行单元13,视图特定化器14和响应生成单元16例如被实现为附图1中程序控制的CPU 101的功能。控制CPU 101的程序可通过将它存储和分布在磁盘或者光盘,半导体存储器,或者其他记录介质,或者通过网络发送等等来提供。
在附图2所示的该实施例中,终端简表数据库11存储了与多种终端设备的属性(所使用的标记语言,屏幕尺寸,可显示色彩数量等等)(在下文中被称作“属性信息”)相关的信息,这些终端设备被假定访问万维网应用服务器10来利用万维网应用。被假定访问万维网应用服务器10的终端设备是类似于例如个人计算机的计算机、具有网络功能的PDA(个人数据助理)、网络电话等等的信息终端。另外,终端简表数据库11的内容在需要时根据能够访问万维网应用服务器10的终端设备类型数量的增长而被更新,并且向终端简表数据库11的内容中加入有关上述类型的属性信息。
DLG文件存储单元12存储了DLG文件,其中由万维网应用服务器10提供的万维网应用的功能以不特定于具体终端的抽象表示或者对话来描述。DLG文件是一种视图定义(抽象视图),它以独立于单独客户机上的显示形式的抽象表示描述用于在客户机上演示万维网应用的业务处理内容或结果的视图。
DLG执行单元13是DLG servlet(控制器),用于接受来自预定终端设备的关于万维网应用的请求(HTTP请求等等),在对话层执行关于上述请求的处理,并控制与上述终端设备相对应的JSP文件的生成。即,DLG执行单元13是业务(处理)执行装置,用于使用DLG文件作为抽象视图来通过万维网应用执行业务处理。特别是,DLG执行单元13首先在对话层解释并执行来自终端设备的请求,识别响应所需的DLG文件,并且从请求头中用户代理字段的说明等等中,获得用来识别上述终端设备(用户代理)的关键信息。接着,DLG执行单元将这些信息提供给视图特定化器14,以使其生成相应的JSP文件。另外,DLG执行单元13也向响应生成单元16传送接受自终端设备的请求和关键信息。
视图特定化器14从DLG文件存储单元12读取在DLG执行单元中识别的DLG文件,使用同样从DLG执行单元13获得的关键信息,并且检索终端简表数据库11来获得有关相应终端设备的属性信息。视图特定化器14将所读的DLG文件转换为JSP文件,JSP文件是特定于上述终端设备的视图。即,视图特定化器14是视图生成装置,用于根据作为不考虑具体终端设备属性的抽象视图的DLG文件,生成作为特定于具体终端设备属性的视图的JSP文件。在视图特定化器14中生成的JSP文件被存储在JSP文件存储单元15中,作为用于生成针对终端设备的响应的模板。
在该实施例中,如果接受来自终端设备的请求,则不生成特定于上述终端设备和对应于整个万维网应用的所有JSP文件,而是仅仅生成响应上述请求所需的JSP文件。然后,如果在已生成的JSP文件中存在到另一个JSP文件的链接,并且作为链接目的文件的该另一个JSP文件尚未生成,则其不可象在为整个万维网应用生成JSP文件的情形中那样按照通常方式执行以定义链接目的文件和生成JSP文件。因此,如何在JSP文件中反映DLG文件中的链接或者到DLG文件的转变将成为问题。该实施例通过使已生成的JSP文件中的链接作为针对DLG文件而不是JSP文件的链接,解决了这个问题。将通过具体实施例来详细描述这种方法。
JSP文件存储单元15存储在视图特定化器14中生成的JSP文件。存储的JSP文件作为针对上述类型的万维网应用被存储在JSP文件存储单元15中,并且随后如果自同样类型的终端设备接受了同样的请求,它将被使用。即,对于来自同种类型终端设备的第二次或者随后的请求,不需要重新生成JSP文件。
响应生成单元16是一种JSP servlet,用于从DLG执行单元13接受来自上述终端设备的请求和关键信息,自JSP文件存储单元15读取与上述请求相对应的JSP文件,生成关于上述请求的响应(HTTP响应等等),并且向上述终端设备返回响应。
下面,为了描述该实施例的操作,将介绍文件的具体例子。
假设附图3中所示的DLG文件(Hello.dlg和World.dlg)存储在DLG文件存储单元12中。还假设DLG执行单元13的功能已经在附图4所示的一个XML文件(controller.xml)中描述。如果根据Hello.dlg生成特定于单独终端设备的Hello.jsp,并且同样根据World.dlg生成World.jsp,则这个万维网应用是用于通过以从基于Hello.jsp的万维网页转变到基于World.jsp的万维网页,在终端设备的显示器上显示字符串“Hello World!”。
这里为了对比,将说明如果当设计万维网应用或者接受来自终端设备的请求时生成用于上述整个万维网应用的JSP文件,则生成哪种文件。如果根据这种方法自附图3所示的DLG文件通过关键信息“MSIE”标识终端设备,则生成附图5中所示的JSP文件(MSIE/Hello.jsp和MSIE/World.jsp),和附图6中所示的Struts配置文件(struts-config.xml)。接着,利用这些JSP文件和Struts配置文件,生成与用关键信息“MSIE”标识的终端设备属性相一致的响应(HTML文件)以返回给上述终端设备。
另一方面,在该实施例中,因为每当接受请求时仅仅生成必需的JSP文件,当由Hello.dlg生成Hello.jsp时,World.jsp尚未生成。因此,如果象附图6所示那样生成Struts配置文件,该Struts配置文件将不能被执行,从而产生错误。即,如果根据Hello.jsp从万维网页启动gotoWorld动作,则万维网页被传送给World.jsp,此时它仍是一个不存在的文件。这样,在执行gotoWorld动作之前,必须首先由World.dlg生成World.jsp。
因此,在该实施例中,对话本身而不是JSP文件被放在万维网应用中。因此,在上述万维网应用中的所有链接(欢迎文件,例如HTML中A标签的静态链接,作为动作结果的转移和重定向,等等)被导向对话而非JSP文件。
附图7示出了在实施例中创立的万维网应用中的一个万维网应用布置描述符的例子。
如上所述,如果DLG文件的文件扩展名是“dlg”,并且DLG servlet的类是corn.ibm.hopi.runtime.struts.DLGServlet,它的万维网应用布置描述符将如附图7中所示的那样。
另外,附图8示出了当设计上述万维网应用时生成的Struts配置文件(struts-config.xml)。
与附图6中的Struts配置文件相比,附图8中的Struts配置文件是DLG文件,而不是以关键信息“MSIE”标识动作的转移目的地、特定于终端设备的JSP文件。因为这种Struts配置文件不特定于具体终端设备,它在万维网应用生成时即已生成。
附图9是示出在如附图7中所示的DLG servlet,即DLG执行单元13接受来自预定终端设备的预定请求的情况下的操作(doGet和doPost方法)的流程图。
参考附图9,DLG执行单元13首先接受来自预定终端设备(用户代理)的请求(步骤901)。尽管这个请求是针对DLG文件的请求,然而不必直接请求DLG文件,而且可在万维网应用的根被访问时通过先前定义为欢迎文件的DLG文件间接请求,或者作为控制器servlet的DLG执行单元13自身可将请求作为业务逻辑的结果传送给DLG文件。
当DLG执行单元13接收了对DLG文件的请求时,它通过在万维网应用中定义的ServletMapping处理该针对DLG文件的请求。因此,识别了将被用于针对上述请求的响应的DLG文件(步骤902)。另外,DLG执行单元13检查在针对涉及上述请求的会话而配置的会话对象中是否存在用来标识终端设备类型的关键信息(步骤903)。然后,如果没有关键信息(即,在一个新的会话中接受第一个请求),则DLG执行单元13使用在包括在上述请求中的用户代理头中的字符串查询终端简表数据库11,创建关键信息,并且将其存储在会话对象中(步骤904)。
如果在步骤903中从会话对象获得关键信息,或者一旦在步骤904中创建关键信息,DLG执行单元13就使用上述的关键信息来检索JSP文件存储单元15,并且检查在步骤902中识别的DLG文件是否已经针对上述终端设备被特定化,即,是否已经产生与上述DLG文件相对应并且被特定于上述终端设备的JSP文件(步骤905)。如果相应的JSP文件没有存储在JSP文件存储单元15中,DLG执行单元13命令视图特定化器14来生成上述JSP文件。
视图特定化器14自DLG执行单元13处获得关键信息和用来识别DLG文件的信息,根据关键信息从终端简表数据库11处获得有关相应终端设备的属性信息,并且也从DLG文件存储单元12处读取在步骤902识别的DLG文件。然后根据从终端简表数据库11处获得的有关终端设备的属性信息,视图特定化器14将从DLG文件存储单元12读取的DLG文件转换成与特定于上述终端设备的JSP文件(步骤906)。
尽管在上述实施例中相应生成的JSP文件包括许多与应用流程相对应的链接,然而DLG文件被用于链接目的文件而不是JSP文件。例如,可在步骤902的处理中得到用来识别链接目的文件的DLG文件的信息。
附图10示出由根据该实施例的附图3(A)中的DLG文件转换并生成的JSP文件。
作为关于附图5的例子,附图10示出了在通过关键信息“MSIE“来标识终端设备的情况下的JSP文件。与附图5(A)中的JSP文件相比,可知动作的转移目的文件不限于通过关键信息“MSIE”标识的终端设备。
如上所述的已生成的JSP文件存储在JSP文件存储单元15中。
如果在步骤905中期望的JSP文件已经存在,或者当上述JSP文件在步骤906中生成之后,响应生成单元16自JSP文件存储单元15读取上述JSP文件,并且DLG执行单元13将自终端设备处接受的请求传送给上述JSP文件(步骤907)。
此后,响应生成单元16根据读取的JSP文件生成针对来自终端设备的请求、包括HTML文档等的响应,并且向上述终端设备返回响应(步骤908)。
附图11根据该实施例示出了根据附图10的JSP文件生成的针对具有关键信息“MSIE”的终端设备的响应(HTML文档)。
当附图11中所示的文档通过具有关键信息“MSIE”的终端设备(用户代理:美国微软公司的互联网浏览器)执行时,在显示器上显示一个提交按钮。当终端设备的用户用鼠标点击该提交按钮时,gotoWorld动作被启动,并且执行针对作为DLG文件的world.dlg的转移。当万维网应用服务器10的DLG执行单元13接受该请求时,它将执行附图9中所示的处理。因为当根据附图3(A)中的DLG文件生成附图10的JSP文件(MSIE/Hello.jsp)时获得的关键信息“MSIE”被存储在会话对象中,DLG执行单元13可在步骤903中获得关键信息,并且直接进行步骤905而不用在步骤904生成关键信息。
如果通过前面的操作或者通过由其他用户以相似的终端设备进行的操作,已经针对DLG文件Hello.dlg或World.dlg产生特定于上述终端设备的JSP文件,则DLG执行单元13绕过步骤906的处理并直接进行步骤907,因为上述JSP文件已经存储在JSP文件存储单元15中。
如上所述,根据该实施例,当预定类型的终端设备试图第一次利用万维网应用时,生成特定于上述终端设备的JSP文件来响应终端设备。因此,当上述万维网应用被设计时,没有必要针对可利用万维网应用的所有类型的终端设备准备JSP文件,并且因此可减少万维网应用开发的负担。另外,针对设计万维网应用时没有假定的终端设备,可生成并适应与上述终端设备相对应的JSP文件,来适当地执行处理。
而且,因为该实施例每次仅仅生成响应被请求处理所需的JSP文件,可防止等待时间的增长,并且没有象在接受第一次请求时生成与整个万维网应用相对应的所有JSP文件的情况中那样使用大量的时间。另外,该实施例可避免不必要地生成最终不会被使用的JSP文件。
尽管上述实施例的一个目的在于使万维网应用适应多种不同类型的终端设备,然而本发明的实质是,通过在万维网应用中用抽象视图直接执行处理来防止控制器的过度复杂,在万维网应用中,可根据作为抽象定义的抽象视图和客户机(终端设备)的属性来生成视图部分的JSP。因此,本发明的万维网应用服务器10不限于适配于多种类型的终端设备,而且例如考虑到以国际化JSP文件作为抽象表示,它也可用来在由该国际化JSP文件生成本地化JSP文件的情况下提高执行速度。
国际化JSP文件可通过JSTL(JSP标准标签库)或者Struts的标签支持库来生成。然而,在这种情况中,因为标签库是针对每个字、句子和段落来调用的,执行速度很低。
相反,在设计万维网应用时,可以考虑通过绑定相应语言资源来根据国际化JSP文件生成本地化JSP文件。例如,如果存在如附图12中所示的国际化JSP文件(hello.jsp)和如附图13中所示的日语资源(Myresource_ja.properties),在设计万维网应用时,最好生成如附图14中所示的本地化日语JSP文件(hello_ja.jsp)。因为在设计万维网应用时已经决定要在绑定的文本,并且在这些文本中没有变化,因此执行结果与使用标签库时的情况相同,但是执行速度很快,因为在这种方法中没有调用标签库。
可是,在这种设计万维网应用时生成本地化JSP文件的方法中,控制器必须被重写以转移到本地化JSP。当目标语言和区域设置(例如语言环境,举个例子,微软公司的操作系统中的地区)的数量增长时,这个任务将变得繁重。
因此,可以考虑在执行万维网应用时生成本地化JSP。
附图15示出了万维网应用服务器的功能结构,该网络应用服务器针对来自终端设备的请求根据国际化JSP文件生成本地化JSP文件,并返回响应。
如上所述,在该实施例中,国际化JSP作为抽象表示(抽象视图)使用,该抽象表示描述了用来在客户机上显示业务处理内容或结果的视图。因此,与附图2中所示的万维网应用服务器相比,为附图15中所示的万维网应用服务器20提供存储国际化JSP文件的国际化JSP文件存储单元21,而不是存储作为抽象视图的DLG文件的DLG文件存储单元12,并且也为其提供用于执行针对国际化JSP的处理的国际化JSP执行单元22,而不是用来执行关于会话的处理的DLG执行单元13。因为其他部件(终端简表数据库11,视图特定化器14,JSP文件存储单元15,和响应生成单元16)与附图2中所示的万维网应用10的部件相似,它们被标以与附图2中一样的附图标记,并省略其说明。
在附图15所示的万维网应用服务器20中,国际化JSP文件存储单元21被实现在例如附图1中所示的计算机的主存储器103或者磁盘单元105中。另外,国际化JSP执行单元22被实现为例如附图1的程序控制的CPU 101的功能。这个国际化JSP执行单元22是本地化JSP servlet(控制器),用于接受来自预定终端设备、针对万维网应用的请求(HTTP请求等),在国际化JSP的层次上执行针对上述请求的处理,并控制与上述终端设备的语言和区域设置相对应的JSP文件的生成。
附图16是示出在这种实施例中万维网应用服务器20的操作的流程图。
参考附图16,国际化JSP执行单元22首先接受来自预定终端设备(用户代理)的针对国际化JSP文件的请求(步骤1601)。
当国际化JSP执行单元22接收了该请求时,它利用在万维网应用中定义的ServletMapping处理针对国际化JSP文件的请求。因此,用于响应上述请求的国际化JSP文件被识别(步骤1602)。此外,国际化JSP执行单元22获得发出上述请求的终端设备的语言和区域设置信息(步骤1603)。对于doGet方法或者doPost方法中第一个参数的javax.servlet.http.HttpServletRequest类型的请求实例,通过调用getLocale方法可容易地获得关于语言和区域设置的信息。
下面,国际化JSP执行单元22使用在步骤1603中获得的语言和区域设置来检索JSP文件存储单元15,并且检查在步骤1602中识别的国际化JSP文件是否已经用上述语言和区域设置本地化,即,是否已经生成与上述国际化JSP文件相对应的本地化JSP文件(1604)。如果相应的本地化JSP文件没有存储在JSP文件存储单元15中,则国际化JSP执行单元22命令视图特定化器14生成上述本地化JSP文件。
视图特定化器14从国际化JSP执行单元22处获得语言和区域设置和用于识别国际化JSP文件的信息,并根据语言和区域设置信息从国际化JSP文件存储单元21处读取在步骤1602中识别的国际化JSP文件。然后视图特定化器14将国际化JSP文件转换成与上述语言和区域设置相对应的本地化JSP文件(步骤1605)。尽管因此生成的本地化JSP文件包括许多与应用流程对应的链接,然而国际化JSP文件被用于链接目标文件而不是本地化JSP文件。用于识别链接目标文件的国际化JSP文件的信息可从例如步骤1602的处理中获得。
如果在步骤1604中已经存在期望的JSP文件,或者在上述本地化文件在步骤1605中生成后,响应生成单元16从JSP文件存储单元15中读取上述本地化JSP文件,而且国际化JSP执行单元22将从终端设备接受的请求传送给上述本地化JSP文件(步骤1606)。
然后,响应生成单元16根据读取的本地化JSP文件生成由HTML文档等组成、针对来自终端设备的请求的响应,并且向上述终端设备返回该响应(步骤1607)。
在每一个上述的实施例中,万维网应用的控制器通过servlet来实现。但是,例如在门户服务器中,需要通过Portlet而不是servlet执行针对例如上述的对话或国际化JSP文件的抽象表示中的定义的处理。在这种情况中,这种功能可通过PortalStruts来实现。PortalStruts提供一种机制,允许自由定义和扩展命令(ViewCommand:在下文中称作“ViewCommand”)来处理随着控制器中的动作而传送的文件(与视图相对应)。关于抽象表示中的定义的处理可通过用该机制实现Viewcommand而不是servlet而在Portlet中执行。具体地,不是用布置描述符声明DLG servlet(DLG执行单元13),而是声明Viewcommand的工厂类(factory),并且设置DLG文件以生成通过执行方法来实现附图9中所示的算法的Viewcommand。对于要生成的Struts配置文件,可使用与使用servlet的上述实施例中相同的文件。
这样,本发明不必限于使用上述servlet或JSP的配置,而是可适用于在万维网应用中,可实现通过抽象视图直接执行针对来自客户机的请求的处理,以及随后使用与上述客户机相对应的适当视图向上述客户机返回响应的功能的配置,在所述万维网应用中,视图部份可根据抽象定义和客户机(终端设备)的属性来生成。

Claims (19)

1、一种用于通过网络接受来自预定客户机的请求并执行万维网应用的服务器,包括:存储有抽象视图的抽象视图存储单元,该抽象视图是独立于客户机上的显示形式的视图定义;
抽象视图处理执行单元,用于使用该抽象视图执行针对来自所述客户机的请求的处理;
视图生成单元,用于根据抽象视图处理执行单元的处理结果生成与所述客户机的属性相对应的视图;和
响应生成单元,用于使用在所述视图生成单元中生成的视图来生成对所述客户机的响应并返回该响应给所述客户机。
2、如权利要求1所述的服务器,其中所述视图生成单元通过JSP(Java服务器页面)生成所述视图。
3、如权利要求1所述的服务器,其中所述视图生成单元针对包括在所述已生成视图中的超链接的链接目标使用所述抽象视图。
4、如权利要求1所述的服务器,还包括视图存储单元,用于保存在所述视图生成单元中生成的视图,
其中如果所述客户机的与所述抽象视图处理执行单元为响应来自所述客户机的请求而执行的处理的结果相对应的视图已经被保存在所述视图存储单元中,则所述视图生成单元不生成该视图,并且所述响应生成单元使用保存在所述视图存储单元中的视图来生成对所述客户机的响应。
5、如权利要求1所述的服务器,其中所述抽象视图处理执行单元执行处理,该处理是针对在不考虑可使用万维网应用的客户机的系统配置的抽象表示中所描述的抽象视图的;并且
所述视图生成单元生成与所述客户机的系统配置相一致的视图。
6、如权利要求1所述的服务器,其中所述抽象视图处理执行单元执行针对以国际化JSP描述的抽象视图的处理;而且
所述视图生成单元用与所述客户机的语言和区域设置相对应的本地化JSP生成视图。
7、一种用于通过网络接受来自预定客户机的请求并执行万维网应用的服务器,包括:
业务执行装置,用于使用不考虑述客户机属性的抽象表示的定义来执行所述万维网应用的业务处理;
JSP文件生成装置,用于根据所述业务执行装置的业务处理结果生成与所述客户机的属性相一致的JSP(Java服务器页面)文件;以及
响应装置,用于使用在所述JSP文件生成装置中生成的JSP文件来生成对所述客户机的响应并将该响应返回给所述客户机。
8、如权利要求7所述的服务器,其中所述JSP文件生成装置针对已生成JSP文件中到另一个文件的超链接中的链接目标使用所述抽象表示的定义。
9、如权利要求7所述的服务器,还包括JSP文件存储装置,用于保存在所述JSP文件生成装置中生成的所述JSP文件,
其中如果根据所述业务执行装置的业务处理结果与所述客户机的属性相一致的JSP文件已经被保存在所述JSP文件存储装置中,则所述JSP文件生成装置不生成JSP文件,并且所述响应装置使用保存在所述JSP文件存储装置中的JSP文件来生成对所述客户机的响应。
10、一种用于通过网络接受来自预定客户机的请求并执行万维网应用的服务器,包括:
定义存储装置,其存储有不考虑所述客户机属性的抽象表示的定义;
处理执行装置,用于使用所述抽象表示的定义来执行针对来自所述客户机的请求的处理;
模板生成装置,用于生成允许在客户机上显示所述处理执行装置的处理结果的模板;和
响应装置,用于使用在所述模板生成装置中生成的模板来生成用来在所述客户机上显示所述处理执行装置的处理结果的响应,并向所述客户机返回该响应。
11、如权利要求10所述的服务器,其中所述模板生成装置针对包括在已生成模板中的超链接的链接目标使用所述抽象表示的定义。
12、一种通过连接到网络的计算机接受来自预定客户机的请求并通过万维网应用执行业务处理的信息处理方法,包括:
第一步骤,用于从所述客户机接受请求,并使用存储在预定存储设备中、不考虑所述客户机属性的抽象表示的定义,来执行万维网应用的业务处理;
第二步骤,用于生成允许在所述客户机上显示所述业务处理的结果的模板,并在预定存储设备中存储该模板;和
第三步骤,用于使用存储在所述存储设备中的所述模板来生成针对所述请求的响应并向所述客户机返回该响应。
13、如权利要求12所述的信息处理方法,其中如果与所述第一步骤的业务处理的结果相对应的所述模板已经被保存在所述预定存储设备中,则所述模板不在所述第二步骤中重新生成。
14、一种用于控制并允许连接到网络的计算机接受来自预定客户机的请求并通过万维网应用执行业务处理的程序,所述程序允许所述计算机执行:
第一处理,用于从所述客户机接受请求,并使用存储在预定存储设备中、不考虑所述客户机属性的抽象表示的定义,来执行万维网应用的业务处理;
第二处理,用于生成允许在所述客户机上显示所述业务处理的结果的模板,并在预定存储设备中存储该模板;和
第三处理,用于使用存储在所述存储设备中的所述模板来生成针对所述请求的响应并向所述客户机返回该响应。
15、如权利要求14所述的程序,其中在所述第二处理中,生成JSP(Java服务器页面)文件以作为所述模板。
16、如权利要求14所述的程序,其中如果与所述第一处理的业务处理的结果相对应的所述模板已经被保存在所述预定存储设备中,则所述模板不在所述第二处理中重新生成。
17、如权利要求14所述的程序,其中在所述第二处理中,所述抽象表示的定义被用于包括在已生成模板中的超链接的链接目标。
18、一种用于控制并允许连接到网络的计算机接受来自预定客户机的请求并且通过万维网应用执行业务处理的程序,所述程序允许所述计算机充当:
处理执行装置,用于接受来自所述客户机的请求,并使用存储在预定存储设备中、作为独立于客户机显示形式的视图定义的抽象视图,来执行针对所述请求的处理;
视图转换装置,用于根据所述处理的结果生成与所述客户机的属性相对应的视图,并将该视图存储在预定存储设备中;和
响应生成装置,用于使用存储在所述预定存储设备中的所述视图生成对所述客户机的响应并将该响应返回给所述客户机。
19、一种计算机可读的记录介质,记录有根据权利要求14到18中任一权利要求的程序。
CNB2004100586673A 2003-07-31 2004-07-27 服务器和信息处理方法 Expired - Fee Related CN1311375C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP283501/2003 2003-07-31
JP2003283501A JP4709481B2 (ja) 2003-07-31 2003-07-31 サーバ、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
CN1581132A true CN1581132A (zh) 2005-02-16
CN1311375C CN1311375C (zh) 2007-04-18

Family

ID=34101054

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100586673A Expired - Fee Related CN1311375C (zh) 2003-07-31 2004-07-27 服务器和信息处理方法

Country Status (3)

Country Link
US (2) US7454703B2 (zh)
JP (1) JP4709481B2 (zh)
CN (1) CN1311375C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996963B (zh) * 2006-01-06 2012-10-31 株式会社日立制作所 信息处理方法、信息处理装置以及程序

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4758253B2 (ja) * 2006-03-02 2011-08-24 富士通株式会社 イベントドリブン型アプリケーションの画面制御装置,画面制御方法およびそのプログラム
US20080127234A1 (en) * 2006-09-19 2008-05-29 International Business Machines Corporation Methods, systems, and computer program products for a remote request dispatcher extension framework for container based programming models
US20080071922A1 (en) * 2006-09-19 2008-03-20 International Business Machines Corporation Methods, systems, and computer program products to transparently dispatch requests to remote resources in a multiple application server environment
US8032587B2 (en) * 2007-08-28 2011-10-04 International Business Machines Corporation Method and apparatus for client-side aggregation of asynchronous fragmented requests
US8984165B2 (en) * 2008-10-08 2015-03-17 Red Hat, Inc. Data transformation

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5782508A (en) * 1980-10-29 1998-07-21 Proprietary Technologies, Inc. Swivelable quick connector assembly
US5649131A (en) * 1992-12-30 1997-07-15 Lucent Technologies Inc. Communications protocol
TW347498B (en) * 1996-09-30 1998-12-11 Casio Computer Co Ltd Information supply system
JP3202968B2 (ja) 1998-06-30 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示制御情報生成方法及びコンピュータ
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US6697849B1 (en) * 1999-08-13 2004-02-24 Sun Microsystems, Inc. System and method for caching JavaServer Pages™ responses
US7383320B1 (en) 1999-11-05 2008-06-03 Idom Technologies, Incorporated Method and apparatus for automatically updating website content
AU2001227857A1 (en) * 2000-01-14 2001-07-24 Saba Software, Inc. Method and apparatus for a business applications management system platform
JP2001344105A (ja) * 2000-03-31 2001-12-14 Hitachi Software Eng Co Ltd Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体
US6327628B1 (en) * 2000-05-19 2001-12-04 Epicentric, Inc. Portal server that provides a customizable user Interface for access to computer networks
US20020194267A1 (en) * 2000-06-23 2002-12-19 Daniel Flesner Portal server that provides modification of user interfaces for access to computer networks
US20020046240A1 (en) * 2000-08-31 2002-04-18 Scott Graham Web server framework
GB0023570D0 (en) * 2000-09-26 2000-11-08 Volantis Systems Ltd Web server
US6950850B1 (en) * 2000-10-31 2005-09-27 International Business Machines Corporation System and method for dynamic runtime partitioning of model-view-controller applications
US6766333B1 (en) * 2000-11-08 2004-07-20 Citrix Systems, Inc. Method and apparatus for synchronizing a user interface element displayed on a client and a software application component executing on a web server
US7000185B1 (en) * 2001-04-30 2006-02-14 General Electric Capital Corporation Method and system for customization of a program
US7603403B2 (en) * 2001-05-30 2009-10-13 International Business Machines Corporation Localization in distributed computer environments
JP2002366514A (ja) * 2001-06-12 2002-12-20 Himacs Ltd 表示情報生成方法、表示情報生成システム及びサーブレットエンジン
US7096455B2 (en) * 2001-06-19 2006-08-22 Sun Microsystems, Inc. Method and system for representing and accessing data for computer software applications
US7000218B2 (en) * 2001-06-29 2006-02-14 International Business Machines Corporation System and method for developing custom programmable tags
JP3824298B2 (ja) 2001-07-26 2006-09-20 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ、ウェブコンテンツ編集装置、コンピュータを用いてこれらを実現するプログラム、及びそのウェブコンテンツ編集方法並びに提供方法
US7058671B2 (en) * 2001-09-13 2006-06-06 International Business Machines Corporation System combining information with view templates generated by compiler in a server for generating view structure for client computer
US7003570B2 (en) * 2001-10-05 2006-02-21 Bea Systems, Inc. System for integrating java servlets with asynchronous messages
US20030097345A1 (en) * 2001-10-18 2003-05-22 Mitch Upton System and method for invoking business functionality for a workflow
EP1442397A4 (en) * 2001-10-24 2006-11-15 Bea Systems Inc SYNCHRONIZATION OF DATA
JP3758554B2 (ja) * 2001-10-31 2006-03-22 ソニー株式会社 情報提供システム及び情報提供方法、記憶媒体、並びにコンピュータ・プログラム
US20030093465A1 (en) * 2001-10-31 2003-05-15 International Business Machines Corporation Management strategies for internationalization in a distributed computer environment
US6918088B2 (en) * 2001-11-05 2005-07-12 Sun Microsystems, Inc. Service portal with application framework for facilitating application and feature development
US7315613B2 (en) * 2002-03-11 2008-01-01 International Business Machines Corporation Multi-modal messaging
US7162687B2 (en) * 2002-05-31 2007-01-09 Sun Microsystems, Inc. JSP tag libraries and web services
US7076766B2 (en) * 2002-06-03 2006-07-11 Steve Wirts Software application development methods and framework
US6993713B2 (en) * 2002-06-06 2006-01-31 International Business Machines Corporation Web content management software utilizing a workspace aware JSP servlet
US7093243B2 (en) * 2002-10-09 2006-08-15 International Business Machines Corporation Software mechanism for efficient compiling and loading of java server pages (JSPs)
US20040122659A1 (en) * 2002-12-23 2004-06-24 Hourihane John Philip Tool and method for managing web pages in different languages
JP4493269B2 (ja) * 2002-12-27 2010-06-30 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム編集装置及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996963B (zh) * 2006-01-06 2012-10-31 株式会社日立制作所 信息处理方法、信息处理装置以及程序

Also Published As

Publication number Publication date
US20050028095A1 (en) 2005-02-03
US7454703B2 (en) 2008-11-18
JP4709481B2 (ja) 2011-06-22
CN1311375C (zh) 2007-04-18
US20090132908A1 (en) 2009-05-21
US7996764B2 (en) 2011-08-09
JP2005050241A (ja) 2005-02-24

Similar Documents

Publication Publication Date Title
CN1702621A (zh) 采用表的语言的本地化
CN1750470A (zh) 数据共享系统、方法以及软件工具
CN1841362A (zh) 用于处理电子表格的方法和系统
US8438251B2 (en) Methods and systems for implementing a virtual storage network
CN1682183A (zh) 在客户机-服务器通信中处理增量数据的方法和计算机系统
CN1573749A (zh) 使用外部计划主题的Web网页绘制机制
CN1855039A (zh) 用于创建、储存、管理和消费文化专用数据的方法和系统
CN1537298A (zh) 用于经由打印服务器通过网络进行打印的系统和方法
CN1794230A (zh) 以透明方式公开计算机生成文档中嵌套数据的方法和系统
CN101035125A (zh) 用于处理Web服务请求的方法和系统
CN1809068A (zh) Web应用程序架构
CN1601526A (zh) 用于在计算机网络内搜索的方法和设备
CN101042645A (zh) 统一软件开发环境的方法、设备及系统
CN1991839A (zh) 支持信息访问的方法和系统及其记录介质
CN1678994A (zh) 用于提供访问用户界面信息的系统和方法
CN1826600A (zh) 改进万维网设备中超文本标记语言页面表现的方法和系统
CN1601465A (zh) 动态注册表分区
CN1798037A (zh) 用于处理基于浏览器的应用中的安全问题的多域访问代理
CN1723461A (zh) 用于数据库存储中的对象持久存储的系统和方法
CN1684035A (zh) 优先级绑定
CN1661555A (zh) 使用ui储存库的公共ui组件执行无线应用程序的系统和方法
CN100337231C (zh) 结构化文档处理器和结构化文档处理方法
CN1816791A (zh) 用上下文表示向用户呈现项目的系统及方法
CN1662011A (zh) 使用元数据定义映射来构建组件应用程序的系统和方法
CN1991827A (zh) 一种网页开发的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070418