dev2dev 首页 > 资源中心 > 技术文章
构建基础结构智能应用程序

如同基于服务的应用程序可以利用一系列共享的应用程序资源,基础结构智能应用程序也可以利用一个共享的基础结构,该基础结构能够适应应用程序的需求。本文将介绍共享基础结构的基本概念,分析Blue
Titan Network Director,以及它如何与WebLogic Enterprise
Platform相互操作,从而使基础结构智能应用程序的开发成为可能。本文还对自适应应用程序的未来作了展望。
基础结构智能应用程序
传统应用程序是许多独立的功能孤岛。Web服务为把应用程序分解为细粒度的模块提供了一种自然的方式、允许这些应用程序针对不同的用户在多个系统之上重构和重配,Web服务正在改变传统应用程序作为功能孤岛的现实。这种粒度,结合把独立模块组合成高级应用程序的能力,为开发者提供了构建异常复杂、高度可重用、和高效率的应用程序的新工具。
一系列正在出现的标准和技术将会把这种粒度和重用性扩展到应用程序基础结构本身,使基础结构智能应用程序能够与应用程序架构进行实时交互,从而满足更大范围的服务水平或可靠性需求。例如,如果负荷峰值的到来导致一个Web
服务的响应时间达到一个无法接收的程度,基础结构智能应用程序就会通过添加另外一个服务实例来增强功能,或者对访问进行限制,只允许优先级高的用户的访问。这两种操作都可以保证性能保持在您与重要客户共同制定的服务水平协议(SLA)的范围之内。
通过提供一个共享的基础结构,Blue Titan为开发人员创建基础结构智能应用程序提供了一种可行的方案。Blue
Titan提供的基础结构可以实现许多核心功能,比如SLA增强、路由、故障切换、访问控制、日志、和访问一组共享服务的优先权控制,这些服务可以被任意多个Web服务应用程序所重用。应用程序与基础结构功能的明确分离使管理员可以为所有Web服务定义并强制执行一致的、企业范围的控制策略。
共享基础结构
共享基础结构的优点很多,并且十分明显。从开发的角度讲,开发人员不再需要承担为每个应用程序构建基础结构的繁重工作。相反,他们只要简单地使用一组可以在网络中执行的共享服务就可以了。从管理的角度讲,管理员可以定义并应用统一的基础结构实践到他们所管理的所有应用程序,并可以维护一系列定义完整的、通用的服务和基础结构工具。从资源利用的角度讲,基础结构可以作为一组相关资源被管理和扩展,从而满足更高的性能或可靠性要求,而不再是一系列分散的孤岛。
依托共享基础结构构建自适应应用程序的过程涉及以下四个关键方面:
- 一系列可以按照已建立的基础结构策略监视并路由Web服务负荷的共享网络节点:这些节点代理所有Web服务负荷,通常由企业IT部门进行管理。
- 一系列共享的基础结构服务,它们可以跨越机构供多个开发人员组织使用:这些服务要么在共享网络节点上运行,要么在专用企业系统上运行(例如,一个共享的认证服务可能在一个现有的身份系统上运行)。
- 在整个共享基础结构上定义并强制执行统一策略的能力:这些策略负责管理共享的功能,比如请求者的认证和优先级判断、日志和内置消息、以及违背SLA之后的补偿措施。
- 一个开放的、基于服务的接口,它可以提供对基础结构控制功能和服务元数据的访问。
满足以上四个条件,才可能在实时服务性能与底层应用程序基础结构之间构建一个自适应的反馈环。
如图1所示,一个连续的正向环运行在每个应用程序的后台,验证是否所有相关的基础结构策略都得到了满足。如果所有策略都满足了,这个循环就会继续默默运行。如果一个策略没有满足(无法接受的响应时间、多个非授权的请求、等等),系统将会产生一个事件,并触发一系列补偿服务。这些服务将会调整共享基础结构的操作属性,从而将服务带回到正常的状态。

一个实用的共享基础结构实现
Blue Titan Network Director是一个可以控制和协调Web服务的企业级软件。它提供由控制点(网络节点)和Fabric服务(共享的基础结构服务)组成的共享基础结构。BEA
WebLogic Platform和Network Director相互结合,为开发基础结构智能应用程序提供了一种可行的方案。
在BEA WebLogic Workshop中创建的服务被注册到Network Director中,在其中它们成为可管理的网络资源。一旦注册,服务就被赋予特定的安全、管理、和监视策略,这些策略在整个企业内以一种一致、统一的方式被执行。开发人员负责创建拥有完整接口定义的服务和WSDL,剩下的其他工作由IT部门完成。在这种方式下,即使策略发生改变(比如增加了一个新的登录要求),服务本身仍然和有效和可用的。
Fabric 服务
目前Blue Titan提供一组立即可用的、共享的、和可重用的服务,总数超过80个。这些Fabric服务使开发人员和管理员不必使用代码和脚本,就可以与Network
Director进行语法上的交互。它们提供对服务元数据的语法的访问、以及服务管理功能、和控制功能。这使IT部门可以构建能够影响负荷流、功能、并能访问网络属性的基础结构策略,从而满足操作的需求。
通过控制点进行间接寻址
Blue Titan的控制点在企业范围内执行并增强Web服务。控制点是一种基于servlet的组件,它们在BEA
WebLogic Server上运行,并根据负荷、安全、和可靠性的需要被部署到网络上。一旦注册到Network
Director上,所有Web服务接口都被分配一个指向控制点的虚拟地址。所有对服务的请求首先都被路由到Blue
Titan控制点上,然后才到达相应的服务提供者。这种间接寻址使得Network Director能够提供控制、协调、和元数据功能。当请求和响应经过控制点时,策略将被强制执行(访问、故障切换、等等),操作元数据(响应时间、正常运行时间比例、等等)也将被搜集并保存到日志中。然后,这些信息就可以被任何兼容Web服务的应用程序所引用,比如WebLogic
Workshop 或 Portal。
基础结构智能应用程序范例
采用BEA WebLogic Enterprise Platform 和 Blue Titan
Network Director,开发人员和企业IT部门可以协作创建一个自适应的基础结构。如果所有显示和控制功能全部都是Web服务,那么基础结构的灵活性几乎是没有限制的。以下例子演示了一个简单的新方法,使用它开发人员可以利用共享基础结构来构建更可靠、响应更迅速的应用程序。
在构建阶段分析服务元数据
使用Blue Titan Network Director 和 BEA WebLogic Workshop,开发人员可以查询一个特定服务当前的性能信息。有了这些信息,就可以决定是否应该继续使用该服务,还是使用另外一个具备更高性能、拥有更可靠历史记录的替代服务。(参见图2)
使用WebLogic Workshop,开发人员可以调用Blue Titan的一个Fabric服务:listConsumableServices来显示哪些服务可用。在本例中,假定一个服务存在两个版本:ServiceA.1
和 ServiceA.2。为了察看ServiceA.1 和 ServiceA.2的元数据,Fabric服务getLatencyByService、getUptimeByService、和getUsageByService将被调用。结果信息将被用来判断哪个服务更适合应用程序(参见图2)。
注意:这几个连续的Fabric服务调用可以被方便地组合成一个粗粒度的、名为listServiceMetadata
的Web服务。可以把该服务提供给开发人员供将来使用,也可以将其加入到Workshop 控件中,或者链接到BEA
WebLogic Portal中提供图形界面。结果,我们在构建阶段获得了一个用于发现和操作服务元数据的改进过程。
在SLA被违背的情况下部署额外的服务实例
基础结构智能应用程序可以与底层的WebLogic Platform交互,以便满足服务水平承诺(SLA)的要求。假设有一个重要的服务:tradeStatus,它的最大反应时间限制是500ms。换句话说,该服务的提供者必须保证tradeStatus在500ms内完成,否则必须向用户退费。为了满足服务的约束条件,提供者使用了Blue
Titan Network Director。
重新来看图1中的流程图。正向环不断执行,监视着tradeStatus的操作参数。当一个使用高峰引起响应时间超过550ms时,一个事件将被生成,补偿环开始运行。如果补偿环只是简单地调用另外一个(基础结构)web服务,该服务可能针对这个事件执行了一系列的操作。在本例中,补偿环将调用两个Workshop控件:deployWebService
和 registerWithBlueTitan,它们将会引入另外一个新的tradeStatus实例,从而增强功能,降低反应时间。
Workshop控件deployWebService调用定义好的一系列Ant任务,这些任务在Workshop中自动构建一个EAR并部署到可用的WebLogic
Server上。然后,Workshop控件registerWithBlueTitan调用一系列Fabric服务,它们把新WSDL注册到Network
Director中,并分配适当的策略。一旦这些动作全部完成,Web服务会自动被被消费者访问,并被加入到正向环中。如果响应时间再次超出范围,该过程将被重复执行。
结论
BEA 和 Blue Titan在提供最好的Web服务基础结构方面进行了积极的合作。WebLogic
Platform专门被设计成可以构造并运行关键业务web服务。Blue Titan Network
Director增强了以上功能,通过提供通用控件基础结构,它能够保证所有Web服务在整个企业范围内按照统一的方式被使用。现在,Blue
Titan已经为用户提供了操作可靠的、和可扩展的Web服务应用程序的有效方法。在不久的将来,如果用户需要使用会话来支持异步处理,BEA
和 Blue Titan将会把Web服务的灵活性扩展到事件驱动的、覆盖多个系统或域的有状态处理中。最后,一个100%基于标准的企业计算方案将会出现;构建、集成、和运行业务应用程序的成本将会显著降低。
应用程序负荷控制系统
作为类比,请假设有一个航空工业的基础结构。航空工程师具备了结构、飞行系统、和空气动力学方面的专业知识;并专注于构建一个最好的飞行器。工程师们显然不会考虑如何构建一个优秀的机场,或者如何在城市之间导航737客机。但是,他们的确需要保证737可以满足基础结构的接口。例如,所有飞行器必须能够在现有的跑道上起飞和着陆;必须能够通过无线电和航空交通控制系统通讯;必须能够使用标准的航空燃料。只有飞行器满足了这些接口需求,我们才能使用现有的基础结构方便地地操纵和管理它。在一个共享的基础结构上开发应用程序是一个类似的工作。开发人员有责任构建尽可能优秀的应用程序。唯一的要求是应用程序必须具备合适的接口,这样才可以利用共享的基础结构。
如果您正在为自己的Web服务应用程序构建路由、故障切换、安全、和优先级判断等功能,采用一个现成的共享基础结构将会使您的工作变得轻松很多。
作者其它文章
|