技术开发 频道

浅谈面向构件的SOA架构


【IT168 管理分析】
    概述 

    面向服务架构(Service-oriented Architecture,SOA)描述了一种架构方法,它依赖于将业务流程和底层活动分解为基于标准的服务。在基于SOA架构的系统中,系统功能是由一些松耦合并且具有统一接口定义方式的服务(Service)组合构建起来的。显然,服务是SOA架构体系的核心。与此同时,构件技术再次引起了人们的关注,面向构件的思想源自那个困扰软件工程领域三十多年的难题—软件复用。当人们在研究如何实现SOA架构时,不约而同地将SOA和构件这两个软件工程领域最前沿的技术联系在一起,心中不禁涌动着一股莫名的兴奋。本文将以“面向构件的SOA架构”为主题,试图向读者描述构件和服务的涵义,以及两者之间的天然联系,同时简单介绍一些面向构件的SOA架构的基本设计思想和方法。 

    一 构件技术与SOA的天然联姻 

    构件技术代表软件开发领域的最新成果 

    1968年NATO软件工程会议,Mcllroy在提交会议的论文《大量生产的软件构件》中,提出了“软件组装生产线”的思想。从那以后,采用构件技术实现软件复用,采用“搭积木”的方式生产软件,成为软件开发人员长期的梦想。经过几十年的软件工程实践,软件开发已经经历了随意开发、面向结构和面向对象三个阶段,正在进入面向构件和面向服务阶段。在上海举办的第28届世界软件工程大会(ICSE2006)上,杨芙清院士在大会主会场开幕式上指出,软件工程已推进企业进入“工业化”生产时代,不断采用构件技术是未来软件生产力提高的主要来源。软件行业正处于从“手工作坊”式生产方式向“组装生产线”式生产方式转变时期,软件行业将由“工匠时代”进入到“工厂时代”。构件技术正是实现此次跨越的前提和基础,其对软件行业的意义不亚于福特对汽车工业的作用。 

    构件技术借鉴了传统制造业和建筑行业的经验,致力于创建一个可以互换的基于构件组装的软件世界。构件是软件中的自包含部分,具有已知的、良好定义的接口,可以被其它的软件使用。构件对自身的安全性、健壮性和性能负责,因此调用者可以放心使用。软件构件化将真正解决长期困扰软件行业的软件复用难题,从而提高生产率,降低生产成本。在传统制造业中,生产商要么自己生产需要的构件,要么向第三方购买这些构件,软件业也将很快过渡到这种生产方式,从而实现软件行业前所未有的跨越式发展。 

    构件技术是实现SOA的非常好的手段 

    构件技术的目的是在保证构件自身质量(包括功能、性能、安全性和健壮性等)的前提下,实现构件的简单复用和组合,从而有效降低软件开发成本,大幅提高软件开发效率。北京市政风行风热线系统在用户测试阶段创造了一天修改近50个Bug的记录,这种效率在传统方式开发的系统中是难以想象的。 

    SOA则是一种面向服务的架构方法,根本目的在于实现业务单元(即服务)的封装、互操作和简单复用,同时使系统整体具备快速适应业务发展变化的能力。SOA与其说是一种新技术,不如说是一种系统架构设计的思想,用来填补业务实际和技术实现之间的鸿沟。SOA架构以服务的封装、组合和交互为基础,与消息关联,由策略控制。服务可以看作一组构件的组合,而构件则是服务的技术实现单元。在SOA中,几乎任何一段业务逻辑都可以封装为服务,从一个独立的构件到一个完整的基于大型主机的业务处理系统,如网上银行的在线交易系统,都可以封装为服务。 

    因此,构件技术是SOA的实现手段。关于构件与SOA的关系,普元软件公司CTO黄柳青先生有一段非常精辟的描述:“从应用开发层次看,构件技术是SOA‘服务’的组装和实现,而SOA则可以看作是在应用表现层次的软件‘构件化’。” 之所以称构件技术是实现SOA的非常好的手段,主要是它与传统开发方式相比具有后者无法比拟的优势: 

    1. 构件具备SOA服务所要求大部分特征,可以很容易地封装成SOA服务 

    2. 构件技术使得系统自身可槊性很强,能够迅速适应需求变化。而快速适应业务需求的变化,正是SOA架构的精髓所在,在这方面构件技术具备明显的优势。
0
相关文章