近期热点
·信息网络安全防范的几种措施
·企业网络安全的规划设计与实践
·网络安全之我见
·制造执行系统(MES)的应用与发展
·PDM与CAX、ERP集成技术研究
·微波EDA电磁仿真软件应用
 相关文章
·基于Web Services的面向服务架构企业应用系统集成
·SOA研究综述
·BPM与SOA应用实施访谈
·解析如何避免在SOA采用过程中的常见失误
·“金蝶BOS平民化运动”让SOA从概念走向实战
·制定标准降低成本,培养人才跨越SOA鸿沟
 相关博客
·厦门BPM与SOA培训班访谈实录
·SAP 的一些名词解释(NetWeaver、ESOA、ESA等)
·新闻:浪潮建首个SOA创新中心
·SOA架构下企业管理软件业的未来猜想
 相关新闻
·
逐鹿SCM成功助力海信电器建立协同平台
·
各大厂商齐举SOA大旗 08年谁将领导中国市场
·
IBM 2007开发者高峰论坛在京举行
·
用友软件携手IBM
·
用友牵手IBM 向SOA全面转型
·
金蝶技术大会联手IBM 让SOA架构未来
 相关热贴
·SOA时代的协作创新
·哪些行业会是面向服务架构(SOA)的先行者
·各大厂商齐举SOA大旗08年谁将领导中国市场
·SOA助推行业解决方案
·新标准简化SOA开发
·SOA借鉴设计模式
 相关商城商品
 
 
当前位置:基础信息化 -> IT体系架构
 
认清SOA的本来面目
发表时间:2006-2-16 庞引明   来源:计世网
关键字:SOA 
SOA架构的提出,就是被人看成这样的一场革命。其实质就是要将系统模型与系统实现分割开来。

  软件业从最初的面向过程、面向对象,到后来的面向组件、面向集成,直到现在的面向服务,走过了一条螺旋上升的曲线。其实,自从上世纪70年代提出“软件危机”,诞生软件工程学科以来,为了彻底摆脱软件系统开发泥潭,一直也没有放弃努力。

  在经典软件工程理论中,不管是瀑布方法还是原型方法,都是从需求分析做起,一步一步构建起形形色色的软件系统。但是,需求变更像一个挥之不去的阴影,时刻伴随着系统左右。每一个实际应用系统的开发者都饱尝了在系统进入开发阶段、测试阶段,甚至上线阶段遭遇应接不暇的需求变更的极端痛苦。客户将变更的需求视为bug(错误)是测试上线阶段的主要问题。

  如何解决这一问题?能否来一场软件开发和架构的革命?SOA架构的提出,就是被人看成这样的一场革命。其实质就是要将系统模型与系统实现分割开来。

  1.定义

  SOA并不是一个新概念,有人就将CORBA和DCOM等组件模型看成SOA架构的前身。早在1996年,Gartner Group就已经提出了SOA的预言,不过那个时候仅仅是一个“预言”,当时的软件发展水平和信息化程度还不足以支撑这样的概念走进实质性应用阶段。到了近一两年,SOA的技术实现手段渐渐成熟了。在BEA、IBM等软件巨头的极力推动下,才得以慢慢风行起来。Gartner为SOA描述的愿景目标是实现实时企业(Real-Time Enterprise)。

  关于SOA,目前尚未有一个统一的、业界广泛接受的定义。一般认为:SOA,面向服务的架构是一个组件模型,它将应用程序的不同功能单元----服务(service),通过服务间定义良好的接口和契约(contract)联系起来。接口采用中立的方式定义,独立于具体实现服务的硬件平台、操作系统和编程语言,使得构建在这样的系统中的服务可以使用统一和标准的方式进行通信。这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。

  从这个定义中,我们看到下面两点:

  ·软件系统架构: SOA不是一种语言,也不是一种具体的技术,更不是一种产品,而是一种软件系统架构,它尝试给出在特定环境下推荐采用的一种架构,从这个角度上来说,它其实更像一种架构模式(Pattern),是一种理念架构,是人们面向应用服务的解决方案框架。

  ·服务(service)是整个SOA实现的核心。SOA架构的基本元素是服务,SOA 指定一组实体(服务提供者、服务消费者、服务注册表、服务条款、服务代理和服务契约),这些实体详细说明了如何提供和消费服务。遵循 SOA 观点的系统必须要有服务,这些服务是可互操作的、独立的、模块化的、位置明确的、松耦合的并且可以通过网络查找其地址。

  2.SOA三种角色的关系

  服务是一个自包含的、无状态(stateless)的实体,可以由多个组件组成。它通过事先定义的界面响应服务请求。它也可以执行诸如编辑和处理事务(transaction)等离散性任务。服务本身并不依赖于其他函数和过程的状态。用什么技术实现服务,并不在其定义中加以限制。

  服务提供者(service provider)提供符合契约(contract)的服务,并将它们发布到服务代理。

  服务请求者(service consumer)也叫服务使用者,它发现并调用其他的软件服务来提供商业解决方案。从概念上来说,SOA 本质上是将网络、传输协议和安全细节留给特定的实现来处理。服务请求者通常称为客户端,但是,也可以是终端用户应用程序或别的服务。

  服务代理者(service broker)作为储存库、电话黄页或票据交换所,产生由服务提供者发布的软件接口。

  这三种 SOA 参与者:服务提供者、服务代理者以及服务请求者通过 3 个基本操作:发布(publish)、查找(find)、绑定(bind)相互作用。服务提供者向服务代理者发布服务。服务请求者通过服务代理者查找所需的服务,并绑定到这些服务上。服务提供者和服务请求者之间可以交互。

  所谓服务的无状态,是指服务不依赖于任何事先设定的条件,是状态无关的(state-free)。在SOA架构中,一个服务不会依赖于其他服务的状态。 它们从客户端接受服务请求。因为服务是无状态的,它们可以被编排(orchestrated)和序列化(sequenced)成多个序列 (有时还采用流水线机制) ,以执行商业逻辑。编排指的是序列化服务并提供数据处理逻辑。但不包括数据的展现功能。

 
2页,当前第1
责任编辑:张敏