CN1255735C - 减少基于网络的应用中的服务器交互次数的方法和设备 - Google Patents
减少基于网络的应用中的服务器交互次数的方法和设备 Download PDFInfo
- Publication number
- CN1255735C CN1255735C CNB011032405A CN01103240A CN1255735C CN 1255735 C CN1255735 C CN 1255735C CN B011032405 A CNB011032405 A CN B011032405A CN 01103240 A CN01103240 A CN 01103240A CN 1255735 C CN1255735 C CN 1255735C
- Authority
- CN
- China
- Prior art keywords
- application
- server
- client
- relevant
- view
- 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 - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
依据本发明的双MVC(模型-视图-控制器)法,客户机机器保持“模型”的一部分,从而消除许多至服务器的往返。本发明提供一种实现方法,用于在客户机的浏览器软件中含有的允许本地对它刷新的帧(多个帧)。通过规定一个使编程人员可用来构建客户机机器上的“视图”和“控制器”的函数库,本发明解决开发和维护问题。当在客户机上保持“模型”的一部分时,客户机具有响应用户交互的能力,不必付出由于不停地和服务器交互而造成的性能代价。
Description
技术领域
本发明涉及基于网络的客户机/服务器应用,并且更具体地涉及一些利用双模型-视图-控制器(dual-Model-View-Controller)法减少基于万维网的应用中的服务器交互次数的方法和设备。
背景技术
典型万维网(例如因特网/内联网)应用允许用户访问和更新远程服务器上的数据。远程服务器含有主应用数据,而客户机显示该数据的视图。这种应用的例予包括求助桌面、人寿保险认购、健康保险的医学过程的预先鉴定和自动提款机。
历史上(大约70年代),各种应用是在大型主机系统(服务器)上执行的,客户机通过“哑终端”如电传机、DECVTl00、IBM327x系列终端等和大型主机系统连接。在这些体系结构中,在客户机侧完成非常少的处理。随后(大约1980年),由于硬件变得更便宜,在所谓的“胖客户机”体系结构中把一些处理移到客户机侧硬件上。胖客户机保持一些应用状态,使一些处理在本地出现,从而消除至服务器的往返。
可以通过MVC(模型-视图-控制器)范式说明胖客户机应用。MVC范式,例如在G.E.Krasner和S.T.Pope的“在SmallTalk-80中使用模型-视图-控制器用户接口范式的说明书”中有所描述,该文章见1988年8/9月的Journal of Object-OrientedProgramming,1(3):26-49,该文章被收录为本文的参考资料。在该范式中,“模型”包含数据、规则以及影响数据的算法。“视图”是应用选择显示的模型的子集的屏幕或窗口表示。“控制器”是处理用户请求,例如按按钮的逻辑。“控制器”使“模型”改变和/或使“视图”刷新。
胖客户机应用可能在服务器上保持“模型”和“控制器”,但决不在服务器上保持“视图”或“视图生成逻辑(VGL)”。而“视图”和“VGL”是仅由胖客户机保持的。
尽管胖客户机应用提供改进的响应时间,但客户机软件和数据库的分发及保持是有问题的。用户趋于定制他们的客户机系统,这造成难以开发出一个会在所有系统上都良好工作的客户机侧软件库。另外,当需要更新客户机软件时,公司必须盘算如何更新现场中的所有客户机。
小应用程序(参见,http://java.sun.com/applets/index,html,)是胖客户机体系结构的一种实现。当用户启动应用时或在运行应用中,服务器把应用的一部分下载到客户机机器上以便在本地执行。由于减少了到服务器的往返,这改进了性能。然而,当第一次调用小应用时必须把它下载到客户机,实际上这可能消耗相当长的时间。另外,在实际中,web浏览器通常支持不同级别的Java虚拟机(JVM)。由于小应用是由JVM解释的,JVM间的差异造成不同浏览器上,甚至同一浏览器上的不同版本上小应用程序的不相容运行。
新近(大约1994年),万维网的进展和普及导致所谓“瘦客户机”应用体系结构。在这种体系结构中,大多数应用逻辑再次在服务器上执行,在客户机侧Web浏览器软件内只执行浏览器显示逻辑,即独立于应用的显示逻辑。这里浏览器是客户程序并且显示“视图”。用户每次和“视图”交互时,远程服务器被告知以便更新“视图”和/或“模型”。
Web上的另一种客户机服务器交互实现,采用动态超文本标记语言(DHTML)。例如在D.Goodman的“动态HTML最终参考”,O′Reilly,1998年,中说明DHTML,其公开被收录为本文参考资料。DHTML是HTML(超文本标记语言)的超集,HTML包括JavaScript和CascadingStyleSheet(CSS,级联式样式表)。JavaScript可用于实现和小应用程序相同的大部分功能,并且实际上在浏览器之间更可移植并且下载得更快。
虽然胖客户机体系结构提供最好的灵活性和性能,但是它们的维护以及分发问题再加上web的普及,导致许多应用开发者为新应用采纳瘦客户机体系结构。该体系结构的一个问题是在再次导致性能下降的服务器交互期间、网络通信延迟。
从而,需要一种用于因特网/内联网应用的不需要在客户机和服务器之间的持续网络通信的新型“模型-视图-控制器”体系结构。
发明内容
本发明提供了一种在客户机/服务器系统中使用的、用于减少在客户机和服务器之间的交互的方法,这种交互与该客户机访问该服务器处的应用相关,该方法包括步骤:配置该服务器,以存储与该应用相关的模型和保持与该应用相关的视图生成及控制器逻辑;以及配置该客户机,以存储与该应用相关的该模型的至少一个子集和执行与该应用相关的该视图生成及控制器逻辑的至少一个子集,其中在该客户机处在不必一定和该服务器交互的情况下执行该应用的一个或多个部分。
本发明提供了一种基于网络的系统,包括:一个服务器,具有至少一个处理器和一个存储器,其中所述存储器存储一个和涉及该服务器的一个应用相关的模型,所述处理器执行与该应用相关的视图生成及控制器逻辑;以及一个通过网络和该服务器连接的客户机,具有至少一个处理器和一个存储器,所述存储器存储与应用相关的该模型的至少一个子集,所述处理器执行与该应用相关的该视图生成及控制器逻辑的至少一个子集,其中在不必一定和该服务器交互的情况下,在该客户机上执行该应用的一个或多个部分,从而减少客户机和服务器之间的交互。
本发明和web应用有关,并且更具体地和一种改进性能并且减轻开发及维护工作的体系结构和编程方法有关。本发明通过双MVC法解决性能问题,在该双MVC法中,应用的“模型-视图-控制器”的一个子集驻留在客户机上,而完整的“模型-视图-控制器”以及“视图生成逻辑”驻留在服务器上,从而减少所需的服务器交互次数。和胖客户机体系结构相反,本发明不需要在客户机上安装或住留应用。
更准确地说,传统胖客户机实现,要求用户(或管理员)在客户机机器上物理地安装客户软件,并且该应用会需要长期地使用客户机机器上的永久存储器(即盘空间)。例如,按照一个肥客户应用,研究周知的称为“TurboTax”的纳税准备辅助软件。需要CDROM以运行安装过程。在安装后,该程序把适当的盘空间量,用于它自己的程序/数据文件和用于用户的纳税申报单。有时,例如在电子填写纳税申报单过程中,“TurboTax”作为一个(粗)客户机和远程服务器交互。
由于小应用程序被自动下装并且不长期使用盘空间,故小应用程序法避免了胖客户机的一些问题。但是,下装小应用程序可能花费长时间,并且实际上难以编写那种在每个客户机上都正确运行的小应用程序。
本发明的双MVC法避免了安装问题和盘空间问题,因为在客户部件用户提出要求时更好地从服务器下装与该应用的MVC相关的客户机侧代码,从而避免了安装过程,并且因为更好地不对客户机的盘持久地保存这些代码。双MVC法还避免了和小应用程序相关的问题,因为依据本发明下装的MVC码物理上小于小应用程序,从而下装更快。另外,本发明的双MVC法更好地利用HTML和JavaScript构建,而后二者实际上比小应用程序更能在不同的浏览器间移植。
具体地,依据本发明的独特效MVC法,客户机机器保持“模型”的一部分,从而消除许多至服务器的往返。本发明提供一种实现法,用于构建在客户机的浏览器软件中含有的允许本地对它刷新的帧(多个帧)。通过规定一个使编程人员可用来构建客户机机器上的“视图”和“控制器”的函数库,本发明解决开发和维护问题。当在客户机上保持“模型,的一部分时,客户机具有响应用户交互的能力,不必付出不停地和服务器交互造成的性能代价。
应理解本文中使用的术语“帧”具有和在HTML中相类似的用途。web浏览器典型地在客户机的屏幕上显示一个或多个窗口。每个窗口可能对应于一个HTML帧,或者可能替代地对应于一个HTML“帧组”。
一个帧组包括一个或多个帧,这些帧类似于帧组窗口内的各子窗口。
本发明规定一种构建基于浏览器的客户机的方式,从而传统MVC交互是可能的。客户机的浏览器屏幕可分成多个帧。在客户机上运行着web浏览器的情况下,该web浏览器包含一个HTML帧组。在逻辑驻留处可能存在一个或多个用户与之交互的可见帧以及一些“不可见”的帧。对于“不可见”的帧,我们的意思是把这些帧的高度和宽度的值置成非常小,从而看起来它们不占据任何屏幕区域。可见帧明显占据一定的屏幕区域。不可见帧含有应用逻辑并且该逻辑重写可见帧。应理解,一个应用可能建立其它的窗口或帧组以及/或者在一个与某帧组对应的窗口内具有其它的帧。若没有本发明,则试图更新它的“视图”的客户机侧应用会因盖写它自己的“控制器”逻辑以及“模型”数据而破坏自己。
应理解本文中使用的术语“逻辑”指的是程序码,最好是客户机侧的JavaScript下的程序码,尽管也可以是在Java、VBScript、C++、C或浏览器支持的任何其它编程语言下的程序码。
本发明还规定一种对这种类型的web应用编程的方式。只使用双MVC和多个帧的编程人员,需要生成他们的“视图”生成逻辑内的HTML。这要求编程人员同时在二个不同的域内思索:即用于“视图”生成逻辑、“模型”和“控制器”的JavaScript以及用于“视图”本身的HTML。取决于要设计的应用,这可能是一项复杂的、乏味的和易出错的任务。为了基本上消除这种情况,本发明规定一个能用JavaScript编写HTML的函数库。编程人员可利用这些函数而不是必须编写复杂的HTML/JavaScript来实现应用。这类似于编程人员利用JavaSwing库来编写用户接口。
附图说明
通过连带着各附图一起阅读的下述各示意实施例的详细说明,本发明的这些以及其它目的、特点和优点将变为清楚。
图1是一个方块图,说明适用于采用本发明的示例客户机服务器系统;
图2是一个方块图,说明常规瘦客户机体系结构;
图3是一个方块图,说明依据本发明的一个实施例的双MVC体系结构;
图4说明和一示例应用相关的初始显示屏幕;
图5说明和一示例应用相关的第二显示屏幕;
图6是一个流程图,说明常规瘦客户机体系结构的应用流程;
图7是一个流程图,说明依据本发明的一个实施例的双MVC体系结构的应用流程;
图8是一个方块图,说明依据本发明的一个实施例的用于双MVC法的客户机侧帧组体系结构;
图9A至9C描述码段,以说明利用本发明的一个实施例的库帧的一个样本应用;以及
图10是一个方块图,说明适宜于实现本发明的双MVC法的客户机计算机系统和/或服务器计算机系统的硬件实现。
具体实施方式
下述描述将利用一个示例的基于web的客户机/服务器系统说明本发明。然而,应理解,本发明不限定于和任何特定的客户机/服务器系统一起使用。代之以,本发明更通用地可应用于任何其中在执行一个或多个和服务器相关的应用时需要明显地减少客户机部分上的服务器交互的基于网络的客户机/服务器系统。
图1是一个方块图,说明一个适用于采用本发明的示例客户机/服务器系统。该系统包括一个客户机计算机系统,后者配置成运行web浏览器软件1000。应理解可使用任何适当的web浏览器软件并且本发明的方法不限定于任何特定的web浏览器软件。另外,如图1的客户机/服务器系统中所示,web浏览器1000在网络3000上和web服务器5000通信。网络3000可采用超文本传输协议(HTTP),如技术上周知并如根据万维网实现那样,然而,也可采用其它适当的协议和网络。例如,可替代地通过专用网、区域网或某其它适用网络连接客户机和服务器。
可理解,按图1中说明的这种客户机/服务器系统的一个例子可以设置成:其中某个人计算机或工作站(客户机)处的用户,根据装到该客户机机器上的并在其上运行的web浏览器软件,访问和该HTTP网络上某具体服务器相关的某特定应用(例如,求助桌面,人寿保险认购、健康保险的医学过程的预先鉴定和自动提款机)。
图2示出可在web浏览器1000和服务器5000中实现的常规瘦客户机体系结构。在该体系结构中,该应用的“视图”生成逻辑5400、“模型”5600和“控制器”5800全部驻留在服务器5000上。该客户机的浏览器包含用户交互窗口1200。
与此相对比,现参照图3,图中示出一个说明依据本发明的一实施例的双MVC体系结构的方块图。在该体系结构中,web服务器5000包括模型-视图-控制器各组件,其中包含服务器侧“视图”生成逻辑5400、服务器侧“模型’数据5600和服务器侧“控制器”逻辑5800。web浏览器(客户机)1000包括用户交互窗口1200、客户机侧“视图”生成逻辑1400、客户机侧“模型”数据1600以及客户机侧“控制器”逻辑1800。最好在该客户机请求使用该服务器处的该应用时,把这些MVC组件从该服务器下装到该客户机。在客户机和服务器都含有MVC组件的情况下,我们把该法称为双MVC。
由于消除了许多和服务器的交互,我们的发明的主要优点是大大改进应用中的响应时间。为了证实可达到的性能改进,现说明一个求助桌面应用。根据这样的求助桌面应用,计算机用户(即顾客)可能在他/她的计算机中存在问题并且要求技术支持。提出求助(即咨询)的人具有一个记录有关该顾客以及其问题的信息的web应用。换言之,求助桌面咨询处于基于web的用户接口的前面,并且利用该接口和求助桌面服务器通信以便记录和跟踪顾客在请求咨询期间报告的问题。在这个例子中,把带有用于求助桌面咨询的用户接口的计算机系统看成是客户机。具体地,该咨询利用该客户机上运行的web浏览器1000(图3)访问求助桌面服务器。该求助桌面服务器是服务器5000(图3)。图4示出该咨询的初始屏幕,其对应于图3的用户交互窗口1200。取决于选用的操作系统,对该屏幕添加一个新表以收集有关该顾客的计算机的操作专用的信息。在图5中示出带有该新表的第二屏幕。
我们首先说明利用如图2中示出的常规瘦客户机体系结构实现的应用流程。图6示出用于常规瘦客户机体系结构的通用应用流程。在步骤2000,web浏览器1000利用网络3000请求来自web服务器5000的初始页面。在步骤2010,web服务器用该初始页面回答,并且在步骤2020,该web浏览器在用户交互窗口1200显示该页面。在步骤2030,用户通过把数据输入到该窗口中而和所显示的页面交互,并且在步骤2040,该web浏览器把数据传回到该web服务器。在步骤2050中,服务器侧控制器5800更新服务器侧模型5600,并且在步骤2060,服务器侧视图生成逻辑5400生成新页面。接着在步骤2070,该web服务器把该新页面发送给该web浏览器,接着该流程从步骤2020重复。
现在,再次参照根据图4和图5说明的并且采用常规瘦客户机体系结构的求助桌面例子,应出现下述步骤:
(1)咨询向顾客要求标识(ID)并输入到视图中。浏览器向服务器发送ID。
(2)服务器验证ID并发回HTML,以通过添加顾客姓名和电话号码刷新屏幕。
(3)咨询向顾客要求并在视图上输入操作系统(例如NT)。浏览器向服务器发送包着操作系统类型的屏幕信息。
(4)服务器发回HTML,以通过添加操作系统专用表刷新屏幕。
(5)咨询向顾客要求并在视图上输入操作系统专用信息,例如主机浏览器向服务器发送包含主机名的屏幕信息。
(6)服务器查找并回送和该主机名对应的IP地址。
(7)咨询在“添加另一个问题”按钮上点击。浏览器向服务器发送包含添加的问题请求的屏幕信息。
(8)服务器发送带有老问题行和空白其它问题行的屏幕。
(9)咨询和顾客进行类似对话以输入第二个问题。咨询按下“保存”。浏览器向服务器发送包含保存请求的屏幕信息。
(10)服务器保存问题报告。
从而,输入n个问题报告不利地需要在web浏览器和web服务器之间的3n+1次往返交互。
当如根据本发明的双MVC法那样在客户机上存储“模型”的一个子集时,可以免除和服务器的一些交互,从而提供更好的性能。例如,若姓名、ID、电话号码、操作系统、操作系统专用信息以及备注位于客户机的模型中,即存储在客户机上,则:(i)可通过添加一个空行刷新屏幕;以及(ii)可在不必到服务器的情况下通过添加适当的操作系统表刷新屏幕。
图7示出用于依据本发明的如图3中示出的实施例的双MVC体系结构的通用应用流程。在步骤6000,web浏览器1000利用网络3000从web浏览器5000请求初始页面。在步骤6010web服务器用该初始页面回答,并且在步骤6020中web浏览器在用户交互窗口1200中显示该页面。在步骤6030,用户通过在该窗口中输入数据而和该显示的页面交互。在步骤6040,执行客户机侧控制器逻辑1800,并在步骤6050判定是否需要服务器交互。若需要服务器交互,则web浏览器在步骤6080把数据回送到web服务器。在步骤6090,服务器侧控制器5800更新服务器侧模型5600,并且服务器侧视图生成逻辑5400在步骤6100生成新页面。接着web服务器在步骤6110把该新页面发送到web浏览器,并且从步骤6020重复流程。
替代地,若客户机侧逻辑决定不需要服务器交互,则在步骤6060更新客户机侧模型1600以反映用户的输入。接着,在步骤6070,执行客户机侧视图生成逻辑1400并生成新页面。返回到步骤6020后,在用户交互窗口1200中显示该页面。接着从步骤6020重复应用流程。
假定在客户机侧模型中包含姓名、ID、电话号码、操作系统、操作系统专用信息以及备注,可以有利地不和服务器交互地生成图5的显示。这样,利用本发明的双MVC法,输入n个问题报告需要在web浏览器和web服务器之间的n+2次往返交互。用于改进性能的替代方法常常涉及牺牲。例如,若性能是关键性的,并且客户机机器上的空间量足够大,则可对客户机复制更多数据。另外,若在客户机上存储主机名和它们的对应IP地址的一个列表,则还可跳过那种到服务器上去得到给定主机名的IP地址的往返。如果这样做,则往返交互的数量会减到二次。若在客户机上存储顾客ID和对应的姓名及电话号码的列表,则这会消除调用服务器以便检查顾客ID和回送姓名及电话号码的需要。除最后的保存(一次交互)外,所有处理都可在客户机侧上完成。
参照图8,其中示出用于依据本发明的一实施例的双MVC法的客户机侧帧组体系结构,具体地,我们规定一种用于客户机浏览器的说明性格式以便实现本发明的双MVC法。客户机的浏览器屏幕1000被划分成多个帧。可能存在一个或多个组成用户交互窗口1200的可见帧、一个不可见库帧1250、以及一个驻留着对屏幕进行写的模型和逻辑的不可见应用专用帧1300。该库帧和该应用专用帧也可在多个帧上实现。
在任何情况中,库帧1250包括视图生成逻辑1260、客户机侧模型1270和控制器逻辑1280,它们中的每个都独立于应用。应用专用帧1300包含视图生成逻辑1400、客户机侧模型1600和控制器逻辑1800,它们中的每个都专用于该应用。
本发明提供一个库,它存储在不可见帧之一中。该库允许开发人员以调用对编写HTML负责的各函数的方法,对客户机的模型、视图和控制器编程。该编程是非常复杂和乏味的。借助该库,开发人员的工作大为简化。
应用帧1300提供一个用于客户机侧逻辑的稳定定位点。由于本发明通过重写可见帧(组)工作,故可见帧本身不包含控制器/视图逻辑以及模型数据,否则的话在重写过程期间会破坏逻辑和数据。
库帧120提供用于生成可见帧中的视图的一个应用编程接口(APl)和工具。APl允许程序员规定根据可见成分的布局,其中每个成分具有控制器特征,例如,正文值、颜色。库中各成分的工具把适当信息写到可见帧(例如HTML)中以生成所描述的可见布局。库帧还含有一个和应用无关的客户机侧模型函数1270,例如,高速缓存操作和数据移动操作。最后,该库帧含有和应用无关的控制器逻辑1280,例如,一般用户接口事件处理。
在一优选实施例中,应用编程人员利用JavaScript对专用于应用的帧模型和控制器逻辑编码,并通过调用库API生成视图。从模型设置视图的特征,并且当通过控制器逻辑指示这样做时,视图把自己译成可见帧。
现参照图9A至9C,其中示出码段以说明利用库帧1250中的各成分的一个样本应用。该应用定义一个筒单“模型”(一个计数器值)以及一些库帧成分,即:(i)LFrame,一个代表一个浏览器窗口的成分;(ii)LForm,一个代表窗口中用户输入格式的成分;(iii)LText,一个代表格式中的一个正文输入字段的成分;(iV)LButton,一个代表用户可在上点击的一个按钮的成分;以及(v)LStatieText,一个代表屏幕上的一个正文标号的成分。这些成分中的每一个是用库帧1250中的代码实现的。当出现某些用户输入事件时,例如改变正文字段或按按钮时,应用专用帧1300调用库帧1250以建立回叫该应用专用帧1300的各成分。
在处理这些事件期间,专用专用帧1300中的事件处理程序可能调用由库帧1250实现的各成分以修改它们的特征来作为用户交互的接口。当然,应理解图9A至9C中示出的码样本在性质上是示范性的,并且在给出本文的发明原理下,本领域内普通技术人员可实践实现库帧的各种不同的其它方式。
从而,如已解释的那样,本发明提供一种双MVC设置(客户机侧MVC和服务器侧MVC),并提供一种利用不带有小应用程序的标准浏览器实现这二个MVC的方式。本发明通过把交互窗口1200分解成和应用逻辑(1400,1800)以及模型1600分离的帧,使得客户机侧MVC成为可能。
另外,本发明提供一个客户机侧应用编程接口(APl),供应用开发人员在实现双MVC应用时使用。利用可在JavaScript下实现的该API简便了应用的编写。
而且,本发明保证把和应用无关的码包装到称为库帧1250的一个分离帧中。在一优选实施例中,该库帧包含独立于应用的视图生成逻辑和独立于应用的控制器逻辑,并且可能包含一个独立于应用的模型。例如,它包含生成屏幕上的一个按钮、接收通过鼠标点击该按钮产生的事件的逻辑,但是不知道:把该按钮放在何处、对它设置什么标号,或者当点击该按钮时会采取什么样的专用于应用的控制器的动作。这是由应用专用帧1300中的各应用专用成分规定的。库帧的优点是每次浏览器会话只需要下装库帧一次,因为只有发生软件更新时(例如,几周或几个月)它才改变。从而浏览器可为持续的时间而高速缓存该库帧。相反,实际上每次用户交互都要舍弃/重写交互窗口1200,并且每次服务器交互要重装应用专用帧1300。如果把库帧中的码移到应用专用帧1300,则每次服务器交互时都需要重装它,这会浪费通信带宽并造成附加的响应时间延迟。
现参照图10,所示出的方块图说明适用于实现本发明的双MVC方法的客户机计算机系统和/或服务器计算机系统的硬件实现。如所示,客户机系统和服务器系统都可以按照处理器9000、存储器9010和I/O部件9020实现。应理解,本文中使用的术语“处理器”意图是包括任何处理部件,例如包括CPU(中央处理机)和/或其它处理电路的处理器。本文中使用的术语“存储器”意图是包括和处理器或CPU相关的存储器,例如RAM、ROM、固定存储器部件(例如硬盘机)、可动存储器部件(例如软盘)、闪速存储器等。另外,本文中使用的术语“输入/输出部件”或“I/O部件”意图是包括例如一个或多个输入部件如用于对处理单元输入数据的键盘,和/或者一个或多个输出部件如用来展示和处理单元相关的结果的CRT显示器和/或打印机。还应理解,术语“处理器’可能指的是多于一个的处理部件,并且和一个处理部件相关的各个组件可能被另一个处理部件共享。从而,包括用来实现本发明的方法的指令和代码的软件成分,可存储在一个或多个相关的存储器部件(例如,ROM、固定或可动存储器)中,并且当准备好供使用时部分地或全部地由CPU装入(例如RAM中)并执行。例如,如图3中所示的与客户机和服务器相关的各个“模型”、“视图”和“控制器”逻辑,可以根据图10中描绘的硬件体系结构实现。
虽然本文参照各附图说明了本发明的各示例实施例,但应理解本发明不受限于这些具体实施例,并且在不背离本发明的范围和实质下本领域内普通技术人员可施以各种其它改变和修改。
Claims (24)
1.一种在客户机/服务器系统中使用的、用于减少在客户机和服务器之间的交互的方法,这种交互与该客户机访问该服务器处的应用相关,该方法包括步骤:
配置该服务器,以存储与该应用相关的模型和保持与该应用相关的视图生成及控制器逻辑;以及
配置该客户机,以存储与该应用相关的该模型的至少一个子集和执行与该应用相关的该视图生成及控制器逻辑的至少一个子集,其中在该客户机处在不必一定和该服务器交互的情况下执行该应用的一个或多个部分。
2.权利要求1的方法,其中客户机和服务器在超文本传输协议网络上通信。
3.权利要求1的方法,其中该客户机根据在其上运行的浏览器软件,执行该应用的一个或多个部分。
4.权利要求3的方法,其中该配置客户机的步骤还包括把和该浏览器软件相关的一个屏幕区域划分成帧组的步骤。
5.权利要求4的方法,其中与该应用相关的该模型、该视图生成逻辑以及该控制器逻辑的至少一个子集和至少一个帧相关,并且依据该应用显示的一个或多个视图和至少另一个帧相关。
6.权利要求5的方法,其中该至少一个视图帧是可见帧。
7.权利要求5的方法,其中与该模型、该视图生成逻辑和该控制逻辑的该至少一个于集相关的该至少一个帧不是可见帧。
8.权利要求4的方法,其中该配置客户机的步骤还包括建立至少一个与独立于应用的视图生成逻辑及控制器逻辑相关的帧。
9.权利要求8的方法,其中该至少一个的独立于应用的视图生成逻辑及控制器逻辑帧还具有一个与之相关的独立于应用的模型。
10.权利要求8的方法,其中该至少一个独立于应用的视图生成逻辑及控制器逻辑充当一个应用编程接口,用于开发根据该应用的要显示的各视图。
11.权利要求10的方法,其中根据超文本标记语言实现这些视图,并且根据JavaScript语言实现该应用编程接口。
12.权利要求1的方法,其中在请求时从该服务器把与该应用相关的该模型、该视图生成逻辑及该控制器逻辑相关的该至少一个子集下装到该客户机。
13.一种基于网络的系统,包括:
一个服务器,具有至少一个处理器和一个存储器,其中所述存储器存储一个和涉及该服务器的一个应用相关的模型,所述处理器执行与该应用相关的视图生成及控制器逻辑;以及
一个通过网络和该服务器连接的客户机,具有至少一个处理器和一个存储器,所述存储器存储与应用相关的该模型的至少一个子集,所述处理器执行与该应用相关的该视图生成及控制器逻辑的至少一个子集,其中在不必一定和该服务器交互的情况下,在该客户机上执行该应用的一个或多个部分,从而减少客户机和服务器之间的交互。
14.权利要求13的系统,其中该网络是超文本传输协议网络。
15.权利要求13的系统,其中该客户机根据在其上运行的浏览器软件,执行该应用的一个或多个部分。
16.权利要求15的系统,其中该客户机处理器还被运行成把和该浏览器软件相关的一个屏幕区域划分成帧组。
17.权利要求16的系统,其中与该应用相关的该模型、该视图生成逻辑以及该控制器逻辑的至少一个子集和至少一个帧相关,并且依据该应用来显示的一个或多个视图和至少另一个帧相关。
18.权利要求17的系统,其中该至少一个视图帧是可见帧。
19.权利要求17的系统,其中与该模型、该视图生成逻辑和该控制逻辑的该至少一个予集相关的该至少一个帧不是可见帧。
20.权利要求16的系统,其中该客户机处理器还被运行成建立至少一个与独立于应用的视图生成逻辑及控制器逻辑相关的帧。
21.权利要求20的系统,其中该至少一个独立于应用的视图生成逻辑及控制器逻辑帧还具有一个与之相关的独立于应用的模型。
22.权利要求20的系统,其中该至少一个独立于应用的视图生成逻辑及控制器逻辑充当一个应用编程接口,用于开发根据该应用的要显示的各视图。
23.权利要求22的系统,其中根据超文本标记语言实现这些视图,并且根据JavaScript语言实现该应用编程接口。
24.权利要求13的系统,其中在请求时从该服务器把与该应用相关的该模型、该视图生成及控制器逻辑相关的该至少一个子集下装到该客户机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/500,208 | 2000-02-08 | ||
US09/500,208 US7702719B1 (en) | 2000-02-08 | 2000-02-08 | Methods and apparatus for reducing the number of server interactions in network-based applications using a dual-MVC approach |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1308281A CN1308281A (zh) | 2001-08-15 |
CN1255735C true CN1255735C (zh) | 2006-05-10 |
Family
ID=23988475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011032405A Expired - Fee Related CN1255735C (zh) | 2000-02-08 | 2001-02-07 | 减少基于网络的应用中的服务器交互次数的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7702719B1 (zh) |
JP (1) | JP2001249895A (zh) |
CN (1) | CN1255735C (zh) |
TW (1) | TW503351B (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463912B2 (en) * | 2000-05-23 | 2013-06-11 | Media Farm, Inc. | Remote displays in mobile communication networks |
US9267144B2 (en) * | 2002-01-23 | 2016-02-23 | Monsanto Technology Llc | Plastid transformation of maize |
US7409674B2 (en) * | 2002-12-26 | 2008-08-05 | Research In Motion Limited | System and method of creating and communicating with component based wireless applications |
JP4437396B2 (ja) | 2003-11-20 | 2010-03-24 | 富士通株式会社 | 自動取引装置及び自動取引システム |
JP4425081B2 (ja) | 2004-07-15 | 2010-03-03 | 富士通株式会社 | 自動サービス装置及び自動サービスシステム |
US7418715B2 (en) * | 2005-04-08 | 2008-08-26 | Microsoft Corporation | System and method for producing and communicating requested data among networked application programs |
JP2009510570A (ja) * | 2005-09-26 | 2009-03-12 | コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ | ブラウザ・ウィンドウの制御方法 |
CN100444110C (zh) * | 2005-12-15 | 2008-12-17 | 英业达股份有限公司 | 接口显示系统及方法 |
US7967682B2 (en) | 2006-04-12 | 2011-06-28 | Bally Gaming, Inc. | Wireless gaming environment |
US9101820B2 (en) | 2006-11-09 | 2015-08-11 | Bally Gaming, Inc. | System, method and apparatus to produce decks for and operate games played with playing cards |
US9508218B2 (en) | 2006-11-10 | 2016-11-29 | Bally Gaming, Inc. | Gaming system download network architecture |
US8920233B2 (en) | 2006-11-10 | 2014-12-30 | Bally Gaming, Inc. | Assignment template and assignment bundle in a gaming configuration and download system |
US8784212B2 (en) | 2006-11-10 | 2014-07-22 | Bally Gaming, Inc. | Networked gaming environment employing different classes of gaming machines |
US8631501B2 (en) | 2006-11-10 | 2014-01-14 | Bally Gaming, Inc. | Reporting function in gaming system environment |
US9111078B2 (en) | 2006-11-10 | 2015-08-18 | Bally Gaming, Inc. | Package manager service in gaming system |
US8347280B2 (en) | 2006-11-13 | 2013-01-01 | Bally Gaming, Inc. | System and method for validating download or configuration assignment for an EGM or EGM collection |
US9082258B2 (en) | 2006-11-13 | 2015-07-14 | Bally Gaming, Inc. | Method and system for providing download and configuration job progress tracking and display via host user interface |
US8930461B2 (en) | 2006-11-13 | 2015-01-06 | Bally Gaming, Inc. | Download and configuration management engine for gaming system |
US7934191B2 (en) * | 2007-04-10 | 2011-04-26 | Sap Portals IL | Method and modules for generating client-server applications |
US8734245B2 (en) | 2007-11-02 | 2014-05-27 | Bally Gaming, Inc. | Game related systems, methods, and articles that combine virtual and physical elements |
US8616958B2 (en) * | 2007-11-12 | 2013-12-31 | Bally Gaming, Inc. | Discovery method and system for dynamically locating networked gaming components and resources |
US8721431B2 (en) | 2008-04-30 | 2014-05-13 | Bally Gaming, Inc. | Systems, methods, and devices for providing instances of a secondary game |
US9483911B2 (en) | 2008-04-30 | 2016-11-01 | Bally Gaming, Inc. | Information distribution in gaming networks |
US9005034B2 (en) | 2008-04-30 | 2015-04-14 | Bally Gaming, Inc. | Systems and methods for out-of-band gaming machine management |
US8856657B2 (en) | 2008-04-30 | 2014-10-07 | Bally Gaming, Inc. | User interface for managing network download and configuration tasks |
US9443377B2 (en) * | 2008-05-30 | 2016-09-13 | Bally Gaming, Inc. | Web pages for gaming devices |
WO2010006187A2 (en) * | 2008-07-11 | 2010-01-14 | Bally Gaming, Inc. | Integration gateway |
US8266213B2 (en) * | 2008-11-14 | 2012-09-11 | Bally Gaming, Inc. | Apparatus, method, and system to provide a multiple processor architecture for server-based gaming |
US8423790B2 (en) | 2008-11-18 | 2013-04-16 | Bally Gaming, Inc. | Module validation |
US20150205489A1 (en) | 2010-05-18 | 2015-07-23 | Google Inc. | Browser interface for installed applications |
US8793650B2 (en) | 2010-06-11 | 2014-07-29 | Microsoft Corporation | Dynamic web application notifications including task bar overlays |
US9164671B2 (en) * | 2010-06-11 | 2015-10-20 | Microsoft Technology Licensing, Llc | Web application navigation domains |
US8863001B2 (en) | 2010-06-11 | 2014-10-14 | Microsoft Corporation | Web application home button |
US20120042261A1 (en) * | 2010-08-12 | 2012-02-16 | Google Inc. | Sub-component instantiation and synchronization using a shared worker |
US8706803B1 (en) * | 2010-09-24 | 2014-04-22 | Imdb.Com, Inc. | Client-side generation of preliminary version of network page |
US9058716B2 (en) | 2011-06-06 | 2015-06-16 | Bally Gaming, Inc. | Remote game play in a wireless gaming environment |
US8856803B2 (en) | 2011-11-02 | 2014-10-07 | Oracle International Corporation | Content delivery within an application |
US8974305B2 (en) | 2012-01-18 | 2015-03-10 | Bally Gaming, Inc. | Network gaming architecture, gaming systems, and related methods |
US9120007B2 (en) | 2012-01-18 | 2015-09-01 | Bally Gaming, Inc. | Network gaming architecture, gaming systems, and related methods |
CN102830973A (zh) * | 2012-08-14 | 2012-12-19 | 无锡哲勤科技有限公司 | 海量数据下Web应用开发双层MVC的方法和分层结构 |
EP2911054A1 (de) | 2014-02-20 | 2015-08-26 | Siemens Aktiengesellschaft | System zur Verwaltung und Bearbeitung von Daten einer medizinischen Einrichtung |
WO2015124192A1 (de) * | 2014-02-20 | 2015-08-27 | Siemens Aktiengesellschaft | System zur anzeige und bearbeitung von daten einer medizinischen einrichtung |
US11630645B2 (en) * | 2014-09-13 | 2023-04-18 | Aaron Evans | System and method for managing and using data model |
US10712913B2 (en) * | 2014-10-20 | 2020-07-14 | Oracle International Corporation | Event-based architecture for expand-collapse operations |
CN106775775B (zh) * | 2017-01-24 | 2023-07-14 | 深圳市启仑智能科技有限公司 | 一种基于OpenResty的高性能MVC框架 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838906A (en) * | 1994-10-17 | 1998-11-17 | The Regents Of The University Of California | Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document |
US5572643A (en) * | 1995-10-19 | 1996-11-05 | Judson; David H. | Web browser with dynamic display of information objects during linking |
US6437803B1 (en) * | 1998-05-29 | 2002-08-20 | Citrix Systems, Inc. | System and method for combining local and remote windows into a single desktop environment |
US5768510A (en) * | 1996-07-01 | 1998-06-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server application enabler system |
US6272556B1 (en) * | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for migrating a client-server application (#5) |
US5999728A (en) | 1996-07-30 | 1999-12-07 | Sun Microsystems, Inc. | Method and apparatus for enhancing the portability of an object oriented interface among multiple platforms |
DE19651270C2 (de) * | 1996-12-10 | 2001-10-04 | Siemens Ag | Vorrichtung und Verfahren zum Bedienen eines Gerätes |
US6393569B1 (en) * | 1996-12-18 | 2002-05-21 | Alexander S. Orenshteyn | Secured system for accessing application services from a remote station |
US6003047A (en) * | 1996-12-30 | 1999-12-14 | Emc Corporation | Non-hierarchical application interface for HTML-based network storage management programs |
JPH10207805A (ja) | 1997-01-27 | 1998-08-07 | Nec Corp | Wwwサーバ・wwwブラウザ・システム |
GB2324175B (en) | 1997-04-10 | 2002-07-31 | Ibm | Personal conferencing system |
JPH10320390A (ja) | 1997-05-16 | 1998-12-04 | Hitachi Ltd | 文書の自己再生産に基づくビュー変更法 |
US6496202B1 (en) * | 1997-06-30 | 2002-12-17 | Sun Microsystems, Inc. | Method and apparatus for generating a graphical user interface |
JPH1131145A (ja) | 1997-07-14 | 1999-02-02 | Hitachi Ltd | 文書の自己再生産にもとづくビュー変更法 |
JP3606007B2 (ja) | 1997-07-14 | 2005-01-05 | 三菱電機株式会社 | ウェブ・ブラウザを介したデータ提示システム |
US6035332A (en) * | 1997-10-06 | 2000-03-07 | Ncr Corporation | Method for monitoring user interactions with web pages from web server using data and command lists for maintaining information visited and issued by participants |
US5926177A (en) * | 1997-10-17 | 1999-07-20 | International Business Machines Corporation | Providing multiple views in a model-view-controller architecture |
JPH11338888A (ja) | 1998-03-24 | 1999-12-10 | Wahei Umesato | 広域情報システムに於ける情報検索方法、及び同方法のプログラム情報が格納された記憶媒体、広域情報検索システム |
US6161136A (en) * | 1998-10-16 | 2000-12-12 | Nortel Networks Limited | High performance user interface and method of structuring same |
US6505246B1 (en) * | 1998-12-30 | 2003-01-07 | Candle Distributed Solutions, Inc. | User interface for system management applications |
US6356933B2 (en) * | 1999-09-07 | 2002-03-12 | Citrix Systems, Inc. | Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language |
US6968534B1 (en) * | 1999-09-29 | 2005-11-22 | Kabushiki Kaisha Toshiba | Method for constructing service providing system |
US6950850B1 (en) * | 2000-10-31 | 2005-09-27 | International Business Machines Corporation | System and method for dynamic runtime partitioning of model-view-controller applications |
-
2000
- 2000-02-08 US US09/500,208 patent/US7702719B1/en not_active Expired - Lifetime
-
2001
- 2001-02-01 JP JP2001025932A patent/JP2001249895A/ja active Pending
- 2001-02-05 TW TW090102361A patent/TW503351B/zh not_active IP Right Cessation
- 2001-02-07 CN CNB011032405A patent/CN1255735C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1308281A (zh) | 2001-08-15 |
US7702719B1 (en) | 2010-04-20 |
JP2001249895A (ja) | 2001-09-14 |
TW503351B (en) | 2002-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1255735C (zh) | 减少基于网络的应用中的服务器交互次数的方法和设备 | |
AU2008206688B9 (en) | Method and system for creating IT-oriented server-based web applications | |
JP6272933B2 (ja) | 遠隔ブラウジングセッション管理 | |
US5594910A (en) | Interactive computer network and method of operation | |
CA2304608C (en) | A method for extending the hypertext markup language (html) to support enterprise application data binding | |
CN103782294B (zh) | 远程浏览会话管理 | |
CN1244217C (zh) | 跟踪客户端与网络资源交互并创建客户端配置和资源数据库的方法 | |
US6519605B1 (en) | Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls | |
CN1234088C (zh) | 跟踪web用户会话的方法和系统 | |
TW413764B (en) | Method for generating display control information and computer | |
US20030163372A1 (en) | Delivering content and advertisement | |
US20050187978A1 (en) | System and method for portal rendering | |
US20040261032A1 (en) | Graphical user interface navigation method | |
CN1809068A (zh) | Web应用程序架构 | |
US20020194267A1 (en) | Portal server that provides modification of user interfaces for access to computer networks | |
US20020029296A1 (en) | Portal server that provides a customizable user interface for access to computer networks | |
US20060230059A1 (en) | Method and apparatus to select and deliver portable portlets | |
US8826297B2 (en) | Creating web services from an existing web site | |
CN1783079A (zh) | 客户端计算机显示数据的方法 | |
US20050144259A1 (en) | Multi-user display system | |
CN1749961A (zh) | 使用网络模型的单机软件 | |
WO2002023360A1 (en) | Independent update and assembly of web page elements | |
CN1226031A (zh) | 对浏览器内显示的数据进行过滤和控制的高速缓冲代理 | |
US20080040371A1 (en) | Generic architecture for providing data to flash model | |
CN1292344C (zh) | 客户机方自动刷新高级Web页的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060510 Termination date: 20120207 |