IT系统向SOA演进该选哪种实施策略

日期: 2009-07-20 来源:TechTarget中国 英文

  面向服务架构(SOA,ServiceOrientedArchitecture)是一个面向服务的、对分布式计算环境基础设施进行设计、建设和管理的架构。SOA建立了商业与IT服务之间的联系,为分布、动态变化的商业环境提供稳定、可扩展、安全和可管理的IT支撑环境。SOA是当今电信领军企业率先考虑的方法论并成为提升通信服务的能力引擎,它使IT部门可搭建灵活的可配置体系以支持随需应变的电信业务。

  SOA强调两个原则:一是从业务角度,追求业务灵活性,通过增加流程的粒度、快速生成业务流程以及组装应用来及时响应市场的变化;另一方面是从IT角度,追求IT系统简单化,通过服务生成的技术无关性、最大化重用现有服务等方法来实现IT系统的灵活与简化。SOA是更加适应业务要求、生命力更为持久的架构体系。

  实现SOA之路

  SOA的建设是一个长期的过程,涉及组织、业务、流程和技术等各方面,须进行全生命周期管理。

  在实现SOA的过程中,电信运营商需要从六个方面来进行部署

  SOA理念传达:帮助企业理解SOA概念,分析SOA获得的收益和潜在影响;
 
  SOA评估:应用相关评估方法,确定指导SOA建设的全面路标;

  SOA架构和管治:在向SOA转变的过程中,需要设立专职的SOA架构管理组织;

  SOA服务建模:定义、开发和部署业务服务和IT服务,这些服务可以是企业级、产品线级、部门级甚至是项目级的服务;

  SOA软件开发和部署:确定开发和交付过程中的业务服务和IT服务的粒度,完成软件的开发和部署;

  SOA管理:在SOA的建设过程中,制定相关政策和服务等级约定,实现对服务和软件生命周期的管理、监控、审计和分析。

  根据SOA建设的全生命周期管理及建设原则,IT系统向SOA演进的关键部分包括SOA建设管控、服务建模、服务设计和现有应用的服务化改造。

  制定SOA建设管控

  建设SOA是企业的长期战略,多数公司都通过成立SOA工作组来实施SOA,以启动SOA的建设。多数情况下,该工作组是一个小而严密的团队,具有多样且互补的技术,掌管企业的总体架构:工作组组长主要由IT负责领导担任;架构管理岗位负责制定内部标准、蓝图、参考架构、设计模式、模板、一些共享和水平服务等技术规范;运行管理岗位负责管理SOA的日常运行维护。

  SOA工作组是成功实施SOA的最关键要素。没有一个理解如何操作和掌控SOA的优秀团队,实施SOA的工作很难成功。

  SOA工作组在启动SOA建设时,需确定SOA建设的工作目标,明确SOA工作组流程(需求管理、开发和部署、问题处理、运行评估等),需完成建立SOA环境运行监控、服务生命周期管理、服务运行质量监控、告警和事件处理等日常工作及职责分配。

  SOA工作组一旦成立,接下来需由业务和IT团队合作,制定实施路线图。路线图应与公司的战略利益联系在一起,项目进度、资金筹集、人员安排、业务驱动和业界竞争等因素都可能影响实施进程。由于一些因素可能使得SOA脱离正确轨道,应仔细定期追踪进程。

  SOA路线图一般具有多个阶段。第一阶段是进行前期探索、了解技术挑战,实施诸如验证、授权、确认和数据转换等简单的水平服务;第二阶段是制定更多的面向业务的服务;第三阶段包括聚合服务、开发工作流和集成各个不同的系统。

  进行SOA服务建模

  服务建模是通过对全部业务流程的全面分析,初步确定业务服务和应用服务,包括服务封装的业务/应用逻辑和对外提供的操作候选。

  服务建模的前提是需对业务流程和系统功能非常了解。服务建模的工作是一个较长的过程,需要经过若干个阶段才能慢慢完善和确定。服务建模主要包括三个方面的工作:流程梳理、架构设计和SOA产品行业模板。

  对业务流程进行梳理

  流程梳理,即从现有流程梳理成果入手,自顶向下,将合理的流程活动封装为服务。

  在流程梳理的过程中,SOA工作组应采用国际先进方法,电信行业一般采用基于eTOM的流程管理和NGOSS架构,用业务驱动和流程穿越的方法定义和澄清项目的范围,具体包括:梳理和分析对应的业务流程,明确业务流程的节点和涉及的人员角色;分析业务流程对应的IT系统支撑和控制点,用不同的表现形式来区分涉及的IT系统,因为涉及多个IT系统的流程都会涉及到与对应系统的集成;针对业务流程的相似性,使用抽象合并的方法对业务流程进行IT流程的归并。

  系统架构设计的构建

  架构设计是从系统功能架构和现有系统模块入手,自底向上封装应用服务和通用服务。

  从IT系统的建设趋势来看,IT的整合将是建设过程中的主旋律。发掘已有IT系统的潜力,整合系统之间重叠的功能应用,实现系统间信息数据的交互、共享畅通,规范企业技术架构,逐步消除信息孤岛将是未来IT建设的重要举措,因此电信运营商需根据具体需要,由系统功能和现有系统模块入手,引入SOA,建立系统一二级服务类,并构建整体服务建模。只有具备健全的架构基础才可发挥SOA在松散耦合、重用以及抽象技术和服务方面的主要优点。

  SOA的参考架构分为多个层面,包括服务的生成与封装、业务流程的建模、企业服务总线的构建等。在SOA的架构中,服务的生成可以在原有系统的基础之上通过封装得到,对于新开发的应用则在开发时即可规划服务的内容与访问形式。总之,服务将以合约或契约的形式存在,而企业服务总线则在服务与调用者之间进行服务的组合、完成透明化的处理(包括协议转换、调用方式、内容格式转换、安全控制等),应用之间的协同工作则通过流程定义来实现。

  SOA系统须满足三个条件:数据、界面和业务逻辑分离;能把接口开放出来并容易被调用;能进一步将面向技术的组件包装成面向业务的服务。

  SOA产品行业模板的借鉴

  SOA的战略意义目前已得到业内广泛认可,在企业应用集成领域有着重要的意义。成熟的SOA产品针对不同的行业应用已经有了基本的服务建模,可作为重要参照。Oracle、IBM、SAP和微软等软件巨头从本世纪初开始陆续为SOA投入了大量资源,目前已经形成比较完善的解决方案。

  通过SOA促进IT和业务的融合过程包括四个逻辑层次:底层是SOA基础和IT基础架构,其上是行业框架,再上一层是行业解决方案,最上层则是策略性商业推动力。Oracle、IBM、SAP和微软等都已经建立了电信行业的应用架构,这些框架建于最新的行业标准之上,可为企业提供多种设计和部署SOA的方法。通过运用这些框架,企业能够充分利用带有BPM(业务流程管理)的流程模板创建最佳实践,满足自身的业务需求。

  明确服务设计内容

  服务设计的目标是为业务流程建立一种与定义侯选服务一致的方法。服务是其接口采用SCA(服务组件体系结构)和SDO(服务数据对象)等一致认可的格式发布的服务操作的逻辑分组。服务设计需与部署到其中的SOA基础架构相兼容,尤其要确保服务应避免不必要的耦合。因此服务设计需遵循基于面向服务的设计原则。

  根据服务建模结果和统一的服务设计标准,服务设计需要完成各类服务的接口定义API(参考TMF的OSS/J等)。服务设计的流程包括SOA准备、设计以实体为核心的业务服务、设计应用服务、设计以任务为核心的业务服务、设计面向服务业务流程五个阶段。

  API定义除了业务接口,还需要考虑一些基础接口,用来提供监控、安全、审计等服务。

  已有应用的服务化改造及部署

  在服务建模和设计完成后,需要进行现有应用的服务化改造工作,主要需完成相应软件开发、测试和部署工作。具体应用服务化改造需考虑如下因素。

  1.根据服务建模和设计进行服务实现,并对已有服务进行管制;
 
  2.推荐采用MDD(模型驱动开发)的开发方法,重点关注模型的设计而不是手工编码;

  3.测试SOA的服务,特别是对SOA架构和服务有效性选择的测试;

  4.部署关注性能和服务的QoS;

  5.项目实施建议采用RUP(统一开发过程)的迭代方法降低风险,一般推荐迭代2轮。

  改造工作的重点是结合系统现状和改造需求,合理安排众多服务的改造计划,以保证IT系统向SOA演进的整体进度。

  IT系统的SOA实施策略

  从目前电信运营商的情况来看,各运营商都尚未大规模实施SOA,但是已经有一些系统具有了SOA的特征。如流程管理的功能及WebService接口标准的运用等,这些在一定程度上对SOA的推行有积极意义。

  业界对于SOA实施的启动推进方式主要有两种,即流程驱动主导和功能驱动主导。

  由功能驱动主导的SOA实施启动推进方式对需求分析的要求非常高,因此在SOA实施的初期阶段一般都会采用流程驱动主导的方式。

  考虑到任何IT技术转变都存在一定的风险,为了控制风险,在SOA实施时推荐采用先试点后推广的方式。试点宜采用流程驱动为主导的服务建模和设计方式:选择1到2个具有典型性的流程做试点,只从功能系统中封装流程牵涉到的服务,服务按流程所需来进行建模和设计。

  在流程选择、梳理、服务定义之前或者进行的同时,需要进行SOA基础平台和相关基础服务的建设。

  在试点取得成功、得到用户认可之后,可以考虑在整个业务应用领域实施。整体的SOA实施需要流程驱动和功能驱动相结合的服务建模和设计方式。

  流程驱动和功能驱动相结合的服务建模和设计方式可以结合两种方式的优点。流程分析可以兑现业务需求,功能分析可以充分考虑到现有的系统能力。

  试点时,SOA基础平台(包括企业服务总线和服务管理等)已经建设完善,在整体实施阶段只需要考虑容量问题。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

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

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

  • 揭秘New Relic APM技术细节

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

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

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

  • 购买应用集成工具可以采取平衡做法

    购买应用程序集成工具需要好好看看你的公司需求,知道从供应商里面要寻找哪些关键功能。