CN101346972B - 用于收集数据以便特征化http会话工作负荷的方法和装置 - Google Patents

用于收集数据以便特征化http会话工作负荷的方法和装置 Download PDF

Info

Publication number
CN101346972B
CN101346972B CN2006800485472A CN200680048547A CN101346972B CN 101346972 B CN101346972 B CN 101346972B CN 2006800485472 A CN2006800485472 A CN 2006800485472A CN 200680048547 A CN200680048547 A CN 200680048547A CN 101346972 B CN101346972 B CN 101346972B
Authority
CN
China
Prior art keywords
session
data
http
computer system
server
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
CN2006800485472A
Other languages
English (en)
Other versions
CN101346972A (zh
Inventor
E·L·巴斯内斯
J·M·桑托苏奥索
J·J·斯特切尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101346972A publication Critical patent/CN101346972A/zh
Application granted granted Critical
Publication of CN101346972B publication Critical patent/CN101346972B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Abstract

包含多个计算机系统的web服务器包括至少一个系统,该至少一个系统代表为客户处理HTTP会话工作负荷的其它系统保持冗余会话持久数据的数据库。会话分析器从此冗余数据库中提取(701,711)信息以特征化HTTP会话工作负荷。优选地,会话工作负荷被包含应用服务器以及一个或多个应用程序的中间件处理。应用服务器将会话持久数据保持为数据对象,并且自动更新冗余数据的数据库,其响应被传送给客户。会话分析器独立地从冗余数据库中提取数据以特征化会话工作负荷。任选地,分析器包含可从提取出的数据得出调整建议(717)的智能推理功能(716)。

Description

用于收集数据以便特征化HTTP会话工作负荷的方法和装置
技术领域
本发明总体上涉及数字数据处理,并且尤其涉及在网络数字计算环境内使用HTTP会话响应于客户机请求的服务器操作。
背景技术
在二十世纪的后半个世纪内开始了通常所说的信息革命的现象。尽管信息革命是范围宽于任何一个事件或机器的历史发展,但是没有一个设备能够比数字电子计算机更能代表信息革命。计算机系统的发展的确是一个革命。每一年,计算机系统都更快速地发展,存储更多的数据并且为它们的用户提供更多的应用。同时,计算资源的成本持续降低,因此数年前过于昂贵而没有收集、存储和处理的信息目前使用计算机操作是经济可行的。由于产品设计、制造过程、资源调度、管理事务和许多其它因素都更加高效地实现,所以信息处理设备的成本降低以滚雪球式的效果增加了生产率。
计算的成本降低以及数字设备的全面可用性已经使得这种设备内存储的信息量出现爆炸式增长。对于如此多的以数字形式存储的信息,当然希望能够从计算机系统广泛地访问信息。信息量使任何一个设备的存储能力显得不足。为了改进信息访问,已经开发了允许计算设备相互通信并且交换信息的各种技术。分布式计算的最杰出的示例可能就是万维网(经常被简单地已知为“web”),即通过互联网可在全世界使用的资源集合。从学校学生到中老年人都在学习使用网络,并且从他们的家庭或工作位置可方便地找到几乎无限的信息。商业、政府、组织甚至普通百姓都可在web上发布信息,以至于现在预计任何值得知晓的事情都可在网络上找到。
为网络以及多个数字系统之间的电子邮件以及其它形式的通信和分布式处理提供支持的因特网是一种通过多个链路连接的数字设备(节点)的多机种网络,从而网络的任何两个节点之间通常存在多条路径,使得因特网具有一定的冗余度。数据被在分组内发送,每个分组被路由通过多个连续的节点直到其达到其目的地。
在路由分组的基本级中,因特网能够从一个节点向另一个节点传送任何任意数据,因此可被看作通信介质。但是,因特网的有用性依赖于在源节点和目的节点处理数据交换的应用程序。网络浏览器及其它web应用程序的出现通过使得人们可在单独的、交互式的基础上使用基本信息传送技术而不需要广泛的计算机编程技术,大大扩展了因特网的使用。
因此应认识到,因特网技术的有用性的提高对于因特网得到广泛接受是非常重要的,因此我们希望这在未来适合于因特网以及解决问题的相关技术的连续使用和扩展。
万维网使用交互式客户-服务器范例。响应于用户输入,在客户机上执行的交互式浏览器应用程序通过访问服务器保持的网页(例如主页)与服务器应用程序建立被称为超文本链接传输协议(HTTP)会话的连接。服务器实时响应,并且浏览器确定响应显示给用户的格式。在最基本的交互等级中,HTTP会话可仅包含客户通过发送希望文档(例如网页)的URL请求文档,并且服务器通过发送被请求文档的副本做出响应。在许多情况下,HTTP会话包含非常复杂的数据交换。例如,用户可访问在线零售商,浏览该零售商的在线目录的各个条目(不同网页),提供用于找到所关心条目的搜索参数,选择特定条目购买,提供账单和送货信息等等,所有这些都在单个HTTP会话的上下文内。
为了支持HTTP会话内的复杂的交互式数据交换,通常希望服务器保持一些会话持久数据,即用于保持会话状态并且在会话的存续时间内在服务器内持续存在的数据。当分组被交换并且客户在服务器的环境内从一个网页浏览到另一个网页时,此会话持久数据在客户与服务器的交互式交换期间一直存在于服务器内。通常,会话持久数据未在客户和服务器之间传输的每个分组内重复,但是其被从客户接收到的输入或服务器内部生成的数据更新。此会话持久数据通常被在会话数据对象例如JAVATM Bean内保持在服务器内。
在经由网络服务于客户的服务器内,多个客户可在任何时刻连接到服务器,即在任何时刻在服务器内可存在多个活动的HTTP会话。在典型的大型企业内,必须被支持的同时活动的会话的数量大大超过单个计算机系统的能力。另外,在许多大型企业内,关键地,需要服务器一直可用。许多这样的企业因此使用也被称为群集或服务器的多服务器计算机系统提供网络服务。这种群集提供了额外的多系统的处理能力,并且在被合适地配置时可提供希望的冗余度以防止如果在群集内的各个服务器系统中的一个或多个故障或不可用则拒绝服务于客户。为了在一个服务器系统故障的情况下提供无缝的客户接口连接,会话持久数据可被以冗余的方式保持。一种用于保持冗余会话持久数据的常用技术是在群集内提供一个或多个系统,该系统代表群集内的对客户执行服务器功能的其它系统保持会话持久数据的数据库。如果任何服务器系统故障,则其活动会话可被分配给群集的一个或多个其它服务器系统,并且对应的会话持久数据被提供给合适的服务器。
被保持为会话持久数据的数据的数据量和类型依赖于服务器执行的应用。一些应用保持最小量的状态数据,该状态数据从会话到会话不会有很大变化,但是许多应用保持非常复杂并且表示在会话期间客户与服务器的相互作用的历史的会话数据。在这种应用内,当会话变得更长并且客户与服务更多地相互作用时,会话持久数据倾向于累积。保持这种会话持久数据可能会消耗服务器群集内可用的硬件资源的非常大的一部分。
在典型的复杂web服务器环境内,被服务器代表客户执行的功能经常发展。例如,在在线零售商环境内,被显示给用户的网页被经常更新以反映新的条目、不连续的条目、特殊呈现等等。企业有时会用更新的版本替换其全部网络接口,该更新的版本提供改进的功能、图形、导航等等。另外,访问服务器(在线零售商)的客户(消费者)的集合可发展,或者可与服务器发展出不同的相互作用模式。
由于此客户-服务器相互作用的流动性和复杂性,所以难以预测服务器内的使用模式,并且尤其难以预测必须被保持的会话持久数据以及保持该会话持久数据所必需的资源的量。如果不具有足以预测这些使用模式的装置,则难以确保有足够的资源可用于服务于客户请求,保持冗余并且确保服务器可用。此外,难以用最优的方式分配可用的资源,从而即使有足够的资源可用,仍可能会缺乏希望的功能。
因此,需要一种改进的用于特征化和理解web服务器的HTTP会话内的客户-服务器相互作用的技术。
发明内容
包含多计算机系统的web服务器包括至少一个系统,该至少一个系统代表为客户处理HTTP会话工作负荷的其它系统保持冗余会话持久数据的储存库(例如数据库,并且为了便于参考下文被称为数据库)。会话分析器从此数据库中提取信息以特征化HTTP会话工作负荷。
在优选实施例内,HTTP会话被分配给一个群集的多个服务器系统,每个服务器系统处理活动HTTP会话的各个子集。应用服务器和该应用服务器支持的一个或多个应用程序在群集的每个服务器系统上执行以处理活动HTTP会话。应用服务器以优选地为JAVATM Bean的HTTP会话数据对象的形式保持会话持久数据,但是会话持久数据可表现为其它形式。群集还包含至少一个会话冗余系统,该会话冗余系统保持冗余会话持久数据的数据库。如果任何一个服务器系统故障或不可用,则对应于故障服务器系统上的活动会话的会话持久数据可被从冗余会话持久数据中恢复。应用服务器包含这样一种设施,即该设施用于在对应用服务器内的会话持久数据进行改变并且向客户传送响应时自动更新会话冗余系统内的冗余会话持久数据。被说明为优选实施例的功能的配置和划分可改变。
在优选实施例内,会话分析器执行数据挖掘和智能推理功能。数据挖掘功能从冗余会话持久数据的数据库中提取数据以特征化会话工作负荷。此数据可被以任何不同的形式呈现给用户例如系统管理员。作为任选的细分,分析器包含智能推理功能,该功能可使用基于规则的系统从提取出的数据中得出推论。优选地,这些推论与系统管理员或类似人员可用的调整参数的调整有关,但是可选择地可得出其它推论。
通过提供易于使用的用于特征化HTTP会话工作负荷的工具,有助于复杂web服务器内的合适的资源规划和调整。通过特征化HTTP会话工作负荷得到的数据还可用于识别造成过度的资源消耗的web服务器应用程序的那些特性,以便在设计应用程序本身的将来版本时可进行正确地校正。此外,由于已经为了确保会话数据冗余以及服务器对于客户可用而保持冗余会话持久数据的数据库,所以从此已有数据中提取HTTP会话工作负荷分组含较小的额外系统开销。
通过参考下文的详细说明和附图可最好地理解本发明的关于其结构和操作的其它细节。
附图说明
下文将参照附图更详细地作为示例说明本发明的实施例,在附图内共用的标号指示类似的部件,并且在附图中:
图1是因特网的高级图示。
图2是根据本发明的优选实施例的用于特征化HTTP会话工作负荷的典型web服务器环境的高级图示。
图3是根据优选实施例的web服务器的计算机系统的硬件部件的高级框图。
图4是根据优选实施例的会话服务器计算机系统的主要软件部件的概念图。
图5是根据优选实施例的会话冗余数据库系统的主要软件部件的概念会话。
图6是根据优选实施例的服务于客户机请求并且保持会话状态数据的过程的高级流程图。
图7A和7B(文中被总称为图7)是根据优选实施例的提取数据以特征化会话工作负荷的过程的高级流程图。
具体实施方式
因特网概述
在说明本发明的实施例的操作之前,本文首先简要说明因特网。
术语“因特网”是“因特网络”的简称,并且通常是指利用计算机网络技术内公知的TCP/IP协议套件的计算机网络的集合。TCP/IP是“传输控制协议/网际协议”的缩写,一种有助于计算机之间的通信的软件协议。
图1是因特网的高级概念图。因特网不具有预先建立的拓扑,并且可通过添加新节点和链路无限扩展。节点可具有任意数量的使该节点与其它节点连接的链路,并且链路可使用具有不同的数据容量和其它特征的多种通信技术中的任何一种。因此,因特网的拓扑变成极端复杂的互连网络,其中在任意两个节点之间通常存在大量可能的网路。
有时被称为“主干”的网络的中心部分包含多个高速路由器101,该路由器101接收分组并且将这些分组转发给网络内的其它节点。通常,每个路由器具有与其它路由器的多个连接,并且这些连接具有高数据容量。例如,在高速路由器101之间常常使用光纤链路。用作高速路由器的因特网“主干”的接入点的节点连接到该高速路由器,该节点在图1内示出为节点102。由于接入节点102用于在高速路由器101和其它网络节点之间路由分组,所以接入节点102也是路由器,但是它们通常使用低速连接。接入节点例如可以是公众因特网服务提供商,其通过电话线路或其它付费连接提供接入因特网,或者可以是大公司的内部系统的接入节点。通常,每个接入节点102连接到多个高速路由器101以提供冗余,但是这并不是必要的。每个接入节点通常接入到多个主机系统103A、103B(总体上被称为标号103),在图1内仅示出两个主机系统。主机103是连接到因特网并且生成作为源或者接收作为最终目的地的在因特网上传输的分组的计算机系统。主机103可以是任何类型的计算机系统,从大型机系统到PC到便携式设备,并且单个主机可代表系统群集。主机常常仅具有一个接入节点102,主机使用该节点接入因特网(在此情况其是非冗余的),但是其可具有多个这种接入节点以便实现冗余。主机和接入节点之间的连接的速度往往较低(例如电话线路或射频链路),但是可以是高速链路。在一些计算机系统例如主要用于在因特网上提供信息的大型因特网服务器的情况下,主机可直接连接到高速路由器101并因此用作其自身的接入节点。
应理解,图1仅是因特网的概念图示,并且实际上因特网上的节点和连接数远大于图1内所示的数量,并且连接的拓扑可改变。此外,应理解,可存在另外的连接类型和接入形式的分级结构,为了清楚起见在图1内未示出这些内容。即,可存在多种类型或类别的接入节点102,主机通过该接入节点连接到主干的高速路由器101,并且不同的主机可在不同层级的接入节点处连接。严格地说,因特网包含与其耦合的所有设备,并且当小型计算机系统例如PC登录到因特网上时,其是因特网的一部分,这意味着其变为因特网节点并且具有地址(尽管,该地址可能仅是临时的)。因特网主干的路由器和连接以及接入节点常常被称为因特网,即因特网被看作是与计算机系统的分布式处理网络相反的通信媒介。一般而言,“因特网”在文中在后一种意义下用于说明通信媒介,但是根据上下文,可使用前一种意义。
网络连接的系统通常遵循客户机-服务器体系结构。“客户机”是利用与其无关的另一个类或组的服务的一个类或组的服务的成员。在计算机网络例如因特网的上下文中,客户机是请求另一个程序提供的服务的过程(例如,概略地是程序或任务)。客户机过程利用请求的服务而不需要知道其它程序或服务器本身的任何工作细节。在网络连接系统内,客户机通常是访问另一个计算机(即,服务器)提供的共享网络资源的计算机。
服务器通常是可在通信媒介例如因特网上访问的一个或多个远程计算机系统。服务器扫描和搜索信息源。基于用户的请求,服务器将过滤后的电子信息作为对客户机过程的响应呈现给用户。客户机过程可在第一计算机系统内是活动的,而服务器过程可能在第二计算机系统内是活动的;过程在允许多个客户机利用服务器的信息收集能力的通信介质上相互通信。服务器因此可被说明为运行管理软件的网络计算机,该软件控制对网络的全部或一部分及其资源例如盘驱动器上的数据的访问。用作服务器的计算机使得网络上的用作工作站的计算机可利用资源。
客户机和服务器可利用超文本传输协议(HTTP)提供的功能相同通信。万维网(WWW)或简称“web”包含遵守此协议的因特网上的所有服务器,客户机可经由统一资源定位符(URL)地址访问这些服务器。可通过指定具有两个基本部分:将被使用的协议和目标路径名的统一资源定位符访问因特网服务。例如,统一资源定位符地址‘http://www.uspto.gov’指定了美国专利和商标局的服务器的超文本传输协议(‘http’)和名称(‘www.uspto.gov’)。服务器名称与唯一的、数字值(即,TCP/IP地址)相关联。尽管服务器实际上可包含共同执行服务器功能的多个计算机系统,但是在服务器具有其响应的单个TCP/IP地址,并且服务器的精确结构(设备数量、功能划分等等)对于客户机是屏蔽的意义上,服务器是单个“主机”。
第一过程在客户机内是活动的,该第一过程与服务器建立连接以启动HTTP会话,在建立的HTTP会话内向服务器发送HTTP请求,在HTTP会话内从服务器接收HTTP响应,并且向用户呈现信息。通常,此第一过程是交互式浏览器应用程序。服务器首先执行对应的将信息以HTTP响应的形式呈现给客户机的服务器软件。HTTP响应对应于由超文本链接标示语言(HTML)或其它服务器生成的数据构成的“网页”。
浏览器检索来自服务区的网页,并且在客户机端将其显示给用户。“网页”(也被成为“页面”或“文档”)通常是用超文本语言例如HTML写成的数据文件,该超文本语言可具有与数据文件相关联的文本、图形图象甚至多媒体对象例如录音或电影剪辑,但是网页还可仅是图象。超文本页面包含控制标签和数据。控制标签标识出结构例如标题、副标题、段落、列表和图象嵌入。分组含将被显示或者播放给用户的内容例如文本或多媒体。浏览器解释控制标签,并且根据控制标签指定的结构确定数据的格式以生成浏览器显示、播放或另外地执行给用户的可视对象。控制标签可指导浏览器从另一个资源检索页面,并且将该页面放置在控制标签指定的位置。这样,浏览器可构建包含多个部分例如电子表格、文本、热链接、图片、声音、聊天室和视频对象的可视对象。可通过在活动目录或文件结构中加载一个或多个单独文件构建网页,网页然后在图形用户界面上被显示为可视对象。
在上述的简单情况下,信息传输基本上是单向的,客户机浏览器仅请求信息(例如通过利用希望文档的URL识别该文档),并且服务器提供该信息。在HTTP会话内,客户机可根据服务器指定的格式向服务器提供信息。服务器可通过在网络上提供HTML表格指定来自客户机的信息的发送格式。客户机浏览器访问服务器并且检索该HTML表格,正如它可以是任何网页。浏览器确定HTML表格的格式以便交互式地显示给用户。该表格通常包含一个或多个交互式输入字段,在该字段内用户可指定输入数据。此输入数据可以是用户在交互式输入字段内直接输入的文本数据(例如,信用卡卡号),或者其可以是从用户在交互式输入字段内指定的客户机系统上的文件获得的数据。被指定的用户数据被根据HTML表格说明确定格式。此被确定格式的用户数据(已知为“表格数据”,其可以是多部分的)然后在HTTP请求内被发送给服务器。服务器然后处理包含该格式数据的请求,并且对客户机合适地响应。
由于单个HTTP会话可包含从客户机到服务器以及从服务器到客户机的多个数据交换,并且要求服务器不仅向客户机提供数据而且还更新服务器或一些其它系统保持的数据,所以整个交互式HTTP会话可被看作是一个复杂的有限态过程。为了正确地服务于客户机,服务器通常为每个活动的会话保持会话持久数据,此会话持久数据在该会话的长度期间在服务器内持续存在(但是,其可随着HTTP会话的每个成功的交互式数据交换而被更新)。
详细说明
参照附图,在附图中类似的标号指示类似的部件,图2是根据本发明的优选实施例的用于特征化HTTP会话工作负荷的典型web服务器环境的高级图示。web服务企业保持用于提供网络展示,即生成因特网100上可访问一个或多个交互式信息网页的计算机系统群集202(在此被称为web服务器)。从耦合到因特网的其它设备的角度看,web服务器202是单个主机系统103。在因特网100上通信的客户机201A-D(在此被总称为功件201)向web服务器202生成服务请求。至少一个web服务器系统是耦合到因特网的网关203。web服务器还包括多个会话服务器系统205A-205C(在此被总称为功件205),以及至少一个会话冗余数据库系统206。web服务器的各个系统经由网络204相互通信。网络204优选地是局域网(LAN)例如以太网局域网,但是还可以是其它网络。
在操作时,网关203接收在因特网上寻址到web服务器202的分组。网关203确定每个分组在web服务器202内的合适目的地。特别地,当分组到达,请求在客户机201和web服务器202之间建立HTTP会话连接时,网关203选择会话服务器系统205处理该会话。一旦该会话建立,则在同一会话内的随后的来自同一客户机的通信通常被按特定路线发送给最初选择的会话服务器系统,从而仅一个会话服务器系统就可处理任何具体会话。为会话服务器系统分配会话的网关系统在本领域内是公知的,并且分配将基于目前已知或此后开发的任何算法或准则执行。通常,分配试图在会话服务器之间平衡工作负荷,但是可使用其它或另外的考虑。尽管网关203在图2内被示出为是插在因特网100和LAN 204之间的单个系统,但是网关功能可选择地可由多个系统或设备执行。例如,路由器可在因特网100和LAN 204之间路由数据,而为会话服务器分配会话的功能可由连接到LAN 204的单独系统执行。
会话服务器205的功能是代表web服务器处理会话工作负荷。会话服务器生成客户机请求的信息和/或处理客户机请求的事务。在将被发送给客户机的信息的情况下,这通常是指该信息的格式为HTML文档或一些其它合适的形式。会话服务器可能自身能够执行所有需要的服务,但是更一般地,会话服务器将需要访问用数据库系统207表示的一个或多个共享数据库以服务于客户机。例如,在在线零售商的情况下,会话服务器可具有表示零售商的目录的网页的本地副本,但是其通常必须访问共享数据库以便检索顾客简介,检查存货清单,记录顾客选择,并且执行完成在线销售事务所必需的所有其它工作。在一些情况下,客户机仅希望从共享数据库得到信息,并且会话服务器主要用于访问数据库系统207并且将该数据确定为客户机合适的格式(例如,便于在网络浏览器上查看)。由于会话服务器205代表客户机201访问共享数据库207以便服务于客户机请求,所以该会话服务器尤其被称为中间层系统或中间层服务器。
保持多个会话服务器使用的共享数据库的数据库系统207可以是企业web服务器的一部分,或者可以是被完全与该web服务器对立地保持的数据库。尽管如同在企业web服务器内部的数据库系统的典型情况,数据库系统207示出为耦合到LAN 204,但是数据库系统207可选择地可经由任何通信链路或网络或其组合包含因特网与会话服务器205通信。
与会话服务器205分离的至少一个会话冗余数据库系统206保持冗余会话持久数据的数据库,在文中还被称为冗余会话数据库。通常,冗余会话数据库的用途是防止数据丢失并且在一个会话服务器205不可用的情况下提供无缝恢复。特别地,如果会话服务器205变得不可用,则当分组从客户机端到达时,网关203为不可用会话服务器上的每个活动会话选择对应的替代会话服务器。与先前建立的会话有关的分组包含它们与之相关的会话的会话标识符。在确定此会话先前已被分配给现在不可用的会话服务器时,网关将该会话分配给后继会话服务器,并且相应地按特定路线发送该会话。后继会话服务器访问会话冗余数据库系统206以获得该会话的会话持久数据(否则该数据已被不可用会话服务器保持)。从冗余会话数据库的数据中,后继会话服务器能够重构会话的状态,并且在不可用服务器停止的位置继续处理会话。客户机绝不会知道已经替换了会话服务器,并且在客户机看来整个过程是无缝的。
根据本发明的优选实施例,会话冗余数据库系统206内的冗余会话数据库在其初始用途的范围之外还具有附加用途。特别地,会话冗余数据库内的数据被分析并且用于特征化web服务器202内的会话工作负荷。下文将详细说明会话冗余数据库系统的操作。
图2将表示高概括性的典型web服务器环境,而不是详细地表示这种环境中的全部部件或web服务器环境中的所有可能的变化。图2的环境表示存在多种变型,其中尤其可能存在下文内容,文中对具体变型的说明仅是示例性的而不是限制性的。尽管单个网关203和单个LAN 204是示例性的,但是由于单个部件的故障将会导致整个web服务器故障,所以使用单个网关系统和单个LAN很明显产生可靠性和可用性隐患。因此,通常在web服务器集群的系统之中提供多个冗余网关系统和多个冗余通信路径。此外,尽管数据库系统207示出为单个整体式实体,但是实际上其可包含多个计算机系统,在该多个计算机系统上分布式地存储数据和/或执行操作。实际上可存在具有不同结构和接口的多个数据库,所有数据库被同一组会话服务器访问,并且一个或多个数据库可容易地存储在多个数据库上。尽管网络204被说明为局域网,但是网络可以是允许各种web服务器设备相互通信的通信链路、网络或网络组合的任何集合,并且可包含冗余链路。尽管四个客户机201被表示为单用户工作站,但是客户机可以是可向web服务器生成服务请求并且可包含在大型多用户系统上执行的过程的任何实体;此外,客户机的数量可改变,并且通常远大于图2内的示例性的四个客户机。
图3是根据优选实施例的web服务器202的计算机系统300的主要硬件部件的高级框图。系统300是广义系统表示,其可表示会话服务器系统205的硬件部件,或可表示会话冗余数据库系统206的硬件或其它系统。CPU 301是至少一个通用可编程处理器,其执行来自主存储器302的指令并且处理来自该主存储器302的数据。主存储器302优选地是使用多种存储技术中的任何一种的随机存取存储器,数据被从存储器加载到该主存储器内或者被CPU 301处理。
一个或多个通信总线305提供用于在CPU 301、主存储器302和还已知为I/O处理器(IOP)或I/O适配器(IOA)的各种I/O接口单元311-314之间传送数据的数据通信路径。I/O接口单元支持与多种存储器和I/O设备通信。例如,终端接口单元311支持一个或多个用户终端321-324的连接。存储器接口单元312支持一个或多个直接存取存储单元(DASD)325-327(其通常是旋转盘驱动器存储设备,但是它们可选择地是其它设备包括配置成在主机看来是单个大型存储设备的盘驱动器阵列)的连接。I/O设备接口单元313支持多种其它类型的I/O设备例如打印机328和传真机329中的任何一种的连接,应理解可使用其它或另外的I/O设备。网络接口314支持与一个或多个外部网络330的连接以便与一个或多个其它数字设备通信。网络330可表示网络204或多个网络的一些集合,并且可表现为本领域内已知的多种局域或广域网中任一种。
应理解,图3将在高级描述系统300的代表性主要部件,各个部件可能远比图3内所示的情况复杂,可能存在不同于或除了图3内所示的那些部件之外的部件,这些部件的数量、类型和配置可改变,并且大型计算机系统具有的部件的数量通常多于图3内所示数量。文中公开了这种额外复杂性或额外变化的一些具体示例,应理解这些仅作为示例而不一定仅存在这样的变化。
尽管在图3内示例性地示出单个CPU 301,但是如本领域内已知的,计算机系统300可包含多个CPU。尽管主存储器302在图3内示出为单个整体式实体,但是如本领域内已知的,存储器302实际上可以是分布式的和/或分级的。例如,存储器可存在于多级高速缓存中,并且这些高速缓存还可按功能划分,从而一个高速缓存保持指令而另一个高速缓存保持处理器使用的非指令数据。如多种所谓的非均匀存储器访问(NUMA)计算机体系结构中的任一种内已知的,存储器还可是分布式的并且与不同CPU或CPU集合相关联。尽管通信总线305在图3内示出为单个实体,但是实际上多个系统部件之间的通信通常通过复杂的总线层级、接口等等实现,其中在CPU 301和存储器302之间使用高速路径通信,而低速路径被用于与I/O接口单元311-314通信。总线305可设置成多种不同形式,例如分级的点对点链路、星形或网状配置、多级总线、并行和冗余路径等。例如,如NUMA体系结构内已知的,基于节点设置通信路径。总线可使用例如工业标准PCI总线或任何其它合适的总线技术。尽管示出多个I/O接口单元,该接口单元将系统总线305与通到各种I/O设备的各种通信路径分开,但是可选择地,一些或全部I/O设备可直接连接到一个或多个系统总线。
例如可能是多用户“大型机”计算机系统的典型情况,图3所示的计算机系统300具有多个连接终端321-324。连接设备的实际数量可改变,并且本发明并不局限于任何具体大小的系统。访问计算机系统300的用户工作站或终端也可在网络330上连接到系统300并且与其通信。计算机系统300可选择地是不包含连接终端的系统,或仅是仅包含单个用户显示和键盘输入的单个操作员的控制台。此外,尽管本发明的一些功能在文中被示例性地说明为被包含在单个计算机系统内,这些功能可选择地可使用相互通信的计算机系统的分布式网络实现,在该分布式网络内文中所述的不同功能或步骤在不同计算机系统上执行。
尽管已经在高级说明和示出各种系统部件,但是应理解,典型计算机系统包含未示出的许多其它部件,这些其它部件对于理解本发明并不是必需的。在优选实施例内,计算机系统300是基于IBMi/SeriesTM体系结构的计算机系统,应理解本发明可在其它计算机系统上实现。
图4是根据优选实施例的被表示为存储器302的部件的会话服务器205的主要软件部件的概念图。如本领域内公知的,操作系统内核401是提供各种低级软件功能例如设备接口连接、存储器页面的管理、多个任务的管理和调度等的可执行代码和状态数据。具体的,操作系统401包含至少一个网络接入功能402。网络接入功能402是通过网络接口314与一个或多个外部网络尤其是网络204通信的软件。网络接入功能402通常代表在会话服务器系统205内执行的应用程序处理网络通信,该应用程序特别包含代表中间层会话应用程序405、406执行功能的应用服务器404。尽管网络接入功能402被示出为操作系统内核401的一部分,但是可选择地其可以是单独的软件模块。
会话服务器设施403在HTTP会话内代表用户执行服务。会话服务器设施403可被看作是中间层设施,因为在必要时,会话服务器设施代表客户机访问一个或多个共享数据库207以处理客户机请求。会话服务器设施向多个客户机201呈现了一个交互式万维网接口,该客户机在因特网100上与会话服务器系统205通信。即,会话服务器设施403生成HTML的或其它合适格式的交互式网页以便被在客户机系统201内执行的网络浏览器应用程序查看。对于客户机201,会话服务器设施403用作服务器,并且客户机不知道在会话服务器设施403后方的任何数据库或其它应用程序。具体的,客户机不知道保持冗余会话数据的任何功能或应用。
在优选实施例内,会话服务器设施403包含应用服务器404,以及一个或多个会话服务器应用程序405、406(图4内示出两个会话服务器应用程序,但是应理解数量可变化)。应用服务器404是通常用于支持客户机-服务器环境内的中间层应用程序,尤其用于支持其中客户机是在因特网上访问中间层的交互式网络浏览器应用程序的应用程序的框架或外壳程序。在其它特征之中,应用服务器404包含用于访问具有多种常用的本地数据库格式的数据库207;用于处理各个HTTP会话内的与客户机201通信的一组功能(连接设施)。会话服务器应用程序405、406是被开发用于代表客户机103执行一些特定服务器功能的代码。应用服务器404将输入客户机请求数据提供给应用程序405、406。这些请求常常需要访问共享数据库207,但是一些应用程序可能不需要这种访问。当应用程序405、406需要数据访问时,其调用应用服务器404的连接设施以访问数据库系统207。应用服务器404从数据库接收到响应,该响应通常被转发给合适的应用程序。对客户机的数据响应由应用程序405、406生成,并且被传输通过应用服务器404。应用服务器405、406通过公共接口407与应用服务器404通信,该接口独立于将应用程序或被访问的数据库。在优选实施例内,接口407符合JAVA2 Enterprise Edition(J2EE)接口规范,但是可选择地可使用其它接口。在优选实施例内,应用服务器404是IBM WEBSPHERETM应用服务器,但是应理解可选择地可使用其它形式的应用服务器设施。
应用服务器404包括保持HTTP会话持久数据的会话对象管理器功能408。优选地,会话持久数据被以多个会话持久数据对象411-414的形式保持,并且特别地,优选地每个会话持久数据对象411-414是符合Sun Microsystems发布的Enterprise JAVA Bean(EJB)规范的数据结构,应理解会话持久数据应被以一些其它形式保持。对于每个活动会话存在一个会话持久数据对象。每个会话持久数据对象411-414在会话的生存期期间在会话服务器内持续存在,并且通常在会话终止时被删除。图4内示出四个会话持久数据对象411-414,应理解会话对象的数据的数量以及任意给定时刻的活动会话的数量通常大得多。会话对象管理器408提供访问对象持久数据对象的访问功能以便从中获得数据,更新数据等等。会话对象管理器还分配新会话持久数据对象并且当会话终止时解除分配对象。
应用服务器404还包含会话持久数据冗余功能409,该功能409自动为数据对象411-414内的会话持久数据提供冗余。特别地,当会话持久数据对象411和414被分配、修改和解除分配时,冗余功能409在网络204上将包含该分配、修改和解除分配的冗余数据传递给会话冗余数据库系统206。冗余系统206利用来自冗余功能409的此冗余数据保持其冗余会话数据的数据库。冗余系统206从在形成web服务器202的系统的群集内的所有服务器系统205接收此冗余数据,从而冗余系统206内的冗余会话数据的数据库通常表示web服务器内的所有活动HTTP会话的各自的当前会话状态(忽略传输延迟、排队和其它处理延迟等等)。
冗余功能409基本与向客户机201传送输出消息同时地将冗余数据更新消息传递给冗余系统206,即由于会话服务器内的处理而导致的会话持久数据的改变在会话服务器205内被保持和累积,直到该会话服务器准备好向客户传送响应。当响应被传送给客户机时,冗余功能409同时将累积的会话持久数据变化传送给冗余系统206。这样,只有来自各个客户机的会话数据状态被保持在冗余系统206内。
会话服务器205通常包含图4内未示出的额外的数据。例如,会话服务器205可缓存来自共享数据库系统207和/或一些网页的一些数据以便被会话服务器应用程序405、406用于生成对客户机的响应。会话服务器可保持多种其它状态数据。
图5是根据优选实施例的被表示为存储器302的部件的会话冗余数据库系统206的主要软件部件的概念图。操作系统内核501和网络接入功能502分别提供了与会话服务器系统205的操作系统内容401和网络接入功能402的功能类似的功能。尽管提供的功能类似,但是操作系统401和501并不一定相同(但是它们可相同)。网络接入功能502通过网络接口314与特别包含网络104的一个或多个网络通信。网络接入功能502通常代表在冗余数据库系统206内执行的应用程序处理网络通信,该系统206尤其包含数据库管理系统511。尽管网络接入功能502被示出为操作系统内核501的一部分,但是其可选择地可以是单独的软件模块。
结构化数据库503代表各种会话服务器205保持冗余会话持久数据。数据库503包含一个或多个表504(图5内示出一个表),如本领域内公知的每个表具有多个项或记录,每个项包含至少一个(并且通常多个)字段。数据库表504包含被组织成可被访问以重构具体会话的冗余会话持久数据。有时也被称为元数据的一个或多个辅助数据结构505-508与数据库表相关联。辅助数据结构特征化了数据的结构及其中数据,并且可用于数据库管理涉及的各种任务,尤其是用于执行数据库查询。辅助数据结构的示例包含数据库索引505,直方图506和历史数据507,应理解可存在其它类型的元数据。
数据库管理系统511提供了数据库503的管理的基本功能。数据库管理系统511理论上可支持任意数量的数据库表,该数据库表可能具有或不具有相关信息,但是在图5内仅示出一个表。数据库管理系统511优选地允许用户执行基本数据库操作,例如定义数据库,改变数据库的定义,在数据库内创建、编辑和除去记录,从数据库中检索记录,定义数据库索引等等。
数据库管理系统511优选地是具有用于管理数据库的多种常用功能通用数据库管理系统。即,尽管数据库503用于保持冗余会话持久数据,并且因此可能不需要一些其它数据库内使用的功能性能,但是优选地数据库503使用具有全功能性能的通用数据库软件实现。这些功能存在于数据库管理软件内,这是因为数据库管理软件是被设计成管理差不多任何类型的数据库的通用数据库管理器(与专门为会话持久数据设计的客户定制数据库软件相反)。
数据库管理系统511支持的功能包括用于接收来自外部过程的命令的应用编程接口(API)512;用于对数据库内的数据执行复杂查询的查询引擎513,和用于主动监控数据库并且在历史元数据507内生成历史统计信息的监控器514。数据库管理系统511还可包含多种更先进的数据库功能中的任何一种。尽管数据库管理系统511在图5内示出为一个与操作系统内核501分离的实体,但是应理解,在一些计算机体系结构内,多种数据库管理功能与操作系统集成在一起。
除了内部状态信息和其它数据之外,数据库管理系统511可在执行期间生成被表示为数据结构508-509的多种临时数据结构。这些临时结构尤其常常在查询执行期间生成以保持中间查询结果。这种临时结构的数量可有很大变化,并且可能非常大。
尽管图5内示出具有一个数据库表504、一个索引505、一个直方图506和一个历史数据表507的一个数据库503,但是这些实体的数量可改变,并且可能非常大。计算机系统可包含多个数据库表,并且多个索引、直方图或未示出其它辅助数据结构可与数据库表相关联。可选择地,图5内表示的一些实体可能不存在于所有数据库内。尽管数据库管理系统511在图5内示出为数据库503的一部分,但是作为可执行代码的数据库管理系统有时被认为是与“数据库”即数据分离的实体。
在优选实施例内,分离的会话分析器515从数据库503获得数据以特征化会话服务器205内的会话工作负荷。会话分析器514在图5内被示出为驻留在会话冗余数据库系统206内。但是,作为独立于数据库303的软件实体,会话分析器515可选择地驻留在连接到LAN204的一些其它系统上,或者甚至可驻留在更远程连接的系统上。会话分析器通常是可被系统管理员或企业web服务器的类似人员使用而公众通常不可用的实体。会话分析器优选地包含用于输入命令和查看结果的交互式用户界面516。尽管会话分析器可被在网络上从连接的远程终端访问,但是一般访问将被禁止,并且会话分析器仅可从系统206的本地终端访问。
会话分析器515包含数据挖掘功能517,并且任选地包含基于规则的智能推理功能518。数据挖掘功能517收集可用于特征化会话工作负荷的数据。具体的,数据挖掘功能通过API 512访问数据库管理系统511以从数据库303获得信息,使用标准数据库管理功能实行数据库查询,监控数据库活动性等等。尽管这些功能在如上所述的数控管理系统511内可用,但是它们通常不用于保持和提供冗余会话持久数据。挖掘功能517挖掘的数据可随着时间累积,并且在历史数据文件519内被保存为历史数据。智能推理功能518是基于规则的专家系统,其使用数据挖掘功能生成的数据来触发调整建议以便改变会话系统205和/或冗余系统206的可配置的调整参数。文中将更详细地说明会话分析器功能。
各种软件实体在图4和/或5内示出为单独实体或者被包含在其它实体内。但是,应理解,此表示仅是示例性的,而具体模块或数据实体可以是单独的实体或者公共模块或模块封装的一部分。此外,尽管在图4和5的概念图内示出一定数量和类型的软件实体,但是应理解这些实体的实际数量可改变,并且具体地,在复杂web服务器环境内这些实体的数量和复杂度通常非常高。另外,尽管在图4和5内在两个计算机系统上示出各种软件部件,但是这些实体可选择地可被包含在多于两个的系统上。
尽管图4和5的软件部件被概念地示出为驻留在存储器302内,但是应理解,计算机系统的存储器通常过小而不能同时保持所有程序和数据,并且信息通常被存储在包含一个或多个海量存储设备例如旋转盘驱动器的数据存储设备325-327内,并且信息根据需要被操作系统分页到存储器内。具体的,数据库503通常过大而不能被加载到存储器内,并且通常每次只有全部数据库记录的一小部分被加载到存储器内。全部数据库503通常被记录在盘存储器325-327内。此外,应理解图4和5的概念表示并不是暗示任何具体存储器组织模型,存储器205或206可使用单个地址空间虚拟存储器,或者可使用重叠的多个虚拟地址空间。
根据优选实施例,在会话服务器205上执行的会话应用程序405、406处理客户事务请求。会话应用程序405、406利用应用服务器404的功能来管理会话状态数据被保持在其中的会话持久数据对象411-414。当在会话期间做出改变时,应用服务器404将会话持久数据对象411-414内的状态数据自动备份到会话冗余数据库系统206中,从而冗余会话持久数据库503反映当前会话状态,并且数据库的变化反映会话活动性。
图6是根据优选实施例的服务于客户请求并且保持会话状态数据的过程的高级流程图。参照图6,流程图被分成垂直运行的三个部分,这些部分指示在客户机201、会话服务器205和会话冗余数据库系统206中的每一个中执行的操作。
客户明确表达对web服务器的远程服务的请求,并且在因特网上将该请求传输给web服务器以在web服务器上启动会话(步骤601)。在优选实施例内,客户机执行交互式网络浏览器过程,并且初始请求通常是访问web服务器保持的网页例如主页的请求。在web服务器的网关接收到该请求时,创建会话并且将该请求分配给会话服务器(步骤602)。会话服务器然后处理客户的提请以生成合适的响应(步骤603)。根据会话服务器应用程序以及请求的本质,处理可包含任意数量的具有任意复杂度的步骤。如步骤603示出的处理该提请可任选地包含访问共享数据库系统207内的数据。处理请求包含分配会话持久数据对象以记录会话状态,并且根据要求更新会话持久数据。
当客户提请的处理完成时,会话服务器205向客户传送响应(步骤604)。客户的浏览器接收到该响应并且将其呈现为客户可查看的形式(网页)(步骤605)。在步骤604中向客户传送响应的同时,会话服务器还向会话冗余数据库系统206传送会话状态更新消息。该消息指示已经为该新会话分配了会话对象,并且该会话对象包含当前会话状态数据。响应于该消息,冗余系统206为该新会话在数据库503内创建新项,此新数据库项记录了会话持久数据对象内包含的会话状态数据(步骤607)。尽管数据库503内的项以使新会话持久数据对象能够在会话服务区不可用时被重构的方式记录了全部会话持久数据,但是并不必使用会话持久数据对象内使用的相同的数据结构或格式记录全部数据。
客户可然后通过明确表达一个或多个额外的数据提请并且将它们传送给web服务器来继续该交互式会话(步骤606)。这些额外的提请被会话服务器接收和处理以生成响应(步骤608)。如前文所述,处理可任选地包含访问共享数据库系统207内的数据。处理请求包括根据要求更新会话持久数据对象内记录的会话状态。
当在步骤608中的客户提请的处理完成时,会话服务器205向客户传送请求(步骤609)。客户的浏览器接收到该响应并且将其呈现为客户可查看的形式(步骤610)。在步骤609中向客户传送响应的同时,会话服务器还向会话冗余数据库系统206传送指示持久会话数据已被更新的会话状态更新消息,该会话状态更新消息包含更新后的数据。响应于该消息,冗余系统206更新数据库503内的针对当前会话的项(步骤611)。此明确表达提请,处理提请并且相应的过程可在会话内持续无限次。
在一些时候会话通常由于超时而客户没有任何活动或者客户显而易见地断开而结束,通常在步骤612处示出。当会话服务器内的应用服务器404检测到会话事件结束时,其解除分配会话持久数据对象,并且向会话冗余数据库系统发送指示会话已结束的消息(步骤613)。此冗余系统以删除会话数据库内的对应项为响应(步骤614)。
图7A和7B(文中被总称为图7)是根据优选实施例的从冗余会话持久数据503及别处的数据库中提取数据以特征化会话工作负荷的过程的高级流程图。图7的流程图分成垂直运行的三个部分,这些部分指示在会话分析器515、数据库503和可从中获得有用数据的一些其它实体中的每一个中执行的操作。
参照图7,通过交互式用户界面516与会话分析器515相互作用的用户例如系统管理员启动可用于特征化会话工作负荷的特定数据、尤其是与数据库503的操作有关的数据的监控和收集(步骤701)。通常,存在多种收集相关数据的方式,这些方式可被单独使用或组合使用。
在收集相关数据的第一种方法内,会话分析器通过合适的API512调用数据库503以激活内部监控器504(步骤702)。监控器然后开始收集历史统计数据,这种数据被保存在数据库内作为历史记录507(步骤703)。监控器514通常是大型数据库管理系统的组成部分,并且用于收集统计数据以便优化查询,分析数据库性能等。在一些数据库内,监控器可被默认地激活或者已被其它装置激活,从而不总是必须通过会话分析器515明确激活该监控器。统计数据通常间或地收集。例如,在一个间隔内接收到的多个数据库更新操作,这种更新的大小等等可被用于计算该间隔内的平均到达速率、平均大小等。监控器在如步骤704指示的时滞期间主动地收集统计数据。时滞可被预先指定,但是更通常地,监控器将被简单地激活无限长的时间,并且在经过一段时间之后用户将启动下一个操作以通过运行一个或多个查询检索历史数据。会话分析器使用合适的API 512调用数据库管理系统511以执行数据挖掘器517指定的一个或多个查询(步骤705),并且数据库管理系统调用查询引擎513执行查询,将查询结果返回会话分析器(步骤706)。
在收集相关数据的第二种方法内,会话分析器515内的数据挖掘器517通过利用合适的API 512调用查询引擎513定期向数据库提交查询来构建其自身的历史统计数据(步骤707)。查询引擎然后执行查询,并且将结果返回会话分析器(步骤708)。数据挖掘器517将结果(或者从结果提取出的数据)保存为保存的历史查询结果数据519(步骤709)。通过定期重复步骤704-706累积历史数据(为了清楚起见被简略地表示为步骤710,应理解步骤707-709可被重复多次)。示例性地,被保存的历史查询结果519被示出为位于数据库503之外的文件或其它数据实体。尽管可以这种方式保存数据,但是还可将数据保存为数据库503的一部分,即定义一个或多个额外的数据库表以保持结果数据519,并且使用数据库管理系统511的API 512和查询引擎513访问保存的结果数据519。
在收集相关数据的第三种方法内,瞬间工作负荷的瞬象可被以与上述第二种方法内的方式相同的方式保存,而不需要定期提交查询并且保存历史数据。即,数据挖掘器517构造合适的查询以获得关于当前会话工作负荷状态的信息,并且通过利用合适的API 512调用查询引擎513来向数据库提交查询(步骤711)。查询引擎513然后执行查询并且将结果返回会话分析器(步骤712)。
在用于收集相关数据的第四种方法中,数据挖掘器517可调用操作系统501内的一些函数获得冗余系统206的相对静态的配置数据,并且同样可远程调用操作系统401或应用服务器404内的类似函数以获得会话服务器系统205的静态配置数据(步骤713)。可应用的操作系统、应用服务器或其它实体使用被请求的配置信息做出响应(步骤714)。
在优选实施例内,收集的数据可包含以下内容中的任何一个或全部:
数据库更新操作的数量:
此数值可在简短间隔、较长的间隔上被测量或者在多个间隔上被测量多次。此数值可针对所有会话服务器合计,或者针对每个服务器单独获得。更新操作的数量直接与当响应被输送给客户机时在会话服务器内更新会话状态的次数有关。此设置是会话服务器的活动级的基本量度。
平均更新大小:
同样,此数值可在一个或多个间隔上被测量,并且可针对所有会话服务器合计或者针对每个服务器单独获得。更新的大小是在每次更新时的会话持久状态数据的改变量。其还可用于特征化总会话工作负荷,并且过大的数值可指示会话持久状态被以效率低的方式组织或保持。除了平均更新大小之外,还可报告峰值大小和/或生成更新大小的直方图。
平均行大小:
行大小是数据库内的单个会话的会话持久数据的量,并且其从行到行可有很大地变化。行大小与会话服务器内的会话持久数据对象411-414的大小紧密相关,但是由于数据对象内的数据可被不同地构造,所以这两个值并不相同。其中,行大小是每个会话耗用的会话持久存储器的量的一般指示。行大小可在单个时刻测量,或者可在多次阅读上平均。行大小可针对各个会话服务器被报告,或者可针对全部会话服务器合计。除了平均行大小之外,可报告峰值大小和/或生成行大小的直方图。
总数据库大小,或行数:
可被测量为行数的会话持久数据的总数据量给出了平均行大小。总大小指示会话存储器内的存储器被会话持久数据耗用的程度。行数可针对每个会话服务器被报告,或可被合计。行数可被在一个时刻报告或者在多个时刻报告。
具体列的平均列大小:
列大小是具体字段内的数据的平均量,并且其可从字段到字段以及从行到行有很大地变化。列大小可用于分析存储器使用模式,并且识别使用不成比例的存储量的具体列(字段)。列大小可被在一个时刻测量,或者可在多次阅读上平均。行大小可针对各个会话服务器被报告,或者可针对全部会话服务器合计。除了平均列大小(即,该字段对于所有行的平均大小)之外,可报告峰值大小和/或生成具体列的字段大小的直方图。
使用的数据类型:
类似于列大小,其帮助理解被保存为会话持久数据的数据的类型,或者可帮助识别更有效的表示或操纵数据的方式。
平均会话存在时间:
尽管此数据没有直接指示性能问题,但是此数据可处于多种原因用于理解客户如何与web服务器相互作用以及对性能的影响。存在时间可在一个或多个历史间隔上测量,或者可以是当前瞬象。其可针对各个服务器单独测量,但是通常希望所有服务器具有类似的行为。
数据更新的平均响应时间:
此数值可在一个或多个间隔上测量。通常,其测量了冗余系统206上的负荷。如果响应时间长,则冗余系统负担过重。
对数据库日志的写次数:
此数值也与冗余系统的性能有关,并且当与更新操作的次数相比较时可指示对日志的写是否累积过长,可能暴露。到冗余系统内的盘的平均等待时间:此数值也测量了冗余系统的性能并且可指示存储系统负担过重。
尽管上文给出了可被收集的数据的特定示例,但是应理解,可选择地可手机其它和/或额外的数据。
不管用于如上所述地挖掘数据的技术如何,数据一旦被收集就被呈现给用户(步骤715)。将数据呈现给用户可能是指以任何格式包含图形格式在交互式显示屏幕上显示数据。呈现数据还可是指在打印机或其它输出设备上输出数据,在网络上将数据传输给一个或多个额外用户,将数据保存在电子媒介上等。
可选择地,在任选实施例内,会话分析器调用推理器518作出关于web服务器的调整间隙(步骤716)。此推理分析了数据并且将建议呈现给用户(步骤717)。优选地,在数据库管理系统511内,并且更重要地在每个会话服务器内的应用服务器404内存在多种可调整的参数。例如,数据库管理系统内的可调整参数可包含:索引的规范;执行特定功能例如记录删除的触发器;文件系统参数例如盘地址和文件大小等。应用服务器内的可调整参数可包含数据库连接池;中间件存储器大小;过程存储器分配;负荷平衡等。这些可调整参数的设定可大大影响性能。
在文中被说明为优选实施例的技术的一个优点是其可获得关于会话工作负荷的有意义的数据而不必在每个会话服务器内直接执行性能监控软件。性能监控软件会对被监控的系统带来很大的开销,这在会话服务器的情况下是不希望的。作为保持会话冗余以及web服务器对客户的无缝、一致的可用性的一部分,会话服务器已经将冗余会话状态数据传送给冗余系统。因此,在会话服务器本身上不会施加额外的开销负担。在冗余系统内还存在一些额外的开销,但是此开销比较小。构建和保持数据库503的成本已经是冗余所必需的,并且唯一的额外开销成本是对数据库进行一些额外分析以及分析查询结果的成本。
通常,被执行以实现所示的本发明的实施例的例程,不管被实现为操作系统的一部分还是特定应用、程序、对象、模块或指令序列,在文中都被称为“程序”或“计算机程序”。该程序通常包含指令,该指令在被符合本发明的计算机系统的设备或系统内的一个或多个处理器读取和执行时,使得这些设备或系统执行实施具体表现本发明的各个方面的步骤或生成具体表现本发明的各个方面的元素所必需的步骤。此外,尽管本发明已经并且在下文将在完全起作用的计算机系统的上下文内被说明,但是本发明的各种实施例能够作为各种形式的程序产品被分配,并且不管用于实际执行分配的信号承载介质的具体类型如何,本发明都可平等地作用。信号承载介质的示例包括但不局限于易失性和非易失性存储器、软盘、硬盘驱动器、CD-ROM、DVD、磁带等等。此外,不管数据是否在传输网络包括无线网络上被从一种形式的信号承载介质交换到另一种介质,本发明都可应用于任何形式的信号承载介质。信号承载介质的示例在图3内被示出为系统存储器302和数据存储设备325-327。
尽管已经公开了本发明的特定实施例及其一些变型,但是本领域技术人员应认识到,在下文权利要求的范围内可对形式和细节做出另外的变化。

Claims (14)

1.一种用于特征化web服务器内的HTTP会话工作负荷的方法,该方法包含以下计算机执行的步骤:
在第一计算机系统内处理多个HTTP会话,在所述第一计算机系统内保持所述多个HTTP会话的会话持久状态数据;
将冗余会话持久状态数据从所述第一计算机系统传送到第二计算机系统;
将所述冗余会话持久状态数据存储在所述第二计算机系统内,所述第二计算机系统支持使用所述第二计算机系统内存储的所述冗余会话持久状态数据恢复所述多个HTTP会话的会话状态;并且
使用所述第二计算机系统内存储的所述冗余会话持久状态数据特征化所述HTTP会话工作负荷。
2.根据权利要求1的用于特征化web服务器内的HTTP会话工作负荷的方法,其中所述将所述冗余会话持久状态数据存储在所述第二计算机系统内的步骤包括将所述冗余会话持久状态数据存储在所述第二计算机系统内的结构数据库内,所述结构数据库具有至少一个具有多个项的表,每个项对应于所述多个HTTP会话的相应HTTP会话。
3.根据权利要求2的用于特征化web服务器内的HTTP会话工作负荷的方法,其中所述使用所述冗余会话持久状态数据特征化所述HTTP会话工作负荷的步骤包含在所述结构数据库中执行一个或多个查询以检索其中存储的数据。
4.根据权利要求2的用于特征化web服务器内的HTTP会话工作负荷的方法,其中使用所述第二计算机系统内存储的所述冗余会话持久状态数据特征化所述HTTP会话工作负荷的步骤包括监控对所述结构数据库的改变,并且使用关于所述结构数据库的改变的历史数据特征化所述HTTP会话工作负荷。
5.根据权利要求2的用于特征化web服务器内的HTTP会话工作负荷的方法,其中使用所述第二计算机系统内存储的所述冗余会话持久状态数据特征化HTTP会话工作负荷的步骤包括使用来自所述结构数据库的数据得出关于所述第一计算机系统的调整参数的推论,所述推论被计算机执行的过程自动得出。
6.根据权利要求2的用于特征化web服务器内的HTTP会话工作负荷的方法,其中使用所述第二计算机系统内存储的所述冗余会话持久状态数据特征化HTTP会话工作负荷的步骤包括使用来自所述结构数据库的数据得出包含以下特征参数的特征参数组中的至少一个特征参数:
(a)在至少一个间隔上测量的数据库更新操作的数量;
(b)平均更新操作大小;
(c)所述项的平均大小;
(d)所述结构数据库的总大小;
(e)所述结构数据库的至少一列的平均列大小;
(f)所述结构数据库的项使用的数据类型;
(g)平均会话存在时间;
(h)更新所述数据库的平均响应时间;
(i)所述数据库的日志的写入次数;以及
(j)到所述第二计算机系统内的盘的平均等待时间。
7.根据权利要求1的用于特征化web服务器内的HTTP会话工作负荷的方法,其中所述第一计算机系统包含支持用于处理HTTP会话的会话服务器应用程序的应用服务器。
8.根据权利要求1的用于特征化web服务器内的HTTP会话工作负荷的方法,其中所述第二计算机系统存储从多个第一计算机系统接收到的冗余会话持久状态数据,每个第一计算机系统处理相应的多个HTTP会话并且保持该相应的多个HTTP会话的会话持久状态数据。
9.根据权利要求1的用于特征化web服务器内的HTTP会话工作负荷的方法,其中所述第一计算机系统和所述第二计算机系统耦合到公共局域网,并且所述将冗余会话持久状态数据从所述第一计算机系统传送到所述第二计算机系统的步骤包含通过所述局域网传送所述冗余会话持久状态数据。
10.一种用于特征化HTTP会话工作负荷的装置,包含:
具有至少一个处理器和数据存储器的会话冗余计算机系统,该数据存储器用于存储从在所述会话冗余计算机系统外部的至少一个会话服务器计算机系统接收到的冗余会话持久状态数据,所述至少一个会话服务器计算机系统处理多个HTTP会话并且保持所述多个HTTP会话的会话持久状态数据;
其中,所述会话冗余计算机系统使用所述数据存储器内存储的所述冗余会话持久状态数据支持所述多个HTTP会话的会话状态的恢复;以及
表现为可在计算机系统上执行的多条指令的HTTP会话分析器功能,所述分析器功能使用所述会话冗余计算机系统的所述数据存储器内存储的所述冗余会话持久状态数据特征化所述至少一个服务器计算机系统上的所述多个HTTP会话的工作负荷。
11.根据权利要求10的装置,其中所述HTTP会话分析器功能驻留在所述会话冗余计算机系统内,并且在所述会话冗余计算机系统的所述至少一个处理器上执行。
12.根据权利要求10的装置,其中存储在所述会话冗余计算机系统内的所述冗余会话持久状态数据包括存储在所述会话冗余计算机系统内的结构数据库内的冗余会话持久状态数据,所述结构数据库具有至少一个具有多个项的表,每个项对应于所述多个HTTP会话的相应HTTP会话。
13.根据权利要求10的装置,其中该装置还包含多个会话服务器计算机系统,每个会话服务器计算机系统处理相应的多个HTTP会话,并且保持相应的所述多个HTTP会话的每个相应的HTTP会话的所述会话持久状态数据。
14.根据权利要求13的装置,其中该装置还包含至少一个局域网,该局域网提供了用于将所述冗余会话持久状态数据从每个所述会话服务器计算机系统传送到所述会话冗余计算机系统的通信路径。
CN2006800485472A 2005-12-22 2006-12-13 用于收集数据以便特征化http会话工作负荷的方法和装置 Expired - Fee Related CN101346972B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/316,285 US20070150600A1 (en) 2005-12-22 2005-12-22 Method and apparatus for collecting data for characterizing HTTP session workloads
US11/316,285 2005-12-22
PCT/EP2006/069678 WO2007071607A1 (en) 2005-12-22 2006-12-13 Method and apparatus for collecting data for characterizing http session workloads

Publications (2)

Publication Number Publication Date
CN101346972A CN101346972A (zh) 2009-01-14
CN101346972B true CN101346972B (zh) 2013-02-06

Family

ID=37831802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800485472A Expired - Fee Related CN101346972B (zh) 2005-12-22 2006-12-13 用于收集数据以便特征化http会话工作负荷的方法和装置

Country Status (8)

Country Link
US (1) US20070150600A1 (zh)
EP (1) EP1974529B1 (zh)
JP (1) JP5015951B2 (zh)
KR (1) KR101221205B1 (zh)
CN (1) CN101346972B (zh)
BR (1) BRPI0620640B1 (zh)
CA (1) CA2634360A1 (zh)
WO (1) WO2007071607A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180110A1 (en) * 2006-01-27 2007-08-02 Ge Medical Systems Information Technologies, Inc. System and method for retaining information in a data management system
US8024439B2 (en) * 2006-03-17 2011-09-20 Microsoft Corporation Server session management application program interface and schema
US8326996B2 (en) * 2006-06-02 2012-12-04 Oracle International Corporation Method and apparatus for establishing multiple sessions between a database and a middle-tier client
JP4405503B2 (ja) 2006-12-28 2010-01-27 キヤノンItソリューションズ株式会社 情報処理装置および情報処理装置の制御方法およびプログラムおよび記録媒体
JP4653147B2 (ja) * 2007-08-06 2011-03-16 日本電信電話株式会社 情報機能提供システム、情報機能提供装置、情報機能提供方法および情報機能提供プログラム
US8607197B2 (en) * 2007-08-28 2013-12-10 International Business Machines Corporation Displaying HTTP session entry and exit points
US8055649B2 (en) 2008-03-06 2011-11-08 Microsoft Corporation Scaled management system
US20090240802A1 (en) * 2008-03-18 2009-09-24 Hewlett-Packard Development Company L.P. Method and apparatus for self tuning network stack
CN101621532B (zh) * 2008-06-30 2012-09-05 中兴通讯股份有限公司 一种使用线程池实现超文本传输协议应用的方法
EP2594051B1 (en) 2010-07-13 2014-05-21 Telefonaktiebolaget LM Ericsson (publ) Systems and methods recovering from the failure of a server load balancer
JP5538560B2 (ja) * 2010-11-01 2014-07-02 かもめエンジニアリング株式会社 アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
US9733983B2 (en) 2011-09-27 2017-08-15 Oracle International Corporation System and method for surge protection and rate acceleration in a traffic director environment
US9935880B2 (en) 2012-01-12 2018-04-03 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods for scalable and resilient load balancing
US9569356B1 (en) * 2012-06-15 2017-02-14 Emc Corporation Methods for updating reference count and shared objects in a concurrent system
EP2750355A1 (en) * 2012-12-28 2014-07-02 Koninklijke KPN N.V. Reducing a number of server-client sessions
US9948726B2 (en) * 2013-07-01 2018-04-17 Avaya Inc. Reconstruction of states on controller failover
JP6428012B2 (ja) * 2014-07-16 2018-11-28 富士通株式会社 分散処理プログラム、分散処理管理装置及び分散処理方法
US10284621B2 (en) 2015-11-09 2019-05-07 International Business Machines Corporation Session management
KR101676653B1 (ko) * 2016-04-20 2016-11-17 주식회사 티맥스 소프트 Http 세션 정보 동적 유지 방법, 이를 사용한 웹 애플리케이션 서버 및 웹 서버
US10564854B2 (en) * 2017-04-11 2020-02-18 Microsoft Technology Licensing, Llc Tracking internal latencies for load balancing of file server
US20200264970A1 (en) * 2019-02-19 2020-08-20 Nvidia Corporation Memory management system
US11469996B2 (en) * 2020-09-25 2022-10-11 Adobe Inc. Systems for session-based routing
CN114945048A (zh) * 2022-05-20 2022-08-26 国网江苏省电力有限公司 网络冗余数据传输方法、装置、存储介质和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1553724A (zh) * 2003-06-03 2004-12-08 华为技术有限公司 提高多媒体消息系统处理多媒体消息性能的方法及系统
EP1494421A1 (en) * 2003-06-30 2005-01-05 Microsoft Corporation Network load balancing with host status information

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0688702B2 (ja) * 1990-04-19 1994-11-09 東海興業株式会社 紙送り装置
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
JPH11328113A (ja) * 1998-05-14 1999-11-30 Nec Corp 情報検索装置
US6279001B1 (en) * 1998-05-29 2001-08-21 Webspective Software, Inc. Web service
JP4149599B2 (ja) * 1999-02-03 2008-09-10 株式会社東芝 セッション管理装置およびセッション管理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001167071A (ja) * 1999-12-10 2001-06-22 Toshiba Corp サーバセッション管理装置
US20020073211A1 (en) * 2000-12-12 2002-06-13 Raymond Lin System and method for securely communicating between application servers and webservers
US7383329B2 (en) * 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US7792948B2 (en) * 2001-03-30 2010-09-07 Bmc Software, Inc. Method and system for collecting, aggregating and viewing performance data on a site-wide basis
US20020198985A1 (en) * 2001-05-09 2002-12-26 Noam Fraenkel Post-deployment monitoring and analysis of server performance
JP4306152B2 (ja) * 2001-06-26 2009-07-29 株式会社日立製作所 クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム
WO2003009157A1 (en) * 2001-07-16 2003-01-30 Bea Systems, Inc. Method and apparatus for session replication and failover
JP4185012B2 (ja) * 2004-03-30 2008-11-19 東芝ソリューション株式会社 サーバシステム、第1のアプリケーションサーバ、第2のアプリケーションサーバ、セッションデータ取得方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1553724A (zh) * 2003-06-03 2004-12-08 华为技术有限公司 提高多媒体消息系统处理多媒体消息性能的方法及系统
EP1494421A1 (en) * 2003-06-30 2005-01-05 Microsoft Corporation Network load balancing with host status information

Also Published As

Publication number Publication date
KR20080085840A (ko) 2008-09-24
JP2009521741A (ja) 2009-06-04
JP5015951B2 (ja) 2012-09-05
KR101221205B1 (ko) 2013-01-10
BRPI0620640A2 (pt) 2011-04-05
BRPI0620640B1 (pt) 2019-11-12
EP1974529B1 (en) 2012-09-19
EP1974529A1 (en) 2008-10-01
CN101346972A (zh) 2009-01-14
US20070150600A1 (en) 2007-06-28
WO2007071607A1 (en) 2007-06-28
CA2634360A1 (en) 2007-06-28

Similar Documents

Publication Publication Date Title
CN101346972B (zh) 用于收集数据以便特征化http会话工作负荷的方法和装置
US11860874B2 (en) Multi-partitioning data for combination operations
US11151137B2 (en) Multi-partition operation in combination operations
KR100996771B1 (ko) 정보 캐싱 시스템 및 이를 사용하는 장치, 데이터 캐싱 방법, 및 능동적 캐싱 방법
CN101454769B (zh) 在客户机设备与服务器设备之间同步数据的方法和系统
US9197710B1 (en) Temporal based data string intern pools
US9495474B2 (en) Method and system for multi-tiered search over a high latency network
US20020083030A1 (en) Performing event notification in a database having a distributed web cluster
US9628355B1 (en) System for validating site configuration based on real-time analytics data
US8266104B2 (en) Method and system for cascading a middleware to a data orchestration engine
CN108052679A (zh) 一种基于hadoop的日志分析系统
WO2014099928A2 (en) Customer segmentation
CN101636742A (zh) 对有时间限制的消息的有效处理
CN101821993A (zh) 对使用会话亲缘性的分布式环境中的故障恢复进行处理的方法和系统
CN103154943A (zh) 新数据和更新的数据的基于企业的搜索
CN101617311A (zh) 现实实体因特网存储服务
CN103488793A (zh) 一种基于信息检索的用户行为监控方法
CN105446981B (zh) 站点地图生成方法、访问方法及装置
US10348596B1 (en) Data integrity monitoring for a usage analysis system
US10706073B1 (en) Partitioned batch processing for a usage analysis system
CN114357280A (zh) 一种信息推送方法、装置、电子设备及计算机可读介质
US20020161893A1 (en) Switched session management using local persistence in an automated and distributed replication system
WO2006041754A2 (en) System and method for increasing pay-per-download revenues
CN102542434A (zh) 应用于办公自动化系统的同步内容方法
JPH11161603A (ja) データ中継装置、データ中継方法、情報端末装置、情報端末装置の情報処理方法、データ通信システムおよび記録媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130206

Termination date: 20181213