我们这些参与SOA项目的人不断地希望找到适当的方法来可视化我们正在开发的系统的各个方面——从组件图和业务模型到模式和流,甚至包括监视仪表板。但是该信息的大部分是静态的,并且所有信息都是二维的。新技术带来了动态和三维视图的可能性,这些视图使我们不仅能够在虚拟世界中观察某个系统,而且还能够与该系统交互,以便将我们的操作应用于实际系统。
眼见为实
正如老话所说的,一幅图胜过千言万语。在面向服务的体系结构(service-oriented architecture,SOA)项目的几乎每个阶段中,参与人员无论扮演什么角色,都要面临着“表明”其预期意图的挑战。换句话说,我们这些参与SOA的人希望找到适当的方法来可视化我们正在开发的系统的各个方面。
当然,在理想的情况下,我们使用某种级别的抽象来使得掌握预期的解决方案变得很容易。在更好的情况下,我们只需以任何方式重用作为我们在项目中的角色的一部分来开发的抽象。存在一些常用的技巧和技术可帮助您“可视化SOA”,我们将在本文中探索其中一些技巧和技术。
从何处着手:建立业务透视图
近来,一切都从业务开始,业务也(通常)是任何IT项目投资的来源。业务还是在IT方面所做的任何事情的最终客户。那么,如果SOA是答案,您将从何处着手呢?在您开始确定可能需要哪些服务、可能接受哪些业务流程和如何将现有的系统集成到解决方案中之前,获取业务视图无疑是有帮助的。因此,这就是我们的可视化技术分析开始的地方。
通常,我们在IBM鼓励客户使用一种称为组件业务建模的技术,从而创建他们的核心业务组件的可视化模型。该活动的结果之一是企业中所有核心业务组件的可视化表示形式,这些组件按能力和可靠性级别(Competency and Accountability Level)排序,如图1所示。

图1. 示例CBM组件图
如上所示的组件图(针对一家虚构的汽车租赁公司而创建)还支持确定哪些领域迫切需要改进,以及哪些领域能够保证最佳的投资回报。类似如此的关系图对于可视化业务大有裨益,并且可用于在人员团队之间轻松交流“问题空间”。
搭建桥梁:使业务与IT保持一致
面向服务的核心原则之一在于促进业务与IT之间的更紧密一致性。简而言之,您采用某个组件图,并使用诸如IBM WebSphere Business Modeler等工具来开始对相关核心业务流程建模。这不仅为您提供了另一种形式的可视化,而且还使用了底层的正式技术模型。这样做的优点在于,您可以将该模型转换为不同的形式,从而直接有助于解决方案的创建,您将在下面进一步看到这一点。

图2. WebSphere Business Modeler中建模的业务流程
然而,首先也是最重要的是,业务流程模型允许您使用拖放工具,可视化地对流程进行描述和分解,直至达到服务概念开始表现出来的详细程度。

图3. WebSphere Business Modeler中的流程分解
在我们将这幅图片深入到IT世界之前,我们需要首先查看一下底层的基础。
基础:可视化中间件
项目中存在一个必须在其中定义SOA解决方案技术基础的阶段。这包括诸如企业服务总线(Enterprise Service Bus,ESB)等体系结构组件,以及诸如应用程序服务器和消息引擎等技术组件和产品。而且——您可能已经猜到了——使用可视化是该工作的关键方面。
在最高级别,您可以使用模式来帮助定义环境中存在的组件的范围和术语。例如,IBM提供了用于电子商务的模式,图4显示了那些模式的示例。

图4. ESB网关运行时模式
然后,图4所示的模式视图发展为系统的特定方面的更具体图片。最终,您将向该图片中添加产品,以表明它们如何帮助构建基础,如图5所示。

图5. 带有产品的示例拓扑
在大多数情况下,这些虚拟化是相对简单的关系图,通常将它们插入PowerPoint演示文稿。由于它们本质上只是图片,因此不会直接使用它们来生成代码(举例而言)或任何其他IT相关的构件,但是它们对于传达和记录任何SOA解决方案的基础极为重要。
模型:包含抽象
为了将该信息转换为仍然能够可视化地进行构建的正式和标准化的模型,我们将求助于UML和IBM Rational Software Architect(或Rational Software Modeler)。此工具使您能够可视化地创建整个解决方案的已开发模型;例如,包含拓扑的关系图、逻辑体系结构、系统上下文、用例,以及最终的类和交互关系图。

图6. 带有服务模型的UML组件关系图