本文是面向服务的体系结构(SOA)系列之一,主要通过名为JKHL Enterprises (JKHLE)的虚构公司阐述一个案例研究。本文的案例研究重点是与SOA设计(更具体地说是服务和流的设计)相关的挑战和解决方案。本文描述如何应用“SOA设计场景”的实现和解决方案模式来解决与该案例研究相关的业务和IT挑战。
我们在本文中介绍的案例研究包括以下人员和角色:
·Sandy Osbourne-Archer,首席技术架构师
·Edmund Smythe-Barrett,企业架构师
·Ursula DeBarry,软件架构师兼服务设计团队主管
·Henry Lee,业务分析人员
·Jason Smith,集成开发人员
·Willy Sheng Duo Li(也叫Willy Li),应用程序开发人员
帐户开立项目的挑战
我们在本文中定义的帐户开立项目挑战与“SOA设计场景”相关。该场景的重点包括用于SOA设计(更具体地说是服务和流的设计)的方法、构件和工具。
软件架构师兼服务设计团队主管Ursula DeBarry从业之初担任的是J2EE?开发人员,后来成为了软件架构师。
她拥有娴熟的设计技能,在应用诸如Rational? Unified Process? (RUP?)和面向服务的建模与体系结构(Service Oriented Modeling and Architecture,SOMA)之类的方法方面非常熟练。除了使用IBM? Rational Software Architect之类的工具对她所负责的项目进行应用程序建模和组装以外,她还为同事组织了多个关于方法和工具使用的研讨会,并在其中负责授课。
Ursula对专门从事SOA设计方面的工作特别感兴趣。在Ursula之前担任的职位中,她完成了Web服务试验项目的设计和实现。不过,这个试验项目由于政治原因而取消了。
她非常渴望寻找新的SOA机会。Ursula从以前的同事——应用程序开发人员Willy Li——那里了解到,JKHL Enterprises正在寻找有经验的软件架构师和服务设计师来实施SOA计划。Ursula前去JKHL Enterprises应聘。
首席技术架构师Sandy Osbourne-Archer对Ursula进行了面试,由于她本身具有丰富的经验、娴熟的技能,并且有Willy Li推荐,因此当场就被录用了。Ursula非常高兴能担任软件架构师兼服务设计团队主管。
在与Sandy的首次会面中,Ursula了解了帐户开立项目的目标和挑战。Sandy表示,自己对业务和IT之间存在的语义差异和细节差异不甚满意,因为这些差异容易出现不同步或不完全一致的现象(请参见图1)。
Sandy强调了保持业务设计和IT解决方案一致的需求,以便保持企业对新业务机会的敏捷性和响应能力。
图1 当前业务和IT不同步(不一致)
Sandy列出了帐户开立项目的高级业务目标:
·目标1:降低成本:
1.1: 降低创建和管理帐户的成本
1.1.1: 降低帐户激活的成本
1.2: 减少纸质文档的数量
1.2.1: 增加电子应用程序的数量
·目标2:提高每个客户拥有的产品数量
·目标3:提高可用性
·目标4:减少不遵从法律法规的风险
·目标5:增加客户自助服务
·目标6:加快上市时间
Sandy总结了高级设计目标和挑战:
·业务设计:
清楚地定义业务战略和目标
以业务驱动的方式对服务需求、设计和实现进行优先排序
提高服务重用,以加速上市时间并降低成本
·IT解决方案设计:
为关键业务活动的服务提供显式的可跟踪性
可重复且可扩展的设计方法
能实现更好重用的服务组合
用于多通道访问的服务绑定策略
方便组装、部署和管理的解决方案
SOA设计场景的帐户开立计划
通过一系列的会议,Ursula和企业架构师Edmund Smythe-Barrett共同制定了SOA设计场景的帐户开立计划。
他们与业务分析人员Henry Lee进行了讨论,对为帐户开立项目定义的关键业务需求有了更好的理解。图2描述了帐户开立高级流程,提供了该流程的关键元素的概念视图。
图2 帐户开立高级流程
为了提高SOA设计的成熟度和改进帐户开立流程,Ursula计划应用用于服务设计的SOMA并执行用于流程组合的业务服务设计。
应用SOMA进行服务设计
Ursula指出,IBM Global Services的架构师和专家开发的SOMA方法基于从客户合作项目中获得的知识。Ursula希望能够利用经过验证的SOMA方法进行帐户开立服务设计。
IBM提供了两种应用SOMA进行服务设计的方法:
·用于服务设计的SOMA
在此方法中,客户通过服务约定雇用IBM,让他们的架构师和专家来应用SOA方法和IBM工具来代表客户进行服务设计。
Ursula和Edmund一致同意,对于该帐户开立项目,他们将参加与IBM的服务合作项目,以便在使用“用于服务设计的SOMA方法”来创建服务设计方面获得帮助。服务设计团队和IBM将应用SOMA方法来确定服务,指定服务和流,并实现该服务设计。与IBM的合作将帮助服务设计团队为将来的项目获得SOAM的实际应用知识。
·业务转换分析(BTA)和服务设计
在此方法中,客户通过应用IBM Rational Method Composer中包含的RUP SOMA方法直接创建服务设计。BTA和服务设计的重点是通过应用自动化的设计工具和流程,以改进设计一致性和加速上市时间,从而提供正式的说明性服务设计方法。或者,客户可以雇请IBM Services代表他们应用BTA和服务设计。
在旨在使将来的SOA变得更加自给自足的工作中,Ursula领导的服务设计团队将开始培训BTA和服务设计的使用。
用于流程组合的业务服务设计
Ursula将领导帐户开立项目的用于流程组合的业务服务设计。
将SOA场景模式应用于该案例研究
SOA设计场景的重点是通过使用经过证明的IBM方法和工具,从而使业务设计与IT解决方案设计保持一致。诸如组件业务模型(Component Business Model,CBM)、SOMA和RUP for SOMA等方法提供了概念框架,用于定义建模的方方面面以使业务与IT设计保持一致。使用IBM工具来支持设计方法,以对可跟踪性建模并创建整个生命周期中的设计构件。SOA设计场景可应用于每个基本SOA场景。
SOA设计场景模型的基本构造包括流、服务和组件(请参见图3)。
·流或流程表示完成某个业务流程所需要的活动流。流是旨在实现业务目标的相关和集成服务的组合。
·服务是代表性的可重复业务任务。通过提供定义良好并且与实现无关的接口,从而将服务用于封装应用程序的功能单元。服务可由其他服务或客户端应用程序调用(使用)。
·组件表示服务向服务使用者公开的功能,以及由实现服务的服务提供者提供的服务质量(QoS)。
图3 服务提供业务与IT之间的一致性
注意:SOA设计场景的关键元素是服务设计。
服务设计以及最终的服务通过在业务流和目标与IT组件之间提供桥梁,从而提供一致性能力(如图3所示)。
以下几个部分将详细描述该案例研究解决方案元素,这些元素映射到SOA设计场景实现:
·用于服务设计的SOMA
·业务转换分析和服务设计
·用于流程组合的业务服务设计
用于服务设计的SOMA
注意:用于服务设计的SOMA实现特别利用了SOMA标识、规范和实现阶段来交付所需的SOA设计成果。
Ursula和IBM Services合作项目团队开始通过应用用于服务设计的SOMA方法来处理帐户开立服务设计。该团队集中于服务设计的以下方面:
·服务标识
·服务规范
·服务实现
SOMA方法是用于SOA设计和构造以支持目标业务流程的分析和设计方法。SOMA通过服务、组件和流的标识、规范和实现来完成此任务。SOMA v3.1扩展了SOMA,以提供同时还包括实现、测试、部署、监视和管理活动的端到端方法,如图4所示。
图4 SOMA方法
SOMA方法提供了用于SOA设计的描述性指导,并且是SOA解决方案设计模式的基础(请参见图5)。
图5 用于SOA参考体系结构分层解决方案的SOMA指导
服务标识
服务标识的目标是创建候选服务及其对业务有意义的关联操作的初始集合。服务标识主要由软件架构师来完成,并且通常包括业务分析人员以支持角色形式的参与。
在服务标识期间,将创建服务模型工作产品,并移交给负责服务规范的软件架构师。服务标识与产生服务模型的分析级别同义,而服务规范则是设计级别。
服务标识的关键输入包括:
·业务分析和建模
用于定义业务体系结构。CRM通常用于业务分析,以帮助客户了解其业务和能力,并确定能力差距。也可以使用其他方法来进行业务分析。
·服务注册中心和存储库
现有的服务和有关它们的信息通常存储在服务注册中心和存储库中。该帐户开立项目是第一次采用SOA;因此不存在现有的服务。
让我们进一步了解三种用于确定候选服务的补充技术:
·目标-服务建模
·领域分解
·现有资产分析
目标-服务建模
目标-服务建模的关键目标是证明服务的可跟踪性和与业务目标的一致性。目标-服务模型是一种由内向外(middle-out)的方法,在相应输出可用时迭代地用于验证通过领域分解和现有资产分析技术确定的候选服务列表的完整性。
在开发目标-服务模型时,您通常与业务主管、业务分析人员和主题专家紧密合作,以确定范围内的业务目标和项目的阶段。对于每个目标和子目标,您将确定可用于评估业务性能的关键性能指标(KPI)和度量。
JKHLE销售管理业务组件中的服务标识重点目标是确定支持该业务组件的服务。表1提供了一个业务目标的摘要和支持KPI,以说明目标-服务模型。
表1 目标-服务模型的业务目标和KPI
领域分解
对于领域分解,我们采用自顶向下的方式工作,将业务领域分解为主要的功能区域和子系统。在下一个级别,我们进一步将功能区域分解为流程、子流程和高级业务用例。
注意:高级业务用例通常是作为服务公开的理想候选者,并且可以提供初始的设计范围。
领域分解使用并增强领域分析和领域工程方法的子集,包括:
·功能区域分析
将领域分解为功能区域可以为IT子系统及其实现服务的对应服务组件的设计提供业务边界。如果没有提供CBM,则为SOMA合作项目执行领域分析。
·流程分解
执行业务流程建模以将流程分解为子流程和任务。对于初始的候选服务列表,三个级别的分解通常就足够了(请参见图6)。
·面向变化的分析
全面观察流程、规则、策略和结构(数据),以确定候选共性。下一步,分离出流程、规则和结构的变化。
图6 流程分解
分解集中于“帐户开立”流程以及“帐户激活”和“验证”功能区域,如图7所示。
图7 帐户开立流程和功能区域的领域分解输出
现有资产分析
现有资产分析的主要目标是最大限度地重用现有的应用程序事务、现有系统中的模块和打包的应用程序。在执行现有资产分析时,我们采用自底向上的方法以确定候选服务。可能会确定一些新服务,并且在其他情况下,该技术将确认前一项技术的标识结果。
观察图7,Ursula与Edmund使用自底向上的方法,共同确定JKHLE环境中的现有应用程序和事务,以最大限度地实现重用。Edmund让Ursula知道许多现有的中间件和后端应用程序,例如CICS、IMS、SAP和Siebel。Ursula评估每个现有的应用程序,以确定应该将哪些应用程序作为帐户开立流程应用程序的服务公开。他们可以使用IBM WebSphere Studio Asset Analyzer来扫描IBM System z?(大型机)和分布式软件,以确定并在存储库中存储相关的应用程序信息,其目的是促进和了解哪些资产可以成为可重用组件并作为服务公开。
现有资产分析并不只是将现有的应用程序接口作为Web服务公开。需要周密考虑以确定现有应用程序的接口是否允许良好的服务设计(请参见图8)。
图8 将现有应用程序作为服务公开的选项
如图8所示,存在几种公开现有应用程序的选项:
·将现有应用程序包装为服务
将功能保留原样,但是使用工具或中间件将现有功能作为服务公开。例如,将CICS应用程序作为SOAP Web服务公开(也称为直接公开)。
·将现有功能包装并替换为服务
按上述方式包装功能,但是在以后使用最终的服务规范来重新开发服务。然后,替换原始服务,并将客户端重定向到新的实现。
·使用更适合于服务调用的适配器
在某些情况下,无法包装某个功能并将其作为服务公开。
但是,能够以更容易集成的形式包装该功能,例如消息队列接口或Java连接器体系结构(Java Connector Architecture,JCA),从而允许新服务就地访问该功能(也称为间接公开)。
·将功能集成到服务中
在某些情况下,只需将现有的功能用作服务实现中的一个逻辑组件,即可让新服务就地访问该功能。
在执行每一项标识技术之后,将确定一个修订后的候选服务组合,这样就为制定规范做好了准备。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
谁知道阿里云河南服务中心是干什么的?
一直接到阿里云服务中心的电话,说是阿里云的授权中心,主要提供阿里云的区域服务的?请问其他地方也有阿里云的服务中 […]
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。