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

阻塞应用程序服务器线程的影响
应用程序服务器在 SOA 领域中扮演者不可或缺的角色。作为平台,它们允许应用程序开发人员将重点放在业务逻辑的开发上,而将基础硬件和软件相关细节抽象出来。它们提供安全性、事务完整性、高可用性等服务。作为部署业务服务的平台,应用程序服务器可以发展为 SOA 的基础。因此,务必理解可能会极大影响应用程序服务器的稳定性的一些细节。
应用程序服务器由两个基本线程组件组成:托管线程和非托管线程。
托管线程 是重量级的,与元数据相关联,如事务上下文和安全上下文等。这些线程是执行业务应用程序的事务工作的实体。托管线程由工作负载管理器监视,用于确定是否需要更多的资源来满足所定义的服务级别策略。出现错误时,它们将回滚所执行的事务。它们通常在服务器进程中形成资源池,以便对其进行高效利用。应用程序服务器内的托管线程直接影响和决定服务器处理工作的容量(图 2 演示了此场景)。
图 2. WebSphere Application Server z/OS 线程概览

非托管线程 缺乏与托管线程关联的元数据。这些线程通常都是轻量级的,用于执行缓存清理和对象清理之类的事务。它们的失败并不会直接影响事务的完成,安全需求最小。
应用程序服务器中的托管线程执行事务工作负载,因此会直接影响服务器的总体容量和吞吐量。单个工作线程并不会并行执行两个事务,因此,单个事务完成所需的时间越长,工作线程用于处理此事务所花费的时间越多。在工作线程完成其事务并释放以执行下一个事务前,无法处理任何新工作(图 3 给出了此场景的图释)。应用程序服务器的吞吐量可以通过将单个事务处理的速率乘以服务器内的托管工作线程数量得到。
作者:Snehal Antani 责编:豆豆技术应用