专利名称:用于收集数据以便特征化http会话工作负荷的方法和装置的制作方法
技术领域:
本发明总体上涉及数字数据处理,并且尤其涉及在网络数字计算 环境内使用HTTP会话响应于客户机请求的服务器操作。
背景技术:
在二十世纪的后半个世纪内开始了通常所说的信息革命的现象。 尽管信息革命是范围宽于任何一个事件或机器的历史发展,但是没有 一个设备能够比数字电子计算机更能代表信息革命。计算机系统的发 展的确是一个革命。每一年,计算机系统都更快速地发展,存储更多 的数据并且为它们的用户提供更多的应用。同时,计算资源的成本持 续降低,因此数年前过于昂贵而没有收集、存储和处理的信息目前使 用计算机操作是经济可行的。由于产品设计、制造过程、资源调度、 管理事务和许多其它因素都更加高效地实现,所以信息处理设备的成
本降低以滚雪球式的效果增加了生产率。
计算的成本降低以及数字设备的全面可用性已经使得这种设备
内存储的信息量出现爆炸式增长。对于如此多的以数字形式存储的信 息,当然希望能够从计算机系统广泛地访问信息。信息量使任何一个 设备的存储能力显得不足。为了改进信息访问,已经开发了允许计算 设备相互通信并且交换信息的各种技术。分布式计算的最杰出的示例 可能就是万维网(经常被简单地已知为"web"),即通过互联网可在 全世界使用的资源集合。从学校学生到中老年人都在学习使用网络, 并且从他们的家庭或工作位置可方便地找到几乎无限的信息。商业、 政府、组织甚至普通百姓都可在web上发布信息,以至于现在预计任 何值得知晓的事情都可在网络上找到。
为网络以及多个数字系统之间的电子邮件以及其它形式的通信 和分布式处理提供支持的因特网是一种通过多个链路连接的数字设 备(节点)的多机种网络,从而网络的任何两个节点之间通常存在多 条路径,使得因特网具有一定的冗余度。数据被在分组内发送,每个 分组被路由通过多个连续的节点直到其达到其目的地。
在路由分组的基本级中,因特网能够从一个节点向另一个节点传 送任何任意数据,因此可被看作通信介质。但是,因特网的有用性依 赖于在源节点和目的节点处理数据交换的应用程序。网络浏览器及其
它web应用程序的出现通过使得人们可在单独的、交互式的基础上使 用基本信息传送技术而不需要广泛的计算机编程技术,大大扩展了因 特网的使用。
因此应认识到,因特网技术的有用性的提高对于因特网得到广泛 接受是非常重要的,因此我们希望这在未来适合于因特网以及解决问 题的相关技术的连续使用和扩展。
万维网使用交互式客户-服务器范例。响应于用户输入,在客户 机上执行的交互式浏览器应用程序通过访问服务器保持的网页(例如 主页)与服务器应用程序建立被称为超文本链接传输协议(HTTP) 会话的连接。服务器实时响应,并且浏览器确定响应显示给用户的格 式。在最基本的交互等级中,HTTP会话可仅包含客户通过发送希望 文档(例如网页)的URL请求文档,并且服务器通过发送被请求文 档的副本做出响应。在许多情况下,HTTP会话包含非常复杂的数据 交换。例如,用户可访问在线零售商,浏览该零售商的在线目录的各 个条目(不同网页),提供用于找到所关心条目的搜索参数,选择特 定条目购买,提供账单和送货信息等等,所有这些都在单个HTTP会 话的上下文内。
为了支持HTTP会话内的复杂的交互式数据交换,通常希望服 务器保持一些会话持久数据,即用于保持会话状态并且在会话的存续 时间内在服务器内持续存在的数据。当分组被交换并且客户在服务器 的环境内从一个网页浏览到另 一个网页时,此会话持久数据在客户与服务器的交互式交换期间一直存在于服务器内。通常,会话持久数据 未在客户和服务器之间传输的每个分组内重复,但是其被从客户接收 到的输入或服务器内部生成的数据更新。此会话持久数据通常被在会话数据对象例如JAVATM Bean内保持在服务器内。
在经由网络服务于客户的服务器内,多个客户可在任何时刻连接 到服务器,即在任何时刻在服务器内可存在多个活动的HTTP会话。 在典型的大型企业内,必须被支持的同时活动的会话的数量大大超过 单个计算机系统的能力。另外,在许多大型企业内,关键地,需要服 务器一直可用。许多这样的企业因此使用也被称为群集或服务器的多 服务器计算机系统提供网络服务。这种群集提供了额外的多系统的处 理能力,并且在被合适地配置时可提供希望的冗余度以防止如果在群 集内的各个服务器系统中的一个或多个故障或不可用则拒绝服务于 客户。为了在一个服务器系统故障的情况下提供无缝的客户接口连 接,会话持久数据可被以冗余的方式保持。 一种用于保持冗余会话持 久数据的常用技术是在群集内提供一个或多个系统,该系统代表群集 内的对客户执行服务器功能的其它系统保持会话持久数据的数据库。 如果任何服务器系统故障,则其活动会话可被分配给群集的一个或多 个其它服务器系统,并且对应的会话持久数据被提供给合适的服务器。
被保持为会话持久数据的数据的数据量和类型依赖于服务器执行的应用。 一些应用保持最小量的状态数据,该状态数据从会话到会 话不会有很大变化,但是许多应用保持非常复杂并且表示在会话期间 客户与服务器的相互作用的历史的会话数据。在这种应用内,当会话 变得更长并且客户与服务更多地相互作用时,会话持久数据倾向于累 积。保持这种会话持久数据可能会消耗服务器群集内可用的硬件资源 的非常大的一部分。
在典型的复杂web服务器环境内,被服务器代表客户执行的功 能经常发展。例如,在在线零售商环境内,被显示给用户的网页被经 常更新以反映新的条目、不连续的条目、特殊呈现等等。企业有时会 用更新的版本替换其全部网络接口 ,该更新的版本提供改进的功能、 图形、导航等等。另外,访问服务器(在线零售商)的客户(消费者) 的集合可发展,或者可与服务器发展出不同的相互作用模式。
由于此客户-服务器相互作用的流动性和复杂性,所以难以预测 服务器内的使用模式,并且尤其难以预测必须被保持的会话持久数据 以及保持该会话持久数据所必需的资源的量。如果不具有足以预测这 些使用模式的装置,则难以确保有足够的资源可用于服务于客户请 求,保持冗余并且确保服务器可用。此外,难以用最优的方式分配可 用的资源,从而即使有足够的资源可用,仍可能会缺乏希望的功能。
因此,需要一种改进的用于特征化和理解web服务器的HTTP 会话内的客户-服务器相互作用的技术。
发明内容
包含多计算机系统的web服务器包括至少一个系统,该至少一 个系统代表为客户处理HTTP会话工作负荷的其它系统保持冗余会 话持久数据的储存库(例如数据库,并且为了便于参考下文被称为数 据库)。会话分析器从此数据库中提取信息以特征化HTTP会话工作 负荷。
在优选实施例内,HTTP会话被分配给一个群集的多个服务器系 统,每个服务器系统处理活动HTTP会话的各个子集。应用服务器和 该应用服务器支持的一个或多个应用程序在群集的每个服务器系统 上执行以处理活动HTTP会话。应用服务器以优选地为JAVATMBean 的HTTP会话数据对象的形式保持会话持久数据,但是会话持久数据 可表现为其它形式。群集还包含至少一个会话冗余系统,该会话冗余 系统保持冗余会话持久数据的数据库。如果任何一个服务器系统故障 或不可用,则对应于故障服务器系统上的活动会话的会话持久数据可 被从冗余会话持久数据中恢复。应用服务器包含这样一种设施,即该 设施用于在对应用服务器内的会话持久数据进行改变并且向客户传 送响应时自动更新会话冗余系统内的冗余会话持久数据。被说明为优选实施例的功能的配置和划分可改变。
在优选实施例内,会话分析器执行数据挖掘和智能推理功能。数工作负荷。此数据可被以任何不同的形式呈现给用户例如系统管理员。作为任选的细分,分析器包含智能推理功能,该功能可使用基于 规则的系统从提取出的数据中得出推论。优选地,这些推论与系统管 理员或类似人员可用的调整参数的调整有关,但是可选择地可得出其它推论。
通过提供易于使用的用于特征化HTTP会话工作负荷的工具,有助于复杂web服务器内的合适的资源规划和调整。通过特征化HTTP会话工作负荷得到的数据还可用于识别造成过度的资源消耗的web服务器应用程序的那些特性,以便在设计应用程序本身的将来版本时可进行正确地校正。此外,由于已经为了确保会话数据冗余以及服务器对于客户可用而保持冗余会话持久数据的数据库,所以从此已有数据中提取HTTP会话工作负荷分组含较小的额外系统开销。
通过参考下文的详细说明和附图可最好地理解本发明的关于其 结构和操作的其它细节。
下文将参照附图更详细地作为示例说明本发明的实施例,在附图 内共用的标号指示类似的部件,并且在附图中
图l是因特网的高级图示。
图2是根据本发明的优选实施例的用于特征化HTTP会话工作 负荷的典型web服务器环境的高级图示。
图3是根据优选实施例的web服务器的计算机系统的硬件部件 的高级框图。
图4是根据优选实施例的会话服务器计算机系统的主要软件部 件的概念图。
图5是根据优选实施例的会话冗余数据库系统的主要软件部件
的概念会话。
图6是根据优选实施例的服务于客户机请求并且保持会话状态 数据的过程的高级流程图。
图7A和7B (文中被总称为图7 )是根据优选实施例的提取数据 以特征化会话工作负荷的过程的高级流程图。
具体实施方式
因特网概述
在说明本发明的实施例的操作之前,本文首先简要说明因特网。 术语"因特网"是"因特网络,,的简称,并且通常是指利用计算机网 络技术内公知的TCP/IP协议套件的计算机网络的集合。TCP/IP是"传 输控制协议/网际协议,,的缩写, 一种有助于计算机之间的通信的软件 协议。
图l是因特网的高级概念图。因特网不具有预先建立的拓朴,并 且可通过添加新节点和链路无限扩展。节点可具有任意数量的使该节 点与其它节点连接的链路,并且链路可使用具有不同的数据容量和其 它特征的多种通信技术中的任何一种。因此,因特网的拓朴变成极端 复杂的互连网络,其中在任意两个节点之间通常存在大量可能的网 路。
有时被称为"主干”的网络的中心部分包含多个高速路由器101, 该路由器101接收分组并且将这些分组转发给网络内的其它节点。通 常,每个路由器具有与其它路由器的多个连接,并且这些连接具有高 数据容量。例如,在高速路由器101之间常常使用光纤链路。用作高 速路由器的因特网"主千"的接入点的节点连接到该高速路由器,该节 点在图1内示出为节点102。由于接入节点102用于在高速路由器101 和其它网络节点之间路由分组,所以接入节点102也是路由器,但是 它们通常使用低速连接。接入节点例如可以是公众因特网服务提供 商,其通过电话线路或其它付费连接提供接入因特网,或者可以是大 公司的内部系统的接入节点。通常,每个接入节点102连接到多个高速路由器101以提供冗余,但是这并不是必要的。每个接入节点通常 接入到多个主机系统103A、 103B (总体上被称为标号103),在图1 内仅示出两个主机系统。主机103是连接到因特网并且生成作为源或 者接收作为最终目的地的在因特网上传输的分组的计算机系统。主机 103可以是任何类型的计算机系统,从大型机系统到PC到便携式设 备,并且单个主机可代表系统群集。主机常常仅具有一个接入节点 102,主机使用该节点接入因特网(在此情况其是非冗余的),但是 其可具有多个这种接入节点以便实现冗余。主机和接入节点之间的连 接的速度往往较低(例如电话线路或射频链路),但是可以是高速链 路。在一些计算机系统例如主要用于在因特网上提供信息的大型因特 网服务器的情况下,主机可直接连接到高速路由器101并因此用作其 自身的接入节点。
应理解,图l仅是因特网的概念图示,并且实际上因特网上的节 点和连接数远大于图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和LAN204之间的单个系统,但是网关功能可选择 地可由多个系统或设备执行。例如,路由器可在因特网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的硬 件或其它系统。CPU301是至少一个通用可编程处理器,其执行来自 主存储器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中的任何一种的连接, 应理解可使用其它或另外的1/0设备。网络接口 314支持与一个或多 个外部网络330的连接以便与一个或多个其它数字设备通信。网络330 可表示网络204或多个网络的一些集合,并且可表现为本领域内已知 的多种局域或广域网中任一种。
应理解,图3将在高级描述系统300的代表性主要部件,各个部 件可能远比图3内所示的情况复杂,可能存在不同于或除了图3内所 示的那些部件之外的部件,这些部件的数量、类型和配置可改变,并 且大型计算机系统具有的部件的数量通常多于图3内所示数量。文中 公开了这种额外复杂性或额外变化的一些具体示例,应理解这些仅作 为示例而不一定仅存在这样的变化。
尽管在图3内示例性地示出单个CPU301,但是如本领域内已知的,计算机系统300可包含多个CPU。尽管主存储器302在图3内示 出为单个整体式实体,但是如本领域内已知的,存储器302实际上可 以是分布式的和/或分级的。例如,存储器可存在于多级高速緩存中, 并且这些高速緩存还可按功能划分,从而一个高速緩存保持指令而另 一个高速緩存保持处理器使用的非指令数据。如多种所谓的非均匀存 储器访问(NUMA)计算机体系结构中的任一种内已知的,存储器还 可是分布式的并且与不同CPU或CPU集合相关联。尽管通信总线305 在图3内示出为单个实体,但是实际上多个系统部件之间的通信通常 通过复杂的总线层级、接口等等实现,其中在CPU301和存储器302 之间使用高速路径通信,而低速路径被用于与I/O接口单元311-314 通信。总线305可设置成多种不同形式,例如分级的点对点链路、星 形或网状配置、多级总线、并行和冗余路径等。例如,如NUMA体 系结构内已知的,基于节点设置通信路径。总线可使用例如工业标准 PCI总线或任何其它合适的总线技术。尽管示出多个i/o接口单元, 该接口单元将系统总线305与通到各种I/O设备的各种通信路径分开,但是可选择地, 一些或全部i/o设备可直接连接到一个或多个系统总线。
例如可能是多用户"大型机,,计算机系统的典型情况,图3所示的 计算机系统300具有多个连接终端321-324。连接设备的实际数量可改变,并且本发明并不局限于任何具体大小的系统。访问计算机系统 300的用户工作站或终端也可在网络330上连接到系统300并且与其 通信。计算机系统300可选择地是不包含连接终端的系统,或仅是仅 包含单个用户显示和键盘输入的单个操作员的控制台。此外,尽管本发明的 一些功能在文中被示例性地说明为被包含在单个计算机系统内,这些功能可选择地可使用相互通信的计算机系统的分布式网络实 现,在该分布式网络内文中所述的不同功能或步骤在不同计算机系统上执行。
尽管已经在高级说明和示出各种系统部件,但是应理解,典型计算机系统包含未示出的许多其它部件,这些其它部件对于理解本发明 并不是必需的。在优选实施例内,计算机系统300是基于IBM i/SeriesTM体系结构的计算机系统,应理解本发明可在其它计算才几系统 上实现。
图4是根据优选实施例的被表示为存储器302的部件的会话服务 器205的主要软件部件的概念图。如本领域内公知的,操作系统内核 401是提供各种低级软件功能例如设备接口连接、存储器页面的管理、 多个任务的管理和调度等的可执行代码和状态数据。具体的,操作系 统401包含至少一个网络接入功能402。网络接入功能402是通过网 络接口 314与一个或多个外部网络尤其是网络204通信的软件。网络 接入功能402通常代表在会话服务器系统205内执行的应用程序处理 网络通信,该应用程序特别包含代表中间层会话应用程序405、 406 执行功能的应用服务器404。尽管网络接入功能402被示出为操作系 统内核401的一部分,但是可选择地其可以是单独的软件模块。
会话服务器设施403在HTTP会话内代表用户执行服务。会话 服务器设施403可被看作是中间层设施,因为在必要时,会话^L务器 设施代表客户机访问一个或多个共享数据库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通过7>共接口 407与应用月良 务器404通信,该接口独立于将应用程序或被访问的数据库。在优选 实施例内,接口 407符合JAVA2 Enterprise Edition ( J2EE )接口规 范,但是可选择地可使用其它接口。在优选实施例内,应用服务器404 是IBM WEBSPHERETM应用服务器,但是应理解可选择地可4吏用其 它形式的应用服务器设施。
应用服务器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是^L据优选实施例的被表示为存储器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可选择地驻留在连接到LAN 204的一些其它系统上,或者甚至可驻留在更远程连接的系统上。会 话分析器通常是可被系统管理员或企业web服务器的类似人员使用 而公众通常不可用的实体。会话分析器优选地包含用于输入命令和查 看结果的交互式用户界面516。尽管会话分析器可被在网络上从连接 的远程终端访问,但是一般访问将被禁止,并且会话分析器仅可从系 统206的本地终端访问。
会话分析器515包含数据挖掘功能517,并且任选地包含基于规 则的智能推理功能518。数据挖掘功能517收集可用于特征化会话工 作负荷的数据。具体的,数据挖掘功能通过API512访问数据库管理 系统511以从数据库303获得信息,使用标准数据库管理功能实行数 据库查询,监控数据库活动性等等。尽管这些功能在如上所述的数控 管理系统511内可用,但是它们通常不用于保持和提供冗余会话持久 数据。挖掘功能517挖掘的数据可随着时间累积,并且在历史数据文 件519内被保存为历史数据。智能推理功能518是基于规则的专家系
统,其使用数据挖掘功能生成的数据来触发调整建议以便改变会话系
统205和/或冗余系统206的可配置的调整参数。文中将更详细地"i兌明 会话分析器功能。
各种软件实体在图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)。 通常,存在多种收集相关数据的方式,这些方式可被单独使用或组合 使用。
在收集相关数据的第一种方法内,会话分析器通过合适的API 512调用数据库503以激活内部监控器504 (步骤702)。监控器然后 开始收集历史统计数据,这种数据被保存在数据库内作为历史记录 507(步骤703 )。监控器514通常是大型数据库管理系统的组成部分, 并且用于收集统计数据以便优化查询,分析数据库性能等。在一些数
据库内,监控器可被默认地激活或者已被其它装置激活,从而不总是
必须通过会话分析器515明确激活该监控器。统计数据通常间或地收 集。例如,在一个间隔内接收到的多个数据库更新操作,这种更新的 大小等等可被用于计算该间隔内的平均到达速率、平均大小等。监控 器在如步骤704指示的时滞期间主动地收集统计数据。时滞可^L预先 指定,但是更通常地,监控器将被简单地激活无限长的时间,并且在 经过一段时间之后用户将启动下一个操作以通过运行一个或多个查 询检索历史数据。会话分析器使用合适的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构造合适的查询以获得关于当 前会话工作负荷状态的信息,并且通过利用合适的API512调用查询 引擎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。
尽管已经公开了本发明的特定实施例及其一些变型,但是本领域 技术人员应认识到,在下文权利要求的范围内可对形式和细节做出另 外的变化。
权利要求
1.一种用于特征化web服务器内的HTTP会话工作负荷的方法,该方法包含以下计算机执行的步骤在第一计算机系统内处理多个HTTP会话,在所述第一计算机系统内保持所述多个HTTP会话的会话持久状态数据;将冗余会话持久状态数据从所述第一计算机系统传送到第二计算机系统;将所述冗余会话持久状态数据存储在所述第二计算机系统内,所述第二计算机系统支持使用所述第二计算机系统内存储的所述冗余会话持久状态数据恢复所述多个HTTP会话的会话状态;并且使用所述第二计算机系统内存储的所述冗余会话持久状态数据特征化所述HTTP会话工作负荷。
2. 根据权利要求l的用于特征化HTTP会话工作负荷的方法, 其中所述将所述冗余会话持久状态数据存储在所述第二计算机系统 内的步骤包括将所述冗余会话持久状态数据存储在所述第二计算机 系统内的结构数据库内,所述结构数据库具有至少一个具有多个项的 表,每个项对应于所述多个HTTP会话的相应HTTP会话。
3. 根据权利要求2的用于特征化HTTP会话工作负荷的方法, 其中所述使用所述冗余会话持久状态数据特征化所述HTTP会话工 作负荷的步骤包含在所述结构数据库中执行一个或多个查询以检索 其中存储的数据。
4. 根据权利要求2的用于特征化HTTP会话工作负荷的方法, 其中所述使用所述冗余会话持久状态数据特征化所述HTTP会话工 作负荷的步骤包括监控对所述结构数据库的改变,并且使用关于所述 结构数据库的改变的历史数据特征化所述HTTP会话工作负荷。
5. 根据权利要求2的用于特征化HTTP会话工作负荷的方法, 其中所述使用所述冗余会话持久状态数据特征化HTTP会话工作负 荷的步骤包括使用来自所述结构数据库的数据得出关于所述第一计 算机系统的调整参数的推论,所述推论可被计算机执行的过程自动得 出。
6. 根据权利要求2的用于特征化HTTP会话工作负荷的方法, 其中所述使用所述冗余会话持久状态数据特征化HTTP会话工作负 荷的步骤包括使用来自所述结构数据库的数据从包含以下参数的一 组特征参数中得出至少 一个特征参数(a) 在至少一个间隔上测量的数据库更新操作的数量;(b) 平均更新操作大小;(c) 所述项的平均大小;(d) 所述结构数据库的总大小;(e) 所述结构数据库的至少一列的平均列大小;(f) 所述结构数据库的项使用的数据类型;(g) 平均会话存在时间;(h) 更新所述数据库的平均响应时间;(i) 所述数据库的日志的写入次数;以及(j)到所述第二计算机系统内的盘的平均等待时间。
7. 根据权利要求1的用于特征化HTTP会话工作负荷的方法, 其中所述第一计算机系统包含支持用于处理HTTP会话的会话服务 器应用程序的应用服务器。
8. 根据权利要求l的用于特征化HTTP会话工作负荷的方法, 其中所述第二计算机系统存储从多个第 一计算机系统接收到的冗余 会话持久状态数据,每个第一计算机系统处理相应的多个HTTP会话 并且保持该相应的多个HTTP会话的会话持久状态数据。
9. 根据权利要求l的用于特征化HTTP会话工作负荷的方法, 其中所述第 一计算机系统和所述第二计算机系统耦合到公共局域网, 并且所述将冗余会话持久状态数据从所述第一计算机系统传送到所 述第二计算机系统的步骤包含通过所述局域网传送所述冗余会话持久状态数据。
10. —种用于特征化web服务器的HTTP会话工作负荷的计算 机程序产品,包含信号承载介质上记录的多条计算机可执行指令,所述指令在被至 少 一 个计算机系统执行时使得该至少 一个计算机系统执行以下步骤访问第 一计算机系统内存储的冗余会话持久状态数据,所述冗余 会话持久状态数据被从第二计算机系统接收到所述第一计算机系统 内,所述冗余会话持久状态数据代表所述第二计算机系统保持的被所 述第二计算机系统用于处理多个HTTP会话的会话持久状态,所述冗所述多个HTTP会话的会话状态的方式存储在所述第一计算机系统 内;及使用所述访问步骤访问的所述冗余会话持久状态数据特征化所述HTTP会话工作负荷。
11. 根据权利要求10的计算机程序产品,其中存储在所述第一 计算机系统内的所述冗余会话持久状态分组括存储在所述第一计算 机系统内的结构数据库内的冗余会话持久状态数据,所述结构数据库 具有至少一个具有多个项的表,每个项对应于所述多个HTTP会话的 相应HTTP会话。
12. 根据权利要求11的计算机程序产品,其中所述使用所述冗 余会话持久状态数据特征化所述HTTP会话工作负荷的步骤包含在 所述结构数据库中执行一个或多个查询以检索其中存储的数据。
13. 根据权利要求11的计算机程序产品,其中所述使用所述冗 余会话持久状态数据特征化HTTP会话工作负荷的步骤包括监控对 所述结构数据库的改变,并且使用关于所述结构数据库的改变的历史 数据特征化所述HTTP会话工作负荷。
14. 根据权利要求11的计算机程序产品,其中所述使用所述冗 余会话持久状态数据特征化HTTP会话工作负荷的步骤包括使用来 自所述结构数据库的数据得出关于所述第一计算机系统的调整参数 的推论,所述推论可被计算机执行的过程自动得出。
15. 根据权利要求11的计算机程序产品,其中所述使用所述冗 余会话持久状态数据特征化HTTP会话工作负荷的步骤包括使用来 自所述结构数据库的数据从包含以下参数的一组特征参数中得出至 少一个特征参数(k)在至少一个间隔上测量的数据库更新操作的数量;(1)平均更新操作大小;(m)所述项的平均大小;(n)所述结构数据库的总大小;(o)所述结构数据库的至少一列的平均列大小;(p)所述结构数据库的项使用的数据类型;(q)平均会话存在时间;(r)更新所述数据库的平均响应时间;(s)所述数据库的日志的写入次数;以及(t)到所述第一计算机系统内的盘的平均等待时间。
16. —种用于特征化HTTP会话工作负荷的装置,包含 具有至少一个处理器和数据存储器的会话冗余计算机系统,该数据存储器用于存储从在所述会话冗余计算机系统外部的至少一个会 话服务器计算机系统接收到的冗余会话持久数据,所述至少 一个会话 服务器计算机系统处理多个HTTP会话并且保持所述多个HTTP会话 的会话持久状态数据;其中,所述会话冗余计算机系统使用所述数据存储器内存储的所 述冗余会话持久状态数据支持所述多个HTTP会话的会话状态的恢 复;以及表现为可在计算机系统上执行的多条指令的HTTP会话分析器 功能,所述分析器功能使用所述会话冗余计算机系统的所述数据存储 器内存储的所述冗余会话持久状态数据特征化所述至少一个服务器 计算机系统上的所述多个HTTP会话的工作负荷。
17. 根据权利要求16的装置,其中所述HTTP会话分析器功能 驻留在所述会话冗余计算机系统内,并且在所述会话冗余计算机系统 的所述至少一个处理器上执行。
18. 根据权利要求16的装置,其中存储在所述会话冗余计算机 系统内的所述冗余会话持久状态分组括存储在所述会话冗余计算机 系统内的结构数据库内的冗余会话持久状态数据,所述结构数据库具 有至少一个具有多个项的表,每个项对应于所述多个HTTP会话的相 应HTTP会话。
19. 根据权利要求16的装置,其中该装置还包含多个会话服务 器计算机系统,每个会话服务器计算机系统处理相应的多个HTTP会 话,并且保持相应的所述多个HTTP会话的每个相应的HTTP会话的 所述会话持久状态数据。
20. 根据权利要求19的装置,其中该装置还包含至少一个局域 网,该局域网提供了用于将所述冗余会话持久状态数据从每个所述会 话服务器计算机系统传送到所述会话冗余计算机系统的通信路径。
全文摘要
包含多个计算机系统的web服务器包括至少一个系统,该至少一个系统代表为客户处理HTTP会话工作负荷的其它系统保持冗余会话持久数据的数据库。会话分析器从此冗余数据库中提取(701,711)信息以特征化HTTP会话工作负荷。优选地,会话工作负荷被包含应用服务器以及一个或多个应用程序的中间件处理。应用服务器将会话持久数据保持为数据对象,并且自动更新冗余数据的数据库,其响应被传送给客户。会话分析器独立地从冗余数据库中提取数据以特征化会话工作负荷。任选地,分析器包含可从提取出的数据得出调整建议(717)的智能推理功能(716)。
文档编号H04L29/08GK101346972SQ200680048547
公开日2009年1月14日 申请日期2006年12月13日 优先权日2005年12月22日
发明者E·L·巴斯内斯, J·J·斯特切尔, J·M·桑托苏奥索 申请人:国际商业机器公司