CN100380318C - 在客户机-服务器通信中处理增量数据的方法和计算机系统 - Google Patents
在客户机-服务器通信中处理增量数据的方法和计算机系统 Download PDFInfo
- Publication number
- CN100380318C CN100380318C CNB03822156XA CN03822156A CN100380318C CN 100380318 C CN100380318 C CN 100380318C CN B03822156X A CNB03822156X A CN B03822156XA CN 03822156 A CN03822156 A CN 03822156A CN 100380318 C CN100380318 C CN 100380318C
- Authority
- CN
- China
- Prior art keywords
- browser
- client computer
- server
- increment
- modification
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
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)
- Computer And Data Communications (AREA)
- Digital Computer Display Output (AREA)
Abstract
在服务器(901)上的服务器控制器(101-1)接收由客户机(900)的客户机控制器(100-2)产生的修改请求,以将存储在服务器(901)上的应用组件的原始模型(200-T1)修改为修改的模型(200-T2)。服务器呈现器(101-2)产生对应于在原始模型(200-T1)和修改的模型(200-T2)之间的差的至少一个浏览器增量(300-I)。客户机组合器(100-1)从服务器(901)接收所述至少一个浏览器增量(300-I),并且使用所述至少一个浏览器增量(300-I)来在客户机(900)更新与原始模型(200-T1)对应的原始的DOM组件(300-T1),结果产生与修改的模型(200-T2)对应的修改的文件对象模型(DOM)组件(300-T2)。
Description
技术领域
本发明一般地涉及电子数据处理,具体涉及用于客户机-服务器通信的方法、计算机程序产品和系统。
背景技术
使用诸如微软的Internet Explorer之类的传统万维网浏览器用户可以访问一些软件应用。通常,这样的应用提供了多个页面。一个页面包括图形用户界面(GUI)的相关信息,通过所述GUI,用户可以与所述应用交互。所述页面可以包括多个组件。所述页面通常在服务器上被产生,然后被发送到客户机。在客户机,所述页面由浏览器向用户显现。当用户经由GUI与客户机交互以刷新页面时,重复整个处理。用于上述流程的一般可接受的程序设计模式被称为MVC(模型-视图-控制器)设计模式。封装了用于查看和操纵的应用数据的模型被所述控制器操纵,并且被呈现为视图。所述视图对应于包括与浏览器兼容的内容的页面。每个模型可以有多个视图和控制器。例如,一个视图可以用于显现作为表格的模型数据,而另一个视图可以用于显现作为饼图的同一数据。所有这些都是在服务器上进行的,并且完整的视图被随后发送到客户机。因此,MVC设计模式需要使能在客户机和服务器之间的通信的计算机网络的高带宽和多个CPU周期,因为在服务器上再生整个页面(布局信息和数据),并且通过网络从服务器向客户机重新发送结果产生的视图。而且,使得用户面对诸如等待时间和屏幕闪烁之类的不期望的效果,直到刷新的页面被最后提供在客户机上。
诸如微软的Internet Explorer IE 6.0之类的传统浏览器包括无闪烁呈现的特征。当客户机接收到修改的页面时,浏览器识别所述页面的修改部分,并且例如通过向页面的文件对象模型(DOM)中进行动态HTML插入来仅仅替换这些部分而不是整个页面。这导致为用户减少屏幕闪烁,但是仍然为页面产生而消耗了CPU时间(CPU周期),并且还需要从服务器向客户机发送所述整个页面的带宽。而且,每个用户与客户机的交互要求一个服务器往返行程,因此由于页面产生和发送而引起高服务器负荷。
越来越需要减少在客户机-服务器通信中的CPU时间消耗和带宽需要,并且同时减少用户的不期望效果。
发明内容
因此,本发明的目的是提供用于当刷新页面时降低在客户机-服务器通信中的带宽需要的方法、计算机程序产品和计算机系统。
为了实现这个目的,在本发明的一个实施例中,按照本发明的一个方面,提供了一种用于处理增量数据的计算机系统,其中:
a)在服务器上的服务器控制器接收客户的修改请求,并且响应于所述修改请求而将在服务器上存储的应用组件的原始模型修改为所述应用组件的修改模型;
b)服务器呈现器产生对应于在原始模型和修改模型之间的差别的至少一个浏览器增量;
c)客户机组合器从服务器接收至少一个浏览器增量,并且使用所述至少一个浏览器增量来在客户机更新原始DOM组件。原始DOM组件对应于原始模型,并且所述更新导致对应于修改模型的修改DOM组件,并且,所述至少一个浏览器增量可以根据需要被去活或者重新激活;
d)通过客户机控制器来产生修改请求。
本发明还提供了一种在用于处理增量数据的计算机系统内的服务器,包括:服务器控制器,用于从在计算机系统中的客户机的客户机控制器接收修改请求,以将存储在服务器上的应用组件的原始模型修改为所述应用组件的修改的模型;以及服务器呈现器,用于产生对应于在原始模型和修改的模型之间的差的至少一个浏览器增量;所述至少一个浏览器增量被使得发送到客户机的客户机组合器,用于使用所述至少一个浏览器增量来更新对应于原始模型的原始DOM组件,以产生对应于修改的模型的修改的DOM组件,其中,所述至少一个浏览器增量可以根据需要被去活或者重新激活。
本发明还提供了一种在用于处理增量数据的计算机系统中的客户机,包括:客户机控制器,用于向在计算机系统中的服务器的服务器控制器发送修改请求;以及客户机组合器,用于从服务器接收至少一个浏览器增量,并且使用所述至少一个浏览器增量来更新对应于应用组件的原始模型的原始DOM组件,以产生与所述应用组件的修改模型对应的修改的DOM组件,其中,服务器控制器将在服务器上存储的原始模型改为修改的模型;并且服务器的服务器呈现器产生与在原始模型和修改的模型间的差对应的至少一个浏览器增量,并且,所述至少一个浏览器增量可以根据需要被去活或者重新激活。
本发明还提供了一种用于在计算机系统的服务器上处理增量数据的方法,包括步骤:通过服务器控制器从属于计算机系统的客户机的客户机控制器接收修改请求,以将存储在服务器上的应用组件的原始模型修改为所述应用组件的修改的模型;通过服务器呈现器来产生对应于在原始模型和修改的模型之间的差的至少一个浏览器增量;向客户机的客户机组合器发送所述至少一个浏览器增量,用于使用所述至少一个浏览器增量来在客户机上更新对应于原始模型的原始DOM组件,以产生对应于修改的模型的修改的DOM组件,其中,所述至少一个浏览器增量可以根据需要被去活或者重新激活。
本发明还提供了一种用于处理在计算机系统上的客户机上的增量数据的方法,包括步骤:从客户机控制器向在计算机系统中的服务器的服务器控制器发送修改请求;通过客户机组合器从服务器接收至少一个浏览器增量来作为对于修改请求的响应;使用所述至少一个浏览器增量来更新对应于应用组件的原始模型的原始DOM组件,以产生与所述应用组件的修改模型对应的修改的DOM组件,其中,服务器控制器将在服务器上存储的原始模型改为修改的模型;并且服务器的服务器呈现器产生与在原始模型和修改的模型间的差对应的至少一个浏览器增量,并且,所述至少一个浏览器增量可以根据需要被去活或者重新激活。
本发明还提供了一种用于处理增量数据的计算机系统,包括:客户机控制器,用于产生修改请求;服务器控制器,用于作为修改请求的响应而修改在服务器上的应用组件的模型;服务器呈现器,用于在已经修改了模型后产生至少一个浏览器增量;以及客户机组合器,用于从服务器接收所述至少一个浏览器增量,并且使用所述至少一个浏览器增量来更新浏览器组件的一个实例,其中,所述浏览器组件对应于所述应用组件,并且,所述至少一个浏览器增量可以根据需要被去活或者重新激活。
当与现有技术的MVC模式比较时,当通过服务器来存储和处理模型、视图和控制器时,本发明使用这样的模式,其中视图和控制器被划分为服务器端部分和客户机端部分。视图的服务器端部分是服务器呈现器。视图的客户机端部分是客户机组合器。控制器的服务器端部分是服务器控制器,控制器的客户机端部分是客户机控制器。
本发明的一个效果是当取代浏览器增量而在服务器和客户机之间交换整个页面时,与现有技术系统相比较,网络通信的所需带宽较低。经常地,仅仅页面的较小部分被修改。在这种情况下,浏览器增量发送需要比整个页面发送小得多的带宽。
本发明的另一个效果是与客户机交互的用户经历了悦目的效果,因为使用浏览器增量对浏览器组件的DOM组件的更新导致图形用户界面的无闪烁改变。
本发明的另一个效果是服务器不必保存应用的状态,因为服务器从客户机接收它需要的状态信息。
通过在本申请中具体指出的元素和组合将实现和获得本发明的多个方面。而且,本发明的特征的所述组合不被理解为限定,可以在不脱离本发明的精神的情况下在其他合成体中组合所有特征。应当明白,上述一般说明和下述的详细说明仅仅是例证和说明性的,而不是对于所述的本发明的限定。
附图说明
图1图解了实现本发明的实施例的示例计算机系统的简化方框图;
图2A-2D图解了按照本发明的一个实施例的图形用户界面的实现方式;
图3图解了按照本发明的一个实施例的、客户机与工作的服务器的交互;
图4A、4B图解了在本发明的一个实施例中的浏览器增量的客户机端处理的细节;
图5图解了可以用于本发明的一个实施例中的两个互补计算机程序产品和它们的主要功能块;
图6图解了按照本发明的用于处理增量数据的服务器端方法的简化流程图;
图7A、7B图解了按照本发明的用于处理增量数据的客户机端方法的简化流程图。
具体实施方式
每当可能时,在全部附图中使用相同的附图标号来表示相同或类似的部件。
以下使用的术语的定义:
客户机:
客户机是被配置来访问例如由软件应用提供的服务的计算机装置。通常用于访问万维网应用的客户机运行万维网浏览器,诸如运行在个人计算机上的Netscape Navigator、运行在个人数字助理上的Pocket Internet Explorer或运行在蜂窝电话上的WAP浏览器。
服务器:
服务器是运行由客户机访问的应用的计算机装置。
页面:
页面包括用于定义万维网应用的图形用户界面的内容(布局和数据)(见下面的定义)。页面通常在服务器上被呈现为浏览器兼容格式,诸如HTML或WML。
组件:
一个组件是页面的基本构件。组件总是存在于页面内。组件可以包括其他的组件。在这种情况下,组件被称为“父组件”,所述其他的组件被称为“子组件”。在页面内没有父组件的页面的组件被称为根组件。按照本发明,具有服务器端部分的组件也称为“应用组件”。所述应用组件在产生组件描述符和浏览器增量期间存在。这允许具有无状态服务器,因为所述应用组件可以存在仅仅有限的时间间隔,并且从客户机接收必要的状态信息。也具有客户机端部分的组件被称为浏览器组件。所述浏览器组件保存相应组件的状态。
组件描述符:
当一个页面被呈现为浏览器兼容格式时,页面的每个应用组件被呈现为所述浏览器兼容格式。被呈现的应用组件被称为“组件描述符”。组件描述符可以被实现为名字-数值对。
万维网应用:
以下使用的万维网应用包括一组页面。万维网应用的一个特定特征是它在服务器不保存状态。换句话说,对于服务器接收的每个请求,它从零做起建立所访问的万维网应用的状态。在万维网应用已经产生输出后,通常丢弃所述状态。
文件对象模型
按照对应的W3C定义,页面的文件对象模型(DOM)提供了一种机制来访问和操纵被语法分析的HTML和XML内容。
类名:
组件的类名指定用于实现所述组件的应用组件的服务器端组件的类的名称(例如Java类、Java服务器页面类、小服务程序类、Pascal类、C类、C++类或商业服务器页面类)。所述应用组件是组件类的一个实例,所述组件类包括对应的模型、服务器控制器和服务器呈现器。
脚本类名称:
组件的脚本类名称指定了用于实现对应于应用组件的浏览器组件的客户端组件脚本类(例如,JavaScript类,Java Applets类或VisualBasic脚本类)。所述组件脚本类和组件类可以具有相同的分层。所述浏览器组件是组件脚本类的一个实例,并且可以包括当前页面的对应客户端-控制器、客户端组合器和DOM组件。DOM组件可以包括由浏览器使用来可视化对应的组件的一个或多个DOM节点。
图1是用于实现本发明的实施例的示例计算机系统的简化方框图。计算机系统999包括计算机900,并且具有多个附加的计算机901、902(或90q,q=0...Q-1,Q为任何数)。
计算机900可以通过计算机网络990与附加的计算机901、902通信。计算机900具有处理器910、存储器920、总线930,并且选用地具有输入装置940和输出装置950(输入/输出装置,用户界面960)。如图所示,本发明被计算机程序产品100(CPP)、程序载体970或程序信号980实现。
对于计算机900,计算机901/902有时被称为“远程计算机”,计算机901/902例如是服务器、对等装置或其他公共的网络节点,并且通常具有许多或所有的与计算机900相关联地描述的元件。
计算机900例如是传统的个人计算机(PC)、台式或手持装置、多处理器计算机、笔输入计算机、基于微处理器或可编程的消费电子器件、小型计算机、大型计算机、个人移动计算装置、移动电话、便携或固定个人计算机、掌上型计算机等。
处理器910例如是中央处理单元(CPU)、微控制器单元(MCU)或数字信号处理器(DSP)等。
存储器920表示暂时或永久存储数据和指令的元件。虽然存储器920被图解为计算机900的一部分,但是存储器功能也可以被实现在网络990、计算机901/902和处理器910本身(例如高速缓冲存储器、寄存器)中或其他位置。存储器920可以是只读存储器(ROM)、随机存取存储器(RAM)或具有其他访问的选项的存储器。存储器920由计算机可读媒体或被任何其他计算机可读存储媒体物理地实现,所述计算机可读媒体诸如磁存储媒体、光存储媒体、半导体存储媒体。
存储器920可以存储支持模块,诸如基本输入输出系统(BIOS)、操作系统(OS)、程序库、编译器、解释器或文本处理工具。
CPP 100实现程序指令和--选用地--使得处理器910执行本发明的方法步骤的数据。换句话说,CPP 100可以控制计算机900的操作,以便它按照本发明操作。例如并且不限定本发明,CPP 100可以被获得为以任何编程语言的源代码和以编译形式的对象代码(“二进制代码”)。
虽然CPP 100被图解为被存储在存储器920中,CPP 100可以位于其他位置。CPP 100也可以被包含在载体970中。
载体970被图解在计算机900之外。为了向计算机900传送CPP 100,载体970被方便地插入输入装置940。载体970被实现为任何计算机可读介质,诸如上面主要描述的介质(与存储器920相比较)。一般。载体970是包含计算机可读介质的制造物品,所述计算机可读介质具有计算机可读的程序代码,它可以用于使得计算机执行本发明的方法。而且,程序信号980也可以包含CPP 100。
输入装置940提供数据和指令以由计算机900处理。装置940可以例如是键盘、指示装置(例如鼠标、跟踪球、光标方向键)、麦克风、操纵杆、游戏板、扫描器或盘驱动器。虽然所述示例是具有人交互的装置,但是装置940也可以没有人交互而操作,诸如无线接收机(例如具有圆盘式卫星电视天线或地面天线)、传感器(例如温度计)、计数器(例如在工厂中的货物计数器)。输入装置940可以用于读取载体970。
输出装置950提供已经被处理的指令和数据。例如,这可以是监控器或显示器,诸如阴极射线管(CRT)或平板显示器或液晶显示器(LCD)、扬声器、打印机、绘图机或振动报警装置。与上述类似,输出装置950可以与用户通信,但是它也可以与另外的计算机通信。
输入装置940和输出装置950可以被组合为单个装置。任何装置940和950可以被选用地提供。
总线930和网络990通过传送指令和数据信号来提供逻辑和物理连接。虽然在计算机900内的连接被方便地称为“总线930”,但是在计算机900-902之间的连接被称为“网络990”。选用地,网络990包括网关,它们是专用于数据传输和协议转换的计算机。
装置940和950通过总线930(如图所示)或通过网络990(选用)而耦合到计算机900。
网络(像网络990那样)是在办公室、企业范围的计算机网络、内联网和因特网中的普遍现象。网络990可以是有线或无线网络。网络实现方式的示例可以是局域网(LAN)、广域网(WAN)、公共电话交换网(PSTN)和综合服务数字网(ISDN)。网络实现方式的其他示例是本领域内公知的。
多种传输协议和数据格式是公知的,例如传输控制协议/因特网协议(TCP/IP)、超文本传送协议(HTTP)、安全HTTP(HTTPS)或无线应用协议(WAP)。
在元件之间耦合的接口也是在本领域内公知的。为了简洁,接口未示出。接口可以是例如串行端口接口、并行端口接口、游戏端口、通用串行总线(USB)接口、内部或外部调制解调器、视频适配器或声卡。
计算机和程序紧密相关联。以下使用的诸如“计算机提供”和“程序提供”的短语是用于表达由程序控制的计算机的行为的方便简写。
图2A-2D图解了在四个连续时间点T1、T2、T3和T4的按照本发明的一个实施例的图形用户界面955的一种实现方式。
下面的用户与图形用户界面955的交互的示例在整个说明书中用于进一步解释本发明。但是,可以按照本发明实现任何图形用户界面。例如,GUI 955被提供到在客户计算机900(比较图1)的输出装置950(比较图1)上的用户,并且用户使用输入装置940来与GUI 955交互。
GUI 955是使得用户可以与被树955-1的节点可视化的分层数据进行交互的图形用户界面。例如,所述分层数据被存储在服务器计算机901上(比较图1)。但是,所述数据可以被存储在计算机系统999的任何存储器上(比较图1)。用户也可以通过使用复位(按键)955-2来复位树955-1。树955-1的每个节点的状态被相减符号(-)或相加符号(+)指示。相减符号指示节点的状态被展开。相加符号指示节点的状态折叠。例如,通过在节点上单击,用户可以将节点的状态从折叠(+)向展开(-)改变,或反之亦然。
在图2A中,在T1,用户使用树955-1被提示,其中各种节点的状态是:
根节点R1:展开(-);子节点FL1、FL2;
第一级节点FL1:展开(-);子节点:SL1、SL2;
第一级节点FL2:折叠;
第二级节点SL1、SL2:折叠(+)。
例如,用户选择第二级节点SL2以展开(例如通过在节点上单击)。在已经接收到用户的选择后,由此改变树955-1。
在图2B中,在T2,第二级节点SL2的状态已经改变到:展开(-);子节点TL1。第三层节点TL1被加到树955-1来作为第二层节点SL2的子节点然后,例如,用户再次选择第二级节点SL2以折叠(例如通过在节点上单击)。在已经接收到用户的选择后,客户机900由此改变树955-1。
在图2C中,在T3,第二级节点SL2的状态已经改变到:折叠(+)。第三层节点TL1被隐藏在树955-1中,并且不能作为第二层节点SL2的子节点而被看见。例如,用户然后单击复位按键955-2以将树955-1复位到其初始状态。在已经接收到复位请求后,客户机900由此改变树955-1。
图2D在T4示出了树955-1的初始状态的示例。根节点R1具有折叠的状态(+),并且其子节点都不可视。树955-1的替代初始状态是:根节点R1展开(-);子节点:FL1、FL2折叠(+)。另一个替代初始状态是:所有节点展开(+)。在下面的说明中,本发明的实施例被公开,用于实现在图2A-2D下所述的GUI行为,它具有低网络带宽需要和当GUI 955的外观在时间点T1到T4时刻、之前或之后改变时降低的对于用户的屏幕闪烁。
图3图解了按照本发明的一个实施例的客户机900与当操作时的服务器901的交互。如图1所述,客户机900通过网络990与服务器901通信。
服务器901包括一个应用组件,它具有服务器控制器101-1、服务器-呈现器101-2。在所述示例中,应用组件的一个实例还包括原始模型200-T1。例如,应用组件的一个实例还包括原始模型200-T1。例如,服务器控制器101-1和服务器呈现器101-2是在服务器901的存储器921中存储的CPP 101(比较图1)的部分。服务器控制器101-1接收410客户机900的修改请求。在接收到所述修改请求时,服务器控制器101-1将原始模型200-T1修改10为修改的模型200-T2。在多个应用组件的情况下,对应的服务器控制器使得应用组件彼此影响。换句话说,例如,服务器控制器101-1可以引发使得另一个服务器控制器修改另一个模型的事件。
应用组件的原始模型200-T1和修改的模型200-T2被以同一圆周符号图解。向回参见图2A的示例,原始模型200-T1在T1被可视化为树955-1。所述修改请求对应于用户用于展开第二级节点SL2的交互。修改的模型200-T2在T2被可视化为树955-1。
本发明的一个实施例使用具有继承的、面向对象的组件架构框架(以下也称为框架)。所述框架具有服务器端部分和客户机端部分。所述框架可以被实现为功能池,诸如一个或多个类的一组方法。例如,组件实现在诸如GUI 955的图形用户界面中的标准图形用户界面元素,诸如按键(例如复位955-2)、树(例如树955-1)、表格、标签条或任何其他界面元件。而且,一个组件可以具有属性,并且提供服务,诸如来自图形用户界面描述文件的图形用户界面建立、拖放交互处理和组件管理。所述框架支持在运行时间的组件建立和删除以及在运行时间的对于组件的所有属性的访问。另外,所述框架可以提供一般服务,诸如广播事件机制、图形用户界面的修改和没有页面替换的服务器访问。
可以没有类似于由小服务程序引擎--诸如Tomcat--使用的程序的特殊注册程序而安装组件。换句话说,安装组件自动使得框架可以获得组件。
例如,组件的应用组件被组件类定义,所述组件类诸如Java类、Java服务器页面类、小服务程序类、Pascal类、C类、C++类或商业服务器页面类。组件类运行在服务器901上。例如,组件类实现所述模型(例如模型200-T1)以及组件的服务器呈现器(例如服务器呈现器101-2)和服务器控制器(例如服务器控制器101-1)。
为了可视化原始模型200-T1,服务器呈现器101-2产生浏览器兼容的代码,诸如HTML、XHTML或WML。初始地,服务器呈现器101-2从原始模型200-T1产生组件描述符,并且向客户机900发送组件描述符。组件描述符对应于在图2A的示例(在T1)中的树955-1的浏览器兼容说明。本领域内的技术人员知道如何在例如Java页面、Java服务器页面或原始模型200-T1的替代的服务器端描述的基础上产生组件描述符。例如,诸如JavaScript类、JavaApplets类或VisualBasic Script类的组件脚本类根据原始模型200-T1的对应的组件描述符而产生原始的浏览器组件300-T1。
在一个实施例中,组件包括作为一组名字-数值对的属性,其中,所述属性是对应的组件描述符的一部分。组件的标准属性是:标识符、类名、脚本类名和父组件名。所述标识符在包括所述组件的页面上是唯一的。所述类名和脚本类名指定所述组件的组件类和组件脚本类的名称。父组件名是所述组件的父组件的标识符。例如,可以从类名得到脚本类名。脚本类可以用于建立对应于所述组件的应用组件的浏览器组件。
当在服务器901上初始产生一个页面时,所述页面的每个应用组件的组件类通过利用所述应用组件的对应属性而被调用。所述属性包括关于在服务器901上知道的应用组件的所有信息。所述组件类通过使用例如组件类的接口的一个或几个函数来向页面写入应用组件的组件描述符。这些函数的示例是:
·prolog(...)
·base(...)
·epilog(...)
在所述示例中,所有三个函数具有一组参数。例如,参数“properties”是用于描述应用组件的一组名字-数值对。另一个参数“output”用于向页面内写入数据,其中,所述数据被发送到在输出流中的客户机。向被发送到在输出流中的客户机的页面写入数据也被称为向输出流写入或呈现数据。
函数prolog(...)向输出流写入组件描述符首标。组件描述符首标是用于描述应用组件的名字-数值对的浏览器兼容描述。
函数base(...)向输出流提供组件的基本内容。所述基本内容被定义为被提供到用户的组件的初始内容。框架能够组合在页面内的多个组件的基本内容。这导致GUI 955的描述。例如,组件的基本内容包括另外的名字-数值对,诸如作为组件的初始内容的浏览器兼容说明或被提供到用户的初始内容的参考的内容名字-数值对。一种类型规范名字-数值对可以描述对于初始内容的参考类型。例如,如果所述类型规范名字-数值对包括“HTML”,则对应的内容名字-数值对包括作为HTML串的初始内容。其他参考类型的示例是“DOM”、“WML”和“链接”(到另一个页面的链接)。
如果所述类型规范名字-数值对包括参考类型“DOM”,则内容名字-数值对包括页面的对应DOM节点的唯一标识符。例如,在页面产生时间,服务器901可以向页面内产生HTML代码,其中,HTML代码具有ID属性,其包括作为ID属性的值的DOM节点的唯一标识符。这适用于其他的参考类型。
函数epilog(...)向输出流写入客户机端脚本以向框架登记组件。
组件类的超类可以处理向输出流写入组件描述符的一些函数。换句话说,超类可以向输出流写入对于多个组件相同的属性(例如类属性)。作为超类的之类的组件类可以向对应的输出流加上特定组件的属性。
下面的编码块是树组件的组件描述符的简化HTML代码示例:
<table id=′node′>
<tr><td>id</td><td>node</td></tr>
<tr><td>parent</td><td>parentContainer</td></tr>
<tr><td>class</td><td>SPNode</td></tr>
<tr><td>positionX</td><td>0</td></tr>
<tr><td>positionY</td><td>0</td></tr>
<tr><td>Width</td><td>82</td></tr>
<tr><td>Height</td><td>25</td></tr>
...
<tr><td>contentType</td><td>HTML</td></tr>
<tr><td>content</td><td><HTML-string of node base
content></td></tr>
...
</table>
<script language=′JavaScript′>
SPFramework.registerComponent(′node′,′SPNode′)
</script>
编码块的表格部分包括通过例如函数prolog()产生的组件描述符首标(例如identifier、parent、class、positionX、positionY、Width、Height),并且还包括由例如函数base()产生的组件的基本内容(例如,contentType、content)。向回参见图2A的示例,组件描述符对应于在T1的树955-1的描述。
编码块的JavaScript部分可以被函数epilog()产生。
当客户机控制器101-1将原始模型200-T1修改为修改的模型200-T2时,服务器呈现器101-2以浏览器兼容格式产生420至少浏览器增量300-I。依赖于修改10,可以由服务器呈现器101-2产生多个浏览器增量。在所述示例中,浏览器增量300-I对应于在原始模型200-T1和修改的模型200-T2之间的差向回参见图2B的示例,浏览器增量300-I对应于第三级节点TL1。服务器901然后向客户机900发送430至少浏览器增量300-I。
例如,组件类的接口具有另一个函数increment(...)。函数increment(...)可以具有参数“properties”和“output”,它们可以与用于先前说明的接口的函数相同。它可以具有另一个参数“parameters”,它是类似于参数“properties”的另一组名字-数值对。当影响应用组件的模型(例如原始模型200-T1)的用户交互(例如当用户指示展开第二级节点SL2时)需要在对应的浏览器组件的至少一部分中的改变以获得其可视化的时候,可以调用函数increment()。函数increment()具有用于产生420对应的浏览器增量(例如浏览器增量300-I)和将其向输出流写入的任务。被提供有参数“parameters”的名字-数值对指定要产生的浏览器增量的精确格式。
向回参见图2B的示例,浏览器增量300-I的HTML示例可以包括下列声明:
<div id=′/R1/FL1/SL2/TL1′>node label</div>。
标识符′/R1/FL1/SL2/TL1′描述了对应于在T2的第三级节点TL1的浏览器增量的路径。节点标签可以是图标(例如在圆圈中的“+”),用于可视化节点或文本或任何其他图示。
在一个替代实施例中,单个函数(例如函数all_in_one(...))或任何其他数量的函数可以用于执行向输出流写入对应的数据所需要的前述任务。
总之,在本发明的一个实施例中,服务器端组件类具有两个任务:
a)在请求时,向输出流写入组件描述符,其中,所述组件描述符列出了所有的组件属性。而且,产生组件基本内容,并且将其写入到输出流。而且向输出流写入代码,用于向框架登记组件。
b)在请求时,产生由所述参数描述的浏览器增量。向输出流写入浏览器增量。
客户机900包括浏览器组件,它对应于应用组件并且具有对应的客户机组合器100-1和客户机控制器100-2。例如,客户机控制器100-2和客户机组合器100-1是被存储在客户机900的存储器920中的CPP 100(比较图1)的部分。浏览器组件(例如JavaScript对象)的一个实例是从对应的组件脚本类说明的。例如,框架的客户机端部分使用构造器,用于接收对于组件描述符的指针。浏览器组件从组件描述符提取属性和对应的属性值,并且向浏览器组件的实例加上它们。浏览器组件的实例包括原始DOM组件300-T1。
在已经修改了原始模型200-T1后,客户机组合器100-1接收520浏览器增量300-I,并且使用至少浏览器增量300-I来更新530原始DOM组件300-T1(对应于原始模型200-T1)。这导致修改的DOM组件300-T2,它对应于修改的模型200-T2。通过同一椭圆来图解修改的DOM组件300-T2和原始DOM组件300-T1。例如,修改的DOM组件300-T2和原始DOM组件300-T1是对应的组件脚本类的实例(例如,JavaScript对象)。在本发明的一个实施例中,对应于组件的组件类的组件脚本类在客户端900上运行,并且实现例如客户机组合器100-1和客户机控制器100-2。例如,客户机组合器100-1的接口包括函数handleResponse(...)。
在本发明的一个实施例中,当客户机组合器100-1从组件类的函数increment()接收到520浏览器增量300-I时,调用函数handleResponse()。例如,所述框架将函数increment()的参数“output”传送到handleResponse()的参数“response”。而且,函数handleResponse()的参数“target”是在接收410步骤中被传送到服务器901的值。当在已经接收到520浏览器增量300-I时调用函数handleResponse()时,参数“target”向客户指示浏览器增量300-I的接收者(浏览器组件)。所述接收者可以与原始请求者相同,但是也可以与原始请求者不同。
从服务器901检索浏览器增量300-I的第一实例是通过使用脚本标签。第二实例是通过使用隐藏的HTML iFrame元素。
为了使用脚本标签(例如JavaScript)来检索浏览器增量,框架的客户端部分执行下述步骤。
首先,产生对应的请求URL。例如,框架的客户端部分从自服务器接收的页面检索服务器产生的基本请求URL,并且附加请求具体参数。
然后,产生具有SCR属性的脚本标签(例如stag)。为此,例如,可以使用JavaScript声明,诸如:
var stag=createNode(“script”)
然后,向脚本标签的SRC属性分配请求URL(stag.SRC=请求URL)。
然后,脚本标签被加到页面的DOM。例如,这可以通过使用JavaScript声明document.body.appendChild(stag)来完成。
一旦向DOM增加脚本标签,则客户机向服务器发送对于服务器的请求。服务器产生包括对于所述请求的响应的脚本声明。例如,服务器可以建立对于框架的客户端部分的调用,将服务器请求的结果作为下述参数传送:
Framework.handleResponse(result)
函数handleResponse(...)在客户机解释所述结果,并且向对应的组件传送每个组件的结果。
诸如VBScript的其他脚本语言可以等同地被用于使用脚本标签来实现浏览器增量检索。
第二实例取代脚本标签而使用iFrames来用于浏览器增量检索。在这个实例中,从服务器接收的页面包括隐藏的iFrame,它通过所述框架的服务器端部分被产生到页面中。所述框架的客户机端部分然后产生如在第一示例中所述的对应请求URL。
然后,请求URL被分配到隐藏的iFrame的SRC属性。
一旦向SRC属性分配了请求URL,则客户机向服务器发送对应的请求。服务器可以产生如在第一示例中所述的脚本,或者它可以产生在客户机需要什么行为的描述。在后一种情况下,客户机端框架解释所述说明,并且由此行动。
当客户机组合器100-1注意到请求了浏览器组件的更新(例如通过用户交互)的时候,客户机控制器100-2产生被发送510到服务器901的修改请求。在图4A、4B和图5中解释了客户机控制器100-2的另一些函数。
当从服务器901向客户机900发送取代整个修改的浏览器组件的仅仅浏览器增量300-I时,对于通过网络990的客户机-服务器通信需要较少的带宽,并且用于产生浏览器增量300-I比用于再生全部页面消耗更少的服务器的CPU时间。
当通过客户机组合器100-1用浏览器增量300-I来更新原始的DOM组件300-T1时,减少了当替换全页面时经常发生的屏幕闪烁。
图4A、4B进一步图解了在本发明的一个实施例中浏览器增量300-I的客户机端处理的细节。优选的是,在已经接收到520浏览器增量300-I时,客户机控制器100-2在客户机900的高速缓冲存储器920-C内存储浏览器增量300-I。
图4A图解了在接收到去活请求DAR时的浏览器增量300-I的去活。去活请求DAR可以如图2A、2B所述被与客户机900交互的用户产生,或者它可以在计算机系统999中的另一个计算机产生。例如,通过客户机控制器100-2来接收去活请求DAR。然后,客户机控制器100-2指令610客户机组合器100-1去活550在修改的DOM组件300-T2中的浏览器增量300-I而产生去活的DOM组件300-T3。例如,可以通过设置对应的去活标记来去活浏览器增量300-I。在去活的DOM组件300-T3中,浏览器增量300-I被抑制(例如通过删除或设置去活标记;如通过打叉来图示)。修改的DOM组件300-T2和去活的DOM组件300-T3被以同一椭圆图解。向回参见图2B、2C的示例,修改的DOM组件300-T2对应于在T2的树955-1,其中第二级节点SL2被展开并且第三级节点SL2被包括。去活的DOM组件300-T3对应于在T3的树955-1,其中,第三级节点TL1被抑制,并且第二级节点SL2折叠。虽然树955-1在T1的可视化与其在T3的可视化相同,但是在T1的客户机900的状态与在T3的状态不同,因为浏览器增量300-I在T3在高速缓冲存储器920-C内可以获得,而不是在T1。这在参照图4B所述的重新激活请求的情况下影响了客户机900的行为。
例如,浏览器组件可以在客户机900交互而不联系服务器901。向回参见图2D的示例,在T4,用户已经使用了复位按键955-2,用于对根节点R1产生对于折叠树955-1的复位请求。对应地,在客户机900,对应于在服务器901的复位应用组件(未示出)的复位浏览器组件(未示出)与可视化树955-1的浏览器组件交互,以便在对应的DOM组件内去活浏览器组件的所有其他的浏览器增量(未示出),除了对应于根节点R1的浏览器增量之外。
图4B图解了在客户机控制器100-2接收到重新激活请求RAR时浏览器增量300-I的重新激活。客户机控制器100-2从高速缓冲存储器920-C检索浏览器增量300-I,并且指令620客户机组合器100-1重新激活在去活的DOM组件300-T3内的浏览器增量300-I。所述重新激活导致重新激活的DOM组件300-T3′。向回参见图2A的示例,用户以与在T1的相同方式与客户机900交互。但是,不是从服务器901请求浏览器增量300-I以达到与在T2的树955-1的可视化相对应的修改的DOM组件300-T2,客户机900仅仅从其自己的高速缓冲存储器902-C检索浏览器增量300-I,并且重新激活570在去活的DOM组件300-T3中的浏览器增量300-I。结果产生的重新激活的DOM组件300-T3′与修改的DOM组件300-T2相同。
通过在客户机900高速缓冲存储浏览器增量并且使能在客户机900的浏览器组件的交互,因为减少了向服务器的请求的数量,服务器901的负荷被减少,这是因为客户机900可以本身处理具体的事件而不用联系服务器901。
图5图解了可以在本发明的一个实施例中使用的两个互补计算机程序产品CPP 101(服务器程序)、CPP 100(客户机程序)和它们的主要功能块。例如,CPP 100可以是浏览器。
所述框架在服务器端部分101-10内被实现为CPP 101的一部分,并且在客户机端部分100-10内被实现为CPP 100的一部分。如上所述,所述框架提供可以被应用到多个组件的一般功能。
DOM 100-9用于向用户提供应用的图形用户界面。在示例中,DOM 100-9表示包括树组件955-1(比较图2A)和复位组件955-2(比较图2A)的页面当用户与CPP 100交互(例如通过指示应当展开特定的树节点)以便将影响在服务器901的模型200-Tn(n=1,2,...,N)的时候,对应的客户机控制器100-2被通知701关于用户的交互,并且向在服务器901上运行的CPU 101发送702对应的请求。例如,客户机控制器100-2可以预订特定的浏览器组件,并且当通过用户交互产生对应的浏览器组件时被通知。
在可以通过客户机控制器100-2处理用户交互而不接触服务器901的情况下,客户机控制器100-2可以指令702′对应的客户机组合器100-1更新803当前被浏览器可视化的页面的DOM 100-9,以按照用户交互调整DOM 100-9的可视化。
在用户交互需要涉及服务器901的情况下,CPP 100向CPP 101发送702对应的请求。所述请求使得客户机组合器100-1由此修改703对应的模型200-Tn。服务器呈现器101-2呈现/产生801已经被修改703的模型200-Tn。呈现801的结果是可以用于其可视化的模型的描述。这个描述然后被发送到客户机900。
在本发明的一个实施例中,所述描述被从服务器呈现器101-2发送到802客户机组合器100-1。客户机组合器使用所述描述来通过改变DOM 100-9的对应节点来由此更新803DOM 100-9。
在本发明的另一个实施例中,所述描述可以从服务器控制器101-1发送到702客户机控制器100-2,客户机控制器100-2然后指令702′客户机组合器100-1由此更新803DOM 100-9。
在本发明的另一个实施例中,所述描述被从服务器端框架101-10发送到客户机端框架100-10,在此,它被分派到对应的客户机控制器100-2。
图6通过可以由本发明的一个实施例执行的服务器端方法400的简化流程图而总结了本发明的服务器端方面。例如,可以通过具有下述指令的计算机程序产品101来执行用于处理在计算机系统999中的服务器901上的增量数据的方法400:所述指令当被安装到服务器901的存储器921中时使得服务器901的至少一个处理器911执行方法400。方法400包括接收410、产生420和发送430步骤。
在接收步骤410,服务器控制器101-1从客户机控制器100-2接收修改请求。客户机控制器100-2运行在计算机系统999的客户机900上。所述修改请求使得服务器901将原始模型200-T1修改为修改的模型200-T2,它们两个都例如被存储在服务器901的存储器921中。
在产生步骤420,服务器呈现器101-2产生对应于在原始模型200-T1和修改的模型200-T2之间的差的至少一个浏览器增量300-I。
在发送步骤430,服务器901向客户机900的客户机组合器100-1发送至少一个浏览器增量300-I。客户机900使用至少一个浏览器增量300-I来更新原始DOM组件300-T1。所述更新导致修改的DOM组件300-T2对应于修改的模型200-T2,而原始DOM组件300-T1对应于原始模型200-T2。
图7A通过可以由本发明的一个实施例执行的客户机端方法500的简化流程图而总结了本发明的客户机端方面。例如,可以由具有以下指令的计算机程序产品100执行用于处理在计算机系统999中客户机900上的增量数据的方法500,所述指令当被装载到客户机900的存储器920中式,使得至少客户机900的一个处理器910执行方法500。方法500包括发送510、接收520和更新530步骤。
在发送步骤510,客户机控制器100-2向服务器控制器101-1发送修改请求。服务器控制器101-1在计算机系统999的服务器901上执行。
在接收步骤520,客户机组合器100-1作为对于修改请求的响应从服务器901接收至少一个浏览器增量300-I。
在更新步骤530,客户机组合器100-1使用至少一个浏览器增量300-I来更新原始的DOM组件300-T1,以产生修改的DOM组件300-T2。原始的DOM组件300-T1对应于原始的模型200-T1,修改的DOM组件300-T2对应于修改的模型200-T2。
图7B继续图7A的简化流程图。在本发明的各个实施例中,方法500执行由虚线方框图解的步骤。所述步骤不必然要求之前执行步骤510-530。在使用用于处理增量数据的替代基本机制的情况下,图7B中图解的步骤可以仍然用于客户机端事件处理。
在一个去活示例中,方法500包括另外的存储540和去活550步骤。
在存储步骤540中,客户机900在其高速缓冲存储器920-C中存储至少一个浏览器增量300-I。
在去活步骤550中,客户机控制器100-2已经接收到去活请求DAR,并且作为结果,客户机组合器100-1去活在对应的DOM组件中的浏览器增量300-I。
在本发明的一个重新激活示例中,方法500包括另外的步骤检索560和重新激活570。然而,它并不要求之前执行去活步骤550。
在检索步骤560,客户机900从高速缓冲存储器920-C检索至少一个浏览器增量300-I,在此,它使用存储步骤540被存储。例如,这可以通过由客户机控制器100-2接收的重新激活请求RAR来被启动。
然后,在重新激活步骤570中,客户机组合器100-1重新激活在对应的DOM组件中的浏览器增量300-I。
Claims (20)
1.一种计算机系统(999),用于处理增量数据,包括:
服务器控制器(101-1),用于从客户机(900)接收修改请求,以将在服务器(901)上存储的应用组件的原始模型(200-T1)修改为所述应用组件的修改模型(200-T2);
服务器呈现器(101-2),用于产生对应于在原始模型(200-T1)和修改的模型(200-T2)之间的差的至少一个浏览器增量(300-I);
客户机组合器(100-1),用于从服务器(901)接收所述至少一个浏览器增量(300-I),并且使用所述至少一个浏览器增量(300-I)来在客户机(900)更新浏览器组件的原始的文件对象模型组件(300-T1),结果产生与修改的模型(200-T2)对应的修改的文件对象模型组件(300-T2),其中,原始文件对象模型组件(300-T1)对应于原始模型(200-T1),并且,所述至少一个浏览器增量(300-I)可以根据需要被去活或者重新激活;以及
客户机控制器(100-2),用于产生修改请求。
2.按照权利要求1的计算机系统(999),其中,客户机控制器(100-2)在客户机(900)的高速缓冲存储器(920-C)内存储至少一个浏览器增量(300-I),并且指令客户机组合器(100-1)来在接收到去活请求(DAR)时去活至少一个浏览器增量(300-I)。
3.按照权利要求2的计算机系统(999),其中,客户机控制器(100-2)从高速缓冲存储器(920-C)去活至少一个浏览器增量(300-I),并且指令客户机组合器(100-1)来在接收到重新激活请求(RAR)时重新激活所述至少一个浏览器增量(300-I)。
4.按照权利要求1-3中的任何一个的计算机系统(999),其中,客户机控制器(100-2)指令客户机组合器(100-1)来在接收到复位请求时复位原始或修改的文件对象模型组件(300-T1,300-T2)。
5.按照权利要求1-3中的任何一个的计算机系统(999),其中,通过从Java类、Java服务器页面类、小服务程序类、Pascal类、C类、C++类和商业服务器页面类的组中选择的组件类来定义原始模型(200-T1)和修改的模型(200-T2)。
6.按照权利要求1-3中的任何一个的计算机系统(999),其中,通过从JavaScript类、JavaApplets类和VisualBasic脚本类的组中选择的组件脚本类来定义浏览器组件。
7.按照权利要求5的计算机系统(999),其中,所述组件类实现服务器控制器(101-1)和服务器呈现器(101-2)的至少一部分。
8.按照权利要求6的计算机系统(999),其中,所述组件脚本类实现客户机控制器(100-2)和客户机组合器(100-1)的至少一部分。
9.按照权利要求6的计算机系统(999),其中,所述组件脚本类和所述组件类具有相同的分层。
10.一种在用于处理增量数据的计算机系统(999)内的服务器(900),包括:
服务器控制器(101-1),用于从在计算机系统(999)中的客户机(900)的客户机控制器(100-2)接收修改请求,以将存储在服务器(901)上的应用组件的原始模型(200-T1)修改为所述应用组件的修改的模型(200-T2);以及
服务器呈现器(101-2),用于产生对应于在原始模型(200-T1)和修改的模型(200-T2)之间的差的至少一个浏览器增量(300-I);所述至少一个浏览器增量(300-I)被使得发送到客户机(900)的客户机组合器(100-1),用于使用所述至少一个浏览器增量(300-I)来更新对应于原始模型(200-T1)的原始文件对象模型组件(300-T1),以产生对应于修改的模型(200-T2)的修改的文件对象模型组件(300-T2),
其中,所述至少一个浏览器增量(300-I)可以根据需要被去活或者重新激活。
11.一种在用于处理增量数据的计算机系统(999)中的客户机(900),包括:
客户机控制器(100-2),用于向在计算机系统(999)中的服务器(901)的服务器控制器(101-1)发送修改请求;以及
客户机组合器(100-1),用于从服务器(901)接收至少一个浏览器增量(300-I),并且使用所述至少一个浏览器增量(300-I)来更新对应于应用组件的原始模型(200-T1)的原始文件对象模型组件(300-T1),以产生与所述应用组件的修改模型(200-T2)对应的修改的文件对象模型组件(300-T2),其中,服务器控制器(101-1)将在服务器(901)上存储的原始模型(200-T1)改为修改的模型(200-T2);并且服务器(901)的服务器呈现器(101-2)产生与在原始模型(200-T1)和修改的模型(200-T2)间的差对应的至少一个浏览器增量(300-I),并且,所述至少一个浏览器增量(300-I)可以根据需要被去活或者重新激活。
12.按照权利要求11的客户机(900),其中,客户机控制器(100-2)在客户机(900)的高速缓冲存储器(920-C)内存储至少一个浏览器增量(300-I),并且指令客户机组合器(100-1)在接收到去活请求(DAR)时去活浏览器增量(300-I)。
13.按照权利要求12的客户机(900),其中,客户机控制器(100-2)从高速缓冲存储器(920-C)检索所述至少一个浏览器增量(300-I),并且指令客户机组合器(100-1)在接收到重新激活请求(RAR)时重新激活所述至少一个浏览器增量(300-I)。
14.按照权利要求11-13中的任何一个的客户机(900),其中,客户机控制器(100-2)指令客户机组合器(100-1)在接收到复位请求时复位原始的文件对象模型组件(300-T1)。
15.一种用于在计算机系统(999)的服务器(901)上处理增量数据的方法,包括步骤:
通过服务器控制器(101-1)从属于计算机系统(999)的客户机(900)的客户机控制器(100-2)接收(410)修改请求,以将存储在服务器(901)上的应用组件的原始模型(200-T1)修改为所述应用组件的修改的模型(200-T2);
通过服务器呈现器(101-2)来产生(420)对应于在原始模型(200-T1)和修改的模型(200-T2)之间的差的至少一个浏览器增量(300-I);
向客户机(900)的客户机组合器(100-1)发送所述至少一个浏览器增量(300-I),用于使用所述至少一个浏览器增量(300-I)来在客户机(900)上更新对应于原始模型(200-T1)的原始文件对象模型组件(300-T1),以产生对应于修改的模型(200-T2)的修改的文件对象模型组件(300-T2),
其中,所述至少一个浏览器增量(300-I)可以根据需要被去活或者重新激活。
16.一种用于处理在计算机系统(999)上的客户机(900)上的增量数据的方法(500),包括步骤:
从客户机控制器(100-2)向在计算机系统(999)中的服务器(901)的服务器控制器(101-1)发送(510)修改请求;
通过客户机组合器(100-1)从服务器(901)接收(520)至少一个浏览器增量(300-I)来作为对于修改请求的响应;
使用所述至少一个浏览器增量(300-I)来更新对应于应用组件的原始模型(200-T1)的原始文件对象模型组件(300-T1),以产生与所述应用组件的修改模型(200-T2)对应的修改的文件对象模型组件(300-T2),其中,服务器控制器(101-1)将在服务器(901)上存储的原始模型(200-T1)改为修改的模型(200-T2);并且服务器(901)的服务器呈现器(101-2)产生与在原始模型(200-T1)和修改的模型(200-T2)间的差对应的至少一个浏览器增量(300-I),并且,所述至少一个浏览器增量(300-I)可以根据需要被去活或者重新激活。
17.按照权利要求16的方法(500),包括进一步的步骤:
在客户机(900)的高速缓冲存储器(920-C)内存储至少一个浏览器增量(300-I)。
18.按照权利要求17的方法(500),包括进一步的步骤:
通过客户机组合器(100-1)在客户机控制器(100-2)已经接收到去活请求(DAR)时去活(550)浏览器增量(300-I)。
19.按照权利要求18的方法(500),包括进一步的步骤:
从高速缓冲存储器(920-C)检索(560)所述至少一个浏览器增量(300-I);
通过客户机组合器(100-1)在客户机控制器(100-2)已经接收到重新激活请求(RAR)时重新激活浏览器增量(300-I)。
20.一种用于处理增量数据的计算机系统(999),包括:
客户机控制器(100-2),用于产生修改请求;
服务器控制器(101-1),用于作为修改请求的响应而修改(703)在服务器(901)上的应用组件的模型(200-Tn);
服务器呈现器(101-2),用于在已经修改(703)了模型(200-Tn)后产生至少一个浏览器增量(300-I);以及
客户机组合器(100-1),用于从服务器(901)接收所述至少一个浏览器增量(300-I),并且使用所述至少一个浏览器增量(300-I)来更新浏览器组件的一个实例,其中,所述浏览器组件对应于所述应用组件,并且,所述至少一个浏览器增量(300-I)可以根据需要被去活或者重新激活。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02017408A EP1388783B1 (en) | 2002-08-02 | 2002-08-02 | Method and computer system for handling incremental data in client-server communication |
EP02017408.2 | 2002-08-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1682183A CN1682183A (zh) | 2005-10-12 |
CN100380318C true CN100380318C (zh) | 2008-04-09 |
Family
ID=30129178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB03822156XA Expired - Lifetime CN100380318C (zh) | 2002-08-02 | 2003-07-30 | 在客户机-服务器通信中处理增量数据的方法和计算机系统 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20060200535A1 (zh) |
EP (1) | EP1388783B1 (zh) |
JP (1) | JP4763286B2 (zh) |
CN (1) | CN100380318C (zh) |
AT (1) | ATE385589T1 (zh) |
AU (1) | AU2003266253B2 (zh) |
CA (1) | CA2494659C (zh) |
DE (1) | DE60224926T2 (zh) |
WO (1) | WO2004015566A1 (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1406183A3 (en) * | 2002-10-01 | 2004-04-14 | Sap Ag | Method and system for refreshing browser pages |
US8095659B2 (en) | 2003-05-16 | 2012-01-10 | Jp Morgan Chase Bank | Service interface |
US7913177B1 (en) | 2004-03-08 | 2011-03-22 | Adobe Systems Incorporated | System and method for managing instantiation of interface elements in rich internet applications |
US7954050B2 (en) * | 2004-06-25 | 2011-05-31 | Icesoft Technologies Canada Corp. | Systems and methods for rendering and increasing portability of document-based user interface software objects |
GB0416857D0 (en) * | 2004-07-29 | 2004-09-01 | Ingenico Uk Ltd | Electronic financial transactions |
US8627344B2 (en) * | 2004-12-15 | 2014-01-07 | Siebel Systems, Inc. | Methods and apparatuses for user interface management |
US20060136810A1 (en) * | 2004-12-22 | 2006-06-22 | Sap Aktiengesellschaft | Electronic form generator |
US7610291B2 (en) * | 2005-08-17 | 2009-10-27 | International Business Machines Corporation | Logical grouping and management of redundant objects in storage systems |
EP1974260B1 (en) * | 2006-01-18 | 2009-06-17 | Telefonaktiebolaget L M Ericsson (Publ) | Dependency notification |
US8190650B2 (en) | 2006-05-02 | 2012-05-29 | Microsoft Corporation | Efficiently filtering using a web site |
US20080010359A1 (en) * | 2006-07-10 | 2008-01-10 | Jeffrey Mark Achtermann | Computer implemented method and system for managing server-based rendering of messages in a heterogeneous environment |
US7984375B1 (en) | 2006-10-10 | 2011-07-19 | Adobe Systems Incorporated | Automated detection and implementation of state and object modifications |
US20080155427A1 (en) * | 2006-12-21 | 2008-06-26 | Jean-Francois Leblay | Mobile business client |
US8134553B2 (en) * | 2007-09-24 | 2012-03-13 | Microsoft Corporation | Rendering three-dimensional objects on a server computer |
US20100067113A1 (en) * | 2008-09-18 | 2010-03-18 | Matthew John Harrison | Apparatus and Method for Displaying Hierarchical Data |
US8572226B2 (en) * | 2008-12-17 | 2013-10-29 | Sap Ag | Enhancing network details using network monitoring scripts |
US9171097B2 (en) | 2009-03-31 | 2015-10-27 | Qualcomm Incorporated | Memoizing web-browsing computation with DOM-based isomorphism |
US9311425B2 (en) * | 2009-03-31 | 2016-04-12 | Qualcomm Incorporated | Rendering a page using a previously stored DOM associated with a different page |
US20110173589A1 (en) * | 2010-01-13 | 2011-07-14 | Microsoft Corporation | Cross-Browser Interactivity Testing |
US9077681B2 (en) * | 2010-10-05 | 2015-07-07 | Microsoft Technology Licensing, Llc | Page loading optimization using page-maintained cache |
US8700691B2 (en) | 2011-12-05 | 2014-04-15 | Microsoft Corporation | Minimal download and simulated page navigation features |
US9846605B2 (en) | 2012-01-19 | 2017-12-19 | Microsoft Technology Licensing, Llc | Server-side minimal download and error failover |
US10289743B2 (en) * | 2012-01-19 | 2019-05-14 | Microsoft Technology Licensing, Llc | Client-side minimal download and simulated page navigation features |
CN102830973A (zh) * | 2012-08-14 | 2012-12-19 | 无锡哲勤科技有限公司 | 海量数据下Web应用开发双层MVC的方法和分层结构 |
JP6771855B2 (ja) | 2014-06-02 | 2020-10-21 | ヤマハ株式会社 | 中継装置およびプログラム |
US9646103B2 (en) * | 2014-07-10 | 2017-05-09 | MyMojo Corporation | Client-side template engine and method for constructing a nested DOM module for a website |
US10712913B2 (en) * | 2014-10-20 | 2020-07-14 | Oracle International Corporation | Event-based architecture for expand-collapse operations |
US9881070B2 (en) * | 2014-12-12 | 2018-01-30 | Microsoft Technology Licensing, Llc | Controlling service functions in response to service instigation and service reactivation messages |
CN107085530B (zh) * | 2017-05-17 | 2021-03-16 | 武汉斗鱼网络科技有限公司 | 刷新应用界面的方法、装置及移动终端 |
US11023672B1 (en) * | 2018-01-29 | 2021-06-01 | Amazon Technologies, Inc. | Dynamic service injection |
CN110456738B (zh) * | 2018-05-07 | 2021-08-27 | 华中科技大学 | 监控系统及其监控方法 |
US10452868B1 (en) | 2019-02-04 | 2019-10-22 | S2 Systems Corporation | Web browser remoting using network vector rendering |
US11880422B2 (en) | 2019-02-04 | 2024-01-23 | Cloudflare, Inc. | Theft prevention for sensitive information |
US10552639B1 (en) | 2019-02-04 | 2020-02-04 | S2 Systems Corporation | Local isolator application with cohesive application-isolation interface |
US10558824B1 (en) | 2019-02-04 | 2020-02-11 | S2 Systems Corporation | Application remoting using network vector rendering |
CN112540816A (zh) * | 2020-11-30 | 2021-03-23 | 北京飞漫软件技术有限公司 | 一种远程页面渲染方法、装置、设备及计算机存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870549A (en) * | 1995-04-28 | 1999-02-09 | Bobo, Ii; Charles R. | Systems and methods for storing, delivering, and managing messages |
JP3783301B2 (ja) * | 1995-10-19 | 2006-06-07 | 富士ゼロックス株式会社 | 構造化データ処理装置 |
WO1998037473A2 (en) * | 1997-02-07 | 1998-08-27 | General Internet, Inc. | Collaborative internet data mining system |
US20010047394A1 (en) * | 1999-09-10 | 2001-11-29 | Kloba David D. | System, method, and computer program product for executing scripts on mobile devices |
US6718515B1 (en) * | 1999-12-07 | 2004-04-06 | International Business Machines Corporation | Method of populating a dynamic HTML table from a set of data objects through a common interface |
CN1205571C (zh) * | 2000-02-04 | 2005-06-08 | 美国联机股份有限公司 | 提供和呈现可缩放web文档的系统和方法 |
US6704024B2 (en) * | 2000-08-07 | 2004-03-09 | Zframe, Inc. | Visual content browsing using rasterized representations |
JP2002189618A (ja) * | 2000-12-21 | 2002-07-05 | Hitachi Information Systems Ltd | 差分キャッシュを用いたwwwサーバとwwwブラウザの処理方法、およびそのプログラム |
US7047318B1 (en) * | 2001-04-20 | 2006-05-16 | Softface, Inc. | Method and apparatus for creating and deploying web sites with dynamic content |
US6978445B2 (en) * | 2001-09-28 | 2005-12-20 | Siebel Systems, Inc. | Method and system for supporting user navigation in a browser environment |
US6918090B2 (en) * | 2002-01-23 | 2005-07-12 | International Business Machines Corporation | Dynamic setting of navigation order in aggregated content |
US20030167315A1 (en) * | 2002-02-01 | 2003-09-04 | Softwerc Technologies, Inc. | Fast creation of custom internet portals using thin clients |
-
2002
- 2002-08-02 EP EP02017408A patent/EP1388783B1/en not_active Expired - Lifetime
- 2002-08-02 AT AT02017408T patent/ATE385589T1/de not_active IP Right Cessation
- 2002-08-02 DE DE60224926T patent/DE60224926T2/de not_active Expired - Lifetime
-
2003
- 2003-07-30 AU AU2003266253A patent/AU2003266253B2/en not_active Ceased
- 2003-07-30 CN CNB03822156XA patent/CN100380318C/zh not_active Expired - Lifetime
- 2003-07-30 JP JP2004526822A patent/JP4763286B2/ja not_active Expired - Lifetime
- 2003-07-30 WO PCT/EP2003/008409 patent/WO2004015566A1/en active Application Filing
- 2003-07-30 US US10/523,021 patent/US20060200535A1/en not_active Abandoned
- 2003-07-30 CA CA2494659A patent/CA2494659C/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
RESEARCH DISCLOSURE. INTERNATION BUSINESS MACHINES CORPORATION,900,UPDATING LIVE HTML PAGES INCREMENTALLY WITHDATA FROM WEB SERVERS. 2000 * |
Also Published As
Publication number | Publication date |
---|---|
WO2004015566A1 (en) | 2004-02-19 |
EP1388783B1 (en) | 2008-02-06 |
ATE385589T1 (de) | 2008-02-15 |
EP1388783A1 (en) | 2004-02-11 |
CA2494659A1 (en) | 2004-02-19 |
CN1682183A (zh) | 2005-10-12 |
DE60224926T2 (de) | 2009-01-22 |
AU2003266253A1 (en) | 2004-02-25 |
DE60224926D1 (de) | 2008-03-20 |
JP4763286B2 (ja) | 2011-08-31 |
JP2005535042A (ja) | 2005-11-17 |
AU2003266253B2 (en) | 2008-08-07 |
CA2494659C (en) | 2012-04-17 |
US20060200535A1 (en) | 2006-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100380318C (zh) | 在客户机-服务器通信中处理增量数据的方法和计算机系统 | |
US7353464B1 (en) | Hierarchical data navigation tool populated by a web service | |
US7269792B2 (en) | System and method for generating high-function browser widgets with full addressability | |
US8447832B2 (en) | System and method for providing a web-based operating system | |
CN100421375C (zh) | 数据共享系统及方法 | |
US7275243B2 (en) | Mobile download system | |
US6701368B1 (en) | Providing a stream of data to a browser to update properties on a page | |
AU2008206688B2 (en) | Method and system for creating IT-oriented server-based web applications | |
US8375358B2 (en) | Automatically generating rest clients from rest resources | |
US8983935B2 (en) | Methods for utilizing a javascript emulator in a web content proxy server and devices thereof | |
US20110113090A1 (en) | Dynamic mobile client | |
US20170206188A1 (en) | Manipulation of an ajax tree presentation | |
US20130132422A1 (en) | System and method for creating and controlling an application operating on a plurality of computer platform types | |
JP2003345717A (ja) | ウェブ・ドキュメントを再編集して再配布する方法及び装置 | |
JPH1069426A (ja) | ネットワーク・ブラウザ・ページにおける動的リンク可能なラベル | |
US20100037145A1 (en) | Method and system for a personalized web page | |
EP2144160B1 (en) | Method and computer system for providing stateful favorites | |
CN118094031A (zh) | 子应用页面处理方法、装置、计算机设备和存储介质 | |
Ruuskanen | MIDP-mobile information device profile | |
EP0912931A2 (en) | Program modules and parameter files in a network |
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 | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20080409 |