构建弹性 SOA 基础设施之一

豆豆网   技术应用频道   2007年12月31日  【字号: 收藏本文

内容摘要:本系列描述构建弹性 SOA 基础设施的设计问题和技术,本文是其中的第 1 部分,重点介绍 IBM® WebSphere® Application Server for z/OS® 如何加入 SOA 以及其如何为 SOA 弹性做出贡献。

  另一个例子源自 Common Object Request Broker Architecture (CORBA),即数据的序列化和反序列化对性能有重大影响。因此,要构建高性能分布式系统,设计人员必须了解所传输的远程对象,并对此进行简化,以提高性能。这些经验教训和很多其他知识在构建弹性 SOA 基础设施时都非常重要。

  应用程序服务器和共享运行时基础设施

  应用程序服务器已经成为了用于将服务提供者与服务使用者进行连接的平台。在构建可靠的弹性 SOA 基础设施时,了解应用程序服务器的行为方式非常重要。当应用程序服务器在共享资源环境中运行时,SOA 的弹性特别重要,因为脆弱的 SOA 的负面影响会被放大。对于共享运行时基础设施,在最底层消除了硬件竖井 (silo) 范式的服务隔离,服务会争用相同的硬件资源(如 CPU 和内存)。这会产生什么样的结果呢?由于共享资源被锁定、使用或耗尽,脆弱的 SOA 可能会直接或间接地影响其他服务和子系统。

  共享运行时基础设施承载很多服务和子系统,包括数据库(IBM DB2®、Oracle 等)、遗留事务处理(如 IBM CICS®)、平台消息传递(如 IBM WebSphere MQ)等等。所有这些服务和系统都会在一定程度上争用共享资源。在负载过大的情况下,共享运行时将使用服务策略、相关优先级和其他此类元数据来管理资源的分配。当高优先级服务不能达到所定义的服务级别水平时,基础负载管理器(用于管理共享资源分配的子系统)将决定哪些服务能访问资源,哪些不能。因此,当共享系统必须进行分配决策时,这些具有较高优先级的服务可能会对较低优先级的服务造成负面影响。

  共享资源争用在采用 SOA 时将是一个重要的设计注意事项。糟糕的体系结构设计不仅会给 SOA 造成负面影响,而且会损坏整个共享系统。例如,图 1 所示的系统中数据库由两台应用程序服务器使用,这两台服务器分别承载两个独立的服务。服务器 1 中的故障会导致正在进行的事务回滚。回滚由数据库执行,而此任务具有较高优先级。数据库在回滚事务时,可能会从服务器 2 剥夺共享资源,而后者与故障没有任何关系。

作者:Snehal Antani    责编:豆豆技术应用

正在加载评论...