换个角度看SOA

转载 2007年10月11日 11:47:00
我的观点是SOA前途无量,但SOA不是给小实体企业和小软件公司的,要在中国流行尤其困难。以下试论证之。(各种数据资料收集中,盼有资料的朋友不吝提供)

  在一个持续两年的SOA工具开发项目中参与了其中一年半的时间,现在也颇有些想法想要写一写。 即使在我们这个开发队伍中,真正对SOA的将来充满信心的也不过包括我在内的一二人而已。接触的大部分开发人员或者觉得SOA高深莫测,或者觉得不过是大公司又搞出的一个“大词”,推销东西而已。

  为什么大公司热衷不已,且业界也是热闹无比,但我们很多开发人员却兴趣寥寥?我觉得,那是因为这个概念本身就不是要推销给小型企业和小型软件开发公司的。

  有资料说,国内大部分企业活不过五年,而且总体来说信息化程度非常之低,而国外有几十年,上百年历史的大型企业则很多, 这些大型企业很早就开始信息化,在几十年的时间里,他们积累了大量的技术资产(各种信息系统,业务系统)。也同时产生了信息孤岛问题和遗留系统改造升级的大量需求。这些大企业的几十甚至上百个独立运行的系统建立于不同的年代,采用不同的技术,运行在不同的平台上,集成的困难非常大。这些企业也是国外大软件商和软件服务商的主要客户群体,以前看到过一份资料,系统集成和系统改造的业务在国外大型软件供应商的业务中占相当大的一个比例(TODO:数据数据!)。而国内大部分软件商和软件开发人员则面对一个又一个新项目,大部分都是新系统上线的业务。这一点上之差别极大。

  因为有这样的业务特点,所以国外大厂商不断提出“跨平台,跨语言”的技术架构和编程模型,从CORBA到EJB到SOA无不打出这样的旗帜,而这一点对大量开发新系统的国内市场来说,吸引力显然没有那么大。

  另一方面,这些大型企业内存在大量遗留系统,如果不能够解决信息孤岛问题,那么他们会逐渐成为企业的负担,而如果能够解决这个问题,就能够把这些技术资产“盘活”,使他们真正成为企业的财富,焕发出新的生命力。

  SOA架构提出系统“服务化”,SCA架构又提出了服务组件模型,提出可以将组件部署为服务,服务又可以组合为更大的服务等等,其实这样的思路乍看上去跟CORBA,EJB也差不了多少。但关键在于这里的服务也好,组件也好,指的不是技术模块,而是业务模块。事务处理,O/R MAPPING,事件处理等等技术模块属于基础设施,在客户眼里毫无意义,而业务服务,比如“查询某用户余额”,“查询某商品库存”,“查询某用户消费记录”等等这样的业务服务对企业的业务管理人员却是含义丰富且极具价值的。通过将技术“服务化”,技术资产成为业务人员可以理解的业务资产,业务分析人员可以将业务服务组合开发出新的业务,也可以很清楚的知道企业现在拥有哪些业务服务(资产),想要推出一个新的业务还需要增加或修改哪些业务服务。对于大企业来说,他们拥有的技术资产非常丰富,一旦将这些原来几乎无法管理的技术资产整理(包装)成粒度大小合适,可以很方便访问和管理的服务组件,再加上可以动态调整和监控的流程(bpel, bpm等,在我看来SOA就是流程+服务),这些大企业就可以将之转化为强大的竞争优势,他们将即拥有强大的力量,又拥有灵活的身手,套句时髦话:“大象也能跳舞”。目前鼓吹SOA的开发商和支持SOA的企业基本都属于“大企业”这个群体,屁股决定脑袋。

  以上是从业务上说。

  从技术上说,SOA将带来软件开发方法上的一些变化。软件开发有自顶向下和自底向上两种思路,现在一般都是两种的结合而有所侧重。 几年前我搞过XPCHINA论坛,介绍和讨论极限编程,那时我认为自底向上,通过重构逐渐产生架构是最有效率的开发方法,现在经过十年的软件开发实践,我现在是架构驱动、逐步求精开发方法的拥趸。 传统的SOA实现方式(我是指BPEL+Webservice)在合适的开发工具(BPEL流程设计、模拟执行等)的支持下,为架构驱动、自顶向下的开发方法提供了非常好的支持,并且非常有利于人力资源的分层配置。对于新推出的SCA架构,我刚开始研究,还未深入,初步感觉更偏向组件化,是另一种(与EJB相比)跨平台,跨语言的组件架构。对开发方法的支持更平衡一些,自顶向下,自底向上皆可。 但不论那种实现方式,都需要有强有力的、有整个企业大局观的架构师来领衔才能真正发挥其效力。 而国内中小型软件企业恰恰非常缺乏架构师,国内有大量优秀的高程,在我看来他们与架构师的差距就在于大局观,而偏偏很多人就跨不过去这个不高的坎。 眼睛里盯着一个功能的人和眼睛盯着一个应用的人和眼界覆盖全企业的人会看到不同的东西,有不同的需要。

  以上从技术上和开发人员的特点上看。

  最后一个方面,中国经济发展非常迅速,那些打不到单子,难以生存的软件企业且不提,有单子在做的软件企业都是忙不过来,首先感到的是开发效率不足的痛苦,而解决开发效率问题的妙药不是SOA,而是组件化。

  总结,国内中小软件企业,他们的客户还不需要SOA,他们自身还在解决开发效率问题和培养架构师。 但是环境迟早会改变的,SOA淡化了技术资产和业务资产的边界,SOA提供可灵活修改的,可组合服务,可调整流程的技术架构,这些优势终将反应在市场上。

 

论SOA架构的几种主要开发方式

面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理...
  • kaizi318
  • kaizi318
  • 2016年08月30日 18:26
  • 8195

dns:逆向查询、查询返回SOA记录

一、逆向查询 1.1 查询方法
  • kanguolaikanguolaik
  • kanguolaikanguolaik
  • 2014年07月07日 16:45
  • 2220

一张图来帮你理解 SOA

SOA 曾经一度是技术领域中最难以理解的一个概念。SOA 似乎让很多人感到困惑 - 一般来讲这是由于人们认为它拥有几乎神奇的力量。事实上 SOA 是一个很简单的概念:SOA 由诸如 C++ 和 Jav...
  • defonds
  • defonds
  • 2017年02月16日 14:24
  • 8055

换个角度看HTC,或许并没有那么悲观

换个角度看HTC,或许并没有那么悲观(转) 文/Alter 灾患丛生的HTC再次成为媒体的座上宾,糟糕的市场表现让股价难以止滑,市值甚至低于手中的现金储备。再加上产品的安全问题状况频出,几乎在所有的...
  • Sunshyfangtian
  • Sunshyfangtian
  • 2015年08月12日 12:21
  • 177

【有感】《菊与刀》——换个角度看日本

《菊与刀》这本书是很早就听说的一本写日本的书,但是一直没有真正提起兴致来去读一读这本书。           直到这学期的日本史,朱老师每一节课都会帮助我们了解更多有关日本的历史,从日本古代史,从日本...
  • W15732624773
  • W15732624773
  • 2016年05月15日 15:44
  • 1003

换个角度看12306售票网站——程序员的自我修养

         这些天最受全社会关注的话题就是火车票,最让网民无奈地就是12306购票网站,最让程序员痛快的就是大骂12306网站的架构里的诸多愚蠢的做法。         老实说刚开始...
  • mydeman
  • mydeman
  • 2012年01月11日 10:31
  • 6287

换个角度看GlusterFS分布式文件系统

2014-03-12 17:40 刘爱贵 博客 字号:T | T650) this.width=650;" alt="一键收藏,随时查看,分享好友!" src="http://images.51cto...
  • aiqixiao1015
  • aiqixiao1015
  • 2016年01月21日 10:21
  • 236

换个角度看拖延,拖拉一点也无妨

我们进入主题之前,我先说说作为一个拖延症患者,我是怎么完成这个文章的呢?   一开始的时候也是搞东搞西,剪剪指甲啦,吹头发啦,收拾一下房子啦等等。分享的日子越来越近了,开始连续做恶梦,各种恐慌,各种...
  • mazhaojuan
  • mazhaojuan
  • 2014年09月24日 20:35
  • 2189

再探“指针”奥秘--换个角度看“指针”!

指针:       指针是现代编程中最容易出错的区域。使用指针式非常复杂的,只有你对所有编译程序内存管理方式有非常深刻的理解之后,才能正确的使用它。 理解指针:        在概念上,每个指针包括两...
  • liuguiyangnwpu
  • liuguiyangnwpu
  • 2013年08月18日 16:49
  • 898

换个角度看敏捷3 - 我心中的敏捷

 心中的敏捷“敏捷是什么”,这个问题长期以来一直困扰着我。前段时间提出了敏捷问题解决方式,算是从做法(做事的方法)上对敏捷进行了一个简单的总结。最近一直在清理,这就试图描述一下我心中的敏捷。因为个人一...
  • wolf_linn
  • wolf_linn
  • 2011年02月21日 16:46
  • 347
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:换个角度看SOA
举报原因:
原因补充:

(最多只允许输入30个字)