在多个远程访问服务器之间维持事务完整性的方法

文档序号:7949083阅读:235来源:国知局
专利名称:在多个远程访问服务器之间维持事务完整性的方法
技术领域
本发明的解说性实施例一般地涉及远程访问服务器,尤其涉及在故障期间维持远程访问解决方案中的事务完整性的方法。
背景技术
远程访问解决方案能使远离公司的工人安全地访问公司网络。通过使用IPSec VPN或SSL VPN,远程用户能以安全的方式访问公司网络。从客户端设备访问可通过一个或多个用于维持远程访问会话的网关服务器来路由。使用传统的远程访问解决方案,用于维持远程访问会话完整性的网关服务器故障会导致会话中断并丢失数据。
为解决网关服务器故障的问题,一些不同的传统方法被应用以保证在硬件或软件故障中系统资源的冗余和完全利用。在主动/被动服务器配置中,主动服务器主持一些执行进程和应用程序。该主动服务器可主持基于IPSec VPN的会话或基于SSL的会话。一个或多个其它服务器被指定为备份即故障替补(failover)服务器。该故障替补服务器具有执行正在主动服务器上执行的相同应用程序和进程的性能,但是该故障替补服务器直到被通报主动服务器出现问题时才执行应用和进程。因为可被看作静静地等待执行当备份服务器正运行在故障替补模式时正被执行在主动服务器上的应用和进程,该故障替补服务器在该配置中称为“被动”服务器。一旦被通知主动服务器上存在问题,故障替补服务器之一就作为新的主动服务器被选择,从先前“主动”服务器接收最后保存的状态/会话信息并以检测到故障/问题之前原主动服务器执行的方式继续执行。不幸的是,在从第一主动服务器到新指定的主动服务器的传送期间该主动/被动服务器装置会导致数据丢失。
不难理解,该故障替补服务器可设在相同的或分开的物理节点上。包括设于相同物理节点的故障替补服务器的实现方式面临这样的风险导致故障替补的故障与将同样会影响故障替补服务器的物理节点元件相关联。在包括独立物理源(如存储器、磁盘阵列、母板等)的独立的物理节点设置故障替补服务器降低了独立物理元件导致主动和故障替补服务器都出故障的风险,但增加了整个系统在硬件获得和管理上的成本。
另一提供服务器间冗余的方法是在主动/主动配置中安排服务器。在主动/主动配置中,主动和被动故障替补服务器都执行一组相同的应用程序和进程。当第一主动服务器发生故障时,第二主动服务器将资源分配给那些原来由故障服务器处理的应用实例和进程。
不幸的是,主动/被动和主动/主动故障替补服务器配置都不能保存远程访问会话的会话状态。没有一个传统故障替补执行允许远程会话状态被映射到故障替补服务器中而使故障替补服务器在不终止现有会话并不丢失数据的条件下被转换。理想的情况是要能够在影响主持远程会话的主动服务器的故障事件中保存现有远程会话和其会话数据。

发明内容
本发明的解说性实施例能够使远程会话状态在主网关服务器和主动故障替补服务器之间同步。从客户端设备发送到主持远程会话的主网关服务器的输入数据被传送到主持镜像会话的主动故障替补服务器。直到对故障替补服务器的数据分配被确认,输入数据的接收确认才被从主网关设备发回客户端设备。在主网关服务器上从远程会话中对应用资源的请求是允许的,然而那些从运行在故障替补服务器上的镜像会话中请求的应用资源被截取并丢弃以防止应用资源冲突。响应从主网关服务器到运行在后端服务器上的应用资源的请求的被接收的数据,在被传送到客户端设备之前同样地被映射到故障替补服务器。在从运行在故障替补服务器上的镜像会话中被截取的同时,该响应被从主网关服务器提交给客户端设备。在影响主网关服务器的故障事件中,主持映射的会话的故障替补服务器之一被选作为主动服务器,并且其权限被改变以允许新选择的主网关与客户端设备和应用资源通信。
依据本发明的一个方面,在远程访问解决方案中提供替补冗余的系统包括后端服务器上的至少一个应用资源故障替补。该系统还包括多个网关服务器。多个网关服务器之一被指定为主网关服务器,而其它服务器被指定为故障替补网关服务器。多个网关服务器中每一个主持与同一应用的至少一个执行应用实例的会话,替补网关服务器上的各会话被维持在与主网关服务器上的会话相同的状态。该主网关服务器是网关服务器中唯一被允许与应用资源通信的服务器。该系统还包括用VPN与主网关服务器通信的客户端设备。该客户端设备用VPN接收在主网关服务器上执行的会话中的应用实例的输出。该客户端设备也通过VPN将输出发送到主网关服务器。被接收的输出由客户端设备在阅读器上显示。
依据本发明的另一方面,在远程访问解决方案的方法中提供故障替补冗余的方法,包括在后端服务器上提供至少一个应用资源的步骤。该方法还包括将多个网关服务器之一指定为主网关服务器而将其它服务器指定为故障替补网关服务器的步骤。每个网关服务器主持与同一应用的至少一个执行应用实例的会话。该主网关服务器是多个网关服务器中唯一被允许与至少一个应用资源通信的服务器。该方法还包括在故障替补网关服务器上以与主网关服务器上的会话相同的状态维持会话的步骤。此外,该方法包括在通过VPN与主网关服务器通信的客户端设备处接收在主网关服务器上的会话中执行的至少一个应用实例的输出,被接收的输出由客户端设备在阅读器上显示。


本发明的特征在所附的权利要求中指出。上面描述的本发明的优点和本发明的其他优点通过参照下面结合附图的描述当可更好地理解,其中图1表示适于用多网关服务器前面的前端服务器来实现本发明的解说性实施例的环境;图2A表示本发明中使用的典型计算机的模块图;图2B表示计算机系统的实施例,在该计算机系统中,处理器通过存储器端口直接与主存通信;图3是本发明的解说性实施例中将指向主网关服务器上的主动会话的数据映射到故障替补服务器上的故障替补会话的步骤顺序的流程图;图4是本发明的解说性实施例中从应用资源请求数据并将响应映射到故障替补会话的步骤顺序的流程图;图5表示一可选实施例,其中,应用屏幕缓冲器被保持与由瘦客户机或公用信息机请求的远程会话保持同步;图6是解说性实施例中在主网关服务器中检测故障并向从故障替补服务器中选出的新的主网关服务器传送的步骤顺序的流程图。
具体实施例方式
本发明的解说性实施例提供了从主动主网关服务器到主动故障替补服务器镜像会话的能力。通过复制所有从客户端接收的输入和所有从应用资源接收的响应,故障替补会话能被维持在与客户端设备借以进行通信的主网关服务器上的会话相同的状态上。在故障事件中,现有的会话可在不中断会话并具有最少数据丢失的条件下传送到故障替补服务器(该服务器成为主网关服务器)。
图1描述了适于实现本发明的解说性实施例的环境。包含代理12的客户机10通过网络20与前端服务器30通信。该前端服务器30包含分配进程32。该分配进程32复制并将从客户端设备接收的数据分配到主网关服务器40上的主动远程会话42和故障替补服务器50、60和70上的镜像故障替补会话52、62和72。分别运行在各主动和故障替补会话42、52、62和72上的应用实例44、54、64和74,可从由后端服务器80主持的应用资源82请求数据。应用资源82对执行应用实例的数据请求的响应被返回到前端服务器30,以分配到主动会话42和故障替补会话52、62和72的的分配进程32。
现在更详细地参照图1,客户机10可在网络20上通过建立IPSECVPN或SSL VPN来与在主网关服务器40上建立的远程会话(主动会话42)通信。该客户机可包括缓冲器14,其中代理12缓冲被发送到主网关服务器40的数据的副本,直到从主网关服务器接收到确认。网络20可为互联网、局域网(LAN)、广域网(WAN)、外部网、企业内部网、无线网络、卫星网络或能够允许客户机10与主网关服务器40上的主动会话42通信的其它类型的网络。主网关服务器40和故障替补服务器50、60和70可包含网络地址转换(NAT)表46、56和76,允许服务器在由主VPN服务器建立远程会话期间执行分配给客户机10的IP地址的NAT。如前所述,主动会话42和故障替补会话52、62和72可包含执行应用实例44、54、64和74,它们从后端服务器80上的应用资源82请求数据。如下面将更详细阐述的,故障替补服务器50、60和70还包含过滤器56、66和76,在故障替补服务器工作在故障替补模式时它们将从替补会话52、62和72到应用资源82的请求过滤并丢弃对于故障替补过滤器。应用资源82对在主动会话42中的执行应用实例44的请求的响应被路由连接到分配进程32上,以分配到主动会话和故障替补会话52、62和72。本领域技术人员会认识到分配进程32的位置可在本发明的范围内变化,它可不设在前端服务器上而设在不同的网络可访问位置上,并且仍然执行本文描述的功能。
再来看图1,更具体地说,在许多实施例中,客户机10、前端服务器30和后端服务器80作为由惠普公司(Hewlett-PackardCorporation of Palo Alto,California)或戴尔公司(the Dell Corporation ofRound Rock,TX)制造的那样的个人计算机或计算机服务器被提供。图2A和2B描述了在那些实施例中作为客户机10、前端服务器30和后端服务器80使用的典型计算机200的模块图。如图2A和2B所示,各计算机200包括中央处理器202和主存储器204。各计算机200也可包括其它可选部件,如一个或多个输入/输出设备230a-230n(总体上用附图标记230表示),和与中央处理器202通信的高速缓存240。
中央处理器202是响应并处理从主存储器204中获取的指令的任何逻辑电路。在许多实施例中,中央处理器由微处理器部件提供,如由英特尔公司(Intel Corporation of Mountain View,California)制造的8088、80286、80386、80486、Pentium、Pentium Pro、PentiumII、Celeron或Xeon处理器;由摩托罗拉公司(Motorola Corporation ofSchaumburg,Illinois)制造的68000、68010、68020、68030、68040、PowerPC601、PowerPC604、PowerPC604e、MPC603e、MPC603ei、MPC603ev、MPC603r、MPC603p、MPC740、MPC745、MPC750、MPC755、MPC7400、MPC7410、MPC7441、MPC7445、MPC7447、MPC7450、MPC7451、MPC7455、MPC7457处理器;由Transmeta公司(Transmeta Corporation of Santa Clara,Califomia)制造的CrusoeTM5800、Crusoe TM5600、Crusoe TM5500、Crusoe TM5400、EfficeonTM8600、Efficeon TM8300或Efficeon TM8620处理器;由国际商用机器公司(International Business Machines of White Plains,New York)制造的RS/6000处理器、RS64、RS 64II、P2SC、POWER3、RS64III、POWER3-II、RS 64IV、POWER4、POWER4+、POWERS或POWER6处理器;或由先进微器件公司(Advanced Micro Devices of Sunnyvale,California)制造的AMD Opteron、AMD Athalon 64FX、AMD Athalon或AMD Duron处理器。
在图2A所示的实施例中,处理器202通过系统总线220(下面更详细描述)与主存储器204通信。图2B描述了计算机系统200的实施例,其中处理器通过存储器端口与主存储器204直接通信。例如,图2B中,主存储器204可为DRDRAM。
图2A和2B描述了这样的实施例,其中主处理器202通过二级总线(有时称为“后部”总线)直接与高速缓存240通信。在其它的实施例中,主处理器202用系统总线220与高速缓存240通信。高速缓存240通常具有比主存储器204更快的响应时间,并且一般由SRAM、BSRAM或EDRAM提供。
在图2A显示的实施例中,处理器202通过局部系统总线220与各种I/O设备230通信。各种总线可用于连接中央处理器202和I/O设备230,包括VESA VL总线、ISA总线、EISA总线、微通道结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于在其中I/O设备是视频显示器的实施例,处理器202可使用高级图形接口(AGP)与显示器通信。图2B描述了计算机系统的实施例,其中,主处理器202通过HyperTransport、Rapid I/O或InfiniBand直接与I/O设备230b通信。图2B也描述了在其中局部总线和直接通信被混合的实施例处理器202在与I/O设备230b通信时使用局部互联总线与I/O设备230a通信。
相当多种类的I/O设备230可出现在计算机系统200中。输入设备包括键盘、鼠标、跟踪球、微型电话和画图板。输出设备包括视频显示器、扬声器、喷墨打印机、激光打印机和热染料升华(dye-sublimation)打印机。I/O设备还可为微计算机系统200提供大容量存储器如硬盘驱动器、用于接收如3.5寸、5.25寸盘的软盘的软盘驱动器或ZIP盘、CD-ROM驱动、CD-R/RW驱动、DVD-ROM驱动这样的由Twintech工业公司(Twintech Industry,Inc.of Los Alamitos,California)制造的设备。
在另一些实施例中,I/O设备230可为系统总线220和外部通信总线之间的桥梁,这些外部通信总线例如是USB总线、Apple Desktop总线、RS-232连续连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、Gigabit Ethernet总线、异步传送模式总线、HIPPI总线、SeriaIPlus总线、SCI/LAMP总线、FibreChannel总线或Serial Attached small computer system interface总线。
图2A和2B中描述的这类通用台式计算机通常在操作系统的控制下运行,该操作系统控制任务和对系统资源访问的时序。除了其他操作系统,典型的操作系统包括微软公司(Microsoft Corp.ofRedrnond,Washington)制作的MICROSOFT WINDOWS、苹果电脑公司(Apple Computer of Cupertino,California)制作的MacOS、国际商用机器公司(International Business Machines of Armonk,New York)制作的OS/2以及Caldera公司(Caldera Corp.of Salt Lake City,Utah)发布的可免费得到的操作系统Linux。
对于其中客户机10作为移动设备的实施例,客户端设备可为JAVA启动的移动电话,如摩托罗拉公司(Motorola Corp.ofSchaumburg,Illinois)制造的i50sx、i55sr、i58sr、i85s、i88s、i90c、i95cl或im11000;日本京瓷公司(Kyocera of Kyoto,Japan)制造的6035或7135;或者韩国三星电子公司(Samsung Electronics Co.,Ltd.,of Seoul,Korea)制造的i300或i330。在其中客户机10为移动的其他实施例中,客户端设备可以是在PalmOS操作系统控制下运行的个人数字助理(PDA),如palmOne公司(palmOne,Inc.of Milpitas,California)生产的Tungsten W、V II、V II x、i705。在另一些实施例中,客户端设备20可为在PocketPC操作系统控制下运行的个人数字助理(PDA),如惠普公司(Hewlett-Packard Corporation of Palo Alto,Caiifbrnia)生产的iPAQ 4155、iPAQ 5555、iPAQ 1945、iPAQ 2215和iPAQ 4255或美国东芝公司(Toshiba America,Inc.of New York,New York)生产的Toshiba PocketPC e405。在再一些实施例中,客户端设备是PDA/电话设备如palmOne公司(palmOne,Inc.of Milpitas,California)制造的Treo180、Treo 270或Treo 600的结合。在又一实施例中,客户端设备20是在PocketPC操作系统控制下运行的移动电话,如摩托罗拉公司制造的MPx200。
由图1所示的体系结构中描述的部件执行的功能可参照图3进一步阐述。图3是本发明中将指向主网关服务器上的主动会话的数据映射到故障替补服务器上的故障替补会话的步骤顺序的流程图。在主网关服务器40上的初始远程主动会话42建立后(在客户机10验证后)和在故障替补服务器50、60和70上的相对应的故障替补会话52、62和72建立后,前端服务器30从客户机接收指向主动会话的输入(步骤300)。前端服务器30上的分配进程32将输入数据复制并分配给主动会话42和故障替补会话52、62和72(步骤302)。然后主动会话42和故障替补会话52、62和72中的应用实例处理所接收的数据(步骤304)。
然后分配进程32询问主动和故障替补会话42、52、62和72以判断会话状态是否同步(步骤306)。由于服务器之间的处理速度和网络中等待时间延迟可能不一致,该同步检验是必要的。在一些备选实现中,主网关服务器40和故障替补服务器40、50和60配置成不先被查询就将它们的会话状态报告给分配进程32。在另一实现中,一个与分配进程不同的进程的任务是检验会话42、52、62和72的状态的同步。如果会话状态被确定为未同步(步骤307),则执行延迟,直到来自分配进程的再一个查询来判断同步状态(步骤306)。如果会话状态被同步(步骤307),则将由主网关服务器40上主动会话42中的应用实例44执行的处理的结果通报给客户机(步骤308)。由应用实例在故障替补会话52、62和72中进行的试呼由网络堆栈上的各过滤器46、56和66过滤,并且信息包被丢弃。
类似的过程被执行,以在会话中执行的应用实例请求应用资源在的期间保持主动和故障替补会话状态同步。图4是本发明解说性实施例中从应用资源请求数据并将响应映射到故障替补会话的步骤顺序的流程图。该顺序在主动会话42中的应用实例44(和故障替补会话52、62和72中相对应的应用实例54、64和74)识别需要的应用资源(步骤320)时顺序开始。然后所有会话中的应用实例44、54、64和74从后端服务器80请求应用资源82(步骤322)。这些产生于故障替补会话52、62和72中的应用实例54、64和74的请求分别被故障替补服务器50、60和70的网络堆栈上的过滤器58、68和78过滤。被过滤的信息包被丢弃(步骤324)。主动会话42中的请求被提交给后端服务器80上的应用资源82(步骤326)。对该请求的响应被路由到前端服务器上的分配进程32(步骤328)。在一实施例中,该响应首先被发送到主持主动会话42的主网关服务器40,而后提交给分配进程32。在另一实施例中,不同于用来从客户机接收输入数据的分配进程的独立分配进程可用于分配应用资源响应。
继续看图4,在从应用资源收到响应之后,分配进程将响应数据转交给主动和故障替补会话42、52、62和72(步骤330)。然后主动会话42和故障替补会话52、62和72中的应用实例44、54、64和74处理该源数据(步骤332)。如同从客户机接收的数据一样,进行查询来判断会话状态是否被同步(步骤333)。如果状态不同步,该查询会重复直到接收到肯定的响应。一旦会话状态同步,主动会话42中的应用实例将它的数据处理结果传送给客户机10。故障替补服务器上的应用实例54、64和74也试图将它们的结果传送给客户机10,但信息包被分别在故障替补服务器50、60和70上的网络过滤器58、68和78截取并丢弃(步骤334)。
在解说性实施例的另一方面,本发明也可在“瘦客户机”或公用信息机体系结构中实现,其中,所有的处理在服务器上发生,且只有屏幕数据被从远程会话42下推到客户机10。图5描述了一备选实施例,其中,应用屏幕缓冲器为从瘦客户机或公用信息机请求的远程会话而保持同步。该客户机400可为具有有限处理能力的瘦客户机如PDA或便携式电话或可为带有显示器和输入设备的公用信息机终端。客户机通过网络402建立到主网关服务器410的远程会话。该连接可使用微软公司的RDP(远程显示协议)或Citrix Systems公司(Citrix Systems,Inc.of Fort Lauderdale,Florida)的ICA。当客户机400通过主网关服务器提供的安全网络URL登录时,可建立会话。该主网关服务器接受连接请求并建立远程主动会话412。本解说性实施例也在故障替补服务器420和430上建立故障替补会话422和432。该主动会话412和故障替补会话422和432被类似地提供并分别包括执行应用实例414、424和434。各应用实例分别具有相关的屏幕缓冲器416、426和436。主网关服务器上的分配进程418,以前述模式将从客户机400接收的输入数据复制并分配给各会话412、422和432。在一备选实施例中,分配进程418可位于前端服务器上。应用实例414、424和434可用来自主网关服务器的正被传送的请求和来自故障替补服务器420和430的正被截取并丢弃的请求从后端服务器440请求应用资源442。如前所述,在由执行应用实例414、424和434执行处理之后,对客户机400的响应被延迟直到所有的屏幕缓冲器416、426和436处于相同状态。然后,主网关服务器上的屏幕缓冲器416的内容(或在使用优化技术时经改变的内容)通过连接被下推到客户机400。应用实例424和434将它们的屏幕缓冲器426和436的内容发送到客户机400的试呼被截取并且其信息包被丢弃。
本发明执行的会话状态的同步使得能够不中断远程会话地从故障网关服务器切换到代替网关服务器,并且保证了最少的数据丢失。代理12可缓冲从客户机10发送的数据的副本(如果可靠的协议如TCP被使用)。本发明中,直到所有的会话都同步时才返回对从客户机接收数据的确认。因此代理10缓冲任何被发送数据的副本直到从主网关服务器接收到确认,然后丢弃数据。在主网关服务器40的任何后续故障事件中,由客户机发送到主网关服务器上的数据出现在故障替补会话之一中。类似地,从应用资源接收的数据也被分配到主动和故障替补会话以使它们保持同步。如果没有从主网关服务器接收到确认,被缓冲的数据会再发送给新指定的主网关服务器。
此外,当远程连接最初被建立时,分配给客户机10的IP地址不但被分配给在一实施例中正为客户机执行NAT的主网关服务器40,而且分配给故障替补服务器50、60和70。当主网关服务器40的故障被检测到时,故障替补服务器50、60和70之一被选择为主网关服务器并且改变它的属性使其能够胜任该角色。在网络堆栈上的防止故障替补服务器50、60和70与客户机10和应用资源82通信的过滤器58、68或78,成为对于新指定的主网关服务器不起作用。该新选定的主网关服务器用前面发送的IP地址和新选主网关上的NAT表58、68或79截取从客户机接收或指向客户机的通信。将经映射的会话状态与在主网关服务器故障之前由故障替补服务器知晓的客户机IP相结合,就能够实现具有最小限度的数据丢失的且不需要重新建立新远程会话的平滑切换。
主网关服务器40的故障检测可通过不同的方式发生。用于检测服务器故障的方法会依赖于服务器的部署方式。例如,主网关服务器可被安排为群集计算机系统中的节点。群集计算机系统中的节点经常通过专用通信信道彼此发送“搏动”信号(也称为“响应”或“激活”信号)。该搏动信号/信标指出节点是否是活动的并响应群集计算机系统中的其它节点。该搏动信号由各节点周期性地发送,所以如果一个或多个节点在规定时间内未从另一个节点接收到搏动信号,就可怀疑有节点故障。
主网关服务器故障的最终确定可由控制网关服务器的故障替补策略(故障替补策略)支配。该故障替补策略指出在什么情况下,主网关服务器可被认为有故障。例如,在上面讨论的群集计算机系统中,在具有多个故障替补服务器的实施例中,其策略可能需要至少两个故障替补服务器在规定时间内还没有从主网关服务器接收到搏动信标。或者,故障替补策略也可以是需要所有的故障替补节点没有从主网关服务器上接收到搏动信标。本领域技术人员会认识到一些其它方法可单独使用或结合使用来检测网关服务器故障,如给主网关服务器发脉冲(ping)来检查其健康状况。为了检验主网关服务器故障,可在没有接收到搏动标记后发脉冲。
一旦检测到主网关服务器的故障,就可用不同的方法从故障替补服务器中选择新的主网关服务器。该服务器可基于名称或通过对服务器标识符执行数学运算来选择。或者,该选择也可基于服务器处理属性(速度、存储量等)或下一个主网关服务器可已由系统管理员预先指定。对于本领域技术人员来说,还会有其它的选择可能。
图6描述了本发明处理主网关故障的步骤顺序。该顺序开始于指定主网关服务器和故障替补网关服务器顺序(步骤500)。故障替补服务器的指定启用了这些服务器的网络堆栈上的过滤器并使NAT表不起作用。当远程会话被建立时,分配给客户机的IP地址被转交给故障替补服务器。然后主网关服务器被查询以确定其健康状态(步骤502)。如果主网关服务器被确定正常(步骤503),该查询以设定的时间间隔重复执行。如果主网关服务器有故障(步骤503),则从故障替补服务器中选择新的主网关服务器并且将其属性改变以使它的过滤器失效,它处理来往于客户IP的通信并且服务器上的NAT表被启用(步骤504)。
本发明可作为在一个或多个产品之上或之中体现的一个或多个计算机可读程序提供。该产品可为软盘、硬盘、压缩盘、数字通用盘、闪存卡、PROM、RAM、ROM或磁带。通常,计算机可读程序可以任何编程语言被执行。一些可用的语言例如包括C、C++、C#或JAVA。软件程序可作为目标代码存储在一个或多个产品之上或之中。
因为可在不背离本发明范围的前提下进行某些改变,所以可预期所有包含在上面描述或显示在附图中的内容的阐述是解说性的并且不局限于其字面意思。本领域技术人员会知道本文中描述的系统配置是落入本发明保护范围内的多例可能的系统配置。同样,在说明性流程图中采用的步骤顺序均是举例,并不是本发明范围内的唯一的步骤顺序。类似地,除了本文所提到的,在不背离本发明范围的前提下,也可用其它数据结构来保持数据。
权利要求
1.在远程访问解决方案中提供故障替补冗余的系统,包括至少一个后端服务器上的应用资源;多个网关服务器,所述多个网关服务器之一被指定为主网关服务器,而所述多个网关服务器中的其它服务器被指定为故障替补网关服务器,所述多个网关服务器中的每一个为同一应用主持具有至少一个执行应用实例的会话,所述故障替补网关服务器上的各会话被保持在与所述主网关服务器上的会话相同的状态,所述主网关服务器是所述多个网关服务器中唯一被允许与至少一个应用资源通信的服务器;以及客户端设备,通过VPN与所述主网关服务器进行通信,所述客户端设备通过VPN接收至少一个在会话中执行的所述主网关服务器上的的应用实例的输出并将输入通过VPN发送给所述主网关服务器;所述接收的输出由所述客户端设备在阅读器上显示。
2.权利要求1所述的系统,还包括各所述故障替补网关服务器上的过滤器,其中由所述故障替补网关服务器上的各会话中的执行应用实例发送的、定址到至少一个应用资源的信息包被截取并丢弃。
3.权利要求1所述的系统,其中由所述主网关服务器上的会话通过VPN从所述客户端设备接收的输入,被中继到所述故障替补网关服务器上的各所述会话中的各所述执行应用实例。
4.权利要求1所述的系统,其中所述主网关服务器上的所述会话中的所述执行应用实例接收对向至少一个应用资源的请求的应答,所述应答被复制并转交给各故障替补网关服务器上的各会话。
5.权利要求1所述的系统,其中所述主网关服务器延迟对所述客户端设备的数据传送,直到各所述故障替补网关服务器上的所述会话与所述主网关服务器同步。
6.权利要求1所述的系统,其中所述客户端设备和所述主网关服务器为分配给所述客户端设备的IP地址执行网络地址转换(NAT)。
7.权利要求6所述的系统,其中所述故障替补网关服务器中的一个选定服务器被选择来取代出故障的主网关服务器。
8.权利要求7所述的系统,其中所述故障替补网关服务器中被选择来取代所述出故障的主网关服务器的所述选定服务器,替所述出故障的主网关服务器为所述客户端设备IP执行NAT。
9.权利要求7所述的系统,还包括所述多个网关服务器上的各执行应用实例的关联屏幕缓冲器,与在故障替补网关服务器上执行的应用实例关联的所述屏幕缓冲器被保持在与所述主网关服务器上的所述执行应用实例的屏幕缓冲器相同的状态上。
10.权利要求9所述的系统,其中所述主网关服务器上的屏幕缓冲器中的内容的副本被转交给所述客户端设备进行显示。
11.用于在远程访问解决方案中提供故障替补冗余的方法,包括在后端服务器上提供至少一个应用资源;将多个网关服务器之一指定为主网关服务器,所述个网关服务器中的其它服务器被指定为故障替补网关服务器,所述多个网关服务器中的每一个为同一应用主持具有至少一个执行应用实例的会话,所述主网关服务器是所述多个网关服务器中唯一被允许与至少一个应用资源通信的服务器;将所述故障替补网关服务器上的所述会话保持在与所述主网关服务器上的所述会话相同的状态;以及在通过VPN与所述主网关服务器通信的客户端设备上接收在所述主网关服务器上的所述会话中执行的至少一个应用实例的输出,所接收的输出由所述客户端设备在阅读器上显示。
12.权利要求11所述的方法,还包括通过VPN将输入从所述客户端设备发送到所述主网关服务器上的所述会话中的所述执行应用实例;以及复制所接收的输入并将所复制的输入转交给在所述故障替补网关服务器上的所述会话中执行的各所述应用实例,以将所述故障替补网关服务器中的所述会话保持在与所述主网关服务器上的所述会话相同的状态。
13.权利要求11所述的方法,还包括将请求从所述主网关服务器上的所述会话中的所述执行应用实例发送到所述后端服务器上的应用资源;在所述网关服务器处接收对来自所述应用资源的请求的应答;以及在所述主网关服务器处复制所述应答并将所复制的应答转交给所述故障替补网关服务器上的所述执行实例。
14.权利要求11所述的方法,还包括将请求从所述故障替补网关服务器上的所述执行应用实例发送到所述后端服务器上的应用资源;在各自的故障替补网关服务器上截取所述请求;以及丢弃所述请求而不将所述请求转交给所述应用资源。
15.权利要求11所述的方法,其中所述主网关服务器用远程帧缓冲(RFB)协议来将与所述主网关服务器上的所述至少一个应用实例关联的屏幕缓冲器中的改变传送到所述客户端设备。
16.权利要求11所述的方法,其中所述主网关服务器用远程显示协议(RDP)将与所述主网关服务器上的至少一个应用实例关联的所述屏幕缓冲器中的改变传送到所述客户端设备。
17.权利要求11所述的方法,其中所述主网关服务器用ICA连接将与所述主网关服务器上的至少一个应用实例关联的所述屏幕缓冲器中的改变传送到所述客户端设备。
18.权利要求11所述的方法,还包括检测所述主网关服务器中的故障;以及选择一个指定的故障替补服务器作为新的主网关服务器,在所述选择之后,所述新的主网关服务器被允许与至少一个应用资源通信。
19.权利要求18所述的方法,还包括通过使用搏动信标协议来检测所述主网关服务器中的故障。
20.权利要求18所述的方法,还包括通过以预定的间隔对所述主网关服务器发脉冲来检测所述主网关服务器中的故障。
21.权利要求11所述的方法,还包括在所述主网关服务器处为分配给所述客户端设备的IP地址执行网络地址转换(NAT)。
22.权利要求21所述的方法,还包括在新的主网关服务器处为分配给所述客户端设备的IP地址执行网络地址转换(NAT)。
全文摘要
讨论了在远程访问解决方案中提供故障替补冗余的系统,其中包括后端服务器上至少一个应用资源。该系统还包括多个网关服务器。多个网关服务器之一被指定为主网关服务器,而其它服务器被指定为故障替补网关服务器。多个网关服务器中每一个为同一应用主持具有至少一个执行应用实例的会话,故障替补服务器上的各会话与主网关服务器上的会话保持在相同状态。主网关服务器是网关服务器中唯一被允许与应用资源通信的服务器。该系统还包括通过VPN与主网关服务器通信的客户端设备。该客户端设备通过VPN接收在主网关服务器上执行的会话中的应用实例的输出。该客户端设备也通过VPN将输入发送给主网关服务器。所接收的输出由客户端设备在阅读器上显示。
文档编号H04L29/06GK101076992SQ200580034849
公开日2007年11月21日 申请日期2005年8月11日 优先权日2004年8月13日
发明者G·P·劳, E·布吕格曼, R·罗德里格斯 申请人:塞特里克斯系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1