Welcome

首页 / 软件开发 / 数据结构与算法 / 构建SOA组合业务服务,第7部分: 为组合业务服务提供多分租支持

构建SOA组合业务服务,第7部分: 为组合业务服务提供多分租支持2011-04-08 IBM Amber Roy-Chowdhury引言

本系列之前的文章介绍了组合业务服务 (CBS) 的概念,并讨论了其需要的部 署环境的一些核心元素。本文将介绍多分租(即从共享的公共承载环境中为多个组织(客户 )提供服务的能力)。另外还将介绍软件作为服务(Software-as-a-Service,SaaS)的网络 交付方法及可能会利用 SaaS 多分租的不同用户类型。我们将介绍在 SaaS 承载环境中支持 多分租的原则和技术实现。本文提供了使用 WebSphere® Process Server 和 WebSphere Portal、虚拟门户和 Portlet 的克隆与配置实现模式的多承租者平台实现。通过示例,我们 还能了解如何对 Portlet 实现进行更改,以支持门户角色的扩展配置文件信息。本文将重点 讨论为了支持订阅者和最终用户而对软件服务和基于 Portlet 的用户界面的设计更改。

多分租

在软件作为服务 (SaaS) 模型(也称为随需应变软件)中,服务的交 付(如使用 WSDL 描述的服务)以对服务提供者的软件产品基于网络的访问为基础。此方法 与通过安装机制的传统压缩打包软件交付形成对比。典型的服务提供者在大型的数据中心承 载其软件,并使用 Internet 交付业务服务。尽管本文中的示例的重点是服务提供者为独立 企业的具体案例,但服务提供者也可以为大型企业中的一个部门。

图 1 描述了一个 SaaS 示例。其中,Bank Account Opening 服务提供者承载 Account Opening 服务的实现, 而服务的每个订阅者(承租者)都是银行,如 First Bank 和 Second Canadian Bank。而每 个银行反过来将向其客户交付银行特定的 Account Opening 服务配置。

图 1. SaaS 示例

构建 SOA 组合业务服务,第 7 部分: 为组合业务服务提供多分租支持

构建 SOA 组合业务服务,第 1 部分: 开发 SOA 组合应用程序来支持业务服务 中给出了 银行 SaaS 应用程序中角色的详细示例。第 1 部分将从服务提供者的公共共享承载环境支持 多个业务服务订阅者(承租者)的能力称为多分租。

多分租支持是整个运行时堆栈中 进行了全面考虑的设计理念。它要求对运行时环境拓扑、服务实现和用户界面的所有层次加 以谨慎考虑。多承租者平台实现的选项涵盖诸多方面:从基于硬件的方面到虚拟化技术方面 。在极端情况下,每个订阅者可能均由一组专用硬件和软件承载。此拓扑通过选择在承载环 境中使用的实际硬件提供的多种选项为订阅者提供了最大的灵活性。例如,可以通过选择 CPU 来选择具体的性能。还可以基于服务器硬件选择可靠性级别。不过,此拓扑可能开销最 大,因为这将迫使提供者为订阅者管理一系列专用服务器。提供者可以通过为很多客户共享 硬件来实现成本节约。例如,提供者可以通过在数据库上安装多个数据库(每个客户一个数 据库)减少成本。提供者还可以共享应用服务器的实例,以承载业务服务的多个实例。

从概念上来说,多承租者平台的选项范围可以大致归类为以下类别之一:

完 全不共享

共享物理服务器

共享应用程序

务必认识到,即使在完全 不共享的环境中,也能从定义良好的拓扑、公共硬件/软件产品定义和供参考的路线图获益。 共享服务器类别相当广泛,包括以下选项:

仅共享支持基础设施(由 Tivoli® Provisioning Manager 之类的产品提供)

共享使用 Tivoli Access Manager 和 WebSeal 等产品实现的安全性功能

共享使用 DB2 等产品的数据库服务

共享 中间件,如应用程序、流程和门户服务器

本文将讨论最后的共享应用程序:在此环境中,整个堆栈(包括硬件和软件)在整个用户 群中实现重用;可以为各个订阅者配置软件(同时保留自定义选项)。

在本文下面的内容中,我们将了解如何实现对多分租的支持。接下来将重点讨论组合应用 程序所需的三种核心服务类型,如图 2 中所示。

图 2. 组合应用程序服务