首页  ·  知识 ·  
SOA架构的项目分析与实施
郑罡 姚轲 王军亭 杨晓舟      编辑:dezai   图片来源:网络
进入21世纪后,整合与并购的浪潮席卷全球,在这种不断加速的量变与质变中,创新技术成为第一推动力,而IT作为一种推动变量,扮演了至关重要的角色。随着企业各部
进入21世纪后,整合与并购的浪潮席卷全球,在这种不断加速的量变与质变中,创新技术成为第一推动力,而IT作为一种推动变量,扮演了至关重要的角色。随着企业各部门的业务复杂度和部门之间的业务相关度不断增长,解决跨部门之间的应用集成问题和数据交换闯题成为当前企业信息化建设的关键,在这种情况下,面向服务的体系架构(Service Oriented Architecture,SOA)出现并很好的解决了这个问题,而且正逐步成为未来企业软件架构的趋势。

  1、SOA简介

  SOA是一种架构模型,在传统的业务层和技术层之间增加了一个服务层,独立完成特定的服务功能,使业务层和技术层相互独立,便于适应具体业务的变化。SOA建立在Web服务的基础之上.主要以SOAP/XML接口和Web服务描述语言分发。它可以根据需求通过网络对松散耦台的粗粒度应用组件进行分布式部署、组合和使用。

  SOA的组成元素包括功能和服务质量两大部分,服务层是SOA的基础服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化。

  SOA架构中每个实体都扮演着服务提供者、服务请求者和服务注册中心这三种角色中的某一种或多种。服务提供者是提供服务的一方,它将自己的服务和接口契约发布到服务注册中心;服务注册中心是SOA架构的关键,它包含所有可用服务的数据库,将服务请求者和服务提供者联系起来。

  SOA的关键特性:一种租粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。

  SOA是近年来软件项目开发和信息系统构建方法的一个国际性技术趋势,代表一个开放的、可扩展的、联邦的和可组合的软件架构,常用于大型软件项目的开发。

  2、SOA的特征

  可从企业外部访问:通过采用先进的B2B协议外部用户可以访问企业服务。

  随时响应用户请求:服务使用者请求服务时,SOA要求必须有服务提供者能够响应。同步应用通常部署在前台,其最终用户很容易受到服务提供者短缺的影响。相比之下,部署在后台的异步应用更为稳健,大部分情况下异步应用能够稳健应对短时间短缺,用户通常不会觉察到短暂的短缺。

  粗粒度的服务接口:采用粗粒度服务接口,使用者和服务层之间只需一次往复即可。

  分级:粗粒度服务比细粒度服务的重用性差,因此必须允许采用不同的粗粒度等级来创建服务。这种服务分级包含了粒度较细、重用性较高的服务,也包含粒度较粗、重用性较差的服务。

  松散耦合:SOA具有“松散耦合”组俘服务,可以将服务使用者和服务提供者在服务实现和客户如何使用服务方面隔离开来。

  可重用的服务:按照可重用的原则设计服务,SOA将可以使应用变得更为灵活,同时大大提高工作效率。设计可重用服务是与数据库设计或通用数据建模类似的最有价值的工作.

  标准化的服务接口:XML和Web服务标准化的开放性使企业能够在所部署的所有技术和应用中采用SOA。

  支持各种消息模式:在一个SOR实现中,常会出现混合采用不同消息模式的服务,如:无状态的消息,有状态的消息,等幂消息等。

  精确定义的服务契约:SOA中所有流程都被定义为服务,服务通过基于类封装的服务接口委托给服务提供者,服务接口根据可扩展标识符、格式和协议单独描述。

  3、SOA的优点

  编码灵活性:可基于模块化的低层服务、采用不同组合方式创建高层服务,从而实现重用。

  明确开发人员角色:开发人员各司其职,集中精力解决相对的问题。

  支持多种客户类型:借助精确定义的服务接口和对XML、Web服务标准的支持,可以支持多种客户类型。

  更易维护:服务提供者和服务使用者的松散耦合关系及对开放标准的采用确保了该特性的实现。

  更好的伸缩性:依靠服务设计、开发和部署所采用的架构模型实现伸缩性。服务提供者可以彼此独立调整,以满足服务需求。

  更高的可用性:使用者无须了解提供者的实现细节,服务提供者就可以在WebLogic集群环境中灵活部署,使用者可以被转接到可用的例程上。SOA能够帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统,以SOA架构的系统能够更加从容地面对业务的急剧变化。SOA是对等(P2P)计算的真正的商业化。它提供了这样一种框架;一个系统上的软件可以安全而且可靠地提出请求并获得其他系统上的计算资源,而不再需要一台中央服务器来管理和控制整个端到端的网络。

  4、SOA项目的实麓过程

  SOA项目的实施整体分为两个过程:规划过程和实施过程。规划阶段非常重要,需要根据业务发展需求确定总体项目建设规划,确定项目范围和目标。规划是否正确决定着SOA项目实施的成败。实施过程项目建设的执行阶段,包括从服务的规划设计到服务发布后的运行维护等整个过程,在此过程中,开发人员和用户相互沟通,不断完善服务,是一个持续更迭的阶段。SOA项目的具体实施步骤如下:

  业务分析:建立项目的总体规划图。整理和分析项目的背景、环境、资源及风险等,确定项目业务策略及亟需解决的业务问题;完成以下工作:业务服务定义,业务流程定义、业务数据分析和组织架构。

  系统总体规划:综合分析业务,确定项目的总目标及实施方案。

  服务规划及设计:分析整理项目业务,建模并确定服务实现策略。

  服务开发及测试:服务实现,SOA项目开发阶段的核心概念,包括单个功能的服务,也包括流程类的服务.

  服务部署:根据SOA项目目标,使用部署工具将所开发的各类服务及流程部署至项目运行的物理环境内,例如应用服务器、流程服务器、门户服务器等。

  服务发布:将开发完成的服务发布到服务注册中心内,以便被其他服务发现和调用。

  服务运维及监控:业务人员监控业务流程运行状况,系统维护人员从IT层面对系统服务的管理。

  SOA支持项目的递进式实现,可以采用不断滚动改进的方式实施项目。首先。SOA中强调的服务是业务的服务,而不是技术实现的服务。其次,标准的确定是过程中一直需要考虑的问题,在分析和设计阶段都需要对标准加以考虑,并最终确定项目需要采用和制定的标准。再次,要实施好SOA项目。合理的团队成员和良好的团队精神不可或缺。最后,项目是否能成功,业务人员参与也是一个重要因素,这样可以保证SOA项目实施的成功,才能更好体现SOA的价值。

  5、SOA硪目实施 PK 传统项目实施

  实施过程。传统项目的实施重点在于开发实现阶段,并且是从头开始,从零开始,而且经常使用瀑布式开发方法部署SOA。SOA项目实施中,重点在于前期的规划阶段,SOA项目的部署实施往往是对现存企业或组织内部应用的修补,对现有计算资源的整合,它是个循序渐进的过程,周期比较长,并且,企业部署SOA通常通过迭代方式实现,以减少出现业务故障的风险。

  实施团队。SOA项目的实旌团队更为复杂;强调将高层决策者及业务部门工作人员的全程、深入参与。SOA项目中的实施角色及职责也与传统的项目实施不同。

  6、SOA的现状及未来

  SOA为应用的动态整合提供了一个非常好的思路,一个解决问题的方法,但作为一个具有发展前景的应用系统架构,SOA尚存在许多有待改进的地方,例如在可靠性、安全性、编制(Orchestration)、遗留系统(Legacysupport)支持和语义(Semantics)方面均还存在不足。SOA相关技术和应用还处于探索和发展之中,SOA的核心标准也将继续演进。

  国际上,在经历了数年的研发和测试以后,IBM、BEA、微软等已经陆续推出各自的SOA策略、架构以及产品,真正将SOA推动到可部署阶段。BEA公司最新的中间件软件品牌AquaLogic,提供了全面的管理环境,帮助开发者使用开放的Web服务标准和工具创造所谓的SOA架构。IBM公司则基于SOA理念提出了“整合”战略,希望通过建立基于开放标准的、统一的、高效的、易于管理的IT基础平台,通过SOA与Workplace客户端技术(WCT),实现企业IT前台用户端、后台服务器的整合。IBM公司的信使软件WebSphereMQ提供了对SOA的支持。微软推出了代号为Indigo的技术,这项技术为合作伙伴建立新一代连接系统SOA铺平了道路。

本文作者:郑罡 姚轲 王军亭 杨晓舟 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读