WebSphere Integration Developer 指导教程——第 2 部分
作为本系列中第二篇文章,本文将介绍面向服务的体系结构 (SOA) 编程模型,并描述如何在 WebSphere® Integration Developer 中创建简单的 SOA 应用程序。
摘自 IBM WebSphere 开发者技术期刊。
以面向服务的方式构建应用程序
在本系列的第 1 部分中,我们通过介绍 IBM® WebSphere® Integration Developer 及其附带的各种工具,为您提供了该产品的概况。在第二篇文章中,您将了解编程模型以及工具使用环境。为将此主题的各个方面结合起来进行讨论,我们将描述一个简单的应用程序并演示如何使用 WebSphere Integration Developer 构建该应用程序。
相信您一定已经听说过面向服务的体系结构 (SOA) 这一术语。但什么是 SOA,以及更重要的问题,它对业务集成领域有什么好处?我们非常乐意回答您的问题。WebSphere Integration Developer 应用程序是通过面向服务的体系结构进行实现的,因此我们首先讨论什么是 SOA 以及遵循这种体系结构模式对于我们的应用程序会有何好处。
理想情况下,您希望能重用现有的 IT 资产作为构件或组件来构建新的应用程序。每个构件都是一个服务,这意味着您可通过标准方法来访问服务而不必关注其具体实现及其位置。在 SOA 中,业务逻辑从基础结构中被分离出来,因此开发人员可以把精力集中在实现上,而无需关注如何访问服务。
简而言之,服务是一些黑盒,您并不关注其内部情况,只要它们能够按照所声明的情况进行工作。一旦您拥有这些黑盒,接下来的关键步骤就是将它们连接起来构成完整的应用程序。这些黑盒可以是 Java™ 技术、业务流程执行语言 (BPEL)、到遗留系统的连接或适配器以及到业务合作伙伴所提供的 Web 服务的连接。它们就是您的服务构造块。
服务通常是无状态的,这意味着您无需担心是否按特定顺序或在具体的上下文中调用它们。而且,您可能打算要合成业务合作伙伴的服务,并以访问您自己服务的方式来访问它们。您还可能需要合作伙伴能够访问您的服务。通过 SOA,您可通过交换服务或调用新的所需服务,来方便地适应不断变化的业务环境。这使企业之间的业务交易变得更加方便。
访问服务的标准方式是什么?服务会发布其接口,这也是服务与调用方之间的协定。接口可通过某种语言进行定义,例如 Web 服务接口可通过 Web 服务定义语言(Web Services Definition Language,WSDL)进行定义。接口中包含向服务传递数据或从服务获取数据的规范。接口并不指定如何实现服务以及用什么语言来实现服务。因此,您可能具有使用 Java 实现的服务,而该服务又调用另一个使用 BPEL 实现的服务。
所有这些都是一般性的概述,听起来不错,但我们需要深入探讨如何使用 WebSphere Integration Developer 来实现面向服务的体系结构。在上一篇文章中,我们讨论了服务实现的各种方式,但对服务如何协同工作方面未作详细介绍。本文将深入介绍服务交互的详细内容。
应用程序的构造块
构造块是一种比喻说法,这对于我们理解面向服务的体系结构非常有帮助。通常情况下,您会将这些构造块堆叠在一起以构建较大的应用程序,而后者又可作为另一种构造块。通过这种方式来分析服务,就能容易地掌握 WebSphere Integration Developer 中的服务组件体系结构(Service Component Architecture,SCA)编程模型。SCA 是 SOA 的一个实现,而 WebSphere Integration Developer 是一个 Workbench,利用其提供的工具,您不仅可以直观地将构造块组装成完整的解决方案,还可以构建每个构造块的内部工作。SCA 标准化工作是 Apache Tuscany 开放源代码项目的一部分。在接下来的几部分中,将介绍关于使用服务组件体系结构对您要通过 WebSphere Integration Developer 构建的任何解决方案进行基础布局的基本知识。
模块
模块 是服务的容器,它既是 WebSphere Integration Developer Workbench 中的项目,也是 WebSphere Process Server 上的部署单元。这意味着您构建的任何解决方案都将作为一个或多个模块部署到服务器上。对那些熟悉 J2EE 的开发人员而言,模块是作为企业归档 (EAR) 文件进行打包和部署的。服务组件体系结构的优点之一是您无需关注底层的打包工作。模块提供的服务既可被其他模块使用,也可由合作伙伴或客户通过外部客户端来进行访问。模块是组件、导入和导出的集合,我们将在以下几部分中进行介绍。
文章来源于领测软件测试网 https://www.ltesting.net/