SOA与传统软件架构、开发、部署和实施的区别
“在当前的2000家跨国公司中,
很多企业的体系架构已经妨碍了业务的改变能力。比如,最近企业行为管理机构(Business Performance Management Institute)的一项调查表明,仅有11%的管理人员说他们能够跟得上技术变化,来满足业务需求——这其中40%需要IT支持。”
————SOA成功部署的五大原则(http://solution.e800.com.cn/articles/2008/313/1205393176529_1.html)
SOA,Service-Orientation Architecture,顾名思义,是面向服务的架构,与Object-Orientation不同,我认为SOA一种应用在企业级软件设计中的
设计范型(Paradigm),而OO更加的具体,OO提供了看待具体问题的一个视角,譬如使用对象来模拟现实生活中的事物,OO还提供了封装继承多态等的特性,无非是关注于具体的对象,而SOA是从一个更加全面的视角来看待企业级应用,提供了一整套架构,开发,部署和实施的思路,但是并没有提供任何具体的技术手段,这是与OO截然不同的,在OO中无论是OOA/OOD,编码,都提供了很成熟的手段,甚至是具体的工具和语言。SOA更加倾向于是一整套方法论上的东西。运用SOA的视角可以解决企业级应用的一些问题,
“更好的实现IT与业务的对齐”,当然,SOA也不是万能的。
下面从几个方面探讨SOA与传统软件开发的差异:
架构:
应用构架具体到应用开发工作中,知道具体的开发工作,“应用架构对于应用开发团队的意义,相当于蓝图对于建筑工团队的意义。”而企业架构就像城市规划的蓝图,位于应用构架更高的层次,直接指导可能分布在企业内部的各个应用构架。而SOA消除了企业构架和应用构架之间的鸿沟,因为SOA的面向服务的特性,所以SOA方案中的粒度是很大的(跟传统的OO相比),应用构架中的一个Service可能工作在J2EE应用构架下,另一个可能工作于.Net应用构架下,甚至有其他的基于C/S的服务存在,它们都可以通过SOA结合在一起,而正是
因为SOA体系中的服务粒度大,更加匹配企业级应用中的业务,这样SOA中的一个服务可能就对应具体的一个业务,而不是像OO那样一个对象只是业务中的一个小小的元素,SOA原则中有一条叫做“The business drives the services, and the services drive the technology”(见《面向服务与面向服务的体系架构概述》),对于企业来说,只有bussiness才是真正的核心,而IT technology只是为了支持business而存在的,这样就是SOA体系更好的实现了“IT与业务的对齐”,所以SOA能够横跨企业架构和应用架构,
对比传统的企业级计算环境,无论是C/S还是B/S,都试图以OO或者其他的设计范型去模拟企业级运算的模型,远远比不上直接映射到企业业务的SOA。传统的软件开发方法中更加倾向于业务向IT对齐,这是一个错误的想法。并不是说SOA的架构和思路有多么先进,只是更加匹配企业级运算的模式,也
不是说SOA与以往的方法学相排斥,在服务的内部仍然要使用OO甚至面向过程的方法进行设计和开发。开发:
在开发的方面也有很大的区别,传统的开发方法,如上文所述,都提供了详细的技术规范,抑或BluePrint,比如面向对象的软件设计方法,从需求分析到测试实施维护,都有一整套的具体的解决方案,有相应的工具支持,最明显是的编程语言的支持,例如C++,Java等是面向对象的语言,意味着面向对象的设计方法蕴含在语言的内部(当然,使用OO的语言写出来的代码不一定是符合OO思想的),而
SOA是一种方法学,它提供了一套企业级应用整个生存期的原则,只要遵守这些原则,就可以说这个应用是面向服务的,而在具体的技术上并没有什么规定和限制。直到今天,SOA仍然没有一套具体的标准,当然,这样也给实施SOA项目带来很多的障碍和麻烦。
部署和实施方法:
传统的企业级应用的面临的场景与SOA截然不同:
传统应用:从头开始开发,从零开始,一蹴而就。SOA:往往是
对现存在企业内部的应用的修补,对现有计算资源的整合,并不是从头开始,而且SOA的实施往往是从小范围开始,逐渐的迁移现存应用到新的计算环境中。是个循序渐进的过程,SOA项目的实施往往是长期的。以上是我对SOA于传统软件架构、开发、部署和实施的一点看法。
分享到:
相关推荐
1. 微服务:微服务架构将大型系统拆分为小型、独立的服务,每个服务专注于一项业务功能,易于开发、部署和维护。 2. 事件驱动:事件驱动模型允许服务间异步通信,当某个事件发生时,相关服务会自动响应,提高系统的...
车载智能计算基础平台SOA(面向服务的架构)软件架构白皮书由中国智能网联汽车产业创新联盟基础软件工作组于2022年8月发布,旨在探讨和规范车载智能计算平台在SOA架构下的设计与实施。SOA是一种软件设计方法,强调将...
汽车SOA架构的开发与实施涉及到从传统架构向软件服务化转变的复杂过程,这要求工程师团队在实践中不断学习和积累经验。本文主要探讨了在汽车SOA架构开发中的微服务化策略。 微服务化是IT行业中SOA概念的一种具体...
### 基于SOA体系架构的软件项目开发与实施 #### 一、SOA概述 面向服务的架构(Service-Oriented Architecture, SOA)作为一种先进的软件开发和信息系统构建方法,近年来已成为国际性的技术趋势。它代表着一种开放...
#### 七、SOA与传统架构的区别 - **面向对象架构(OOA)**:OOA强调对象的封装和继承,通常实现为紧耦合系统。而SOA则更加注重服务之间的松耦合。 - **微服务架构**:微服务架构也是一种松耦合的架构模式,但它更加...
SOA是一种架构模型,可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。 ##### 2.3 SOA的组成 ...
SOA(面向服务的架构)是一种软件设计方法,它强调将独立的功能封装为服务,并通过标准化接口进行交互,以实现松散耦合和模块化的系统。IONA的SOA架构套件提供了一种全面的解决方案,帮助企业克服在实施SOA过程中...
SOA项目实施与传统项目实施的主要区别在于,SOA更加注重服务的规划、设计和管理,强调服务的复用性和灵活性,而传统项目实施则更多关注于项目的整体进度和预算控制。 总之,SOA作为一种先进的IT系统构建方法,为...
面向服务的架构(SOA, Service-Oriented Architecture)是一种重要的软件设计模式和技术框架,它强调将复杂的系统拆分成一系列可重用的服务组件,并通过标准化的接口和协议来实现服务间的交互与集成。SOA的核心理念...
### IBM SOA 架构与方法论 #### 组件化业务建模方法(CBM) 在探讨IBM SOA(Service-Oriented Architecture,面向服务的架构)架构之前,我们首先来了解一下组件化业务建模方法(Component-Based Business ...
【SOA模式的企业架构设计】 面向服务架构(Service-Oriented ...总之,SOA模式的企业架构设计旨在通过服务的解耦和标准化接口,实现业务流程的灵活集成,提升企业IT系统的响应能力和效率,同时降低开发和维护成本。
面向服务架构(Service-Oriented Architecture,简称SOA)是一种软件设计和构建应用程序的方法,它强调将业务功能作为独立的服务,这些服务可以通过网络进行交互和组合,以支持灵活的业务流程。SOA的核心理念是将...
企业正在寻求基础设施整合和软件合理化,以减少点对点的集成,降低成本,实现业务转型,提高速度和灵活性。 总结起来,SOA 是一个旨在提升企业适应性和效率的架构模型,通过微软的 SOA 平台,企业可以构建出更加...
SOA(Service-Oriented Architecture,面向服务架构)是一种设计和实现信息技术系统的架构风格,它强调将业务功能模块化并通过标准协议进行封装,以便它们能够被独立地创建、部署、发现和调用。这一概念最早由...
SOA与传统架构有显著区别,因此对员工进行培训至关重要。培训应从高级管理层开始,让他们理解SOA的基本理念和潜在价值。然后,培训应扩展到业务主管层,确保他们理解SOA的目标和实施细节。最后,对实际参与构建和...
SOA 的出现是IT领域的一次重大转变,它改变了传统的应用系统设计、开发和集成方式,使企业能够更加敏捷、快速地响应市场变化。 在SOA中,业务流程被拆分为可重用的服务,这些服务可以独立开发和部署,然后根据需要...