用于更新portlet信息的方法和系统的制作方法

文档序号:6611236阅读:391来源:国知局

专利名称::用于更新portlet信息的方法和系统的制作方法
技术领域
:本发明涉及Web门户和portlet(门户组件)处理的领域,更具体而言,涉及通过对控件的隐藏版本进行更新,然后将隐藏版本与呈现版本进行切换,以此对portlet界面控件进行更新,从而减少闪烁及其他可能更新问题。
背景技术
:Web门户是提供大量资源和信息(例如,电子邮件、搜索引擎、广告、用户专用报告、个性化联系和任务管理功能、定制新闻馈送、本地气象等)的Web站点或服务。Web门户可包括多个Webportlet。每个Webportlet可为向门户用户显示来自指定资源的信息的可重用Web组件,该指定资源可不同于为门户提供信息的资源。在门户内的portlet的设置、在门户内的信息呈现、该呈现的响应性,以及其他用户感受因素都构成门户的用户体验。当使用界面控件(例如,刻度盘(dial)、图表、收报机(ticker)等)呈现数据时,经常会增强用户体验。当用户能够定制用于对重要情形提供提醒的控件和/或能够选择个别控件来提取其中包含的信息时,情况尤为如此。因此,在portlet内的控件能够向用户呈现实时更新。用户能够快速获悉控件传递的信息,并能够检测重要异常,并以适宜方式进行响应。遗憾的是,用于更新portlet信息的传统方法可导致众多实际问题,例如,闪烁。在多个频繁更新的界面控件紧密相邻存在,且每个都与其自身portlet相关联时,经常出现闪烁。每个控件都需要进行不断的数据更新(例如,每1至10秒)、更新处理,和用于显示数据更新的控件视觉刷新。控件更新和相关处理的频率通常与其他portlet的其他控件更新无关。另外,每个控件通常由多个元件(例如,图表条(chartbar)以及值和/或刻度盘位置)组成,其中,可按照接收元件具体更新的顺序对可视元件进行处理。当出现更新和处理延迟时,有时对一部分控件元件进行更新,而对不同部分的控件元件不进行更新,这导致了混乱的视觉体验。由于为每个portlet通常使用单个独立的进程,当portlet的数量增大时问题会逐渐升级。如果在与刷新界面控件所需时间量有关的同一时帧内进行多个数据请求(与不同进程相关),则可发生这些请求的串行化。该问题表现为,当在为控件建立的刷新率期间内不执行控件刷新时,portlet内的可视控件时常出现故障,并跳过一个或多个更新。不是对控件进行较平滑的刷新,而是控件显得从一步到另一步发生"跳跃",这导致用户产生心烦意乱和毫无兴趣的体验。在极端情形中,portlet中出现的数据更新问题可使系统超负荷,并导致portlet或Web浏览器完全锁定。图1显示出被执行用于使客户端设备利用与一个或多个portlet相链接的一个或多个数据源产生对于该门户的用户体验的基本交互。从图1显然可知,portlet的更新彼此无关地发生,其中每个portlet为更新而经常轮询数据源。为更新而经常轮询和逐个portlet地进行的响应接收可迅速使系统或通信设施过载到这样的程度,即,使数据更新受到延迟,出现闪烁、portlet显得停顿以及出现锁定,从而使用户对门户的总体体验效果变差。尽管图1假设portlet所使用的数据源是面向服务体系结构(SOA)112的一部分,如图1所示portlet通信模式通常应用于portlet-数据源通信,但不限于特定软件体系结构,例如SOA112。如图所示,图1所示客户端102portlet106和108能够利用JAVASCRIPTS请求刷新portlet106-108。门户月艮务器104能够创建对检索数据进行处理以便更新门户104的进程。portlet106-108能够从SOA112的各种组件检索数据。每个portlet106-108独立地进行等效更新过程。例如,客户端102请求刷新在所选门户104中的信息。门户104将绘制在portlet106或108中的界面控件。该绘制可需要从portlet进程获得数据值,该进程可从SOA112获得信息。SOA112向公共portlet进程回送响应,将其发送到请求portlet106或108,请求portlet106或108将数据发送到门户104,门户104在客户端102上适当绘制/呈现最新信息。
发明内容本发明批露了使用portlet控件的多个版本(呈现出一个版本,通常隐藏一个或多个其他版本)的门户控件更新解决方法。可使用从数据源获取的数据更新控件的隐藏版本。当完全更新了隐藏版本时,可将该版本与当前呈现版本进行切换。从而,平滑进行对于每个portlet控件的更新,而不会出现闪烁。该方法可利用客户端交互引擎来协调portlet更新。交互引擎可为并发获取、绘制和切换交互提供线程化环境,从而避免出现传统portlet更新技术出现的串行化问题。此处所提出的方法可作为用于在portlet中呈现实时信息的高度可伸缩解决方案的一部分。例如,在一个实施例中,交互引擎与数据源之间的通信可通过能够局部高速緩存来自数据源的信息并对其进行处理的portlet服务器来实现。使用门户服务器可使实时信息离终端用户更近,因此,缩短数据检索时延,并可使客户端与数据源之间不必要和/或冗余的通信量最小。此外,门户服务器可与面向服务体系结构(SOA)进行交互,其中,在服务提供者(数据源)与门户服务器之间建立Web服务。可使用Web服务传递数据更新。在一个所考虑到的配置中,门户服务器可高速緩存从数据源异步获得的更新信息,并能够通过该高速緩存将更新信息直接提供给请求portlet。可根据与此处所给出的材料相一致的多个方面实现本发明。例如,本发明的一个方面可包括用于更新portlet信息的方法。在该方法中,可通过首先识别出在客户端上呈现的一个或多个portlet来更新portlet信息。每个portlet可包括自远端数据源迭代进行更新的界面控件。对于每个portlet,都可建立界面控件的呈现和隐藏版本。每个portlet都可从数据源获取数据,并使用该数据更新界面控件的隐藏版本。可使用所获取的数据更新控件的隐藏版本。更新隐藏版本后,将隐藏版本与呈现版本进行切换。每个portlet可具有portlet刷新率,可重复进行获取数据,更新隐藏版本,和将隐藏版本与呈现版本进行切换的步骤,以满足portlet刷新率。在一个实施例中,portlet处理applet和AJAX脚本可处理对于客户端的portlet的更新。本发明的另一方面可包括用于更新portlet的第二方法,其包括识别出在portlet内绑定到数据源的界面控件的步骤。可建立界面控件的两个版本,一个是在客户端上显示的前景版本,另一个是隐藏的背景版本。可显示出界面控件的前景版本。可从数据源获取数据更新。可根据数据更新对背景版本进行更新。然后将背景版本与前景版本进行切换。可显示出包括有数据更新的新前景版本界面控件。本发明的另一方面可包括用于更新portlet信息的系统。该系统可包括用于处理客户端的多个portlet更新的交互引擎。每个portlet都可包括界面控件,界面控件的呈现版本,和界面控件的隐藏版本。可从数据源对界面控件迭代进行更新。界面控件的呈现版本可为呈现给客户端用户的版本。可由自数据源接收的数据对隐藏版本直接进行更新。在进行更新之后以及从数据源获取新更新之前,可将隐藏版本与呈现版本进行切换。可对不同portlet应用不同刷新率。应该注意,可将本发明的各个方法实现为用于控制计算设备实现此处所述功能的程序,或用于使计算设备执行与此处所披露步骤相对应的处理的程序。可通过在磁盘、光盘、半导体存储器或任何其他记录介质中存储该程序来提供该程序。此外,还可将程序提供为通过栽波传递的数字编码信号。所述程序可为单个程序或可实现为多个子程序,其中,每个子程序在单个计算设备内进行交互,或者以分布式方式通过网络控件进行交互。还应注意,此处所述的方法还可以是,至少通过服务代理和/或由服务代理操纵的机器根据服务请求执行的方法。附图中示出优选实施例,不过,应该理解,本发明并不限于所示具体布置和装置。图1示出被执行用于使客户端设备利用与一个或多个portlet相链接的一个或多个数据源产生对于该门户的用户体验的基本交互;图2表示,根据此处所披露本发明布置的实施例,用于更新自数据源获得的portlet信息的系统示意图3表示,根据此处所披露本发明布置的实施例,包括有门户服务器并用于更新自数据源获得的portlet信息的系统的示意图4表示,根据此处所披露本发明布置的实施例,包含有多个portlet,且由门户网关聚集多个portlet所需信息的图形用户接口(GUI);图5表示,根据此处所披露本发明布置的实施例,用于更新portlet的系统示意图6表示,根据此处所披露本发明布置的实施例,展示出将SOA基础设施扩展到包含有门户服务器的系统示意图7表示,根据此处所披露本发明布置的实施例,初始化门户网页所需的部件和交互的流程图8表示,根据此处所披露本发明布置的实施例,初始化门户网页所需的部件和交互的流程图9表示,根据此处所披露本发明布置的实施例,初始化门户网页所需的部件和交互的流程图10表示,根据此处所披露本发明布置的实施例的方法流程图,其中,服务代理能够对在隐藏portlet控件与呈现portlet控件之间进行切换以更新portlet的系统进行配置。具体实施例方式图2表示,根据此处所披露本发明布置的实施例,用于更新自数据源获得的portlet信息的系统200的示意图。在系统200中,客户端210可包括portlet212,214,216和218,通过交互引擎220对它们进行更新。每个portlet212-218可绑定到数据源240,并使用数据源240刷新portlet212-218内包含的界面控件。portlet212-218的每个界面控件均可具有多个版本,包括呈现版本和至少一个隐藏版本。交互引擎220可使用从数据源240获得的数据对隐藏版本进行更新,然后,将其与呈现版本交换。然后,可迭代重复该处理。通过首先构建新的完全最新版本的最新界面控件,然后将最新版本与过期版本控件交换,消除和/或降低闪烁效应。界面控件可为图形控件,例如,概括有信息的刻度盘、图表、滑动条、表格、媒体流控件、收报机等。界面控件还可包括音频控件,例如话音呈现和处理控件,或从数据源240接收连续信息更新的任何其他控件。在一个实施例中,界面控件可与包含信息的其他portlet交互式链接,所述portlet例如文字概述窗口或细节部分,根据用户选择呈现出与控件有关的数据值。客户端210可为能够呈现Web内容的计算设备。客户端210可包括但不限于桌面型计算机、服务器、移动电话、平板计算机(tabletcomputer)、个人数字助理(PDA)、数字媒体播放器等。门户可为用作为到Web上其他目的地的起始点的Web站点或网关。门户提供用于为用户聚集信息以提供用户体验的机制,其可根据用户偏好进行定制。门户可包含从多个数据源240获得的内容。数据源240可为包括有用于向一个或多个portlet212-218传递和提供内容的软件的计算设备。不同的portlet212-218可使用不同数据源240。单个portlet212-218也可从多个数据源240收集信息,例如,当portlet内的不同控件与不同数据源绑定在一起时。数据源240可与网际(IP)地址和/或域名相关联,网际(IP)地址和/或域名由相关联的portlet212-218引用。数据源240可提供Web网页和/或可作为一个或多个Web服务的提供者。交互引擎220可包括用于与服务器进行交互的客户端应用代码。交互引擎220可与Web网页(例如,包括portlet212-218的门户)相关联。在一个实施例中,可将交互引擎220实现为在客户端210上的Web应用上下文中运行的符合J2EE的软件组件。例如,交互引擎220可包括applet,JAVASCRIPT,异步JAVASCRIPT和XML(AJAX)等。交互引擎220可处理针对多个portlet212-218的更新请求。交互引擎220可进行多线程操作,且每个线程可以与portlet212-218数据更新操作相关联。例如,由交互引擎220引起的不同线程可以与更新请求230和更新请求234相关联。每个更新请求230和234可以是用于从数据源240接收数据的请求,其用于对一个或多个portlet212-218进行更新。可在响应232和236中对交互引擎220提供数据更新。在一个实施例中,交互引擎220可包括数据获取引擎222,portlet处理引擎224,和/或版本切换引擎226。交互引擎220还可以访问本地数据存储器227,其可存储为交互引擎220所用的信息,诸如示意表格228和229中所示的数据。数据获取引擎222可处理用于从数据源240获得信息的具体事项。例如,数据获取引擎222可确定针对每个portlet212-218的数据请求,并能够确定所要求的刷新速率,刷新率可以因portlet的不同而不同。用于实时和准实时数据的典型更新速率可以在一(1)和十(10)秒之间。当从数据源240流出音频/视频流时,每个更新可包括持续时间足够长的媒体内容数据包,以保持连续播放,直至在后一个更新周期中获得下一数据包。portlet处理引擎224可执行将所需数据包含到portlet控件中的必要操作。portlet处理引擎224可以,例如,执行操作以将原始数据转换成刻度盘界面控件的刻度盘设置。然后,portlet处理引擎224可以可视化呈现在界面控件隐藏版本中的最新刻度盘界面控件。因此,portlet处理引擎224可使用来自数据获取引擎222的数据,在将控件的隐藏版本呈现给用户之前,对控件的该版本进行更新。portlet处理引擎224还可以将用户特定设置包含到界面控件中。版本切换引擎226可对控件的隐藏版本与控件的呈现版本进行切换。切换可以在对隐藏控件已进行数据更新之后进行。出于简单起见,本说明书中给出的示例表示出控件的两个版本,即隐藏和呈现版本。然而,本发明不局限于此,可存在多个隐藏版本。在此情形中,版本切换引擎226可建立版本的有序队列,而处于队列"顶部,,的版本可与呈现版本交换。可使用在表格228和229中包含的数据来说明工作时的系统200。如表格228中所示,每个portlet212-218可与一个呈现版本(版本_)和一个隐藏版本(版本_11)相关联。每个portletlU-llS还可以具有特征刷新时间,诸如5,2,4和8秒,如图所示。可使用基于系统时钟的下一刷新时间来确保按照刷新率对portlet数据进行更新。如表格229中所示,portlet控件(C001和C002)的每个版本可具有多个元件(E123,E124,E125和E126)。每个portlet版本(P212_A)可包括一个或多个控件(C001-C002)。此外,每个元件可具有相关状态(Sl-S2)。状态可表示portlet处理引擎224是否已经基于自数据获取引擎222获得的新更新而成功对元件进行了更新。一旦完成所有更新,如状态所示,版本切换引擎226即可将最新更新且当前隐藏的版本与过期且当前显示出的版本进行切换。例如,在portlet处理引擎224已经使用新信息更新了P212—B之后,版本切换引擎226可交换P212—B与P212—A,从而使P212_B成为呈现版本,P212一A成为隐藏版本。使用从数据源240接收到的新数据,重复这一循环。应当理解,可使用多种技术来实现界面控件的呈现版本和隐藏版本。例如,可使用超文本标记语言(HTML)DIV标记在HTML文档中为不同版本的界面控件建立各自的部分。可将界面控件的隐藏版本设置在相关portlet212-218的背景中。可将界面控件的呈现版本设置在相关portlet212-218的前景中。图3表示,根据此处所披露本发明布置的实施例,包括有门户服务器320并用于更新自数据源获得的portlet信息的系统300的示意图。门户服务器320可处理对于客户端310,312和314的信息更新,每个信息更新在一个或多个portletPl-P6内呈现信息。每个客户端310-314可具有交互引擎311,313和315,其用于执行更新,如参照系统200中所述。交互引擎311,313和315可使用本地数据存储器318存储用于对portletPl-P6进行更新的数据。可从一个或多个数据源340,342和343获得portletPl-P6信息。网络352和354可将客户端310-314和数据源340-343与门户服务器320进行通信链接。门户可包括一个或多个portletPl-P6。每个portletPl-P6可为可插用户界面组件。不同portletPl-P6可呈现自不同数据源340-343得到的内容。例如,portletPl和P2可呈现源自数据源340的数据。portletP3和P4可呈现源自数据源342的数据。portletP5和P6可呈现源自数据源343的数据。可根据面向服务体系结构(SOA)344对数据源343进行配置。SOA344可提供用于将任何类型的信息消费者与任何业务过程或数据提供者348相结合的一致、可重用方法。在SOA344中,服务可为具有良好定义界面的自包含、可重用软件模块,并可独立于应用程序和运行应用程序的计算平台。数据提供者348可为对一个或多个portletPl-P6更新数据的数据提供者。数据可通过服务网关346在服务提供者348与网络354之间传递。门户服务器320能够提供数据,并能够起到客户端310-314与数据源340-343之间通信中介的作用。门户服务器320的一个功能是向交互引擎311-315中合适的交互引擎提供实时信息,此信息可能需要经常进行更新。为便于更新,门户服务器320能够将来自数据源340-343的信息高速緩存在数据存储器328中。可使用高速緩存的数据直接对数据更新请求进行响应。门户服务器320能够反复对数据存储器328中的信息进行更新,以便确保数据不过时。例如,客户端310和312可能需要进行对于门户Pl的数据更新,这通常从数据源340直接获得。反之,门户服务器320可从数据源340周期性和/或间歇性地获得对于portletPl的更新,并将更新结果设置在数据存储器328中。只要客户端310或312需要对Pl进行更新,就可直接从数据存储器328直接获得这些更新。这些设置可将数据更新推进得与客户端310-314更近,并能够使数据源340和网络354处理的数据更新请求最少。从而,客户端310-314能够体验到更快响应时间,同时还降低了在网络354和数据源340上的负荷。该方法是高度可伸缩的,而且使实时信息离终端用户更近,因此,减小了数据检索的时延。在另一示例中,门户服务器320能够合并公共类型的实时信息。例如,门户P3和P4能够从数据源342获得更新信息。这些数据更新可以针对相关信息的。门户服务器320能够将portletP3和P4所需的信息聚集成单个数据集,它可比与P3和P4相关联的非聚集数据集具有更粗的粒度级。然后,门户服务器320能够间歇式地检索对于聚集数据集的数据更新,其放置在数据存储器328中。可使用存储在数据存储器328中的聚集数据集信息直接应答自portletP3和P4的数据请求。在又一示例中,门户服务器320能够从服务提供者348检索针对portletP5和P6的数据。对于portletP5和/或P6,当首次从客户端310-314接收数据更新时,门户服务器320可建立用于从提供者348检索必要信息的新数据获取服务。该服务能够反复对信息进行更新,并将最新信息设置在数据存储器328中。从而,门户服务器320能够直接使用存储在数据存储器328中的最新信息对与portletP5和P6相关的更新请求进行响应。只要一个或多个客户端310-314需要进行与portletP5和/或P6相关的数据更新,就会在门户服务器320与提供者348之间保持相关服务,从而确保数据不过时。门户服务器320可包括注册处理程序322、管理处理程序324、数据处理程序326和数据存储器328。注册处理程序322能够注册每个portletPl-P6所需的实时信息以及实时数据检索间隔的频率。注册处理程序322确保更新发生在门户服务器320与相关联的数据源340-343之间,以确保满足客户端310-314的频率要求。管理处理程序324接收来自portletPl-P6的数据请求,并对此进行响应。有必要时,管理处理程序324能够发起新数据获取进程,这在数据处理程序326中执行。另外,管理处理程序324能够管理聚集数据集与各个portletPl-P6之间的关系,且portletPl-P6基于聚集数据集接收数据更新。数据处理程序326能够建立数据获取进程和/或线程,以便从数据源340-343获得指定类型的数据。数据处理程序326的数据获取进程可以与来自客户端310-314的数据请求同步和/或异步。如果是异步,则使用数据存储器328高速緩存检索的数据。网络352和354可包括任何硬件、软件,以及传递在载波内编码的数据所必需的固件。可将数据包含在模拟或数字信号内,并通过数据或与语音信道传递。网络352和354可包括用于在计算设备部件间以及在集成设备部件与外围设备之间进行通信所需的本地部件和数据路径。网络352和354还可包括网络设备,例如,路由器、数据线、集线器和中间服务器,它们一起构成数据网络。网络还可包括基于电路的通信部件和移动通信部件,例如,电话交换机、调制解调器、蜂窝通信塔等。每个网络352和354都可包括基于线路和/或无线通信路径。数据存储器318和328可为用于存储数字信息的物理或虚拟存储空间。数据存储器318和328可在物理上实现于任何类型的硬件内,这样的硬件包括但不限于磁盘、光盘、半导体存储器、数字编码塑性存储器、全息存储器,或任何其他记录介质。每个数据存储器318和328可为独立式存储部件以及由一个或多个物理设备形成的存储部件。另外,可将信息以各种方式存储在数据存储器318和328内。例如,可将信息存储在数据库结构内或可将其存储在文件存储系统的一个或多个文件内,其中,出于信息搜索目的,可以对或者不对每个文件进行索引。此外,数据存储器318和/或328可利用一个或多个加密机制,保护所存储的信息免受未授权访问。图4表示,根据此处所披露本发明布置的实施例,包含有多个portlet,且由门户网关聚集多个portlet所需信息的图形用户接口(GUI)402和408。GUI402显示出在进行数据聚集之前的门户,GUI404显示出在聚集之后的同一门户。门户可包括portlet408,410,412,414,416和418,每个呈现出当前公司业绩统计数据。业绩统计数据使用不同的GUI控件呈现,这些控件包括刻度盘、图表、摘要、收报机等。GUI控件可用于帮助用户快速了解公司信息用户可定制业绩统计数据和呈现控件以适合用户需求。控件均可包括隐藏版本和呈现版本,其中在进行更新后将隐藏版本与呈现版本进行交换。portlet408-418中显示的信息可实时进行更新。当GUI控件所基于的业绩信息变化时,可自动更新该控件。如图所示,portlet408-416可将公司业绩信息呈现为一系列计量器(gauge)。portlet418可显示出业绩图表。一般而言,在portlet408-416中显示的每个计量器以及在门户418中显示出的图表将直接和独立与数据源链接。为使portlet408-418信息保持最新,将需要多个实时信息流。每个portlet依赖于多个实时流可消耗大量计算资源,而且效率有些低。此外,将多个实时流用于每个portlet408-418造成可伸缩性问题,并可预计有数据时延。数据源与GUI402的用户之间的任何时延都可导致GUI控件闪烁,门户表现出"锁定",并可出现用户注意到的降低总体用户体验的其他效应。通过使用门户服务器,如系统300中所示,由于门户服务器提供针对portlet408-418的直接数据更新,可减少可伸缩性问题,并可降低时延。通过将多个portlet所需的数据聚集成公共数据集,门户服务器还减少了不必要的通信量,以及增大基础设施可伸缩性,如在GUI404中所示。在GUI404中,可为portlet410-416创建一个聚集数据集420。不同数据集422可将与数据集420以及portlet408和418相关联的数据聚集。一旦创建了数据集420或422,门户服务器可创建与用于对数据集420或422进行更新的数据源间的链路。该链路能够满足多个部件portlet和/或数据集的数据更新要求,以便使门户服务器与数据源之间的通信量最小。假设用于portlet408-418的GUI控件和其中包含的信息是基于可定义的数据超集(数据集422),而且,针对portlet410-416的信息是基于可定义的数据超集(数据集420)。GUI控件的值可基于较固定数据(基线数据)与最新数据集420和/或422中包含的数据的组合。可将基线数据本地存储在客户端和/或门户服务器上,以便使对于数据源的不必要请求最少。同样,将(基线数据和或数据集420-422的)原始公司数据转换成GUI控件所需的值需进行的处理操作,可由客户端和/或门户服务器执行。值得注意的是,门户服务器可确定对于每个portlet的数据要求,并能够确保使用网关注册处理程序以及交互引擎(如先前所述),以适当频率执行portlet到网关的更新。门户服务器的管理处理程序可在聚集数据集420-422与每个portlet408-418,和/或注册处理程序针对各个portlet408-418处理的进程之间进行协调。门户服务器的数据处理程序可确保以合适频率,反复执行数据源与网关之间的数据更新,以保持数据不过时。图5表示,根据此处所披露本发明布置的实施例,用于更新portlet的系统500的示意图。系统500可包括客户端508,客户端508将门户服务器526用作为中间设备,以便通过企业服务总线530自企业服务总线获得企业数据。portlet503-506是包括刻计量器界面控件的portlet,所述计量器界面控件呈现发送数据。portlet507呈现提醒信息。通常利用经由总线530从企业数据源获取的数据对每个portlet503-507进行更新。对于portlet503-507的刷新操作可由JAVASCRIPTS,AJAX脚本等触发,并可由本地交互引擎502处理。交互引擎502可与存储器内高速緩存(in-memorycache)509相关联,高速緩存509是用于存储更新portlet503-507所需的信息的数据存储器。例如,高速緩存509可存储用于每个portlet503-507的前景控件元件(可视或呈现元件)和背景控件元件(隐藏)。高速緩存509可通过指定数据源的URL来指定向portlet503-507提供信息的数据源,如系统500所示。引擎502可与门户服务器526相接口,门户服务器526与企业服务总线530相接口,从企业服务总线530获得更新数据。例如,可通过注册处理程序521注册每个portlet503-507。可通过主处理程序524传递用于获取数据的请求,主处理程序524提供数据响应。主处理程序524可使用一个或多个数据处理程序522获得企业数据。每个数据处理程序522可使用本地高速緩存523和/或527,以确保以适当频率(如注册处理程序521所指定的)获得更新。应该注意,每个portlet503-507可注册不同的数据更新上下文,例如,对于portlet503的上下文1(Cl),对于portlet504的上下文2(C2),对于portlet505的上下文3(C3),对于portlet506的上下文4(C4),对于portlet507的上下文5(C5)。可由其相关上下文识别出不同的数据更新任务。不同类型的数据处理程序522可与不同类型的数据上下文相关联。例如,portlet503-506可具有与发送(emission)相关联的上下文(Cl-C4),发送由发送数据处理程序522进行处理。高速緩存或数据存储器523能够记录何时对每个上下文进行了最后更新和/或访问。在另一示例中,portlet507可具有与提醒相关联的上下文(C5),提醒由提醒数据处理程序522进行处理。高速緩存或数据存储器527可记录何时对C5进行了最后更新和/或访问。图6表示,根据此处所披露本发明布置的实施例,展示出将SOA基础设施630扩展620到包含有门户服务器626的系统600示意图。在系统600中,一个或多个客户端608可包括呈现企业数据的portlet。企业数据可从企业数据源获得。企业数据源可包括提供者636提供的数据,提供者636利用应用服务器635为企业提供应用数据。可将应用数据作为一个或多个Web服务628提供给门户服务器626。服务网关631可作为门户服务器626与SOA框架结构630之间的通信中介。可将门户服务器626有选择性地实现为门户服务器集群(未示出),以提供冗余,并在一个或多个门户服务器626失效时使得实现系统600的弹性操作。通过Web服务628获得的企业信息可由门户服务器626存储在门户数据存储器625中。可根据建立的Web服务628不断更新在门户数据存储器625中的信息,以确保门户数据存储器628总包含最新信息。不断更新可进行得足够频繁,以便直接从数据存储器625向客户端608提供准确实时数据。客户端608的每个portlet603-607可利用交互引擎602与门户服务器626相接口。可使用数据存储器609存储指定用于对portlet603-607进行更新的数据源的信息,例如,相关联Web站点的URL。数据存储器609还可独立存储和跟踪portlet603-607的前景(呈现)版本信息和背景(隐藏)版本信息。客户端608可通过一个或多个边缘服务器(未示出)与门户服务器626进行通信。授权引擎(未示出)能够确保门户数据的安全。门户服务器626能够有可选地包括与特定客户端608相接口的用户体验引擎621。如图所示,用户体验引擎621可与注册处理程序(未示出)、主处理程序624和数据处理程序622通信链接。每个数据处理程序可与存储器高速緩存623和/或627相关联,存储器高速緩存623和/或627存储有数据更新频率信息。处理程序能够一起确保对在客户端608portlet内呈现以及从提供者636获得的数据进行不断更新。在一个实施例中,用户体验引擎621可为特定通信信道定制企业内容,例如,客户信道、员工信道、管理信道,和IT管理者信道等。通信信道还可与不同市场信道相连接,例如,店面系统、售货亭、电子零售Web站点等。因此,用户体验引擎621能够为不同前端系统定制自企业基础设施获得的企业数据流。将来自客户端608所使用的不同前端系统的企业数据按照这样的松耦合方式进行分段,可确保企业数据能够被不同的可分别定制的系统使用,而不会负面地影响后端系统。应该注意,系统600的基本SOA基础设施630是用于提供将基于SOA的系统的简单、松耦合优点与集成技术的更传统方法进行组合的企业服务和数据的专用体系结构,其具体细节是其他发明方案的主题。可将基础设施630扩展620到包括门户服务器626的构思。系统600表示本portlet增强方案的许多考虑到的实施例之一,和对于门户服务器626的一个考虑到的应用。不应将本发明理解为受限于系统600中所示的布置,在任何各种情形和系统中都可使用门户服务器626,如系统200、系统300以及本文献中所述。为详细说明系统600,SOA基础设施630的服务网关631可提供对在客户端608上执行的信道应用的企业服务访问。服务网关631可负责接受来自本地应用服务器635的SOAP格式的XML请求。从而,可以发现每个请求的合适服务提供者636,并将该请求传递到合适的提供者636,从而根据需要将任何附加元数据添加到XML请求中。这些变换通常是所有服务请求在其被服务提供者636接收之前必须已经执行的公共活动。服务网关631可作为执行这些功能以减少信道客户端608或应用程序的负担的中央部件。网关631可动态绑定到提供者,或通过良好定义的通信信道实现。服务网关631还可将绑定提供者数据存储在动态运行时刻高速緩存632内。门户631能够使用存储在动态运行时刻高速緩存632中的数据直接对门户服务器626的请求进行响应。提供者636能够从信息源接收数据更新,并可将其传递到绑定数据元件,例如,在动态运行时刻高速緩存632内的数据元件。所述方法可用于使动态运行时刻高速緩存632中的信息保持最新。在未知服务请求的情形中,服务网关631可向集成服务提供者633请求绑定位置。集成服务提供者633可为针对所有有效服务请求的记录系统。一旦发现请求,就会将它传递到合适的端点。服务网关631可存储提供者636的位置,并直接绑定在随后的请求上。服务目录634可为在线目录,其为企业和组织机构提供一致方式以描述可用服务、服务能力、所需界面参数和由所述服务导致的输出参数。目录634的服务可包括通过服务网关631可访问的所有服务。在一个实施例中,服务目录634可使用基于可扩展标记语言(XML)的Web服务目录。在服务目录634中指定的Web服务可使用Web服务描述语言(WSDL)进行描述。服务目录634可为统一描述发现和集成(UDDI)目录。可使用示意性示例显示出系统600的内部工作。在一个示例中,portlet客户端可利用JAVASCRIPT或类似代码请求刷新portlet数据。引擎602能够接收请求,并能够管理对于客户端608的portlet603-607更新细节。引擎602能够生成可通过边缘服务器传送到授权服务器的更新请求,授权服务器确保对请求客户端进行授权以访问门户服务器626。请求可由注册处理程序接收,注册处理程序使得能够实现实时信息类型的注册。注册处理程序能够触发主处理程序624创建用于从数据源获得最新数据的线程。主处理程序624的每个线程都可在数据处理程序622内创建相应数据更新线程。每个数据处理程序622线程能够通过SOA基础设施630不断和异步地检索数据。可将自数据处理程序622检索的数据设置在门户数据存储器625中。主处理程序624可通过引擎602根据需要为请求portlet603-607提供更新信息。在演示门户服务器弹性的另一示例中,客户端608的portlet603可利用JAVASCRIPT请求引擎602更新portlet603。客户端608已能够使其本身得以授权,从而,刷新请求能够通过边缘服务器和授权服务器到达指定门户服务器625。该先前使用的门户服务器625可能不可用,这可导致将刷新请求自动传递到备份节点。用于对包括接收请求的portlet的网页/门户进行处理的程序可在备份节点上进行初始化。可由对于处理程序622和624的处理程序线程进行执行。如果有的话,备份节点可直接获得来自门户存储器625的数据。对于备份节点所处理的portlet,数据处理程序622和相关线程可通过SOA基础设施630不断和异步地检索实时数据。通过备份节点,或在可用时,使用先前高速緩存的信息,或者使用通过SOA基础设施630获得的实时数据,可对刷新请求进行响应。如果原始门户服务器626变得可用,则可将用于对来自客户端608的portlet请求进行处理的任务从备份节点无缝切换到原始门户服务器626。图7表示,根据此处所披露本发明布置的实施例,初始化门户网页所需的部件和交互的流程图700。具体而言,流程图700显示出客户端702与包括portlet708和710的门户706之间的交互。客户端702侧的数据更新处理可由交互引擎进行管理,例如,applet或AJAX脚本。可使用包括注册处理程序720、主处理程序722和数据处理程序724和726的门户服务器,对每个portlet708-710进行更新。在流程图700中,客户端702可使用注册处理程序720对其本身进4亍注册。注册可对每个portlet708-710以及每个portlet708-710所需的数据类型进行初始化。一旦被注册,注册处理程序720就能够对未来请求的portlet上下文进行管理。当具体类型的客户端702发出首次刷新请求时,门户服务器能够对主处理程序722进行初始化。主处理程序722能够产生合适的进程和/或线程,例如在数据处理程序724中产生的获取线程。每个数据类型/数据上下文/刷新率组合可具有相关联的数据处理程序线程和/或进程。然后,portlet708能够从主处理程序722检索数据,进而从对portlet708提供服务的数据处理程序724获得最新数据。当客户端702为不同类型更新发出另一刷新时,门户服务器能够再次对主处理程序722进行初始化。门户服务器与客户端702之间的通信可通过交互引擎进行,而与进行更新的portlet708-710无关。主处理程序722能够再次为不同更新类型生成合适的数据获取线程/进程。例如,由数据处理程序726的进程可对新类型进行处理。然后,portlet708可从主处理程序722检索数据,进而能从提供该类型数据的数据处理程序726获取最新数据。图8表示,根据此处所披露本发明布置的实施例,初始化门户网页所需的部件和交互的流程图800。具体而言,流程图800表示当portlet做出以不同刷新率对同一类型信息的刷新请求时所需的交互。交互引擎,例如系统200的引擎220,能够处理客户端交互。在流程图800中,客户端802能够通过注册处理程序820进行注册,注册处理程序820允许处理程序820管理关于未来请求的portlet上下文。可由客户端802发出具体类型的首次数据刷新请求。作为响应,门户组服务器可对主处理程序822进行初始化。主处理程序822能够使数据处理器824启动用于确保以预定频率从数据源获取数据的进程。然后,portlet808能够从主处理程序822反复检索数据,主处理程序822进而从数据处理程序824接收所需数据。portlet810也可发出同一类型的刷新请求,其发送给主处理程序822。主处理程序822能够识别出存在现有进程以l更为portlet810获取所需信息。在一个实施例中,用于为portlet808获取数据的进程可为检索聚集数据集的进程,该聚集数据集可用于满足多个portlet的数据要求。例如,由数据处理器824管理的先前创建的进程可获取如图4所示数据集420的数据,其中,portlet808-810表示portlet410-416的实例。一旦识别出现有进程,主处理程序822就能够确认现有进程的数据刷新率足够满足portlet810的要求。否则,可适当调节现有数据获取进程的频率。portlet810能够从主处理程序822检索数据更新,主处理程序822进而从数据处理程序824接收这些数据。图9表示,根据此处所披露本发明布置的实施例,初始化门户网页所需的部件和交互的流程图900。流程图卯0显示出,数据处理程序924和926自数据源获取的数据可与来自客户端902的数据更新请求异步发生。例如,数据处理程序924和926可不断对本地数据存储器(如图3所示数据存储器328)进行更新。来自本地数据存储器的内容可用于对portlet请求进行响应。在流程图900中,数据处理程序924和926能够向数据源(例如,提供者928)发出数据请求(例如,SOAP请求)。在一个实施例中,数据处理程序924-926可使用轮询方法获得信息,其中,可由客户端902要求来确定轮询期间。轮询期间必须等于或小于客户端902所需的最短数据刷新期间。在另一实施例中,数据处理程序924-926可使用预订方法。也就是,可在数据处理程序924-926与数据提供者928之间建立数据预订。只要数据提供者928检测到对于预定内容的更新,就将该更新传递到合适的数据处理程序924-926。然后,将更新进行本地緩存。只要门户904更新处理需要刷新portlet906数据,就可对主处理程序922进行查询。主处理程序922能够向数据处理程序924请求响应数据,数据处理程序924使用本地高速緩存的信息进行响应。同样,对于不同数据上下文,不同portlet906能够将请求提交给主处理程序922,这由处理程序926负责处理。主处理程序922能够从处理程序926请求响应数据,处理程序926可使用先前高速緩存的数据进行响应,如所示。图10表示,根据此处所披露本发明布置的实施例的方法1000流程图,其中,服务代理能够对在隐藏portlet控件与呈现portlet控件之间进行切换以更新portlet的系统进行配置。方法1000可在系统200的环境中执行。方法1000可始于步骤1005,此时客户启动服务请求。服务请求可为要求服务代理对刷新portlet的软件系统进行配置或故障诊断的请求。系统可从数据源获取数据,并使用该数据对portlet控件的隐藏版本进行更新,然后将其与该控件的呈现版本进行交换。该系统还可利用此处详细描述的门户服务器。在步骤1010中,可选择人工代理对服务请求进行响应。在步骤1015,人工代理能够对客户的当前系统进行分析,并提出解决方法。在步骤1020中,人工代理能够对客户的系统进行配置,以便该系统能够刷新portlet。人工代理例如能够对客户的系统进行配置,以便利用此处所述的portlet更新引擎。如果系统包括门户服务器,则门户服务器可为多个客户端提供服务,并可被设置成集群以确保弹性。此外,门户服务器可从任何数据源获得用于刷新portlet的信息,这样的数据源包括SOA数据提供者。在步骤1025中,人工代理能够完成服务活动。应该理解,尽管人工代理可物理上到达本地位置来调整客户的计算机或门户服务器,然而物理到达可以是不必要的。例如,必要的话,人工代理可使用远程代理对客户的计算机系统或门户服务器进行远程操作。本发明可采用硬件、软件,或硬件和软件的组合来实现。本发明可采用集中方式在一个计算机系统中实现,或采用分布式方式实现,在此其中,不同元件分布在数个互连的计算机系统上。可适于使用用于实现此处所述方法的任何种类的计算机系统或其他装置。硬件和软件的典型组合可为具有计算机程序的通用计算机系统,当将加载以及执行所述程序时,控制计算机系统以便执行此处所述的方法。还可将本发明包含在计算机程序产品中,其包括用于实现此处所述方法的实现方式的所有特征,当将其载入到计算机系统中时,能够执行这些方法。在本文中的计算机程序以任何语言、代码或表示方式表示出的任何指令集表示,用于使具有信息处理能力的系统直接执行特定功能,或在经过以下任一或两者处理之后执行a)转换到另一语言、代码或表示;b)以不同材料形式生成。在不偏离本发明精神和基本属性的条件下,可采用其他方式包含本发明。因此,将参照后面的权利要求,而非前面的说明书部分,表示出本发明的范围。权利要求1.一种用于更新portlet的方法,包括识别出在portlet内绑定到数据源的界面控件;建立界面控件的两个版本,一个是在客户端上显示的前景版本,另一个是隐藏的背景版本;显示出界面控件的前景版本;从数据源获取数据更新;根据数据更新对背景版本进行更新;将背景版本与前景版本进行切换;显示界面控件的新前景版本,其中,所述新前景版本包括数据更新。2.根据权利要求1的方法,还包括根据portlet刷新率,迭代重复获取、更新、切换和显示新前景版本的步骤。3.根据权利要求2的方法,其中,portlet刷新率在一秒和十秒之间。4.根据权利要求1的方法,其中,包含portlet的Web网页包括多个portlet,所述多个portlet包括第二portlet;所述方法还包括识别出在第二portlet内绑定到第二数据源的第二界面控件;建立第二界面控件的两个版本,一个是在客户端上显示的第二前景版本,另一个是隐藏的第二背景版本;显示在第二portlet内图形界面控件的第二前景版本;从第二数据源获取第二数据更新;根据第二数据更新对第二背景版本进行更新;将第二背景版本与第二前景版本进行切换;以及显示第二界面控件的新第二前景版本,其中,所述新第二前景版本包括第二数据更新。5.根据权利要求1的方法,还包括根据第二p0rtlet刷新率,迭代重复获取、更新、切换和显示第二portlet的新第二前景版本的步骤,其中,portlet刷新率不同于第二portlet刷新率。6.根据权利要求l的方法,其中,界面控件为具有基于从数据源获得的数据的设置的刻度盘。7.根据权利要求l的方法,还包括向客户端提供交互引擎;以及根据portlet刷新率,交互引擎反复执行获取、更新和切换步8.根据权利要求7的方法,其中,portlet为包括多个portlet的Web网页的一部分,且其中,交互引擎支持多个portlet。9.根据权利要求8的方法,其中,数据源为面向服务体系结构的服务提供者,其中,将数据更新提供作为在服务提供者和与面向服务体系结构相接口的门户服务器之间建立的Web服务的一部分,其中,交互引擎与门户服务器相接口。10.根据权利要求1的方法,其中,权利要求1的所述步骤由至少一个机器根据具有可由所述至少一个机器执行的多个代码段的至少一个计算机程序来执行。11.根据权利要求1的方法,其中,权利要求1的步骤由服务代理和所述服务代理操纵的计算设备中的至少一个来执行,响应于服务请求执行所述步骤。12.—种用于更新portlet信息的方法,包括识别出在客户端上呈现的多个portlet,其中,每个portlet包括自至少一个远程数据源迭代更新的界面控件;对于每个portlet,建立界面控件的呈现版本和界面控件的隐藏版本;对于每个portlet,从远程数据源获取数据;响应于接收所获取的数据,使用所获取的数据更新界面控件的隐藏版本;在对隐藏版本进行更新后,将隐藏版本与呈现版本进行切换;以及根据portlet刷新率,重复获取、更新和切换步骤。13.根据权利要求12的方法,其中,所述portlet中的特定portlet具有不同的portlet特定刷新率。14.根据权利要求13的方法,还包括在客户端上建立交互引擎;其中,交互引擎管理客户端的获取、更新和切换步骤,它包括对每个portlet执行所述步骤,且其中,将交互引擎实现为applet、JAVASCRIPT以及AJAX脚本中的至少之15.根据权利要求14的方法,其中,交互引擎与门户服务器相接口,其中,门户服务器的位置远离客户端以及至少一个远程数据源,且其中,门户服务器充当客户端与至少一个远程数据源之间的通信中介。16.根据权利要求15的方法,其中,数据源是面向服务体系结构的服务提供者,其中,将数据更新提供为在服务提供者与门户服务器之间建立的Web服务的一部分。17.根据权利要求12的方法,其中,权利要求12的步骤由服务代理和所述服务代理操纵的计算设备中的至少一个来执行,响应服务请求而执行所述步骤。18.—种用于对portlet信息进行更新的方法,包括被配置为对客户端的多个portlet的更新进行处理的交互引擎,其中,每个portlet包括自数据源进行迭代更新的界面控件;呈现给客户端用户的界面控件的呈现版本;以及被配置为由接收自数据源的数据直接进行更新的界面控件的隐藏版本,其中,在进行更新之后以及从数据源获取新更新之前,将隐藏版本与呈现版本进行切换。19.根据权利要求18的系统,还包括位置远离客户端以及数据源的门户服务器,其中,门户服务器充当客户端与数据源之间通信中介。20.根据权利要求19的系统,还包括面向服务体系结构的服务提供者,其被配置为数据源,其中,将portlet更新提供为在服务提供者与门户服务器之间建立的Web服务的一部分。全文摘要用于更新portlet信息的方法和系统。可通过首先识别出在客户端上呈现的一个或多个portlet来更新portlet信息。每个portlet可包括自远端数据源反复进行更新的界面控件。对于每个portlet,都可建立界面控件的呈现和隐藏版本。每个portlet都可从数据源获取数据,并使用该数据更新界面控件的隐藏版本。可使用所获取的数据更新控件的隐藏版本。更新隐藏版本后,将隐藏版本与呈现版本进行切换。每个portlet可具有portlet刷新率,可重复进行获取数据,更新隐藏版本,和将隐藏版本与呈现版本进行切换的步骤,以满足portlet刷新率。文档编号G06F17/30GK101114302SQ200710136900公开日2008年1月30日申请日期2007年7月23日优先权日2006年7月24日发明者罗马利亚·H.·弗洛里斯,詹姆斯·P.·艾普亚德,詹森·萨尔斯多申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1