CN1956404A - 使用面向消息传送的中间件动态地更新网页的系统和方法 - Google Patents

使用面向消息传送的中间件动态地更新网页的系统和方法 Download PDF

Info

Publication number
CN1956404A
CN1956404A CNA2006101425061A CN200610142506A CN1956404A CN 1956404 A CN1956404 A CN 1956404A CN A2006101425061 A CNA2006101425061 A CN A2006101425061A CN 200610142506 A CN200610142506 A CN 200610142506A CN 1956404 A CN1956404 A CN 1956404A
Authority
CN
China
Prior art keywords
message
web
webpage
messaging client
server
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.)
Pending
Application number
CNA2006101425061A
Other languages
English (en)
Inventor
杰勒德·巴特纳
奇特拉·多雷
萨梅·A·法克霍里
丹尼尔·A·丹·吉索尔菲
李建仁
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 CN1956404A publication Critical patent/CN1956404A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种用于使用基于浏览器的消息传送来动态地对网页进行更新的系统、用计算机实现的方法以及计算机程序产品。一种用于使用基于浏览器的消息传送来动态地对网页进行更新的系统包括:网页,其包括多个Web消息传送标记,以及能够绑定到该Web消息传送标记的选定的数据模型;以及至少一个消息传送客户端,其用于从消息服务器接受至少一个消息并且用于将所接受的至少一个消息处理到该选定的数据模型中。

Description

使用面向消息传送的中间件动态地更新网页的系统和方法
技术领域
本发明一般地涉及数据处理领域,并且更特别地涉及一种用于使用基于浏览器的消息传送(messaging)来动态地对网页进行更新的系统、用计算机实现的方法以及计算机程序产品。
背景技术
Web(网络)已经通过使得商务应用易于部署、管理和访问而创建了令人难以置信的增长环境。作为结果,Web已经相当迅速地取代了客户端-服务器模型。基于开放标准,诸如JavaTM、J2EETM(JavaTM2平台企业版本)、HTTP(超文本传输协议)、HTML(超文本标记语言)和JavaScriptTM(Java脚本),以及普遍存在的浏览器,企业能够开放其“后端”(backend)并创建员工和客户能够容易地在任意时间从任意位置访问多种应用的环境。
然而,另一方面,Web所创建的用户体验被认为相对于客户端-服务器环境中所存在的情况来说是一种退步。在客户端-服务器环境中,客户端可享受由诸如MicrosoftWindows之类的基于GUI(图形用户接口)的操作系统提供的随心所欲的丰富性。尽管可以使得Web接口高度图形化,但实际的交互性模型是非常局限的。例如,与用户的大多数交互之间的可察觉的性能差距和全屏刷新仍然是重要的问题。ActiveXTM控件等试图以各种方式弥补这种局限,但却因与开发模型、安全、性能和兼容性有关的问题而未能获得普遍的使用。只有采用HTML、DHTML(动态HTML)、CSS(层叠样式单)和JavaScript的网页仍然在普遍地广泛使用。JavaTM applet(小应用程序)从某种程度上能够在浏览器上执行很多任务,尽管其难于适应因特网上使用的采用不同JVM(JavaTM虚拟机)的各种浏览器以及安全限制。
请求式客户端浏览器框架(OBF)是一种软件框架,其实现了基于浏览器的服务数据对象(SDO)、使用JavaScriptTM的JavaTM标准模型,并包括一组JavaScriptTM UI(JavaScriptTM用户接口)窗口小部件以及一个小的服务器侧JavaTM库,以便对数据进行流式传送。OBF尝试解决由Web产生的很多交互性问题,但仍然立足于传统的网页体系结构。
基于在诸如IE5.5及更高版本、Netscape6及更高版本以及MozillaTM1.x之类的现代浏览器中对JavaScript的高级使用,OBF力图创建“持续得更久的网页”。结合封装更多数据的动态模型,支持OBF的网页能够与端用户保持更久的交互,而不需要返回服务器的往返行程。通过在页面内创建实际上是MVC(模型-视图-控制器)模型的内容,开发者能够定义工作数据集和动态地绑定到该数据的一组控件。因此,可以在同一页面上的不同窗口小部件之间共享同一数据对象。
考虑例如用于管理用户的股票投资的Web应用。在本例中,需要将股票价格以及资产分配(特定股票的价值在总投资中的百分比,即价格×份额/总价值)显示给用户。可以用数据的可滚动表格显示(有时称为DataGrid(数据网格))来显示例如资产分配(股票发行、数量)和特定股票的当前价格;并且还可以用饼状图来向用户显示同一信息。该数据可以同时被DataGrid和饼状图共享。当模型中的任意数据对象被更新时,OBF中的捆绑组件将通知绑定到该数据对象的用户接口对象刷新其自身以反映最新的变化。然后,用户可以使用该组控件来与工作数据集进行交互,并且在确实需要返回服务器的往返行程(例如以提交数据、完成交易等)之前,用户可以从在通常的网页中不常见的与页面进行交互的响应时间和自由度中受益。
虽然OBF能够在进行初始页面加载时对网页上其数据模型内的一定量的数据进行高速缓存,并且可以极大地改善网页的可用性(交互性和响应度),但由于客户端计算机存储器的限制和因下载大型数据集而引起的初始网络延迟,可被高速缓存的数据集仍然是有限的。此外,支持OBF的网页缺乏固有的工具用于在数据对象处于用户屏幕上时使这些数据对象保持最新。上述股票投资的Web应用是这一点的一个很好的示例。在此情况下,股票价格随时间而变化,并且必须对网页进行更新以跟上这种变化。在标准的Web应用中,仅当从服务器重新获取整个页面时,才能对网页上的数据进行更新。这样做效率很低,原因是其需要“请求-响应”对的往返行程来进行每次数据刷新,并且其还丢失了用户可能已经在同一页面的不同部分上进行的任意更新。
在OBF中,对模型中的数据进行更新的一种方式是通过使用基于浏览器的WebService(网络服务)控件来实现的。然而,用户必须通过点击网页上的按扭或超链接来发起WebService调用以对数据页面进行更新。这基本上是基于拉(pull-based)的模型,其需要用户主动地搜寻数据并经常刷新网页。
OBF的竞争者是AJAX。AJAX代表异步JavaScriptTM和XML(扩展标记语言),是描述用以使用以下技术的组合来创建交互式Web应用的Web开发方法的术语:
·HTML,或者XHTML(扩展HTML),以及CSS,用于信息呈现
·文档对象模型,通过JavaScriptTM进行操纵以动态地显示所呈现的信息并与该信息进行交互
·XMLHttpRequest(XMLHttp请求)对象,用以异步地在后台从Web服务器获取数据。
由AJAX所使用的技术自1997年开始已经存在,然而,来自GoogleTM的若干最近的高端产品是AJAX应用,包括GmailTM、GoogleMaps(地图)、GoogleTM Groups(群组)等。这已经帮助提升该技术的知名度,并且已经使得AJAX在因特网开发者中更加流行。
至于AJAX,一种基于浏览器的消息传送的已知解决方案由ActiveMQTM通过其REST API(应用程序接口)来提供。ActiveMQTM是公开源JMS 1.1(Java消息服务1.1)提供者和消息传送中间件。ActiveMQTM中AJAX支持构造在用于ActiveMQTM的REST连接器之上,REST连接器使得支持Web的设备可以通过JMS(Java消息服务)来发送或接收消息。
尽管OBF和AJAX共享相同的目标,即改善Web应用的可用性,并使用多种相同技术(诸如JavaScriptTM、HTML DOM(文档对象模型)、CSS等),它们之间仍然有很大差异。如上所述,OBF是在网页上使用MVC模型来完备构造的,其中该模型绑定到窗口小部件,从而在窗口小部件之间实现数据共享。通过这样做,在数据模型与窗口小部件之间实现了完全的隔离。来自Web服务器的任何数据更新始终是相对于该模型作出的。该模型可以绑定到任意窗口小部件。通过工具帮助,使用OBF的网页开发可以变得非常灵活并易于拖放。相反,AJAX中没有正式的MVC模型,其将XML用作其数据存储器。ActiveMQTM的Web消息传送使用XMLHttpRequest来进行REST API上的调用以发送和接收消息,并且然后,AJAX JavaScriptTM库将对消息进行操纵以便进行呈现,而不需要涉及数据模型。
因此,需要一种用于使用基于浏览器的消息传送来动态地对网页进行更新的系统和用计算机实现的方法,以便改善Web应用的可用性和交互性。
发明内容
本发明提供了一种用于使用基于浏览器的消息传送来动态地对网页进行更新的系统、用计算机实现的方法以及计算机程序产品。一种用于使用基于浏览器的消息传送来动态地对网页进行更新的系统包括:网页,其包括多个Web消息传送标记,以及能够绑定到该Web消息传送标记的选定的数据模型;以及至少一个消息传送客户端,其用于从消息服务器接受至少一个消息,并且用于将所接受的至少一个消息处理到该选定的数据模型中。
附图说明
所附权利要求中阐明了确信是本发明所特有的新颖的特征。然而,通过参考可在结合附图的情况下阅读的以下对说明性实施例的详细描述,可以最好地理解本发明本身以及其优选的使用模式、另外的目的和优点。
图1绘出了其中可以实现本发明的各方面的数据处理系统网络的图形表示;
图2绘出了其中可以实现本发明的各方面的数据处理系统的框图;
图3是示意性地说明根据本发明的示例性实施例的Web消息传送体系结构的框图;
图4是示意性地说明在图3中说明的根据本发明的示例性实施例的Web消息传送体系结构的JavaScriptTM Web消息传送实现的框图;
图5是示意性地说明在图3中说明的根据本发明的示例性实施例的Web消息传送体系结构的JavaTM Applet Web消息传送实现的框图;
图6是示意性地说明根据本发明的示例性实施例的Web消息传送控件的各组件和各层之间的交互的示图;并且
图7是说明根据本发明的示例性实施例的用于动态地对网页进行更新的方法的流程图。
具体实施方式
图1-图2是作为其中可以实现本发明的实施例的数据处理环境的示例性示图而提供的。应当意识到,图1-图2只是示例性的并且并非旨在断定或暗示对于其中可以实现本发明的各方面或实施例的环境的任何限制。在不偏离本发明的本质和范围的情况下,可以对所示的环境进行多种修改。
现在参考附图,图1绘出了其中可以实现本发明的各方面的数据处理系统网络的图形表示。网络数据处理系统100是其中可以实现本发明的实施例的计算机网络。网络数据处理系统100包含网络102,该网络102是用于在网络数据处理系统100内连接在一起的各设备和计算机之间提供通信链路的媒介。网络102可以包括诸如有线通信链路、无线通信链路或光纤电缆之类的连接。
在所示的示例中,服务器104和服务器106连同存储单元108一起连接到网络102。此外,客户端110、112和114连接到网络102。这些客户端110、112和114可以是例如个人计算机或网络计算机。在所示的示例中,服务器104向客户端110、112和114提供数据,诸如引导文件、操作系统映像和应用。在本例中,客户端110、112和114是服务器104的客户端。网络数据处理系统100可以包括未示出的另外的服务器、客户端和其它设备。具体而言,客户端可以连接到任意数目的提供等同内容的服务器网络。
在所示的示例中,网络数据处理系统100是具有网络102的因特网,其代表使用传输控制协议/网际协议(TCP/IP)协议组来彼此通信的全球范围内的网络和网关的集合。在因特网的中心是主节点或主控计算机之间的高速数据通信链路的骨干网,其包括数以千计的对数据和消息进行路由的商业计算机系统、政府计算机系统、教育计算机系统和其它计算机系统。当然,网络数据处理系统100还可以实现为多个不同类型的网络,诸如内网、局域网(LAN)或广域网(WAN)。图1旨在作为示例,而非旨在作为对本发明的不同实施例的体系结构上的限制。
现在参考图2,示出了其中可以实现本发明的各方面的数据处理系统的框图。数据处理系统200是诸如图1中的服务器104或客户端110之类的计算机的一个示例,用于实现本发明的实施例的处理的计算机可用代码或指令可以位于其中。
在所示的示例中,数据处理系统200采用集线器体系结构,该集线器体系结构包括北桥和存储器控制器集线器(MCH)202以及南桥和输入/输出(I/O)控制器集线器(ICH)204。处理单元206、主存储器208和图形处理器210连接到北桥和存储器控制器集线器202。图形处理器210可以通过加速图形端口(AGP)连接到北桥和存储器控制器集线器202。
在所示的示例中,局域网(LAN)适配器212连接到南桥和I/O控制器集线器204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM(压缩光盘-只读存储器)驱动器230、通用串行总线(USB)端口和其他通信端口232以及PCI/PCIe(外围组件接口/高速外围组件接口)设备234通过总线238和总线240连接到南桥和I/O控制器集线器204。PCI/PCIe设备可以包括例如以太网适配器、插入卡(add-incard)和用于笔记本计算机的PC卡等。PCI使用卡总线控制器,而PCIe则不使用卡总线控制器。ROM 224可以是例如闪速二进制输入/输出系统(BIOS)。
硬盘驱动器226和CD-ROM驱动器230通过总线240连接到南桥和I/O控制器集线器204。硬盘驱动器226和CD-ROM驱动器230可以使用例如集成驱动电子元件(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备236可以连接到南桥和I/O控制器集线器204。
操作系统运行于处理单元206上并协调和提供对图2中的数据处理系统200内的各种组件的控制。作为客户端,操作系统可以是诸如MicrosoftWindows XP(“Microsoft”和“Windows”是微软公司在美国、其他国家或同时在美国和其他国家的商标)之类的市面上有售的操作系统。诸如JavaTM编程系统之类的面向对象的编程系统可以结合操作系统而运行,并根据在数据处理系统200上执行的JavaTM程序或应用来提供对操作系统的调用(“JavaTM”是Sun微系统公司在美国、其他国家或同时在美国和其他国家的商标)。
作为服务器,数据处理系统200可以是例如IBMeServer pSeries计算机系统、运行高级交互执行(AIX)操作系统或LINUX操作系统(“eServer”、“pSeries”和“AIX”是国际商业机器公司在美国、其他国家或同时在美国和其他国家的商标,而“LINUX”是Linus Torvalds公司在美国、其他国家或同时在美国和其他国家的商标)。数据处理系统200可以是在处理单元206中包括多个处理器的对称多处理器(SMP)系统。作为备选,可以采用单处理器系统。
用于操作系统、面向对象的编程系统以及应用或程序的指令位于诸如硬盘驱动器226之类的存储设备中,并且可以加载到主存储器208中,以便由处理单元206执行。用于本发明的实施例的处理由处理单元206使用计算机可用程序代码来执行,该计算机可用程序代码可以位于诸如主存储器208、只读存储器224之类的存储器中,或者位于一个或多个外围设备226和230中。
本领域的普通技术人员应当意识到,图1-图2中的硬件可以根据实现方式而改变。诸如闪存、等同的非易失性存储器或光盘驱动器等其他的内部硬件或外围设备可以用于补充或替代图1-图2中所示出的硬件。同样,本发明的处理可以应用于多处理器数据处理系统。
在某些说明性示例中,数据处理系统200可以是个人数字助理(PDA),其配备有用以提供非易失性存储器的闪存,以便存储操作系统文件和/或用户产生的数据。
总线系统可以包括一个或多个总线,诸如图2中所示的总线238或总线240。当然,总线系统可以采用任意类型的通信架构或体系结构来实现,该架构或体系结构用于在连接到该架构或体系结构的不同组件或设备之间传送数据。通信单元可以包括用于发送和接收数据的一个或多个设备,诸如图2的调制解调器222或网络适配器212。存储器可以是例如主存储器208、只读存储器224或高速缓存,该高速缓存诸如在图2中的北桥和存储控制器集线器202中见到的高速缓存。在图1-图2中所示出的示例和上述示例并非旨在暗示体系结构上的限制。例如,除采取PDA的形式之外,数据处理系统200还可以是写字板计算机(tabletcomputer)、笔记本计算机或电话设备。
本发明针对一种用于使用基于浏览器的消息传送来动态地对网页进行更新的系统、用计算机实现的方法以及计算机程序产品,以便改善Web应用的可用性和交互性。根据本发明的示例性实施例,利用支持请求式客户端浏览器框架(OBF)的网页来动态地对网页内容进行更新。更特别地,使用称为“Web消息传送”的新技术来对支持请求式客户端(ODC)的网页数据模型进行更新,其通过采用发布/定制消息代理(broker)来向客户端推送更新而减少了到Web服务器的往返行程。
对页面中频繁变化的数据的实时更新经由推送模式来进行比对整个页面进行刷新更加有效,并且实现了对本地用户变化的保存且比经由Web Service来更新更加用户友好。Web消息传送是发布/定制消息传送系统的扩展并且采用了与Web Service不同的范例。发布/定制消息传送模型是基于推送的模式,其中消息是例如作为网页自动地广播给用户的,而不要求用户必须发出对新消息的请求。
根据本发明的示例性实施例,包括若干JSF(JavaTM服务器页面)标记的Web消息传送控件使得端用户能够从Web浏览器访问发布/定制消息传送系统,并且使得可以动态地对网页上的数据进行更新。JSF是用于JavaTM Web应用的用户接口(UI)框架,并且是一种新J2EE标准。JSF设计为显著地减轻编写和维护JavaTM Web应用的负担,并且包括一组控件,包括公共Web控件(命令按扭、Input Text(输入文本)、单选按钮等)和扩展控件(数据表格、TabbedPanel(选项卡面板)、RichText(富文本)、FileUpload(文件上传))以及有关的基础构架。可以使用JSF工具将这些用于Web消息传送的JSF标记部署在网页上,并且这些标记使得Web开发者可以配置控件(指定消息传送服务器端口号、消息主题和属性等),其中JSF标记包括用于生成必需的JavaScriptTM代码和HTML代码的一组JavaTM程序,以及包括在网页上的JavaScriptTM库。
根据本发明的另一示例性实施例,提供了一种存储于计算机可用介质上的计算机程序产品,其将通过从消息传送系统推送实时信息来对网页上的OBF模型进行更新。然后,将使用JSF UI控件(诸如DataGrid和InputText等)来呈递消息传送数据。这完全将填充数据模型与在JSP(JavaServerTM页面)上呈递数据隔离开。
根据本发明的另一示例性实施例,消息传送服务器上发布的消息被传送给网页、进行处理并在该页面上对模型进行更新,这最终将使得UI窗口小部件由于捆绑而刷新其自身,并且将使得端用户可以看到Web应用中的数据变化。如下文中将更全面地描述的那样,根据本发明的示例性实施例,支持两种风格的Web消息传送实现,包括JavaTMApplet Web消息传送客户端和JavaScriptTM Web消息传送客户端。
根据本发明的又一示例性实施例,提供了一种用于部署使得可以在网页上动态地对数据进行更新的应用的方法。该方法包括提供一种可操作为对网页上的数据模型进行更新的计算机基础构架,其能够生成必要的HTML代码和JavaScriptTM代码,并且其包括JavaScriptTM库或JavaTMApplet,其中JavaScriptTM代码或JavaTM Applet代码可以将消息传送服务器上发布的消息传送给网页,处理该消息,并更新该页面上的模型,这最终将使得UI窗口小部件由于捆绑而刷新其自身。
如以上简要讨论的那样,OBF能够在进行初始页面加载时对网页上其数据模型内的一定量的数据进行高速缓存,并且可以极大地改善网页的可用性(交互性和响应度)。然而,支持OBF的网页缺乏固有的工具用于在数据对象处于用户屏幕上时使这些数据对象保持最新。在前述示例性的股票投资Web应用中,股票价格随时间而变化,并且必须对网页进行更新以跟上这种变化。
图3是示意性地说明根据本发明的示例性实施例的Web消息传送体系结构的框图。特别地,图3是说明Web服务器、消息传送服务器和浏览器在运行时的交互的高级示图。
Web消息传送体系结构一般地由参考标号300表示。浏览器客户端302之一处的端用户已经请求了显示其股票投资信息的支持OBF的网页304。作为结果,从Web服务器306下载JavaTM Server页面(JSP),其具有示出当前股票价格下的投资构成的DataGrid,以及以图形显示同一信息的饼状图。同时,生成并下载Web消息传送控件308所包括的必需的JavaScriptTM代码以及支持OBF的网页304的其余部分。支持OBF的网页304上的Web消息传送控件308基于由Web应用开发者在页面上设定的配置(端口号和主题等)来建立与消息传送服务器310的连接。
发布器312通过消息传送服务器310连续地发布股票价格。消息传送服务器310基于消息的主题定制将消息广播给其消息客户端,在此情况下,该消息客户端是Web浏览器客户端302。支持OBF的网页304上的Web消息传送控件308处理这些消息并对页面上的OBF模型进行更新。最终,端用户将能够看到自动地更新的股票价格。
根据本发明的示例性实施例,提供了两种风格的Web消息传送实现,即JavaScriptTM Web消息传送客户端和JavaTM Applet Web消息传送客户端;并且Web开发者可以基于这两种客户端的环境和要求在它们之间进行选择。然而,Web开发者将只需要通过设定关于一个标记的稍有不同的参数来对同一组JSP标记或HTML标记进行处理。端用户不容易看出两种配置之间的差异。
图4是示意性地说明在图3中说明的根据本发明的示例性实施例的Web消息传送体系结构的JavaScriptTM Web消息传送实现的框图。该实现一般地由参考标号400表示,并且使用相应的参考标号来标识图3中说明的体系结构中的相应组件。实现400包括浏览器客户端402上的JavaScriptTM库420,浏览器客户端402使用HTTP(超文本传输协议)隧道经由Web消息传送网关422来维持与消息传送服务器410的通信,并在HTMLi帧内发出HTTP请求和响应。
图5是示意性地说明在图3中说明的根据本发明的示例性实施例的Web消息传送体系结构的JavaTM Applet Web消息传送实现的框图。该实现一般地由参考标号500表示,并且同样使用相应的参考标号来标识图3中说明的体系结构中的相应组件。如图5所示,在浏览器客户端502上存在Applet、JavaTM消息传送客户端API和JavaScriptTM库530,其维持与消息传送服务器510的通信。
图6是示意性地说明根据本发明的示例性实施例的Web消息传送控件的各组件和各层如何彼此交互的示图。最上面是JSF工具600,其使得开发者能够将WebMessaging(Web消息传送)标记拖放到JSP,将控件捆绑到模型,建立消息主题,将模型对象属性映射到消息性质,以及执行其它配置活动。在该层中,开发者将对将使用哪一种消息传送客户端类型(JavaScriptTM或JavaTM Applet)进行判断。可将标志(消息传送类型)传递给下面的层。基于消息传送客户端的判断,可将必需的资源(JavaScriptTM、Jar、zip等)复制到项目中的适当目录。
紧接在JSF工具600下面的是WebMessaging JSF标记运行时实现602,其是非常薄的一层,并且向其下的层,即Messaging JavaTM发射器604,指派了大部分呈递工作。WebMessaging JavaTM发射器604输出用于WebMessaging控件的所有必需的JavaScriptTM代码。
OBF WebMessaging控件JavaScriptTM层606处理与OBF模型以及下面的层的接口连接。在网页启动时,用OBF模型中的数据配置消息主题,接着用消息主题来进行消息定制。将WebMessaging控件与OBF模型捆绑。当创建或删除其父对象被绑定到消息主题模板的任意对象时,激发添加或去除消息定制的事件。如果用于通过替换主题模板内的令牌来构成消息主题的模型对象的任意属性被更新,那么如果不再存在针对该主题的定制,则同样激发去除该旧主题的事件,并且如果该主题还没有被定制,则激发添加新的消息主题的事件。当消息到达时,基于该映射来对正确的模型对象进行更新。
WebMessagingConnectionWeb消息传送连接)公共JavaScriptTM接口层608设计为提供用于Web消息传送的通用JavaScriptTM接口,而不考虑用户决定使用链接到不同消息传送服务器的JavaScriptTM消息传送客户端类型还是Applet消息传送客户端类型。基于从上面的层传递下来的标志(消息传送类型),该层将设定必需的资源。如果使用了Applet消息传送客户端类型,则在此将对该Applet进行实例化。如图6所示,该层还可以直接为用于HTML注解JavaScriptTM 620的公共接口提供服务,以便进行消息传送。
在最下面,基于标志(消息传送类型),使用WebSphere商务集成(WBI)事件代理614的WebMessaging JavaTM Applet层610或使用Whitewater消息传送引擎616的WebMessaging JavaScriptTM层612用于与后端消息传送系统连接。以下将更全面地讨论这两种选项。
WebMessaging JavaTM Applet 610支持与后端WBI事件代理614通信的一组发布/定制消息传送操作。WebMessaging JavaTM Applet 610既实现了利用来自WBI事件代理614的消息来对网页进行实时更新,又实现了将消息发布给该代理。
WebMessaging JavaTM Applet 610使用标准JMS API的专门子组来使得可用的JMS功能性最大化,同时将Applet和支持类下载大小限制为大约100KB。消息传送支持类包含在文件“minimal.zip”中,该文件随着Applet而分发,并且使得该文件在应用项目中可用。尽管JMS支持多种类型的消息,但Web消息传送只使用标准字符串JMS消息性质来进行定制。该技术有利于将消息内的字段映射为浏览器模型数据或网页元素。
WebMessaging JavaTM Applet 610只提供上述JavaScriptTM层可以调用的一组API,并且期望有回调处理器(callback handler)。回调处理器将是JavaScriptTM对象,其代表上述公共WebMessaging JavaScriptTM接口对象608。当消息到达时,Applet调用该处理器以便可以对OBF模型进行更新。
整个JavaScriptTM客户端组件基本上包括两个子组件,即WebMessaging JavaScriptTM层612中的客户端JavaScriptTM库和嵌入在消息传送引擎616中的协议处理器。JavaScriptTM客户端提供与服务器侧的协议处理器进行交互所需的客户端侧的功能性,并从而向Web应用提供基于主题的消息传送服务。以“.js”文件形式提供客户端库,该文件可由HTML文档引用并由Web浏览器处理。该库包括核心消息传送功能性(诸如连接、发送、addConsumers(添加消费者)和断开连接),并且能够注册回调功能以便可以在JavaScriptTM环境中实现由消息事件驱动的编程。
JavaScriptTM消息传送客户端提供以下益处:
·适合于在Web域中使用的“小”脚印消息传送客户端(大约30k)
·利用诸如HTML和JavaScriptTM之类的普遍存在的客户端技术以使得除标准的浏览器环境之外对客户端机器的要求最小化。
根据本发明的示例性实施例,库还包括在基本消息传送API的上面的可选层620以在客户端浏览器中提供HTML注解Web消息传送的能力。HTML注解Web消息传送使得页面开发者可以利用主题名称在页面中直接对HTML元素进行注解,以便可以利用用户的浏览器客户端中的由消息驱动的数据来填充那些元素的内容。
图7是说明根据本发明的示例性实施例的用于动态地对网页进行更新的方法的流程图。该方法一般地由参考标号700来表示,并且开始于提供网页,该网页包括Web消息传送标记,即JavaScriptTM和可能的JavaTM库,以及能够绑定到该Web消息传送标记的选定的数据模型(步骤702)。还选择消息传送客户端类型(步骤704)。建立到消息传送服务器的连接(步骤706),并且定制到来自消息传送服务器的主题(步骤708)。然后,从消息传送服务器接受发布的与所定制的主题有关的消息(步骤710),处理所接受的消息(步骤712),并将这些消息更新到数据模型中以对网页进行更新(步骤714)。
应当意识到,虽然在此已经参考在请求式客户端浏览器框架(OBF)环境下使用Web消息传送来更新的网页而对本发明的示例性实施例进行了描述,但在不偏离本发明范围的情况下,还可以将在此描述的技术应用于需要进行数据更新的其它基于客户端的处理中。
应当意识到,可以将Web浏览器、支持OBF的网页和Web消息传送控件存储于计算机系统的存储器中,从而将支持OBF的网页的功能组件提供为计算机程序产品。还可以将本发明提供为一种基于定制或付费的方法。例如,为客户提供在此所述的功能的服务提供者可以创建、维护、支持和/或部署OBF网页和Web消息传送。也就是说,服务提供商可以利用如上所述的Web消息传送来提供支持OBF的网页。
因此,本发明提供了一种用于使用基于浏览器的消息传送来动态地对网页进行更新的系统、用计算机实现的方法以及计算机程序产品。根据本发明的示例性实施例的用于动态地对网页进行更新的系统包括:网页,其包括多个Web消息传送标记,以及能够绑定到该Web消息传送标记的选定的数据模型;以及至少一个消息传送客户端,其用于从消息服务器接受至少一个消息,并且用于将所接受的至少一个消息处理到该选定的数据模型中。
本发明可以采取完全硬件实现、完全软件实现或者同时包含硬件单元和软件单元的实现的形式。在优选的实施例中,本发明是以软件实现的,该软件包括但不限于固件、驻留软件、微代码等。
此外,本发明可以采取可从计算机可用介质或计算机可读介质访问的计算机程序产品的形式,该介质提供程序代码以供计算机或任意指令执行系统使用或者结合计算机或任意指令执行系统而使用。出于本描述的目的,计算机可用介质或计算机可读介质可以是任意切实可行的装置,其可以包含、存储、传送、传播或传输程序以供计算机或任意指令执行系统、装置或设备使用或者结合计算机或任意指令执行系统、装置或设备而使用。
该介质可以是电子的、磁的、光的、电磁的、红外的或半导体的系统(或装置、设备)或者传播介质。计算机可读介质的例子包括半导体或固态存储器(solid status memory)、磁带、可装卸的计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬盘以及光盘。目前的光盘例子包括压缩光盘-只读存储器(CD-ROM)、压缩光盘-读/写(CD-R/W)和DVD(数字视频光盘)。
适合于存储和/或执行程序代码的数据处理系统可以包括直接地或通过系统总线间接地连接到存储单元的至少一个处理器。这些存储单元可以包括在实际执行程序代码期间所使用的本地存储器,大容量存储器(bulk storage),以及高速缓存存储器,该高速缓存存储器对至少某些程序代码提供临时存储,以便减少在执行期间必须从大容量存储器中获取代码的次数。
输入/输出装置或I/O装置(包括但不限于键盘、显示器、指示设备等)可以直接地或通过中间I/O控制器连接到系统。
网络适配器同样可以连接到系统,以使得数据处理系统能够通过中间的专用网络或公共网络而连接到其他数据处理系统或远端的打印机或存储设备。调制解调器、电缆调制解调器(cable modem)和以太网卡只是当前可用的几类网络适配器。
本发明的描述的目的是进行说明和描述,而不是旨在穷举或使本发明限于所公开的形式。本领域的普通技术人员可以容易地想到各种修改和变更。实施例的选择和描述是为了最好地说明本发明的原理、实际应用,并使本领域的普通技术人员能够针对具有适合于所考虑的特定应用的各种修改的各种实施例来理解本发明。

Claims (16)

1.一种用于使用基于浏览器的消息传送来动态地对网页进行更新的系统,包括:
网页,其包括多个Web消息传送标记,以及能够绑定到所述Web消息传送标记的选定的数据模型;以及
至少一个消息传送客户端,其用于从消息服务器接受至少一个消息并且用于将所接受的至少一个消息处理到所述数据模型中。
2.根据权利要求1所述的系统,其中所述多个Web消息传送标记包括采取JavaTM服务器页面和超文本标记语言中的至少一种的形式的多个Web消息传送标记。
3.根据权利要求1所述的系统,其中所述多个Web消息传送标记包括用于配置所述消息传送服务器的端口号、用于选择消息传送客户端类型、用于将消息传送主题和性质捆绑到所述网页上的所述数据模型并用于生成JavaScriptTM代码的Web消息传送标记。
4.根据权利要求1所述的系统,其中所述选定的数据模型包括请求式客户端浏览器框架数据模型。
5.根据权利要求1所述的系统,其中所述至少一个消息传送客户端包括用于从所述消息传送服务器接受所述至少一个消息、用于处理所接受的至少一个消息并用于将所接受的至少一个消息更新到所述选定的数据模型中的JavaScriptTM消息传送客户端类型和JavaTM Applet消息传送客户端类型之一。
6.根据权利要求5所述的系统,其中所述消息传送客户端包括JavaTM Applet类型,并且其中所述系统还包括用于从所述消息传送服务器接受所述至少一个消息、用于处理所接受的至少一个消息并用于将所接受的至少一个消息更新到所述选定的数据模型中的JavaScriptTM库和JavaTM库。
7.根据权利要求5所述的系统,还包括用于处理与所述至少一个消息传送客户端的通信的服务器侧的库。
8.根据权利要求2所述的系统,其中多个Web消息传送属性包括采取超文本标记语言形式的用于动态地将数据直接更新到所述网页上的文档对象模型中的多个Web消息传送属性。
9.一种用于使用基于浏览器的消息传送来动态地对网页进行更新的用计算机实现的方法,包括:
提供网页,所述网页包括多个Web消息传送标记,以及能够绑定到所述Web消息传送标记的选定的数据模型;
建立到消息传送服务器的连接;
定制到来自所述消息传送服务器的至少一个主题;
从所述消息传送服务器接收与所述至少一个定制主题有关的至少一个消息;以及
将所接收的至少一个消息更新到所述数据模型中以对所述至少一个网页进行更新。
10.根据权利要求9所述的用计算机实现的方法,其中提供包括多个Web消息传送标记以及能够绑定到所述Web消息传送标记的选定的数据模型的网页包括:
提供采取JavaTM服务器页面和超文本标记语言中的至少一种的形式的多个Web消息传送标记。
11.根据权利要求9所述的用计算机实现的方法,其中提供包括多个Web消息传送标记以及能够绑定到所述Web消息传送标记的选定的数据模型的网页包括:
提供用于配置所述消息传送服务器的端口号、用于选择消息传送客户端类型、用于将消息传送主题和性质捆绑到所述网页上的所述数据模型并用于生成JavaScriptTM代码的多个Web消息传送标记。
12.根据权利要求9所述的用计算机实现的方法,其中所述选定的数据模型包括请求式客户端浏览器框架数据模型。
13.根据权利要求9所述的用计算机实现的方法,还包括:
选择用于从所述消息传送服务器接受所述至少一个消息、用于处理所接受的至少一个消息并用于将所接受的至少一个消息更新到所述选定的数据模型中的属于JavaScriptTM消息传送客户端类型和JavaTMApplet消息传送客户端类型之一的消息传送客户端。
14.根据权利要求13所述的用计算机实现的方法,其中选择属于JavaScriptTM消息传送客户端类型和JavaTMApplet消息传送客户端类型之一的消息传送客户端包括选择属于JavaTMApplet消息传送客户端类型的消息传送客户端,并且其中所述方法还包括:
提供用于从所述消息传送服务器接受所述至少一个消息、用于处理所接受的至少一个消息并用于将所接受的至少一个消息更新到所述选定的数据模型中的JavaScriptTM库和JavaTM库。
15.根据权利要求9所述的用计算机实现的方法,还包括:
提供用于处理与所述至少一个消息传送客户端的通信的服务器侧的库。
16.一种用于动态地对网页进行更新的用计算机实现的方法,包括:
提供计算机基础构架,该计算机基础构架可操作为:
为网页提供服务,所述网页包括多个Web消息传送标记,以及能够绑定到所述多个Web消息传送标记的请求式客户端浏览器框架模型;以及
发布用于向至少一个已经定制到至少一个消息主题的Web消息传送客户端广播的至少一个消息。
CNA2006101425061A 2005-10-28 2006-10-27 使用面向消息传送的中间件动态地更新网页的系统和方法 Pending CN1956404A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/261,016 US20070100844A1 (en) 2005-10-28 2005-10-28 System and method for dynamically updating web pages using messaging-oriented middleware
US11/261,016 2005-10-28

Publications (1)

Publication Number Publication Date
CN1956404A true CN1956404A (zh) 2007-05-02

Family

ID=37997799

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006101425061A Pending CN1956404A (zh) 2005-10-28 2006-10-27 使用面向消息传送的中间件动态地更新网页的系统和方法

Country Status (2)

Country Link
US (2) US20070100844A1 (zh)
CN (1) CN1956404A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534196A (zh) * 2008-03-12 2009-09-16 因特伟特公司 用于安全调用rest api的方法和装置
WO2010031278A1 (zh) * 2008-09-18 2010-03-25 中兴通讯股份有限公司 Web页面的数据处理装置及处理方法
CN101252480B (zh) * 2008-04-02 2010-09-15 北京邮电大学 一种建立多媒体网页浏览业务模型的实现方法
CN101159739B (zh) * 2007-09-19 2011-07-06 腾讯科技(深圳)有限公司 一种字幕显示方法及通讯系统以及相关设备
WO2013111028A1 (en) * 2012-01-26 2013-08-01 International Business Machines Corporation Web application content mapping
CN102214200B (zh) * 2010-04-09 2015-11-25 微软技术许可有限责任公司 网页的可扩展动态执行操纵方法
CN107566436A (zh) * 2016-07-01 2018-01-09 北京京东尚科信息技术有限公司 页面消息中心组件及消息实时推送方法和装置
WO2020015186A1 (zh) * 2018-07-19 2020-01-23 平安科技(深圳)有限公司 实时更新页面数据的方法、装置、电子设备

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070100844A1 (en) 2005-10-28 2007-05-03 International Business Machines Corporation System and method for dynamically updating web pages using messaging-oriented middleware
US7788341B1 (en) * 2005-12-01 2010-08-31 Oracle America, Inc. Displaying results of server-side form validations without page refresh
US20090083410A1 (en) * 2007-09-20 2009-03-26 Matsushita Electric Industrial Co., Ltd. Information notification system, update information notification method, and terminal unit
US8335982B1 (en) * 2007-12-05 2012-12-18 Appcelerator, Inc. System and method for binding a document object model through JavaScript callbacks
US7954115B2 (en) * 2007-12-11 2011-05-31 International Business Machines Corporation Mashup delivery community portal market manager
US9208241B2 (en) * 2008-03-07 2015-12-08 Oracle International Corporation User interface task flow component
CN101615116B (zh) * 2008-06-23 2012-12-12 成都市华为赛门铁克科技有限公司 一种接口获取方法、装置及系统
US8095574B2 (en) * 2008-07-31 2012-01-10 International Business Machines Corporation Dynamically mapping and maintaining a customized method set of tags particular to an extention point
CN102005130B (zh) * 2009-09-03 2014-01-22 上海宝信软件股份有限公司 基于WebGIS的智能交通设备实时状态显示系统
EP2489151A4 (en) * 2009-10-16 2013-11-06 Real Innovations Internat Llc SYSTEM AND METHOD FOR PROVIDING DATA IN REAL TIME
US10462206B2 (en) 2009-10-16 2019-10-29 Real Innovations International Llc Bidirectional networked real-time data exchange using a spreadsheet application
US10498796B2 (en) 2009-10-16 2019-12-03 Real Innovations International Llc System and method for providing real-time data
WO2011146648A1 (en) 2010-05-18 2011-11-24 Innovative Dealer Technologies, Inc. System and method for integrating a plurality of isolated components into an online auction for automatic real-time auction participant support
US20120096073A1 (en) * 2010-10-18 2012-04-19 Blabbelon, Inc. Local polling method and system for real time updating of web-based services
US8732278B2 (en) 2011-12-21 2014-05-20 Cbs Interactive, Inc. Fantasy open platform environment
US20140337296A1 (en) * 2013-05-10 2014-11-13 Bryan Knight Techniques to recover files in a storage network
US9513885B2 (en) 2013-08-22 2016-12-06 Peter Warren Web application development platform with relationship modeling
US20150067138A1 (en) 2013-08-27 2015-03-05 International Business Machines Corporation Optimize data exchange for mvc-based web applications
CN104113594A (zh) * 2014-07-04 2014-10-22 北京思特奇信息技术股份有限公司 一种基于js上传组件的文件上传方法及系统
US10460005B2 (en) * 2014-11-18 2019-10-29 Sap Se Data consumption between heterogeneous web applications
WO2016183551A1 (en) 2015-05-14 2016-11-17 Walleye Software, LLC Query task processing based on memory allocation and performance criteria
CA3062745C (en) 2016-11-20 2023-09-05 Real Innovations International Llc Bidirectional networked real-time data exchange using a spreadsheet application
CN108614834B (zh) * 2016-12-13 2022-05-24 阿里巴巴集团控股有限公司 一种页面生成方法及装置
US10326720B2 (en) * 2017-05-05 2019-06-18 Dell Products L.P. Messaging queue service API optimization system
US10198469B1 (en) 2017-08-24 2019-02-05 Deephaven Data Labs Llc Computer data system data source refreshing using an update propagation graph having a merged join listener
US10740120B2 (en) * 2018-04-20 2020-08-11 Dell Products L.P. Dynamic user interface update generation
CN109446443B (zh) * 2018-10-18 2021-11-09 武汉斗鱼网络科技有限公司 一种标签更新方法、装置、设备和存储介质
US11863580B2 (en) 2019-05-31 2024-01-02 Varmour Networks, Inc. Modeling application dependencies to identify operational risk
US11711374B2 (en) 2019-05-31 2023-07-25 Varmour Networks, Inc. Systems and methods for understanding identity and organizational access to applications within an enterprise environment
CN110659299B (zh) * 2019-08-30 2020-11-10 珠海格力电器股份有限公司 数据更新的方法及装置、前端开发客户端
US11609932B2 (en) 2020-03-27 2023-03-21 Adp, Inc. Web services having live data updates
US11876817B2 (en) 2020-12-23 2024-01-16 Varmour Networks, Inc. Modeling queue-based message-oriented middleware relationships in a security system
US11818152B2 (en) * 2020-12-23 2023-11-14 Varmour Networks, Inc. Modeling topic-based message-oriented middleware within a security system
US11770437B1 (en) * 2021-08-30 2023-09-26 Amazon Technologies, Inc. Techniques for integrating server-side and client-side rendered content

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6239797B1 (en) * 1998-04-02 2001-05-29 Partnerware Technologies Method and apparatus for remote database record scroll/update without refresh
US7152203B2 (en) * 2000-09-11 2006-12-19 Appeon Corporation Independent update and assembly of web page elements
US6823359B1 (en) * 2000-11-21 2004-11-23 Pfs Trader Tools, Llc System and method for continually updating dynamic data
US7043525B2 (en) * 2000-12-18 2006-05-09 Bang Networks, Inc. Techniques for updating live objects at clients using a dynamic routing network
US20020165907A1 (en) * 2001-04-13 2002-11-07 Matthew Dornquast System and method for real time interactive network communications
WO2003065242A1 (en) * 2002-01-25 2003-08-07 Tibco Software, Inc. Single applet to communicate with multiple html elements contained inside of multiple categories on a page
US20040139475A1 (en) * 2002-07-22 2004-07-15 Ian Zenoni Broadcast enhancement database replication
US20040267781A1 (en) * 2003-05-23 2004-12-30 Flytecomm, Inc. Web-based system and method for multi-layered display of dynamic and static objects
GB0326915D0 (en) * 2003-11-19 2003-12-24 Ibm A method and system for updating/reloading the content of pages browsed over a network
US20050119913A1 (en) * 2003-12-01 2005-06-02 International Business Machines Corporation Subscription-based dynamic content update
US20070100844A1 (en) 2005-10-28 2007-05-03 International Business Machines Corporation System and method for dynamically updating web pages using messaging-oriented middleware

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159739B (zh) * 2007-09-19 2011-07-06 腾讯科技(深圳)有限公司 一种字幕显示方法及通讯系统以及相关设备
CN101534196A (zh) * 2008-03-12 2009-09-16 因特伟特公司 用于安全调用rest api的方法和装置
CN101252480B (zh) * 2008-04-02 2010-09-15 北京邮电大学 一种建立多媒体网页浏览业务模型的实现方法
WO2010031278A1 (zh) * 2008-09-18 2010-03-25 中兴通讯股份有限公司 Web页面的数据处理装置及处理方法
CN102214200B (zh) * 2010-04-09 2015-11-25 微软技术许可有限责任公司 网页的可扩展动态执行操纵方法
WO2013111028A1 (en) * 2012-01-26 2013-08-01 International Business Machines Corporation Web application content mapping
CN104081393A (zh) * 2012-01-26 2014-10-01 国际商业机器公司 网络应用内容映射
GB2513778A (en) * 2012-01-26 2014-11-05 Ibm Web application content mapping
CN104081393B (zh) * 2012-01-26 2017-06-06 国际商业机器公司 网络应用内容映射
CN107566436A (zh) * 2016-07-01 2018-01-09 北京京东尚科信息技术有限公司 页面消息中心组件及消息实时推送方法和装置
WO2020015186A1 (zh) * 2018-07-19 2020-01-23 平安科技(深圳)有限公司 实时更新页面数据的方法、装置、电子设备

Also Published As

Publication number Publication date
US9218435B2 (en) 2015-12-22
US20070100844A1 (en) 2007-05-03
US20080263179A1 (en) 2008-10-23

Similar Documents

Publication Publication Date Title
CN1956404A (zh) 使用面向消息传送的中间件动态地更新网页的系统和方法
AU2008206688B2 (en) Method and system for creating IT-oriented server-based web applications
Ihlenfeldt et al. The PubChem chemical structure sketcher
US7461134B2 (en) Bi-directional communication between a web client and a web server
EP2201455B1 (en) Method and system for changing execution environments during application execution
US7865544B2 (en) Method and system for providing XML-based asynchronous and interactive feeds for web applications
US20060195779A1 (en) Methods, systems and computer program products for maintaining a separation between markup and data at the client
CN1672151A (zh) 分布式高速缓存中维护数据的方法、系统和程序
KR101661784B1 (ko) 웹 브라우저를 통한 애플리케이션으로의 컨텐츠 입력 메소드
US20130066947A1 (en) System and Method for Managing Applications for Multiple Computing Endpoints and Multiple Endpoint Types
CN1809068A (zh) Web应用程序架构
US20140052840A1 (en) Versatile application configuration for deployable computing environments
US20070226613A1 (en) Methods and apparatuses for user interface management
CN111143729B (zh) 基于单页面应用的优化方法、装置、设备及存储介质
US20120324338A1 (en) System and Methods for Integration of an Application Runtime Environment Into a User Computing Environment
JP2007524875A (ja) ネットワーク・ベースの処理のためのシステムおよび方法
EP2791787B1 (en) Autonomous network streaming
CN101960449A (zh) 用于对远程资源的web访问的基于XML的web订阅源
CN1892653A (zh) 无干扰小端口提交打印的方法与系统
US20100229081A1 (en) Method for Providing a Navigation Element in an Application
CN101146040B (zh) 分析网站流量的方法和装置
CN103597481A (zh) 嵌入式查询制定服务
CN105683957A (zh) 样式表推测性预加载
CN101106577A (zh) 用于在异构环境中管理基于服务器转译消息的方法和系统
MXPA06003109A (es) Metodo y sistema para el procesamiento de contenido dinamico con aprovisionamiento extendible.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication