CN1182477C - 零漏失信息网服务系统及方法 - Google Patents

零漏失信息网服务系统及方法 Download PDF

Info

Publication number
CN1182477C
CN1182477C CNB011421770A CN01142177A CN1182477C CN 1182477 C CN1182477 C CN 1182477C CN B011421770 A CNB011421770 A CN B011421770A CN 01142177 A CN01142177 A CN 01142177A CN 1182477 C CN1182477 C CN 1182477C
Authority
CN
China
Prior art keywords
server
acquisition
requirement
requires
service
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
Application number
CNB011421770A
Other languages
English (en)
Other versions
CN1405698A (zh
Inventor
杨竹星
罗孟彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Accton Technology Corp
Original Assignee
Accton Technology Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Accton Technology Corp filed Critical Accton Technology Corp
Priority to CNB011421770A priority Critical patent/CN1182477C/zh
Publication of CN1405698A publication Critical patent/CN1405698A/zh
Application granted granted Critical
Publication of CN1182477C publication Critical patent/CN1182477C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种能使万维网服务具有零漏失能力的系统与方法,该系统包含有一服务器集群以及一分派装置。服务器集群包含有连接于一网络中的多个服务器,每一服务器可为连接至互连网上的客户提供万维网撷取服务,分派装置则包含有一路由机构。分派器将由客户所发送的撷取要求分派至集群中这些服务器中的对应一个,且路由机构能辨别客户所送出的每一个服务撷取要求之目的与类别,并在对应的服务器发生服务失效的情况时,将在该服务器上执行但尚未完成的服务撷取要求转移到另一服务器,能使该服务不会因为服务器系统的失效而中断、漏失。

Description

零漏失信息网服务系统及方法
技术领域
本发明涉及一种信息网服务(web service)系统及方法,特别是涉及一种可容错(fault tolerant)之信息网服务系统及方法。更具体地说,本发明涉及可承受服务器(server)之失效及超载(failure and overload)状况、以实现零漏失服务的一种可容错信息网服务系统及方法。
背景技术
构建于互连网(Internet)之上的万维网(World Wide Web),对于多种各式各样性质的商业服务而言,已经变成为一种重要的(在许多情况之下甚至是必要)的基础结构。因此,对于客户以及服务提供者(service provider)两者而言,信息网服务器的服务可靠度(service reliability)便成为一项重要的关键因素。而且,当信息网服务在本质上因为商业应用而变得更为多样化且更趋复杂时,如何提供一个具有高度可靠性、不会漏失任何使用者的服务撷取要求(user request)之服务器系统,更成为一个极具挑战性的重要课题
典型的情况是,一个网站(website)的可靠度,主要会受到两种问题的影响:服务器的失效以及超载问题。服务器失效的情形,是属于可能因为各种类型硬件或软件故障所引起的一种可靠性方面的问题;而服务器超载的情形,则通常会导致响应使用者服务撷取要求的速度趋缓,甚至将无法为使用者提供服务,因而造成使用者的服务撷取要求漏失的状况。对于任何一个商业网站而言,快速的反应以及高可靠度是必然的要求。在今日高度竞争的商业环境之中,服务的中断所代表的直接意义是收入的损失以及商誉的损伤。
要构建一个高效能且可靠的信息网服务器系统,有多种可能的作法是可行的。其中,多重式服务器(server replication),或者,服务器集群(serverclustering),是目前被学术界与工业界普遍认为最可行的系统结构,因为一个设计完善的服务器集群系统将具有许多优点:首先是高效能,因为这样的系统能集结多部电脑的能力来同时应付数以千、万计客户的服务撷取要求;其次是可扩充性(scalability),因为这种松散耦合的系统能够轻易地通过加入新的服务器而提高系统整体负载能力;最后则是高可用性(availability),也就是即使系统其中一两个服务器发生故障,由于系统中的其余服务器仍能够继续提供服务,能使得对外服务不至于因而中断。
在过去数年中,已有多种服务器集群的方案被提出。其实例包括有诸如C.Yoshikawa等人于1997年1月6至10日的1997 USENIX AnnualTechnical Conference中所提出的文章″Using smart clients to build scalableservices″,其中所讨论的客户端作法;R.McGrath等人于1995年11月IEEEComputer中″NCSA′s world wide web server:design and performance″的文章中所讨论的DNS别名(DNS aliasing)作法;Dias等人于1996年2月的Proceedings of the COMPCON′96中所提出的文章″A scalable and highlyavailable web server″,C.S.Yang等人于1998年4月29至5月1日期间的Proceedings of the 1998 International Symposium on Internet Technology中所提之文章″Design and implementation of an environment for building scalableand highly available web server″,以及G.D.H.Hunt等人于1998年4月的Proceedings of the 7th International World Wide Web Conference期间所提出的文章″Network dispatcher:a connection router for scalable Internet services″等,其中所讨论的TCP连接绕送(TCP connection routing)方案;以及D.Anderson等人于1997年的Journal of Parallel and Distributed Computing,Vol 42,pp.91-100中的文章″Towards a scalable distributed WWW server on networkedworkstations″中所讨论的HTTP redirection作法等。上述这些各种不同的方案,虽然的确可以实现上述集群式服务器系统的高效能、可扩充性、与高可用性等优点,不过,上述系统的可靠度对于当前商业性的网站而言仍嫌不足,因为当系统中的某一服务器因故障或超载而失效时,虽然后续的使用者撷取要求可由系统中的其他服务器来分担,但原先在故障的服务器上尚未完成的服务撷取要求将被漏失掉而无法被继续服务,本发明所提出的方法即为集群化服务器系统加入服务抗错性能(fault resilience of service),使得这些未完成的服务撷取要求能被移转至系统中的其他服务器上去并被继续执行,进而能达到系统服务零漏失的目的,并由此大幅度提高信息网服务的服务器系统之可靠度,能应付各种商业性网站之需求。
到目前为止,大部份信息网服务器集群的研究工作,是集中于如何在服务器节点群组之中进行服务要求的分配。不过,集群在这类方案或产品之中的服务器系统,只能利用其重复配置性来提供较高的可用性,其中并没有处理服务抗错的问题。Ingham等人评估过构建高度可靠信息网服务器的某些现有方案(2000年1/2月IEEE Internet Computing,Vol.4中之″Constructing dependable Web services″文章)。Ingham等人指出了为交易操作提供完整性(transactional integrity)的重要,也就是当系统中有某些服务器失效时,在这些服务器尚未被执行完成的服务撷取需求必须设法被接续服务,不能因系统失效而中断。根据他们的调查结果,在现有的系统之中,没有一个系统能提供如此的抗错能力而能满足交易完整性之需求。Y.M.Wang等人利用一种以applet为基础的方式,试图在客户端处理服务可用性的问题(1997年4月Proceedings of the Sixth International World Wide WebConference中之文章″HAWA:a client-side approach to high-availability webaccess″)。不过,这个方案无法针对服务器端的容错问题进行处理,此外以交易为基础的服务也未加说明。Singhai等人(1998年6月Proceedings of the28th Annual International Symposium on Fault-Tolerant Computing中之文章″System support for scalable and fault-tolerant Internet services″)与Chawathe等人(1998年9月Proceedings of Middleware′98中之文章″System support forscalable and fault-tolerant Internet services″),提出了可供构建具有高可用性之互连网服务的结构。此类系统的确可以提供较高的系统可用性,但这些系统无法提供服务抗错能力,因而不具有高可靠度。这些方案或系统,在发生服务器失效的情况时,都未说明如何能针对将未完成的服务撷取要求转移至其他服务器,以及当发生要求转移时,如何仍可以提供平稳的服务等问题进行处理。
现有的集群式服务器系统的另一个问题则是缺乏对于突然急剧激增的负载爆发情况之适应性。除了快速增加的信息网使用客户人口之外,万维网的另一个显著的特性则是其网上流量的高度变异性,一个平时是中等流量的网站可能随时会因某些特殊的事件,瞬间流入大量的使用者而触发显著的负载爆发情况,且这类的负载爆发可能会持续数小时、甚至数天的时间。例如,某些流行软件或商品新版本的发表,或者有某网站被宣布为「本月最佳网站」等事件都会造成流量暴增。其结果则是在服务器集群之中的某些节点,由于接收到远超过其负载能力的服务撷取要求而超载,导致系统反应速度趋缓进而停止运作。对于提供电子商务服务的这些网站而言,这些瞬间爆发涌入的服务要求可能仅是要求浏览一般的网页,然而这些过量负荷可能会压过其他更为重要的服务(例如,商品买卖服务或对较高收费客户的某些服务)撷取要求,使得该网站无法对这些重要的客户提供服务,这种问题是特别恼人。对于这类较重要服务的要求,甚至在服务器处于极重负载的情况之下,仍应该是具有可用性的。或者是说,这类服务要求,比之其他较为微不足道的服务要求,应能享受较高的优先权。
发明内容
因此,本发明之主要目的在于提供一种零漏失的信息网服务系统及方法,在服务器发生失效的情况之下,本发明可以容许远端客户正在进行的信息网服务撷取要求仍能够存在并持续提供服务。
本发明之另一目的在于提供一种零漏失信息网服务系统及方法,在服务器发生超载的情况之下,本发明可以容许远端客户正在进行的信息网服务撷取要求仍能够存在并持续提供服务。
本发明之又一目的在于提供一种零漏失信息网服务系统及方法,可以适应于负载爆增的情况。
本发明之又一目的在于提供一种零漏失信息网服务系统及方法,在要求转移发生的期间仍可以提供平稳的服务。
为了实现上述及其他目的,本发明整合了内容知悉路由(content-awarerouting)、TCP连接(TCP connection)的预先建立及再运用、两TCP连接之间信息包的无间隙转送、以及容错回复机制,因而得以利用包含有一路由机制的一分派器,在服务器发生服务失效的情况时,将客户之撷取要求转移到另一服务器上,因而可以在一个提供客户网络撷取服务的零漏失通讯系统之中,有效地提供抗错性。
附图说明
在参考附图及后面的说明文字,配合说明而非限定性质的较佳实施例进行详细说明之后,可以更易于了解本发明之前述目的及其他特征与优点。
图中:
图1的示意图显示采用本发明零漏失信息网服务系统与方法的一个信息网撷取服务;
图2为一时序图,其中显示依据本发明一实施例而处理以互动过程相关服务要求之一通讯协议之运作情形;
图3为一方块图,其中显示可在本发明之信息网服务系统中避免单点失效缺点,具有多个个别分派器的一分派装置之结构;及
图4为一流程图,其中显示在服务器发生失效的情况之下,依据本发明一实施例之要求处理方法之处理流程。
具体实施方式
为了提供零漏失的信息网服务,本发明公开了一种结构机制,它可以在服务器发生失效或超载的情况之下,将正在进行中的任一信息网服务撷取要求平稳顺利地转移到另一工作节点上,并且予以回复,继续进行处理。其目的在于提供完全无漏失的零漏失信息网服务。换句话说,依据本发明较佳实施例所构建之系统,甚至在服务器发生失效或超载的情况之下,也可以确保任何使用信息网的客户所送出的服务要求,都不会发生漏失的情形。
在本发明集群服务器之一较佳实施例之中,需要有一种要求路由机制(request-routing mechanism)来将进入至服务器的服务撷取要求加以分派,以达到最佳的反应特性。为了要能够有效地支援零漏失的信息网服务,这种要求路由机制必须要具有至少两种能力,即,对于送入要求的判别(discrimination)与转移(migration)的能力。系统管理者也可以特意将某些类别的服务之优先权加以调整,以给予确保容错的支援,或给予较高程度的服务性能。
图1以示意方式显示采用了本发明零漏失信息网服务系统100的一个万维网撷取服务。在此系统之中,一名使用者(客户)110,可以撷取一个特定的网站150,以要求其所需求的服务。网站150拥有由多个服务器141,142,...与149所组成的一个服务器集群140。集群140通过一个分派器130而连接至一网络120上(此网络之一种实例系为互连网)。
在此应注意到,图1的示意图中所显示的分派器130包含有一个分派装置131与一个网络交换装置(network switch device)132。本领域的技术人员可以理解的是,分派器130也可以是一台单独且限定用途的微电脑,或是以微控制器(microcontroller)为基础的一种分派装置(dispatcher device),此类装置可以不需要有诸如图中所显示的网络交换装置132的配合,便可以独立运作。不过,在图1之示意图中,分派装置131可以是以一部PC为基础的专用分派电脑,其主要作用即为本说明中所将描述之分派作业。
分派器130是负责将客户110所发出的撷取要求,分派给予集群140之中的某一台最适恰的服务器(所谓“适恰”将在后面有所说明)。如同后面所将说明的,对于每一名客户所发出的每一个服务要求,分派器会将送进来的要求指派给适当的一台服务器进行处理;不过,由图中集群140中的被指派服务器所提供的、将被送出的响应信息,则可以不经过分派器130的处理,分派器130可以经由网络120,而将这些响应信息转递回送给发出要求的客户110。为此,分派器130便必须执行一种路由机构,如图中以参考标号135而以示意方式所示。
为了在服务器发生失效或超载的情况之下达到零漏失的信息网服务,由分派器130所构建的该路由机构135,它为网站的集群140所提供的服务必须要具有两种重要的能力:状态记录与回复。也即,使用者所发出要求的某些中间阶段状态,必须要由记录机制加以记录下来。当服务器失效的情况发生时,回复机制即得以由失效(或超载)的节点上取出这些正进行处理中的要求之状态,并由其他的服务器继续进行处理。这会需要为新被指派的工作节点提供一组有效的中间状态才得以顺利进行。
但是,假使送进来的所有要求,都必须加以记录的话,整个工作便会变得过度庞大而不切实际。在今日的网站之中,送进来的服务撷取要求之类型,可以大致被区分为静态的网页、由诸如CGI语言程序(CommonGateway Interface scripts)所产生的动态网页内容、或与交易(transaction)有关者等三种类型的服务。事实上,依据本发明,若要达成中断要求的回复,并不需要将所有的要求全部记录下来。如此,信息网服务器集群140的路由机构135必须要具有知悉要求内容的能力,以便可以将这些对于进行回复的动作有着关键条件的要求加以区分出来。至于如何可以将一个中断失效的信息网服务要求加以回复,并继而可以使其在另一个节点上继续进行处理,是另一个复杂的问题,特别是,这样的一种回复机构,对于使用者而言,必须是透明的(transparent),换言之,使用者完全不会察觉中间多了这样的一个机构。此外,这个将撷取要求转移的过程必须要尽可能地平稳。本发明正是提出一个有效率的方法来达到这些要求。
要求之判别
适合于本发明之系统的一个基本的要求路由机构之实施例,可以以分派器为基础而构建起来。在图1之中,执行路由机制的分派器节点,例如,节点131,这个分派器将会预先建立一个数量的持续性TCP连接(persistentTCP connection)至后端的服务器节点,然后在分析过客户端送来的的服务撷取要求后,将该服务需求通过预先建立的TCP连接分派至此被指派的服务器节点上去。注意到在下面的说明段落之中,为了方便进行说明的缘故,采用互连网作为实例,但本领域技术人员可以理解的是,任何网络120,包含公司的内部网络(corporate intranets)、个人网络(personal networks)以及家庭网络(home networks)等类似网络,都是可以适用的。当一名客户尝试要撷取某一特定服务或网页内容时,首先客户端的浏览器必须要产生出一个TCP(传输控制协议)连接,于是客户端会送出一个TCP连接建立要求,具体来说,会送出一个带有TCP SYN的信息包(packet)。当分派器察觉到这样一个TCP连接要求后,分派器会响应此连接建立要求直至与其建立起一个TCP连接。当客户端与分派器建立起TCP连接后,客户端才会送出其真正的服务撷取要求,也就是送出承载了HTTP(超文本传输协议)要求的信息包,该HTTP要求之中会包含有要求的方法、URL(统一资源定位符,指明其所要求的特定内容)以及其他的HTTP客户标题(header)信息(例如,主机,cookies,等)。
此时,分派器会检查HTTP标题的内容,以便决定该要求的类型以及如何转送该要求。当分派器选择了最适合处理此要求的一部服务器时,接着会由目标服务器的可用TCP连接清单之中,选定一条空闲的预先建立连接。分派器接着便将有关于被选定连接的相关信息(例如,TCP的状态),以称为“对映表”的一种内部信息构造加以储存,并将使用者的连接与预先建立的连接互相结合(binding)起来。在TCP连接的结合被确定之后,分派器便改变每一个信息包的IP(网际协议)及TCP标题以将该信息包转送到被指派的服务器上去,随后分派器会通过对应表中的内容以同样的方式处理并转送后续的信息包,以在使用者的连接与预先建立的连接之间,毫无间隙地转递这些信息包,以使服务器能够以完全透明的方式,接收并识别这些信息包。
在此基本路由机构135的基础之上,一个可载入模块136被插入于各后端服务器的核心程序(kernel)之中。该可载入模块136被插入于网络接口驱动程序与TCP/IP堆叠之间。该可载入模块136的作用有两方面。首先,分派器130可将结合的信息送给可载入模块136,而可载入模块136则接着改变将被送出的信息包,以使这些信息包能够直接地前进至客户端110,而不需要通过分派器130。其结果,由于从被选定服务器送至客户端110的信息量通常是显著地大于由客户送至该被选定服务器的信息量,分派器130的处理负担便可以大为降低。这种设计的第二个目的是在于避免单点失效的问题(the single-point-failure problem),其细节将于后面的说明段落之中予以详述。
以前述的要求路由机构为基础,分派器130需要具有某种程度的智能化来判别送入的要求,以便做出转送路线的决定。为解决这一问题,可以构建一种内部数据的构造,即URL表,以便维护与内容相关的信息。这包含了内容的诸如大小、类型、优先次序、指派之处理节点等的信息。当把一个送进来的要求指派给予后端服务器其中之一时,分派器130会对URL表的内容进行查询。在一较佳实施例之中,URL表应能够建立储存于网站中的内容的阶层式结构(hierarchical structure)的模型。而这种作法的基础,是根据网页内容通常是应用一种依据档案目录为基础的阶层式结构所组织起来的事实。据此可以推论,在同一目录之中的档案,通常会拥有相同的性质。例如,在/CGI-bin/目录之下的档案,通常应是为用以产生动态内容的CGI语言程序。
因此,依据本发明之一较佳实施例,URL表即可做成一种多层次的杂凑树(hash tree)构造,其中的每一个层次各对应于内容树状构造中的一个层次,且每一节点也都代表一个档案或目录。基本上,一网站之内容中的每一个项目(档案或目录),在URL表中都各应有一个对应的记录。不过,为了缩短搜寻的时间及范围,本发明中之URL表可以支持一种“通用”(″wildcard″)的机制,以供指明同样都指向相同性质的一整组的项目。例如,若在子目录″/html/″之下的所有项目都被存放于相同的节点之中,且也具有相同的内容类型,则便会只有″/html/″一项会存在于URL表之中。若分派器打算要搜寻URL表来取得有关于一个URL项″/html/misc.html″的信息,则分派器便可以利用只在一层之内搜寻,而由表中的节点″/html/″之中取得该资讯。URL表通常是以一管理系统,利用剖析内容阶层式结构而自动产生,维护及管理的。若有需要,网络系统的管理者也可以组构URL表的内容。
要求之转移
在路由机构135配备了要求判别的能力之后,其在本发明一较佳实施例之中,在一要求处理的过程之中,当发生服务器失效的情况时,便可以进行将该要求加以转移的处理。依据本发明一较佳实施例之系统及方法,在服务器处理要求的过程中,当发生了失效或超载的情形时,便可以进行这些要求的平稳转移以及回复处理。此外,为了达成要求的转移及回复,本发明之系统需要有能够快速地识别服务器超载或失效情形已经发生的一种状态检测的机构。
通常,一般的信息网要求可以分类为三种类型的要求:静态内容之要求、动态内容之要求、以及互动过程相关服务之要求。每一种的要求类型都各有其对应的转移及回复之方法。分派器可以利用,例如,查询URL表而识别每一要求的类型,并在发生服务器失效或超载的情况下,利用对应的方案,来转移及回复每一种类型的要求。
静态内容之要求
在所有的信息网要求之中,有相当大的比例,是属于索求诸如HTML档案、图像、以及音频/视频短片(audio/video clips)等的静态内容。本发明之机构可被利用来将针对此类静态内容的要求转移到服务器集群140中的另一节点上。为实现此目的,首先,分派器130选择一部新的服务器(例如,依据某种负载平衡的机制),并再选择与目标服务器有所连接的、一条空闲的预先建立的连接。接着,分派器将客户端的连接,重行与新选择的服务器端连接进行结合。在新连接的结合被决定之后,分派器130即向新服务器端,对选定服务器节点的连接,发出一个范围的要求(range request)。范围要求在HTTP 1.1版的通讯协议之中有其定义,其可以容许一个客户对一个资源的某些部份提出要求。应用这种性质,由于失效而致使文件下载中断的一个要求,便可以由在一个节点上,继续下载其刚被中断的文件。
依据记录于对映表内的TCP相关信息(即,ACK数,序列号),分派器130可以推论得出客户110应已成功地收到多少字节的数据。其结果,分派器130接着便可以利用将Range标题包含于其中,而做出一个范围要求,其中指明了所需要之字节的范围(通常由来自客户的最后通知的ACK数启始)。
在两个TCP连接之间,将预先建立连接的再应用、以及信息包的无间隙转递这两种技术整合在一起之后,一个失效的要求便可以在系统中的另一个节点上平稳地获得回复。应予注意的是,对于一个范围要求的响应,比较于一个一般响应的标题,其会具有一个独特的HTTP标题(例如,其中载有206状态码)。这种差异也需要由服务器集群140中后端服务器的可载入程序模块136加以转换。
动态内容之要求
某些信息网要求是针对动态内容而发出的,其响应是在需求之下,大部份是依据客户所提供的参数(arguments)而被产生的(例如,CGI语言程序,ASP等)。动态内容的一个失效的要求,是无法利用仅只简单地将具有同样参数的要求转递至另一服务器节点,而能够予以转移及回复的。在某些情况之下,只简单地将具有相同参数的一个动态要求予以转递,是会产生一些问题的。其中主要的问题是,某些动态性的要求并非是具有“同幂性”(″idempotent″)的。换句话说,针对动态内容的、具有相同参数的先后两个连续的要求,其所获得的结果,并不一定会完全一样。其最常见的实例是,根据数据库所建立的动态网页。对同一网页所发出的两个连续的一样的要求,由于数据库经过更新的缘故,便可能会获得不同的结果。这表示,要利用与前述针对静态内容要求的处理相同的范围要求之作法,而将两个动态要求的结果“缝合”在一起,是不可能作到的。若想尝试在另一节点上回复任何的动态要求,则客户便必须要丢弃其已经收到的响应结果,并重新再次发出相同的要求。不过,这种作法,对使用者而言,将不会是透明的处理,并且也无法与目前一般所使用的浏览器相容。
因此,本发明即采用下面所将说明的方法来解决这种问题。分派器130此时必须要能够将一个动态要求的响应加以“储存再前送”。换言之,在分派器130收到完整的结果之前,分派器130不会将响应转递给予客户110。因此,若服务器节点在处理一个动态要求的中间发生中断的情形,分派器130便会放弃其连接,并将相同的要求再次发送给另一个节点。只有当分派器130收到了完整的结果之后,才会开始其对客户110所进行的转递处理。
如此虽然解决了“同幂性”的问题,但这样的作法仍有两种可能的缺点。首先,分派器130可能会受到单点失效问题的影响。在后面所将说明的本发明之系统及方法的另一实施例之中,此问题将获得处理解决。其次,即使只是暂时性地将服务器的响应储存在分派器130之中,就可能会使分派器130的性能大为衰减,而这会对整个服务器系统的流量(throughput)有负面的影响。不过,根据统计,由于动态网页的大小通常并不大,因此其对性能的冲击并不致于太严重。
为了能够完全地消除性能衰减方面的顾虑,我们设计是使分派器可以具有逆向代理快取(reverse proxy)的功能。也即,分派器130会将动态网页存储在高速缓存器(cache)中,以使后续对于相同动态网页的要求,能直接由高速缓存器之中取得内容,而不是再次重复启动一个程序来产生相同的网页。
在一次实验之中,这种算法(algorithm)已经过实施,以管理高速缓存器之动态网页。测试的结果显示,采用了本发明之系统不但可以执行失效的回复,且系统的整体性能也因这种设计而获得显著增大的效益。这是因为对于动态内容的要求,时常会使信息网服务器的运作迟缓下来的缘故。利用本发明这种设计,具有同幂性的这些动态要求,便可以由高速缓存器之中直接地提供服务,减低了后端网络服务器的负担。
互动过程相关服务之要求
在任何一次信息网撷取过程之中,可能会牵涉到数次的使用者互动操作。其中,使用者并不只是单纯地浏览数个互不相关的静态或动态产生的网页,而是在诸如CGI语言程序、与某些共享的状态相关的一个服务器端程序的控制之下,被引导经过的一个过程。比如,这样的一个状态可能会包含有一个电子“购物推车”所装载的内容(该内容为在某个购物网站中的一个采购清单),或是来自一次搜寻结果的一个结果列出清单。
此类与互动过程相关的服务,通常是以所谓的“三层次”结构为基础,它是由前端客户(例如浏览器)、中间网络服务器、以及后段数据库服务器所构成的。基本上,前端客户会提供使用者接口,以供使用者用来对信息网服务器发出要求,以进行服务的撷取。另一方面,信息网服务器则执行应用程序与/或进行商业逻辑。它可以处理客户的要求,将这些要求提交(commit)给予数据库服务器,储存结果的状态,并将结果回送给客户。普通技术人员都知道,数据库服务器是在后端管理信息以及交易上的动作。
若一台信息网服务器在一次交易过程进行的中间发生了失效的情形,终端使用者通常是无法获得任何有关于其要求是否已成功地进行提交等、期间所发生的任何故障等相关的信息。使用者可能只是在客户端一直等到时间过了期限(timeout)。有些使用者可能会重新送出其要求,但由于其状态已被遗失的缘故,这些要求将不会获得任何的响应。其他有些使用者则可能重新送出所有的要求,以试图完成此过程,而这可能会造成完成了超过一次以上交易的风险,使得使用者被多次收费。这种情况会惹恼使用者,并会由于服务中断的缘故,而严重地损伤该个网站的可信度。
要在另一个节点上回复一次互动相关之过程,其所牵涉到的是更多的复杂性。这会需要知道诸如整个程序何时开始、内部状态、中间参数、过程何时结束等等相关于应用程序的一些细节。为了确保过程本身的容错能力,也需要有一种机制来复制中间的各种处理状态。
首先,需享受抗错性或较高性能服务的这些互动相关程序,需要先由网站管理者加以定义。例如,管理者可以将“使用者将第一种商品项目加入至一特定网页中的购物推车中”的动作,定义为一个过程开始的信号。此外,管理者也可以将“使用者按下了结帐钮”动作,定义为此次过程的结束信息。管理者可以很容易地经由一个管理系统的GUI来进行此类的组构定义动作。
此类组构的信息可以储存在URL表之中。如上所述,分派器130应查询URL表,以将一个送入的要求指派给予服务器集群140中之一部信息网服务器。当分派器130发现(依其“判定”)一个要求中内含了一个“开始”的动作时,便会为此客户作一标记,之后即将来自此一客户的所有后续要求,都指引至双服务器(twin server)中之一,直至在后续的要求之中找到含有“结束”动作的要求时为止。
前述之双服务器是为服务器的一种逻辑组合,其中包含了一部主服务器(primary server)与一部备份服务器(backup server)。主服务器是为专用于提供交易服务的一部正规的信息网服务器。另一方面,备份服务器则负责为主服务器提供备份。本领域技术人员可以理解的是,配对构成双服务器组的主服务器与备份服务器,可以由系统依各种条件而由服务器集群之中选定。
备份服务器中会维持两个IP地址。其一为其本身之地址,而另一个则是主服务器的地址。主服务器IP地址的别名系提供于网络接口之上,以使本地通讯协议堆叠得以接受指向这个地址的、对应的送入信息包。不过,备份服务器并不经由ARP(Address Resolution Protocol,地址解析协议)而输出该别名地址,因为这样便会造成IP地址冲突的情形。此外,一个备份用的节点,也可以为多部的主服务器,同时提供备份的服务。图2之时序图中是以示意方式显示由这种双服务器所执行的通讯协议的操作细节情形。
如图2之时序图所示,当一个使用者,如图2中的客户210,发出了被路由机构(图1中之135)归类为互动过程相关的一个要求,即客户要求211时,分派器130便将此要求导引至双服务器组之中的主服务器220,以进行处理。备份服务器240由于采用了主服务器地址别名的缘故,因此可以接收到发送至主服务器的所有信息包,且备份服务器240中的一个HTTP常驻伺服程序(HTTP daemon,图中未显示),也将会接收到此客户要求211,并将此要求作为其备份客户要求212,并利用“寂静地”将此要求,以记录要求213加以记录下来,而与主服务器220达成同步。备份服务器240如此即可以维持与主服务器220相同的“过程处理状态”信息。不过,除非主服务器220失效了,否则备份服务器240中的HTTP伺服常驻程序,并不会将任何的信息包或结果发送出去。这可以确保客户210只会收到一份结果。
在备份服务器240已成功地将要求记录下来,如图中之记录要求213所示,便会为此一客户要求211而对主服务器220送出一个“开始进行”信息214。主服务器220除非接收到此一开始进行214,否则便不会将此客户要求211提交给予数据库服务器250。若主服务器220等待此“开始进行”信息214过了相当长的时间,便会主动对备份服务器240发送一个信息,以记录此一要求,并接着再度等待开始进行214。若主服务器220仍然无法获得此一“开始进行”的信息214,便会怀疑备份服务器240已失效,之后便会产生出一部新的备份服务器。
当主服务器接220的确收到开始进行的信息214之后,客户要求211便会触发而开始与数据库服务器250一起进行一种传统的通讯协议,两相提交(two-phase commit)215,如此可以确保同一要求在交易的意义上维持一致。当数据库服务器250发出数据库服务器响应216作为回应时,主服务器220会对备份服务器240发送一个信息,记录结果217,以在将此要求提交给予数据服务器250之前,将其即将出现的结果记录下来。在接收到来自于备份服务器240的结果记录Ack(应答)信息218之后,主服务器220便会利用发出一信息,提交要求219,而正式地将客户的此一要求提交给予数据库服务器250。
当数据库服务器250响应于提交要求219而完成此次交易之后,便会以一个数据库服务器Ack信息221响应主服务器220。在此同时,由于地址别名的缘故,备份服务器240也可以接收到此数据库服务器Ack信息221。接着,备份服务器240也会送出一个备份服务器Ack信息222,告知主服务器220,其已将此交易的结果记录下来了。在接收到两个Ack信息221与222(分别来自于数据库服务器250与备份服务器240)之后,主服务器220便会将结果网页223送出给客户210。当主服务器220与备份服务器240,两者皆由客户端210接收到一个客户Ack信息224时,两者便会获得通讯协议已完成的结论,此时若整个过程已完成,则主服务器220便可以发出放弃记录数据225指令给备份服务器240,令其放弃记录下来的数据。当主服务器220失效或超载时,备份服务器240即可以利用启动别名地址,而接手主服务器220的整个工作,接着,HTTP伺服常驻程序,便可以拿复制的状态来开始发送数据,取代了主服务器220的动作。
值得注意的是,分派器130并不需要知道主服务器220是否已经失效。分派器130会一直将信息包转递给“代表性”的地址(即,别名IP地址)。只要备份服务器能够接手主服务器的工作并启动别名地址,甚至在主服务器失效时,网页代管服务(web hosting service)也是可以维持不中断。本发明这样的设计可以将分派器上的负担释放掉,并增强系统的整体性能。
Apache是当前因特网上广泛使用的一种Web服务器软件,它的源代码是公开的。在本发明一实施例之中,Apache经过修改而可以施行前述的通讯协议。Apache的服务器功能,由于其开放性、可靠性、效率以及流行性的缘故,而被选择来延展扩充其功能,以实际施行前述通讯协议。Apache遵循一程序一要求的模式来处理送入的要求。Apache会预先建立一组程序,且每一程序都呼叫accept()系统呼叫来接受新的连接。通常,Apache是依循一系列的步骤来处理每一个要求的:(1)接受一要求,(2)剖析其参数以供后续利用,(3)译出URL,(4)检查撷取授权,(5)决定被要求档案的MIME类型,(6)处理要求,(7)将响应送回给客户,以及(8)将要求记录下来。在实际实施本发明时,在步骤(6)之中会插入一个决策逻辑。若其处理是属于主服务器的部份,其便会送出一个记录的信息到备份服务器,并且等待其反应。在收到备份服务器的回答之前,程序不会将要求提交给予数据库服务器。记录的信息是由来源IP地址与客户的端口号、以及程序ID所构成的。若程序是属于备份服务器的部份,其并不会真的处理要求,而是会等待来自于主服务器的记录信息。这表示备份服务器将会维持一组与主服务器相同的处理状态,但跳过步骤(7)。
如上所述,图1中的分派器130所代表的,可能是其所可能遭遇到的一种称为“单点失效”的问题。换句话说,分派器的失效,会使整个服务器系统失效垮掉。此外,如图1中所显示的,分派器130由于其集中式设计以及其以软件为基础的作法,也可能成为系统效能或是扩充性的潜在阻力。虽然如此,以本发明前述实施例为基础而实作,并进行性能评估的结果,其所显示的是,其在一个中等大小服务器农场内的扩充性,仍是相当良好。
为了进一步增进图1中系统的扩充性及容错性能,如图3所示,具有分派装置330的、本发明一种修改过的系统,它可以应用于本发明的信息网服务器系统中而作为本发明之另一种实施例,具有整体上互相合作以分派送入的要求的数个分派器331,332,...,339。应当注意的是,分派器331,332,...,339之中,其每一个也都可以是单一而特定用途的微电脑,或以微控制器为基础的分派装置,它并不需要诸如图中以360所显示的网络交换装置的配合,便可以发挥其功能。不过,在图3所显示之系统之中,每一个的分派器331,332,...,339,都可以是为以PC为基础的、连接到网络370上的特定用途分派电脑。在这样的构造之中,类如DNS的作法,可以被用来将不同客户对映到不同的分派器上。在图3被逻辑性地组构于一环中的分派器节点331,332,...,339之组合上加以实施,并提供容错能力的常驻程序之集合,也已经在一次实验性评估的组构之中施行过。这些常驻程序是以SwiFT工具箱(SwiFT Toolkit)为基础而构建的。其每一个分派器节点都执行可以监视其逻辑邻居状态、并提供备份的一个常驻程序。
在这次实验性评估进行的期间,在正常运作的情况之下,所有的分派器都参加负载的分担。期间并无分派器被指派到空闲的热备机状态之中以等待主分派器的失效。分派器的动作是以两种重要的状态为基础的:URL表与连接之结合信息。URL表是属于可在服务器失效之后、被再度产生出来的状态信息。相较之下,连接之结合信息,则是为应由备份节点加以复制的,否则无法在主服务器失效时由其他备份服务器重新产生的状态信息。因此,主分派器被程序规划,以便维持连接之结合信息的最新变动的一个记录。而,有关于状态变动的记录信息,会被周期性的复制到其备份节点之中,以便更新其经复制过的记录表。若主服务器真的失效了,备份服务器便可以利用复制的状态来接替主服务器的工作。不过,若进行接手,由于复制状态表尚未被更新,或是由于周期性更新信息遗失了的缘故,而可能无法获得新设立连接的某些状态信息。后端服务器中的核心模块,由于这些模块中也维持有连接之结合信息的缘故,是可以照料到这类情况的。若一个服务器节点在相当长的一段时间内,并未接收到来自于分派器的信息包,则便会广播一个信息,以查询备份分派器的存在情形,并接着再将其结合信息记录在其中。
图4之流程图显示在服务器发生失效的情况之下,依据本发明一实施例之要求处理方法之处理流程。基本上,本发明之系统所执行方法之流程在步骤400开始处理要求之后,便以步骤410检测系统是否有发生服务器失效的情况。若无失效或超载的情况发生,则整个系统便可在结束步骤450处结束,以依正常运行来处理要求。若真有在处理要求的过程发生服务器失效的状况,则本发明之系统及方法即可运行而确保零漏失的信息网服务。如流程图以及前述说明文字所描述的,本发明是在判别步骤420、430与440中进行判断,以针对所有三种类型的要求,分别在对应的步骤422、432及442中进行要求转移及回复的处理。完成转移及回复处理后的要求,即可在换新后的服务器中,于步骤450中继续进行其正常的处理。
因此,上述的说明性质的文字是集中于实现容错信息网服务所必要的、要求移转机制的设计及实际作法。由多次模拟及测试所导得的结果,已可显示并证实本发明之零漏失信息网服务系统及方法中的机制,确实可以提供一种功能强大的解决方案,可以支援信息网服务的抗错性。
例如,在一次长时间运转测试之后,其最值得注意的结果所显示的是,该次实验的总错误率是零。换言之,虽然服务器系统中的某些节点在测试过程中被故意地造成失效,以模拟服务器失效的情形,但仍无任何要求被漏失掉了。在该次模拟之中,当有一个服务器节点失效时,这个失效节点上正进行处理中的要求都被顺利地转移到系统之中、其他可获用的节点上。当有三个节点同时失效时,分派器发现到系统承受了超载的情况,并成功地召来两个空闲的节点来分担负载。在仅约数秒钟的一段短暂时间之内,整个系统即稳定下来,并恢复正常。这类的测试有效地证实了本发明所揭示之信息网服务系统及方法,确实具有零漏失的容错能力,并能缓和服务的超载情况。
虽然前面的说明文字已是本发明特定实施例的一个完整的说明,但其各种的修改变化、变动的构造及等效者的应用仍是可能的。因此,前面的描述说明即不应被拿来限定本发明,而其范畴应由后附之权利要求书的内容来加以界定。

Claims (8)

1、一种提供零漏失信息网服务的系统,可经由一通讯网络、利用具有预定定址参数的客户撷取要求而为客户提供网络服务,该系统包含有:
一服务器集群,其中包含有多个可互相通讯的服务器,且所述多个服务器被组合成多组的双服务器,每一双服务器各包含有一主服务器及一备份服务器;
一分派器,包含有一路由机构,可与该通讯网络进行通讯,并与该服务器集群进行通讯,该分派器根据该预定的定址参数,而将要求进行互动过程相关服务的撷取要求分派给予所述的多组双服务器中之一个被提交的主服务器,该主服务器失效时,该路由机构将该撷取要求转移至该组双服务器中的备份服务器。
2、根据权利要求1所述的系统,其中,当被提交的该组双服务器中的该备份服务器失效时,该分派器指定该服务器集群中之一个服务器以替换该备份服务器。
3、根据权利要求1所述之系统,其中,该被提交的双服务器的该备份服务器将分派给予该被提交的双服务器的该主服务器的该撷取要求记录下来,而与该被提交双服务器中的该主服务器进行同步,以进行该撷取要求的转移。
4、一种提供零漏失信息网服务的方法,可在包含有多个服务器的一系统之中、经由一通讯网络、利用具有预定之定址参数的客户撷取要求而为客户提供网络服务,该方法的步骤包含有:
a)判别一撷取要求,并分类为静态信息要求、动态信息要求、或互动过程相关服务要求中之一;
b)在所述多个服务器中组成一组提交双服务器,包含有一主服务器与一备份服务器;
c)根据该预定的定址参数,而由该提交双服务器的主服务器处理要求进行互动过程相关服务之该撷取要求;及
d)当该主服务器之失效时,将要求进行互动过程相关服务的该撷取要求转移到该提交双服务器的备份服务器。
5、根据权利要求4所述的方法,其中处理要求进行互动过程相关服务的该撷取要求的步骤c)还包含有:
c1)该备份服务器通过将分派给该被提交双服务器的该主服务器的该撷取要求记录下来,而与该被提交双服务器中的该主服务器进行同步;及
c2)该备份服务器将该系统之一数据库服务器所产生、作为要求进行互动过程相关服务之该撷取要求的结果的数据记录下来。
6、根据权利要求5所述的方法,其中将要求进行互动过程相关服务的该撷取要求转移到该提交双服务器的备份服务器的步骤d)还包含有:
d1)将这些被记录的数据转送给该客户;及
d2)放弃这些记录下来的数据。
7、根据权利要求4所述的方法,其中处理要求进行互动过程相关服务的该撷取要求的步骤c)还包含有:
c1)该备份服务器通过将分派给该被提交双服务器的该主服务器的该撷取要求记录下来,而与该被提交双服务器中的该主服务器进行同步;
c2)该主服务器以两相提交通讯协议提交给该系统之一数据库服务器;
c3)根据该两相提交通讯协议,该数据库服务器产生出作为要求进行互动过程相关服务的该撷取要求的结果数据;及
c4)该备份服务器将该数据库服务器所产生、作为要求进行互动过程相关服务的该撷取要求的结果的数据记录下来。
8、根据权利要求7所述的方法,其中将要求进行互动过程相关服务的该撷取要求转移到该提交双服务器的备份服务器的步骤d)还包含有:
d1)将这些被记录的数据转送给该客户;及
d2)放弃这些记录下来的数据。
CNB011421770A 2001-09-14 2001-09-14 零漏失信息网服务系统及方法 Expired - Fee Related CN1182477C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB011421770A CN1182477C (zh) 2001-09-14 2001-09-14 零漏失信息网服务系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB011421770A CN1182477C (zh) 2001-09-14 2001-09-14 零漏失信息网服务系统及方法

Publications (2)

Publication Number Publication Date
CN1405698A CN1405698A (zh) 2003-03-26
CN1182477C true CN1182477C (zh) 2004-12-29

Family

ID=4676680

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011421770A Expired - Fee Related CN1182477C (zh) 2001-09-14 2001-09-14 零漏失信息网服务系统及方法

Country Status (1)

Country Link
CN (1) CN1182477C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102325154B (zh) * 2011-07-13 2014-11-05 百度在线网络技术(北京)有限公司 具有容灾备份功能的网络系统及实现容灾备份功能的方法
CN104683254A (zh) * 2013-11-29 2015-06-03 英业达科技有限公司 路由控制方法与装置

Also Published As

Publication number Publication date
CN1405698A (zh) 2003-03-26

Similar Documents

Publication Publication Date Title
KR100243637B1 (ko) 고-가용성 컴퓨터 서버 시스템
US11175913B2 (en) Elastic application framework for deploying software
RU2156546C2 (ru) Балансировка нагрузки через процессоры компьютера-сервера
CN106031130B (zh) 具有边缘代理的内容传送网络架构
US20020199014A1 (en) Configurable and high-speed content-aware routing method
EP1116112B1 (en) Load balancing in a network environment
US7200665B2 (en) Allowing requests of a session to be serviced by different servers in a multi-server data service system
US7426546B2 (en) Method for selecting an edge server computer
US8645542B2 (en) Distributed intelligent virtual server
US6351775B1 (en) Loading balancing across servers in a computer network
US6219692B1 (en) Method and system for efficiently disbursing requests among a tiered hierarchy of service providers
EP1315349B1 (en) A method for integrating with load balancers in a client and server system
US20020152307A1 (en) Methods, systems and computer program products for distribution of requests based on application layer information
US20050204020A1 (en) Shared internet storage resource, user interface system, and method
US20080313318A1 (en) Providing enhanced data retrieval from remote locations
US20020169889A1 (en) Zero-loss web service system and method
JP2003228533A (ja) 複数のクライアントにコンテンツを伝達するための方法およびビデオサーバ、ならびにビデオサーバ用管理コントローラ
WO2000014634A1 (en) Load balancing for replicated services
CN107835437B (zh) 基于多缓存服务器的调度方法和装置
CN1592303A (zh) 用于应用实例级工作负荷分配亲合性的方法和系统
CN102577237A (zh) 网站托管服务调度方法、应用访问处理方法、装置及系统
US20070165615A1 (en) Apparatus and method for notifying communication network event in application server capable of supporting open API based on Web services
KR100656222B1 (ko) 일시 네트워크에 있어서 동적 어드레싱 방법
CN1647482B (zh) 用于网络通信管理的系统和方法
US7580989B2 (en) System and method for managing access points to distributed services

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20041229

Termination date: 20150914

EXPY Termination of patent right or utility model