CN100484127C - 自主应用服务器使用的状态中枢 - Google Patents
自主应用服务器使用的状态中枢 Download PDFInfo
- Publication number
- CN100484127C CN100484127C CN200410050082.7A CN200410050082A CN100484127C CN 100484127 C CN100484127 C CN 100484127C CN 200410050082 A CN200410050082 A CN 200410050082A CN 100484127 C CN100484127 C CN 100484127C
- Authority
- CN
- China
- Prior art keywords
- application
- server
- component
- application component
- server response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种自主应用服务器使用的状态中枢,其中的提供应用服务的方法,包括接收部件状态公告并获取客户机请求。所述部件状态公告能指定应用部件的使用级别。至少是部分地根据所述部件状态公告,从多个可能的服务器响应当中为所述客户机请求选择服务器响应。每个可能的服务器响应能有区别地利用应用部件。通过传递所述选定的服务器响应来响应所述客户机请求。
Description
技术领域
本发明涉及计算机联网领域,更具体地说,涉及自主应用服务器。
背景技术
计算机***正在变得如此复杂,以致***管理员和用户开始难于应对这种复杂性。已提出自主计算的概念以解决管理计算***内复杂性的问题。自主计算是按人体的自主神经***命名和模仿人体的自主神经***的一个自管理计算模型。一个理想的自主计算***能控制计算机应用和***的功能而无需来自用户的输入,其方式与自主神经***调节人体***而无需来自该个体的有意识的输入的方式相同。自主计算的目标是创建这样的***,它们自己运行并能高级别地发挥其功能,同时保持***的复杂性对人类操作员不可见。
传统的应用服务器基础架构不是自主的或自管理的***。当传统应用服务器基础架构的一些特定段超负荷时,形成一个瓶颈。更糟的是,这个瓶颈可以导致级联效应,也称作多米诺效应。就是说,当在该基础架构中的一个部件经受瓶颈或***性能降级时,依赖或连接到这个发生瓶颈的部件的其他部件也会遭到性能降级。最终,整个***落入一个不断增大的周期性性能降级循环,直至***变得不能实现其功能。一但这种级联效应发生,即使实际上只有少数***部件超负荷整个***也会性能降级。
Web服务器体系结构有大量可给***造成瓶颈的关键性部件,因此级联效应在Web服务器体系结构内特别突出。再有,Web浏览器用户每当原来命令的处理速度慢时便过度地重复命令。当然,这些重复的命令只是在瓶颈处增大处理需求,造成***性能进一步降级。
传统的解决这种级联效应的尝试通常是在网络级或硬件级处置。就是说,网络业务被自动地从发生瓶颈的部件引导到几乎与发生瓶颈的部件等效的一个替代部件。然而,硬件和/或网络级解决方案会导致需要大量冗余的昂贵***部件。再有,传统解决方案并没有解决瓶颈的根本起因,经验和工业分析已经证明在大量情况中这些瓶颈的根本起因要归因于计算环境的应用层。
发明内容
这里公开的发明提供一种用于应用服务器的方法、***和装置,它能用于自主框架内。一个自主框架可以是一个自管理的和自修改的框架,它能控制复杂的计算机***,而无需大量的用户干预。本发明能根据产生服务器响应的应用部件的当前使用级别为客户机请求选择服务器响应。
更具体地说,在一个称作状态中枢(hub)的集中位置注册的众多应用部件能把部件使用情况消息传递给该状态中枢。该状态中枢能根据所收到的部件使用情况消息为每个注册的应用部件赋予一个使用级别。然后该状态中枢公布所赋予的使用级别作为部件状态公告。这些部件状态公告可被传递到使用这些注册的应用部件的一个或多个应用服务器。每一应用服务器可以至少是部分地根据这些部件状态公告为到来的客户机请求选择适当的服务器响应。就是说,该应用服务器能选择一服务器响应,它使用未被充分利用的应用部件而不是被过分利用的应用部件,从而避免发生***瓶颈。
本发明的一个方面包括在多层框架内提供应用服务的方法。该方法包括接收部件状态公告并获取客户机请求。部件状态公告可指定一个应用部件的使用级别。至少是部分地根据所述部件状态公告,能从多个可能的服务器响应中为该客户机请求选择一服务器响应。每个可能的服务器响应能不同地利用各应用部件。然后,能产生选定的服务器响应并将其传送给发出请求的客户机。在一个特定实施例中,这些应用部件可包括本地部件和外部部件。能够确定,能使用或者外部部件或者本地部件来提供一个服务器响应。在这种情况中,可将外部部件的使用级别与一预定的使用阈值相比较。如果该使用阀值被超过,则本地部件能被用于提供该服务器响应。否则,该外部部件能被用于提供该服务器响应。
在一个实施例中,这些应用部件能注册到一个公布该部件状态公告的集中位置。此外,部件使用情况消息能从这些应用部件传输到该集中位置以导出部件状态公告。在又一实施例中,能在该集中位置指定使用情况消息格式,这些部件使用情况消息能根据该使用情况消息格式来格式化。
在获取客户机请求的过程中,客户机请求能从客户机浏览器通过代理服务器传送到应用服务器。再有,客户机请求和部件状态公告能被传递给应用服务器的控制层。该控制层能调用该应用服务器的数据对象层内包含的数据方法。每当处理这些数据方法时便能利用应用部件。
在服务器响应的选择过程中,能识别出适合于该客户机请求的多个服务器响应。对于每个适合的服务器响应,可确定用于该服务器响应的应用部件需求并能将其与已经根据部件状态公告确定的可用应用部件进行比较。根据这一比较能选定服务器响应。
在一个实施例中,能根据至少一个部件使用情况消息确定超负荷状态。响应这一过负荷状态,该应用服务器能从稳定状态被调整到超负荷状态。如果该应用服务器处于超负荷状态,则能针对触发了该超负荷状态的特定应用部件,限制这些应用部件的使用。根据部件使用情况消息,还能确定超负荷状态的结束。然后,该应用服务器能被从超负荷状态调整到稳定状态。
本发明的另一方面包括一自主应用服务***,包括一被配置成接收客户机请求并有选择地提供服务器响应的应用服务器。该***中能包括一应用部件监视器,其被配置成为至少一个应用部件传送部件使用情况消息。在该***中还能包括一状态中枢,其被配置成从至少一个被通信链接的应用部件监视器接收部件使用情况消息,并响应性地向至少一个应用服务器公布至少一个部件状态公告。
每个部件状态公告能为相关联的一个应用部件指定一使用级别。再有,使用级别之一能指示超负荷状态。该状态中枢能被配置成每当该客户机请求的完成需要一正处在超负荷状态的应用部件时,便提供至少一个超负荷消息。在这种情况中,该服务器响应能包括该超负荷消息。
在一个实施例中,该应用服务器能是一多层应用服务器,其被配置成至少是部分地根据部件状态公告有区别地向客户机请求提供服务器响应。该多层应用服务器能包括一数据对象层,该层含有多个数据对象和与这些数据对象关联的数据方法。至少是一部分数据方法能利用这些应用部件。该多层应用服务器还能包括一界面层,该层被配置成把数据纳入视图对象并对该视图对象编排格式供在客户机浏览器应用中显示。该视图对象能被包括在服务器响应内。该多层应用服务器还能包括一控制层,该层被配置成完成至少一个控制器动作,如解析参数、检验输入、提取数据对象和/或调用方法。该控制层能根据部件状态公告调控数据对象层和/或界面层的行为。
附图说明
图中显示当前优选的实施例,然而应该理解,本发明不限于所显示的明确的结构安排和手段。
图1是示意图,显示了根据这里公开的本发明的结构安排的一个包括自主应用服务器的示例***;
图2是示意图,显示了根据这里公开的本发明的结构安排的一个示例应用服务器;
图3是流程图,显示了使用图1的***,基于应用部件使用级别提供应用服务的方法;以及
图4是流程图,显示了根据这里公开的本发明的结构安排,选择和触发服务器响应的方法。
具体实施方式
图1是示意图,显示了根据这里公开的本发明的结构安排以自主方式提供应用服务的示例***100。***100能包括代理服务器105、应用部件110、应用服务器115和状态中枢135。代理服务器105能是客户机140和应用服务器115之间的媒介,其完成诸如安全、管理控制和高速缓存等功能。代理服务器105能包括网关服务器,它把企业网和/或内联网与外部网络分开。此外,代理服务器105能包括防火墙、防病毒软件等。
应用部件110能是用于完成预定任务的有限硬件和/或软件资源。每个应用部件110能是网络资源或本地资源,并能被一个或多个不同的调用程序触发或使用。每个应用部件110能独立于其他应用部件110使用,能与其他应用部件110同时使用和/或能与其他应用部件110顺序地使用。然而,因为每个应用部件110代表有限资源,所以每个应用部件110如果被过分使用则其能在***100中造成瓶颈。
更具体地说,每个应用部件110能是一计算服务和/或计算应用,包括但不限于目录服务、数据管理***、文本到语音转换应用、语音识别应用、翻译服务、转录服务、Web服务等。再有,每个应用部件110能是一软件资源,其包括例如过程实例、应用实例、软件库、软件对象和/或软件例程。每个应用部件110还能是一硬件资源,其包括但不限于永久性存储器、存储器、处理器的处理周期、共享的***设备等。然而,本发明不限于这一方面,任何其他合适的应用部件110都能被使用。
应用服务器115能被配置成从客户机140接收请求,并部分地根据由状态中枢135提供的数据所确定的适当应用部件110,有选择地向客户机请求提供服务器响应。所以,如果一个优选的应用部件110正忙,则能代之使用一替代的应用部件110。应用服务器115能使用各种专用应用部件110以及多个共享应用部件110。应用部件110还能是本地部件或外部部件。
在一种配置中,每个应用服务器115能被分段成若干个不同的层。在这样的多层应用服务器中,应用服务器115的职责能被分成功能上不同的区。每个功能上不同的区能作为不同的软件部件来实现。服务器的不同区能作为软件对象使用各种面向对象的编程语言和/或开发工具来实现。应用服务器115的分段能有助于应用服务器115内的自主操作,因为每个功能段只需处置自主服务器行为的一个可限定部分。就是说,功能分段能使应用服务器115被以模块化方式来使用而不是以单块方式来使用,从而分隔了应用服务器115内的复杂性,有助于软件设计。
在应用服务器115内的层能包括但不限于控制层120、应用层125以及界面层130。控制层120能为应用服务器115提供过程流和控制。应用层125能为应用服务器115完成数据管理和特定于应用的处理任务。界面层130能为应用服务器115完成电子文档以及界面的格式化和呈现任务。
状态中枢135能被配置成从应用部件110接收使用情况消息并响应性地公布为各种应用部件110指定使用级别的消息。状态中枢135还能把所接收的消息规范化和/或标准化到一个共同的标度。此外,状态中枢135还能确定是否已出现了超负荷状态。
状态中枢135能包括各种不同的硬件和/或软件单元,这取决于它的实现方式。例如,状态中枢135能是嵌入网络路由器和/或集线器的一系列指令。替代地,状态中枢135能是被放置在一个相连的计算***内的软件对象和/或软件应用。
从应用部件110之一向状态中枢135发送的每个使用情况消息能被称作部件使用情况消息150。部件使用情况消息150能包括关于给定应用部件110的活动的信息。部件使用情况消息150能指定应用部件110的已用部分、应用部件110的可供使用部分和/或应用部件110资源已用的百分比或分数。例如,部件使用情况消息150能指定可用的存储器量、已用的处理能力百分比、访问应用部件110的用户数、在指定时间段内接收的请求数、资源被消耗的使用速率等。
由状态中枢135向应用服务器115公布的指定至少一个应用部件110使用级别的每个消息能被称作部件状态公告155。用于为部件状态公告155指定使用级别的标度能使用任何一被分级,如数值标度和基于离散值的标度。例如,在一种结构安排中,在部件状态公告155中指定的使用级别能包括在一个范围内被标度的值,如从1到10的整数,以1代表未被使用状态,以10代表完全被使用状态。在该范围内还能建立一个可配置的超负荷阈值,其中超过该超负荷阈值的值指示超负荷状态。在另一个例子中,指定的使用级别能是离散值,如最小、低、正常、高、很高、最大和超负荷。
在操作中,客户机140能通过网络向代理服务器145传送客户机请求,如HTTP请求。代理服务器145能把该客户机请求引导到适合的应用服务器115。应用服务器115此外还能从状态中枢135接收至少一个部件状态公告155。然后应用服务器115能在产生对该客户机请求的服务器响应时,有选择地利用至少一个应用部件110。由应用服务器115选择的应用部件110能取决于根据部件状态公告155确定的哪些应用部件110可用。
每个应用部件110能随时向状态中枢135传送指出在该应用部件110中发生的活动的部件使用情况消息150。状态中枢135能使用这些部件使用情况消息150以自动地产生并在随后公布部件状态公告155。
应该指出,在一个实施例中状态中,中枢135能包括前面详述的那些功能之外的功能。两个这种功能包括注册能力和格式指定能力。如果状态中枢135有注册能力,它便能注册应用部件110和/或应用服务器115。一旦***100的部件被注册,便能建立状态中枢135、应用部件110及应用服务器115之间的安全通信,从而防止未授权的访问和防止有恶意的消息,如病毒和特洛伊木马,侵入状态中枢135。
能通过本领域已知的各种手段建立安全通信,这些手段如拒绝来自未授权位置的访问,拒绝来自未注册应用部件110的消息,只向注册的应用服务器115传送消息,以及消息加密。消息加密能包括使用加密/解密公钥和私钥。此外,注册过程能标识应用部件110和/或应用服务器115的性能特性。例如,注册过程能为注册的应用部件110和/或注册的应用服务器115指定最大带宽、最大同时用户数、总存储容量等。
如果状态中枢135有格式指定能力,它在向状态中枢135传送数据和从状态中枢135接收消息时能指定要使用的消息格式。就是说,从注册的应用部件110接收的部件使用情况消息150以及向注册的应用服务器115传送的部件状态公告155将以在状态中枢135内指定的方式被格式化。尽管能由状态中枢135指定任何消息格式,但如专为在标准网络协议,如传输控制协议/因特网协议(TCP/IP)之上进行通信而设计的可扩展标记语言(XML)的格式能有助于***100的部件之间的数据交换。
图2是示意图,显示了根据这里公开的本发明的结构安排的示例应用服务器。该应用服务器能包括控制层205、应用层220和界面层225。控制层205能为该应用服务器提供处理流程和控制。具体地说,控制层205能接收客户机请求260和部件状态公告265并提供服务器响应270。所提供的服务器响应270能代表至少是部分地根据可用应用部件从多个可能的响应中选出的一个响应。因此,控制层205能是被通信链接到客户机和状态中枢的应用服务器部件,它接收来自客户机和状态中枢的消息。控制层205能发挥软件级资源管理器的作用,该资源管理器能自动调节资源以防止出现***瓶颈。
在一种结构安排中,控制层205能包括一个或多个数据存储210和方法选择器215。数据存储210能含有任何包含当前应用部件使用情况级别的各种表以及为适当选择特定服务器响应所需的大量交叉引用表。在数据存储内的这些表能使用来自收到的部件状态公告265的数据而自动地被维护和增添,并能使用管理界面人工修改。交叉引用表实际上不需要以表的形式存储,而是能以任何形式存储,只要其中含有适当的用于在可能的服务器响应中做出决定的数据。例如,数据存储210能包含用于特定类型客户机请求的可能的服务器响应列表。数据存储210还能包含应用层220和/或界面层225内的方法列表,这些方法能被调用以产生每一可能的服务器响应。此外,数据存储210能包括每当一特定方法被调用时所需要的各种应用资源的表。数据存储210能进一步包括为产生每一可能的服务器响应所需要的各种应用资源的表。
方法选择器210能为每一客户机请求265确定不同的可能的服务器响应,选择一特定的服务器响应,并调用方法以产生所选定的服务器响应。特定服务器响应的选择可至少部分地基于各种应用资源的可用性。例如,方法选择器215能根据外部应用资源的使用级别在本地应用资源和等效的外部应用资源之间做出选择。
应用层220能为应用服务器200完成数据管理和数据处理任务。示例性的数据管理和处理任务能包括数据输入、数据查询、数据分析、基于数据的计算、数据挖掘等。应用层220能包括若干数据方法230,这些方法能被从控制层205进行外部调用。每一数据方法230能使用包括本地部件235和外部部件240的各种应用部件,来实现预先确定的功能。
外部部件240能包括与应用层220和/或界面层225通信链接的,但放置在远离该应用服务器的位置的计算服务和/或计算应用。例如,外部部件240能包括但不限于语音识别部件、文本到语音转换部件、如轻量目录访问协议(LDAP)部件的目录访问部件、数据库管理***部件、交互语音响应部件、Web服务、转录服务等。
本地部件235能是应用服务器本地的应用部件,其被配置成以与上列外部部件240相同的方式实现计算服务。就是说,本地部件235能是外部部件240的冗余并在功能上与外部部件等效。然而,本地部件235往往不如它们的外部部件240对应物那样稳健,所以外部部件240是优选的,而胜过本地部件235。
例如,本地语音识别部件的识别准确性低于外部语音识别部件的识别准确性,因为外部语音识别部件比本地语音识别部件能有更广博的语音语法并能实现更复杂的功能。在另一个例子中,本地的和外部的文本到语音转换部件每个能使用不同的文本到语音转换模型,由于本地文本到语音转换部件集中于资源效率,而外部文本到语音转换部件集中于最贴近人类声音的结果。这样,本地文本到语音转换部件能使用共振峰方法,而外部文本到语音转换部件能使用合成方法。在又一个实例中,用于含有先前获取的外部内容的本地高速缓冲存储器能是本地部件235,而外部内容源能是相应的外部部件240。在又一个实例中,本地数据库表能含有外部数据库表的本地副本,它被周期性地更新。类似地,本地数据库表能是从外部数据库接收的内容的高速缓冲存储器。这样,外部数据库表将含有比本地数据库表更新的记录,但本地数据库表将不消耗外部资源。
在一种结构安排中,选定的应用部件能与一个或多个应用部件监视器245相关联。每个应用部件监视器245能被配置成监视所关联的应用部件的活动。然后,应用部件监视器245能产生部件使用情况消息,其指出所关联的应用部件的使用情况。这些部件使用情况消息一旦产生便能被传送给状态中枢。
应用部件监视器245能包括硬件和/或软件单元,并能被集成到它所关联的应用部件内或在其外部。例如,应用部件监视器245能是一软件例程或一系列软件例程,这些软件例程跟踪关键活动使用情况参数,如上文讨论的那样,从而确定特定应用部件被利用的方式。在另一实例中,应用部件监视器245能是一外部硬件设备,它能被连接到网线上以确定该网线内的数据传输负荷。
界面层225能为应用服务器完成文档格式化和呈现任务。界面层225能使用所包括的数据方法230和所关联的应用部件动态地产生电子文档。界面层225还能按照控制层205的指示把由应用层220产生的数据纳入到电子文档中。例如,如果该应用服务器是一Web服务器,则界面层225能对使用如Java服务器页面(JSP)技术、活动服务器页面(ASP)等技术动态产生的Web页的内容和外观进行控制。在另一实例中,界面层225能利用大量电子文档模板,如超文本标记语言(HTML)模板产生被适当格式化的电子文档。尽管界面层225能包含文档格式化逻辑,但界面层225及其中的部件和方法通常含有有限的过程控制能力,因为用于应用服务器的过程控制通常是在控制层205内完成的。
图3是流程图,显示了使用图1的***基于应用部件使用级别提供应用服务的方法300。方法300能在自主计算机***,如自修改Web体系结构的环境中实现。方法300能在步骤305开始,在该步骤中,能在一集中位置内指定使用情况消息格式。在步骤310,应用部件能注册到这一集中位置。例如,当使用诸如通用即插即用(UPnP)等技术将应用部件连到一自主***时,该应用部件能被自动识别。应用部件一旦被识别,便能自动接收使用情况消息的格式。或者,管理员能在该集中位置明确地注册该应用部件。在步骤315,该应用部件能监视使用级别。使用级别能以任何方式被指定,这些方式包括但不限于该应用部件已用的容量、在该应用部件中剩余的可用容量、该应用部件已用的容量的百分数、由该应用部件处理的当前传输流量等。在步骤320,能在一部件使用情况消息中指定该应用部件的被监视的使用级别。在步骤325,能根据该集中位置内指定的使用情况消息格式对部件使用情况消息格式化。
在步骤330,部件使用情况消息能被传送到该集中位置。在步骤335,在该集中位置内,能根据这些部件使用情况消息为每一应用部件确定部件状态公告。如果一应用部件被注册到该集中位置,则该应用部件的总容量可被获知,且部件使用情况消息不需要指出已用容量对可用容量的相对值。例如,如果一部件使用情况消息指出已使用了20GB,而该集中位置知道该应用部件有60GB容量,于是该应用部件被使用了三分之一。
在该集中位置能存在算法和/或表,它们把从各应用部件接收的使用情况信息转换成标准化的标度。这样,不同应用部件之间的差别能得到协调。例如,来自Linux服务器的存储器统计和来自Solaris和/或Windows服务器的可比较的存储器统计能被映射到一个共同的标度。此外,来自不同类型路由器的网络使用情况统计能被转换成一个共同标度内的数据点。
再有,多种技术能被用于防止异常的或非同寻常的部件使用情况消息对标准化使用级别计算产生不成比例的影响。例如,当计算标准化的使用级别时能不考虑代表间歇峰值状况的部件使用情况消息。在另一实例中,可在一预定时间范围内对到来的部件使用情况消息取平均,并可根据所得到的平均值确定标准化的使用级别。与根据一些单个的部件使用情况消息得到的使用级别围绕一个范围反复无常地摆动的情况相反,这种平均能使计算出的使用级别相对稳定。
在步骤338,根据标准化的使用级别,状态中枢能确定是否出现了超负荷状态。在确定是否出现了超负荷状态时,可将使用级别与先前建立的超负荷阈值进行比较。如果该使用级别超过超负荷阈值,则该应用部件能是处于超负荷状态。在超负荷状态期间能产生特殊的处理,以使***尽可能迅速地返回到正常化状态。
此外,该集中位置能管理滞环(hysteresis)状况以防止过度循环的行为。在这一情境中,滞环是指如此快速地调节***状态以响应到来的部件状态消息,以致使用情况中的瞬时峰和/或谷被不适当地补偿。能使用任何已知的技术管理滞环状况。例如,从正常操作状态转移到超负荷状态会要求超过超负荷阈值并持续预定时间。类似地,从超负荷状态转移到正常操作状态能要求使用量降到超负荷阈值之下并在超负荷阈值之下保持预定时间。
在步骤340,集中位置能向一个或多个应用服务器公布部件状态公告。在步骤345,在应用服务器内,能至少是部分地根据部件状态公告自动地选择服务器响应。在步骤350,该应用服务器能利用选定的应用部件的资源来产生服务器响应。
图4是流程图,显示了选择和触发服务器响应以响应部件状态公告和客户机请求的方法400。方法400能在一自主计算***内放置的应用服务器环境中执行。方法400能在步骤405开始,在该步骤中接收至少一个部件状态公告,这里的部件状态公告表示至少一个应用部件的标准化的使用级别。在步骤410,能根据这些部件状态公告确定当前应用的使用级别。就是说,接收部件状态公告的应用服务器能解析该消息以提取出所包含的使用级别。然后,该应用服务器能使用适当的内部参数表示该使用级别。在一多层的应用***中,负责处理流程和应用控制的控制层能接收该部件状态公告。
在步骤415,可接收一客户机请求。该客户机请求能经由网络从客户机直接发送到该应用服务器和/或能从客户机被传递到代理服务器然后再到该应用服务器。在一个特定实施例中,该客户机请求能从Web浏览器,经由Web服务器发送到该应用服务器。在步骤420,对该客户机请求能确定多个可能的服务器响应。可能的响应能通过使用交叉引用可能的响应和客户机请求的数据库、表、参数和/或算法来确定。在一个实施例中,一个客户机请求能首先被分类为一个请求类型,如数据库查询、存储请求、信息请求、访问请求等。然后,该请求类型能被用于确定可能的响应。例如,对数据库查询的可能的响应能包括使用本地数据的响应、使用网络数据的响应和拒绝数据库查询。
在步骤425,对于每个可能的服务器响应,能确定产生该服务器响应时所用的应用部件。各种数据库、表、参数和/或算法能被用于交叉引用一个可能的服务器响应,应用部件被用于该响应内。如果使用一个多层应用服务器,则每个可能的服务器响应能导致一个或多个方法被从控制层调用到数据层。每个方法能有一个或多个与之关联的应用部件。
在步骤430,对于每个必须的应用部件,可将当前的部件使用级别与产生该可能的服务器响应所必须的使用级别进行比较。可对使用一特定应用部件的代价赋予一数值,被过分使用的部件的代价比未被充分使用的部件的代价要高。超负荷的部件能有过高的代价。
在步骤435,能根据步骤430的结果选择一服务器响应。在一种结构安排中,提供一服务器响应的总代价值能是全部单个应用部件代价的总和。选定的服务器响应能是具有最低总代价值的响应。再有,能对不同服务器响应的总代价值进行调整,以指定一可能响应对另一可能响应的相对偏好。然而,本发明不限于用于确定服务器响应的一种选择方案,而是能使用本领域已知的任何技术。
例如,如果存在两个基本相同的DBMS,其中一个超负荷,另一个负荷较轻,则应用服务器能选择负荷较轻的DBMS以产生服务器响应。如果该应用服务器使用总代价值,则负荷较轻的DBMS将有比超负荷的DBMS要低的总代价值。在另一个例子中,服务器响应能需要一语音识别(SRS)部件、一目录查询(LDAP)部件和一DBMS部件。每一应用部件有多个可供使用,包括本地的和外部的部件。可为每一所需要的部件计算出总代价值,而且能从每类部件中选出一个部件。例如,能使用一本地SRS部件、一外部LDAP部件和一本地DBMS部件来产生一特定的服务器响应。
本发明能以硬件、软件、或硬件和软件的组合来实现。本发明能在一个计算机***中以集中方式来实现或者以不同部件散布在若干互连计算机***上的分布式方式来实现。任何类型的计算机***或适于实现这里描述的方法的其它设备都是适用的。硬件和软件的典型组合可以是一通用计算机***加上一个计算机程序,该计算机程序在被加载和执行时能控制该计算机***使其实现这里描述的方法。
本发明还能被嵌入一个计算机程序产品中,该计算机程序产品包含能实现这里描述的方法的全部特性,当把它加载到一个计算机***中时其能实现这些方法。在本说明情境中的计算机程序表示以任何语言、代码或符号表示的一组指令,这些指令欲使有信息处理能力的***直接地或在进行下列处理之一或二者之后实现特定的功能:
a)转换成另一种语言、代码或符号;b)在不同的材料介质中再现。
本发明能以其他形式实现而不背离本发明的精神或基本属性。因此,应参考所附权利要求,而不是前述说明,作为本发明范围的指示。
Claims (17)
1.一种提供应用服务的方法,包括如下步骤:
接收至少一个部件状态公告,每个所述部件状态公告指定一应用部件的使用级别;
获取一客户机请求;
至少是部分地根据所述部件状态公告,从多个可能的服务器响应当中为所述客户机请求选择一服务器响应,其中每个可能的服务器响应有区别地利用各应用部件,其中所述选择进一步包括:
确定是使用所述应用部件包括的外部部件之一还是使用所述应用部件包括的本地部件之一提供服务器响应;
将所述部件状态公告中指定的所述外部部件的使用级别与预先确定的使用阈值进行比较;以及
如果所述使用阈值被超过,则使用所述本地部件来提供所述服务器响应,否则使用所述外部部件来提供所述服务器响应;以及
以所述选定的服务器响应来响应所述客户机请求。
2.权利要求1的方法,进一步包括将每个所述应用部件注册到公布所述部件状态公告的一集中位置的步骤。
3.权利要求1的方法,进一步包括从所述应用部件向公布所述部件状态公告的一集中位置传送部件使用情况消息的步骤。
4.权利要求3的方法,进一步包括如下步骤:
在所述集中位置内指定使用情况消息格式;以及
根据所述使用情况消息格式对所述部件使用情况消息格式化。
5.权利要求4的方法,所述方法进一步包含如下步骤:
将所述客户机请求和所述至少一个部件状态公告传送给应用服务器的控制层;
由所述控制层内调用所述应用服务器的应用层内包含的一数据方法;以及
响应所述调用步骤,激活至少一个所述应用部件。
6.权利要求1的方法,所述选择步骤进一步包括如下步骤:
为所述客户机请求识别出所述多个服务器响应;
对每个所述服务器响应,确定对产生所述服务器响应的每个应用部件需要的使用程度;
将所述需要的使用程度与可用的应用部件能力进行比较,其中所述可用的应用部件能力至少是部分地根据所述部件状态公告确定的;以及
至少是部分地根据所述比较步骤,选择所述服务器响应。
7.权利要求1的方法,所述方法进一步包括如下步骤:
根据至少一个部件使用情况消息,确定一超负荷状态;以及
响应所述超负荷状态,将应用服务器从稳定状态调整到超负荷状态。
8.权利要求7的方法,所述方法进一步包括如下步骤:
如果所述应用服务器处于所述超负荷状态,则限制触发所述超负荷状态的所述应用部件的使用。
9.权利要求7的方法,所述方法进一步包括如下步骤:
根据所述部件使用情况消息,确定所述超负荷状态的结束;以及
将所述应用服务器从所述超负荷状态调整到所述稳定状态。
10.一种提供应用服务的自主***,包括:
一应用服务器,被配置成接收客户机请求并向所述客户机请求有选择地提供服务器响应;以及
一状态中枢,被配置成从至少一个被通信链接的应用部件接收部件使用情况消息,并向至少一个被通信链接的应用服务器响应性地公布至少一个部件状态公告,其中每个所述部件状态公告为相关联的一个所述应用部件指定一使用级别,
其中所述应用服务器进一步被配置为通过以下来选择服务器响应:
确定是使用所述应用部件包括的外部部件之一还是使用所述应用部件包括的本地部件之一提供服务器响应;
将所述部件状态公告中指定的所述外部部件的使用级别与预先确定的使用阈值进行比较;以及
如果所述使用阈值被超过,则使用所述本地部件来提供所述服务器响应,否则使用所述外部部件来提供所述服务器响应。
11.权利要求10的***,其中所述使用级别之一指示一超负荷状态。
12.权利要求10的***,进一步包括:
一应用部件监视器,其被配置成为一相关联的应用部件发送部件使用情况消息。
13.权利要求10的***,其中所述应用服务器是多层应用服务器,其被配置成至少是部分地根据所述部件状态公告向所述客户机请求有区别地提供所述服务器响应。
14.权利要求13的***,其中所述多层应用服务器包括:
一含有多个数据方法的应用层,其中至少一部分所述数据方法利用所述应用部件。
15.权利要求13的***,其中所述多层应用服务器进一步包括:
一界面层,其被配置成产生和格式化至少一个含有所述服务器响应的电子文档。
16.权利要求13的***,其中所述多层应用服务器进一步包括:
一控制层,其被配置成根据所述部件状态公告调控应用层和界面层中至少一个的行为。
17.一种提供应用服务的***,包括:
接收部件状态公告的装置,所述部件状态公告指定一应用部件的使用级别;
获取客户机请求的装置;
至少是部分地根据所述部件状态公告,从多个可能的服务器响应当中为所述客户机请求选择一服务器响应的装置,其中每个可能的服务器响应有区别地利用各应用部件,其中所述选择服务器响应的装置进一步包括:
用于确定是使用所述应用部件包括的外部部件之一还是使用所述应用部件包括的本地部件之一提供服务器响应的装置;
用于将所述部件状态公告中指定的所述外部部件的使用级别与预先确定的使用阈值进行比较的装置;以及
用于如果所述使用阈值被超过,则使用所述本地部件来提供所述服务器响应,否则使用所述外部部件来提供所述服务器响应的装置;
以及以所述选定的服务器响应来响应所述客户机请求的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/654,094 | 2003-09-03 | ||
US10/654,094 US7512949B2 (en) | 2003-09-03 | 2003-09-03 | Status hub used by autonomic application servers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1592295A CN1592295A (zh) | 2005-03-09 |
CN100484127C true CN100484127C (zh) | 2009-04-29 |
Family
ID=34218012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200410050082.7A Expired - Fee Related CN100484127C (zh) | 2003-09-03 | 2004-07-02 | 自主应用服务器使用的状态中枢 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7512949B2 (zh) |
CN (1) | CN100484127C (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1337097A1 (de) * | 2002-02-19 | 2003-08-20 | Siemens Aktiengesellschaft | Effiziente Ausnutzung von für Vermittlungssysteme bereitgestellten IVR-Ressourcen |
JP4614390B2 (ja) * | 2005-06-14 | 2011-01-19 | キヤノン株式会社 | 電子機器とその制御方法 |
US8260924B2 (en) * | 2006-05-03 | 2012-09-04 | Bluetie, Inc. | User load balancing systems and methods thereof |
US8056082B2 (en) * | 2006-05-31 | 2011-11-08 | Bluetie, Inc. | Capacity management and predictive planning systems based on trended rate change of monitored factors and methods thereof |
JP4751265B2 (ja) * | 2006-08-01 | 2011-08-17 | 株式会社日立製作所 | リソース管理システム及びその方法 |
US7802258B2 (en) * | 2007-02-13 | 2010-09-21 | Amadeus S.A.S. | Interface between computer software modules |
US8250531B2 (en) * | 2007-04-09 | 2012-08-21 | British Telecommunications Plc | Service assembly architecture |
US7877482B1 (en) * | 2008-04-01 | 2011-01-25 | Google Inc. | Efficient application hosting in a distributed application execution system |
US8005950B1 (en) | 2008-12-09 | 2011-08-23 | Google Inc. | Application server scalability through runtime restrictions enforcement in a distributed application execution system |
US8176161B2 (en) * | 2009-06-16 | 2012-05-08 | International Business Machines Corporation | Method and system for content-based routing of network traffic |
US8984616B2 (en) | 2010-12-08 | 2015-03-17 | International Business Machines Corporation | Efficient routing for reverse proxies and content-based routers |
US9705977B2 (en) * | 2011-04-20 | 2017-07-11 | Symantec Corporation | Load balancing for network devices |
JP2013003678A (ja) * | 2011-06-13 | 2013-01-07 | Canon Inc | 情報処理装置、情報処理方法、及びプログラム |
KR102022318B1 (ko) | 2012-01-11 | 2019-09-18 | 삼성전자 주식회사 | 음성 인식을 사용하여 사용자 기능을 수행하는 방법 및 장치 |
US9817739B1 (en) * | 2012-10-31 | 2017-11-14 | Veritas Technologies Llc | Method to restore a virtual environment based on a state of applications/tiers |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933590A (en) * | 1996-04-18 | 1999-08-03 | Mci Communications Corporation | Restoration of multiple span cuts with priority hand-off using SHN |
US5951650A (en) * | 1997-01-31 | 1999-09-14 | International Business Machines Corporation | Session traffic splitting using virtual internet protocol addresses associated with distinct categories of application programs irrespective of destination IP address |
US6084892A (en) * | 1997-03-11 | 2000-07-04 | Bell Atlantic Networks Services, Inc. | Public IP transport network |
US5933490A (en) | 1997-03-12 | 1999-08-03 | Bell Atlantic Network Services, Inc. | Overload protection for on-demand access to the internet that redirects calls from overloaded internet service provider (ISP) to alternate internet access provider |
JPH1153326A (ja) * | 1997-07-30 | 1999-02-26 | Internatl Business Mach Corp <Ibm> | 分散処理システム、クライアントノード、サーバノードおよび分散処理方法 |
US6081840A (en) * | 1997-10-14 | 2000-06-27 | Zhao; Yan | Two-level content distribution system |
US6134216A (en) * | 1997-10-29 | 2000-10-17 | Lucent Technologies Inc. | Integrated overload control for overload control for distributed real time systems |
US6141686A (en) | 1998-03-13 | 2000-10-31 | Deterministic Networks, Inc. | Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control |
US6092178A (en) | 1998-09-03 | 2000-07-18 | Sun Microsystems, Inc. | System for responding to a resource request |
US6324580B1 (en) * | 1998-09-03 | 2001-11-27 | Sun Microsystems, Inc. | Load balancing for replicated services |
US6219706B1 (en) | 1998-10-16 | 2001-04-17 | Cisco Technology, Inc. | Access control for networks |
US6456603B1 (en) | 1999-01-21 | 2002-09-24 | Telefonaktiebolaget L M Ericsson (Publ) | Method of supporting communications mobility in a telecommunications system |
US6377975B1 (en) * | 2000-03-01 | 2002-04-23 | Interactive Intelligence, Inc. | Methods and systems to distribute client software tasks among a number of servers |
US7634528B2 (en) * | 2000-03-16 | 2009-12-15 | Microsoft Corporation | Harnessing information about the timing of a user's client-server interactions to enhance messaging and collaboration services |
US6738813B1 (en) * | 2000-09-11 | 2004-05-18 | Mercury Interactive Corporation | System and method for monitoring performance of a server system using otherwise unused processing capacity of user computing devices |
US7325047B2 (en) * | 2001-05-23 | 2008-01-29 | International Business Machines Corporation | Dynamic undeployment of services in a computing network |
US20030115259A1 (en) * | 2001-12-18 | 2003-06-19 | Nokia Corporation | System and method using legacy servers in reliable server pools |
GB2389479B (en) * | 2002-06-07 | 2005-12-28 | Hewlett Packard Co | Method of serving out video over a network of video servers |
-
2003
- 2003-09-03 US US10/654,094 patent/US7512949B2/en not_active Expired - Fee Related
-
2004
- 2004-07-02 CN CN200410050082.7A patent/CN100484127C/zh not_active Expired - Fee Related
-
2008
- 2008-07-28 US US12/180,988 patent/US20080307438A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US7512949B2 (en) | 2009-03-31 |
US20050050138A1 (en) | 2005-03-03 |
CN1592295A (zh) | 2005-03-09 |
US20080307438A1 (en) | 2008-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100484127C (zh) | 自主应用服务器使用的状态中枢 | |
US7159007B2 (en) | Communication system for automation equipment based on the WSDL language | |
CN100418057C (zh) | 用于应用程序分布式管理的启用网格的虚拟机的方法和*** | |
US7734823B2 (en) | Edge side components and application programming environment for building and delivering highly distributed heterogenous component-based web applications | |
CN1988548B (zh) | 用于处理语音处理请求的方法和*** | |
CN1906580B (zh) | 对于具有可移动对象的启用网格的虚拟机的方法和*** | |
US7200681B1 (en) | Edge side components and application programming environment for building and delivering highly distributed heterogenous component-based web applications | |
US20060004764A1 (en) | Method and apparatus for accessing web services | |
US20080256510A1 (en) | Method And System For Generating Automatically Distributable Clients Of Application Servers | |
US7346893B2 (en) | Exchange infrastructure system and method | |
Floréen et al. | Towards a context management framework for MobiLife | |
CN1918886B (zh) | 用于配置客户机端通信协议的方法和*** | |
CN104468838B (zh) | 一种P2P网路和发布订阅模式的Web服务选择方法 | |
US7353248B1 (en) | Application server and method to perform hierarchical configurable data validation | |
CN113590576A (zh) | 数据库参数调整方法、装置、存储介质以及电子设备 | |
WO2004001598A2 (en) | Distributed computer | |
CN101968740A (zh) | 一种基于java class编译的业务数据动态调整服务器及*** | |
US20020120786A1 (en) | System and method for managing application integration utilizing a network device | |
US5913027A (en) | Data processing method for a computer system including computers connected via a communication path to each other and computer-readable recording media for use with the computers | |
CN102036188A (zh) | 多节点***下的邮件代理方法、设备和*** | |
EP1506478B1 (en) | Exchange infrastructure system and method | |
CN115102960B (zh) | 一种基于伸缩部署的企业物联管理*** | |
US7499936B2 (en) | Generic SNMP proxy | |
Issarny et al. | Designing an open-ended distributed file system in Aster | |
Omar et al. | SOAW2 for Managing the Web 2.0 Framework |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090429 Termination date: 20100702 |