CN102687116A - 用于异步请求的管理信道 - Google Patents
用于异步请求的管理信道 Download PDFInfo
- Publication number
- CN102687116A CN102687116A CN2010800571737A CN201080057173A CN102687116A CN 102687116 A CN102687116 A CN 102687116A CN 2010800571737 A CN2010800571737 A CN 2010800571737A CN 201080057173 A CN201080057173 A CN 201080057173A CN 102687116 A CN102687116 A CN 102687116A
- Authority
- CN
- China
- Prior art keywords
- response
- client
- server
- answer
- request
- 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
Links
- 230000004044 response Effects 0.000 claims abstract description 97
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000012546 transfer Methods 0.000 claims description 6
- 238000012856 packing Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000005755 formation reaction Methods 0.000 description 6
- 238000013515 script Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000002203 pretreatment Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011068 loading method Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 241000239290 Araneae Species 0.000 description 1
- 244000188472 Ilex paraguariensis Species 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/542—Intercept
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- 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]
-
- 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/14—Session management
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/50—Network services
- H04L67/55—Push-based network services
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
用于数据处理系统的装置和方法,其中所述数据处理系统包括客户机和服务器,该装置包括:接收组件,用于接收来自客户机应用的对对象的第一方法的呼叫以及在该信道上接收回复;拦截器组件,用于包装该对象以便将被包装的呼叫提供给该被包装对象的第二方法以及调用响应处理器;客户机编码器组件,用于将被包装的呼叫转换为消息;客户机信道管理器组件,用于建立到所述服务器的信道;发送器组件,在所述信道上发送所述消息;回复解码器组件,用于解码所述回复,以便提供响应;以及所述发送器组件还用于发送所述响应到客户机应用。
Description
技术领域
本发明涉及网络(web)应用。尤其是,本发明涉及一种用于管理来自网络应用的异步请求的装置、方法、以及计算机程序。。
背景技术
由网页客户机执行的网络应用通常使用异步请求来访问网络(web)服务器的资源。异步请求被用来使得网络应用能够在不妨碍现有网页(webpage)的情况下访问该背景(background)中的资源。
能够由网络应用执行的并行(concurrent)异步请求的数量受到网络浏览器的限制。在超文本传输协议(HTTP)1.1版本的规范中,该限制被设置为两个并行请求。用于实现(implement)异步请求的技术的一个实例是Ajax(异步Java描述语言(JavaScript)+可扩展标记语言)。来自客户机的Ajax请求可以在来自服务器的背景中异步地检索(retrieve)数据,而不会影响现有的网页。
该限制在采用“小配件(widget)”(小配件是能够被置于网页中的任意片段的动态内容)制作的网络应用的语境中会导致重要的性能影响和瓶颈。小配件能够使用浏览器提供的本地(native)接口(例如,Java描述语言中的一种XMLHttpRequest对象)来取来异步请求上的内容。嵌入小配件中的网络应用不直接控制该小配件所执行的逻辑,并且尤其是异步请求是否已经被小配件所触发。
由限制所导致的其他性能影响的例子为:对浏览器所排队的请求的长响应时间;以及在网页被加载时请求数量溢出。该限制还导致不能设置请求的优先级别。而且,不能进行能够优化,因为由不同小配件(或同一小配件的不同实例)在(大致)相同时间所发送的对同一资源的两个或多个请求在其可能仅仅一次取回该资源时将会以与独立请求一样的方式被处理。
由限制所导致的性能影响的另一个例子是网络应用难以在网络浏览器队列上进行控制。网络浏览器请求队列是按序的,这意味着对网络浏览器当前处理的请求的长响应时间会使得随后的请求将被网络浏览器列入队列直到对当前处理的请求的响应被收到为止,即使随后的请求潜在地比当前处理的请求能够更快地返回。
美国专利申请公开号US2009/0144707Al披露了一种用于高效率实现对动态网络内容的java服务器页面请求的方法、系统和计算机程序产品。异步处理应用(utility)预定了一定数量的定制级别(custom class)以便实现请求的异步处理。
因此,本领域需要解决上述问题。
发明内容
鉴于第一方面,本发明提供了一种用于数据处理系统的客户机装置,其中所述数据处理系统包括客户机和服务器,该装置包括:接收组件,用于接收来自客户机应用的对对象的第一方法的呼叫,其中该第一方法包括到服务器的第一请求,并且其中该第一请求包括第一多个属性;拦截器组件,响应于接收组件接收到呼叫,用于包装该对象以便将被包装的呼叫提供给该被包装对象的第二方法,其中该第二方法包括到该服务器的第二请求;客户机编码器组件,响应于该拦截器组件包装该对象,用于将被包装的呼叫转换为消息,其中该消息包括所述第一多个属性;客户机信道(channel)管理器组件,响应于该客户机编码器组件转换所述请求,用于建立到所述服务器的信道;以及发送器组件,响应于所述客户机信道管理器建立所述信道,用于在所述信道上发送所述消息。
优选的是,本发明提供了一种客户机装置,其中该客户机装置还包括:所述接收组件还可操作用于在该信道上接收回复,其中该回复包括第二多个属性;回复解码器组件,响应于所述接收组件接收所述回复,用于解码所述回复,以便提供响应,其中该响应包括第二多个属性;所述拦截器组件响应于所述回复解码器组件解码所述回复还可操作用于调用响应处理器;以及所述发送器组件响应于所述响应处理器被调用还可操作用于发送所述响应到客户机应用。
优选的是,本发明提供了一种客户机装置,其中该客户机装置可在所述客户机应用中操作。优选的是,本发明提供了一种客户机装置,其中所述客户机装置可在网络浏览器中操作。
鉴于第二方面,本发明提供了一种可操作用于数据处理系统的服务器装置,其中该数据处理系统包括:客户机和服务器,该装置包括:服务器信道管理器组件,用于从客户机接收关于信道的消息,该消息包括第一多个属性;服务器解码器组件,响应于所述服务器信道管理器组件接收所述消息,用于解码该消息以便提供请求,其中所述请求包括第一多个属性;以及响应取出器组件,响应于服务器解码器组件提供用于取出响应的请求,用于发送所述请求到资源。
优选的是,本发明提供了一种服务器装置,其中,所述服务器装置还包括:所述响应取出器组件还可操作用于接收来自所述资源的响应,其中该响应包括第二多个属性;响应编码器组件,响应于所述响应取出器组件接收所述响应,用于对所述响应进行编码以便提供回复,其中所述回复包括第二多个属性;以及服务器信道管理器组件,响应于编码器组件提供回复,还可操作用于在该信道上发送该回复。
鉴于第三方面,本发明提供了一种可操作用于数据处理系统的客户机方法,其中所述数据处理系统包括客户机和服务器,该方法包括步骤:接收来自客户机应用的对第一对象的第一方法的呼叫,其中该第一方法包括到服务器的第一请求,并且其中该第一请求包括第一多个属性;响应于接收到所述呼叫,包装该对象以便将被包装的呼叫提供给该被包装对象的第二方法,其中该第二方法包括到该服务器的第二请求;响应于包装该对象,将被包装的呼叫转换为消息,其中该消息包括所述第一多个属性;响应于转换所述请求,用于建立到所述服务器的信道;以及响应于建立所述信道,用于在所述信道上发送所述消息。
优选的是,本发明提供了一种客户机方法,其中该客户机方法还包括步骤:在所述信道上接收回复,其中该回复包括第二多个属性;响应于所接收所述回复,解码所述回复,以便提供响应,其中该响应包括第二多个属性;响应于解码所述回复,调用响应处理器;以及响应于所述响应处理器被调用,发送所述响应到客户机应用。
优选的是,本发明提供了一种客户机方法,其中该客户机方法可在所述客户机应用中操作。优选的是,本发明提供了一种客户机方法,其中所述客户机方法可在网络浏览器中操作。
鉴于第四方面,本发明提供了一种可操作用于数据处理系统的服务器方法,其中该数据处理系统包括:客户机和服务器,该方法包括步骤:从客户机接收关于信道的消息,该消息包括第一多个属性;响应于接收所述消息,解码该消息以便提供请求,其中所述请求包括第一多个属性;以及响应于提供用于取出响应的请求,发送所述请求到资源。
优选的是,本发明提供了一种服务器方法,其中,所述方法还包括步骤:接收来自所述资源的响应,其中该响应包括第二多个属性;响应于接收所述响应,对所述响应进行编码以便提供回复,其中所述回复包括第二多个属性;以及响应于提供回复,在该信道上发送该回复。
鉴于另一个方面,本发明提供了一种存储在计算机可读介质上并可加载到数字计算机的内存的系统程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行本发明的步骤。
有利的是,本发明对由嵌入了诸如小配件的其自身客户端逻辑的第三方扩展/小配件构成的网络应用的性能提供了显著的改进。
有利的是,本发明容许以一种明晰的(transparent)方式通过客户机和服务器之间的网络应用维持的被管理信道将在页面上的不同的组件/小配件形成的所有异步请求改道发送(re-route)到呼叫者。本发明涵盖了客户机端和服务器端机构,以便创建、维持和管理以及使用客户机和服务器之间的这种信道,以便以明晰的方式路由(route)所述异步请求。所述信道能够经由“彗星(Comet)”连接永久地得以保持,或者经由一些列顺序控制的Ajax请求而被虚拟地得以保持。
还有利的是,这种机制对制作异步请求的组件隐藏使得相同的结果被传送,就像现有技术的本地Java描绘语言对象被用于发送所述Ajax请求一样。因此,没必要对网络应用代码或任何包含在其中的第三方小配件进行改变。网络应用可以绕过(bypass)网络浏览器队列并通过永久信道立即发送请求到网络服务器。
有利的是,该机制可用于任何包含第三方脚本(scripting)代码(例如,JavaScript代码)的客户机,不仅仅用于“图形化”小配件。例如,收集规格(metrics)和发送数据到远程服务器的小配件。
本发明可概括地用于各种包含能够经由脚本代码执行逻辑以便触发异步请求的网络组件的应用。
附图说明
现在将参照如下附图所图释的实施例仅仅通过举例方式来描述本发明:
图1是描绘根据现有技术的数据处理系统的方框图,并且其中可实现本发明的优先实施例;
图2是描绘在现有技术中找到的网络应用的方块图;
图3是根据本发明的优选实施例的描绘被执行来用于与服务器端网络应用的服务器装置进行交互的客户机装置的操作方法步骤的高级示例性示意性流程图;以及
图4是描绘客户机装置与服务器装置的方块图,其中实现了本发明的优选实施例。
具体实施方式
图1是描绘根据现有技术的数据处理系统100的方块图,并且其中可实现本发明的优选实施例。数据处理系统100的例子是因特网。网络浏览器130可由用户136在数据处理系统100上操作,数据处理系统100包括工作站120、以及服务器150和152。工作站120以及服务器可通过网络114连接。网络114可包括有线网络110。
通常,名称(name)服务器152也可连接到网络114。名称服务器152将统一资源定位符(URL)翻译成英特网协议(IP)地址。用户136通过与可在工作站120操作的网络浏览器130进行交互而访问英特网。客户机端网络应用140也可在与可在服务器150上操作的服务器端应用170通讯的工作站120上操作。用户136可通过网络浏览器130而看见客户机端网络应用140。客户机端网络应用140还与网络浏览器130进行交互。网络浏览器130与可在服务器150上操作的网络服务器160进行通讯。网络服务器160与服务器端网络应用170进行交互。因此,客户机端网络应用140与服务器端网络应用170进行交互。
图2是描绘在现有技术中找到的网络应用的方块图200。客户机端网络应用140、240包括应用代码242、以及第三方小配件代码244。小配件244是图形用户接口元件,其提供用于用户136的交互点。
应用代码242以及第三方小配件代码244包括JavaScript(JS)代码。为了与服务器端网络应用170、270进行交互,代码242、244使用具有对XmlHttpRequest(XHR)对象(例如,"send()"、或"open()"方法)的方法呼叫的文档对象模型(DOM)应用编程接口(API)246来发送请求到网络服务器160、260.A call from the code来自代码242、244的呼叫to send()是发送请求236到网络服务器160、260的命令。如果存在比网络浏览器130、230当前所处理的一定数量的请求236多,该网络浏览器130、230将新请求236放置在排序队列235中。当从网络服务器160、260接收回较早请求236的响应238时,网络浏览器130、230发送请求236。排序队列235的限制产生了瓶颈和性能问题。队列235的顺序基于先来后到的原则(first served basis)。网络应用140、240对队列235没有任何控制,并且也没有接收关于队列235的内容的任何信息。接收到响应238时,其经由原始用于发送请求的XMLHttpRequest对象传回呼叫代码242、244。
浏览器130、230和网络服务器160、260之间的业务(transaction)由XHR对象管理。XHR对象是本地对象,由用于以JavaScript发送异步JavaScript和XML(Ajax)请求到服务器的网络浏览器130,260提供。
图3是根据本发明的优选实施例的描绘被执行来用于与服务器端网络应用170、470的服务器装置452进行交互的客户机装置450的操作方法步骤的高级示例性示意性流程图300,其应该与图3结合起来看。图4是描绘客户机装置450与服务器装置452的方块图400,其中实现了本发明的优选实施例。
图3给出了逻辑流程图。因此,所图示的顺序和标记的步骤指出了本方法的一个实施例。也可以想到与所图释的方法的一个或多个步骤或部分的功能、逻辑或效果等同的其他步骤和方法。此外,所采用的格式和符号被提供来解释该方法的逻辑步骤并且不能被理解为限制本方法的范围。
该方法从步骤301开始。客户机端网络应用140、440包括应用代码442和第三方小配件代码444。在步骤305处,客户机装置450的拦截器组件455接收对XHR对象的呼叫以便发送从代码442、444请求到服务器端网络应用170、470。XHR对象呼叫包括属性(例如URL、报头、以及内容)。
在步骤305处,在代码442、444对本地XHR对象的第一呼叫之前,拦截器组件455创建环绕XHR对象的包装(wrapper)。被包装的XHR对象具有与本地XHR对象相同的方法。包装本地XHR对象使得拦截器组件455能够拦截对本地XHR对象的方法的之一的任何呼叫。All methods of the native本地XHR对象的所有方法都被包装以便记录由呼叫代码442、444所设置的请求属性。呼叫代码442、444呼叫该被包装的XHR对象,就像本地XHR对象正被呼叫一样。当代买442、444呼叫本地XHR对象的方法之一时,拦截器组件455拦截该呼叫并替代地呼叫被包装的XHR对象的方法之一。代码442、444不会了解到客户机装置450和服务器装置452用来改道发送所述请求的机制.
在步骤310处,客户机装置450的拦截器组件455从代码442、444接收对本地XHR对象的呼叫以便发送请求到服务器端网络应用170、470。XHR对象呼叫包括属性(例如URL、报头、以及内容)。
在步骤315处,当代码442、444呼叫本地XHR对象的方法之一时,拦截器组件455调用客户机请求编码器组件430。术语“请求”指的是对XHR的方法之一的呼叫以便发送HTTP到网络服务器160并直接将网络服务器160响应加载回到所述呼叫应用代码。
在步骤320处,客户机请求编码器组件430以一种具体格式编码所述请求属性,使得请求属性能够在永久信道或半持久信道445上被发送。编码所述请求属性以一种具体格式创建消息,使得该消息可以在信道445上被发送。该消息包括该请求的所有属性。
在步骤325处,客户机信道管理器组件440建立到服务器中的服务器信道管理器组件465的信道445。该信道445可基于诸如Bayeux的现有协议。Bayeux是一种用于主要在HTTP上以网络服务器之间的低等待时间(latency)传输异步消息的协议。An example of a Bayeux协议实施的一个例子是CometD。信道445是单一连接,多个请求或响应的信息以一种具体格式在该单一连接上被交换。在优选实施例中,该信道在请求被发送的第一时间被创建。对所有随后的请求而言,相同的信道被重复使用。在步骤330处,服务器信道管理器组件465接收所述消息。在步骤335处,服务器请求解码器组件460解码已经通过该信道445发送的消息中的请求属性。在步骤340处,响应取出器(fetcher)组件472基于被解码属性发送真实HTTP请求到服务器端网络应用470的局部(local)资源474或到外部资源480。在步骤345处,响应取出器组件472接收从局部资源474或外部资源480返回的响应。在步骤345处,响应编码器组件462以一种具体格式将所述响应属性编码到回复中。在步骤355处,该回复通过服务器信道管理器组465在信道445上被发送到客户机信道管理器组件440。“资源”指的是能够使用HTTP请求被取出的任何东西。例如,资源可以是静态资源、或对代表性状态传输(Representational State Transfer(REST))API的呼叫。
在步骤360处,客户机信道管理器组件440通过信道445接收回复,在步骤365处,调用回复解码器组件435。在步骤370处,响应解码器组件435将该回复解码到响应中。在步骤380处,拦截器组件455调用关于呼叫代码442、444的响应处理器。响应处理器位于被包装的XHR对象中。该响应处理器以本地XHR对象具有的相同方式将响应提供到呼叫代码442、444,以便该方法对呼叫代码442、444是透明的。
客户机请求编码器组件430为在信道445上发送的消息设置唯一消息标识代码(ID)。服务器装置452跟踪该消息ID并在回复中设置与该消息请求ID匹配的相关的回复ID,使得客户机装置450可以将在信道上发送的哪一个回复对应哪一个消息相互关联起来。
在方法在步骤399处结束。
在优选实施例中,拦截器组件455通过动态地将该对象的特性/方法覆盖(override)在页面负载(load)上来包装本地XHR对象。该方法和装置也适于概括Ajax请求发送的方式的脚本语言(例如JS)库,因为XHR对象总是被用作发送异步请求的基础(foundation)。
Bayeux技术聚焦于浏览器和服务器之间协议所发送的应用具体数据的概念,而本发明的方法和装置设计通常的异步请求。客户机端代码(例如,客户机应用、小配件442、444)明显使用Bayeux协议,而本发明描述了一种引导(channel)代码442、444的请求的透明方式。不过,Bayeux协议能够用于本发明底层结构的实现。
在优选实施例中,客户机装置450在客户机网络应用440中被实施为JavaScript代码。在另一个实施例中,客户机装置450被实现为网络浏览器130、230的插件程序代码。在另一个实施例中,客户机装置450被实现为网络浏览器130、230的核心源代码的修改形式。
在另一个实施例中,该方法被应用到其他本地对象的拦截,这触发客户机请求到服务器。来自JavaScript的例子包括:加载脚本文件的“script”、加载页面的“iframe”、加载图像的“img”、以及加载来自远程服务器的样式表(stylesheet)的“link”。本来领域普通技术人员将理解到,尽管JavaScript已经被用来阐述本发明的优选实施例,但是该装置和方法也可以使用到其他用于客户机-服务器交互的脚本语言。
本来领域普通技术人员将理解到,优选实施例的方法的全部或部分可适当和有用地嵌在包含被布置成用来执行本发明的步骤的逻辑元件的一个逻辑装置或多个逻辑装置中,以及这种逻辑元件可以包括硬件组件、固件组件或其组合。
将理解到,上述方法和结构也可以部分或全部适当地在运行在一个或多个处理器(图中未示出)上运行的软件中执行,并且该软件可以以承载在任何适当数据载体(在图中也没有示出)上的一种或多种计算机程序元件的形式提供,所述数据载体诸如磁性或光盘存储器件等。为了避免疑问,说明书和权利要求书通篇在此使用的术语“包括”不应被理解为“仅仅包括”。还是为了避免疑问,如说明书和权利要求书通篇在此使用的,将一个位置拷贝到另一个位置将被理解为将一个位置的数据内容拷贝到另一个位置。
Claims (13)
1.一种用于数据处理系统的客户机装置,其中所述数据处理系统包括客户机和服务器,该装置包括:
接收组件,用于接收来自客户机应用的对对象的第一方法的呼叫,其中该第一方法包括到服务器的第一请求,并且其中该第一请求包括第一多个属性;
拦截器组件,响应于接收组件接收到呼叫,用于包装该对象以便将被包装的呼叫提供给该被包装对象的第二方法,其中该第二方法包括到该服务器的第二请求;
客户机编码器组件,响应于该拦截器组件包装该对象,用于将被包装的呼叫转换为消息,其中该消息包括所述第一多个属性;
客户机信道管理器组件,响应于该客户机编码器组件转换所述请求,用于建立到所述服务器的信道;以及
发送器组件,响应于所述客户机信道管理器建立所述信道,用于在所述信道上发送所述消息。
2.如权利要求1所述的客户机装置,其中该客户机装置还包括:
所述接收组件还可操作用于在该信道上接收回复,其中该回复包括第二多个属性;
回复解码器组件,响应于所述接收组件接收所述回复,用于解码所述回复,以便提供响应,其中该响应包括第二多个属性;
所述拦截器组件响应于所述回复解码器组件解码所述回复还可操作用于调用响应处理器;以及
所述发送器组件响应于所述响应处理器被调用还可操作用于发送所述响应到客户机应用。
3.如前述任意一个权利要求所述的客户机装置,其中该客户机装置可在所述客户机应用中操作。
4.如权利要求1或2所述的客户机装置,其中所述客户机装置可在网络浏览器中操作。
5.一种可操作用于数据处理系统的服务器装置,其中该数据处理系统包括:客户机和服务器,该装置包括:
服务器信道管理器组件,用于从客户机接收关于信道的消息,该消息包括第一多个属性;
服务器解码器组件,响应于所述服务器信道管理器组件接收所述消息,用于解码该消息以便提供请求,其中所述请求包括第一多个属性;以及
响应取出器组件,响应于服务器解码器组件提供用于取出响应的请求,用于发送所述请求到资源。
6.如权利要求5所述的服务器装置,其中,所述服务器装置还包括:
所述响应取出器组件还可操作用于接收来自所述资源的响应,其中该响应包括第二多个属性;
响应编码器组件,响应于所述响应取出器组件接收所述响应,用于对所述响应进行编码以便提供回复,其中所述回复包括第二多个属性;以及
服务器信道管理器组件,响应于编码器组件提供回复,还可操作用于在该信道上发送该回复。
7.一种可操作用于数据处理系统的客户机方法,其中所述数据处理系统包括客户机和服务器,该方法包括步骤:
接收来自客户机应用的对第一对象的第一方法的呼叫,其中该第一方法包括到服务器的第一请求,并且其中该第一请求包括第一多个属性;
响应于接收到所述呼叫,包装该对象以便将被包装的呼叫提供给该被包装对象的第二方法,其中该第二方法包括到该服务器的第二请求;
响应于包装该对象,将被包装的呼叫转换为消息,其中该消息包括所述第一多个属性;
响应于转换所述请求,用于建立到所述服务器的信道;以及
响应于建立所述信道,用于在所述信道上发送所述消息。
8.如权利要求7所述的客户机方法,其中该客户机方法还包括步骤:
在所述信道上接收回复,其中该回复包括第二多个属性;
响应于所接收所述回复,解码所述回复,以便提供响应,其中该响应包括第二多个属性;
响应于解码所述回复,调用响应处理器;以及
响应于所述响应处理器被调用,发送所述响应到客户机应用。
9.如权利要求7或8所述的客户机方法,其中该客户机方法可在所述客户机应用中操作。
10.如权利要求7或8所述的客户机方法,其中所述客户机方法可在网络浏览器中操作。
11.一种可操作用于数据处理系统的服务器方法,其中该数据处理系统包括:客户机和服务器,该方法包括步骤:
从客户机接收关于信道的消息,该消息包括第一多个属性;
响应于接收所述消息,解码该消息以便提供请求,其中所述请求包括第一多个属性;以及
响应于提供用于取出响应的请求,发送所述请求到资源。
12.如权利要求11所述的服务器方法,其中,所述方法还包括步骤:
接收来自所述资源的响应,其中该响应包括第二多个属性;
响应于接收所述响应,对所述响应进行编码以便提供回复,其中所述回复包括第二多个属性;以及
响应于提供回复,在该信道上发送该回复。
13.一种存储在计算机可读介质上并可加载到数字计算机的内存的系统程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行权利要求7-12任意一个所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09179596 | 2009-12-17 | ||
EP09179596.3 | 2009-12-17 | ||
PCT/EP2010/068047 WO2011072993A1 (en) | 2009-12-17 | 2010-11-23 | Managed channel for asynchronous requests |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102687116A true CN102687116A (zh) | 2012-09-19 |
Family
ID=43589619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800571737A Pending CN102687116A (zh) | 2009-12-17 | 2010-11-23 | 用于异步请求的管理信道 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9176793B2 (zh) |
CN (1) | CN102687116A (zh) |
DE (1) | DE112010004847T5 (zh) |
GB (1) | GB2499856A (zh) |
WO (1) | WO2011072993A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376092A (zh) * | 2018-02-24 | 2018-08-07 | 金蝶软件(中国)有限公司 | 一种网页组件的控制方法及相关装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5617709B2 (ja) | 2011-03-16 | 2014-11-05 | 富士通株式会社 | プログラム、制御装置および方法 |
US8595752B1 (en) * | 2011-06-13 | 2013-11-26 | Google Inc. | Hybrid application message passing |
US20130046878A1 (en) * | 2011-08-15 | 2013-02-21 | Lukas Fryc | Asynchronous request interception for testing a request life-cycle |
EP2804103A1 (en) * | 2013-05-13 | 2014-11-19 | 2236008 Ontario Inc. | System and method for forwarding a command stream |
US20150067024A1 (en) * | 2013-08-27 | 2015-03-05 | Apple Inc. | Autobatching |
US10976986B2 (en) | 2013-09-24 | 2021-04-13 | Blackberry Limited | System and method for forwarding an application user interface |
US10115174B2 (en) | 2013-09-24 | 2018-10-30 | 2236008 Ontario Inc. | System and method for forwarding an application user interface |
US8713100B1 (en) * | 2013-12-11 | 2014-04-29 | Michael L. Hamm | Hybrid asynchronous transmission process |
CN107493312B (zh) * | 2016-06-12 | 2020-09-04 | 中国移动通信集团安徽有限公司 | 一种服务调用方法及装置 |
CN107872437B (zh) * | 2016-09-27 | 2021-07-09 | 阿里巴巴集团控股有限公司 | 一种用于业务请求的方法、装置及服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7487201B1 (en) * | 2006-06-30 | 2009-02-03 | Sun Microsystems, Inc. | Method and system for providing framework for Java based AJAX web applications |
WO2009027287A1 (en) * | 2007-08-31 | 2009-03-05 | Alcatel Lucent | Method for enriching content of a web page with presence information |
US20090157859A1 (en) * | 2007-12-17 | 2009-06-18 | Morris Robert P | Methods And Systems For Accessing A Resource Based On URN Scheme Modifiers |
CN101578592A (zh) * | 2006-08-22 | 2009-11-11 | 雅虎公司 | 持久的保存门户 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6164841A (en) * | 1998-05-04 | 2000-12-26 | Hewlett-Packard Company | Method, apparatus, and product for dynamic software code translation system |
US6742124B1 (en) * | 2000-05-08 | 2004-05-25 | Networks Associates Technology, Inc. | Sequence-based anomaly detection using a distance matrix |
US20040003093A1 (en) * | 2002-03-27 | 2004-01-01 | Netaphor Software, Inc. | Method for providing asynchronous communication over a connected channel without keep-alives |
US7574692B2 (en) * | 2004-11-19 | 2009-08-11 | Adrian Herscu | Method for building component-software for execution in a standards-compliant programming environment |
US7743245B2 (en) * | 2005-03-10 | 2010-06-22 | Intel Corporation | Security protocols on incompatible transports |
US20060047780A1 (en) * | 2005-11-08 | 2006-03-02 | Gregory Patnude | Method and apparatus for web-based, schema-driven application-server and client-interface package using a generalized, data-object format and asynchronous communication methods without the use of a markup language. |
US7788341B1 (en) * | 2005-12-01 | 2010-08-31 | Oracle America, Inc. | Displaying results of server-side form validations without page refresh |
US20070168979A1 (en) * | 2005-12-30 | 2007-07-19 | Intel Corporation | Transparent debugging of programs in dynamic translation systems |
US7725574B2 (en) * | 2006-01-23 | 2010-05-25 | International Business Machines Corporation | Web browser-based programming language error determination and reporting |
US20070300150A1 (en) * | 2006-06-22 | 2007-12-27 | Lantronix, Inc. | Building rich web site applications with an embedded device |
US8150939B1 (en) * | 2007-05-11 | 2012-04-03 | Oracle America, Inc. | Method and system for wrapping and componentizing javascript centric widgets using java components |
US7747694B2 (en) * | 2007-07-30 | 2010-06-29 | Solace Systems, Inc. | Low latency and assured delivery using HTTP |
US8032587B2 (en) | 2007-08-28 | 2011-10-04 | International Business Machines Corporation | Method and apparatus for client-side aggregation of asynchronous fragmented requests |
US20090132998A1 (en) * | 2007-11-16 | 2009-05-21 | Microsoft Corporation | Debugging multi-execution environment applications |
US8185610B2 (en) | 2007-12-04 | 2012-05-22 | International Business Machines Corporation | Method for client-side aggregation of asynchronous, context-sensitive request operations for java server pages (JSP) |
US8924845B2 (en) * | 2008-02-20 | 2014-12-30 | Lsi Corporation | Web application code decoupling and user interaction performance |
US7912927B2 (en) * | 2008-03-26 | 2011-03-22 | Microsoft Corporation | Wait for ready state |
US8910112B2 (en) * | 2008-07-30 | 2014-12-09 | Sap Ag | Extended enterprise connector framework using direct web remoting (DWR) |
US8203566B2 (en) * | 2009-05-29 | 2012-06-19 | Microsoft Corporation | Fixed function pipeline application remoting through a shader pipeline conversion layer |
US8140646B2 (en) * | 2009-06-04 | 2012-03-20 | Microsoft Corporation | Network application performance enhancement using speculative execution |
US8516471B2 (en) * | 2009-10-06 | 2013-08-20 | International Business Machines Corporation | Detecting impact of operating system upgrades |
-
2010
- 2010-11-23 CN CN2010800571737A patent/CN102687116A/zh active Pending
- 2010-11-23 GB GB1204295.8A patent/GB2499856A/en not_active Withdrawn
- 2010-11-23 DE DE112010004847T patent/DE112010004847T5/de active Pending
- 2010-11-23 WO PCT/EP2010/068047 patent/WO2011072993A1/en active Application Filing
- 2010-11-23 US US13/516,439 patent/US9176793B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7487201B1 (en) * | 2006-06-30 | 2009-02-03 | Sun Microsystems, Inc. | Method and system for providing framework for Java based AJAX web applications |
CN101578592A (zh) * | 2006-08-22 | 2009-11-11 | 雅虎公司 | 持久的保存门户 |
WO2009027287A1 (en) * | 2007-08-31 | 2009-03-05 | Alcatel Lucent | Method for enriching content of a web page with presence information |
US20090157859A1 (en) * | 2007-12-17 | 2009-06-18 | Morris Robert P | Methods And Systems For Accessing A Resource Based On URN Scheme Modifiers |
Non-Patent Citations (1)
Title |
---|
ALI MESBAH,ARIE VAN DEURSEN: "A component- and push-based architectural style for AJAX applications", 《JOURNAL OF SYSTEMS AND SOFTWARE》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376092A (zh) * | 2018-02-24 | 2018-08-07 | 金蝶软件(中国)有限公司 | 一种网页组件的控制方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2011072993A1 (en) | 2011-06-23 |
GB201204295D0 (en) | 2012-04-25 |
US9176793B2 (en) | 2015-11-03 |
DE112010004847T5 (de) | 2012-11-08 |
GB2499856A (en) | 2013-09-04 |
US20120311024A1 (en) | 2012-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102687116A (zh) | 用于异步请求的管理信道 | |
KR101362384B1 (ko) | 웹 플랫폼을 이용한 아이피 기반 IoT 사물 브라우징 방법 및 시스템 | |
Lampesberger | Technologies for web and cloud service interaction: a survey | |
US9094369B2 (en) | Method and apparatus for storing and restoring state information of remote user interface | |
US9122651B1 (en) | Computer system to support failover in an event stream processing system | |
US10296653B2 (en) | Systems and methods for accelerating web page loading | |
US8819698B2 (en) | Cross-platform web-based native device feature access | |
EP2962216B1 (en) | Sharing application states | |
US8219692B2 (en) | Method and apparatus for storing and restoring state information of remote user interface | |
EP2116937A1 (en) | Web server for managing session and its method | |
US9350763B1 (en) | HTTP tunnelling over websockets | |
US20120117253A1 (en) | Methods for reducing latency in network connections and systems thereof | |
CN106095598B (zh) | 一种数据处理方法及客户端 | |
US9143378B2 (en) | Rendering components within different browser environments | |
CN102447642A (zh) | 一种基于im客户端实现消息图片管理的方法和装置 | |
US20120287224A1 (en) | Video chat within a webpage and video instant messaging | |
US20120117270A1 (en) | Methods for reducing latency in network connections using automatic redirects and systems thereof | |
CN102111437A (zh) | 一种基于soap扩展的web服务传输压缩方法 | |
US7797405B2 (en) | Streaming file transfer apparatus, systems, and methods | |
US20140245124A1 (en) | System and method thereof for browser agnostic extension models | |
CN103155530A (zh) | 包括将脚本命令下载至用户终端的网络-电信融合 | |
US10044788B2 (en) | Native client multimedia redirection | |
CN105677688B (zh) | 页面数据加载方法和系统 | |
CN101699823A (zh) | 一种在curl库中实现资源缓存的方法 | |
CN111475761A (zh) | 客户端、服务器及内容分享控制方法 |
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 |
Application publication date: 20120919 |