CN106063205B - 远程访问环境中客户端流量控制的装置和方法 - Google Patents
远程访问环境中客户端流量控制的装置和方法 Download PDFInfo
- Publication number
- CN106063205B CN106063205B CN201480064881.1A CN201480064881A CN106063205B CN 106063205 B CN106063205 B CN 106063205B CN 201480064881 A CN201480064881 A CN 201480064881A CN 106063205 B CN106063205 B CN 106063205B
- Authority
- CN
- China
- Prior art keywords
- client
- service
- message
- ssi
- csi
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/266—Stopping or restarting the source, e.g. X-on or X-off
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/522—Dynamic queue service slot or variable bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
-
- 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
-
- 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/2866—Architectures; Arrangements
-
- 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/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种客户端流量控制机制,其用于在远程访问系统中控制从服务传送到客户端的消息流量。所述服务可为托管或非托管服务,可将消息传送到所述客户端,其中所述消息包括服务序列ID(SSI)。随着所述客户端处理来自所述服务的消息,所述客户端以客户端序列ID(CSI)响应。所述SSI和CSI值确定在传输队列中的消息数量。所述服务将当前SSI与CSI之间的差与停止窗口值进行比较。如果所述差大于所述停止窗口值,关闭从所述服务到所述客户端的消息传输。随着所述客户端处理消息,其继续发送CSI确认。一旦所述差下降低于开始窗口值,开启到所述客户端的所述消息传输。
Description
相关申请的交叉引用
本申请要求2013年11月6日提交的标题为“METHOD FOR CLIENT-SIDE FLOWCONTROL IN AREMOTE ACCESS ENVIRONMENT”的美国临时专利申请第61/900,940号和2013年11月29日提交的标题为“METHOD FOR SERVER-SERVICE SEPARATION WITH END-TO-ENDFLOW CONTROL IN A CLIENT-SERVER REMOTE ACCESS ENVIRONMENT”的美国临时专利申请第61/910,189号的优先权,其公开内容以引用的方式整体并入本文。
发明背景
由于宽带和无线网络访问的增加和可用性,对服务无处不在的远程访问已成为普遍。因而,用户正使用不断增多的各种客户端设备(例如,移动设备、平板计算设备、膝上型/笔记本/台式计算机等等)访问服务。远程服务器可在服务与客户端设备之间通过各种网络传送包含数据或其它信息的消息,所述网络包括3G和4G移动数据网络,无线网络诸如WiFi和WiMax,有线网络等等。
在具有足够网络带宽将消息从服务发送到连接的客户端,但客户端无法足够快处理所述消息时会出现问题。例如,对于一些API,联网是基于推送的。因而,在客户端闲置或执行背景任务的时间段,额外消息可被发送并在客户端处排队。如果发送太多消息且客户端无法及时处理所述消息,可能出现错误。
发明内容
本文公开在远程访问系统中提供流量控制的系统和方法。根据本公开的方面,所述方法可包括将消息从服务传送到客户端,所述服务被所述客户端远程访问,且所述消息包括服务序列ID(SSI);响应于所述客户端完成处理具有与所述消息关联的特定SSI的消息,在所述服务处接收来自所述客户端的客户端序列ID(CSI);在所述服务处确定传送到所述客户端的当前SSI与从所述客户端接收的当前CSI之间的差;且如果所述差大于预定的停止窗口值,将从所述服务到所述客户端的通信关闭。
根据本公开的其它方面,描述一种提供客户端流量控制的方法,其可包括:将消息从服务传送到客户端,所述消息包括第一序列号,其由所述服务进行递增来表示所述消息在从所述服务传送到所述客户端的多个消息内的相对位置;在所述服务处接收来自所述客户端的指示完成处理具有小于第一序列号的第二序列号的消息的响应;在所述服务处从所述响应确定所述客户端处的消息处理是否滞后超过第一预定值,且如果所述客户端滞后超过所述预定值,关闭从所述服务到所述客户端的通信。
根据本公开的还有其它方面,描述一种用于对从服务到客户端的消息传送提供客户端流量控制的装置。所述装置可包括:远程访问服务器,其具有服务器层,所述服务器层用作在客户端与服务之间发送的消息的通信代理,所述服务器层包含要发往所述客户端的消息的出站客户端队列;和第二服务器,其执行与所述服务关联的服务层,所述服务层具有从客户端接收的消息的服务接收队列和要发往客户端的消息的服务发送队列。要发往客户端的消息可包括服务序列ID(SSI),且从所述客户端接收的消息包括客户端序列ID(CSI),指示客户端完成处理具有与消息关联的特定SSI的消息。所述服务可确定当前SSI与从所述客户端接收的CSI之间的差是否大于预定停止窗口值来关闭从所述服务到客户端的通信。
根据本公开的一方面,描述一种在远程访问系统中提供客户端流量控制的方法。所述方法可包括将消息从服务传送到客户端,所述服务被所述客户端远程访问,且所述消息包括服务序列ID(SSI);响应于所述客户端完成处理具有与CSI关联的SSI的消息,从所述客户端接收客户端序列ID(CSI);在所述服务处确定传送到所述客户端的当前SSI与从所述客户端接收的CSI之间的差;且如果所述差大于预定停止窗口值,关闭从所述服务到客户端的通信。
本领域技术人员在检阅以下图示和具体实施方式时,其它系统、方法、特征和/或优点将会或可以变得明显。所有这些额外系统、方法、特征和/或优点都意在包括在本说明书内,并受到随附权利要求的保护。
附图简述
图中的组件不一定关于彼此按比例绘制。贯穿几个视图,相同附图标记表示相应部件。
图1图示根据本公开的示例分层架构;
图2图示图1的架构内执行的示例操作流程图;
图3图示图1的架构内执行的示例操作的流程图;
图4A和图4B图示在分层架构中(诸如图1中所示)用于客户端远程访问服务的示例服务器-服务模型;和
图5图示示例性计算设备。
具体实施方式
除非另外定义,否则本文使用的所有技术和科学术语具有与本领域一般技术人员通常的理解相同的意义。类似于或等效于本文描述的方法和材料可在本公开的实践或测试中使用。虽然将要描述远程访问服务的实施方式,但是对本领域那些技术人员将变得明显的是,所述实施方式并非就此限制,而是适用于通过远程设备远程访问任何类型的服务,包括应用和数据。
上述概述作为介绍,现在参考图1,其图示根据本公开的分层架构。所述分层架构实施客户端流量控制机制,其允许客户端102通过远程访问服务器104控制来自应用服务器106上执行的服务的信息流。如图1中图示,所述系统中有三层:客户端层112,服务器层114和服务层116。根据本公开,所述分层架构包括消息传递队列,其说明客户端处理来自应用服务器106的包含数据或其它信息的消息的特殊能力。所述客户端层112驻留在客户端102中,且用于连接到服务器层114。通常,所述客户端层112包括客户端应用,例如,web浏览器,专用应用等等,其用于在客户端102处提供用户界面。所述客户端102可为无线手持设备,诸如例如通过通信网络125连接到远程访问服务器104的IPHONE、基于ANDROID的设备、平板设备或台式/笔记本个人计算机。
远程访问服务器104可包括服务器远程访问程序,其用于将客户端102连接到应用服务器106,所述应用服务器例如可为医疗应用。服务器远程访问程序的示例为可从加拿大阿尔伯塔省卡尔加里的Calgary Scientific,Inc.获取的PUREWEB。所述服务器远程访问程序可在图1的架构上任选地提供连接编组和应用进程管理。远程访问服务器104可通过通信连接126连接到应用服务器106。如果应用服务器106在除了远程访问服务器104以外的计算设备上执行,通信连接126可为通信网络。例如,通信连接126可为TCP/IP通信网络,VPN连接、专用连接等等。如果应用服务器106在与远程访问服务器相同的节点或计算机上执行,通信连接126可为TCP/IP套接字连接、共享存储器空间、共享文件位置等等。
服务器层114用于代理从客户端102到服务层116的通信,如下文所描述。客户端层112包含从远程访问服务器104接收的消息的客户端接收队列120,所述消息被代表与客户端102逻辑连接的应用服务器106发送。客户端层112还包含消息的客户端发送队列122,其被发送到远程访问服务器104的服务器层114中的接收队列123。所述消息例如可最终被发往应用服务器106。
服务层116(例如,与服务关联)的实例连接到服务器层114,其代理从应用服务器106到与该服务逻辑关联的客户端102的通信。服务层116包含代表客户端102从服务器104接收的消息的服务接收队列128。每个消息可用客户端102的唯一识别符标记。服务层116还包含消息的服务发送队列130,其被发送到远程访问服务器104的服务器层114中的客户端队列124。服务发送队列130中的每个消息也可以用客户端102的唯一识别符标记。此外,参考图4A和图4B,提供了关于服务类型的细节。
本公开的客户端流量控制机制可作为在服务层116中实施的服务软件开发套件(SDK)的部分包括在内,其在由消息跟踪系统确定服务器104与客户端102之间的网络连接饱和时致使服务停止发送消息。如下文参考图2将描述,可添加序列计数器来对每个连接的会话跟踪发送到客户端的当前服务序列ID(SSI)和从客户端接收的当前客户端序列ID(CSI)。客户端层112监听来自应用服务器106上执行的服务的具有服务序列ID(SSI)的消息。只要在客户端接收且处理具有SSI的消息时,它将客户端序列ID(CSI)作为确认发送到所述服务。当服务序列ID(SSI)与客户端序列ID(CSI)之间的差大于预定OffWindowSize值时,可关闭到客户端102的传输。换句话说,SSI和CSI的结合指示队列120、124和130中的消息数量大于OffWindowSize值。当服务序列ID(SSI)与客户端序列ID(CSI)之间的差低于OnWindowSize值时可开启到客户端102的传输。因而,服务将能够确定客户端102在其消息处理上落后多少。所述OnWindowSize值允许客户端在服务发送更多数据之前“赶上进度”。
服务序列ID:SSI
客户端序列ID:CSI
流量控制消息
CSI SSI
客户端传输接通(初始) 0 0
服务发送序列ID
客户端接收/处理 0 1
确认
客户端发送更新序列ID
服务接收/处理 1 1
如果SSI-CSI>停止窗口大小
客户端传输关断
如果SSI-CSI<开始窗口大小
客户端传输接通
停止窗口大小≥开始窗口大小
图2是提供客户端流量控制的操作流程图200。在202,会话开始时其传输状态“接通”。因而,建立了客户端102与应用服务器106上执行的服务之间的通信,且消息在流动。在204,服务将具有服务序列ID(SSI)的消息发送到客户端。所述SSI是应用服务器106发送的递增识别符。如上文所述,每次应用服务器106处的服务将消息包发送到客户端102时,其会将序列ID发送到客户端102。在206,具有SSI的入站消息被客户端处理,且生成客户端序列ID(CSI)。如上文所述,所述CSI可以是由客户端102处理的消息中所包含的SSI的反映。在208,客户端将具有CSI的确认消息发送到服务。根据本公开的方面,由客户端102发送的CSI在客户端102处理了来自应用服务器106的消息后被发送。例如,如果SSI为“1”,则客户端102可将应用服务器106的确认消息中的CSI反映为“1”。
在210,服务确定当前SSI与当前CSI之间的差。应用服务器106维持当前SSI和CSI值。这些值之间的差可被应用服务器106用以确定所述客户端102是否不堪重负,或者另外滞后于应用服务器106。在212,如果SSI与CSI之间的差大于停止窗口大小(例如,OffWindowSize值)且当前状态传输状态为“接通”,则所述会话在203被设为“关断”传输状态。这种传输状态的变化将使应用服务器106停止将额外消息发送到客户端102。应用服务器106将继续跟踪SSI和CSI值,因为客户端102可随着其继续处理消息来发送消息更新CSI。在传输状态为关断时,消息在服务层116中的服务发送队列130中排队。处理再在206继续,其中客户端102继续处理在客户端接收队列120中排队的消息。
如果在212处,SSI与CSI之间的差不大于停止窗口大小,则处理返回204,此处服务将具有递增SSI的下一消息发送到客户端。应用服务器106将服务发送队列130中的下一消息发送到客户端102。处理继续,如上文所述。
如果在212处,如果当前传输状态为“关断”,则在214处确定SSI与CSI之间的差是否小于开始窗口大小(例如,OnWindowSize值)。如果否,处理则返回到206,此处客户端102处理客户端接收队列120中的下一消息。如果在214处,SSI与CSI之间的差小于开始窗口大小,则客户端准备处理来自服务的消息,且传输状态在202设为“接通”。
在以上操作流程中,示例停止窗口(OffWindowSize)值为5。注意,这个值可基于分配到客户端102与应用服务器106之间的通信会话的权重来调节。示例开始窗口(OnWindowSize)值为2。根据一些实施方式,所述停止窗口值和所述开始窗口值不同,以防止传输在接通与关断之间快速来回切换的情况。
根据还有其它实施方式,开始和停止窗口值例如可基于客户端102的历史性能、被使用的网络类型(例如,以太网对比蜂窝数据)等等被动态调节。在应用服务器106与客户端102之间的传输成功时,开始窗口值和停止窗口值之间的差可以更大,且在传输有问题时更小。
因此,如上文所述,应用服务器106基于从客户端102接收的信息来进行所有流量控制决策。此外,过程200防止在应用服务器106中延迟通知在客户端102处存在延迟。这允许消息流能适应客户端102的质量/性能。例如,即使客户端102变慢且无法足够快处理消息,即便网络完全能够发送消息,图2的流量控制机制也将停止消息的传输。
根据上文,图2的操作流程还可以用于说明通信连接126的传输特性。例如,通信连接126可能无法提供计算设备的高带宽内部系统总线。因此,操作流程200解决了应用服务器106与远程访问服务器104之间的通信过程中可能出现的延迟。
根据其它实施方式,操作流程200可在不识别或发送SSI和/或CSI的服务和/或客户端之间提供互操作性。例如,如果应用服务器106不发送SSI,客户端102可被适配成其不发送CSI。另外,如果服务发送SSI,但是客户端102不响应CSI,则服务将假设客户端未被启用。
在一些实施方式中,两个或多个客户端设备可使用远程访问服务器104在协作会话中与服务协作交互。远程访问服务器104可利用状态模型来呈现与应用服务器106关联的显示数据的同步视图。流量控制可按每客户端为基础来实施。在传输对于特定客户端为关断的情况下,当传输返回接通状态时,所述客户端可在协作会话中跳过消息以重新同步它与其它客户端的视图。
图3图示了利用SSI和CSI提供在服务与逻辑连接的客户端之间关联的可靠消息传递的操作流程图300。例如,在一些实施方式中,可使用来自客户端的CSI响应使得应用服务器106知道客户端102已成功接收了哪些消息。在302,服务将具有SSI的消息发送到客户端。接着,在302,客户端将具有CSI值的消息发送到服务。如果应用服务器106接收此消息,则在306,应用服务器106可从服务发送队列130安全移除与关联SSI值关联的消息。然而,在未接收到CSI的情况下,服务可重新发送具有相应SSI的消息(308)。类似地,在客户端处可使用过程302-308。例如,每次应用服务器106将消息发送到客户端102时,可使用接收的SSI值将与先前SSI值关联的消息从客户端发送队列122安全移除。因此,可使用SSI值和CSI值在应用服务器106与客户端102之间提供可靠通信。
现对图4A和图4B进行参考,其图示在分层架构中客户端远程访问服务的替代模型示例,所述分层架构诸如为图1所示的分层架构,其中可实施上文描述的客户端流量机制。图4A图示“托管服务”115,其中服务部署在与客户端设备通信的远程访问和应用服务器相同的系统节点或计算设备上。在这种情况中,服务器通过在客户端连接和断开连接时开始和停止服务来控制应用/进程的寿命周期,因而管理服务。图4B图示“非托管服务”117,其中服务被部署在与集成的远程访问和应用服务器不同的系统节点的服务器上,应用/进程寿命周期不再被远程访问服务器管理。
在图4A和图4B两图中,服务器远程访问程序可提供连接编组和应用进程管理。此外,托管服务115和非托管服务117都可实施图2的客户端流量控制和/或图3的可靠消息传递。例如,在实施图4B的环境中,如果通信连接126经历会在非托管服务117与远程访问服务器104之间致使通信问题的情况,可由非托管服务117使用图2的流量控制机制的SSI和CSI值跟踪,以关闭通信,直到情况更有利为止。
如图4A中所示,客户端102具有客户端层112,其可与包括服务器层114和服务层116的远程访问和应用服务器103通信。客户端102可通过通信网络125连接到远程访问和应用服务器103。远程访问和应用服务器103可包括在服务器层114中执行的服务器远程访问程序。服务器远程访问程序用于将客户端102连接到在服务层116中执行的托管服务115(例如,应用)。在远程访问和应用服务器103内,服务器层114中的服务器远程访问程序可使用TCP套接字连接以及例如通过远程访问和应用服务器103的系统总线连接到服务层116中的服务。因此,服务器远程访问程序与服务之间的带宽非常高。图5示出客户端102和远程访问和应用服务器103的示例。
现在参考图4B,图示了非托管服务部署的示例。在这种环境中,远程访问服务器104包括执行服务器远程访问程序的服务器层114。应用服务器106包括在其中执行服务或应用的服务层116。在图4B的环境中,服务(以非托管服务117示出)提供在除了执行服务器远程访问程序的计算设备之外的计算设备上,且通过通信连接126与远程访问服务器104通信。因此,所述服务处在与服务器不同的节点上。图5示出了远程访问服务器104和应用服务器106的示例。
在图4B中,客户端102通过通信连接125连接到远程访问服务器104。应用服务器106可以预定因特网协议(IP)地址和/或套接字连接到远程访问服务器104,或使用与远程访问服务器104关联的统一资源定位符(URL),以在服务器远程访问程序在远程访问服务器104上执行时注册服务或应用。外部实体(终端用户,或另一进程或应用)在远程访问服务器104外部启动非托管服务117。非托管服务117在启动时使用服务器-服务套接字连接来连接到远程访问服务器104,且将会话建立成排队且非托管应用,客户端可连接到所述应用。
图5示出示例性计算环境,其中可实施示例实施方案和方面。所述计算系统环境仅是合适的计算环境的一个示例,且并非意在暗示对用途或功能范围具有任何限制。
可使用许多其它通用或专用计算系统环境或配置。熟知的可能适于使用的计算系统、环境和/或配置示例包括但不限于个人计算机、服务器、手持或膝上型设备、多处理器系统、基于微处理器的系统、网络个人计算机(PC)、微型计算机、大型计算机、埋置式系统、包括任何上述系统或设备的分布式计算环境,和类似物。
可使用计算机可执行的指令,诸如由计算机执行的程序模块。一般而言,程序模块包括执行特定任务或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等等。在任务由通过通信网络或其它数据传输介质链接的远程处理设备执行的情况下,可使用分布式计算环境。在分布式计算环境中,程序模块和其它数据可位于本地和远程计算机存储介质中,包括存储器存储设备。
参考图5,用于实施本文描述的方面的示例性系统包括计算设备,诸如计算设备500。在其最基础配置中,计算设备500通常包括至少一个处理单元502和存储器504。根据计算设备的确切配置和类型,存储器504可为易失性(诸如随机存取存储器(RAM))、非易失性(诸如只读存储器(ROM)、闪存等等)或两者的某个组合。这种最基础配置在图5中以虚线506图示。
计算设备500可具有额外特征/功能。例如,计算设备500可包括额外存储装置(可移除和/或不可移除),包括但不限于磁盘或光盘或磁带。这些额外存储装置在图5中以可移除存储装置508和不可移除存储装置510图示。
计算设备500通常包括各种有形计算机可读介质。计算机可读介质可为可被设备500访问的任何可用的有形介质,且包括易失性介质和非易失性介质、可移除介质和不可移除介质。
有形计算机存储介质包括易失性和非易失性介质,和可移除及不可移除介质,它们以任何方法或技术实施,用于存储信息,诸如计算机可读指令、数据结构、程序模块或其它数据。存储器504、可移除存储装置508和不可移除存储装置510都是计算机存储介质的示例。有形计算机存储介质包括但不限于RAM、ROM、电可擦除程序只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁性存储设备或可用于存储所需信息且可由计算设备500访问的任何其它介质。任何这种计算机存储介质都可为计算设备500的部分。
计算设备500可包含允许设备与其它设备通信的通信连接512。计算设备500还可具有输入设备514,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。还可以包括输出设备516,诸如显示器、扬声器、打印机等等。所有这些设备都是本领域熟知的,且不需要在此详细讨论。
应理解,本文描述的各种技术可结合硬件或软件,或在适当之处结合两者来实施。因此,当前公开主题的方法和装置,或其某些方面或部分可采用埋置在有形介质中的程序代码(即,指令)的形式,所述有形介质诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质,其中在程序代码被载入且被机器(诸如计算机)执行时,所述机器成为用于实践本文公开的主题的装置。在程序代码在可编程计算机上执行的情况中,所述计算设备一般包括处理器、所述处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。一个或多个程序例如可通过使用应用编程接口(API)、可重用控件或类似物来实施或利用结合本文所公开主题描述的过程。这种程序可以高级程序或面向对象的编程语言实施,以与计算机系统通信。然而如果需要,程序可以汇编或机器语言实施。在任何情况下,所述语言都可以是编译的或解译的语言,且其可与硬件实施方式结合。
虽然以对结构特征和/或方法动作特定的语言描述了主题,但是应理解,随附权利要求中定义的主题不一定受限于上文描述的特定特征或动作。相反,上文描述的特定特征和动作被公开作为实施权利要求的示例形式。
Claims (18)
1.一种在远程访问系统中提供客户端流量控制的方法,其包括:
将消息从服务传送到客户端,所述服务被所述客户端远程访问,并且所述消息包括服务序列ID SSI;
响应于所述客户端完成处理具有与所述消息关联的特定SSI的消息,在所述服务处接收来自所述客户端的客户端序列ID CSI;
在所述服务处确定传送到所述客户端的当前SSI与从所述客户端接收的当前CSI之间的差;和
如果所述差大于预定停止窗口值,关闭从所述服务到所述客户端的通信。
2.根据权利要求1所述的方法,其还包括:
随后在所述服务处确定所述当前SSI与从所述客户端接收的后续CSI之间的差;和
如果所述差小于预定开始窗口值,开启从所述服务到所述客户端的通信。
3.根据权利要求2所述的方法,其中所述预定开始窗口值小于所述预定停止窗口值。
4.根据权利要求2所述的方法,其还包括根据网络情况和所述客户端的处理能力之一动态调节所述开始窗口值或所述停止窗口值。
5.根据权利要求1所述的方法,其还包括在所述服务处维持所述当前SSI和CSI值以执行所述确定。
6.根据权利要求1所述的方法,其还包括:
在所述客户端处提供客户端层;
提供与所述服务关联的服务层,所述服务层具有从所述客户端接收的消息的服务接收队列,和要发往所述客户端的消息的服务发送队列;和
提供服务器层,其作为在所述客户端与所述服务之间发送的消息的通信代理,所述服务器层包含要发往所述客户端的消息的出站客户端队列。
7.根据权利要求6所述的方法,其还包括当从所述服务到所述客户端的所述通信关断时使消息在所述服务发送队列中排队。
8.根据权利要求7所述的方法,其还包括在所述服务层中提供的服务层SDK中执行所述确定。
9.根据权利要求6所述的方法,其还包括:
通过确定具有特定SSI的消息未被所述客户端确认而检测所述客户端与所述服务之间的通信故障;和
在检测到所述故障时,重新发送具有所述特定SSI的所述消息。
10.根据权利要求6所述的方法,其还包括从所述服务发送队列重新发送所述消息。
11.根据权利要求1所述的方法,其还包括:
使用所述SSI检测所述客户端与所述服务之间的通信故障;和
在检测到所述故障时,重新发送具有确定未被所述客户端确认的特定SSI的消息。
12.根据权利要求1所述的方法,其还包括:
将所述服务作为在应用服务器上执行的非托管服务提供;
提供在远程访问服务器上执行的服务器远程访问程序,所述远程访问服务器通过第一通信连接与所述服务通信,且通过第二通信连接与所述客户端通信;
在所述远程访问服务器上通过所述第二通信连接接收来自所述客户端的连接;和
如果在从所述服务到所述客户端的所述通信被开启时,传送到所述客户端的所述当前SSI与从所述客户端接收的所述当前CSI之间的所述差不大于所述预定停止窗口值,或者如果在从所述服务到所述客户端的所述通信被关闭时,所述当前SSI与从所述客户端接收的后续CSI之间的差小于预定开始窗口值,则将消息从所述服务传送到所述客户端。
13.根据权利要求12所述的方法,其还包括将所述应用服务器和所述远程访问服务器作为不同节点提供。
14.一种对从服务到客户端的消息传送提供客户端流量控制的装置,其包括:
远程访问服务器,其具有用作在所述客户端与所述服务之间发送的消息的通信代理的服务器层,所述服务器层包含要发往所述客户端的消息的出站客户端队列;
第二服务器,其执行与所述服务关联的服务层,所述服务层具有从所述客户端接收的消息的服务接收队列和要发往所述客户端的消息的服务发送队列,
其中要发往所述客户端的所述消息包括服务序列ID SSI,并且从所述客户端接收的所述消息包括客户端序列ID CSI,其指示所述客户端完成处理具有与所述消息关联的特定SSI的消息,并且
其中所述服务确定当前SSI与从所述客户端接收的所述CSI之间的差是否大于预定停止窗口值,以在所述当前SSI与从所述客户端接收的所述CSI之间的所述差大于所述预定停止窗口值时,将从所述服务到所述客户端的通信关闭。
15.根据权利要求14所述的装置,其中所述服务还确定所述当前SSI与所述CSI之间的差是否小于预定开始窗口值,以在所述当前SSI与所述CSI之间的所述差小于所述预定开始窗口值时,开启从所述服务到所述客户端的通信。
16.根据权利要求15所述的装置,其中所述预定开始窗口值小于所述预定停止窗口值。
17.根据权利要求15所述的装置,其中根据网络情况和所述客户端的处理能力之一动态调节所述开始窗口值或所述停止窗口值。
18.根据权利要求14所述的装置,其中当从所述服务到所述客户端的通信关断时消息在服务发送队列中排队。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361900940P | 2013-11-06 | 2013-11-06 | |
US61/900,940 | 2013-11-06 | ||
US201361910189P | 2013-11-29 | 2013-11-29 | |
US61/910,189 | 2013-11-29 | ||
PCT/US2014/064242 WO2015069837A1 (en) | 2013-11-06 | 2014-11-06 | Apparatus and method for client-side flow control in a remote access environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106063205A CN106063205A (zh) | 2016-10-26 |
CN106063205B true CN106063205B (zh) | 2018-06-29 |
Family
ID=51987473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480064881.1A Expired - Fee Related CN106063205B (zh) | 2013-11-06 | 2014-11-06 | 远程访问环境中客户端流量控制的装置和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9584447B2 (zh) |
EP (1) | EP3066801A1 (zh) |
JP (1) | JP2016537884A (zh) |
CN (1) | CN106063205B (zh) |
CA (1) | CA2929648A1 (zh) |
HK (1) | HK1223209A1 (zh) |
WO (1) | WO2015069837A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106063205B (zh) * | 2013-11-06 | 2018-06-29 | 卡尔加里科技股份有限公司 | 远程访问环境中客户端流量控制的装置和方法 |
EP2988466B1 (en) * | 2014-08-18 | 2017-05-24 | Alcatel Lucent | Methods and devices for transmission of media content |
CN106302090B (zh) * | 2015-05-25 | 2019-10-22 | 阿里巴巴集团控股有限公司 | 一种消息处理方法、装置及系统 |
US10234305B2 (en) * | 2015-08-27 | 2019-03-19 | Here Global B.V. | Method and apparatus for providing a targeted map display from a plurality of data sources |
CN108737243A (zh) * | 2018-04-20 | 2018-11-02 | 平安科技(深圳)有限公司 | 会话消息质检方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6477590B1 (en) * | 1998-04-01 | 2002-11-05 | Microsoft Corporation | Method and system for message transfer session management |
EP1667017A1 (en) * | 2004-12-03 | 2006-06-07 | Microsoft Corporation | Efficient transfer of messages using reliable messaging protocols for web services |
EP1295428B1 (en) * | 2000-06-14 | 2009-04-01 | Nokia Inc. | Performance enhancement of transmission control protocol (tcp) for wireless network applications |
CN102014055A (zh) * | 2010-11-23 | 2011-04-13 | 中兴通讯股份有限公司 | Mtp2协议中流量控制的方法及系统 |
CN102045362A (zh) * | 2010-12-21 | 2011-05-04 | 北京高森明晨信息科技有限公司 | 一种基于udp协议的数据传输方法和系统 |
WO2013053304A1 (zh) * | 2011-10-09 | 2013-04-18 | 大唐移动通信设备有限公司 | 一种实现tcp传输的方法及装置 |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1155314A (ja) * | 1997-07-30 | 1999-02-26 | Nippon Telegr & Teleph Corp <Ntt> | データ転送制御方法 |
US6314452B1 (en) | 1999-08-31 | 2001-11-06 | Rtimage, Ltd. | System and method for transmitting a digital image over a communication network |
US6384821B1 (en) | 1999-10-04 | 2002-05-07 | International Business Machines Corporation | Method and apparatus for delivering 3D graphics in a networked environment using transparent video |
US6377257B1 (en) | 1999-10-04 | 2002-04-23 | International Business Machines Corporation | Methods and apparatus for delivering 3D graphics in a networked environment |
JP2001203697A (ja) * | 2000-01-19 | 2001-07-27 | Matsushita Electric Ind Co Ltd | フロー制御方法およびそれを実行する通信要素 |
US20050203673A1 (en) * | 2000-08-18 | 2005-09-15 | Hassanayn Machlab El-Hajj | Wireless communication framework |
US7519048B2 (en) * | 2000-12-28 | 2009-04-14 | Nec Corporation | Communication system and packet switching method thereof |
US7502860B1 (en) * | 2001-07-09 | 2009-03-10 | Cisco Technology, Inc. | Method and apparatus for client-side flow control in a transport protocol |
US7237007B2 (en) * | 2001-12-05 | 2007-06-26 | Qualcomm Incorporated | Method and system for flow control between a base station controller and a base transceiver station |
US7425307B2 (en) | 2002-09-23 | 2008-09-16 | Columbia Technologies, Llc | Enhanced subsurface scanning system, method and computer program product |
US7385615B2 (en) | 2002-10-21 | 2008-06-10 | Microsoft Corporation | System and method for scaling images to fit a screen on a mobile device according to a non-linear scale factor |
US7173635B2 (en) | 2003-03-25 | 2007-02-06 | Nvidia Corporation | Remote graphical user interface support using a graphics processing unit |
US8572249B2 (en) * | 2003-12-10 | 2013-10-29 | Aventail Llc | Network appliance for balancing load and platform services |
WO2006058343A1 (en) | 2004-11-29 | 2006-06-01 | The Board Of Trustees Of The Leland Stanford Junior University | Handheld portable volumetric workstation |
US7483939B2 (en) | 2005-08-25 | 2009-01-27 | General Electric Company | Medical processing system allocating resources for processing 3D to form 2D image data based on report of monitor data |
US7890573B2 (en) | 2005-11-18 | 2011-02-15 | Toshiba Medical Visualization Systems Europe, Limited | Server-client architecture in medical imaging |
US7502501B2 (en) | 2005-12-22 | 2009-03-10 | Carestream Health, Inc. | System and method for rendering an oblique slice through volumetric data accessed via a client-server architecture |
US7224642B1 (en) | 2006-01-26 | 2007-05-29 | Tran Bao Q | Wireless sensor data processing systems |
US8667120B2 (en) * | 2006-04-26 | 2014-03-04 | Nippon Telegraph And Telephone Corporation | Load control device and method thereof for controlling requests sent to a server |
US20070277115A1 (en) | 2006-05-23 | 2007-11-29 | Bhp Billiton Innovation Pty Ltd. | Method and system for providing a graphical workbench environment with intelligent plug-ins for processing and/or analyzing sub-surface data |
WO2008016320A1 (en) * | 2006-08-01 | 2008-02-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for collecting user activity in a telecommunications system |
WO2008061903A1 (en) | 2006-11-22 | 2008-05-29 | Agfa Healthcate Inc. | Method and system for client / server distributed image processing |
US7925100B2 (en) | 2007-07-31 | 2011-04-12 | Microsoft Corporation | Tiled packaging of vector image data |
WO2009067675A1 (en) | 2007-11-23 | 2009-05-28 | Mercury Computer Systems, Inc. | Client-server visualization system with hybrid data processing |
US8253732B2 (en) | 2008-01-03 | 2012-08-28 | International Business Machines Corporation | Method and system for remote visualization client acceleration |
US7912975B2 (en) * | 2008-03-03 | 2011-03-22 | Alcatel Lucent | System and method for application layer resource traffic control |
CN101651510B (zh) * | 2008-08-14 | 2013-01-16 | 中兴通讯股份有限公司 | 业务数据同步发送的恢复处理方法和装置 |
US8386560B2 (en) | 2008-09-08 | 2013-02-26 | Microsoft Corporation | Pipeline for network based server-side 3D image rendering |
WO2010121398A1 (en) * | 2009-04-24 | 2010-10-28 | Telefonaktiebolaget L M Ericsson (Publ) | A method and a system for providing mbms counting |
JP5681706B2 (ja) | 2009-05-28 | 2015-03-11 | ケイジャヤ、エルエルシー | 専用ウェブポータルを用いた医療用スキャンの高度可視化高速アクセス方法およびシステム |
TWI493500B (zh) | 2009-06-18 | 2015-07-21 | Mstar Semiconductor Inc | 使二維影像呈現出三維效果之影像處理方法及相關影像處理裝置 |
US20110010629A1 (en) | 2009-07-09 | 2011-01-13 | Ibm Corporation | Selectively distributing updates of changing images to client devices |
US8296359B2 (en) | 2010-07-12 | 2012-10-23 | Opus Medicus, Inc. | Systems and methods for networked, in-context, high resolution image viewing |
US9001135B2 (en) | 2010-09-18 | 2015-04-07 | Google Inc. | Method and mechanism for delivering applications over a wan |
US20120084350A1 (en) | 2010-10-05 | 2012-04-05 | Liang Xie | Adaptive distributed medical image viewing and manipulating systems |
US20120212405A1 (en) | 2010-10-07 | 2012-08-23 | Benjamin Zeis Newhouse | System and method for presenting virtual and augmented reality scenes to a user |
DE102010043783A1 (de) | 2010-11-11 | 2011-11-24 | Siemens Aktiengesellschaft | Verfahren und Anordnung zur Lastverteilung einer 3D-Verarbeitung von Bilddaten zwischen mindestens einem Client-Rechner und mindestens einem Server-Rechner eines Netzwerkes |
CN103262515B (zh) * | 2010-12-21 | 2017-04-12 | 皇家Kpn公司 | 用于处理电信网络中的服务请求的方法和系统 |
EP2663925B1 (en) | 2011-01-14 | 2016-09-14 | Google, Inc. | A method and mechanism for performing both server-side and client-side rendering of visual data |
EP2492832B1 (de) | 2011-02-22 | 2021-08-18 | Siemens Healthcare GmbH | Optimierung einer auf einem client-server-system implementierten softwareapplikation |
WO2012160499A1 (en) | 2011-05-23 | 2012-11-29 | Strangeloop Networks, Inc. | Optimized rendering of dynamic content |
US9420259B2 (en) | 2011-05-24 | 2016-08-16 | Comcast Cable Communications, Llc | Dynamic distribution of three-dimensional content |
WO2012170797A1 (en) | 2011-06-09 | 2012-12-13 | Ciinow, Inc. | A method and mechanism for performing both server-side and client-side rendering of visual data |
US8538920B2 (en) * | 2011-08-08 | 2013-09-17 | Hewlett-Packard Development Company, L.P. | System and method for storage service |
US9870429B2 (en) | 2011-11-30 | 2018-01-16 | Nokia Technologies Oy | Method and apparatus for web-based augmented reality application viewer |
US9665981B2 (en) | 2013-01-07 | 2017-05-30 | R.B. Iii Associates Inc | System and method for generating 3-D models from 2-D views |
US20140074913A1 (en) | 2012-09-10 | 2014-03-13 | Calgary Scientific Inc. | Client-side image rendering in a client-server image viewing architecture |
US9191782B2 (en) | 2013-03-12 | 2015-11-17 | Qualcomm Incorporated | 2D to 3D map conversion for improved navigation |
CN105814903A (zh) | 2013-09-10 | 2016-07-27 | 卡尔加里科技股份有限公司 | 用于分布式服务器侧和客户端侧图像数据渲染的体系结构 |
CN106063205B (zh) * | 2013-11-06 | 2018-06-29 | 卡尔加里科技股份有限公司 | 远程访问环境中客户端流量控制的装置和方法 |
-
2014
- 2014-11-06 CN CN201480064881.1A patent/CN106063205B/zh not_active Expired - Fee Related
- 2014-11-06 US US14/534,262 patent/US9584447B2/en active Active
- 2014-11-06 WO PCT/US2014/064242 patent/WO2015069837A1/en active Application Filing
- 2014-11-06 CA CA2929648A patent/CA2929648A1/en not_active Abandoned
- 2014-11-06 EP EP14803291.5A patent/EP3066801A1/en not_active Withdrawn
- 2014-11-06 JP JP2016528875A patent/JP2016537884A/ja active Pending
-
2016
- 2016-09-27 HK HK16111319.3A patent/HK1223209A1/zh unknown
-
2017
- 2017-02-23 US US15/440,358 patent/US9985913B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6477590B1 (en) * | 1998-04-01 | 2002-11-05 | Microsoft Corporation | Method and system for message transfer session management |
EP1295428B1 (en) * | 2000-06-14 | 2009-04-01 | Nokia Inc. | Performance enhancement of transmission control protocol (tcp) for wireless network applications |
EP1667017A1 (en) * | 2004-12-03 | 2006-06-07 | Microsoft Corporation | Efficient transfer of messages using reliable messaging protocols for web services |
CN102014055A (zh) * | 2010-11-23 | 2011-04-13 | 中兴通讯股份有限公司 | Mtp2协议中流量控制的方法及系统 |
CN102045362A (zh) * | 2010-12-21 | 2011-05-04 | 北京高森明晨信息科技有限公司 | 一种基于udp协议的数据传输方法和系统 |
WO2013053304A1 (zh) * | 2011-10-09 | 2013-04-18 | 大唐移动通信设备有限公司 | 一种实现tcp传输的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20170264574A1 (en) | 2017-09-14 |
EP3066801A1 (en) | 2016-09-14 |
US9985913B2 (en) | 2018-05-29 |
US20150127761A1 (en) | 2015-05-07 |
CN106063205A (zh) | 2016-10-26 |
HK1223209A1 (zh) | 2017-07-21 |
CA2929648A1 (en) | 2015-05-14 |
JP2016537884A (ja) | 2016-12-01 |
WO2015069837A1 (en) | 2015-05-14 |
US9584447B2 (en) | 2017-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105765923B (zh) | 客户端-服务器远程访问系统中提供客户端到非托管服务的连接的方法 | |
CN106063205B (zh) | 远程访问环境中客户端流量控制的装置和方法 | |
US10474514B2 (en) | Method for flow control and for reliable communication in a collaborative environment | |
US8898311B2 (en) | Data communication method and information processing device | |
US9294572B2 (en) | Session transfer and suspension in a remote access application framework | |
US9806943B2 (en) | Enabling planned upgrade/downgrade of network devices without impacting network sessions | |
CN103782541B (zh) | 一种提供远程访问至少一个应用程序的方法 | |
US9049175B2 (en) | Client-adjustable window size for connectionless transfer protocols | |
US10581976B2 (en) | Transmission control of protocol state exchange for dynamic stateful service insertion | |
US8782139B2 (en) | Transferring applications and session state to a secondary device | |
CN107431630A (zh) | 高度可扩展、容错的远程访问架构和与之连接的方法 | |
EP3313022B1 (en) | Resending method and device for hypertext transfer request, and client | |
US20210314414A1 (en) | Facilitating inter-proxy communication via an existing protocol | |
US20180034917A1 (en) | System and method for managing connections for data communications | |
CN104685486B (zh) | 防止tcp太快地变得太保守 | |
CN110233791B (zh) | 数据去重方法和装置 | |
US20140032726A1 (en) | Method and apparatus for configuring social networking site sharing functions | |
Niamanesh et al. | DRAPS: A Framework for Dynamic Reconfigurable Protocol Stacks. | |
Wang et al. | Realization of Transmission Control Protocol Based on μC/OS-II |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180629 Termination date: 20211106 |
|
CF01 | Termination of patent right due to non-payment of annual fee |