IBM的SOA方法论之一——五个切入点和八个场景
一、什么是SOA:
面向服务的体系结构(Service-Oriented Architecture,SOA)是一种 IT 体系结构风格,支持将您的业务转换为一组相互链接的服务或可重复业务任务,可在需要时通过网络访问这些服务和任务。当在战略业务目标的引导下进行 SOA 实现工作时,可确保对业务进行积极转换,并能够实现 SOA 的好处:IT 与业务的一致性和IT 资产的最大化重用。
二、五个切入点:
IBM 定义的五个切入点能帮助您和您的业务实现预定义的 SOA 解决方案,从而从中获益。这些切入点同时受到业务需求(人员、流程和信息切入点)和 IT 需求(连接性和重用切入点)的驱动。以下是五个切入点的一般描述信息:
- 人员:SOA 的这个切入点关注用户体验,以帮助生成调用和实现更好的协作,从而获得一致的人员与流程交互,提高业务效率。例如,通过使用 SOA,可以创建基于服务的 Portlet 来提高此协作。
- 流程:流程切入点可帮助企业了解其业务中发生的情况,从而支持其对现有业务模型进行改进。通过使用 SOA,可以将业务流程转换为可重用且具有灵活性的服务,从而改进和优化这些新流程。
- 信息:通过使用 SOA 的这个切入点,能以一致而可见的方式利用公司中的信息。通过在所有业务领域提供这个一致而受信任的信息,可促进企业各个领域的创新工作,从而更为有效地进行竞争。通过使用 SOA,可以更好地控制信息,而且通过信息与业务流程的结合,可以发现很多有意义的新关系。
- 连接性:利用连接性切入点,可以有效地连接基础设施,从而将企业中的所有人员、流程和信息整合到一起。通过在服务间和整个环境中实现灵活的 SOA 连接,可以获取现有业务流程并在不需要太多工作的情况下通过其他业务通道提供此流程。甚至还能以安全的方式连接防火墙外的外部合作伙伴。
- 重用:通过 SOA 重用服务,可以充分利用企业中已经存在的服务。通过对现有资源进行构建,可以简化业务流程,在整个企业内确保一致性并缩短开发时间。所有这些将能帮助您节约大量的时间和资金。另外,还能减少服务中的功能重复,并能获得使用企业中为大家所熟悉的经过验证的核心应用程序的好处。
其实,对于对于任何一个IT系统来说,人员、流程、信息都是IT系统不可缺少的部分,换句话,可以说:人员、流程和信息是IT信息的三要素。而对于后两个,也就是连接性和重用其实是SOA的本质属性,因为没有连接性和重用性就不是一个基于SOA架构风格的系统了。
三、SOA的八个场景:
IBM 技术专家在参考实际的客户经验和多年的积累的情况下,认识到业务部门在设计和实现 SOA 解决方案的过程中经常会遵循多个常见的场景。通过定义这些场景,IBM 为您提供了预定义的真实方法,帮助实现 SOA 解决方案。每个场景都提供了经过测试和集成的产品或实现,用于实现此场景。因此,可以将这些场景映射到您公司具体的目标和需求,从而很好地确定自己如何实现这些好处。
- 服务创建:创建灵活的基于服务的业务应用程序。新的面向服务的应用程序将业务行为作为服务公开,同时还能重用作为服务公开的业务逻辑。 服务是自包含的可重用软件模块,各自执行特定的业务任务。它们具有定义良好的接口,独立于所运行的应用程序和计算平台。通过服务创建实现 SOA 重用后,JK Enterprises 将实现以下价值:
- 重用现有服务比从头编写新应用程序开销要小些。
- 重用经过验证的应用程序可降低风险,还能缩短进入市场所需的时间。
- 通过大幅度使用经过验证和测试的常用功能代码,可以缩减维护开销。
创建服务的一种方式是对启用服务的现有资产使用称之为间接公开的技术。例如,对于启用服务的帐户查询流程,公司将其帐户应用程序作为简单对象访问协议(Simple Object Access Protocol,SOAP)/HTTP Web 服务公开(作为会话 Bean 实现)。此方法使用 CICS 事务,可通过 CICS 的适配器进行访问。在这种情况下,使用者和提供者位于防火墙内。还可以直接从头创建新服务或者通过查找和使用其自己 IT 基础设施之外的服务来创建服务(这需要使用共同认证的 SSL 实现安全性)。
- 服务连接性:无论何时何地使用何种工具,都能使用中间层服务网关或总线让各种应用程序访问核心服务集,从而通过无缝的消息和信息流将企业中的人员、流程和信息连接起来。 将现有 IT 应用程序作为服务公开,并通过访问外部服务和创建新服务来弥合差距。现在要将这些服务彼此连接,甚至连接到整个企业。这将通过服务连接性场景(此场景是通过连接性切入点着手的典型方法)的实现方面完成此工作。
通过服务连接性实现 SOA 连接性,从而实现以下价值:实现自主构建的或传统连接性方面的成本节约;通过扩展 IT 资产(而不是重复构建),可消除冗余性;通过新业务通道和设备公开相同流程,从而提供安全而一致的用户体验;通过基于服务的托管连接增强业务合作关系。
将通过实现企业服务总线(Enterprise Service Bus,ESB)在其系统中实现连接性;ESB 能提供所需连接性,而且其成本低于传统连接性的实现成本。将能够通过 ESB 以安全而且可扩展的方式连接到整个外部和内部基础设施。
服务创建和 SOA 连接性将为 JK Enterprises 提供更大的业务灵活性和稳固的基础,从而更便于进行更多的 SOA 项目。ESB 对业务部门内的服务、应用程序和资源进行统一和连接,允许软件的连接在不同平台上并行进行,并使用各种编程语言。因此对所有信息在企业服务总线 (ESB) 中的传递情况进行建模,确定谁在何时需要哪些信息就非常重要和必要。
- 交互与协作服务:必须通过多种设备(如浏览器、PC 和移动设备)向人类用户提供一个或一组服务。交互与协作服务还可通过将这些服务聚合为视图,以交付信息并在业务流程的上下文进行交互,从而提高人员工作效率。
- SOA 所支持的业务流程管理:业务流程管理是将软件功能和业务专业知识相结合来加速流程改进和促进业务创新的学科。
业务流程管理是一个学科,将结合使用用于控制组织跨功能的核心业务流程的工具和方法。其重点是将整个组织的资源部署定向到能够实现客户机价值的高效流程中,从而实现战略业务目标。BPM 的核心原则之一是进行持续改进,从而不断地提高产生的价值和保持市场竞争力。
SOA 所支持的 BPM 允许对业务流程进行更改,而不用对基础技术进行再工程;同时它还允许在不影响业务流程的情况下对技术基础设施进行更改。JK Enterprises 可以通过以下方式利用业务流程管理场景。提供将其流程可视化并提供相应的决策点,这是流程管理的基础。通过建模这些流程, 可以标识其流程中的瓶颈、连接断开以及效率低下的情况。通过这样,将能够快速地确定有待改进和实现自动化的区域。
- 作为服务的信息:“作为服务的信息”可在企业内作为可重用服务访问复杂的异类数据源。
- SOA 设计:通过一组角色、方法和构件保持业务设计建模和 IT 解决方案设计的一致,以提供一组供优化的显式业务流程和用于组合及集成的服务。 SOA 设计是减少成本和提高公司的 IT 集成有效性的关键因素。在通过创建恰当的服务来实现 SOA 解决方案之前,都必须首先建模和定义用于创建主要新组件和重用现有组件的接口。
IBM 通过以下产品可帮助您开始实现此 SOA 场景:
- WebSphere Business Modeler,用于建模、模拟和分析业务流程。
- IBM Rational Software Architect,用于通过统一建模语言(Unified Modeling Language,UML)利用模型驱动的开发来创建 SOA 应用程序
- IBM Rational Application Developer,用于设计、构造、测试和部署 SOA 应用程序
- SOA 治理:建立并执行 SOA 开发与运行时流程。定义策略、流程和工具来监视服务的归属、使用人、使用方式及提供时间。 理包括两个方面:
- 建立责任、授权和通信链,以对人员进行权利分配,确定谁有权进行哪些决策
- 建立度量、策略和控制机制,以支持各个人员执行各自的角色任务和履行相关职责。
治理经常与管理混淆,但二者之间通常存在以下差异:
- 治理决定谁具有决策的权力和责任,为决策提供框架。
- 管理是进行决策和实施决策的过程
因此治理讨论应该如何进行决策,而管理进行决策和执行决策。
任何 SOA 治理模式必需适应企业的 IT 治理,IT 治理涉及以下内容:
- 建立与 IT 关联的决策权利
- 建立用于度量和控制 IT 决策及执行的机制和策略
即,IT 治理讨论的是谁负责 IT 部门中的什么事务以及部门如何知道这些职责得到了很好的执行。
SOA 向控制添加了以下几个独特的方面:
- 充当 IT 控制的扩展,重点关注服务的生命周期,以确保 SOA 的业务价值
- 确定谁应该监视、定义和授权对企业内现有服务的更改
- SOA 安全性和管理:作为 IT 服务管理(IT Service Management,ITSM)服务一部分的发现、监视、保护、供应、更改和生命周期管理工作。 保护 SOA 服务需要对策略进行评估和做出相关决策,并需要对这些策略进行管理,以保证其执行。
之前讨论的五个 SOA 切入点直接映射到(即具有一对一关系)本列表中的前五个场景。(例如,重用直接映射到服务创建,而连接性直接映射到服务连接性。)我们还将讨论其他 SOA 场景,这些场景均以上面的五个切入点为基础。即 SOA 设计、SOA 治理与 SOA 安全性以及管理。