`
javaping2008
  • 浏览: 105827 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

可视化 SOA,从第一步到 Second Life

阅读更多

眼见为实

正如老话所说的,一幅图胜过千言万语。在面向服务的体系结构(service-oriented architecture,SOA)项目的几乎每个阶段中,参与人员无论扮演什么角色,都要面临着“表明”其预期意图的挑战。换句话说,我们这些参与 SOA 的人希望找到适当的方法来可视化我们正在开发的系统的各个方面。

当然,在理想的情况下,我们使用某种级别的抽象来使得掌握预期的解决方案变得很容易。在更好的情况下,我们只需以任何方式重用作为我们在项目中的角色的一部分来开发的抽象。存在一些常用的技巧和技术可帮助您“可视化 SOA”,我们将在本文中探索其中一些技巧和技术。

从何处着手:建立业务透视图

近来,一切都从业务开始,业务也(通常)是任何 IT 项目投资的来源。业务还是在 IT 方面所做的任何事情的最终客户。那么,如果 SOA 是答案,您将从何处着手呢?在您开始确定可能需要哪些服务、可能接受哪些业务流程和如何将现有的系统集成到解决方案中之前,获取业务视图无疑是有帮助的。因此,这就是我们的可视化技术分析开始的地方。

通常,我们在 IBM® 鼓励客户使用一种称为组件业务建模的技术,从而创建他们的核心业务组件的可视化模型。该活动的结果之一是企业中所有核心业务组件的可视化表示形式,这些组件按能力和可靠性级别 (Competency and Accountability Level) 排序,如图 1 所示。

如上所示的组件图(针对一家虚构的汽车租赁公司而创建)还支持确定哪些领域迫切需要改进,以及哪些领域能够保证最佳的投资回报。类似如此的关系图对于可视化业务大有裨益,并且可用于在人员团队之间轻松交流“问题空间”。

搭建桥梁:使业务与 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 组件关系图

使用 UML 和 Rational 工具使您能够在某个可发展为具体模型和实现的抽象级别上构建解决方案。同样地,它提供了有关解决方案的每个部分的视图和透视图。

实物:实现解决方案

您可能以为,您已经准备好离开图片和关系图并开始编写代码了。您大概是对的。在您开发的几乎任何解决方案中都将存在自定义代码,而且并非一切都可以在抽象模型的基础上自动生成。但是您仍然可以尝试对系统的某些部分使用可视化开发:使用 IBM WebSphere Integration Developer 将业务流程实现为采用 WS-BPEL 语言来描述的服务编排。


图 7. 采用 WS-BPEL 来表示的简单业务流程

类似地,您可以使用不同的工具来可视化地定义在企业服务总线中执行的中介流,具体使用什么工具将取决于特定的产品。图 8 是为 WebSphere ESB 构建的中介流的示例,同样使用了 WebSphere Integration Developer。

在使用 WebSphere Process Server 或 WebSphere ESB 时,您可以利用服务组件体系结构(Service Component Architecture,SCA),该体系结构提供了可视化的组件组装(同样是使用 WebSphere Integration Developer)。这允许您定义组件及其接口之间的依赖项和关系,以及定义协议绑定,这些协议绑定支持 SCA 模块与外部使用者和提供者之间的连接。


图 9. SCA 组装关系图

而且,还存在对所有这一切的若干好处:

  • 可以更快地开发解决方案,因为可以使用拖放操作来聚合和开发服务及其他组件。
  • 与将一切定义在 (Java) 代码中或定义为某个文档中的文本相比较,可以更快地做出更改。
  • 更容易进行有关解决方案的交流,因为与阅读代码和/或文本相比,图片更容易领会。

上述要点不仅适用于实现阶段,而且适用于已经提到的解决方案创建的所有方面。

操作视图:管理和监视

到目前为止,您已在该过程中的每一步使用了可视化和抽象——而且该过程在部署解决方案之后后并未结束。存在两个应用监视和管理的主要级别,即业务级别和 IT 级别。

在业务级别,您可以使用诸如 WebSphere Business Monitor 等环境来捕获运行环境中发生的相关事件,将这些事件与预定义的关键性能指标相关联,并以能够集成各种来源的信息的仪表板形式可视化这些事件。


图 10. WebSphere Business Monitor 仪表板

未来:在虚拟世界中查看真实的 SOA

您在本文的示例中看到的可视化信息大部分是静态的。它们代表系统的快照视图,虽然各个地方也存在有限的支持来使得这些视图更加动态;例如,使用 Powerpoint 自定义动画和动画 GIF 文件。此外,上面所示的所有视图都是二维的。

要创建系统的动态和三维视图,我们可以向虚拟世界寻求帮助。在这样的世界——其中最常见的是 Second Life——中,您不仅可以显示运动的事物,而且还可以使用您自身的虚拟表示形式来从不同的角度实际查看这些事物,您只需在它们周围走动或飞行。您可以利用这些功能来创建真实 IT 解决方案部署的虚拟表示形式。

IBM 开发了一个有关如何完成此类虚拟表示形式的示例。该示例使用的应用程序从真实系统接收事件(部分地使用了公共事件基础设施),并使用一个允许控制某个位置的虚拟元素的 API 来将事件发送到 Second Life。这样,您就可以通过在虚拟世界中在真实系统周围走动并从某个角度进行查看,从而观察真实系统的实际结构和行为。


图 12. Second Life 中使用 DataPower 和其他产品的基于 ESB 的系统

最终,可以使用该环境来做的工作不仅只是观察某个系统。虚拟世界中的化身可以采取操作并将操作发送到真实世界中,并且可以直接将操作应用于真实系统。这使得 IT 操作员能够(可视化地)在他或她的数据中心周围飞行,并根据需要启动和停止组件,密切注意警报,对警报做出反应等等。把这看作是交互式仪表板的未来版本吧!

 

分享到:
评论

相关推荐

    Tableau数据可视化实战.pdf

    在数据分析的过程中,连接到数据是第一步也是最重要的一步。Tableau 提供了多种方式来连接到不同的数据源,包括 Excel、CSV、SQL Server、Oracle 等。读者可以根据自己的需要选择合适的数据源,并学习如何连接到这些...

    redis 可视化工具

    3. Redash:虽然主要是用于数据查询和可视化,但也可以连接到 Redis 数据源,进行数据探索和简单的管理操作。 4. Redis Commander:一款开源的 Web 基于的 Redis 管理工具,可以在线查看、编辑和操作 Redis 数据,...

    Python数据分析与应用:从数据获取到可视化

    数据获取是数据分析的第一步,通常涉及网络爬虫和API接口。Python的requests库用于发送HTTP请求,BeautifulSoup和Scrapy框架则用于解析HTML和XML文档,从而抓取网页上的数据。同时,对于API接口,Python的urllib和...

    99套数据可视化大屏(含源码

    HTML/CSS的大屏数据可视化集合案例源码(99套)数据可视化集合。 基于HTML/CSS/Echarts的会议展览、业务监控、风险预警、数据分析展示等多种展示需求可视化集合,76套数据可视化源码,25套数据可视化源码。数据都是...

    Python数据可视化课后习题_答案.docx

    2. **Anaconda**:Anaconda是一个开源的Python和R数据分析平台,它包含了众多科学计算和数据可视化的库,如NumPy、Pandas、Matplotlib等,便于用户管理和部署数据分析环境。 3. **实时数据可视化**:实时数据可视化...

    R数据可视化手册

    R具有强大的统计计算功能和便捷的数据可视化系统。《R数据可视化手册》重点讲解R的绘图系统,指导读者通过绘图系统实现数据可视化。, 书中提供了快速绘制高质量图形的150多种技巧,每个技巧用来解决一个特定的绘图...

    基于Django的国内疫情数据可视化Web系统源码.zip

    基于Django的国内疫情数据可视化Web系统源码 基于Django的国内疫情数据可视化Web系统源码 基于Django的国内疫情数据可视化Web系统源码 基于Django的国内疫情数据可视化Web系统源码 基于Django的国内疫情数据可视...

    《大数据可视化技术》可视化大作业:个人信息可视化展示:学习生活数据可视化、社会社交关系可视化、地理信息可视化、其他个人信息

    代码都能直接用,可以改成自己需要的,应付一下老师的作业没有问题,代码浅显易懂,如果足迹三需要修改可视化结果,可以参考压缩包里面的"作业三说明.txt"。 更改数据集后,直接运行代码,即可让运行结果变成你需要...

    python 数据分析与可视化

    《Python数据分析与可视化》课程是针对数据处理和可视化的深入学习资源,涵盖了从Python编程基础知识到高级数据分析工具的广泛主题。课程旨在通过理论讲解、源代码实践和实验环节,帮助学员掌握利用Python进行数据...

    用python实现音乐可视化

    没错,就是这个东西,这个似乎有一个名词来称呼的吧,什么名词呢想不到了,就叫她音乐可视化吧。 基本思路是这样,这个东西应该就是音乐中不同频率的分布情况,那么如何得到一首歌的频率分布情况呢,能想到的就是...

    R数据可视化手册 示例代码

    《R数据可视化手册》是一本深入探讨如何使用R语言进行数据可视化的专业书籍。这本书涵盖了各种图表类型、数据处理和自定义图形的技巧,旨在帮助读者掌握数据故事的视觉呈现。"示例代码"这部分内容提供了书中每个章节...

    python数据分析可视化-期末大作业-从获取到实现

    总的来说,这篇期末大作业提供了从数据抓取到数据可视化的完整流程,对于想要入门Python数据分析的初学者来说是一份很好的学习资源。通过实际操作,学习者可以逐步熟悉Python的pandas和matplotlib库,提升数据处理和...

    zookeeper可视化工具

    - **安装和配置**:下载并安装相应的Zookeeper可视化工具,根据工具文档配置连接到Zookeeper集群的参数,如服务器地址、端口等。 - **连接Zookeeper**:启动工具,输入配置好的连接信息,连接到Zookeeper服务器。 - ...

    可视化大屏素材.zip

    可视化大屏,作为一种高效的信息展示方式,广泛应用于数据分析、监控中心、商业决策等领域。它将海量数据通过图形化的形式生动地呈现出来,帮助用户快速理解复杂数据背后的含义和趋势。"可视化大屏素材.zip"这个...

    59套大数据可视化大屏PSD源码,包含各行业模板

    59套大数据可视化大屏PSD源码,包含各行业模板。59套大数据可视化大屏PSD源码,包含各行业模板。59套大数据可视化大屏PSD源码,包含各行业模板。59套大数据可视化大屏PSD源码,包含各行业模板。59套大数据可视化大屏...

    数据可视化大作业

    数据可视化 大作业 广东工业大学 数据可视化 好莱坞数据集

    Python数据分析与可视化-电子教案.pdf

    《Python 数据分析与可视化》是一门专为计算机系或大数据技术与应用专业学生设计的专业必修课程,旨在培养学生的数据分析和可视化技能。课程总计60学时,包括36学时理论教学和24学时实验操作,授予3个学分。通过本...

    python数据可视化分析微博热搜微博可舆情可视化分析系统

    微博热搜数据可视化分析系统 前端框架:html+ css+boostrap+echart 后端框架:flask+python+snownlp 数据库:mysql python数据可视化分析微博热搜微博可舆情可视化分析系统

    Vue大屏可视化案例资源

    在“Vue大屏可视化案例资源”中,我们可以深入学习如何利用Vue.js进行大屏数据可视化的开发,这对于那些希望提升Vue技能并对此领域感兴趣的人来说是一份宝贵的资料。 在大屏可视化领域,主要目标是将复杂的数据以...

    python数据可视化大屏源码实战

    在Python编程领域,数据可视化是一项重要的技能,尤其在大数据分析和报告展示中不可或缺。"python数据可视化大屏源码实战"这个项目旨在帮助学习者掌握如何利用Python进行大规模数据的可视化呈现,通常用于构建信息...

Global site tag (gtag.js) - Google Analytics