我所理解的SOA知识体系

其实一直以来听到的关于SOA的术语、概念就很多,特别是现在跟开发人员、售前人员接触,听到的各种说法、理解就更多了,我就很迷惑,我现在接触到的SOA到底是怎样一个东西,我到底需要关注是哪一块,我的CONTEXT是什么。所以就有一个想法,相把握所了解到的关于SOA的概念能梳理一下,也就是我所理解的SOA知识体系。

 

 

 

 

 

 

 

 

 


这个图其实是受到我在软件工程里面看到一个图的启发,它把软件工程的范畴也大致分为这三个层面,即对软件的质量要求、软件开发过程、软件开发方法、工具技术,各层之间是一种支持的关系。

这个图也类似,这三个层面之间也是下层为上层提供支持这样的关系,下面先简单说说我认为每层包含哪些东西:

ü         SOA的技术、工具和方法

这一层就是平时技术人员讲得最多的哪些概念,比如说WS-IESB、松散耦合等等。其实SOA也是从技术领域兴起的一个概念,其本义也是一种架构风格。在这一层里面,又包含:

n         SOA的技术

SOA的技术或者说SOA相关技术,其实也属于分布式开发技术的一个子集,但对于XML技术体系尤为强调,因为这种技术体系是跨平台、促进了互操作性。属于SOA的技术包括WS-I规范、WS-*规范、SCASDO的编程模型等,因为对开发接触不多,所以先整理出这些;

n         SOA的工具

其实说SOA的工具不太合适,想表达的是支持这种架构风格的运行环境和相关开发平台,因为面向服务提出将服务的请求者与提供者解耦,那么如何将对若干服务的请求定位到若干服务的提供者,就需要一个不同于原有分布式运行环境的引擎;特别是SOA的高级特性还提出流程的动态编排、快速应对业务需求变化,这对于运行引擎的要求就更高了。那么这层里面,我接触比较多的就是IBMESBWPS,这些平台就提供了消息路由、协议转换、流程引擎这样的支持,那么相应它也提供了辅助开发工具WIDWBM等。

n         SOA的方法

这一层其实是应该好好强调的,因为上面所述的SOA的技术其实是一种中立的技术表现形式,可以支持SOA的一些基本特性,那么如何确保你的解决方案是具备SOA的种种好处,就需要使用SOA的方法,包括服务建模方法、服务设计方法、服务测试方法等。这一层里面包括SOA架构的概念、特点、面向服务的原则、一些方法集。其中,架构特点、面向服务原则这些业界都没有统一标准,方法也不成体系,有推荐的方法,比如IBM SOMAThomas Erl在他的SOA系列丛书中也有一些介绍。其实相比面向对象方法学,面向服务方法现在还不成体系,或者说还没到这一步。

 

ü         SOA的开发过程

有了方法工具技术,并不能确保获得一个SOA的解决方案是顺理成章的,要把这些在过程中串其来,融入到开发过程中,才能确保最终的方案的确是具备SOA特性的。

其实SOA的开发过程是传统软件开发过程的一个特例,它的某些过程环节、所使用的某些方法可能是不同于传递过程的,其他应该是一致的。

就像面向服务的开发方法没有标准一样,这个过程方法也是没有标准的,推荐的有IBM的面向服务的统一过程、Thomas Erl在他的SOA系列丛书中也有一些介绍。

 

ü         SOA提供的价值

SOA提供的价值比如说以业务为中心、灵活应对其实是客户方对软件解决方案一直的期望,把这一层放在最上面,是因为这些价值只有通过方法工具技术、进而通过服务开发过程的支持和应用才能支持,另一个角度,这些需求也是驱动力,驱使开发过程、技术方法去不断优化。

这一层我感觉现在有些说得太绚烂,或者说没有加入一些现实的约束和考虑,这些价值的实现不是没有代价的,也不能脱离过程和方法技术的支持,否则就会成为空中楼阁。

 

有了这个视图,我就大概清楚我在这个领域是重点关注什么,哪些东西是和我相关的。但是毕竟不是开发出身,了解毕竟有限,对这个源自技术领域的理念和没有什么很深的感性理解。所以先整理到这里了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值