首页 / 专利库 / 专利权 / 第I章 / 国际申请 / 修改 / 在客户机-服务器通信中处理增量数据的方法和计算机系统

在客户机-服务器通信中处理增量数据的方法和计算机系统

阅读:88发布:2021-06-12

专利汇可以提供在客户机-服务器通信中处理增量数据的方法和计算机系统专利检索,专利查询,专利分析的服务。并且在 服务器 (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)。,下面是在客户机-服务器通信中处理增量数据的方法和计算机系统专利的具体信息内容。

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) 更新浏览器组件的原始的DOM组件(300-T1),结果产生与修改的模型 (200-T2)对应的修改的文件对象模型(DOM)组件(300-T2),其中,原 始DOM组件(300-T1)对应于原始模型(200-T1);以及
客户机控制器(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)来在接收到复位请求时复位原始或 修改的DOM组件(300-T1,300-T2)。
5.按照权利要求1-4的任何一个的计算机系统(999),其中,通过从Java 类、Java服务器页面类、小服务程序类、Pascal类、C类、C++类和商业服务 器页面类的组中选择的组件类来定义原始模型(200-T1)和修改的模型 (200-T2)。
6.按照权利要求1-5的任何一个的计算机系统(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) 的原始DOM组件(300-T1),以产生对应于修改的模型(200-T2)的修改的 DOM组件(300-T2)。
11.一种在用于处理增量数据的计算机系统(999)中的客户机(900), 包括:
客户机控制器(100-2),用于向在计算机系统(999)中的服务器(901) 的服务器控制器(101-1)发送修改请求;以及
客户机组合器(100-1),用于从服务器(901)接收至少一个浏览器增量 (300-I),并且使用所述至少一个浏览器增量(300-I)来更新对应于应用组 件的原始模型(200-T1)的原始DOM组件(300-T1),以产生与所述应用组 件的修改模型(200-T2)对应的修改的DOM组件(300-T2),其中,服务器 控制器(101-1)将在服务器(901)上存储的原始模型(200-T1)改为修改 的模型(200-T2);并且服务器(901)的服务器呈现器(101-2)产生与在原 始模型(200-T1)和修改的模型(200-T2)间的差对应的至少一个浏览器增 量(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)在接收到复位请求时复位原始的 DOM组件(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)的原始DOM组件(300-T1),以产生对应 于修改的模型(200-T2)的修改的DOM组件(300-T2)。
16.一种用于处理在计算机系统(999)上的客户机(900)上的增量数 据的方法(500),包括步骤:
从客户机控制器(100-2)向在计算机系统(999)中的服务器(901)的 服务器控制器(101-1)发送(510)修改请求;
通过客户机组合器(100-1)从服务器(901)接收(520)至少一个浏览 器增量(300-I)来作为对于修改请求的响应;
使用所述至少一个浏览器增量(300-I)来更新对应于应用组件的原始模 型(200-T1)的原始DOM组件(300-T1),以产生与所述应用组件的修改模 型(200-T2)对应的修改的DOM组件(300-T2),其中,服务器控制器(101-1) 将在服务器(901)上存储的原始模型(200-T1)改为修改的模型(200-T2); 并且服务器(901)的服务器呈现器(101-2)产生与在原始模型(200-T1) 和修改的模型(200-T2)间的差对应的至少一个浏览器增量(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.一种计算机程序产品(101),包括这样的指令,所述指令当被安装 到服务器(901)的存储器(921)中时使得服务器(901)的至少一个处理器 (911)执行权利要求15的步骤。
21.一种计算机程序产品(100),包括这样的指令,所述指令当被安装 到客户机(900)的存储器(920)中时使得服务器(900)的至少一个处理器 (910)执行权利要求16-19的任何一个的步骤。
22.一种用于处理增量数据的计算机系统(999),包括:
客户机控制器(100-2),用于产生修改请求;
服务器控制器(101-1),用于作为修改请求的响应而修改(703)在服务 器(901)上的应用组件的模型(200-Tn);
服务器呈现器(101-2),用于在已经修改(703)了模型(200-Tn)后产 生至少一个浏览器增量(300-I);以及
客户机组合器(100-1),用于从服务器(901)接收所述至少一个浏览器 增量(300-I),并且使用所述至少一个浏览器增量(300-I)来更新浏览器组 件的一个实例,其中,所述浏览器组件对应于所述应用组件。

说明书全文

技术领域

发明一般地涉及电子数据处理,具体涉及用于客户机-服务器通信的方 法、计算机程序产品和系统。

背景技术

使用诸如微软的Internet Explorer之类的传统万维网浏览器用户可以访问 一些软件应用。通常,这样的应用提供了多个页面。一个页面包括图形用户 界面(GUI)的相关信息,通过所述GUI,用户可以与所述应用交互。所述 页面可以包括多个组件。所述页面通常在服务器上被产生,然后被发送到客 户机。在客户机,所述页面由浏览器向用户显现。当用户经由GUI与客户机 交互以刷新页面时,重复整个处理。用于上述流程的一般可接受的程序设计 模式被称为MVC(模型-视图-控制器)设计模式。封装了用于查看和操纵的 应用数据的模型被所述控制器操纵,并且被呈现为视图。所述视图对应于包 括与浏览器兼容的内容的页面。每个模型可以有多个视图和控制器。例如, 一个视图可以用于显现作为表格的模型数据,而另一个视图可以用于显现作 为饼图的同一数据。所有这些都是在服务器上进行的,并且完整的视图被随 后发送到客户机。因此,MVC设计模式需要使能在客户机和服务器之间的通 信的计算机网络的高带宽和多个CPU周期,因为在服务器上再生整个页面(布 局信息和数据),并且通过网络从服务器向客户机重新发送结果产生的视图。 而且,使得用户面对诸如等待时间和屏幕闪烁之类的不期望的效果,直到刷 新的页面被最后提供在客户机上。
诸如微软的Internet Explorer IE 6.0之类的传统浏览器包括无闪烁呈现的 特征。当客户机接收到修改的页面时,浏览器识别所述页面的修改部分,并 且例如通过向页面的文件对象模型(DOM)中进行动态HTML插入来仅仅替 换这些部分而不是整个页面。这导致为用户减少屏幕闪烁,但是仍然为页面 产生而消耗了CPU时间(CPU周期),并且还需要从服务器向客户机发送所 述整个页面的带宽。而且,每个用户与客户机的交互要求一个服务器往返行 程,因此由于页面产生和发送而引起高服务器负荷。
越来越需要减少在客户机-服务器通信中的CPU时间消耗和带宽需要, 并且同时减少用户的不期望效果。

发明内容

因此,本发明的目的是提供用于当刷新页面时降低在客户机-服务器通信 中的带宽需要的方法、计算机程序产品和计算机系统
为了实现这个目的,在本发明的一个实施例中,按照权利要求1的用于 处理增量数据的计算机系统提供了下述特征:
a)在服务器上的服务器控制器接收客户的修改请求,并且响应于所述修 改请求而将在服务器上存储的应用组件的原始模型修改为所述应用组件的修 改模型;
b)服务器呈现器产生对应于在原始模型和修改模型之间的差别的至少一 个浏览器增量;
c)客户机组合器从服务器接收至少一个浏览器增量,并且使用所述至少 一个浏览器增量来在客户机更新原始DOM组件。原始DOM组件对应于原始 模型,并且所述更新导致对应于修改模型的修改DOM组件;
d)通过客户机控制器来产生修改请求。
本发明的其他实施例是按照权利要求10的服务器、按照权利要求11的 客户机、按照权利要求15的服务器端方法、按照权利要求16的客户机端方 法、按照权利要求20的服务器端计算机程序产品和按照权利要求21的客户 机端计算机程序产品。
当与现有技术的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代码示例:

   idnode
   parentparentContainer
   classSPNode
   positionX0
   positionY0
   Width82
   Height25
   …
   contentTypeHTML
   content                                       content>
   …


  SPFramework.registerComponent(′node′,′SPNode′)

编码块的表格部分包括通过例如函数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示例可以包括下列 声明
node label

标识符′/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的 对应节点来由此更新803 DOM 100-9。
在本发明的另一个实施例中,所述描述可以从服务器控制器101-1发送 到702客户机控制器100-2,客户机控制器100-2然后指令702′客户机组合器 100-1由此更新803 DOM 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。
相关专利内容
标题 发布/更新时间 阅读量
一种环保修改液 2020-05-12 539
修改比特流 2020-05-12 133
修改比特流 2020-05-12 695
一种面型修改油 2020-05-13 503
OCT图像修改 2020-05-12 308
百叶修改器 2020-05-12 789
修改带 2020-05-11 1030
路线修改 2020-05-11 239
一种修改器 2020-05-12 120
修改笔 2020-05-11 82
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈