SOA解决方案中涉及的遗留系统的设计策略

日期: 2008-07-20 作者:Jeremy Caine 来源:TechTarget中国 英文

  面向服务的体系结构(Service-Oriented Architecture,SOA)是很多业务转换工作的核心。很多企业采用增量式方法进行SOA转换,使用其宝贵的遗留IT系统作为服务提供者参与其中。解决方案架构师面临的挑战不仅是将SOA基础设施作为促进转换的手段交付,而且还要确保企业级业务操作保持可靠性和兼容性。您的企业必须制定可作为SOA一部分的企业信息管理策略,并跨所有业务操作保持总体数据和内容的一致性。本文介绍了此类转换中面临的挑战,并将讨论一些值得考虑的设计策略。


  引言


  如果您的企业和大部分企业一样,则您的业务战略和核心竞争力分析已经确定了需要在哪些领域重点关注业务再工程和IT现代化。一个典型的结果(至少对于企业的某些核心方面如此)是转换到面向服务的业务,开始依赖SOA。业务操作是围绕一组服务设计的,而这要求对当前IT系统进行再工程,并将其作为服务提供者加以集成。此转换还可能引入一些新的服务提供者。目标是能够构建新的组合应用程序(如内部工作区门户应用程序或Internet商业应用程序),从而高效地处理特定的业务需求。


  作为这个充满挑战的转换工作的一部分,企业通常会开展一系列重大的业务与IT项目。主要的转换交付内容包括:


  ·企业体系结构与业务服务模型的一致性。
  ·引入能实现业务服务模型的相关部分的基于服务的IT技术设施。
  ·对遗留IT系统进行转换和扩展(或向其应用包装),以便能集成到这个基于服务的IT基础设施中。
  ·可靠的设计与开发环境及交付流程,允许为支持IT应用程序实现高效而灵活的实现。


  转换的这些主要交付内容带来了一组略微次要的派生挑战。这些可确保企业按照其转换意图进行交付,并能够监视和适应更改,从而实现灵活性。这些转换挑战通常要遵循以下原则:


  ·企业必须继续提供一组总体可靠的兼容业务操作。
  ·需要治理流程和设计权威来确保总体业务服务模型与IT系统实现遵守全盘转换原则。
  ·企业必须实现业务与IT服务管理的集成视图,以便能够进行度量和交付响应变更。


  有些企业非常幸运,能够在整个企业内进行到SOA的业务转换。此方法要求为主要转换交付内容提供更富有挑战的实现,但最终能提供一个更便于发展和开发次要转换交付内容的环境。当希望在整个企业内驱动业务和IT变更的C级别的执行人员积极地帮助实现策略计划时,通常会出现这种情况。


  不过,大部分企业转换都是增量式的——虽然很重要而且也采用了相应的策略,但是逐步进行的。这通常意味着将对遗留IT系统进行再工程,以使其参与新业务操作的支持——例如,与其他IT系统进行组合,以加速客户订单的直接处理。这些IT系统还需要执行所有(或者至少是大部分)当前功能。SOA转换范围外 的业务操作将仍然继续。


  在此转换场景中,必须仔细考虑SOA IT基础设施的实现设计。在这些IT系统内的数据处理影响范围外的数据处理,同时也受到范围外的数据处理的影响。总体数据处理环境必须继续保持可靠性和与总体业务操作的兼容性。


  图1中的示例显示了三个再工程为服务提供者的遗留系统。



  图1. 新SOA环境中的遗留IT系统
 
  在图1中,业务转换项目已经构建了SOA基础设施,业务服务通过此基础设施进行发布,并供新应用程序使用。此基础设施通常包括用于支持软件间多协议连接、异步与同步消息流管理、消息转换、规则执行和流程编排的中间件。已经构建了使用这些服务的组合应用程序,甚至遗留系统本身也已经通过新服务调用得到了增强。


  SOA中的流程与信息体系结构


  要实现SOA基础设施,所生成、维护和增强的主要资产是业务服务模型。要使用得到广泛认可的技术来开发该模型,如IBM?面向服务的建模与体系结构(Service Oriented Modeling and Architecture,有关更多信息,请参见参考资料)。在典型的企业中,这将混合使用自顶向下分析、自底向上分析和目标-服务建模。转换的业务目标将派生出流程与信息体系结构,用于驱动新业务操作的实现和支持IT应用程序:


  ·流程体系结构是能够组合为企业操作底层的一组业务流程的操作的功能层次结构。它负责人员到系统以及系统到系统的流控制。例如,它可能包括在用户下产品订单并将其置为等待配送该产品的满意状态时所需的操作。
  ·信息体系结构是一组通过对相关数据与内容进行访问、操作和存储,来向企业操作提供其状态和含义。它执行数据与内容的信息管理工作(无论在简单的访问事件还是流程流上下文中均是如此)。例如,在产品开发生命周期中使用和生成的数据和内容(制造概念等等)。


  流程和信息体系结构观点通常一起形成并通过流程数据(CRUD)矩阵之类表现出来。它们一起定义组成服务体系结构的一系列服务。服务是一组在消息数据传入时调用的操作。服务实现执行操作数据或内容的处理(通常通过持久存储或访问),并返回结果。可以同步和异步使用服务,调用通常由集成基础设施代理。在完全分离的系统中,有些服务负责流程状态的更改(例如,将信息表示为已请求,将客户X的新地址表示为已验证)。其他服务负责对信息状态进行更改,确保将已经进行了操作的数据和内容置为所需的状态,以作为以后的服务事件的依赖(例如,客户X的新运输地址已生效)。


  遗留数据处理挑战


  遗留IT系统无疑将作为您的企业服务提供者实现的一部分,将集成到SOA基础设施中。遗留系统不仅包括传统大型机处理,而且也包括企业资源规划(Enterprise Resource Planning,ERP)应用程序、内部和外部Web应用程序、工作流应用程序、扫描与打印系统等等。可以进行很多工作来支持使用这些遗留系统并将其集成到服务提供者实现中:


  ·处理功能将公开,可以对其进行访问,以便能将其组合到服务提供者实现中。这通常意味着通过新协议和调用机制公开事务,如CICS?事务上的SOAP包装。
  ·可能需要对功能进行再工程,以在公开事务时保持处理完整性。此事务可以为现有的事务,也可以作为调用一个或多个其他现有事务的事务创建(Facade)。对于前两种情况,应该通过服务粒度策略影响对这些已公开的服务的调用的设计。
  ·可能需要“关闭”某些处理功能,因为数据处理现在由通过访问提供者实现调用的新功能进行。
  ·必须对新访问机制强制执行现有的访问权限以及安全性与审核需求。
  ·可能需要对现有系统的服务质量(Quality of Service,QoS)进行扩展或补充。例如,替换处理解决方案可能需要涉及脱机批处理方面的内容。
  ·SOA可能会给现有系统带来新的无法预见的负载,从而对现有流程造成负面影响。


  为了参与SOA而将遗留IT系统公开时,支持转换的范围外的业务操作的某些功能将继续进行数据处理。这通常要求了解和处理数据传播和同步问题。


  用户将继续使用原始应用程序方法调用遗留IT系统,通常通过用户界面(如大型机哑终端或已打包应用程序的UI)。SOA依赖于一组用于描述在SOA生态系统中传递的消息的数据模式。这些数据模式实现为集成在协作服务操作集中的物理数据消息;这可以包括运行时数据转换和语义映射或消息数据的扩充。将随后由基础遗留IT系统使用和处理此数据。


  可以使用SOA执行的流程集依赖于需要处于特定状态的一组集合数据和内容。通过SOA功能和遗留IT系统的并行处理可能会导致该状态模型中出现不稳定的情况。


  在图1的示例中,此转换允许具有直接处理能力的新Internet应用程序设置和管理客户的保单。新应用程序可以触发与客户的接触,并在保单快要错过续签期限时给出续签协议。不过,SOA范围外的有些现有业务操作可能会带来问题。客户可以通过很多方式通知公司自己已搬家。尽管保单最先是通过新Internet应用程序购买的,客户可能不会使用该SOA应用程序通知公司自己的地址发生变化,可能会转而采用寄信的方式。后台办公流程会导致客户的新地址仅应用到客户关系管理(Customer Relationship Management,CRM)系统。现有CRM系统的批处理会在夜间使用客户数据更新保险联系人管理系统。由于新的基于SOA的系统是围绕类似于实时的事务设计的,因此现在将导致同步时间问题。在同步期间,新应用程序可以尝试使用旧地址就续签事宜联系客户,而事实上能识别上下文的响应型SOA应用程序应该使用新地址取消旧保单,并设立新保单与此人联系。


  服务提供者


  从理论上而言,SOA架构师角色应该考虑采用服务的基础设施的设计与实现。SOA建模技术可指导您决定流程和信息将要使用的服务,与服务提供者联系,并构建应用程序来调用作为流程执行和数据处理一部分的服务操作。服务使用者并不管服务提供者如何实现服务,只要服务声明自己将根据事先达成的契约(服务操作及其关联的QoS)处理和管理数据即可。


  在特定情况下,此模型可能可行,特别在从企业外提供服务提供者实现时。本文所讨论的是很多企业在目前引入SOA过程中所采用的具体而通用的方案。


  事实上,总体解决方案架构师在SOA转换中要担当很多职责,特别在进行增量式转换的企业中更是如此。这些职责是在企业治理流程内进行的;有关更多信息,请参见文章“SOA治理案例”(developerWorks,2005年8月)。


  首先,解决方案架构师考虑SOA基础设施的设计与实现;这包括确定将充当软件系统(形成服务提供者实现的一部分)的遗留IT系统。其次,解决方案架构师提供用于组装服务使用应用程序的开发流程和环境。这包括设计模式、标准以及工具环境。而第三,解决方案架构师必须认识到承担的全盘业务与IT体系结构责任。业务体系结构将说明采用功能和契约外包的业务策略的合理性。IT体系结构将提供支持总体业务操作所必要的IT系统。在任何企业(包括大型企业)中,这通常都是很大的战术与战略应用程序投资组合。


  要考虑的设计策略


  为了构建支持总体企业遵从性的可靠信息管理体系结构,可能考虑采用针对此问题的各种设计策略与原则。


  在业务流程分析中对范围变更进行规划


  在转换项目进行期间,经常遇到这种情况,通过系统分析和设计发现了一些不希望出现的数据处理场景。可能需要将之前在范围之外的业务操作纳入范围中,以便能够对其进行修改,以接纳一组新系统。新的基于SOA的系统甚至可能需要提供内部应用程序,供这些已经更改的业务操作使用,如用于更新某些客户详细信息的外部处理步骤。


  发布和订阅遗留实体变更


  当作为服务者参与的遗留IT系统中已得到一致认可的实体和属性数据发生变更时,需要开发外部处理步骤来告知SOA。理想情况下,这应该是实时的,但此工作实际经常以计划批处理活动的形式进行。在旧式非结构化应用程序中,向遗留IT系统应用指令代码来检测数据记录发生更改的时间的做法可能开销非常大。


  您的企业必须进行的一项工作是,要评估遗留系统所拥有的数据以及系统通知更改的相关方的能力。如果频繁更改对SOA非常重要的数据,而遗留系统又无法生成记录级别的事件触发器(以便最好地进行日常批量提取工作),则可能会需要进行再工程,或替换遗留系统。确保业务服务的QoS与计划的工程工作一致。说明在进行事先计划的增量工程改进工作(如从关键服务数据每日批处理的方式过渡到实时的消息驱动处理)的情况下,QoS将如何随时间的增加提高。


  信息服务查询Facade


  信息管理服务的操作应该提供能够应用于数据或内容的简单操作。查询Facade隐藏了如何访问和操作信息以及如何跨多个物理IT系统的细节。基本上来说,查询Facade可以实现两个模式来实现数据集成。由于企业中存在很多方案和遗留系统,很可能将同时使用这两种方法来实现服务:


  ·将数据带到查询中。将变化慢的信息整理到承载数据存储区(例如,仓库),并在其中对数据进行操作。可以在此处使用提取、转换和加载(Extract, Transform, and Load,ETL)技术。
  ·将查询带到数据中。对于快速变化的事务数据,操作必须进入物理源中对其进行操作。可以使用连接器和适配器技术来进行此类访问(例如读取和更新)。


  在SOA中,实际查询Facade可以使用各种模式实现,如联合与填充(有关更多信息,请参见参考资料中的“数据集成应用程序模式”),还可以使用服务数据对象 (Service Data Object) 和数据访问服务(Data Access Service)等技术(请参见参考资料)。各个服务实现的总体设计模式将影响这些决策;有关更多信息,请参见“Toward a pattern language for Service-Oriented Architecture and Integration, Part 1”(developerWorks,2005年6月)。但在此问题中,将需要对实现设计进行扩展,以让服务更为智能化。假定已经为遗留系统配备了发布实体数据变更的解决方案(达到认可的QoS水平),信息服务需要订阅变更(哪些数据和频率如何)并将变更应用到相应的基础物理系统,如执行数据同步的物理系统。


  而这正是在体系结构的此处做出主要实体决策。哪个遗留IT系统应该视为主系统,在哪些事务场景中应这样处理?主数据管理技术可在此处为您的实现提供帮助,不过这些选项及决策(与遗留系统的集成能力进行权衡)应该是体系结构定义中非常重要的部分。


  业务规则放置


  到SOA的转换引入了新IT基础设施,其中包括集成中间件和新组合应用程序以及其他实体。业务规则不再包含在应用程序中。状态通过业务规则的执行有效地进行管理。作为开发信息管理设计的一部分,必须了解业务规则逻辑的类型和位置。


  SOA中的业务规则的类型包括:


  ·引用完整性规则
  ·应用程序行为规则
  ·跨应用程序完整性规则
  ·事务处理业务逻辑规则
  ·数据实体处理规则,如存储过程


  应该重用此类策略,而不是重新生成业务规则。随着SOA的引入,必须仔细地考虑现有业务规则和新业务规则的执行(以支持服务的可靠执行)。规则逻辑本身(无论其位于上下文中任何位置)可能需要作为服务公开,以便能调用来维护特定处理场景的完整性。


  潜在设计策略影响


  做出这些决策时必须考虑的解决方案的潜在影响包括:


  ·双密钥处理。通过引入SOA而获得的业务领域的效率需要与额外的数据输入任务(从而增加了数据输入错误的风险)进行权衡。但这可能是用于处理数据同步时间确定场景的唯一选项。通常并不会轻视这些场景。您的企业需要建立人头计算来执行事件驱动的双密钥生成,从而避免由于夜间批量更新造成的时间延迟。需要通过在系统中开发自动接口来帮助进行数据同步,以抵消此成本。这个循环分析应该评估实现自动化接口(特别测试)所需的时间是否对总体交付时间表造成影响。
  ·不必要的反馈循环。对CRM系统中的客户记录的更新之后紧跟对SOA的手动或自动调用,以告知其他应用程序这个意外的客户数据变更。为了更新客户,SOA将调用其信息服务,该服务本身将调用原始CRM系统并更新客户数据。根据用法模型不同,信息服务体系结构需要实现不同样式的update customer操作。
  ·范围渐变。定义SOA范围声明时,缺乏遗留IT系统的知识,不了解哪些流程和信息管理功能一定将更改。服务模型的派生对遗留分析起到促进作用,只会发现需要更多的SOA基础设施实现。在定义业务服务和工程计划的整体范围前,需要考虑发现阶段的预算和规划。


  结束语


  本文列出了一些重要领域,您需要关注这些领域,以便成功交付引入SOA的业务转换项目。业务转换对SOA的挑战非常重要。大部分企业都通过引入SOA基础设施(能以此为基础构建组合应用程序)以增量的方式进行转换。他们使用遗留IT系统实现服务提供者。


  为了让企业在所有操作上保持可靠性和一致,转换项目必须开发企业信息管理解决方案,而此方案中包括SOA(但涉及的内容并不限于此范围)。此解决方案应该在SOA中跨IT系统处理数据和内容的一致性和同步问题,以便能将信息服务公开供使用。


  负责交付SOA转换的解决方案架构师还必须在考虑总体受控的企业体系结构和预算的情况下,对遗留IT系统的功能与SOA的需求进行权衡。信息管理解决方案的实现策略中的数据集成技术和主数据管理因素。


  作者简介


  Jeremy Caine是IBM Global Business Services的一名高级IT架构师兼技术策略顾问。他主要进行业务转换与系统集成项目、交付复杂IT系统、Web技术解决方案和企业应用程序集成策略方面的工作,主要服务对象是金融服务与政府部门一类的客户。Jeremy还是很多全球性IBM技术社区的活跃成员,积极向社区其他成员推广各种领先思想和为创建新产品及服务提供支持。他是一位具有丰富经验的方法领袖,同时还是IBM体系结构培训团队的成员。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 谁知道阿里云河南服务中心是干什么的?

    一直接到阿里云服务中心的电话,说是阿里云的授权中心,主要提供阿里云的区域服务的?请问其他地方也有阿里云的服务中 […]

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。