用于在客户机端预取和高速缓存门户组件的方法、系统和计算机程序产品的制作方法

文档序号:6655706阅读:330来源:国知局
专利名称:用于在客户机端预取和高速缓存门户组件的方法、系统和计算机程序产品的制作方法
技术领域
本发明一般地涉及一种用于处理信息的改进的方法、系统和计算机程序产品,而且更具体地说,本发明涉及一种在联网计算机环境下,用于预取和高速缓存portlet的有益方法、系统和计算机程序产品。
背景技术
随着“万维网”(WWW)的不断普及,使用web浏览器或者浏览器越来越普遍。例如,可以从Netscape,Inc.,得到的被称为NetscapeNavigator的web浏览器提供了一种通过web运行应用(application)和查看数据的方便方式。通过web可以获得的某些应用可以与用户实现高水平交互,因为可以以诸如C或者Java语言的本机语言编写这些应用。特别是,为了要求密集用户交互,可以专门编写利用这些类型的本机语言编写的应用。由于用户与应用的交互程度不断提高,所以可以在web浏览器与应用之间进行通信。这种通信的增加可能降低可用网络带宽,从而导致用户感觉到应用的响应时间延迟。例如,在用户每次请求该应用管理的数据时,用户通常必须等待通过web将请求发送到该应用,以便该应用检索请求的数据,然后,该应用应答以请求的数据。
除了上面说明的关于一般应用的问题,通常被称为“新兴web桌面”的新型环境甚至可能产生与上面讨论的问题类似的更大的问题。特别是,新兴web桌面可以提供用户对通常所称的门户(portal)的访问。门户还允许用户利用web浏览器显示的单个屏幕访问多个应用。例如,某些门户允许用户访问可以在单个屏幕上对用户显示不同数据,例如,气象、体育、股票信息等的应用。通常利用portlet控制每种不同类型的数据。portlet是遵循portlet规范中规定的接口和行为的计算机代码,而且在portlet应用服务器内执行。portlet规范的例子包括IBM的portlet API和Java Community Process定义的Java portlet规范的JavaTM标准化请求。
诸如管理、用户定制以及切换的管理门户所需的许多处理甚至要求在浏览器与该应用之间具有更宽的可用带宽。从用户的观点出发,这种对可用带宽提高的要求还可能转变为在应用的响应时间方面的缩减。
在其其他缺陷中,包括web浏览器的传统方法提供有限的优化机会,因为当前高速缓存的信息粒度。例如,一种传统方法可以仅高速缓存指向整个超文本标记语言(HTML)页面的统一资源定位符,也可以将整个HTML页面本身高速缓存在客户机上,其中整个HTML页面通常占用该浏览器的整个显示区。其他传统方法包括服务器端高速缓存,其不解决客户机与服务器之间的响应时间延迟。
已知采用通常被称为XForm的技术解决在利用web浏览器通过web访问数据时产生的某些性能问题。特别是,XForm技术可以处理要呈现在web浏览器上的数据,而不考虑如何呈现该数据。然而,XForm技术不能解决上面讨论的、在利用web浏览器通过web访问应用或者数据时产生的某些问题。

发明内容
在本发明的几个方面中,因为对带宽和响应时间的要求不断提高,所以本发明认识到需要不断提高现有web应用的性能。本发明还认识到需要用于预测用户将使用的portlet信息并在用户请求它之前检索该portlet信息的方法、系统以及计算机程序产品。此外,本发明认识到通过提供在用户请求portlet信息之前在客户机上执行、检索portlet信息并将它高速缓存在客户机计算机内的系统、方法和计算机程序产品,减轻传统门户服务器功能的价值。
根据本发明的一个方面,提供了一种用于在逻辑分离的客户机/服务器计算环境下,在客户机应用中预取并高速缓存门户信息的方法。在用户请求要显示在用户的web浏览器上的特定portlet信息之前,该方法从服务器预取portlet信息。该portlet信息包括要显示在portlet视图上的内容数据;用于描述如何显示该内容数据的元数据;或者该内容数据和元数据的组合。在逻辑分离的客户机/服务器计算环境下的客户机端执行预取步骤。客户机端存储预取的portlet。一旦存储了预取的portlet信息,则在用户请求时,例如,在点击portlet视图上的链接时,该方法检索存储的portlet信息,然后,在相应portlet视图上显示该portlet信息,而不是在用户请求它时,检索预取的信息。从用户的观点出发,当用户没有主动向服务器请求检索新信息时,执行这种预取,从而提高了应用的响应时间。此外,从用户的观点出发,portlet视图可以显示新内容信息、先前以不同格式显示的内容信息或者新内容数据和以不同格式呈现的旧内容数据的组合。
根据下面的详细说明和附图,可以更全面理解本发明,而且本发明的其他特征和优点显而易见。


图1是可以适当实现本发明的典型系统的示意图;图2是利用根据本发明实施例提供的典型门户的示意图;图3A是示出portlet内的嵌入引用(reference)的分层结构图;图3B是示出根据本发明实施例的典型门户链接结构的方块图;图3C是示出根据本发明实施例的图3B所示门户链接结构内的典型portlet链接入口(entry)的方块图;图4是示出根据本发明实施例对于门户链接结构,客户机/服务器交互的方块图;图5是示出根据本发明实施例的进程的流程图。
具体实施例方式
现在,将参考附图更全面说明本发明,附图示出本发明的几个当前优选实施例。然而,可以以各种方式体现本发明,而且不应该认为本发明局限于在此描述的实施例。相反,提供这些实施例是为了彻底、全面公开本发明,而且向本技术领域内的技术人员全面表述本发明的范围。
本技术领域内的技术人员明白,可以利用方法、系统或者计算机程序产品体现本发明。因此,本发明可以采取硬件实施例、软件实施例或者组合了软件方面和硬件方面的实施例的形式。此外,本发明还可以采取位于计算机可用存储介质上、具有嵌入该介质的计算机可用程序代码的计算机程序产品的形式。可以采用任意适当计算机可读介质,包括硬盘、CD-ROM、光存储装置或者磁存储装置。
可以利用面向对象的程序设计语言,例如,JAVA、Smalltalk、JavaScript、Visual Basic、TSQL、Perl或者各种其他程序设计语言,编写用于执行根据本发明的操作的计算机程序代码或者“代码”。本发明的软件实施例不取决于利用特定程序设计语言实现。代码的各部分可以完全在中间服务器所用的一个或者多个系统上执行。
该代码可以完全在一个或者多个服务器上执行,也可以部分在服务器上执行,而部分在客户机设备内的或作为位于通信网络的中间点的代理服务器的客户机上执行。对于前者情况,图1是可以适当应用本发明的典型系统100的示意图。系统100包括客户机设备,例如,工作站110A、膝上型计算机110B、蜂窝电话110C、掌上计算机110D或者可以执行计算机程序代码的任意其他基于计算机的设备。通过诸如LAN、WAN的网络130或者其他内部网络,该客户机设备可以连接到服务器120,也可以利用因特网业务提供商(ISP),通过因特网实现该连接。应当理解本发明不是TCP/IP专用,或者因特网专用的。通过各种计算机网络,利用各种传输和数据链接协议,可以实现本发明。
根据本发明的实施例可以工作在逻辑分离的客户机端/服务器端计算环境下,逻辑分离的客户机端/服务器端计算环境有时被称为客户机/服务器环境。客户机/服务器环境是涉及客户机进程或者客户机、服务器进程或者服务器以及客户机向服务器请求服务的计算体系结构。通常,客户机/服务器环境保持各进程之间的差别,尽管客户机进程和服务器进程可以在不同机器上,或在相同机器上运行。因此,客户机/服务器环境下的客户机端和服务器端被称为逻辑分离的,如图1所示。通常,当在分离的设备上运行客户机进程和服务器进程时,可以根据各进程的需要,定制每种设备。例如,可以在具有大量存储器和磁盘空间的系统上运行服务器进程,而通常在具有利用高端视频卡和大屏幕显示器提供的图形用户界面的系统上,执行客户机进程。
客户机可以包括用于向服务器请求诸如网页或者portlet视图的程序,例如,web浏览器。客户机的例子包括诸如Netscape Navigator和Internet Explorer的浏览器。浏览器通常提供图形用户界面,用于检索和查看网页、网络门户、portlet、应用以及web服务器服务的其他资源。
服务器可以包括用于响应来自客户机的请求的程序。服务器的某些例子是国际商用机器公司(IBM)的系列Lotus Domino服务器、IBM的Websphere服务器、Apache服务器以及其他适当服务器。
利用标准通信方式,例如,超文本传输协议(HTTP),客户机和服务器可以通信。根据HTTP请求/响应通信方式,将HTTP请求从客户机发送到服务器,然后,响应HTTP请求,将HTTP响应从服务器发送到客户机。在运行过程中,服务器等待客户机开启连接,然后,请求信息,例如,网页、portlet等信息。作为响应,服务器将请求信息的复本发送到客户机,关闭到客户机的连接,然后,等待下一个连接。应当理解服务器可以响应来自一个以上客户机的请求。
下面参考示出根据本发明实施例的方法、系统和计算机程序产品的方块图和流程图,说明本发明。应当理解利用计算机程序代码,可以实现方块图和流程图中的每个块以及该方块图和流程图中各块的组合。可以将计算机程序代码提供给用于通用计算机、专用计算机的处理器或者制成机器的其他可编程数据处理设备,以便通过计算机的处理器或者其他可编程数据处理设备执行的代码产生用于实现该方块图和/或者流程图中的块或者各块指定的功能的单元。
计算机程序代码或者指令可以存储在计算机可读存储器内,其可以指示计算机或者其他可编程数据处理设备以特定方式工作,使得存储在该计算机可读存储器内的指令产生包括指令单元的制品,用于实现方块图或者流程图指定的功能。
可以将计算机程序代码装载到计算机或者可编程数据处理设备上,以在计算机或者其他可编程设备上执行一系列操作步骤,从而产生计算机执行进程,使得在计算机或者其他可编程设备上执行的指令提供用于实现方块图和/或者流程图中的块或者各块指定的功能的步骤。
在此使用的术语“网站”可以包括一组包括被称为主页的开始文件的相关文件。通过该主页,访问者可以访问该网站上的其他文件和应用。大型网站可以使用多个服务器,这些服务器可以是不同的,也可以是相同的,而且它们可以是地理上分散的,也可以是地理上不分散的。例如,国际商用机器公司的网站(http://www.ibm.com)包括上千个分散在位于世界范围内的多个web服务器上的网页和文件。
尽管参考网页、web服务器等对本发明进行了描述,但是,应当理解利用具有信息的任意计算机可显示文档,可以实施本发明。
本技术领域内的技术人员众所周知,常规上,利用标准页面描述语言,例如HTML,其通常含有文本而且可以引用图形、声音、动画以及视频数据,格式化网页。HTML提供基本文档格式化,而且允许web内容提供商指定到其他服务器的锚点(anchor)或者超文本链接(通常表现为突出显示文本)。在用户选择或者激活特定超文本链接时,运行在用户的客户机设备上的浏览器读出并解释与超文本链接相关的被称为统一资源定位符(URL)的地址,使浏览器与位于该地址的web服务器相连,然后,对于在超文本链接上识别的文件,发出请求,例如,HTTP请求。然后,web服务器将请求文件发送到解释并提供用于显示的网页的客户机。在此使用的术语“用户”可以是软件进程,也可以是人。
可以利用Web服务器观看有时被称为网络门户或者门户的。本技术领域内的技术人员明白,网络门户可以根据上面对客户机和服务器描述的相同协议工作,其中客户机包括用于观看门户页面或者门户视图的web浏览器,而且有时将该服务器称为用于对web浏览器提供请求的信息的门户应用服务器。
门户可以显示来自多个源的单个信息呈现或者信息图,有时将它们称为信息聚合。门户通常包括诸如日历和做事清单(todo list)、讨论组、通知和报告、新闻、股票报价、搜索、电子邮件以及地址薄、天气预报、地图、购物等,利用不同源或者应用,所有这些被提供到门户。
用户可以定制门户提供的许多信息。例如,可以定制诸如Mylycos的某些门户,以显示用户区域内的天气预报,或者显示用户喜爱的队的比赛得分。此外,定制可以包括门户本身的外观。例如,可以定制某些门户,以便利用特定屏幕主题显示它们。
门户还可以利用制作简档以呈现和定制使用户感兴趣的内容,或者对预期的广告商提供准确人口统计数据,而且帮助他们使广告内容与可能的销售前景对应。因此,门户和诸如新闻服务的最近的其他web提供商经常请求用户完成简档(profile)表格。例如,该简档表格可能要求用户姓名、性别、年龄、地址、收入等级、职业、娱乐活动、业余爱好等。用户简档文件中提供的数据可以与数据挖掘一起(例如从大型联系信息数据库中选择少部分人的联系信息)例如被用于更多了解该用户,而且以该用户作为打印、电子邮件、直接邮件广告等的目标。该用户可以定制门户页面,以显示用户感兴趣的信息或者事务。从用户的观点出发,portlet是用户可以订购的内容频道或者应用。
portlet是在服务器上执行的基于Java的web组件,其处理请求并产生动态内容。门户将portlet用作可插入用户界面组件,该可插入用户界面组件对该信息系统提供呈现层。portlet视图对应于在门户页面内门户的用户看见的可视活动组件。与台式计算机上的窗口相同,在显示相关信息的门户视图中,分别对每个portlet视图分配一部分客户机屏幕。portlet产生要嵌入用户观看的门户页面内的内容。portlet本身可以具有许多portlet视图,其中每个portlet视图分别表示portlet的特定状态。portlet可以与通常在服务器上管理的数据交互,从而引向与用户进行的事务。每个portlet视图可以对应于事务的不同状态。例如,通过portlet,用户可以卖出股票。一个portlet视图可以表示用于显示用户参与的不同股票的用户佣金账户状态。在用户在其文件包中点击其股票之一时,用于控制该事务的portlet可以使第一portlet视图转变为第二portlet视图。第二portlet视图可以表示用户键入要卖出的股票数量和用户可以接受的最低卖价的视图。可以利用用于将内容生成与用户界面分离的技术,例如,Sun Microsystem的Java服务器页面技术,开发portlet视图。
图2是可以根据本发明工作的web浏览器显示的典型门户视图200的原理图。如图2所示,门户视图200包括被称为portlet视图的、不同信息的多个视图。特别是,门户视图200包括三个portlet视图205、210和215,它们分别涉及与股票、天气预报以及新闻有关的信息的显示。根据图2,portlet视图205显示用户感兴趣的股票信息。可以定制portlet视图205以显示信息,例如,股票、债券、股票交易等的价格。portlet视图210显示与用户感兴趣的特定地理位置有关的天气信息,而且也可以定制该portlet视图210。portlet视图215显示用户感兴趣的新闻信息,也可以定制该portlet视图215。在运行过程中,用户可能需要门户视图200上显示的portlet生成信息的更新信息。例如,用户可以通过对应于portlet视图205的portlet,请求更新的股票报价,通过对应于portlet视图210的portlet,请求更新的天气预报,以及通过对应于portlet视图215的portlet,请求与最新新闻中的特定项目有关的信息。此外,利用portlet,用户可以请求以其显示portlet视图205、210和215的不同格式。在任何情况下,请求更新的信息都可能需要改变显示在portlet视图205、210和215之一上的某些信息。
可以在其他应用代码的控制下通过诸如web浏览器之类的客户机应用将诸如标记的信息和与portlet相关的数据聚合在一起,以用于随后的显示。特别是,在逻辑分离的客户机端/服务器端计算环境下,可以将保存在客户机端的由web浏览器显示的信息与web浏览器从位于该环境的服务器端上的门户应用服务器请求的信息聚合在一起。因此,在客户机端,而非在服务器端,提供将要显示的信息的聚合,从而减小门户应用服务器上的负载,而且减小分配给该web浏览器的所需带宽。在某些实施例中,可以利用web浏览器访问支持多个portlet的门户,用户可以定制每个portlet,以显示要求的信息。在信息的该聚合期间,web浏览器仅请求为了更新显示与请求信息有关的门户所需的信息,而且该web浏览器可以避免请求该更新显示不需要的信息。由于避免请求不需要的信息,所以进一步减小了门户应用服务器的负载。2003年6月19日提交的、标题为“METHODS,SYSTEMS,ANDCOMPUTER PROGRAM PRODUCTS FOR PORTLETAGGREGATION BY CLIENT APPLICATION ON A CLIENT SIDEOF A CLIENT/SERVER ENVIRONMENT”的第10/464910号美国专利申请更详细说明了客户机应用聚合显示信息的方法和设备,在此引用该专利申请的全部内容供参考。
根据本发明的实施例提供了允许在诸如web浏览器之类的客户机应用预取portlet信息,随后高速缓存portlet信息的技术。特别是,本发明提供了一种用于确定各portlet视图之间的分层结构关系的门户链接结构。门户链接结构包括对确定的范围内的每个portlet视图的引用。引用可以是URL、到另一个portlet的URL、动态链接或者指示如何在portlet中访问随后可访问portlet信息的适当引用。门户应用服务器可以首先建立门户链接结构,然后,由客户机管理该门户链接结构。在根据本发明的某些实施例中,可以在客户机首先建立门户链接结构,然后,管理该门户链接结构。通过确定检索到哪个portlet引用以及哪个portlet引用被提供为门户视图,客户机更新该门户链接结构。
图3A是示出位于portlet视图305、310和315上的各嵌入引用的分层结构图300。例如,portlet视图305、310和315可以分别对应于在图2所示portlet视图205、210和215上呈现的portlet信息。通常,还将引用称为链接,在执行时,该引用访问特定portlet视图。引用7和引用8包含在portlet视图205内。例如,引用7可以对应于在连接到网络云(network cloud)130的服务器上可以找到关于Ameriquest Mortage Company的更多信息的服务器地址。用户对这种信息的访问通常通过用户点击突出显示链接,例如,突出显示链接220,被显示。引用8可以对应于动态链接,其利用随请求发送的参数随后检索诸如股票报价225的信息。portlet视图310包括引用9和10。portlet视图315包括引用11和12。正如对引用7和8描述的那样,可以对用户显示portlet视图内的各引用,也可以不对用户显示它们。通过迭代地确定portlet的信息内参考的每个引用,然后,从包括在每个引用内的portlet信息中确定后续引用,确定引用树。
正如下面详细说明的那样,本发明提供了用于构成引用树的技术。利用应用代码,例如,以Java脚本语言编写的、存储在服务器上而在客户机上执行的应用代码,可以配置引用树的大小和级数。下面,将结合图4所做的讨论,更详细说明该应用代码及其框架的使用以构成引用树的方法。
图3B是示出根据本发明的典型门户链接结构330的方块图。门户链接结构330是基于图3A所示引用树的portlet链接入口,例如,portlet链接入口P1 335的分层结构排列。应用代码确定portlet链接入口的数量和完成该门户链接结构的范围。通常,在portlet链接入口与portlet产生的每个portlet视图之间存在一一对应关系。
portlet链接入口P1 335对应于portlet视图305。由于portlet视图305涉及引用7,如图3A所示,所以portlet链接入口P1 305可以链接到portlet链接入口P7 337,该portlet链接入口P7 337对应于引用7引用的portlet视图。因此,图3B示出portlet链接入口335与337之间的引用关系,同时portlet链接入口337从portlet链接入口335缩进。
通过如图3B所示在分层结构排列中排列各portlet链接入口,然后,跟踪对应于portlet链接入口的哪个portlet视图呈现在显示器上,利用当前呈现的portlet入口与未呈现的portlet入口之间的距离,可以确定可能需要的portlet信息。例如,P1与P7之间的距离是1,而P1与portlet链接入口P13,即,子入口P7之间的距离可以是2。如果当前显示P1,则与P13相比,更可能预取仅具有距离1的P7,因为在获得引用13之前,用户通常会点击引用7。这种分层结构排列有利于提供一种用于预测用户可能请求哪个portlet信息的技术。
图3C是示出门户链接结构330内的典型portlet链接入口350的方块图。为了清楚起见,利用对应于在门户视图200上呈现的portlet视图305的portlet链接入口描述portlet链接入口350。portlet链接入口350包括各种类型的字段352、354、356、358、360、362和364。为了简化起见,没有示出字段类型。本技术领域内的技术人员应该认识到,可以利用各种字段类型实现每个字段。高速缓存字段352、门户应用服务器字段354以及其他portlet引用字段356通常包括关于当前portlet链接入口的内容的信息。例如,高速缓存字段352包括是否可以高速缓存与门户链接入口有关的内容的指示。进行该确定使用的某些因数包括相应portlet视图是否显示动态结果。在portlet视图提示用户与数据交互以执行事务时,可能产生动态结果。通常不能高速缓存该链接引用的、显示动态结果的portlet视图。例如,如果portlet产生的portlet视图是购物应用,则本发明不能高速缓存显示通过portlet视图购买的产品的portlet视图,以防止将在交易期间改变了他或者她的主意的用户搞糊涂。
门户应用服务器字段354包括服务产生对应于门户链接入口的portlet视图的portlet的门户应用服务器的指示。其他portlet引用字段356包括同一个门户应用服务器服务的一系列portlet引用,而且可以通过对应于该portlet链接入口的portlet视图访问。通过显示对应于portlet链接入口的portlet视图,文档对象模型(DOM)树节点的标识(ID)字段358指示可以被代替的DOM内的位置。DOM是允许脚本访问和更新文档的内容、结构和风格的W3C文档对象模型标准规定的公知平台和语言中性接口。
利用支持DOM的程序设计语言,例如,Javascript,可以操纵portlet视图内的信息。例如,可以利用DOM引用直接将请求信息插入要被客户机显示的HTML页面。支持DOM的程序设计语言的另一个方面是可以访问文档的任意组成部分、可以更新包括在该文档内的内容信息,而且可以独立地操纵该信息。例如,可以使用Javascript脚本将对象从文档的一部分移动到另一部分。关于W3C文档对象模型标准的更多信息,请参考可从http://www.w3.org/DOM/得到的W3CArchitecture Domain。
内容的服务器标识(ID)字段360包括位于服务器范围内的内容的唯一ID。该ID提供从门户应用服务器检索相关内容的能力。到高速缓存的内容的链接字段362在高速缓存内包括本地链接或者唯一标识,以便不从门户应用服务器,而从本地高速缓存检索特定内容。通常,在预取了内容,并将该内容存储在客户机的本地高速缓存内之前,不指定该字段。到其他portel链接入口的链接字段364包括到通过当前链接入口可以访问的其他portlet链接入口的一系列链接。换句话说,该链接字段364与如图3A所示引用其他portlet视图的各portlet视图之间的导航关系相似。
图4是示出根据本发明采用门户链接结构的客户机/服务器交互400的方块图。根据图4,客户机端的门户400与服务器端的门户应用服务器420一起工作在逻辑分离的客户机端/服务器端计算环境下。客户机,例如,web浏览器,可以显示门户视图401,而且该门户视图401包括可以显示在potal视图401内的portlet视图405、410和415。在用户最初访问门户时(其导致显示门户视图401),将请求发送到门户应用服务器420,以检索portlet视图405、410和415以对客户机呈现。通过访问可以与门户视图401的用户相关的定制信息435,portlet应用服务器420响应信息请求417。定制信息435还可以包括用于定制特定portlet视图405、410和415的信息。例如,特定portlet视图的定制信息435可以包括一种与portlet如何出现在对应于门户视图401的门户视图上有关的界面(skin)或者屏幕信息。此外,定制信息435可以包括与用户通常要求的这种信息相关的信息,例如,与在portlet视图之一上显示的天气预报信息相关的特定位置、在portlet视图之一上显示的特定股票基金或者用户感兴趣的特定运动队。
门户应用服务器420还为将传送到位于客户机端的门户视图401的每个portlet视图访问计算机程序或portlet代码430。然而,请注意,一个portlet可以产生多个portlet视图,使得在portlet与产生的portlet视图之间存在一对多关系。portlet代码430产生portlet信息,例如,用户可以使用的信息。portlet信息可以选择性地包括呈现信息,用于描述如何显示可使用内容。例如,诸如以扩展标记语言(XML)指定的数据的标记数据含有用于描述可使用内容的元数据。
门户应用服务器420对要被传送到客户机以供用户最初观看的每个门户视图进行分析。在该实施例中,而且在进行该分析期间,门户应用服务器420产生门户链接结构,该门户链接结构含有portlet链接入口,如结合图3A和3B所示。门户链接结构也可以包括用于描述在该门户链接结构内引用的门户信息的元数据。在本发明的优选实施例中,提供框架470,以对在建立和管理门户链接结构中进行的分析进行控制。例如,框架470提供应用实用程序实用功能,以控制分析的广度和构成门户链接结构的范围。有利的是,在执行时,框架470协调portlet信息的高速缓存和预取。
如图所示,作为响应422,门户应用服务器420下载portlet组合器(assembler)445、portlet风格450以及初始portlet视图405、410和415。portlet风格450包括下载到客户机端的portlet视图的模式或一组风格页或者界面。除了portlet视图,还可以以元数据的方式将门户链接结构可选择地下载到客户机端。在本发明的某些实施例中,在下载了初始门户视图后,在客户机端,进行分析并首先建立门户链接结构。在任何情况下,将门户链接结构存储在客户机端的存储器内。存储器包括随机存取存储器(RAM)、盘、磁带或者其他适当的存储介质。
框架470为也要被下载的应用代码465提供实用功能。这种应用代码利用框架内的功能,而且可以包括用于确定建立门户链接结构的范围的算法。应用代码可以包括用于确定,在门户的用户请求portlet信息之前,预取哪个portlet视图和预取多少portlet信息,然后,确定预取信息是否含有可使用内容、元数据或者它们二者的算法。术语“预取”描述在用户请求该portlet信息之前,提取portlet信息的处理。在优选实施例中,例如,利用Javascript语言,编写应用代码465,然后,将它装入门户结构内。以Javascript开发应用代码465有利于在客户机上执行存储在服务器内的代码,而除了在客户机上配置的具有Javascript插件的web浏览器之外无需其他软件。本技术领域内的技术人员应该认识到,可以利用其他程序设计语言开发该应用代码465,只要该应用代码能使用框架的功能。
在客户机端调用portlet组合器445,而且该portlet组合器445在门户视图401上呈现具有portlet信息的portlet视图455,作为客户机上的portlet视图405。还在客户机端调用该应用代码465,以确定预取门户链接结构的portlet链接入口指出的门户信息。一旦执行了该确定,响应应用代码465的请求,portlet组合器445将预取请求419发送到门户应用服务器420。例如,预取请求419可适当包括例如包含在门户链接结构内的、客户机希望预取的portlet视图的引用。在本发明的某些实施例中,预取请求419包括门户链接结构内的多个portlet引用。在本发明的某些实施例中,预取请求419包括用于描述是仅提取对应于该portlet视图的可使用数据、对应于该portlet视图的元数据或者对应于该portlet视图的可使用数据和元数据的组合,的参数。由于portlet视图是可视浏览器屏幕的一部分,所以所有这种可提取数据小于占据整个可视浏览器屏幕的整个HTML页面。
响应该预取请求419,门户应用服务器420访问位于服务器端的相应portlet,然后,根据该预取请求,从该porlet检索该请求信息。然后,门户应用服务器420将请求信息下载到portlet组合器445。portlet组合器445将该下载信息存储到高速缓存460形式的存储器内。高速缓存可以包括任意适当计算机可读介质,包括硬盘、高速缓冲存储器、CD-ROM、光存储装置或者磁存储装置。例如,在门户用户点击portlet视图上的链接,以请求portlet内引用的附加信息时,portlet组合器445参考与引用的该附加信息有关的portlet链接,然后,检验到高速缓存的内容的链接字段362是否含有有效数据。如果含有,则有利的是,portlet组合器从高速缓存460检索请求的信息,然后,在portlet视图上对用户呈现该附加信息,而无需向服务器指示用户已经将该网站导航到这些高速缓存的地址。否则,利用内容的服务器ID字段360,portlet组合器向门户应用服务器420请求该附加信息。
通常,根据应用代码465,portlet组合器445对新呈现的portlet信息的内容进行分析,以确定是否存在要求预取的引用。如果存在,则以上面描述的方式发出预取请求419,然后,更新门户链接结构,以反映呈现的portlet视图与未呈现的portlet视图之间的关系。
本技术领域内的技术人员应该认识到,在portlet视图405、410和415之前,可以首先下载具有最少的(如果有的话)内容的框架页面。在本发明的该方面,例如,在背景HTTP会话中,框架470将下载所需的portlet信息。然后,根据随框架页面下载的应用代码465,框架470组合门户链接结构。应用代码465可以利用框架470访问门户链接结构元数据,然后,利用该元数据预取portlet视图并将portlet视图保存在高速缓存内。
在对用户呈现portlet信息时,portlet组合器代码445将存储在客户机端的信息与从服务器端请求的信息聚合在一起,2003年6月19日提交的、标题为“METHODS,SYSTEMS,AND COMPUTERPROGRAM PRODUCTS FOR PORTLET AGGREGATION BYCLIENT APPLICATION ON A CLIENT SIDE OF ACLIENT/SERVER ENVIRONMENT”的第10/464910号美国专利申请对此做了进一步详细说明。
图5是示出根据本发明的进程500的流程图。如图5所示,运行过程从步骤510开始,在步骤510,在逻辑分离的客户机端/服务器端计算环境下的服务器端,提供应用代码。通常,利用JavaScript编写该应用代码,而且在该计算环境下的客户机端,执行该应用代码。该应用代码包括预取算法,该预取算法控制门户链接结构的大小和等级数以及要从服务器端预取数据的大小和质量。该应用代码可以指定高速缓存替代策略,例如,如果该portlet链接入口呈现为portlet视图,则不替换门户链接结构中与portlet链接入口相邻的portlet链接入口。应用代码采用框架代码。框架代码提供实用功能,以控制分析的广度、构成门户链接结构以及预取并高速缓存portlet信息的范围。
在步骤520,进程500分析portlet视图中的引用,以完成该门户链接结构。可以在服务器端、客户机端或者该计算环境的这两端执行该分析。在步骤525,将应用代码和门户链接结构下载到客户机端。在步骤530,在用户请求这种信息之前,客户机端调用该应用代码,以提取与该门户链接结构的portlet链接入口内的引用有关的portlet信息。在步骤540,进程500更新该门户链接结构,以反映提取的门户信息内的引用。如果服务器端执行步骤520的分析,则在该方法的第一迭代中,门户链接结构含有有效数据。
在客户机执行步骤520的实施例的替换实施例中,该客户机接收空门户链接结构,然后,在步骤530之前,象在步骤540中一样,将门户链接入口装载到其内。
在步骤550,在用户请求与该计算环境下的客户机端通信时,进程500显示提取的门户信息。步骤550之后,进程500进入步骤530,执行步骤530、540和550的后续迭代。在用户不再希望与该门户通信时,进程500结束。
因此,在根据本发明的实施例中,通过预取portlet信息并将它们高速缓存在逻辑分离的客户机端/服务器端计算环境下的客户机端,而非服务器端,可以改善用户观看的、web应用的响应时间。
在不脱离本发明实质范围的情况下,从本公开受益的本技术领域内的普通技术人员可以对本发明进行许多变化和修改。因此,应当理解,所示的实施例的描述仅是为了示例,而不应该将它们看作是对下面的权利要求限定的本发明的限制。因此,应当认为下面的权利要求不仅包括书面描述的各单元的组合,而且包括用于以基本相同方式执行基本相同功能以获得基本相同的结果的等同单元。因此,应当理解权利要求包括上面具体描述和示出的内容、概念上等同的内容以及包含本发明的发明教导的内容。
本技术领域内的技术人员应当理解,尽管结合上面的典型实施例对本发明进行了说明,但是本发明并不局限于此,而且存在许多落入本发明范围内的可能变化和修改。
本公开的范围包括在此公开的任意新颖特征或者各特征的组合。因此,本申请人提请注意,在审查该专利申请,或者由此获得的进一步的其他专利申请期间,可以根据这些特征和各特征的组合构成新权利要求。特别是,参考所附权利要求,可以将从属权利要求描述的特征与独立权利要求描述的特征组合在一起,而且可以以任意适当方式,而不仅仅以权利要求中描述的特定组合方式,将各独立权利要求描述的特征组合在一起。
为了避免不确定性,不能将该说明书和权利要求中使用的术语“包括”理解为“仅包括”。
权利要求
1.一种用于在逻辑分离的客户机/服务器计算环境下,在客户机应用中执行高速缓存操作的方法,该方法包括在逻辑分离的客户机/服务器计算环境下的客户机上,从服务器预取portlet信息;将预取的portlet信息存储在客户机计算机上;以及在用户请求时,显示预取的portlet信息。
2.根据权利要求1所述的方法,进一步包括确定预取哪个portlet信息。
3.根据权利要求2所述的方法,其中确定步骤进一步包括构成门户链接结构,该门户链接结构包括多个门户链接入口的分层结构排列,每个portlet链接入口含有用于描述相应portlet视图的数据;跟踪当前portlet链接入口,作为当前显示其相应portlet视图的入口;以及确定多个portlet链接入口中,当前portlet链接入口与另一个portlet链接入口之间的距离,以确定应该预取哪个相应portlet视图。
4.根据权利要求1、2或者3所述的方法,其中预取步骤进一步包括向portlet应用服务器请求在服务器上的portlet信息。
5.根据上述权利要求之任一所述的方法,其中显示步骤进一步包括通过web浏览器,显示预取的portlet信息。
6.根据上述权利要求之任一所述的方法,其中存储步骤进一步包括将预取的portlet信息存储在高速缓存内。
7.根据上述权利要求之任一所述的方法,进一步包括将框架代码下载到客户机计算机,当在客户机计算机上执行时,该框架代码提供用于执行预取步骤和存储步骤的实用功能。
8.根据上述权利要求之任一所述的方法,其中portlet信息小于HTML页面。
9.根据上述权利要求之任一所述的方法,其中显示步骤进一步包括将预取的portlet信息与应用户请求检索的portlet信息组合在一起。
10.一种用于在逻辑分离的客户机/服务器计算环境下,在客户机应用中执行高速缓存操作的系统,该系统包括用于在逻辑分离的客户机/服务器计算环境下的客户机上,从服务器预取portlet信息的装置;用于将预取的portlet信息存储在客户机计算机上的装置;以及用于在用户请求时,显示预取的portlet信息的装置。
11.根据权利要求10所述的系统,进一步包括用于确定预取哪个portlet信息的装置。
12.根据权利要求11所述的系统,其中确定装置进一步包括用于构成门户链接结构的装置,该门户链接结构包括多个门户链接入口的分层结构排列,每个portlet链接入口含有用于描述相应portlet视图的数据;用于跟踪当前portlet链接入口,作为当前显示其相应portlet视图的入口的装置;以及用于确定多个portlet链接入口中,当前portlet链接入口与另一个portlet链接入口之间的距离,以确定应该预取哪个相应portlet视图的装置。
13.根据权利要求10、11或者12所述的系统,其中预取装置进一步包括用于向portlet应用服务器请求在服务器上的portlet信息的装置。
14.根据权利要求10至13之任一所述的系统,其中显示装置进一步包括用于通过web浏览器,显示预取的portlet信息的装置。
15.根据权利要求10至14之任一所述的系统,其中存储装置进一步包括用于将预取的portlet信息存储在高速缓存内的装置。
16.根据权利要求10至15之任一所述的系统,其中利用框架代码实现用于预取的装置和用于存储的装置,该系统进一步包括用于将框架代码下载到客户机计算机的装置,在客户机计算机上执行该框架代码。
17.根据权利要求10至16之任一所述的系统,其中portlet信息小于HTML页面。
18.根据权利要求10至17之任一所述的系统,其中显示装置进一步包括用于将预取的portlet信息与应用户请求检索的portlet信息组合在一起的装置。
19.一种用于在逻辑分离的客户机/服务器计算环境下在客户机应用中执行高速缓存操作的计算机程序产品,该计算机程序产品包括具有嵌入其内的计算机可读程序代码的计算机可读介质,该计算机可读程序产品包括配置以在逻辑分离的客户机/服务器计算环境下的客户机上,从服务器预取portlet信息的计算机可读程序代码;被配置以将预取的portlet信息存储在客户机计算机上的计算机可读程序代码;以及被配置以在用户请求时,显示预取的portlet信息的计算机可读程序代码。
20.根据权利要求19所述的计算机程序产品,进一步包括被配置以确定预取哪个portlet信息的计算机可读程序代码。
21.根据权利要求20所述的计算机程序产品,其中被配置以确定预取哪个portlet信息的计算机可读程序代码步骤进一步包括被配置以构成门户链接结构的计算机可读程序代码,该门户链接结构包括多个门户链接入口的分层结构排列,每个portlet链接入口含有用于描述相应portlet视图的数据;被配置以跟踪当前portlet链接入口,作为当前显示其相应portlet视图的入口的计算机可读程序代码;以及被配置以确定多个portlet链接入口中,当前portlet链接入口与另一个portlet链接入口之间的距离,从而确定应该预取哪个相应portlet视图的计算机可读程序代码。
22.根据权利要求19、20或者21所述的计算机程序产品,其中被配置以预取portlet信息的计算机可读程序代码进一步包括被配置以从portlet应用服务器请求服务器上的portlet信息的计算机可读程序代码。
23.根据权利要求19至22之任一所述的计算机程序产品,其中被配置以显示预取的portlet信息的计算机可读程序代码进一步包括通过web浏览器,显示预取的portlet信息。
24.根据权利要求19至23之任一所述的计算机程序产品,其中被配置以存储预取的portlet信息的计算机可读程序代码进一步包括被配置以将预取的portlet信息存储在高速缓存内的计算机可读程序代码。
25.根据权利要求19至24之任一所述的计算机程序产品,其中将被配置以预取portlet信息的计算机可读程序代码与被配置以存储预取的portlet信息的计算机可读程序代码组合为框架代码,该计算机程序产品进一步包括被配置以将框架代码下载到客户机计算机的计算机可读程序代码。
26.根据权利要求19至25之任一所述的计算机程序产品,其中portlet信息小于HTML页面。
27.根据权利要求19至26之任一所述的计算机程序产品,其中被配置以显示预取的portlet信息的计算机可读程序代码进一步包括被配置以将预取的portlet信息与应用户请求检索的portlet信息组合在一起的计算机可读程序代码。
全文摘要
本发明提供了用于在逻辑分离的客户机/服务器计算环境下,在客户机应用中预取并高速缓存门户信息的方法、系统和计算机程序产品。在用户请求在用户的web浏览器上显示特定portlet视图之前,从服务器预取portlet信息。该portlet信息可以包括要显示在portlet视图上的内容数据;用于描述如何显示该内容数据的元数据;或者该内容数据和元数据的组合。在逻辑分离的客户机/服务器计算环境下的客户机上执行预取步骤。客户机存储预取的portlet。一旦存储了预取的portlet信息,则在用户请求时,例如,在点击portlet视图上的链接时,该方法检索存储的portlet信息,然后,在相应portlet视图上显示该portlet信息。从用户的观点出发,portlet视图可以显示新内容信息、先前以不同格式显示的内容信息或者新内容数据和以不同格式呈现的旧内容数据的组合。
文档编号G06F17/30GK101019114SQ200580014228
公开日2007年8月15日 申请日期2005年4月13日 优先权日2004年5月4日
发明者罗德里克·C.·亨德森, 李永成, 托马斯·F.·梅赛尔罗伊 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1